## Name

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`.

## Version Support

| OpenGL Version
--- | ---
Function / Feature Name | 2.0 | 2.1 | 3.0 | 3.1 | 3.2 | 3.3 | 4.0 | 4.1 | 4.2 | 4.3 | 4.4 | 4.5
`glShaderBinary` | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔

## See Also

glGetProgram, glGetProgramBinary, glProgramBinary

## Copyright

Copyright © 2010-2014 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/.