Top Description Fields Constructors Methods
org.lwjgl.opengles

public Class OESGetProgramBinary

extends Object
Class Inheritance
Imports
javax.annotation.*, java.nio.*, org.lwjgl.system.*

Native bindings to the OES_get_program_binary extension.

This extension introduces two new commands. GetProgramBinaryOES empowers an application to use the GL itself as an offline compiler. The resulting program binary can be reloaded into the GL via ProgramBinaryOES. This is a very useful path for applications that wish to remain portable by shipping pure GLSL source shaders, yet would like to avoid the cost of compiling their shaders at runtime. Instead an application can supply its GLSL source shaders during first application run, or even during installation. The application then compiles and links its shaders and reads back the program binaries. On subsequent runs, only the program binaries need be supplied! Though the level of optimization may not be identical -- the offline shader compiler may have the luxury of more aggressive optimization at its disposal -- program binaries generated online by the GL are interchangeable with those generated offline by an SDK tool.

Note that an implementation supporting this extension need not include an online compiler. That is, it is not required to support loading GLSL shader sources via the ShaderSource command. A query of boolean value SHADER_COMPILER can be used to determine if an implementation supports a shader compiler. If not, the GetProgramBinaryOES command is rendered virtually useless, but the ProgramBinaryOES command may still be used by vendor extensions as a standard method for loading offline-compiled program binaries.

Requires GLES 2.0.

Field Summary

Modifier and TypeField and Description
public static final int
GL_NUM_PROGRAM_BINARY_FORMATS_OES

Accepted by the pname parameter of GetBooleanv, GetIntegerv, and GetFloatv.

public static final int
GL_PROGRAM_BINARY_FORMATS_OES

Accepted by the pname parameter of GetBooleanv, GetIntegerv, and GetFloatv.

public static final int
GL_PROGRAM_BINARY_LENGTH_OES

ccepted by the pname parameter of GetProgramiv.

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public static void
glGetProgramBinaryOES(int program, IntBuffer length, IntBuffer binaryFormat, ByteBuffer binary)

public static void
glGetProgramBinaryOES(int program, int[] length, int[] binaryFormat, ByteBuffer binary)

Array version of: GetProgramBinaryOES

public static void
glProgramBinaryOES(int program, int binaryFormat, ByteBuffer binary)

public static native void
nglGetProgramBinaryOES(int program, int bufSize, long length, long binaryFormat, long binary)

public static native void
nglProgramBinaryOES(int program, int binaryFormat, long binary, int length)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

GL_NUM_PROGRAM_BINARY_FORMATS_OESback to summary
public static final int GL_NUM_PROGRAM_BINARY_FORMATS_OES

Accepted by the pname parameter of GetBooleanv, GetIntegerv, and GetFloatv.

GL_PROGRAM_BINARY_FORMATS_OESback to summary
public static final int GL_PROGRAM_BINARY_FORMATS_OES

Accepted by the pname parameter of GetBooleanv, GetIntegerv, and GetFloatv.

GL_PROGRAM_BINARY_LENGTH_OESback to summary
public static final int GL_PROGRAM_BINARY_LENGTH_OES

ccepted by the pname parameter of GetProgramiv.

Constructor Detail

OESGetProgramBinaryback to summary
protected OESGetProgramBinary()

Method Detail

glGetProgramBinaryOESback to summary
public static void glGetProgramBinaryOES(int program, IntBuffer length, IntBuffer binaryFormat, ByteBuffer binary)
glGetProgramBinaryOESback to summary
public static void glGetProgramBinaryOES(int program, int[] length, int[] binaryFormat, ByteBuffer binary)

Array version of: GetProgramBinaryOES

glProgramBinaryOESback to summary
public static void glProgramBinaryOES(int program, int binaryFormat, ByteBuffer binary)
nglGetProgramBinaryOESback to summary
public static native void nglGetProgramBinaryOES(int program, int bufSize, long length, long binaryFormat, long binary)
nglProgramBinaryOESback to summary
public static native void nglProgramBinaryOES(int program, int binaryFormat, long binary, int length)