GLAPI/glGetProgramBinary: Difference between revisions

From OpenGL Wiki
Jump to navigation Jump to search
m Bot: Adding better formatting.
m Bot: Adding better formatting.
 
(3 intermediate revisions by the same user not shown)
Line 24: Line 24:
== Description ==
== Description ==


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


The format of the program binary written into {{param|binary}} is returned in the variable whose address is given by {{param|binaryFormat}}, and may be implementation dependent. The binary produced by the GL may subsequently be returned to the GL by calling {{apifunc|glProgramBinary}}, with {{param|binaryFormat}} and {{param|length}} set to the values returned by '''glGetProgramBinary''', and passing the returned binary data in the {{param|binary}} parameter.
The format of the program binary written into {{param|binary}} is returned in the variable whose address is given by {{param|binaryFormat}}, and may be implementation dependent. The binary produced by the GL may subsequently be returned to the GL by calling {{apifunc|glProgramBinary}}, with {{param|binaryFormat}} and {{param|length}} set to the values returned by '''glGetProgramBinary''', and passing the returned binary data in the {{param|binary}} parameter.
Line 30: Line 30:
== Errors ==
== Errors ==


{{code|GL_INVALID_OPERATION}} is generated if {{param|bufSize}} is less than the size of {{code|GL_PROGRAM_BINARY_LENGTH}} for {{param|program}}.
{{enum|GL_INVALID_OPERATION}} is generated if {{param|bufSize}} is less than the size of {{enum|GL_PROGRAM_BINARY_LENGTH}} for {{param|program}}.


{{code|GL_INVALID_OPERATION}} is generated if {{code|GL_LINK_STATUS}} for the program object is false.
{{enum|GL_INVALID_OPERATION}} is generated if {{enum|GL_LINK_STATUS}} for the program object is false.


== Associated Gets ==
== Associated Gets ==


{{apifunc|glGetProgram}} with argument {{code|GL_PROGRAM_BINARY_LENGTH}}
{{apifunc|glGetProgram}} with argument {{enum|GL_PROGRAM_BINARY_LENGTH}}


== See Also ==
== See Also ==


{{apifunc|glGetProgram}}, {{apifunc|glProgramBinary}}
{{apifunc|glCreateShaderProgram}}, {{apifunc|glLinkProgram}}, {{apifunc|glProgramBinary}}


== Copyright ==
== Copyright ==
Line 48: Line 48:
[[Category:Core API Reference|GetProgramBinary]]
[[Category:Core API Reference|GetProgramBinary]]
[[Category:Core API Ref Shader Program Creation|GetProgramBinary]]
[[Category:Core API Ref Shader Program Creation|GetProgramBinary]]
[[Category:Program Object API State Functions|GetProgramBinary]]

Latest revision as of 09:59, 15 August 2013

glGetProgramBinary
Core in version 4.6
Core since version 4.1
Core ARB extension ARB_get_program_binary

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

Function Definition

 void glGetProgramBinary(GLuint program​, GLsizei bufsize​, GLsizei *length​, GLenum *binaryFormat​, void *binary​);
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

glCreateShaderProgram, glLinkProgram, 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/.