opengles-0.8.3: Functional interface for OpenGL 4.1+ and OpenGL ES 2.0+

Safe HaskellNone
LanguageHaskell2010

Graphics.OpenGLES.Caps

Contents

Description

Query implementation capabilities.

Do NOT call below APIs out of OpenGLES threads.

(May cause Segmentation Fault, or you get unuseful 0)

Synopsis

Detecting Extensions

glExtensions :: [String] Source

The list of available extensions on the GL implementation.

hasExt :: String -> Bool Source

True if the GL has the extension.

hasES3 :: Bool Source

True if the GL version is 3 or later.

String Parameters

glVendor :: String Source

The company responsible for this GL implementation. This name does not change from release to release.

glRenderer :: String Source

The renderer name typically specific to a particular configuration of a hardware platform. It does not change from release to release.

glVersion :: String Source

A version or release number of the form "OpenGL ES (version number) (vendor-specific information)"

glShadingLanguageVersion :: String Source

A version or release number for the shading language of the form "OpenGL ES GLSL ES (version number) (vendor-specific information)"

Two-valued Parameters

newtype GLParamP Source

Constructors

GLParamP GLenum 

aliasedPointSizeRange :: GLParamP Source

The (smallest, largest) supported sizes for points. The smallest size must be <= 1, and the largest size must be >= 1.

aliasedLineWidthRange :: GLParamP Source

The range of widths supported for aliased lines.

maxViewportDims :: GLParamP Source

The maximum supported width and height of the viewport. These must be at least as large as the visible dimensions of the display being rendered to.

List Parameters

Integer Parameters

newtype GLParam Source

Constructors

GLParam GLenum 

glCap :: GLParam -> Int32 Source

Returns the implementation dependent value or 0 if unsupported.

Since ES 2.0

implementationColorReadFormat :: GLParam Source

The format chosen by the implementation in which pixels may be read from the color buffer of the currently bound framebuffer in conjunction with GL_IMPLEMENTATION_COLOR_READ_TYPE. In addition to this implementation-dependent format/type pair, format GL_RGBA in conjunction with type GL_UNSIGNED_BYTE is always allowed by every implementation, regardless of the currently bound render surface. See glReadPixels.

implementationColorReadType :: GLParam Source

The type chosen by the implementation with which pixels may be read from the color buffer of the currently bound framebuffer in conjunction with GL_IMPLEMENTATION_COLOR_READ_FORMAT. In addition to this implementation-dependent format/type pair, format GL_RGBA in conjunction with type GL_UNSIGNED_BYTE is always allowed by every implementation, regardless of the currently bound render surface. See glReadPixels.

maxCombinedTextureImageUnits :: GLParam Source

The maximum supported texture image units that can be used to access texture maps from the vertex shader and the fragment processor combined. If both the vertex shader and the fragment processing stage access the same texture image unit, then that counts as using two texture image units against this limit. The minimum value is 8-32-32.

maxCubeMapTextureSize :: GLParam Source

The value gives a rough estimate of the largest cube-map texture that the GL can handle. The minimum value is 16-2048-2048.

maxFragmentUniformVectors :: GLParam Source

The maximum number of vector floating-point, integer, or boolean values that can be held in uniform variable storage for a fragment shader. The minimum value is 16-224-224.

maxRenderbufferSize :: GLParam Source

The value indicates the maximum supported size for renderbuffers and must be at least 1-?-2048.

maxTextureImageUnits :: GLParam Source

The maximum supported texture image units that can be used to access texture maps from the fragment shader. The minimum value is 8-?-16.

maxTextureSize :: GLParam Source

The value gives a rough estimate of the largest texture that the GL can handle. The minimum value is 64-?-2048.

maxVaryingVectors :: GLParam Source

The maximum number of interpolators available for processing varying variables used by vertex and fragment shaders. This value represents the number of vector values that can be interpolated; varying variables declared as matrices and arrays will consume multiple interpolators. The minimum value is 8-?-15.

maxVertexAttribs :: GLParam Source

The maximum number of 4-component generic vertex attributes accessible to a vertex shader. The minimum value is 8-?-16.

maxVertexTextureImageUnits :: GLParam Source

The maximum supported texture image units that can be used to access texture maps from the vertex shader. The minimum value is 0-?-16.

maxVertexUniformVectors :: GLParam Source

The maximum number of vector floating-point, integer, or boolean values that can be held in uniform variable storage for a vertex shader. The minimum value is 128-?-256.

numCompressedTextureFormats :: GLParam Source

The number of available compressed texture formats. The minimum value is 0-10-10.

numShaderBinaryFormats :: GLParam Source

The number of available shader binary formats. The minimum value is 0-0-0. Note: Not supported on most platforms.

subpixelBits :: GLParam Source

An estimate of the number of bits of subpixel resolution that are used to position rasterized geometry in window coordinates. The minimum value is 4-?-?.

Since ES 3.0

max3DTextureSize :: GLParam Source

A rough estimate of the largest 3D texture that the GL can handle. The minimum value is 0-256-256.

maxArrayTextureLayers :: GLParam Source

The value indicates the maximum number of layers allowed in an array texture. The minimum value is 0-256-256.

