## Name

glGetProgramBinary — return a binary representation of a program object's compiled and linked executable source

## C Specification

`void glGetProgramBinary(` | GLuint program,
| GLsizei bufsize,
| GLsizei *length,
| GLenum *binaryFormat,
| void *binary`)`;

## Parameters

`program`

  Specifies the name of a program object whose binary representation to retrieve.

`bufSize`

  Specifies the size of the buffer whose address is given by `binary`.

`length`

  Specifies the address of a variable to receive the number of bytes written into `binary`.

`binaryFormat`

  Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.

`binary`

  Specifies the address an array into which the GL will return `program`'s binary representation.

## Description

`glGetProgramBinary` returns a binary representation of the compiled and linked executable for `program` into the array of bytes whose address is specified in `binary`. The maximum number of bytes that may be written into `binary` is specified by `bufSize`. If the program binary is greater in size than `bufSize` bytes, then an error is generated, otherwise the actual number of bytes written into `binary` is returned in the variable whose address is given by `length`. If `length` is `NULL`, then no length is returned.

The format of the program binary written into `binary` is returned in the variable whose address is given by `binaryFormat`, and may be implementation dependent. The binary produced by the GL may subsequently be returned to the GL by calling glProgramBinary, with `binaryFormat` and `length` set to the values returned by `glGetProgramBinary`, and passing the returned binary data in the `binary` parameter.

## Errors

`GL_INVALID_OPERATION` is generated if `bufSize` is less than the size of `GL_PROGRAM_BINARY_LENGTH` for `program`.

`GL_INVALID_OPERATION` is generated if `GL_LINK_STATUS` for the program object is false.

## Associated Gets

glGetProgram with argument `GL_PROGRAM_BINARY_LENGTH`

## See Also

glGetProgram, glProgramBinary

## Copyright

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