2010-2014
Khronos Group
glGetProgramBinary
3G

# 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

glGetProgramiv with argument `GL_PROGRAM_BINARY_LENGTH`

## API Version Support

glGetProgramBinary

## See Also

glGetProgramiv, 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/.