# OpenGL Pipeline State

class `renderdoc.``GLState`

  The full current OpenGL pipeline state.

  `atomicBuffers`

    A list of `GLBuffer` with the currently bound atomic buffers.

  `computeShader`

    A `GLShader` describing the compute shader stage.

  `depthState`

    A `GLDepthState` describing depth processing.

  `fragmentShader`

    A `GLShader` describing the fragment shader stage.

  `framebuffer`

    A `GLFrameBuffer` describing the framebuffer.

  `geometryShader`

    A `GLShader` describing the geometry shader stage.

  `hints`

    A `GLHints` describing the hint state.

  `images`

    A list of `GLImageLoadStore` with the currently bound load/store images.

  `pipelineResourceId`

    The `ResourceId` of the program pipeline (if active).

  `rasterizer`

    A `GLRasterizer` describing rasterization.

  `samplers`

    A list of `GLSampler` with the currently bound samplers.

  `shaderStorageBuffers`

    A list of `GLBuffer` with the currently bound shader storage buffers.

  `stencilState`

    A `GLStencilState` describing stencil processing.

  `tessControlShader`

    A `GLShader` describing the tessellation control shader stage.

  `tessEvalShader`

    A `GLShader` describing the tessellation evaluation shader stage.

  `textures`

    A list of `GLTexture` with the currently bound textures.

  `transformFeedback`

    A `GLFeedback` describing the transform feedback stage.

  `uniformBuffers`

    A list of `GLBuffer` with the currently bound uniform buffers.

  `vertexInput`

    A `GLVertexInput` describing the vertex input stage.

  `vertexProcessing`

    A `GLFixedVertexProcessing` describing the fixed-function vertex processing stage.

  `vertexShader`

    A `GLShader` describing the vertex shader stage.

class `renderdoc.``GLVertexAttribute`

  Describes the configuration for a single vertex attribute.

  Note

  If old-style vertex attrib pointer setup was used for the vertex attributes then it will be decomposed into 1:1 attributes and buffers.

  `byteOffset`

    The byte offset from the start of the vertex data in the vertex buffer from `vertexBufferSlot`.

  `enabled`

    `True` if this vertex attribute is enabled.

  `format`

    The `ResourceFormat` of the vertex attribute.

  `genericValue`

    A `PixelValue` containing the generic value of a vertex attribute.

  `vertexBufferSlot`

    The vertex buffer input slot where the data is sourced from.

class `renderdoc.``GLVertexBuffer`

  Describes a single OpenGL vertex buffer binding.

  `byteOffset`

    The byte offset from the start of the buffer to the beginning of the vertex data.

  `byteStride`

    The byte stride between the start of one set of vertex data and the next.

  `instanceDivisor`

    The instance rate divisor.

    If this is `0` then the vertex buffer is read at vertex rate.

    If it’s `1` then one element is read for each instance, and for `N` greater than `1` then `N` instances read the same element before advancing.

  `resourceId`

    The `ResourceId` of the buffer bound to this slot.

class `renderdoc.``GLVertexInput`

  Describes the setup for fixed-function vertex input fetch.

  `attributes`

    A list of `GLVertexAttribute` with the vertex attributes.

  `indexBuffer`

    The `ResourceId` of the index buffer.

  `primitiveRestart`

    `True` if primitive restart is enabled for strip primitives.

  `provokingVertexLast`

    `True` if the provoking vertex is the last one in the primitive.

    `False` if the provoking vertex is the first one.

  `restartIndex`

    The index value to use to indicate a strip restart.

  `vertexArrayObject`

    The `ResourceId` of the vertex array object that’s bound.

  `vertexBuffers`

    A list of `GLVertexBuffer` with the vertex buffers.

class `renderdoc.``GLShader`

  Describes an OpenGL shader stage.

  `bindpointMapping`

    A `ShaderBindpointMapping` to match `reflection` with the bindpoint mapping data.

  `programResourceId`

    The `ResourceId` of the program bound to this stage.

  `reflection`

    A `ShaderReflection` describing the reflection data for this shader.

  `shaderResourceId`

    The `ResourceId` of the shader object itself.

  `stage`

    A `ShaderStage` identifying which stage this shader is bound to.

  `subroutines`

    A list of integers with the subroutine values.