maxColorAttachments :: GLParam Source

The maximum number of color attachment points in a framebuffer object. The minimum value is 0-4-4.

maxCombinedFragmentUniformComponents :: GLParam Source

The number of words for fragment shader uniform variables in all uniform blocks (including default). The value must be at least GL_MAX_FRAGMENT_UNIFORM_COMPONENTS + GL_MAX_UNIFORM_BLOCK_SIZE * GL_MAX_FRAGMENT_UNIFORM_BLOCKS / 4.

maxCombinedUniformBlocks :: GLParam Source

The maximum number of uniform blocks per program. The minimum value is 0-24-24.

maxCombinedVertexUniformComponents :: GLParam Source

The number of words for vertex shader uniform variables in all uniform blocks (including default). The value must be at least GL_MAX_VERTEX_UNIFORM_COMPONENTS + GL_MAX_UNIFORM_BLOCK_SIZE * GL_MAX_VERTEX_UNIFORM_BLOCKS / 4.

majorVersion :: GLParam Source

The major version number of the OpenGL ES API supported by the current context. Note: ES 2 does not support this param thus returns 0. (ES2 -> 0, ES3 and ES3_1 -> 3)

minorVersion :: GLParam Source

The minor version number of the OpenGL ES API supported by the current context. (ES3 -> 0, ES3_1 -> 1)

numExtensions :: GLParam Source

The number of extensions supported by the GL implementation for the current context.

numProgramBinaryFormats :: GLParam Source

GL_OES_get_program_binary or ES3+ The number of available program binary formats. If the value is 0, program binary is not available. The minimum value is 0-0-0.

Since ES 3.1

maxComputeUniformBlocks :: GLParam Source

The maximum number of uniform blocks per compute shader. The value must be at least 14. See glUniformBlockBinding.

maxComputeTextureImageUnits :: GLParam Source

The maximum supported texture image units that can be used to access texture maps from the compute shader. The value may be at least 16. See glActiveTexture.

maxComputeImageUniforms :: GLParam Source

The maximum number of image variables in compute shaders. The value must be at least 8.

maxComputeUniformComponents :: GLParam Source

The maximum number of individual floating-point, integer, or boolean values that can be held in uniform variable storage for a compute shader. The value must be at least 1024. See glUniform.

maxComputeAtomicCounterBuffers :: GLParam Source

The maximum number of atomic counter buffers that may be accessed by a compute shader.

maxComputeAtomicCounters :: GLParam Source

The maximum number of atomic counters available to compute shaders.

maxCombinedComputeUniformComponents :: GLParam Source

The number of words for compute shader uniform variables in all uniform blocks (including default). The value must be at least 1. See glUniform.

maxComputeWorkGroupInvocations :: GLParam Source

The number of invocations in a single local work group (i.e., the product of the three dimensions) that may be dispatched to a compute shader.

maxUniformLocations :: GLParam Source

The maximum number of explicitly assignable uniform locations, which must be at least 1024.

maxFramebufferWidth :: GLParam Source

The maximum width for a framebuffer that has no attachments, which must be at least 16384. See glFramebufferParameteri.

maxFramebufferHeight :: GLParam Source

The maximum height for a framebuffer that has no attachments, which must be at least 16384. See glFramebufferParameteri.

maxFramebufferSamples :: GLParam Source

The maximum samples in a framebuffer that has no attachments, which must be at least 4. See glFramebufferParameteri.

maxVertexAtomicCounters :: GLParam Source

The maximum number of atomic counters available to vertex shaders.

maxFragmentAtomicCounters :: GLParam Source

The maximum number of atomic counters available to fragment shaders.

maxCombinedAtomicCounters :: GLParam Source

The maximum number of atomic counters available to all active shaders.

maxVertexShaderStorageBlocks :: GLParam Source

The maximum number of active shader storage blocks that may be accessed by a vertex shader.

maxFragmentShaderStorageBlocks :: GLParam Source

The maximum number of active shader storage blocks that may be accessed by a fragment shader.

maxComputeShaderStorageBlocks :: GLParam Source

The maximum number of active shader storage blocks that may be accessed by a compute shader.

maxCombinedShaderStorageBlocks :: GLParam Source

The maximum total number of active shader storage blocks that may be accessed by all active shaders.

maxShaderStorageBufferBindings :: GLParam Source

The maximum number of shader storage buffer binding points on the context, which must be at least 8.

maxColorTextureSamples :: GLParam Source

The maximum number of samples in a color multisample texture.

maxIntegerSamples :: GLParam Source

The maximum number of samples supported in integer format multisample buffers.

maxVertexAttribRelativeOffset :: GLParam Source

The maximum offset that may be added to a vertex binding offset.

maxVertexAttribBindings :: GLParam Source

The maximum number of vertex buffers that may be bound.

maxVertexAttribStride :: GLParam Source

Undocumented constant, perhaps does not exist?

Extensions

Shader Precision

shaderPrecision :: (GLName -> a -> Shader) -> PrecisionType -> GL (Int32, Int32, Int32) Source

Query shader precision information

(min, max, precision) <- shaderPrecision vertexShader highFp

newtype PrecisionType Source

Constructors

Prec GLenum