Interface GL

All Known Subinterfaces:
GL2, GL3, GL4, GLES_30
All Known Implementing Classes:
AndroidGL, IosGL, LwjglGL

public interface GL
Baseline GL methods that must be available on all platforms.

This is the subset of vanilla desktop OpenGL 2 and OpenGL ES 2.

  • Field Details

  • Method Details

    • resetStats

      void resetStats()
    • glActiveTexture

      void glActiveTexture(int texture)

      Reference Page

      Selects which texture unit subsequent texture state calls will affect. The number of texture units an implementation supports is implementation dependent.

      Parameters:
      texture - which texture unit to make active. One of: TEXTURE0 GL_TEXTURE[1-31]
    • glAttachShader

      void glAttachShader(int program, int shader)

      Reference Page

      Attaches a shader object to a program object.

      In order to create a complete shader program, there must be a way to specify the list of things that will be linked together. Program objects provide this mechanism. Shaders that are to be linked together in a program object must first be attached to that program object. glAttachShader attaches the shader object specified by shader to the program object specified by program. This indicates that shader will be included in link operations that will be performed on program.

      All operations that can be performed on a shader object are valid whether or not the shader object is attached to a program object. It is permissible to attach a shader object to a program object before source code has been loaded into the shader object or before the shader object has been compiled. It is permissible to attach multiple shader objects of the same type because each may contain a portion of the complete shader. It is also permissible to attach a shader object to more than one program object. If a shader object is deleted while it is attached to a program object, it will be flagged for deletion, and deletion will not occur until glDetachShader is called to detach it from all program objects to which it is attached.

      Parameters:
      program - the program object to which a shader object will be attached.
      shader - the shader object that is to be attached.
    • glBeginQuery

      void glBeginQuery(int target, int query)

      Reference Page

      Creates a query object and makes it active.

      Parameters:
      target - the target type of query object established.
      query - the name of a query object.
    • glBindBuffer

      void glBindBuffer(int target, int buffer)

      Reference Page

      Binds a named buffer object.

      Parameters:
      target - the target to which the buffer object is bound.
      buffer - the name of a buffer object.
    • glBindTexture

      void glBindTexture(int target, int texture)

      Reference Page

      Binds the a texture to a texture target.

      While a texture object is bound, GL operations on the target to which it is bound affect the bound object, and queries of the target to which it is bound return state from the bound object. If texture mapping of the dimensionality of the target to which a texture object is bound is enabled, the state of the bound texture object directs the texturing operation.

      Parameters:
      target - the texture target.
      texture - the texture object to bind.
    • glBlendEquationSeparate

      void glBlendEquationSeparate(int colorMode, int alphaMode)

      Reference Page

      Sets the RGB blend equation and the alpha blend equation separately.

      Parameters:
      colorMode - the RGB blend equation, how the red, green, and blue components of the source and destination colors are combined.
      alphaMode - the alpha blend equation, how the alpha component of the source and destination colors are combined
    • glBlendFunc

      void glBlendFunc(int sFactor, int dFactor)

      Reference Page

      Specifies the weighting factors used by the blend equation, for both RGB and alpha functions and for all draw buffers.

      Parameters:
      sFactor - the source weighting factor.
      dFactor - the destination weighting factor.
    • glBlendFuncSeparate

      void glBlendFuncSeparate(int sFactorRGB, int dFactorRGB, int sFactorAlpha, int dFactorAlpha)

      Reference Page

      Specifies pixel arithmetic for RGB and alpha components separately.

      Parameters:
      sFactorRGB - how the red, green, and blue blending factors are computed. The initial value is GL_ONE.
      dFactorRGB - how the red, green, and blue destination blending factors are computed. The initial value is GL_ZERO.
      sFactorAlpha - how the alpha source blending factor is computed. The initial value is GL_ONE.
      dFactorAlpha - how the alpha destination blending factor is computed. The initial value is GL_ZERO.
    • glBufferData

      void glBufferData(int target, long dataSize, int usage)

      Reference Page

      Creates and initializes a buffer object's data store.

      usage is a hint to the GL implementation as to how a buffer object's data store will be accessed. This enables the GL implementation to make more intelligent decisions that may significantly impact buffer object performance. It does not, however, constrain the actual usage of the data store. usage can be broken down into two parts: first, the frequency of access (modification and usage), and second, the nature of that access. The frequency of access may be one of these:

      • STREAM - The data store contents will be modified once and used at most a few times.
      • STATIC - The data store contents will be modified once and used many times.
      • DYNAMIC - The data store contents will be modified repeatedly and used many times.

      The nature of access may be one of these:

      • DRAW - The data store contents are modified by the application, and used as the source for GL drawing and image specification commands.
      • READ - The data store contents are modified by reading data from the GL, and used to return that data when queried by the application.
      • COPY - The data store contents are modified by reading data from the GL, and used as the source for GL drawing and image specification commands.
      Parameters:
      target - the target buffer object.
      dataSize - the size in bytes of the buffer object's new data store
      usage - the expected usage pattern of the data store.
    • glBufferData

      void glBufferData(int target, FloatBuffer data, int usage)

      Reference Page

      Creates and initializes a buffer object's data store.

      usage is a hint to the GL implementation as to how a buffer object's data store will be accessed. This enables the GL implementation to make more intelligent decisions that may significantly impact buffer object performance. It does not, however, constrain the actual usage of the data store. usage can be broken down into two parts: first, the frequency of access (modification and usage), and second, the nature of that access. The frequency of access may be one of these:

      • STREAM - The data store contents will be modified once and used at most a few times.
      • STATIC - The data store contents will be modified once and used many times.
      • DYNAMIC - The data store contents will be modified repeatedly and used many times.

      The nature of access may be one of these:

      • DRAW - The data store contents are modified by the application, and used as the source for GL drawing and image specification commands.
      • READ - The data store contents are modified by reading data from the GL, and used to return that data when queried by the application.
      • COPY - The data store contents are modified by reading data from the GL, and used as the source for GL drawing and image specification commands.
      Parameters:
      target - the target buffer object.
      data - a pointer to data that will be copied into the data store for initialization, or NULL if no data is to be copied.
      usage - the expected usage pattern of the data store.
    • glBufferData

      void glBufferData(int target, ShortBuffer data, int usage)

      Reference Page

      Creates and initializes a buffer object's data store.

      usage is a hint to the GL implementation as to how a buffer object's data store will be accessed. This enables the GL implementation to make more intelligent decisions that may significantly impact buffer object performance. It does not, however, constrain the actual usage of the data store. usage can be broken down into two parts: first, the frequency of access (modification and usage), and second, the nature of that access. The frequency of access may be one of these:

      • STREAM - The data store contents will be modified once and used at most a few times.
      • STATIC - The data store contents will be modified once and used many times.
      • DYNAMIC - The data store contents will be modified repeatedly and used many times.

      The nature of access may be one of these:

      • DRAW - The data store contents are modified by the application, and used as the source for GL drawing and image specification commands.
      • READ - The data store contents are modified by reading data from the GL, and used to return that data when queried by the application.
      • COPY - The data store contents are modified by reading data from the GL, and used as the source for GL drawing and image specification commands.
      Parameters:
      target - the target buffer object.
      data - a pointer to data that will be copied into the data store for initialization, or NULL if no data is to be copied
      usage - the expected usage pattern of the data store.
    • glBufferData

      void glBufferData(int target, ByteBuffer data, int usage)

      Reference Page

      Creates and initializes a buffer object's data store.

      usage is a hint to the GL implementation as to how a buffer object's data store will be accessed. This enables the GL implementation to make more intelligent decisions that may significantly impact buffer object performance. It does not, however, constrain the actual usage of the data store. usage can be broken down into two parts: first, the frequency of access (modification and usage), and second, the nature of that access. The frequency of access may be one of these:

      • STREAM - The data store contents will be modified once and used at most a few times.
      • STATIC - The data store contents will be modified once and used many times.
      • DYNAMIC - The data store contents will be modified repeatedly and used many times.

      The nature of access may be one of these:

      • DRAW - The data store contents are modified by the application, and used as the source for GL drawing and image specification commands.
      • READ - The data store contents are modified by reading data from the GL, and used to return that data when queried by the application.
      • COPY - The data store contents are modified by reading data from the GL, and used as the source for GL drawing and image specification commands.
      Parameters:
      target - the target buffer object.
      data - a pointer to data that will be copied into the data store for initialization, or NULL if no data is to be copied.
      usage - the expected usage pattern of the data store.
    • glBufferSubData

      void glBufferSubData(int target, long offset, FloatBuffer data)

      Reference Page

      Updates a subset of a buffer object's data store.

      Parameters:
      target - the target buffer object.
      offset - the offset into the buffer object's data store where data replacement will begin, measured in bytes.
      data - a pointer to the new data that will be copied into the data store.
    • glBufferSubData

      void glBufferSubData(int target, long offset, ShortBuffer data)

      Reference Page

      Updates a subset of a buffer object's data store.

      Parameters:
      target - the target buffer object.
      offset - the offset into the buffer object's data store where data replacement will begin, measured in bytes.
      data - a pointer to the new data that will be copied into the data store.
    • glBufferSubData

      void glBufferSubData(int target, long offset, ByteBuffer data)

      Reference Page

      Updates a subset of a buffer object's data store.

      Parameters:
      target - the target buffer object.
      offset - the offset into the buffer object's data store where data replacement will begin, measured in bytes.
      data - a pointer to the new data that will be copied into the data store.
    • glClear

      void glClear(int mask)

      Reference Page

      Sets portions of every pixel in a particular buffer to the same value. The value to which each buffer is cleared depends on the setting of the clear value for that buffer.

      Parameters:
      mask - Zero or the bitwise OR of one or more values indicating which buffers are to be cleared.
    • glClearColor

      void glClearColor(float red, float green, float blue, float alpha)

      Reference Page

      Sets the clear value for fixed-point and floating-point color buffers in RGBA mode. The specified components are stored as floating-point values.
      Parameters:
      red - the value to which to clear the R channel of the color buffer.
      green - the value to which to clear the G channel of the color buffer.
      blue - the value to which to clear the B channel of the color buffer.
      alpha - the value to which to clear the A channel of the color buffer.
    • glColorMask

      void glColorMask(boolean red, boolean green, boolean blue, boolean alpha)

      Reference Page

      Masks the writing of R, G, B and A values to all draw buffers. In the initial state, all color values are enabled for writing for all draw buffers.
      Parameters:
      red - whether R values are written or not.
      green - whether G values are written or not.
      blue - whether B values are written or not.
      alpha - whether A values are written or not.
    • glCompileShader

      void glCompileShader(int shader)

      Reference Page

      Compiles a shader object.

      Parameters:
      shader - the shader object to be compiled.
    • glCompressedTexImage2D

      void glCompressedTexImage2D(int target, int level, int internalFormat, int width, int height, int border, ByteBuffer data)

      Reference Page

      Specifies a two-dimensional texture image in a compressed format.

      Parameters:
      target - the target texture.
      level - the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
      internalFormat - the format of the compressed image data.
      width - the width of the texture image
      height - the height of the texture image
      border - must be 0
      data - a pointer to the compressed image data
    • glCompressedTexSubImage2D

      void glCompressedTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, ByteBuffer data)

      Reference Page

      Respecifies only a rectangular subregion of an existing 2D texel array, with incoming data stored in a specific compressed image format.
      Parameters:
      target - the target texture.
      level - the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
      xoffset - a texel offset in the x direction within the texture array.
      yoffset - a texel offset in the y direction within the texture array.
      width - the width of the texture subimage.
      height - the height of the texture subimage.
      format - the format of the compressed image data stored at address data.
      data - a pointer to the compressed image data.
    • glCreateProgram

      int glCreateProgram()

      Reference Page

      Creates a program object.
      Returns:
      the ID of the new program, or 0 if unsuccessful
    • glCreateShader

      int glCreateShader(int shaderType)

      Reference Page

      Creates a shader object.
      Parameters:
      shaderType - the type of shader to be created. One of: VERTEX_SHADER FRAGMENT_SHADER GEOMETRY_SHADER TESS_CONTROL_SHADER TESS_EVALUATION_SHADER
      Returns:
      the ID of the new shader, or 0 if unsuccessful
    • glCullFace

      void glCullFace(int mode)

      Reference Page

      Specifies which polygon faces are culled if CULL_FACE is enabled. Front-facing polygons are rasterized if either culling is disabled or the CullFace mode is BACK while back-facing polygons are rasterized only if either culling is disabled or the CullFace mode is FRONT. The initial setting of the CullFace mode is BACK. Initially, culling is disabled.

      Parameters:
      mode - the CullFace mode. One of: FRONT BACK FRONT_AND_BACK
    • glDeleteBuffers

      void glDeleteBuffers(IntBuffer buffers)

      Reference Page

      Deletes named buffer objects.

      Parameters:
      buffers - an array of buffer objects to be deleted.
    • glDeleteProgram

      void glDeleteProgram(int program)

      Reference Page

      Deletes a program object.

      Parameters:
      program - the program object to be deleted.
    • glDeleteShader

      void glDeleteShader(int shader)

      Reference Page

      Deletes a shader object.

      Parameters:
      shader - the shader object to be deleted.
    • glDeleteTextures

      void glDeleteTextures(IntBuffer textures)

      Reference Page

      Deletes texture objects. After a texture object is deleted, it has no contents or dimensionality, and its name is again unused. If a texture that is currently bound to any of the target bindings of BindTexture is deleted, it is as though BindTexture had been executed with the same target and texture zero. Additionally, special care must be taken when deleting a texture if any of the images of the texture are attached to a framebuffer object.

      Unused names in textures that have been marked as used for the purposes of GenTextures are marked as unused again. Unused names in textures are silently ignored, as is the name zero.

      Parameters:
      textures - contains n names of texture objects to be deleted.
    • glDepthFunc

      void glDepthFunc(int func)

      Reference Page

      Specifies the comparison that takes place during the depth buffer test (when DEPTH_TEST is enabled).

      Parameters:
      func - the depth test comparison. One of: NEVER ALWAYS LESS LEQUAL EQUAL GREATER GEQUAL NOTEQUAL
    • glDepthMask

      void glDepthMask(boolean flag)

      Reference Page

      Masks the writing of depth values to the depth buffer. In the initial state, the depth buffer is enabled for writing.

      Parameters:
      flag - whether depth values are written or not.
    • glDepthRange

      void glDepthRange(double nearVal, double farVal)

      Reference Page

      Sets the depth range for all viewports to the same values.

      Parameters:
      nearVal - the near depth range.
      farVal - the far depth range.
    • glDetachShader

      void glDetachShader(int program, int shader)

      Reference Page

      Detaches a shader object from a program object to which it is attached.

      Parameters:
      program - the program object from which to detach the shader object.
      shader - the shader object to be detached.
    • glDisable

      void glDisable(int cap)

      Reference Page

      Disables the specified OpenGL state.

      Parameters:
      cap - the OpenGL state to disable.
    • glDisableVertexAttribArray

      void glDisableVertexAttribArray(int index)

      Reference Page

      Disables a generic vertex attribute array.

      Parameters:
      index - the index of the generic vertex attribute to be disabled.
    • glDrawArrays

      void glDrawArrays(int mode, int first, int count)

      Reference Page

      Constructs a sequence of geometric primitives by successively transferring elements for count vertices. Elements first through first + count – 1 of each enabled non-instanced array are transferred to the GL.

      If an array corresponding to an attribute required by a vertex shader is not enabled, then the corresponding element is taken from the current attribute state. If an array is enabled, the corresponding current vertex attribute value is unaffected by the execution of this function.

      Parameters:
      mode - the kind of primitives being constructed.
      first - the first vertex to transfer to the GL.
      count - the number of vertices after first to transfer to the GL.
    • glDrawRangeElements

      void glDrawRangeElements(int mode, int start, int end, int count, int type, long indices)

      Reference Page

      Implementations denote recommended maximum amounts of vertex and index data, which may be queried by calling glGet with argument MAX_ELEMENTS_VERTICES and MAX_ELEMENTS_INDICES. If end - start + 1 is greater than the value of GL_MAX_ELEMENTS_VERTICES, or if count is greater than the value of GL_MAX_ELEMENTS_INDICES, then the call may operate at reduced performance. There is no requirement that all vertices in the range start end be referenced. However, the implementation may partially process unused vertices, reducing performance from what could be achieved with an optimal index set.

      When glDrawRangeElements is called, it uses count sequential elements from an enabled array, starting at start to construct a sequence of geometric primitives. mode specifies what kind of primitives are constructed, and how the array elements construct these primitives. If more than one array is enabled, each is used.

      Vertex attributes that are modified by glDrawRangeElements have an unspecified value after glDrawRangeElements returns. Attributes that aren't modified maintain their previous values.

      Errors

      It is an error for indices to lie outside the range start end, but implementations may not check for this situation. Such indices cause implementation-dependent behavior.

      • GL_INVALID_ENUM is generated if mode is not an accepted value.
      • GL_INVALID_VALUE is generated if count is negative.
      • GL_INVALID_VALUE is generated if end < start.
      • GL_INVALID_OPERATION is generated if a geometry shader is active and mode is incompatible with the input primitive type of the geometry shader in the currently installed program object.
      • GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to an enabled array or the element array and the buffer object's data store is currently mapped.
      Parameters:
      mode - the kind of primitives to render.
      start - the minimum array index contained in indices.
      end - the maximum array index contained in indices.
      count - the number of elements to be rendered.
      type - the type of the values in indices.
      indices - a pointer to the location where the indices are stored.
    • glEnable

      void glEnable(int cap)

      Reference Page

      Enables the specified OpenGL state.

      Parameters:
      cap - the OpenGL state to enable.
    • glEnableVertexAttribArray

      void glEnableVertexAttribArray(int index)

      Reference Page

      Enables a generic vertex attribute array.

      Parameters:
      index - the index of the generic vertex attribute to be enabled.
    • glEndQuery

      void glEndQuery(int target)

      Reference Page

      Marks the end of the sequence of commands to be tracked for the active query specified by target.

      Parameters:
      target - the query object target.
    • glGenBuffers

      void glGenBuffers(IntBuffer buffers)

      Reference Page

      Generates buffer object names.

      Parameters:
      buffers - a buffer in which the generated buffer object names are stored.
    • glGenTextures

      void glGenTextures(IntBuffer textures)

      Reference Page

      Returns n previously unused texture names in textures. These names are marked as used, for the purposes of GenTextures only, but they acquire texture state and a dimensionality only when they are first bound, just as if they were unused.

      Parameters:
      textures - a scalar or buffer in which to place the returned texture names.
    • glGenQueries

      void glGenQueries(int number, IntBuffer ids)

      Reference Page

      Generates query object names.
      Parameters:
      number - the number of query object names to be generated
      ids - a buffer in which the generated query object names are stored.
    • glGetAttribLocation

      int glGetAttribLocation(int program, String name)

      Reference Page

      Returns the location of an attribute variable.
      Parameters:
      program - the program object to be queried.
      name - a null terminated string containing the name of the attribute variable whose location is to be queried.
      Returns:
      the location
    • glGetBoolean

      void glGetBoolean(int pname, ByteBuffer params)

      Reference Page

      Returns the current boolean value of the specified state variable.

      LWJGL note: The state that corresponds to the state variable may be a single value or an array of values. In the case of an array of values, LWJGL will not validate if params has enough space to store that array. Doing so would introduce significant overhead, as the OpenGL state variables are too many. It is the user's responsibility to avoid JVM crashes by ensuring enough space for the returned values.

      Parameters:
      pname - the state variable.
      params - a scalar or buffer in which to place the returned data.
    • glGetBufferSubData

      void glGetBufferSubData(int target, long offset, ByteBuffer data)

      Reference Page

      Returns a subset of a buffer object's data store.
      Parameters:
      target - the target buffer object.
      offset - the offset into the buffer object's data store from which data will be returned, measured in bytes.
      data - a pointer to the location where buffer object data is returned.
    • glGetError

      int glGetError()

      Reference Page

      Returns error information. Each detectable error is assigned a numeric code. When an error is detected, a flag is set and the code is recorded. Further errors, if they occur, do not affect this recorded code. When GetError is called, the code is returned and the flag is cleared, so that a further error will again record its code. If a call to GetError returns NO_ERROR, then there has been no detectable error since the last call to GetError (or since the GL was initialized).
      Returns:
      the error code, or NO_ERROR if none
    • glGetFloat

      void glGetFloat(int parameterId, FloatBuffer storeValues)
      Determine the current single-precision floating-point value(s) of the specified parameter.
      Parameters:
      parameterId - which parameter
      storeValues - storage for the value(s)
    • glGetInteger

      void glGetInteger(int pname, IntBuffer params)

      Reference Page

      Returns the current integer value of the specified state variable.

      LWJGL note: The state that corresponds to the state variable may be a single value or an array of values. In the case of an array of values, LWJGL will not validate if params has enough space to store that array. Doing so would introduce significant overhead, as the OpenGL state variables are too many. It is the user's responsibility to avoid JVM crashes by ensuring enough space for the returned values.

      Parameters:
      pname - the state variable.
      params - a scalar or buffer in which to place the returned data.
    • glGetProgram

      void glGetProgram(int program, int pname, IntBuffer params)

      Reference Page

      Returns a parameter from a program object.

      Parameters:
      program - the program object to be queried.
      pname - the object parameter.
      params - the requested object parameter.
    • glGetProgramInfoLog

      String glGetProgramInfoLog(int program, int maxSize)

      Reference Page

      Returns the information log for a program object.

      Parameters:
      program - the program object whose information log is to be queried.
      maxSize - the size of the character buffer for storing the returned information log.
      Returns:
      the contents of the information log
    • glGetQueryObjectui64

      long glGetQueryObjectui64(int query, int pname)
      Unsigned version.
      Parameters:
      query - the name of a query object
      pname - the symbolic name of a query object parameter
      Returns:
      the value of the parameter
    • glGetQueryObjectiv

      int glGetQueryObjectiv(int query, int pname)

      Reference Page

      Returns the integer value of a query object parameter.

      Parameters:
      query - the name of a query object
      pname - the symbolic name of a query object parameter. One of: QUERY_RESULT QUERY_RESULT_AVAILABLE
      Returns:
      the value of the parameter
    • glGetShader

      void glGetShader(int shader, int pname, IntBuffer params)

      Reference Page

      Returns a parameter from a shader object.

      Parameters:
      shader - the shader object to be queried.
      pname - the object parameter.
      params - the requested object parameter.
    • glGetShaderInfoLog

      String glGetShaderInfoLog(int shader, int maxSize)

      Reference Page

      Returns the information log for a shader object.

      Parameters:
      shader - the shader object whose information log is to be queried.
      maxSize - the size of the character buffer for storing the returned information log.
      Returns:
      the contents of the information log
    • glGetString

      String glGetString(int name)

      Reference Page

      Return strings describing properties of the current GL context.

      Parameters:
      name - the property to query. One of: RENDERER VENDOR EXTENSIONS VERSION SHADING_LANGUAGE_VERSION
      Returns:
      the value of the property
    • glGetUniformLocation

      int glGetUniformLocation(int program, String name)

      Reference Page

      Returns the location of a uniform variable.

      Parameters:
      program - the program object to be queried.
      name - a null terminated string containing the name of the uniform variable whose location is to be queried.
      Returns:
      the location
    • glIsEnabled

      boolean glIsEnabled(int cap)

      Reference Page

      Determines if cap is currently enabled (as with Enable) or disabled.

      Parameters:
      cap - the enable state to query.
      Returns:
      true if enabled, otherwise false
    • glLineWidth

      void glLineWidth(float width)

      Reference Page

      Sets the width of rasterized line segments. The default width is 1.0.
      Parameters:
      width - the line width.
    • glLinkProgram

      void glLinkProgram(int program)

      Reference Page

      Links a program object.
      Parameters:
      program - the program object to be linked.
    • glPixelStorei

      void glPixelStorei(int pname, int param)

      Reference Page

      Sets the integer value of a pixel store parameter.

      Parameters:
      pname - the pixel store parameter to set.
      param - the parameter value
    • glPolygonOffset

      void glPolygonOffset(float factor, float units)

      Reference Page

      The depth values of all fragments generated by the rasterization of a polygon may be offset by a single value that is computed for that polygon. This function determines that value.

      factor scales the maximum depth slope of the polygon, and units scales an implementation-dependent constant that relates to the usable resolution of the depth buffer. The resulting values are summed to produce the polygon offset value.

      Parameters:
      factor - the maximum depth slope factor.
      units - the constant scale.
    • glReadPixels

      void glReadPixels(int x, int y, int width, int height, int format, int type, ByteBuffer data)

      Reference Page

      ReadPixels obtains values from the selected read buffer from each pixel with lower left hand corner at (x + i, y + j) for 0 <= i < width and 0 <= j < height; this pixel is said to be the ith pixel in the jth row. If any of these pixels lies outside of the window allocated to the current GL context, or outside of the image attached to the currently bound read framebuffer object, then the values obtained for those pixels are undefined. When READ_FRAMEBUFFER_BINDING is zero, values are also undefined for individual pixels that are not owned by the current context. Otherwise, ReadPixels obtains values from the selected buffer, regardless of how those values were placed there.

      Parameters:
      x - the left pixel coordinate
      y - the lower pixel coordinate
      width - the number of pixels to read in the x-dimension
      height - the number of pixels to read in the y-dimension
      format - the pixel format.
      type - the pixel type.
      data - a buffer in which to place the returned pixel data.
    • glReadPixels

      void glReadPixels(int x, int y, int width, int height, int format, int type, long offset)

      Reference Page

      ReadPixels obtains values from the selected read buffer from each pixel with lower left hand corner at (x + i, y + j) for 0 <= i < width and 0 <= j < height; this pixel is said to be the ith pixel in the jth row. If any of these pixels lies outside of the window allocated to the current GL context, or outside of the image attached to the currently bound read framebuffer object, then the values obtained for those pixels are undefined. When READ_FRAMEBUFFER_BINDING is zero, values are also undefined for individual pixels that are not owned by the current context. Otherwise, ReadPixels obtains values from the selected buffer, regardless of how those values were placed there.

      Parameters:
      x - the left pixel coordinate
      y - the lower pixel coordinate
      width - the number of pixels to read in the x-dimension
      height - the number of pixels to read in the y-dimension
      format - the pixel format.
      type - the pixel type.
      offset - a buffer in which to place the returned pixel data/
    • glScissor

      void glScissor(int x, int y, int width, int height)

      Reference Page

      Defines the scissor rectangle for all viewports. The scissor test is enabled or disabled for all viewports using Enable or Disable with the symbolic constant SCISSOR_TEST. When disabled, it is as if the scissor test always passes. When enabled, if left <= xw < left + width and bottom <= yw < bottom + height for the scissor rectangle, then the scissor test passes. Otherwise, the test fails and the fragment is discarded.

      Parameters:
      x - the left scissor rectangle coordinate.
      y - the bottom scissor rectangle coordinate.
      width - the scissor rectangle width.
      height - the scissor rectangle height.
    • glShaderSource

      void glShaderSource(int shader, String[] strings, IntBuffer length)

      Reference Page

      Sets the source code in shader to the source code in the array of strings specified by strings. Any source code previously stored in the shader object is completely replaced. The number of strings in the array is specified by count. If length is NULL, each string is assumed to be null terminated. If length is a value other than NULL, it points to an array containing a string length for each of the corresponding elements of strings. Each element in the length array may contain the length of the corresponding string (the null character is not counted as part of the string length) or a value less than 0 to indicate that the string is null terminated. The source code strings are not scanned or parsed at this time; they are simply copied into the specified shader object.

      Parameters:
      shader - the shader object whose source code is to be replaced,
      strings - an array of pointers to strings containing the source code to be loaded into the shader
      length - storage for the string lengths, or null for null-terminated strings
    • glStencilFuncSeparate

      void glStencilFuncSeparate(int face, int func, int ref, int mask)

      Reference Page

      Sets front and/or back function and reference value for stencil testing.

      Parameters:
      face - whether front and/or back stencil state is updated. One of: FRONT BACK FRONT_AND_BACK
      func - the test function. The initial value is GL_ALWAYS. One of: NEVER LESS LEQUAL GREATER GEQUAL EQUAL NOTEQUAL ALWAYS
      ref - the reference value for the stencil test. ref is clamped to the range [0, 2n – 1], where n is the number of bitplanes in the stencil buffer. The initial value is 0.
      mask - a mask that is ANDed with both the reference value and the stored stencil value when the test is done. The initial value is all 1's.
    • glStencilOpSeparate

      void glStencilOpSeparate(int face, int sfail, int dpfail, int dppass)

      Reference Page

      Sets front and/or back stencil test actions.

      Parameters:
      face - whether front and/or back stencil state is updated. One of: FRONT BACK FRONT_AND_BACK
      sfail - the action to take when the stencil test fails. The initial value is GL_KEEP. One of: KEEP ZERO REPLACE INCR INCR_WRAP DECR DECR_WRAP INVERT
      dpfail - the stencil action when the stencil test passes, but the depth test fails. The initial value is GL_KEEP.
      dppass - the stencil action when both the stencil test and the depth test pass, or when the stencil test passes and either there is no depth buffer or depth testing is not enabled. The initial value is GL_KEEP.
    • glTexImage2D

      void glTexImage2D(int target, int level, int internalFormat, int width, int height, int border, int format, int type, ByteBuffer data)

      Reference Page

      Specifies a two-dimensional texture image.

      Parameters:
      target - the texture target.
      level - the level-of-detail number.
      internalFormat - the texture internal format.
      width - the texture width.
      height - the texture height.
      border - the texture border width.
      format - the texel data format.
      type - the texel data type.
      data - the texel data.
    • glTexParameterf

      void glTexParameterf(int target, int pname, float param)

      Reference Page

      Float version of TexParameteri.

      Parameters:
      target - the texture target.
      pname - the parameter to set.
      param - the parameter value.
    • glTexParameteri

      void glTexParameteri(int target, int pname, int param)

      Reference Page

      Sets the integer value of a texture parameter, which controls how the texel array is treated when specified or changed, and when applied to a fragment.

      Parameters:
      target - the texture target.
      pname - the parameter to set.
      param - the parameter value.
    • glTexSubImage2D

      void glTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, ByteBuffer data)

      Reference Page

      Respecifies a rectangular subregion of an existing texel array. No change is made to the internalformat, width, height, depth, or border parameters of the specified texel array, nor is any change made to texel values outside the specified subregion.

      Parameters:
      target - the texture target.
      level - the level-of-detail-number
      xoffset - the left coordinate of the texel subregion
      yoffset - the bottom coordinate of the texel subregion
      width - the subregion width
      height - the subregion height
      format - the pixel data format.
      type - the pixel data type.
      data - the pixel data.
    • glUniform1

      void glUniform1(int location, FloatBuffer value)

      Reference Page

      Specifies the value of a single float uniform variable or a float uniform variable array for the current program object.

      Parameters:
      location - the location of the uniform variable to be modified.
      value - a pointer to an array of count values that will be used to update the specified uniform variable.
    • glUniform1

      void glUniform1(int location, IntBuffer value)

      Reference Page

      Specifies the value of a single int uniform variable or an int uniform variable array for the current program object.

      Parameters:
      location - the location of the uniform variable to be modified.
      value - a pointer to an array of count values that will be used to update the specified uniform variable.
    • glUniform1f

      void glUniform1f(int location, float v0)

      Reference Page

      Specifies the value of a float uniform variable for the current program object.

      Parameters:
      location - the location of the uniform variable to be modified.
      v0 - the uniform value.
    • glUniform1i

      void glUniform1i(int location, int v0)

      Reference Page

      Specifies the value of an int uniform variable for the current program object.

      Parameters:
      location - the location of the uniform variable to be modified.
      v0 - the uniform value.
    • glUniform2

      void glUniform2(int location, IntBuffer value)

      Reference Page

      Specifies the value of a single ivec2 uniform variable or an ivec2 uniform variable array for the current program object.

      Parameters:
      location - the location of the uniform variable to be modified.
      value - a pointer to an array of count values that will be used to update the specified uniform variable.
    • glUniform2

      void glUniform2(int location, FloatBuffer value)

      Reference Page

      Specifies the value of a single vec2 uniform variable or a vec2 uniform variable array for the current program object.

      Parameters:
      location - the location of the uniform variable to be modified.
      value - a pointer to an array of count values that will be used to update the specified uniform variable.
    • glUniform2f

      void glUniform2f(int location, float v0, float v1)

      Reference Page

      Specifies the value of a vec2 uniform variable for the current program object.

      Parameters:
      location - the location of the uniform variable to be modified.
      v0 - the uniform x value.
      v1 - the uniform y value.
    • glUniform3

      void glUniform3(int location, IntBuffer value)

      Reference Page

      Specifies the value of a single ivec3 uniform variable or an ivec3 uniform variable array for the current program object.

      Parameters:
      location - the location of the uniform variable to be modified.
      value - a pointer to an array of count values that will be used to update the specified uniform variable.
    • glUniform3

      void glUniform3(int location, FloatBuffer value)

      Reference Page

      Specifies the value of a single vec3 uniform variable or a vec3 uniform variable array for the current program object.

      Parameters:
      location - the location of the uniform variable to be modified.
      value - a pointer to an array of count values that will be used to update the specified uniform variable.
    • glUniform3f

      void glUniform3f(int location, float v0, float v1, float v2)

      Reference Page

      Specifies the value of a vec3 uniform variable for the current program object.

      Parameters:
      location - the location of the uniform variable to be modified.
      v0 - the uniform x value.
      v1 - the uniform y value.
      v2 - the uniform z value.
    • glUniform4

      void glUniform4(int location, FloatBuffer value)

      Reference Page

      Specifies the value of a single vec4 uniform variable or a vec4 uniform variable array for the current program object.

      Parameters:
      location - the location of the uniform variable to be modified.
      value - a pointer to an array of count values that will be used to update the specified uniform variable.
    • glUniform4

      void glUniform4(int location, IntBuffer value)

      Reference Page

      Specifies the value of a single ivec4 uniform variable or an ivec4 uniform variable array for the current program object.

      Parameters:
      location - the location of the uniform variable to be modified.
      value - a pointer to an array of count values that will be used to update the specified uniform variable.
    • glUniform4f

      void glUniform4f(int location, float v0, float v1, float v2, float v3)

      Reference Page

      Specifies the value of a vec4 uniform variable for the current program object.

      Parameters:
      location - the location of the uniform variable to be modified.
      v0 - the uniform x value.
      v1 - the uniform y value.
      v2 - the uniform z value.
      v3 - the uniform w value.
    • glUniformMatrix3

      void glUniformMatrix3(int location, boolean transpose, FloatBuffer value)

      Reference Page

      Specifies the value of a single mat3 uniform variable or a mat3 uniform variable array for the current program object.

      Parameters:
      location - the location of the uniform variable to be modified.
      transpose - whether to transpose the matrix as the values are loaded into the uniform variable.
      value - a pointer to an array of count values that will be used to update the specified uniform variable.
    • glUniformMatrix4

      void glUniformMatrix4(int location, boolean transpose, FloatBuffer value)

      Reference Page

      Specifies the value of a single mat4 uniform variable or a mat4 uniform variable array for the current program object.

      Parameters:
      location - the location of the uniform variable to be modified.
      transpose - whether to transpose the matrix as the values are loaded into the uniform variable.
      value - a pointer to an array of count values that will be used to update the specified uniform variable.
    • glUseProgram

      void glUseProgram(int program)

      Reference Page

      Installs a program object as part of current rendering state.

      Parameters:
      program - the program object whose executables are to be used as part of current rendering state.
    • glVertexAttribPointer

      void glVertexAttribPointer(int index, int size, int type, boolean normalized, int stride, long pointer)

      Reference Page

      Specifies the location and organization of a vertex attribute array.

      Parameters:
      index - the index of the generic vertex attribute to be modified
      size - the number of values per vertex that are stored in the array.
      type - the data type of each component in the array. The initial value is GL_FLOAT.
      normalized - whether fixed-point data values should be normalized or converted directly as fixed-point values when they are accessed
      stride - the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
      pointer - the vertex attribute data or the offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ARRAY_BUFFER target. The initial value is 0.
    • glViewport

      void glViewport(int x, int y, int width, int height)

      Reference Page

      Specifies the viewport transformation parameters for all viewports.

      In the initial state, width and height for each viewport are set to the width and height, respectively, of the window into which the GL is to do its rendering. If the default framebuffer is bound but no default framebuffer is associated with the GL context, then width and height are initially set to zero.

      Parameters:
      x - the left viewport coordinate.
      y - the bottom viewport coordinate.
      width - the viewport width.
      height - the viewport height.