class `renderdoc.``GLFixedVertexProcessing`

  Describes the setup for fixed vertex processing operations.

  `clipNegativeOneToOne`

    `True` if the clip-space Z goes from `-1` to `1`.

    `False` if the clip-space Z goes from `0` to `1`.

  `clipOriginLowerLeft`

    `True` if the clipping origin should be in the lower left.

    `False` if it’s in the upper left.

  `clipPlanes`

    A list of `bool` determining which user clipping planes are enabled.

  `defaultInnerLevel`

    A list of `float` giving the default inner level of tessellation.

  `defaultOuterLevel`

    A list of `float` giving the default outer level of tessellation.

  `discard`

    `True` if primitives should be discarded during rasterization.

class `renderdoc.``GLTexture`

  Describes the details of a texture.

  `completeStatus`

    The details of the texture’s (in)completeness. If this string is empty, the texture is complete. Otherwise it contains an explanation of why the texture is believed to be incomplete.

  `depthReadChannel`

    The channel to read from in a depth-stencil texture.

    `-1` for non depth-stencil textures.

    `0` if depth should be read.

    `1` if stencil should be read.

  `firstMip`

    Valid for textures - the first mip that is available.

  `numMips`

    Valid for textures - the number of mips that are available.

  `resourceId`

    The `ResourceId` of the underlying resource the view refers to.

  `swizzle`

    A `TextureSwizzle4` indicating the swizzle applied to this texture.

  `type`

    The `TextureType` of the texture.

class `renderdoc.``GLSampler`

  Describes the sampler properties of a texture.

  `UseBorder`()

    Check if the border color is used in this OpenGL sampler.

    Returns: | `True` if the border color is used, `False` otherwise.
    Return type: | `bool`

  `addressR`

    The `AddressMode` in the R direction.

  `addressS`

    The `AddressMode` in the S direction.

  `addressT`

    The `AddressMode` in the T direction.

  `borderColor`

    The RGBA border color.

  `compareFunction`

    The `CompareFunction` for comparison samplers.

  `filter`

    The `TextureFilter` describing the filtering mode.

  `maxAnisotropy`

    The maximum anisotropic filtering level to use.

  `maxLOD`

    The maximum mip level that can be used.

  `minLOD`

    The minimum mip level that can be used.

  `mipLODBias`

    A bias to apply to the calculated mip level before sampling.

  `resourceId`

    The `ResourceId` of the sampler object, if a separate one is set.

  `seamlessCubeMap`

    `True` if seamless cubemap filtering is enabled for this texture.

class `renderdoc.``GLBuffer`

  Describes the properties of a buffer.

  `byteOffset`

    The byte offset from the start of the buffer.

  `byteSize`

    The byte size of the buffer.

  `resourceId`

    The `ResourceId` of the buffer object.

class `renderdoc.``GLImageLoadStore`

  Describes the properties of a load/store image.

  `imageFormat`

    The `ResourceFormat` that the image is bound as.

  `layered`

    `True` if multiple layers are bound together to the image. `False` if only one layer is bound.

  `mipLevel`

    The mip of the texture that’s used in the attachment.

  `readAllowed`

    `True` if loading from the image is allowed.

  `resourceId`

    The `ResourceId` of the texture object.

  `slice`

    The slice of the texture that’s used in the attachment.

  `type`

    The `TextureType` of the texture.

  `writeAllowed`

    `True` if storing to the image is allowed.

class `renderdoc.``GLFeedback`

  Describes the current feedback state.

  `active`

    `True` if the transform feedback object is currently active.

  `bufferResourceId`

    A list of `ResourceId` with the buffer bindings.

  `byteOffset`

    A list of `int` with the buffer byte offsets.

  `byteSize`

    A list of `int` with the buffer byte sizes.

  `feedbackResourceId`

    The `ResourceId` of the transform feedback binding.

  `paused`

    `True` if the transform feedback object is currently paused.

