2010-2013
Khronos Group
glShaderBinary
3G

# glShaderBinary

load pre-compiled shader binaries

## C Specification

                    void glShaderBinary
                    GLsizei count
                    const GLuint *shaders
                    GLenum binaryFormat
                    const void *binary
                    GLsizei length

## Parameters

`count`

  Specifies the number of shader object handles contained in `shaders`.

`shaders`

  Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.

`binaryFormat`

  Specifies the format of the shader binaries contained in `binary`.

`binary`

  Specifies the address of an array of bytes containing pre-compiled binary shader code.

`length`

  Specifies the length of the array whose address is given in `binary`.

## Description

`glShaderBinary` loads pre-compiled shader binary code into the `count` shader objects whose handles are given in `shaders`. `binary` points to `length` bytes of binary shader code stored in client memory. `binaryFormat` specifies the format of the pre-compiled code.

The binary image contained in `binary` will be decoded according to the extension specification defining the specified `binaryFormat` token. OpenGL does not define any specific binary formats, but it does provide a mechanism to obtain token vaues for such formats provided by such extensions.

Depending on the types of the shader objects in `shaders`, `glShaderBinary` will individually load binary vertex or fragment shaders, or load an executable binary that contains an optimized pair of vertex and fragment shaders stored in the same binary.

## Errors

`GL_INVALID_OPERATION` is generated if more than one of the handles in `shaders` refers to the same shader object.

`GL_INVALID_ENUM` is generated if `binaryFormat` is not an accepted value.

`GL_INVALID_VALUE` is generated if the data pointed to by `binary` does not match the format specified by `binaryFormat`.

## Associated Gets

glGet with parameter `GL_NUM_SHADER_BINARY_FORMATS`.

glGet with parameter `GL_SHADER_BINARY_FORMATS`.

## See Also

glGetProgram, glGetProgramBinary, glProgramBinary

## Copyright

Copyright 2010-2013 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.