GLAPI/glGetProgramBinary: Difference between revisions

From OpenGL Wiki
Jump to navigation Jump to search
m Bot: Adjusting API page category.
m Bot: Adding better formatting.
 
(6 intermediate revisions by the same user not shown)
Line 9: Line 9:
== Function Definition ==
== Function Definition ==


   void '''glGetProgramBinary'''(GLuint ''program'', GLsizei ''bufsize'', GLsizei *''length'', GLenum *''binaryFormat'', void *''binary'');
   void '''glGetProgramBinary'''(GLuint {{param|program}}, GLsizei {{param|bufsize}}, GLsizei *{{param|length}}, GLenum *{{param|binaryFormat}}, void *{{param|binary}});


; program
; program
: Specifies the name of a program object whose binary representation to retrieve.
: Specifies the name of a program object whose binary representation to retrieve.
; bufSize
; bufSize
: Specifies the size of the buffer whose address is given by ''binary''.
: Specifies the size of the buffer whose address is given by {{param|binary}}.
; length
; length
: Specifies the address of a variable to receive the number of bytes written into ''binary''.
: Specifies the address of a variable to receive the number of bytes written into {{param|binary}}.
; binaryFormat
; binaryFormat
: Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
: Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
; binary
; binary
: Specifies the address an array into which the GL will return ''program'''s binary representation.
: Specifies the address an array into which the GL will return {{param|program}}'s binary representation.


== Description ==
== 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 {{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 ''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 [[GLAPI/glProgramBinary|glProgramBinary]], with ''binaryFormat'' and ''length'' set to the values returned by '''glGetProgramBinary''', and passing the returned binary data in the ''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.


== Errors ==
== Errors ==


{{code|GL_INVALID_OPERATION}} is generated if ''bufSize'' is less than the size of {{code|GL_PROGRAM_BINARY_LENGTH}} for ''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 ==


[[GLAPI/glGetProgram|glGetProgram]] with argument {{code|GL_PROGRAM_BINARY_LENGTH}}
{{apifunc|glGetProgram}} with argument {{enum|GL_PROGRAM_BINARY_LENGTH}}


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


[[GLAPI/glGetProgram|glGetProgram]], [[GLAPI/glProgramBinary|glProgramBinary]]
{{apifunc|glCreateShaderProgram}}, {{apifunc|glLinkProgram}}, {{apifunc|glProgramBinary}}


== Copyright ==
== Copyright ==
Line 46: Line 46:
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/ http://opencontent.org/openpub/].
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/ http://opencontent.org/openpub/].


[[Category:API Reference 4|GetProgramBinary]]
[[Category:Core API Reference|GetProgramBinary]]
[[Category:GL 4 API 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/.