class `renderdoc.``GLRasterizerState`

  Describes the rasterizer state toggles.

  `alphaToCoverage`

    `True` if alpha-to-coverage should be used when blending to an MSAA target.

  `alphaToOne`

    `True` if alpha-to-one should be used when blending to an MSAA target.

  `cullMode`

    The polygon `CullMode`.

  `depthBias`

    The fixed depth bias value to apply to z-values.

  `depthClamp`

    `True` if pixels outside of the near and far depth planes should be clamped and to `0.0` to `1.0` and not clipped.

  `fillMode`

    The polygon `FillMode`.

  `frontCCW`

    `True` if counter-clockwise polygons are front-facing. `False` if clockwise polygons are front-facing.

  `lineWidth`

    The fixed line width in pixels.

  `minSampleShadingRate`

    The minimum sample shading rate.

  `multisampleEnable`

    `True` if multisampling should be used during rendering.

  `offsetClamp`

    The clamp value for calculated depth bias from `depthBias` and `slopeScaledDepthBias`

  `pointFadeThreshold`

    The threshold value at which points are clipped if they exceed this size.

  `pointOriginUpperLeft`

    `True` if the point sprite texture origin is upper-left. `False` if lower-left.

  `pointSize`

    The fixed point size in pixels.

  `programmablePointSize`

    `True` if the point size can be programmably exported from a shader.

  `sampleCoverage`

    `True` if a temporary mask using `sampleCoverageValue` should be used to resolve the final output color.

  `sampleCoverageInvert`

    `True` if the temporary sample coverage mask should be inverted.

  `sampleCoverageValue`

    The sample coverage value used if `sampleCoverage` is `True`.

  `sampleMask`

    `True` if the generated samples should be bitwise `AND` masked with `sampleMaskValue`.

  `sampleMaskValue`

    The sample mask value that should be masked against the generated coverage.

  `sampleShading`

    `True` if rendering should happen at sample-rate frequency.

  `slopeScaledDepthBias`

    The slope-scaled depth bias value to apply to z-values.

class `renderdoc.``GLRasterizer`

  Describes the rasterization state of the OpenGL pipeline.

  `scissors`

    A list of `Scissor` with the bound scissor regions.

  `state`

    A `GLRasterizerState` with the details of the rasterization state.

  `viewports`

    A list of `Viewport` with the bound viewports.

class `renderdoc.``GLDepthState`

  Describes the depth state.

  `depthBounds`

    `True` if depth bounds tests should be applied.

  `depthEnable`

    `True` if depth testing should be performed.

  `depthFunction`

    The `CompareFunction` to use for testing depth values.

  `depthWrites`

    `True` if depth values should be written to the depth target.

  `farBound`

    The far plane bounding value.

  `nearBound`

    The near plane bounding value.

class `renderdoc.``GLStencilState`

  Describes the stencil state.

  `backFace`

    A `StencilFace` describing what happens for back-facing polygons.

  `frontFace`

    A `StencilFace` describing what happens for front-facing polygons.

  `stencilEnable`

    `True` if stencil operations should be performed.

class `renderdoc.``GLAttachment`

  Describes the state of a framebuffer attachment.

  `mipLevel`

    The mip of the texture that’s used in the attachment.

  `resourceId`

    The `ResourceId` of the texture bound to this attachment.

  `slice`

    The slice of the texture that’s used in the attachment.

  `swizzle`

    A `TextureSwizzle4` indicating the swizzle applied to this texture.

class `renderdoc.``GLFBO`

  Describes the contents of a framebuffer object.

  `colorAttachments`

    The list of `GLAttachment` with the framebuffer color attachments.

  `depthAttachment`

    The `GLAttachment` with the framebuffer depth attachment.

  `drawBuffers`

    The list of draw buffer indices into the `colorAttachments` attachment list.

  `readBuffer`

    The read buffer index in the `colorAttachments` attachment list.

  `resourceId`

    The `ResourceId` of the framebuffer.

  `stencilAttachment`

    The `GLAttachment` with the framebuffer stencil attachment.

class `renderdoc.``GLBlendState`

  Describes the blend pipeline state.

  `blendFactor`

    The constant blend factor to use in blend equations.

  `blends`

    A list of `ColorBlend` describing the blend operations for each target.

class `renderdoc.``GLFrameBuffer`

  Describes the current state of the framebuffer stage of the pipeline.

  `blendState`

    A `GLBlendState` with the details of the blending state.

  `dither`

    `True` if dithering should be used when writing to color buffers.

  `drawFBO`

    A `GLFBO` with the information about a draw framebuffer.

  `framebufferSRGB`

    `True` if sRGB correction should be applied when writing to an sRGB-formatted texture.

  `readFBO`

    A `GLFBO` with the information about a read framebuffer.

class `renderdoc.``GLHints`

  Describes the current state of GL hints and smoothing.

  `derivatives`

    A `QualityHint` with the derivatives hint.

  `lineSmoothing`

    A `QualityHint` with the line smoothing hint.

  `lineSmoothingEnabled`

    `True` if line smoothing is enabled.

  `polySmoothing`

    A `QualityHint` with the polygon smoothing hint.

  `polySmoothingEnabled`

    `True` if polygon smoothing is enabled.

  `textureCompression`

    A `QualityHint` with the texture compression hint.