public interface GL10 extends GL
GL10
interface contains the Java(TM) programming
language bindings for OpenGL(R) ES 1.0 core functionality.
The OES_byte_coordinates
,
OES_single_precision
, OES_fixed_point
,
OES_read_format
, and
OES_compressed_paletted_texture
extensions are
included as part of this interface.
Methods with an x
or xv
suffix belong
to the OES_fixed_point
extension and take one or more
fixed-point arguments. Fixed-point arguments may be derived from
floating-point values by multiplying by 65536 (2^16) and rounding
to the nearest integer.
For ease of use, this interface documents method behavior for all versions of OpenGL ES including version 1.1 and extensions. When running on an OpenGL ES 1.0 implementation, sections marked "(1.1 only)" should be disregarded.
See the GL
interface for a description of how to
obtain an instance of this interface.
Modifier and Type | Field and Description |
---|---|
static int |
GL_ADD
OpenGL ES 1.0 constant.
|
static int |
GL_ALIASED_LINE_WIDTH_RANGE
OpenGL ES 1.0 constant.
|
static int |
GL_ALIASED_POINT_SIZE_RANGE
OpenGL ES 1.0 constant.
|
static int |
GL_ALPHA
OpenGL ES 1.0 constant.
|
static int |
GL_ALPHA_BITS
OpenGL ES 1.0 constant.
|
static int |
GL_ALPHA_TEST
OpenGL ES 1.0 constant.
|
static int |
GL_ALWAYS
OpenGL ES 1.0 constant.
|
static int |
GL_AMBIENT
OpenGL ES 1.0 constant.
|
static int |
GL_AMBIENT_AND_DIFFUSE
OpenGL ES 1.0 constant.
|
static int |
GL_AND
OpenGL ES 1.0 constant.
|
static int |
GL_AND_INVERTED
OpenGL ES 1.0 constant.
|
static int |
GL_AND_REVERSE
OpenGL ES 1.0 constant.
|
static int |
GL_BACK
OpenGL ES 1.0 constant.
|
static int |
GL_BLEND
OpenGL ES 1.0 constant.
|
static int |
GL_BLUE_BITS
OpenGL ES 1.0 constant.
|
static int |
GL_BYTE
OpenGL ES 1.0 constant.
|
static int |
GL_CCW
OpenGL ES 1.0 constant.
|
static int |
GL_CLAMP_TO_EDGE
OpenGL ES 1.0 constant.
|
static int |
GL_CLEAR
OpenGL ES 1.0 constant.
|
static int |
GL_COLOR_ARRAY
OpenGL ES 1.0 constant.
|
static int |
GL_COLOR_BUFFER_BIT
OpenGL ES 1.0 constant.
|
static int |
GL_COLOR_LOGIC_OP
OpenGL ES 1.0 constant.
|
static int |
GL_COLOR_MATERIAL
OpenGL ES 1.0 constant.
|
static int |
GL_COMPRESSED_TEXTURE_FORMATS
OpenGL ES 1.0 constant.
|
static int |
GL_CONSTANT_ATTENUATION
OpenGL ES 1.0 constant.
|
static int |
GL_COPY
OpenGL ES 1.0 constant.
|
static int |
GL_COPY_INVERTED
OpenGL ES 1.0 constant.
|
static int |
GL_CULL_FACE
OpenGL ES 1.0 constant.
|
static int |
GL_CW
OpenGL ES 1.0 constant.
|
static int |
GL_DECAL
OpenGL ES 1.0 constant.
|
static int |
GL_DECR
OpenGL ES 1.0 constant.
|
static int |
GL_DEPTH_BITS
OpenGL ES 1.0 constant.
|
static int |
GL_DEPTH_BUFFER_BIT
OpenGL ES 1.0 constant.
|
static int |
GL_DEPTH_TEST
OpenGL ES 1.0 constant.
|
static int |
GL_DIFFUSE
OpenGL ES 1.0 constant.
|
static int |
GL_DITHER
OpenGL ES 1.0 constant.
|
static int |
GL_DONT_CARE
OpenGL ES 1.0 constant.
|
static int |
GL_DST_ALPHA
OpenGL ES 1.0 constant.
|
static int |
GL_DST_COLOR
OpenGL ES 1.0 constant.
|
static int |
GL_EMISSION
OpenGL ES 1.0 constant.
|
static int |
GL_EQUAL
OpenGL ES 1.0 constant.
|
static int |
GL_EQUIV
OpenGL ES 1.0 constant.
|
static int |
GL_EXP
OpenGL ES 1.0 constant.
|
static int |
GL_EXP2
OpenGL ES 1.0 constant.
|
static int |
GL_EXTENSIONS
OpenGL ES 1.0 constant.
|
static int |
GL_FALSE
OpenGL ES 1.0 constant.
|
static int |
GL_FASTEST
OpenGL ES 1.0 constant.
|
static int |
GL_FIXED
OpenGL ES 1.0 constant.
|
static int |
GL_FLAT
OpenGL ES 1.0 constant.
|
static int |
GL_FLOAT
OpenGL ES 1.0 constant.
|
static int |
GL_FOG
OpenGL ES 1.0 constant.
|
static int |
GL_FOG_COLOR
OpenGL ES 1.0 constant.
|
static int |
GL_FOG_DENSITY
OpenGL ES 1.0 constant.
|
static int |
GL_FOG_END
OpenGL ES 1.0 constant.
|
static int |
GL_FOG_HINT
OpenGL ES 1.0 constant.
|
static int |
GL_FOG_MODE
OpenGL ES 1.0 constant.
|
static int |
GL_FOG_START
OpenGL ES 1.0 constant.
|
static int |
GL_FRONT
OpenGL ES 1.0 constant.
|
static int |
GL_FRONT_AND_BACK
OpenGL ES 1.0 constant.
|
static int |
GL_GEQUAL
OpenGL ES 1.0 constant.
|
static int |
GL_GREATER
OpenGL ES 1.0 constant.
|
static int |
GL_GREEN_BITS
OpenGL ES 1.0 constant.
|
static int |
GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
OpenGL ES 1.0 constant.
|
static int |
GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
OpenGL ES 1.0 constant.
|
static int |
GL_INCR
OpenGL ES 1.0 constant.
|
static int |
GL_INVALID_ENUM
OpenGL ES 1.0 constant.
|
static int |
GL_INVALID_OPERATION
OpenGL ES 1.0 constant.
|
static int |
GL_INVALID_VALUE
OpenGL ES 1.0 constant.
|
static int |
GL_INVERT
OpenGL ES 1.0 constant.
|
static int |
GL_KEEP
OpenGL ES 1.0 constant.
|
static int |
GL_LEQUAL
OpenGL ES 1.0 constant.
|
static int |
GL_LESS
OpenGL ES 1.0 constant.
|
static int |
GL_LIGHT_MODEL_AMBIENT
OpenGL ES 1.0 constant.
|
static int |
GL_LIGHT_MODEL_TWO_SIDE
OpenGL ES 1.0 constant.
|
static int |
GL_LIGHT0
OpenGL ES 1.0 constant.
|
static int |
GL_LIGHT1
OpenGL ES 1.0 constant.
|
static int |
GL_LIGHT2
OpenGL ES 1.0 constant.
|
static int |
GL_LIGHT3
OpenGL ES 1.0 constant.
|
static int |
GL_LIGHT4
OpenGL ES 1.0 constant.
|
static int |
GL_LIGHT5
OpenGL ES 1.0 constant.
|
static int |
GL_LIGHT6
OpenGL ES 1.0 constant.
|
static int |
GL_LIGHT7
OpenGL ES 1.0 constant.
|
static int |
GL_LIGHTING
OpenGL ES 1.0 constant.
|
static int |
GL_LINE_LOOP
OpenGL ES 1.0 constant.
|
static int |
GL_LINE_SMOOTH
OpenGL ES 1.0 constant.
|
static int |
GL_LINE_SMOOTH_HINT
OpenGL ES 1.0 constant.
|
static int |
GL_LINE_STRIP
OpenGL ES 1.0 constant.
|
static int |
GL_LINEAR
OpenGL ES 1.0 constant.
|
static int |
GL_LINEAR_ATTENUATION
OpenGL ES 1.0 constant.
|
static int |
GL_LINEAR_MIPMAP_LINEAR
OpenGL ES 1.0 constant.
|
static int |
GL_LINEAR_MIPMAP_NEAREST
OpenGL ES 1.0 constant.
|
static int |
GL_LINES
OpenGL ES 1.0 constant.
|
static int |
GL_LUMINANCE
OpenGL ES 1.0 constant.
|
static int |
GL_LUMINANCE_ALPHA
OpenGL ES 1.0 constant.
|
static int |
GL_MAX_ELEMENTS_INDICES
OpenGL ES 1.0 constant.
|
static int |
GL_MAX_ELEMENTS_VERTICES
OpenGL ES 1.0 constant.
|
static int |
GL_MAX_LIGHTS
OpenGL ES 1.0 constant.
|
static int |
GL_MAX_MODELVIEW_STACK_DEPTH
OpenGL ES 1.0 constant.
|
static int |
GL_MAX_PROJECTION_STACK_DEPTH
OpenGL ES 1.0 constant.
|
static int |
GL_MAX_TEXTURE_SIZE
OpenGL ES 1.0 constant.
|
static int |
GL_MAX_TEXTURE_STACK_DEPTH
OpenGL ES 1.0 constant.
|
static int |
GL_MAX_TEXTURE_UNITS
OpenGL ES 1.0 constant.
|
static int |
GL_MAX_VIEWPORT_DIMS
OpenGL ES 1.0 constant.
|
static int |
GL_MODELVIEW
OpenGL ES 1.0 constant.
|
static int |
GL_MODULATE
OpenGL ES 1.0 constant.
|
static int |
GL_MULTISAMPLE
OpenGL ES 1.0 constant.
|
static int |
GL_NAND
OpenGL ES 1.0 constant.
|
static int |
GL_NEAREST
OpenGL ES 1.0 constant.
|
static int |
GL_NEAREST_MIPMAP_LINEAR
OpenGL ES 1.0 constant.
|
static int |
GL_NEAREST_MIPMAP_NEAREST
OpenGL ES 1.0 constant.
|
static int |
GL_NEVER
OpenGL ES 1.0 constant.
|
static int |
GL_NICEST
OpenGL ES 1.0 constant.
|
static int |
GL_NO_ERROR
OpenGL ES 1.0 constant.
|
static int |
GL_NOOP
OpenGL ES 1.0 constant.
|
static int |
GL_NOR
OpenGL ES 1.0 constant.
|
static int |
GL_NORMAL_ARRAY
OpenGL ES 1.0 constant.
|
static int |
GL_NORMALIZE
OpenGL ES 1.0 constant.
|
static int |
GL_NOTEQUAL
OpenGL ES 1.0 constant.
|
static int |
GL_NUM_COMPRESSED_TEXTURE_FORMATS
OpenGL ES 1.0 constant.
|
static int |
GL_ONE
OpenGL ES 1.0 constant.
|
static int |
GL_ONE_MINUS_DST_ALPHA
OpenGL ES 1.0 constant.
|
static int |
GL_ONE_MINUS_DST_COLOR
OpenGL ES 1.0 constant.
|
static int |
GL_ONE_MINUS_SRC_ALPHA
OpenGL ES 1.0 constant.
|
static int |
GL_ONE_MINUS_SRC_COLOR
OpenGL ES 1.0 constant.
|
static int |
GL_OR
OpenGL ES 1.0 constant.
|
static int |
GL_OR_INVERTED
OpenGL ES 1.0 constant.
|
static int |
GL_OR_REVERSE
OpenGL ES 1.0 constant.
|
static int |
GL_OUT_OF_MEMORY
OpenGL ES 1.0 constant.
|
static int |
GL_PACK_ALIGNMENT
OpenGL ES 1.0 constant.
|
static int |
GL_PALETTE4_R5_G6_B5_OES
OpenGL ES 1.0 constant.
|
static int |
GL_PALETTE4_RGB5_A1_OES
OpenGL ES 1.0 constant.
|
static int |
GL_PALETTE4_RGB8_OES
OpenGL ES 1.0 constant.
|
static int |
GL_PALETTE4_RGBA4_OES
OpenGL ES 1.0 constant.
|
static int |
GL_PALETTE4_RGBA8_OES
OpenGL ES 1.0 constant.
|
static int |
GL_PALETTE8_R5_G6_B5_OES
OpenGL ES 1.0 constant.
|
static int |
GL_PALETTE8_RGB5_A1_OES
OpenGL ES 1.0 constant.
|
static int |
GL_PALETTE8_RGB8_OES
OpenGL ES 1.0 constant.
|
static int |
GL_PALETTE8_RGBA4_OES
OpenGL ES 1.0 constant.
|
static int |
GL_PALETTE8_RGBA8_OES
OpenGL ES 1.0 constant.
|
static int |
GL_PERSPECTIVE_CORRECTION_HINT
OpenGL ES 1.0 constant.
|
static int |
GL_POINT_SMOOTH
OpenGL ES 1.0 constant.
|
static int |
GL_POINT_SMOOTH_HINT
OpenGL ES 1.0 constant.
|
static int |
GL_POINTS
OpenGL ES 1.0 constant.
|
static int |
GL_POLYGON_OFFSET_FILL
OpenGL ES 1.0 constant.
|
static int |
GL_POLYGON_SMOOTH_HINT
OpenGL ES 1.0 constant.
|
static int |
GL_POSITION
OpenGL ES 1.0 constant.
|
static int |
GL_PROJECTION
OpenGL ES 1.0 constant.
|
static int |
GL_QUADRATIC_ATTENUATION
OpenGL ES 1.0 constant.
|
static int |
GL_RED_BITS
OpenGL ES 1.0 constant.
|
static int |
GL_RENDERER
OpenGL ES 1.0 constant.
|
static int |
GL_REPEAT
OpenGL ES 1.0 constant.
|
static int |
GL_REPLACE
OpenGL ES 1.0 constant.
|
static int |
GL_RESCALE_NORMAL
OpenGL ES 1.0 constant.
|
static int |
GL_RGB
OpenGL ES 1.0 constant.
|
static int |
GL_RGBA
OpenGL ES 1.0 constant.
|
static int |
GL_SAMPLE_ALPHA_TO_COVERAGE
OpenGL ES 1.0 constant.
|
static int |
GL_SAMPLE_ALPHA_TO_ONE
OpenGL ES 1.0 constant.
|
static int |
GL_SAMPLE_COVERAGE
OpenGL ES 1.0 constant.
|
static int |
GL_SCISSOR_TEST
OpenGL ES 1.0 constant.
|
static int |
GL_SET
OpenGL ES 1.0 constant.
|
static int |
GL_SHININESS
OpenGL ES 1.0 constant.
|
static int |
GL_SHORT
OpenGL ES 1.0 constant.
|
static int |
GL_SMOOTH
OpenGL ES 1.0 constant.
|
static int |
GL_SMOOTH_LINE_WIDTH_RANGE
OpenGL ES 1.0 constant.
|
static int |
GL_SMOOTH_POINT_SIZE_RANGE
OpenGL ES 1.0 constant.
|
static int |
GL_SPECULAR
OpenGL ES 1.0 constant.
|
static int |
GL_SPOT_CUTOFF
OpenGL ES 1.0 constant.
|
static int |
GL_SPOT_DIRECTION
OpenGL ES 1.0 constant.
|
static int |
GL_SPOT_EXPONENT
OpenGL ES 1.0 constant.
|
static int |
GL_SRC_ALPHA
OpenGL ES 1.0 constant.
|
static int |
GL_SRC_ALPHA_SATURATE
OpenGL ES 1.0 constant.
|
static int |
GL_SRC_COLOR
OpenGL ES 1.0 constant.
|
static int |
GL_STACK_OVERFLOW
OpenGL ES 1.0 constant.
|
static int |
GL_STACK_UNDERFLOW
OpenGL ES 1.0 constant.
|
static int |
GL_STENCIL_BITS
OpenGL ES 1.0 constant.
|
static int |
GL_STENCIL_BUFFER_BIT
OpenGL ES 1.0 constant.
|
static int |
GL_STENCIL_TEST
OpenGL ES 1.0 constant.
|
static int |
GL_SUBPIXEL_BITS
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE_2D
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE_COORD_ARRAY
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE_ENV
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE_ENV_COLOR
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE_ENV_MODE
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE_MAG_FILTER
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE_MIN_FILTER
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE_WRAP_S
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE_WRAP_T
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE0
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE1
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE10
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE11
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE12
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE13
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE14
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE15
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE16
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE17
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE18
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE19
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE2
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE20
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE21
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE22
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE23
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE24
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE25
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE26
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE27
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE28
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE29
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE3
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE30
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE31
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE4
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE5
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE6
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE7
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE8
OpenGL ES 1.0 constant.
|
static int |
GL_TEXTURE9
OpenGL ES 1.0 constant.
|
static int |
GL_TRIANGLE_FAN
OpenGL ES 1.0 constant.
|
static int |
GL_TRIANGLE_STRIP
OpenGL ES 1.0 constant.
|
static int |
GL_TRIANGLES
OpenGL ES 1.0 constant.
|
static int |
GL_TRUE
OpenGL ES 1.0 constant.
|
static int |
GL_UNPACK_ALIGNMENT
OpenGL ES 1.0 constant.
|
static int |
GL_UNSIGNED_BYTE
OpenGL ES 1.0 constant.
|
static int |
GL_UNSIGNED_SHORT
OpenGL ES 1.0 constant.
|
static int |
GL_UNSIGNED_SHORT_4_4_4_4
OpenGL ES 1.0 constant.
|
static int |
GL_UNSIGNED_SHORT_5_5_5_1
OpenGL ES 1.0 constant.
|
static int |
GL_UNSIGNED_SHORT_5_6_5
OpenGL ES 1.0 constant.
|
static int |
GL_VENDOR
OpenGL ES 1.0 constant.
|
static int |
GL_VERSION
OpenGL ES 1.0 constant.
|
static int |
GL_VERTEX_ARRAY
OpenGL ES 1.0 constant.
|
static int |
GL_XOR
OpenGL ES 1.0 constant.
|
static int |
GL_ZERO
OpenGL ES 1.0 constant.
|
Modifier and Type | Method and Description |
---|---|
void |
glActiveTexture(int texture)
Select server-side active texture unit.
|
void |
glAlphaFunc(int func,
float ref)
Specify the alpha test function.
|
void |
glAlphaFuncx(int func,
int ref)
Fixed-point version of
glAlphaFunc . |
void |
glBindTexture(int target,
int texture)
Bind a named texture to a texturing target.
|
void |
glBlendFunc(int sfactor,
int dfactor)
Specify pixel arithmetic.
|
void |
glClear(int mask)
Clear buffers to preset values.
|
void |
glClearColor(float red,
float green,
float blue,
float alpha)
Specify clear values for the color buffer.
|
void |
glClearColorx(int red,
int green,
int blue,
int alpha)
Fixed-point version of
glClearColor . |
void |
glClearDepthf(float depth)
Specify the clear value for the depth buffer.
|
void |
glClearDepthx(int depth)
Fixed-point version of
glClearDepth . |
void |
glClearStencil(int s)
Specify the clear value for the stencil buffer.
|
void |
glClientActiveTexture(int texture)
Select client-side active texture unit.
|
void |
glColor4f(float red,
float green,
float blue,
float alpha)
Set the current color.
|
void |
glColor4x(int red,
int green,
int blue,
int alpha)
Fixed-point version of
glColor . |
void |
glColorMask(boolean red,
boolean green,
boolean blue,
boolean alpha)
Enable and disable writing of color buffer components.
|
void |
glColorPointer(int size,
int type,
int stride,
Buffer pointer)
Define an array of colors.
|
void |
glCompressedTexImage2D(int target,
int level,
int internalformat,
int width,
int height,
int border,
int imageSize,
Buffer data)
Specify a two-dimensional compressed texture image.
|
void |
glCompressedTexSubImage2D(int target,
int level,
int xoffset,
int yoffset,
int width,
int height,
int format,
int imageSize,
Buffer data)
Specify a two-dimensional compressed texture subimage.
|
void |
glCopyTexImage2D(int target,
int level,
int internalformat,
int x,
int y,
int width,
int height,
int border)
Specify a two-dimensional texture image with pixels from the
color buffer.
|
void |
glCopyTexSubImage2D(int target,
int level,
int xoffset,
int yoffset,
int x,
int y,
int width,
int height)
Specify a two-dimensional texture subimage with pixels from the
color buffer.
|
void |
glCullFace(int mode)
Specify whether front- or back-facing polygons are culled.
|
void |
glDeleteTextures(int n,
int[] textures,
int offset)
Delete named textures.
|
void |
glDeleteTextures(int n,
IntBuffer textures)
Integer
Buffer version of glDeleteTextures . |
void |
glDepthFunc(int func)
Specify the value used for depth buffer comparisons.
|
void |
glDepthMask(boolean flag)
Enable or disable writing into the depth buffer.
|
void |
glDepthRangef(float zNear,
float zFar)
Specify mapping of depth values from normalized device
coordinates to window coordinates.
|
void |
glDepthRangex(int zNear,
int zFar)
Fixed-point version of
glDepthRange . |
void |
glDisable(int cap)
Disable server-side GL capabilities.
|
void |
glDisableClientState(int array)
Disable client-side capability.
|
void |
glDrawArrays(int mode,
int first,
int count)
Render primitives from array data.
|
void |
glDrawElements(int mode,
int count,
int type,
Buffer indices)
Render primitives from array data.
|
void |
glEnable(int cap)
Enable server-side GL capabilities.
|
void |
glEnableClientState(int array)
Enable client-side capability.
|
void |
glFinish()
Block until all GL execution is complete.
|
void |
glFlush()
Force execution of GL commands in finite time.
|
void |
glFogf(int pname,
float param)
Specify fog parameters.
|
void |
glFogfv(int pname,
float[] params,
int offset)
Specify fog parameters (array version).
|
void |
glFogfv(int pname,
FloatBuffer params)
Floating-point
Buffer version of glFog . |
void |
glFogx(int pname,
int param)
Fixed-point version of
glFog . |
void |
glFogxv(int pname,
int[] params,
int offset)
Fixed-point array version of
glFog . |
void |
glFogxv(int pname,
IntBuffer params)
Fixed-point
Buffer version of glFog . |
void |
glFrontFace(int mode)
Define front- and back-facing polygons.
|
void |
glFrustumf(float left,
float right,
float bottom,
float top,
float near,
float far)
Multiply the current matrix by a perspective matrix.
|
void |
glFrustumx(int left,
int right,
int bottom,
int top,
int near,
int far)
Fixed-point version of
glFrustum . |
void |
glGenTextures(int n,
int[] textures,
int offset)
Generate texture names.
|
void |
glGenTextures(int n,
IntBuffer textures)
Integer
Buffer version of glGenTextures . |
int |
glGetError()
Return error information.
|
void |
glGetIntegerv(int pname,
int[] params,
int offset)
Return the value or values of a selected parameter.
|
void |
glGetIntegerv(int pname,
IntBuffer params)
Integer
Buffer version of glGetIntegerv . |
java.lang.String |
glGetString(int name)
Return a string describing the underlying GL implementation.
|
void |
glHint(int target,
int mode)
Specify implementation-specific hints.
|
void |
glLightf(int light,
int pname,
float param)
Set light source parameters.
|
void |
glLightfv(int light,
int pname,
float[] params,
int offset)
Set light source parameters (array version).
|
void |
glLightfv(int light,
int pname,
FloatBuffer params)
Floating-point
Buffer version of glLight . |
void |
glLightModelf(int pname,
float param)
Set the lighting model parameters.
|
void |
glLightModelfv(int pname,
float[] params,
int offset)
Set the lighting model parameters (array version).
|
void |
glLightModelfv(int pname,
FloatBuffer params)
Floating-point
Buffer version of glLightModel . |
void |
glLightModelx(int pname,
int param)
Fixed-point version of
glLightModel . |
void |
glLightModelxv(int pname,
int[] params,
int offset)
Fixed-point array version of
glLightModel . |
void |
glLightModelxv(int pname,
IntBuffer params)
Fixed-point
Buffer version of glLightModel . |
void |
glLightx(int light,
int pname,
int param)
Fixed-point version of
glLight . |
void |
glLightxv(int light,
int pname,
int[] params,
int offset)
Fixed-point array version of
glLight . |
void |
glLightxv(int light,
int pname,
IntBuffer params)
Fixed-point
Buffer version of glLight . |
void |
glLineWidth(float width)
Specify the width of rasterized lines.
|
void |
glLineWidthx(int width)
Fixed-point version of
glLineWidth . |
void |
glLoadIdentity()
Replace the current matrix with the identity matrix.
|
void |
glLoadMatrixf(float[] m,
int offset)
Replace the current matrix with the specified matrix.
|
void |
glLoadMatrixf(FloatBuffer m)
Floating-point
Buffer version of glLoadMatrix . |
void |
glLoadMatrixx(int[] m,
int offset)
Fixed-point array version of
glLoadMatrix . |
void |
glLoadMatrixx(IntBuffer m)
Fixed-point
Buffer version of glLoadMatrix . |
void |
glLogicOp(int opcode)
Specify a logical pixel operation.
|
void |
glMaterialf(int face,
int pname,
float param)
Specify material parameters for the lighting model.
|
void |
glMaterialfv(int face,
int pname,
float[] params,
int offset)
Specify material parameters for the lighting model (array
version).
|
void |
glMaterialfv(int face,
int pname,
FloatBuffer params)
Floating-point
Buffer version of glMaterial . |
void |
glMaterialx(int face,
int pname,
int param)
Fixed-point version of
glMaterial . |
void |
glMaterialxv(int face,
int pname,
int[] params,
int offset)
Fixed-point array version of
glMaterial . |
void |
glMaterialxv(int face,
int pname,
IntBuffer params)
Fixed-point
Buffer version of glMaterial . |
void |
glMatrixMode(int mode)
Specify which matrix is the current matrix.
|
void |
glMultiTexCoord4f(int target,
float s,
float t,
float r,
float q)
Set the current texture coordinates.
|
void |
glMultiTexCoord4x(int target,
int s,
int t,
int r,
int q)
Fixed-point version of
glMultiTexCoord . |
void |
glMultMatrixf(float[] m,
int offset)
Multiply the current matrix with the specified matrix.
|
void |
glMultMatrixf(FloatBuffer m)
Floating-point
Buffer version of glMultMatrix . |
void |
glMultMatrixx(int[] m,
int offset)
Fixed-point array version of
glMultMatrix . |
void |
glMultMatrixx(IntBuffer m)
Fixed-point
Buffer version of glMultMatrix . |
void |
glNormal3f(float nx,
float ny,
float nz)
Set the current normal vector.
|
void |
glNormal3x(int nx,
int ny,
int nz)
Fixed-point version of
glNormal . |
void |
glNormalPointer(int type,
int stride,
Buffer pointer)
Define an array of normals.
|
void |
glOrthof(float left,
float right,
float bottom,
float top,
float near,
float far)
Multiply the current matrix with an orthographic matrix.
|
void |
glOrthox(int left,
int right,
int bottom,
int top,
int near,
int far)
Fixed-point version of
glOrtho . |
void |
glPixelStorei(int pname,
int param)
Set pixel storage modes.
|
void |
glPointSize(float size)
Specify the diameter of rasterized points.
|
void |
glPointSizex(int size)
Fixed-point version of
glPointSize . |
void |
glPolygonOffset(float factor,
float units)
Set the scale and units used to calculate depth values.
|
void |
glPolygonOffsetx(int factor,
int units)
Fixed-point version of
glPolygonOffset . |
void |
glPopMatrix()
Pop the current matrix stack.
|
void |
glPushMatrix()
Push the current matrix stack.
|
void |
glReadPixels(int x,
int y,
int width,
int height,
int format,
int type,
Buffer pixels)
Read a block of pixels from the color buffer.
|
void |
glRotatef(float angle,
float x,
float y,
float z)
Multiply the current matrix by a rotation matrix.
|
void |
glRotatex(int angle,
int x,
int y,
int z)
Fixed-point version of
glRotate . |
void |
glSampleCoverage(float value,
boolean invert)
Specify mask to modify multisampled pixel fragments.
|
void |
glSampleCoveragex(int value,
boolean invert)
Fixed-point version of
glSampleCoverage . |
void |
glScalef(float x,
float y,
float z)
Multiply the current matrix by a general scaling matrix.
|
void |
glScalex(int x,
int y,
int z)
Fixed-point version of
glScale . |
void |
glScissor(int x,
int y,
int width,
int height)
Define the scissor box.
|
void |
glShadeModel(int mode)
Select flat or smooth shading.
|
void |
glStencilFunc(int func,
int ref,
int mask)
Set function and reference value for stencil testing.
|
void |
glStencilMask(int mask)
Control the writing of individual bits in the stencil planes.
|
void |
glStencilOp(int fail,
int zfail,
int zpass)
Set stencil test actions.
|
void |
glTexCoordPointer(int size,
int type,
int stride,
Buffer pointer)
Define an array of texture coordinates.
|
void |
glTexEnvf(int target,
int pname,
float param)
Set texture environment parameters.
|
void |
glTexEnvfv(int target,
int pname,
float[] params,
int offset)
Set texture environment parameters (array version).
|
void |
glTexEnvfv(int target,
int pname,
FloatBuffer params)
Floating-point
Buffer version of glTexEnv . |
void |
glTexEnvx(int target,
int pname,
int param)
Fixed-point version of
glTexEnv . |
void |
glTexEnvxv(int target,
int pname,
int[] params,
int offset)
Fixed-point array version of
glTexEnv . |
void |
glTexEnvxv(int target,
int pname,
IntBuffer params)
Fixed-point
Buffer version of glTexEnv . |
void |
glTexImage2D(int target,
int level,
int internalformat,
int width,
int height,
int border,
int format,
int type,
Buffer pixels)
Specify a two-dimensional texture image.
|
void |
glTexParameterf(int target,
int pname,
float param)
Set texture parameters.
|
void |
glTexParameterx(int target,
int pname,
int param)
Fixed-point version of
glTexParameter . |
void |
glTexSubImage2D(int target,
int level,
int xoffset,
int yoffset,
int width,
int height,
int format,
int type,
Buffer pixels)
Specify a two-dimensional texture subimage.
|
void |
glTranslatef(float x,
float y,
float z)
Multiply the current matrix by a translation matrix.
|
void |
glTranslatex(int x,
int y,
int z)
Fixed-point version of
glTranslate . |
void |
glVertexPointer(int size,
int type,
int stride,
Buffer pointer)
Define an array of vertex coordinates.
|
void |
glViewport(int x,
int y,
int width,
int height)
Set the viewport.
|
static final int GL_DEPTH_BUFFER_BIT
static final int GL_STENCIL_BUFFER_BIT
static final int GL_COLOR_BUFFER_BIT
static final int GL_FALSE
static final int GL_TRUE
static final int GL_POINTS
static final int GL_LINES
static final int GL_LINE_LOOP
static final int GL_LINE_STRIP
static final int GL_TRIANGLES
static final int GL_TRIANGLE_STRIP
static final int GL_TRIANGLE_FAN
static final int GL_NEVER
static final int GL_LESS
static final int GL_EQUAL
static final int GL_LEQUAL
static final int GL_GREATER
static final int GL_NOTEQUAL
static final int GL_GEQUAL
static final int GL_ALWAYS
static final int GL_ZERO
static final int GL_ONE
static final int GL_SRC_COLOR
static final int GL_ONE_MINUS_SRC_COLOR
static final int GL_SRC_ALPHA
static final int GL_ONE_MINUS_SRC_ALPHA
static final int GL_DST_ALPHA
static final int GL_ONE_MINUS_DST_ALPHA
static final int GL_DST_COLOR
static final int GL_ONE_MINUS_DST_COLOR
static final int GL_SRC_ALPHA_SATURATE
static final int GL_FRONT
static final int GL_BACK
static final int GL_FRONT_AND_BACK
static final int GL_FOG
static final int GL_LIGHTING
static final int GL_TEXTURE_2D
static final int GL_CULL_FACE
static final int GL_ALPHA_TEST
static final int GL_BLEND
static final int GL_COLOR_LOGIC_OP
static final int GL_DITHER
static final int GL_STENCIL_TEST
static final int GL_DEPTH_TEST
static final int GL_POINT_SMOOTH
static final int GL_LINE_SMOOTH
static final int GL_SCISSOR_TEST
static final int GL_COLOR_MATERIAL
static final int GL_NORMALIZE
static final int GL_RESCALE_NORMAL
static final int GL_POLYGON_OFFSET_FILL
static final int GL_VERTEX_ARRAY
static final int GL_NORMAL_ARRAY
static final int GL_COLOR_ARRAY
static final int GL_TEXTURE_COORD_ARRAY
static final int GL_MULTISAMPLE
static final int GL_SAMPLE_ALPHA_TO_COVERAGE
static final int GL_SAMPLE_ALPHA_TO_ONE
static final int GL_SAMPLE_COVERAGE
static final int GL_NO_ERROR
static final int GL_INVALID_ENUM
static final int GL_INVALID_VALUE
static final int GL_INVALID_OPERATION
static final int GL_STACK_OVERFLOW
static final int GL_STACK_UNDERFLOW
static final int GL_OUT_OF_MEMORY
static final int GL_EXP
static final int GL_EXP2
static final int GL_FOG_DENSITY
static final int GL_FOG_START
static final int GL_FOG_END
static final int GL_FOG_MODE
static final int GL_FOG_COLOR
static final int GL_CW
static final int GL_CCW
static final int GL_SMOOTH_POINT_SIZE_RANGE
static final int GL_SMOOTH_LINE_WIDTH_RANGE
static final int GL_ALIASED_POINT_SIZE_RANGE
static final int GL_ALIASED_LINE_WIDTH_RANGE
static final int GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
static final int GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
static final int GL_MAX_LIGHTS
static final int GL_MAX_TEXTURE_SIZE
static final int GL_MAX_MODELVIEW_STACK_DEPTH
static final int GL_MAX_PROJECTION_STACK_DEPTH
static final int GL_MAX_TEXTURE_STACK_DEPTH
static final int GL_MAX_VIEWPORT_DIMS
static final int GL_MAX_ELEMENTS_VERTICES
static final int GL_MAX_ELEMENTS_INDICES
static final int GL_MAX_TEXTURE_UNITS
static final int GL_NUM_COMPRESSED_TEXTURE_FORMATS
static final int GL_COMPRESSED_TEXTURE_FORMATS
static final int GL_SUBPIXEL_BITS
static final int GL_RED_BITS
static final int GL_GREEN_BITS
static final int GL_BLUE_BITS
static final int GL_ALPHA_BITS
static final int GL_DEPTH_BITS
static final int GL_STENCIL_BITS
static final int GL_DONT_CARE
static final int GL_FASTEST
static final int GL_NICEST
static final int GL_PERSPECTIVE_CORRECTION_HINT
static final int GL_POINT_SMOOTH_HINT
static final int GL_LINE_SMOOTH_HINT
static final int GL_POLYGON_SMOOTH_HINT
static final int GL_FOG_HINT
static final int GL_LIGHT_MODEL_AMBIENT
static final int GL_LIGHT_MODEL_TWO_SIDE
static final int GL_AMBIENT
static final int GL_DIFFUSE
static final int GL_SPECULAR
static final int GL_POSITION
static final int GL_SPOT_DIRECTION
static final int GL_SPOT_EXPONENT
static final int GL_SPOT_CUTOFF
static final int GL_CONSTANT_ATTENUATION
static final int GL_LINEAR_ATTENUATION
static final int GL_QUADRATIC_ATTENUATION
static final int GL_BYTE
static final int GL_UNSIGNED_BYTE
static final int GL_SHORT
static final int GL_UNSIGNED_SHORT
static final int GL_FLOAT
static final int GL_FIXED
static final int GL_CLEAR
static final int GL_AND
static final int GL_AND_REVERSE
static final int GL_COPY
static final int GL_AND_INVERTED
static final int GL_NOOP
static final int GL_XOR
static final int GL_OR
static final int GL_NOR
static final int GL_EQUIV
static final int GL_INVERT
static final int GL_OR_REVERSE
static final int GL_COPY_INVERTED
static final int GL_OR_INVERTED
static final int GL_NAND
static final int GL_SET
static final int GL_EMISSION
static final int GL_SHININESS
static final int GL_AMBIENT_AND_DIFFUSE
static final int GL_MODELVIEW
static final int GL_PROJECTION
static final int GL_TEXTURE
static final int GL_ALPHA
static final int GL_RGB
static final int GL_RGBA
static final int GL_LUMINANCE
static final int GL_LUMINANCE_ALPHA
static final int GL_UNPACK_ALIGNMENT
static final int GL_PACK_ALIGNMENT
static final int GL_UNSIGNED_SHORT_4_4_4_4
static final int GL_UNSIGNED_SHORT_5_5_5_1
static final int GL_UNSIGNED_SHORT_5_6_5
static final int GL_FLAT
static final int GL_SMOOTH
static final int GL_KEEP
static final int GL_REPLACE
static final int GL_INCR
static final int GL_DECR
static final int GL_VENDOR
static final int GL_RENDERER
static final int GL_VERSION
static final int GL_EXTENSIONS
static final int GL_MODULATE
static final int GL_DECAL
static final int GL_ADD
static final int GL_TEXTURE_ENV_MODE
static final int GL_TEXTURE_ENV_COLOR
static final int GL_TEXTURE_ENV
static final int GL_NEAREST
static final int GL_LINEAR
static final int GL_NEAREST_MIPMAP_NEAREST
static final int GL_LINEAR_MIPMAP_NEAREST
static final int GL_NEAREST_MIPMAP_LINEAR
static final int GL_LINEAR_MIPMAP_LINEAR
static final int GL_TEXTURE_MAG_FILTER
static final int GL_TEXTURE_MIN_FILTER
static final int GL_TEXTURE_WRAP_S
static final int GL_TEXTURE_WRAP_T
static final int GL_TEXTURE0
static final int GL_TEXTURE1
static final int GL_TEXTURE2
static final int GL_TEXTURE3
static final int GL_TEXTURE4
static final int GL_TEXTURE5
static final int GL_TEXTURE6
static final int GL_TEXTURE7
static final int GL_TEXTURE8
static final int GL_TEXTURE9
static final int GL_TEXTURE10
static final int GL_TEXTURE11
static final int GL_TEXTURE12
static final int GL_TEXTURE13
static final int GL_TEXTURE14
static final int GL_TEXTURE15
static final int GL_TEXTURE16
static final int GL_TEXTURE17
static final int GL_TEXTURE18
static final int GL_TEXTURE19
static final int GL_TEXTURE20
static final int GL_TEXTURE21
static final int GL_TEXTURE22
static final int GL_TEXTURE23
static final int GL_TEXTURE24
static final int GL_TEXTURE25
static final int GL_TEXTURE26
static final int GL_TEXTURE27
static final int GL_TEXTURE28
static final int GL_TEXTURE29
static final int GL_TEXTURE30
static final int GL_TEXTURE31
static final int GL_REPEAT
static final int GL_CLAMP_TO_EDGE
static final int GL_PALETTE4_RGB8_OES
static final int GL_PALETTE4_RGBA8_OES
static final int GL_PALETTE4_R5_G6_B5_OES
static final int GL_PALETTE4_RGBA4_OES
static final int GL_PALETTE4_RGB5_A1_OES
static final int GL_PALETTE8_RGB8_OES
static final int GL_PALETTE8_RGBA8_OES
static final int GL_PALETTE8_R5_G6_B5_OES
static final int GL_PALETTE8_RGBA4_OES
static final int GL_PALETTE8_RGB5_A1_OES
static final int GL_LIGHT0
static final int GL_LIGHT1
static final int GL_LIGHT2
static final int GL_LIGHT3
static final int GL_LIGHT4
static final int GL_LIGHT5
static final int GL_LIGHT6
static final int GL_LIGHT7
void glActiveTexture(int texture)
glActiveTexture
selects which texture unit
subsequent texture state calls will affect. The number of texture
units an implementation supports is implementation dependent, it
must be at least 1 for OpenGL ES 1.0, or 2 for OpenGL ES 1.1.
It is always the case that GL_TEXTURE
i =
GL_TEXTURE0
+ i.
A texture unit consists of the texture enable state, texture matrix stack, texture environment and currently bound texture. Modifying any of these states has an effect only on the active texture unit.
Vertex arrays are client-side GL resources, which are selected by
the glClientActiveTexture
routine.
GL_INVALID_ENUM
is generated if
texture
is not one of
GL_TEXTURE
i, where 0 <= i <
GL_MAX_TEXTURE_UNITS
.
glGetIntegerv
with argument
GL_MAX_TEXTURE_UNITS
.
texture
- Specifies which texture unit to make active. The
number of texture units is implementation dependent, but must be
at least one (for 1.0) or two (for 1.1). texture
must be one of GL_TEXTURE
i, where 0 <=
i < GL_MAX_TEXTURE_UNITS
, which is an
implementation-dependent value. The intial value is
GL_TEXTURE0
.void glAlphaFunc(int func, float ref)
The alpha test discards fragments depending on the outcome of a
comparison between an incoming fragment's alpha value and a
constant reference value. glAlphaFunc
specifies the
reference value and the comparison function. The comparison is
performed only if alpha testing is enabled. To enable and disable
alpha testing, call glEnable
and
glDisable
with argument
GL_ALPHA_TEST
. Alpha testing is initially disabled.
func
and ref
specify the conditions
under which the pixel is drawn. The incoming alpha value is
compared to ref
using the function specified by
func
. If the value passes the comparison, the
incoming fragment is drawn if it also passes subsequent stencil
and depth buffer tests. If the value fails the comparison, no
change is made to the frame buffer at that pixel location. The
comparison functions are as follows:
GL_NEVER
GL_LESS
GL_EQUAL
GL_LEQUAL
GL_GREATER
GL_NOTEQUAL
GL_GEQUAL
GL_ALWAYS
glAlphaFunc
operates on all pixel write
operations, including those resulting from the scan conversion of
points, lines, and polygons. glAlphaFunc
does not
affect glClear
.
GL_INVALID_ENUM
is generated if func
is not an accepted value.
func
- Specifies the alpha comparison function. Symbolic
constants GL_NEVER
, GL_LESS
,
GL_EQUAL
, GL_LEQUAL
,
GL_GREATER
, GL_NOTEQUAL
,
GL_GEQUAL
, and GL_ALWAYS
are accepted. The
initial value is GL_ALWAYS
.ref
- Specifies the reference value that incoming alpha
values are compared to. This value is clamped to the range
[0, 1]
, where 0 represents the lowest possible alpha
value and 1 the highest possible value. The initial reference
value is 0.void glAlphaFuncx(int func, int ref)
glAlphaFunc
.glAlphaFunc(int, float)
void glBindTexture(int target, int texture)
glBindTexture
lets you create or use a named
texture. Calling glBindTexture
with
target
set to GL_TEXTURE_2D
, and
texture
set to the name of the new texture binds the
texture name to the target. When a texture is bound to a target,
the previous binding for that target is automatically broken.
Texture names are unsigned integers. The value 0 is reserved
to represent the default texture for each texture target. Texture
names and the corresponding texture contents are local to the
shared texture-object space (see eglCreateContext
)
of the current GL rendering context.
You may use glGenTextures
to generate a set of new
texture names.
While a texture is bound, GL operations on the target to which it is bound affect the bound texture. If texture mapping of the dimensionality of the target to which a texture is bound is active, the bound texture is used. In effect, the texture targets become aliases for the textures currently bound to them, and the texture name 0 refers to the default textures that were bound to them at initialization.
A texture binding created with glBindTexture
remains
active until a different texture is bound to the same target, or
until the bound texture is deleted with
glDeleteTextures
.
Once created, a named texture may be re-bound to the target of
the matching dimensionality as often as needed. It is usually
much faster to use glBindTexture
to bind an existing named
texture to one of the texture targets than it is to reload the
texture image using glTexImage2D
.
GL_INVALID_ENUM
is generated if
target
is not one of the allowable values.
target
- Specifies the target to which the texture is
bound. Must be GL_TEXTURE_2D
.texture
- Specifies the name of a texture.void glBlendFunc(int sfactor, int dfactor)
Pixels can be drawn using a function that blends the incoming
(source) values with the values that are already in the color
buffer (the destination values). Use glEnable
and
glDisable
with argument GL_BLEND
to
enable and disable blending. Blending is initially disabled.
glBlendFunc
defines the operation of blending
when it is enabled. sfactor
specifies which of eleven
methods is used to scale the source color
components. dfactor
specifies which of ten methods
is used to scale the destination color components. The eleven
possible methods are described in the following table. Each
method defines four scale factors, one each for red, green, blue,
and alpha.
In the table and in subsequent equations, source and
destination color components are referred to as (Rs, Gs,
Bs, As)
and (Rd, Gd, Bd, Ad)
. They are
understood to have integer values between 0 and (kR, kG,
kB, kA)
, where
kc = 2mc - 1and
(mR, mG, mB, mA)
is the number of red, green,
blue, and alpha bitplanes.
Source and destination scale factors are referred to as
(sR, sG, sB, sA)
and (dR, dG, dB,
dA)
. The scale factors described in the table, denoted
(fR, fG, fB, fA)
, represent either source or
destination factors. All scale factors have range [0, 1].
Parameter (fR, fG, fB, fA) GL_ZERO (0, 0, 0, 0) GL_ONE (1, 1, 1, 1) GL_SRC_COLOR (Rs/kR, Gs/kG, Bs/kB, As/kA ) GL_ONE_MINUS_SRC_COLOR (1, 1, 1, 1) - (Rs/kR, Gs/kG, Bs/kB, As/kA) GL_DST_COLOR (Rd/kR, Gd/kG, Bd/kB, Ad/kA ) GL_ONE_MINUS_DST_COLOR (1, 1, 1, 1) - (Rd/kR, Gd/kG, Bd/kB, Ad/kA) GL_SRC_ALPHA (As/kA, As/kA, As/kA, As/kA ) GL_ONE_MINUS_SRC_ALPHA (1, 1, 1, 1) - (As/kA, As/kA, As/kA, As/kA) GL_DST_ALPHA (Ad/kA, Ad/kA, Ad/kA, Ad/kA ) GL_ONE_MINUS_DST_ALPHA (1, 1, 1, 1) - (Ad/kA, Ad/kA, Ad/kA, Ad/kA) GL_SRC_ALPHA_SATURATE (i, i, i, 1)
In the table,
i = min(As, kA - Ad) / kA
To determine the blended values of a pixel, the system uses the following equations:
Rd = min( kR, Rs sR + Rd dR ) Gd = min( kG, Gs sG + Gd dG ) Bd = min( kB, Bs sB + Bd dB ) Ad = min( kA, As sA + Ad dA )
Despite the apparent precision of the above equations,
blending arithmetic is not exactly specified, because blending
operates with imprecise integer color values. However, a blend
factor that should be equal to 1 is guaranteed not to modify its
multiplicand, and a blend factor equal to 0 reduces its
multiplicand to 0. For example, when sfactor
is
GL_SRC_ALPHA
, dfactor
is
GL_ONE_MINUS_SRC_ALPHA
, and As
is equal
to kA
, the equations reduce to simple replacement:
Rd = Rs Gd = Gs Bd = Bs Ad = As
glBlendFunc
operates on all pixel write
operations, including the scan conversion of points, lines, and
polygons. glBlendFunc
does not affect
glClear
.
Transparency is best implemented using
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
with
primitives sorted from farthest to nearest. Note that this
transparency calculation does not require the presence of alpha
bitplanes in the color buffer.
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
is
also useful for rendering antialiased points and lines.
GL_INVALID_ENUM
is generated if either
sfactor
or dfactor
is not an accepted
value.
sfactor
- Specifies how the red, green, blue, and alpha
source blending factors are computed. The following symbolic
constants are accepted: GL_ZERO
,
GL_ONE
, GL_SRC_COLOR
(1.1 only),
GL_ONE_MINUS_SRC_COLOR
(1.1 only),
GL_DST_COLOR
, GL_ONE_MINUS_DST_COLOR
,
GL_SRC_ALPHA
, GL_ONE_MINUS_SRC_ALPHA
,
GL_DST_ALPHA
, GL_ONE_MINUS_DST_ALPHA
,
and GL_SRC_ALPHA_SATURATE
. The initial value is
GL_ONE
.dfactor
- Specifies how the red, green, blue, and alpha
destination blending factors are computed. The following symbolic
constants are accepted: GL_ZERO
,
GL_ONE
, GL_SRC_COLOR
,
GL_ONE_MINUS_SRC_COLOR
, GL_DST_COLOR
(1.1 only), GL_ONE_MINUS_DST_COLOR
(1.1 only),
GL_SRC_ALPHA
, GL_ONE_MINUS_SRC_ALPHA
,
GL_DST_ALPHA
, and
GL_ONE_MINUS_DST_ALPHA
. The initial value is
GL_ZERO
.void glClear(int mask)
glClear
sets the bitplane area of the window to
values previously selected by glClearColor
,
glClearDepth
, and glClearStencil
.
The pixel ownership test, the scissor test, dithering, and the
color buffer masks affect the operation of
glClear
. The scissor box bounds the cleared
region. Alpha function, blend function, logical operation,
stenciling, texture mapping, and depth-buffering are ignored by
glClear
.
glClear
takes a single argument that is the
bitwise OR of several values indicating which buffer is to be
cleared.
The values are as follows:
GL_COLOR_BUFFER_BIT
GL_DEPTH_BUFFER_BIT
GL_STENCIL_BUFFER_BIT
The value to which each buffer is cleared depends on the setting of the clear value for that buffer.
If a buffer is not present, then a glClear
directed at that buffer has no effect.
GL_INVALID_VALUE
is generated if any bit other
than the defined bits is set in mask
.
mask
- Bitwise OR of masks that indicate the buffers to be
cleared. Valid masks are GL_COLOR_BUFFER_BIT
,
GL_DEPTH_BUFFER_BIT
, and GL_STENCIL_BUFFER_BIT
.void glClearColor(float red, float green, float blue, float alpha)
glClearColor
specifies the red, green, blue, and
alpha values used by glClear
to clear the color
buffer. Values specified by glClearColor
are clamped
to the range [0, 1]
.
red
- Specifies the red value used when the color buffer is
cleared. The initial value is 0.green
- Specifies the green value used when the color buffer
is cleared. The initial value is 0.blue
- Specifies the blue value used when the color buffer is
cleared. The initial value is 0.alpha
- Specifies the alpha value used when the color buffer
is cleared. The initial value is 0.void glClearColorx(int red, int green, int blue, int alpha)
glClearColor
.void glClearDepthf(float depth)
glClearDepth
specifies the depth value used by
glClear
to clear the depth buffer. Values specified
by glClearDepth
are clamped to the range [0, 1]
.
depth
- Specifies the depth value used when the depth buffer
is cleared. The initial value is 1.void glClearDepthx(int depth)
glClearDepth
.glClearDepthf(float)
void glClearStencil(int s)
glClearStencil
specifies the index used by
glClear
to clear the stencil buffer. s
is masked with 2^m - 1, where m is the number of
bits in the stencil buffer.
glGetIntegerv
with argument
GL_STENCIL_BITS
s
- Specifies the index used when the stencil buffer is
cleared. The initial value is 0.void glClientActiveTexture(int texture)
glClientActiveTexture
selects the vertex array
client state parameters to be modified by
glTexCoordPointer
, and enabled or disabled with
glEnableClientState
or
glDisableClientState
, respectively, when called with
a parameter of GL_TEXTURE_COORD_ARRAY
.
It is always the case that GL_TEXTURE
i =
GL_TEXTURE0
+ i.
GL_INVALID_ENUM
is generated if
texture
is not one of
GL_TEXTURE
i, where 0 <= i <
GL_MAX_TEXTURE_UNITS
.
glGetIntegerv
with argument
GL_MAX_TEXTURE_UNITS
texture
- Specifies which texture unit to make active. The
number of texture units is implementation dependent, but must be
at least one (for 1.0), or two (for 1.1). texture
must be one of GL_TEXTURE
i, 0 <=
i < GL_MAX_TEXTURE_UNITS
, which is an
implementation-dependent value. The initial value is
GL_TEXTURE0
.void glColor4f(float red, float green, float blue, float alpha)
The GL stores a current four-valued RGBA
color. glColor
sets a new four-valued RGBA color.
Current color values are stored in fixed-point or floating-point. In case the values are stored in floating-point, the mantissa and exponent sizes are unspecified.
Neither fixed-point nor floating-point values are clamped to
the range [0, 1]
before the current color is
updated. However, color components are clamped to this range
before they are interpolated or written into the color buffer.
red
- Specifies a new red value for the current color. The
initial value is 1.green
- Specifies a new green value for the current color. The
initial value is 1.blue
- Specifies a new blue value for the current color. The
initial value is 1.alpha
- Specifies a new alpha value for the current color. The
initial value is 1.void glColor4x(int red, int green, int blue, int alpha)
glColor
.void glColorMask(boolean red, boolean green, boolean blue, boolean alpha)
glColorMask
specifies whether the individual
components in the color buffer can or cannot be written. If
red
is false
, for example, no change
is made to the red component of any pixel in the color buffer,
regardless of the drawing operation attempted, including
glClear
.
Changes to individual bits of components cannot be controlled. Rather, changes are either enabled or disabled for entire color components.
red
- Specifies whether red can or cannot be written into
the color buffer. The initial value is true
, indicating
that the color component can be written.green
- Specifies whether green can or cannot be written into
the color buffer. The initial value is true
, indicating
that the color component can be written.blue
- Specifies whether blue can or cannot be written into
the color buffer. The initial value is true
, indicating
that the color component can be written.alpha
- Specifies whether alpha can or cannot be written
into the color buffer. The initial value is true
,
indicating that the color component can be written.void glColorPointer(int size, int type, int stride, Buffer pointer)
glColorPointer
specifies an array of color
components to use when rendering. size
specifies the
number of components per color, and must be 4. type
specifies the data type of each color component, and
stride
specifies the byte stride from one color to
the next allowing vertices and attributes to be packed into a
single array or stored in separate arrays. (Single-array storage
may be more efficient on some implementations.)
When a color array is specified, size
,
type
, stride
, and pointer
are saved as client-side state.
If the color array is enabled, it is used when
glDrawArrays
, or glDrawElements
is
called. To enable and disable the color array, call
glEnableClientState
and
glDisableClientState
with the argument
GL_COLOR_ARRAY
. The color array is initially
disabled and isn't accessed when glDrawArrays
or
glDrawElements
is called.
Use glDrawArrays
to construct a sequence of
primitives (all of the same type) from prespecified vertex and
vertex attribute arrays. Use glDrawElements
to
construct a sequence of primitives by indexing vertices and
vertex attributes.
Setting pointer
to null
releases any
previously set Buffer
.
glColorPointer
is typically implemented on the
client side.
GL_INVALID_VALUE
is generated if
size
is not 4.
GL_INVALID_ENUM
is generated if type
is not an accepted value.
GL_INVALID_VALUE
is generated if
stride
is negative.
The pointer
argument must be a direct buffer
with a type matching that specified by the type
argument.
size
- Specifies the number of components per color. Must be
4. The initial value is 4.type
- Specifies the data type of each color component in
the array. Symbolic constants GL_UNSIGNED_BYTE
,
GL_FIXED
, and GL_FLOAT
are
accepted. The initial value is GL_FLOAT
.stride
- Specifies the byte offset between consecutive
colors. If stride
is 0, the colors are understood to
be tightly packed in the array. The initial value is 0.pointer
- Specifies a Buffer
containing the
colors.java.lang.IllegalStateException
- if OpenGL ES 1.1 is being used and
VBOs are enabled.java.lang.IllegalArgumentException
- if pointer
is
null
.java.lang.IllegalArgumentException
- if pointer
is
not direct.void glCompressedTexImage2D(int target, int level, int internalformat, int width, int height, int border, int imageSize, Buffer data)
glCompressedTexImage2D
defines a two-dimensional
texture image in compressed format.
The supported compressed formats are paletted textures. The
layout of the compressed image is a palette followed by multiple
mip-levels of texture indices used for lookup into the
palette. The palette format can be one of R5_G6_B5
,
RGBA4
, RGB5_A1
, RGB8
, or
RGBA8
. The texture indices can have a resolution of
4 or 8 bits. As a result, the number of palette entries is either
16 or 256. If level is 0, only one mip-level of texture indices
is described in data. Otherwise, the negative value of level
specifies up to which mip-level the texture indices are
described. A possibly remaining pad nibble (half byte) for the
lowest resolution mip-level is ignored.
glPixelStore
has no effect on compressed texture
images.
glCompressedTexImage2D
specifies the
two-dimensional texture for the currently bound texture,
specified with glBindTexture
, and the current
texture unit, specified with glActiveTexture
.
GL_INVALID_ENUM
is generated if
target
is not GL_TEXTURE_2D
.
GL_INVALID_VALUE
may be generated if
level
is greater than 0 or the absolute value of
level is greater than log_2(max), where max is the
returned value of GL_MAX_TEXTURE_SIZE
.
(1.0) GL_INVALID_VALUE
is generated if
internalformat
is not one of the accepted symbolic
constants.
(1.1) GL_INVALID_ENUM
is generated if
internalformat
is not one of the accepted symbolic
constants.
GL_INVALID_VALUE
is generated if
width
or height
is less than 0 or
greater than 2 + GL_MAX_TEXTURE_SIZE
, or if either
cannot be represented as 2^k + 2*border
for
some integer k.
GL_INVALID_VALUE
is generated if
border
is not 0.
GL_INVALID_VALUE
is generated if
imageSize
is not consistent with format, dimentions,
and contents of the compressed image.
target
- Specifies the target texture. Must be
GL_TEXTURE_2D
.level
- Specifies the level-of-detail number. Must be less
than or equal to 0. Level 0 indicates a single
mip-level. Negative values indicate how many mip-levels are
described by data.internalformat
- Specifies the color components in the
texture. The following symbolic constants are accepted:
GL_PALETTE4_RGB8_OES
,
GL_PALETTE4_RGBA8_OES
,
GL_PALETTE4_R5_G6_B5_OES
,
GL_PALETTE4_RGBA4_OES
,
GL_PALETTE4_RGB5_A1_OES
,
GL_PALETTE8_RGB8_OES
,
GL_PALETTE8_RGBA8_OES
,
GL_PALETTE8_R5_G6_B5_OES
,
GL_PALETTE8_RGBA4_OES
, and
GL_PALETTE8_RGB5_A1_OES
.width
- Specifies the width of the texture image. Must be
2^n + 2*border
for some integer n. All
implementations support texture images that are at least 64
texels wide.height
- Specifies the height of the texture image. Must be
2^m + 2*border
for some integer m. All
implementations support texture images that are at least 64
texels high.border
- Specifies the width of the border. Must be 0.imageSize
- Specifies the size of the compressed image data
in bytes.data
- Specifies a Buffer
containing the
compressed image data.java.lang.IllegalArgumentException
- if data
is
null
.java.lang.IllegalArgumentException
- if
data.remaining()
is less than
imageSize
.void glCompressedTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int imageSize, Buffer data)
glCompressedTexSubImage2D
redefines a contiguous
subregion of an existing two-dimensional compressed texture
image. The texels referenced by pixels
replace the
portion of the existing texture array with x indices
xoffset
and xoffset
+
width
- 1, inclusive, and y indices
yoffset
and yoffset
+
height
- 1, inclusive. This region may not include
any texels outside the range of the texture array as it was
originally specified. It is not an error to specify a subtexture
with zero width or height, but such a specification has no
effect.
Currently, there is no supported compressed format for this function.
glPixelStore
has no effect on compressed texture
images.
glCompressedTexSubImage2D
specifies the
two-dimensional sub texture for the currently bound texture,
specified with glBindTexture
, and the current
texture unit, specified with glActiveTexture
.
GL_INVALID_ENUM
is generated if
target
is not GL_TEXTURE_2D
.
GL_INVALID_OPERATION
is generated if the texture
array has not been defined by a previous
glCompressedTexImage2D
operation.
GL_INVALID_VALUE
is generated if
level
is less than 0.
GL_INVALID_VALUE
may be generated if
level
is greater than log2(max), where
max is the returned value of
GL_MAX_TEXTURE_SIZE
.
GL_INVALID_VALUE
is generated if
xoffset
< -b, xoffset
+ width >
(w - b), yoffset
< -b, or
yoffset
+ height
> (h - b)
, where w is the texture width, h is the texture
height, and b is the border of the texture image being
modified. Note that w and h include twice the
border width.
GL_INVALID_VALUE
is generated if
width
or height
is less than 0.
GL_INVALID_ENUM
is generated if type
is not a type constant.
GL_INVALID_OPERATION
is generated if type
is
GL_UNSIGNED_SHORT_5_6_5
and
format
is not GL_RGB
.
GL_INVALID_OPERATION
is generated if
type
is one of
GL_UNSIGNED_SHORT_4_4_4_4
, or
GL_UNSIGNED_SHORT_5_5_5_1
and format
is
not GL_RGBA
.
GL_INVALID_OPERATION
is generated if none of the
above error conditions apply.
glGetIntegerv
with argument
GL_MAX_TEXTURE_SIZE
target
- Specifies the target texture. Must be
GL_TEXTURE_2D
.level
- Specifies the level-of-detail number.xoffset
- Specifies a texel offset in the x direction within
the texture array.yoffset
- Specifies a texel offset in the y direction within
the texture array.width
- Specifies the width of the texture subimage.height
- Specifies the height of the texture subimage.format
- Specifies the format of the pixel data. Currently,
there is no supported format.imageSize
- Specifies the size of the compressed pixel data in bytes.data
- Specifies a Buffer
containing the
compressed image data.java.lang.IllegalArgumentException
- if data
is
null
.java.lang.IllegalArgumentException
- if
data.remaining()
is less than
imageSize
.void glCopyTexImage2D(int target, int level, int internalformat, int x, int y, int width, int height, int border)
glCopyTexImage2D
defines a two-dimensional
texture image with pixels from the color buffer.
The screen-aligned pixel rectangle with lower left corner at
(x
, y
) and with a width of
width
+ 2*border
and a height of
height
+ 2*border
defines the texture
array at the mipmap level specified by
level
. internalformat
specifies the
color components of the texture.
The red, green, blue, and alpha components of each pixel that is read are converted to an internal fixed-point or floating-point format with unspecified precision. The conversion maps the largest representable component value to 1.0, and component value 0 to 0.0. The values are then converted to the texture's internal format for storage in the texel array.
internalformat
must be chosen such that color
buffer components can be dropped during conversion to the
internal format, but new components cannot be added. For example,
an RGB color buffer can be used to create LUMINANCE
or RGB
textures, but not ALPHA
,
LUMINANCE_ALPHA
or RGBA
textures.
Pixel ordering is such that lower x and y screen coordinates correspond to lower s and t texture coordinates.
If any of the pixels within the specified rectangle of the color buffer are outside the window associated with the current rendering context, then the values obtained for those pixels are undefined.
An image with height
or width
of 0
indicates a null-texture.
GL_INVALID_ENUM
is generated if
target
is not GL_TEXTURE_2D
.
GL_INVALID_OPERATION
is generated if
internalformat
is not compatible with the color
buffer format.
GL_INVALID_VALUE
is generated if
level
is less than 0.
GL_INVALID_VALUE
may be generated if level is
greater than log_2(max), where max is the returned
value of GL_MAX_TEXTURE_SIZE
.
GL_INVALID_VALUE
is generated if
width
or height
is less than 0, greater
than GL_MAX_TEXTURE_SIZE
, or if width
or height
cannot be represented as 2^k +
2*border
for some integer k.
GL_INVALID_VALUE
is generated if
border
is not 0.
(1.0) GL_INVALID_VALUE
is generated if
internalformat
is not an accepted constant.
(1.1) GL_INVALID_ENUM
is generated if
internalformat
is not an accepted constant.
glGetIntegerv
with argument
GL_MAX_TEXTURE_SIZE
target
- Specifies the target texture. Must be
GL_TEXTURE_2D
.level
- Specifies the level-of-detail number. Level 0 is the
base image level. Level n is the nth mipmap reduction image.internalformat
- Specifies the color components of the
texture. Must be one of the following symbolic constants:
GL_ALPHA
, GL_LUMINANCE
,
GL_LUMINANCE_ALPHA
, GL_RGB
, or
GL_RGBA
.x
- Specifies the window x coordinate of the lower left
corner of the rectangular region of pixels to be copied.y
- Specifies the window y coordinate of the lower left
corner of the rectangular region of pixels to be copied.width
- Specifies the width of the texture image. Must be 0
or 2^nborder for some integer n.height
- Specifies the height of the texture image. Must be
0 or 2^m + 2*border
for some integer m.border
- Specifies the width of the border. Must be 0.void glCopyTexSubImage2D(int target, int level, int xoffset, int yoffset, int x, int y, int width, int height)
glCopyTexSubImage2D
replaces a rectangular portion of a
two-dimensional texture image with pixels from the color buffer.
The screen-aligned pixel rectangle with lower left corner at
(x
, y
) and with width width and height
height replaces the portion of the texture array with x indices
xoffset
through xoffset
+
width
- 1, inclusive, and y indices
yoffset
through yoffset
+
height
- 1, inclusive, at the mipmap level specified
by level.
The pixels in the rectangle are processed the same way as with
glCopyTexImage2D
.
glCopyTexSubImage2D
requires that the internal
format of the currently bound texture is such that color buffer
components can be dropped during conversion to the internal
format, but new components cannot be added. For example, an RGB
color buffer can be used to create LUMINANCE or RGB textures, but
not ALPHA, LUMINANCE_ALPHA or RGBA textures.
The destination rectangle in the texture array may not include any texels outside the texture array as it was originally specified. It is not an error to specify a subtexture with zero width or height, but such a specification has no effect.
If any of the pixels within the specified rectangle of the current color buffer are outside the read window associated with the current rendering context, then the values obtained for those pixels are undefined.
No change is made to the internalformat
,
width
, height
, or border
parameters of the specified texture array or to texel values
outside the specified subregion.
GL_INVALID_ENUM
is generated if
target
is not GL_TEXTURE_2D
.
GL_INVALID_OPERATION
is generated if the texture
array has not been defined by a previous
glTexImage2D
or glCopyTexImage2D
operation or if the internal format of the currently bound
texture is not compatible with the color buffer format.
GL_INVALID_VALUE
is generated if
level
is less than 0.
GL_INVALID_VALUE
may be generated if
level
is greater than log_2(max), where
max is the returned value of
GL_MAX_TEXTURE_SIZE
.
GL_INVALID_VALUE
is generated if x < -b,
or y < -b, where b is the border of the texture
being modified.
GL_INVALID_VALUE
is generated if
xoffset
< -b, xoffset
+
width
> (w - b) , yoffset
<
-b, or yoffset
+ height
> (h
- b) , where w is the texture width, h is the
texture height, and b is the border of the texture image
being modified. Note that w and h include twice the
border width.
glGetIntegerv
with argument
GL_MAX_TEXTURE_SIZE
target
- Specifies the target texture. Must be
GL_TEXTURE_2D
.level
- Specifies the level-of-detail number. Level 0 is the
base image level. Level n is the nth mipmap reduction image.xoffset
- Specifies a texel offset in the x direction within
the texture array.yoffset
- Specifies a texel offset in the y direction within
the texture array.x
- Specifies the window x coordinate of the lower left
corner of the rectangular region of pixels to be copied.y
- Specifies the window y coordinate of the lower left
corner of the rectangular region of pixels to be copied.width
- Specifies the width of the texture subimage.height
- Specifies the height of the texture subimage.void glCullFace(int mode)
glCullFace
specifies whether front- or
back-facing polygons are culled (as specified by
mode
) when culling is enabled. To enable and disable
culling, call glEnable
and glDisable
with argument GL_CULL_FACE
. Culling is initially
disabled.
glFrontFace
specifies which of the clockwise and
counterclockwise polygons are front-facing and back-facing.
If mode is GL_FRONT_AND_BACK
, no polygons are
drawn, but other primitives such as points and lines are drawn.
GL_INVALID_ENUM
is generated if mode
is not an accepted value.
mode
- Specifies whether front- or back-facing polygons are
culled. Symbolic constants GL_FRONT
,
GL_BACK
, and GL_FRONT_AND_BACK
are
accepted. The initial value is GL_BACK
.void glDeleteTextures(int n, int[] textures, int offset)
glDeleteTextures
deletes n
textures
named by the elements of the array textures
. After a
texture is deleted, it has no contents or dimensionality, and its
name is free for reuse (for example by
glGenTextures
). If a texture that is currently bound
is deleted, the binding reverts to 0 (the default texture).
glDeleteTextures
silently ignores 0's and names
that do not correspond to existing textures.
GL_INVALID_VALUE
is generated if n
is negative.
n
- Specifies the number of textures to be deleted.textures
- Specifies an array of textures to be deleted.offset
- the starting offset within the
textures
array.java.lang.IllegalArgumentException
- if textures
is
null
.java.lang.IllegalArgumentException
- if offset
is
less than 0.java.lang.IllegalArgumentException
- if textures.length -
offset
is less than n
.void glDeleteTextures(int n, IntBuffer textures)
Buffer
version of glDeleteTextures
.textures
- an IntBuffer
.java.lang.IllegalArgumentException
- if textures
is
null
.java.lang.IllegalArgumentException
- if
textures.remaining()
is less than n
.glDeleteTextures(int n, int[] textures, int offset)
void glDepthFunc(int func)
glDepthFunc
specifies the function used to compare
each incoming pixel depth value with the depth value present in
the depth buffer. The comparison is performed only if depth
testing is enabled. To enable and disable depth testing, call
glEnable
and glDisable
with argument
GL_DEPTH_TEST
. Depth testing is initially disabled.
func specifies the conditions under which the pixel will be drawn. The comparison functions are as follows:
GL_NEVER
GL_LESS
GL_EQUAL
GL_LEQUAL
GL_GREATER
GL_NOTEQUAL
GL_GEQUAL
GL_ALWAYS
The initial value of func is GL_LESS
. Initially,
depth testing is disabled. Even if the depth buffer exists and
the depth mask is non-zero, the depth buffer is not updated if
the depth test is disabled.
GL_INVALID_ENUM
is generated if func
is not an accepted value.
func
- Specifies the depth comparison function. Symbolic
constants GL_NEVER
, GL_LESS
,
GL_EQUAL
, GL_LEQUAL
,
GL_GREATER
, GL_NOTEQUAL
,
GL_GEQUAL
, and GL_ALWAYS
are
accepted. The initial value is GL_LESS
.void glDepthMask(boolean flag)
glDepthMask
specifies whether the depth buffer is
enabled for writing. If flag
is false
,
depth buffer writing is disabled. Otherwise, it is
enabled. Initially, depth buffer writing is enabled.
glDepthMask
does not affect glClear
.
flag
- Specifies whether the depth buffer is enabled for
writing. If flag is GL_FALSE
, depth buffer writing
is disabled, otherwise it is enabled. The initial value is
true
.void glDepthRangef(float zNear, float zFar)
After clipping and division by w, depth coordinates range from
-1 to 1, corresponding to the near and far clipping
planes. glDepthRange
specifies a linear mapping of
the normalized depth coordinates in this range to window depth
coordinates. Regardless of the actual depth buffer
implementation, window coordinate depth values are treated as
though they range from 0 through 1 (like color components). Thus,
the values accepted by glDepthRange
are both clamped
to this range before they are accepted.
The setting of (0, 1) maps the near plane to 0 and the far plane to 1. With this mapping, the depth buffer range is fully utilized.
It is not necessary that near
be less than
far
. Reverse mappings such as near
= 1,
and far
= 0 are acceptable.
zNear
- Specifies the mapping of the near clipping plane to
window coordinates. The initial value is 0.zFar
- Specifies the mapping of the far clipping plane to
window coordinates. The initial value is 1.void glDepthRangex(int zNear, int zFar)
glDepthRange
.void glDisable(int cap)
glEnable(int)
void glDisableClientState(int array)
glEnableClientState(int)
void glDrawArrays(int mode, int first, int count)
glDrawArrays
specifies multiple geometric
primitives with very few subroutine calls. You can prespecify
separate arrays of vertices, normals, colors, and texture
coordinates and use them to construct a sequence of primitives
with a single call to glDrawArrays
.
When glDrawArrays
is called, it uses
count
sequential elements from each enabled array to
construct a sequence of geometric primitives, beginning with
element first
. mode
specifies what kind
of primitives are constructed, and how the array elements
construct those primitives. If GL_VERTEX_ARRAY
is
not enabled, no geometric primitives are generated.
Vertex attributes that are modified by
glDrawArrays
have an unspecified value after
glDrawArrays
returns. For example, if
GL_COLOR_ARRAY
is enabled, the value of the current
color is undefined after glDrawArrays
executes. Attributes that aren't modified remain well defined.
GL_INVALID_ENUM
is generated if mode
is not an accepted value.
GL_INVALID_VALUE
is generated if
count
is negative.
mode
- Specifies what kind of primitives to render. Symbolic
constants GL_POINTS
, GL_LINE_STRIP
,
GL_LINE_LOOP
, GL_LINES
,
GL_TRIANGLE_STRIP
, GL_TRIANGLE_FAN
, and
GL_TRIANGLES
are accepted.first
- Specifies the starting index in the enabled arrays.count
- Specifies the number of indices to be rendered.java.lang.ArrayIndexOutOfBoundsException
- if any index in the
sequence first, ..., first + count - 1
will result
in a reference to an entry outside of the current vertex, color,
normal, texture coordinate, point size, matrix index, or weight
array.void glDrawElements(int mode, int count, int type, Buffer indices)
glDrawElements
specifies multiple geometric
primitives with very few subroutine calls. You can prespecify
separate arrays of vertices, normals, colors, and texture
coordinates and use them to construct a sequence of primitives
with a single call to glDrawElements
.
When glDrawElements
is called, it uses
count
sequential indices from indices
to lookup elements in enabled arrays to construct a sequence of
geometric primitives. mode
specifies what kind of
primitives are constructed, and how the array elements construct
these primitives. If GL_VERTEX_ARRAY
is not enabled,
no geometric primitives are constructed.
Vertex attributes that are modified by
glDrawElements
have an unspecified value after
glDrawElements
returns. For example, if
GL_COLOR_ARRAY
is enabled, the value of the current
color is undefined after glDrawElements
executes. Attributes that aren't modified maintain their previous
values.
GL_INVALID_ENUM
is generated if mode
is not an accepted value.
GL_INVALID_ENUM
is generated if type
is not an accepted value.
GL_INVALID_VALUE
is generated if
count
is negative.
mode
- Specifies what kind of primitives to render. Symbolic
constants GL_POINTS
, GL_LINE_STRIP
,
GL_LINE_LOOP
, GL_LINES
,
GL_TRIANGLE_STRIP
, GL_TRIANGLE_FAN
, and
GL_TRIANGLES
are accepted.count
- Specifies the number of elements to be rendered.type
- Specifies the type of the values in indices. Must be
either GL_UNSIGNED_BYTE
or GL_UNSIGNED_SHORT
.indices
- Specifies a pointer to the location where the
indices are stored.java.lang.IllegalStateException
- if the most recent call to
glBindBuffer
for the
GL_ELEMENT_ARRAY_BUFFER
target had a non-zero
buffer
parameter (i.e., an index buffer is bound).java.lang.IllegalArgumentException
- if indices
is
null
.java.lang.ArrayIndexOutOfBoundsException
- if any index in the
sequence of indices from 0
to count - 1
would result in a reference to an entry outside of the currently
bound index or data (vertex, color, normal, texture coordinate
array, weight, matrix index, or point size) array.void glEnable(int cap)
glEnable
and glDisable
enable and
disable various capabilities. The initial value for each
capability with the exception of GL_DITHER
and
GL_MULTISAMPLE
is GL_FALSE
. The initial
value for GL_DITHER
and GL_MULTISAMPLE
is GL_TRUE
.
Both glEnable
and glDisable
take a
single argument, cap
, which can assume one of the
following values:
GL_ALPHA_TEST
If enabled, do alpha testing. See glAlphaFunc
.
GL_BLEND
If enabled, blend the incoming color values with the values in
the color buffers. See glBlendFunc
.
GL_COLOR_LOGIC_OP
If enabled, apply the currently selected logical operation to the
incoming color and color buffer values. See glLogicOp
.
GL_COLOR_MATERIAL
If enabled, have ambient and diffuse material parameters track the current color.
GL_CULL_FACE
If enabled, cull polygons based on their winding in window
coordinates. See glCullFace
.
GL_DEPTH_TEST
If enabled, do depth comparisons and update the depth
buffer. Note that even if the depth buffer exists and the depth
mask is non-zero, the depth buffer is not updated if the depth
test is disabled. See glDepthFunc
,
glDepthMask
, and glDepthRange
.
GL_DITHER
If enabled, dither color components or indices before they are written to the color buffer.
GL_FOG
If enabled, blend a fog color into the posttexturing color. See
glFog
.
GL_LIGHT
iIf enabled, include light i in the evaluation of the
lighting equation. See glLightModel
and
glLight
.
GL_LIGHTING
If enabled, use the current lighting parameters to compute the
vertex color. Otherwise, simply associate the current color with
each vertex. See glMaterial
,
glLightModel
, and glLight
.
GL_LINE_SMOOTH
If enabled, draw lines with correct filtering. Otherwise, draw
aliased lines. See glLineWidth
.
GL_MULTISAMPLE
If enabled, perform multisampling of fragments for single-pass
antialiasing and other effects. See glSampleCoverage
.
GL_NORMALIZE
If enabled, normal vectors are scaled to unit length after
transformation. See glNormal
and
glNormalPointer
.
GL_POINT_SMOOTH
If enabled, draw points with proper filtering. Otherwise, draw
aliased points. See glPointSize
.
GL_POLYGON_OFFSET_FILL
If enabled, an offset is added to depth values of a polygon's
fragments before the depth comparison is performed. See
glPolygonOffset
.
GL_RESCALE_NORMAL
If enabled, normal vectors are scaled by a factor derived from
the modelview matrix. See glNormal
and
glNormalPointer
.
GL_SAMPLE_ALPHA_TO_MASK
(1.0 only)If enabled, convert fragment alpha values to multisample coverage
modification masks. See glSampleCoverage
.
GL_SAMPLE_ALPHA_TO_COVERAGE
(1.1 only)If enabled, a temporary coverage value is generated where each
bit is determined by the alpha value at the corresponding sample
location. The temporary coverage value is then ANDed with the
fragment coverage value. Otherwise the fragment coverage value is
unchanged at this point. See glSampleCoverage
.
GL_SAMPLE_ALPHA_TO_ONE
If enabled, set fragment alpha to the maximum permissible value
after computing multisample coverage modification masks. See
glSampleCoverage
.
GL_SAMPLE_MASK
(1.0 only)If enabled, apply a mask to modify fragment coverage during
multisampling. See glSampleCoverage
.
GL_SAMPLE_COVERAGE
(1.1 only)If enabled, the fragment coverage is ANDed with another temporary
coverage. This temporary coverage is generated in the same manner
as for GL_SAMPLE_ALPHA_TO_COVERAGE
described above,
but as a function of the value of
GL_SAMPLE_COVERAGE_VALUE
. If
GL_SAMPLE_COVERAGE_INVERT
is GL_TRUE
,
the temporary coverage is inverted (all bit values are inverted)
before it is ANDed with the fragment coverage. See
glSampleCoverage
.
GL_SCISSOR_TEST
If enabled, discard fragments that are outside the scissor
rectangle. See glScissor
.
GL_STENCIL_TEST
If enabled, do stencil testing and update the stencil buffer. See
glStencilFunc
, glStencilMask
, and
glStencilOp
.
GL_TEXTURE_2D
If enabled, two-dimensional texturing is performed for the active
texture unit. See glActiveTexture
,
glTexImage2D
, glCompressedTexImage2D
,
and glCopyTexImage2D
.
GL_CLIP_PLANE
i (1.1 only)If enabled, clipping plane i is enabled. See
glClipPlane
.
GL_POINT_SPRITE_OES
(1.1 + OES_point_sprite
extension)If enabled, point sprites are enabled. See
glPointSize
and glTexEnv
.
GL_INVALID_ENUM
is generated if cap is not one of
the values listed previously.
cap
- Specifies a symbolic constant indicating a GL capability.void glEnableClientState(int array)
glEnableClientState
and
glDisableClientState
enable or disable individual
client-side capabilities. By default, all client-side
capabilities are disabled. Both glEnableClientState
and glDisableClientState
take a single argument,
array
, which can assume one of the following values:
GL_COLOR_ARRAY
If enabled, the color array is enabled for writing and used
during rendering when glDrawArrays
, or
glDrawElements
is called. See
glColorPointer
.
GL_NORMAL_ARRAY
If enabled, the normal array is enabled for writing and used
during rendering when glDrawArrays
, or
glDrawElements
is called. See
glNormalPointer
.
GL_TEXTURE_COORD_ARRAY
If enabled, the texture coordinate array is enabled for writing
and used during rendering when glDrawArrays
, or
glDrawElements
is called. See
glTexCoordPointer
.
GL_VERTEX_ARRAY
If enabled, the vertex array is enabled for writing and used
during rendering when glDrawArrays
, or
glDrawElements
is called. See
glVertexPointer
.
GL_POINT_SIZE_ARRAY_OES
(OES_point_size_array
extension)If enabled, the point size array controls the sizes used to
render points and point sprites. In this case the point size
defined by glPointSize
is ignored. The point sizes
supplied in the point size arrays will be the sizes used to
render both points and point sprites. See
glPointSize
.
Enabling and disabling GL_TEXTURE_COORD_ARRAY
affects the active client texture unit. The active client texture
unit is controlled with glClientActiveTexture
.
GL_INVALID_ENUM
is generated if
array
is not an accepted value.
array
- Specifies the capability to enable or
disable. Symbolic constants GL_COLOR_ARRAY
,
GL_NORMAL_ARRAY
,
GL_TEXTURE_COORD_ARRAY
,
GL_VERTEX_ARRAY
, and
GL_POINT_SIZE_ARRAY_OES
(OES_point_size_array
extension) are accepted. void glFinish()
glFinish
does not return until the effects of all
previously called GL commands are complete. Such effects include
all changes to GL state, all changes to connection state, and all
changes to the frame buffer contents.
glFinish
requires a round trip to the server.
void glFlush()
Different GL implementations buffer commands in several
different locations, including network buffers and the graphics
accelerator itself. glFlush
empties all of these
buffers, causing all issued commands to be executed as quickly as
they are accepted by the actual rendering engine. Though this
execution may not be completed in any particular time period, it
does complete in finite time.
Because any GL program might be executed over a network, or on an
accelerator that buffers commands, all programs should call
glFlush
whenever they count on having all of their previously
issued commands completed. For example, call glFlush
before
waiting for user input that depends on the generated image.
glFlush
can return at any time. It does not wait until the
execution of all previously issued GL commands is complete.
void glFogf(int pname, float param)
If fog is enabled, fog affects rasterized geometry, bitmaps,
and pixel blocks, but not buffer clear operations. To enable and
disable fog, call glEnable
and
glDisable
with argument GL_FOG
. Fog is
initially disabled.
glFog
assigns the value in param
to
the fog parameter specified by pname
. The following
values are accepted for pname
:
GL_FOG_MODE
param
is a single value that specifies the equation
to be used to compute the fog blend factor f. Three symbolic
constants are accepted: GL_LINEAR
,
GL_EXP
, and GL_EXP2
. The equations
corresponding to these symbolic constants are defined below. The
initial fog mode is GL_EXP
.
GL_FOG_DENSITY
param
is a single value that specifies density, the
fog density used in both exponential fog equations. Only
nonnegative densities are accepted. The initial fog density is 1.
GL_FOG_START
param
is a single value that specifies start, the
near distance used in the linear fog equation. The initial near
distance is 0.
GL_FOG_END
param
is a single value that specifies end, the far
distance used in the linear fog equation. The initial far
distance is 1.
GL_INVALID_ENUM
is generated if
pname
is not an accepted value, or if
pname
is GL_FOG_MODE
and
param
is not an accepted value.
GL_INVALID_VALUE
is generated if
pname
is GL_FOG_DENSITY
, and
param
is negative.
pname
- Specifies a single-valued fog
parameter. GL_FOG_MODE
, GL_FOG_DENSITY
,
GL_FOG_START
, and GL_FOG_END
are
accepted.param
- Specifies the value that pname
will be
set to.void glFogfv(int pname, float[] params, int offset)
If fog is enabled, fog affects rasterized geometry, bitmaps,
and pixel blocks, but not buffer clear operations. To enable and
disable fog, call glEnable
and
glDisable
with argument GL_FOG
. Fog is
initially disabled.
glFog
assigns the value or values in
params
to the fog parameter specified by
pname
. The following values are accepted for
pname
:
GL_FOG_MODE
params
contains a single value that specifies the
equation to be used to compute the fog blend factor f. Three
symbolic constants are accepted: GL_LINEAR
,
GL_EXP
, and GL_EXP2
. The equations
corresponding to these symbolic constants are defined below. The
initial fog mode is GL_EXP
.
GL_FOG_DENSITY
params
contains a single value that specifies
density, the fog density used in both exponential fog
equations. Only nonnegative densities are accepted. The initial
fog density is 1.
GL_FOG_START
params
contains a single value that specifies start,
the near distance used in the linear fog equation. The initial
near distance is 0.
GL_FOG_END
params
contains a single value that specifies end,
the far distance used in the linear fog equation. The initial far
distance is 1.
GL_FOG_COLOR
params
contains four values that specify
Cf, the fog color. Both fixed-point and floating-point
values are mapped directly. After conversion, all color
components are clamped to the range [0, 1]
. The
initial fog color is (0, 0, 0, 0)
.
Fog blends a fog color with each rasterized pixel fragment's
posttexturing color using a blending factor f. Factor f is computed in
one of three ways, depending on the fog mode. Let z be the distance in
eye coordinates from the origin to the fragment being fogged. The
equation for GL_LINEAR
fog is
f = (end - z)/(end - start)
The equation for GL_EXP
fog is
f = e -(density - z)
The equation for GL_EXP2
fog is
f = e -(density - z)2
Regardless of the fog mode, f is clamped to the range
[0, 1]
after it is computed. Then, the fragment's
red, green, and blue colors, represented by Cr, are
replaced by:
C'r = f Cr + (1 - f) Cf
Fog does not affect a fragment's alpha component.
GL_INVALID_ENUM
is generated if
pname
is not an accepted value, or if
pname
is GL_FOG_MODE
and
params
is not an accepted value.
GL_INVALID_VALUE
is generated if
pname
is GL_FOG_DENSITY
, and the first
value in params
is negative.
pname
- Specifies a fog parameter. GL_FOG_MODE
,
GL_FOG_DENSITY
, GL_FOG_START
,
GL_FOG_END
, and GL_FOG_COLOR
are
accepted.params
- Specifies the value or values to be assigned to
pname
. GL_FOG_COLOR
requires an array
of four values. All other parameters accept an array containing
only a single value.offset
- the starting offset within the
params
array.java.lang.IllegalArgumentException
- if params
is
null
.java.lang.IllegalArgumentException
- if offset
is
less than 0.java.lang.IllegalArgumentException
- if params.length -
offset
is smaller than the number of values required by
the parameter.void glFogfv(int pname, FloatBuffer params)
Buffer
version of glFog
.java.lang.IllegalArgumentException
- if params
is
null
.java.lang.IllegalArgumentException
- if
params.remaining()
is smaller than the number of
values required by the parameter.glFogfv(int pname, float[] params, int offset)
void glFogx(int pname, int param)
glFog
.glFogf(int pname, float param)
void glFogxv(int pname, int[] params, int offset)
glFog
.java.lang.IllegalArgumentException
- if params
is
null
.java.lang.IllegalArgumentException
- if offset
is
less than 0.java.lang.IllegalArgumentException
- if params.length -
offset
is smaller than the number of values required by
the parameter.glFogfv(int pname, float[] params, int offset)
void glFogxv(int pname, IntBuffer params)
Buffer
version of glFog
.java.lang.IllegalArgumentException
- if params
is
null
.java.lang.IllegalArgumentException
- if
params.remaining()
is smaller than the number of
values required by the parameter.glFogfv(int pname, float[] params, int offset)
void glFrontFace(int mode)
In a scene composed entirely of opaque closed surfaces,
back-facing polygons are never visible. Eliminating (culling)
these invisible polygons has the obvious benefit of speeding up
the rendering of the image. To enable and disable culling, call
glEnable
and glDisable
with argument
GL_CULL_FACE
. Culling is initially disabled.
The projection of a polygon to window coordinates is said to
have clockwise winding if an imaginary object following the path
from its first vertex, its second vertex, and so on, to its last
vertex, and finally back to its first vertex, moves in a
clockwise direction about the interior of the polygon. The
polygon's winding is said to be counterclockwise if the imaginary
object following the same path moves in a counterclockwise
direction about the interior of the polygon. glFrontFace
specifies whether polygons with clockwise winding in window
coordinates, or counterclockwise winding in window coordinates,
are taken to be front-facing. Passing GL_CCW
to
mode
selects counterclockwise polygons as
front-facing. GL_CW
selects clockwise polygons as
front-facing. By default, counterclockwise polygons are taken to
be front-facing.
GL_INVALID_ENUM
is generated if mode
is not an accepted value.
mode
- Specifies the orientation of front-facing
polygons. GL_CW
and GL_CCW
are
accepted. The initial value is GL_CCW
.void glFrustumf(float left, float right, float bottom, float top, float near, float far)
glFrustum
describes a perspective matrix that
produces a perspective projection. The current matrix (see
glMatrixMode
) is multiplied by this matrix and the
result replaces the current matrix, as if
glMultMatrix
were called with the following matrix
as its argument:
( 2/(right - left) 0 A 0 ) ( 0 2/(top - bottom) B 0 ) ( 0 0 C D ) ( 0 0 -1 0 )
where
A = - (right + left)/(right - left) B = - (top + bottom)/(top - bottom) C = - (far + near)/(far - near) D = - 2farnear/(far - near)
Typically, the matrix mode is GL_PROJECTION
, and
(left
, bottom
, -near
) and
(right
, top
, -near
)
specify the points on the near clipping plane that are mapped to
the lower left and upper right corners of the window, assuming
that the eye is located at (0, 0, 0). -far
specifies
the location of the far clipping plane. Both near
and far
must be positive.
Use glPushMatrix
and glPopMatrix
to
save and restore the current matrix stack.
Depth buffer precision is affected by the values specified for
near and far. The greater the ratio of far
to
near
is, the less effective the depth buffer will be
at distinguishing between surfaces that are near each other. If
r = far/nearroughly log_2(r) bits of depth buffer precision are lost. Because r approaches infinity as
near
approaches 0, near
must never be set to 0.
GL_INVALID_VALUE
is generated if
near
or far
is not positive, or if
left
= right
, or bottom
=
top
.
left
- Specifies the coordinate for the left vertical
clipping plane.right
- Specifies the coordinate for the right vertical
clipping plane.bottom
- Specifies the coordinate for the bottom horizontal
clipping plane.top
- Specifies the coordinate for the top horizontal
clipping plane.near
- Specifies the distances to the near depth clipping
plane. The distance must be positive.far
- Specifies the distances to the near depth clipping
plane. The distance must be positive.void glFrustumx(int left, int right, int bottom, int top, int near, int far)
glFrustum
.void glGenTextures(int n, int[] textures, int offset)
glGenTextures
returns n
texture
names in textures
. There is no guarantee that the
names form a contiguous set of integers. However, it is
guaranteed that none of the returned names was in use immediately
before the call to glGenTextures
.
The generated textures have no dimensionality; they assume the dimensionality of the texture target to which they are first bound (see glBindTexture).
Texture names returned by a call to glGenTextures
are not
returned by subsequent calls, unless they are first deleted with
glDeleteTextures
.
GL_INVALID_VALUE
is generated if n
is negative.
n
- Specifies the number of texture names to be generated.textures
- Specifies an array in which the generated texture
names are stored.offset
- the starting offset within the
textures
array.java.lang.IllegalArgumentException
- if textures
is
null
.java.lang.IllegalArgumentException
- if offset
is
less than 0.java.lang.IllegalArgumentException
- if textures.length -
offset
is less than n
.void glGenTextures(int n, IntBuffer textures)
Buffer
version of glGenTextures
.java.lang.IllegalArgumentException
- if textures
is
null
.java.lang.IllegalArgumentException
- if
textures.remaining()
is less than n
.glGenTextures(int n, int[] textures, int offset)
int glGetError()
glGetError
returns the value of the error
flag. Each detectable error is assigned a numeric code and
symbolic name. When an error occurs, the error flag is set to the
appropriate error code value. No other errors are recorded until
glGetError
is called, the error code is returned,
and the flag is reset to GL_NO_ERROR
. If a call to
glGetError
returns GL_NO_ERROR
, there
has been no detectable error since the last call to
glGetError
, or since the GL was initialized.
To allow for distributed implementations, there may be several
error flags. If any single error flag has recorded an error, the
value of that flag is returned and that flag is reset to
GL_NO_ERROR
when glGetError
is
called. If more than one flag has recorded an error,
glGetError
returns and clears an arbitrary error
flag value. Thus, glGetError
should always be called
in a loop, until it returns GL_NO_ERROR
, if all
error flags are to be reset.
Initially, all error flags are set to GL_NO_ERROR
.
The following errors are currently defined:
GL_NO_ERROR
No error has been recorded. The value of this symbolic constant is guaranteed to be 0.
GL_INVALID_ENUM
An unacceptable value is specified for an enumerated argument. The offending command is ignored, and has no other side effect than to set the error flag.
GL_INVALID_VALUE
A numeric argument is out of range. The offending command is ignored, and has no other side effect than to set the error flag.
GL_INVALID_OPERATION
The specified operation is not allowed in the current state. The offending command is ignored, and has no other side effect than to set the error flag.
GL_STACK_OVERFLOW
This command would cause a stack overflow. The offending command is ignored, and has no other side effect than to set the error flag.
GL_STACK_UNDERFLOW
This command would cause a stack underflow. The offending command is ignored, and has no other side effect than to set the error flag.
GL_OUT_OF_MEMORY
There is not enough memory left to execute the command. The state of the GL is undefined, except for the state of the error flags, after this error is recorded.
When an error flag is set, results of a GL operation are
undefined only if GL_OUT_OF_MEMORY
has occurred. In
all other cases, the command generating the error is ignored and
has no effect on the GL state or frame buffer contents. If the
generating command returns a value, it returns 0. If
glGetError
itself generates an error, it returns 0.
void glGetIntegerv(int pname, int[] params, int offset)
glGet
returns values for static state
variables in GL. pname
is a symbolic constant
indicating the static state variable to be returned, and
params
is an array of integers in which to place the
returned data.
A boolean value is interpreted as either 1 or 0, and a
floating-point value is rounded to the nearest integer, unless
the value is an RGBA color component, a DepthRange
value, a depth buffer clear value, or a normal coordinate. In
these cases, the glGet
command does a linear mapping
that maps 1.0 to the most positive representable integer value,
and -1.0 to the most negative representable integer value.
In OpenGL ES 1.0, on glGetIntegerv
is provided.
OpenGL ES 1.1 additionally provides glGetBooleanv
,
glGetFixedv
, and glGetFloatv
.
The following symbolic constants are accepted by
pname
:
GL_ALIASED_POINT_SIZE_RANGE
params
returns two values, the smallest and largest
supported sizes for aliased points. The range must include 1. See
glPointSize
.
GL_ALIASED_LINE_WIDTH_RANGE
params
returns two values, the smallest and largest
supported widths for aliased lines. The range must include 1. See
glLineWidth
.
GL_ALPHA_BITS
params
returns one value, the number of alpha
bitplanes in the color buffer.
GL_ALPHA_TEST_FUNC
(1.1 only)params
returns one value, the symbolic name of
the alpha test function. See glAlphaFunc
.
GL_ALPHA_TEST_REF
(1.1 only)params
returns one value, the reference value for
the alpha test. An integer value, if requested, is linearly
mapped from the internal floating-point representation such that
1.0 returns the most positive representable integer value, and
-1.0 returns the most negative representable integer value. See
glAlphaFunc
.
GL_BLEND_DST
(1.1 only)params
returns one value, the symbolic constant
identifying the destination blend function set by
glBlendFunc
, or the destination RGB blend function
set by glBlendFuncSeparate
. See
glBlendFunc
and glBlendFuncSeparate
.
GL_BLUE_BITS
params
returns one value, the number of blue
bitplanes in the color buffer.
GL_COLOR_ARRAY_BUFFER_BINDING
(1.1 only)params
returns one value, the color array buffer
binding. See glColorPointer
.
GL_COLOR_ARRAY_SIZE
(1.1 only)params
returns one value, the number of
components per color in the color array. See
glColorPointer
.
GL_COLOR_ARRAY_STRIDE
(1.1 only)params
returns one value, the byte offset between
consecutive colors in the color array. See
glColorPointer
.
GL_COLOR_ARRAY_TYPE
(1.1 only)params
returns one value, returns the data type
of each component in the color array. See
glColorPointer
.
GL_COLOR_CLEAR_VALUE
(1.1 only)params
returns four values: the red, green, blue,
and alpha values used to clear the color buffers. See
glClearColor
GL_COLOR_WRITEMASK
(1.1 only)params
returns four boolean values: the red,
green, blue, and alpha write enables for the color buffers. See
glColorMask
.
GL_COMPRESSED_TEXTURE_FORMATS
params
returns
GL_NUM_COMPRESSED_TEXTURE_FORMATS
values, the
supported compressed texture formats. See glCompressedTexImage2D
and glCompressedTexSubImage2D
.
GL_CULL_FACE
(1.1 only)params
returns one value, a symbolic constant
indicating which polygon faces are to be culled. See
glCullFace
.
GL_DEPTH_BITS
params
returns one value, the number of bitplanes in
the depth buffer.
GL_DEPTH_CLEAR_VALUE
(1.1 only)params
returns one value, the value that is used
to clear the depth buffer. See glClearDepth
.
GL_DEPTH_FUNC
(1.1 only)params
returns one value, the symbolic name of
the depth comparision function. See glDepthFunc
.
GL_DEPTH_RANGE
(1.1 only)params
returns two values: the near and far
mapping limits for the depth buffer. See
glDepthRange
.
GL_DEPTH_WRITEMASK
(1.1 only)params
returns a single boolean value indicating
if the depth buffer is enabled for writing. See
glDepthMask
.
GL_FOG_COLOR
(1.1 only)params
returns four values: the red, green, blue,
and alpha components of the fog color. See glFog
.
GL_FOG_DENSITY
(1.1 only)params
returns one value, the fog density
parameter. See glFog
.
GL_FOG_END
(1.1 only)params
returns one value, the end factor for the
linear fog equation. See glFog
.
GL_FOG_HINT
(1.1 only)params
returns one value, a symbolic constant
indicating the mode of the fog hint. See glHint
.
GL_FOG_MODE
(1.1 only)params
returns one value, a symbolic constant
indicating which fog equation is selected. See glFog
.
GL_FOG_START
(1.1 only)params
returns one value, the start factor for
the linear fog equation. See glFog
.
GL_FRONT_FACE
(1.1 only)params
returns one value, a symbolic constant
indicating whether clockwise or counterclockwise polygon winding
is treated as front-facing. See glFrontFace
.
GL_GREEN_BITS
params
returns one value, the number of green
bitplanes in the color buffer.
GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
(OES_read_format
extension)params
returns one value, the preferred format for
pixel read back. See glReadPixels
.
GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
(
(OES_read_format
extension)params
returns one value, the preferred type for
pixel read back. See glReadPixels
.
GL_LIGHT_MODEL_AMBIENT
(1.1 only)params
returns four values: the red, green, blue,
and alpha components of the ambient intensity of the entire
scene. See glLightModel
.
GL_LIGHT_MODEL_TWO_SIDE
(1.1 only)params
returns a single boolean value indicating
whether separate materials are used to compute lighting for front
and back facing polygons. See glLightModel
.
GL_LINE_SMOOTH_HINT
(1.1 only)params
returns one value, a symbolic constant
indicating the mode of the line antialiasing hint. See
glHint
.
GL_LINE_WIDTH
(1.1 only)params
returns one value, the line width as
specified with glLineWidth
.
GL_LOGIC_OP_MODE
(1.1 only)params
returns one value, a symbolic constant
indicating the selected logic operation mode. See
glLogicOp
.
GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES
(OES_matrix_palette
extension)params
returns one value, the matrix index array
buffer binding. See glMatrixIndexPointer
.
GL_MATRIX_INDEX_ARRAY_SIZE_OES
(OES_matrix_palette
extension)params
returns one value, the number of matrix
indices per vertex. See glMatrixIndexPointer
.
GL_MATRIX_INDEX_ARRAY_STRIDE_OES
(OES_matrix_palette
extension)params
returns one value, the byte offset between
matrix indices. See glMatrixIndexPointer
.
GL_MATRIX_INDEX_ARRAY_TYPE_OES
(OES_matrix_palette
extension)params
returns one value, the data type of each
matrix index in the matrix indices array. See
glMatrixIndexPointer
.
GL_MATRIX_MODE
(1.1 only)params
returns one value, a symbolic constant
indicating which matrix stack is currently the target of all
matrix operations. See glMatrixMode
.
GL_MAX_CLIP_PLANES
(1.1 only)params
returns one value, the maximum number of
application defined clipping planes. The value must be at least
6. See glClipPlane
.
GL_MAX_ELEMENTS_INDICES
params
returns one value, the recommended maximum
number of vertex array indices. See glDrawElements
.
GL_MAX_ELEMENTS_VERTICES
params
returns one value, the recommended maximum
number of vertex array vertices. See glDrawArrays
and glDrawElements
.
GL_MAX_LIGHTS
params
returns one value, the maximum number of
lights. The value must be at least 8. See glLight
.
GL_MAX_MODELVIEW_STACK_DEPTH
params
returns one value, the maximum supported
depth of the modelview matrix stack. The value must be at least
16. See glPushMatrix
.
GL_MAX_PALETTE_MATRICES_OES
(OES_matrix_palette
extension)params
returns the size of the matrix
palette. The initial value is 9.
GL_MAX_PROJECTION_STACK_DEPTH
params
returns one value, the maximum supported
depth of the projection matrix stack. The value must be at least
2. See glPushMatrix
.
GL_MAX_TEXTURE_SIZE
params
returns one value. The value gives a rough
estimate of the largest texture that the GL can handle. The value
must be at least 64. See glTexImage2D
,
glCompressedTexImage2D
, and
glCopyTexImage2D
.
GL_MAX_TEXTURE_STACK_DEPTH
params
returns one value, the maximum supported
depth of the texture matrix stack. The value must be at least
2. See glPushMatrix
.
GL_MAX_TEXTURE_UNITS
params
returns a single value indicating the number
of texture units supported. The value must be at least 1. See
glActiveTexture
, glClientActiveTexture
and glMultiTexCoord
.
GL_MAX_VERTEX_UNITS_OES
params
returns the number of matrices per
vertex. The initial value is 3.
GL_MAX_VIEWPORT_DIMS
params
returns two values: the maximum supported
width and height of the viewport. These must be at least as large
as the visible dimensions of the display being rendered to. See
glViewport
.
GL_MODELVIEW_MATRIX
(1.1 only)params
returns sixteen values: the modelview
matrix on the top of the modelview matrix stack. See
glPushMatrix
.
GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES
(OES_matrix_get
extension)params
returns a representation of the floating
point Model View matrix elements as as an array of integers,
according to the IEEE 754 floating point "single format" bit
layout. See glMatrixMode
.
GL_MODELVIEW_STACK_DEPTH
(1.1 only)params
returns one value, the number of matrices
on the modelview matrix stack. See glPushMatrix
.
GL_NORMAL_ARRAY_BUFFER_BINDING
(1.1 only)params
returns one value, the normal array buffer
binding. See glNormalPointer
.
GL_NORMAL_ARRAY_STRIDE
(1.1 only)params
returns one value, the byte offset between
consective normals in the normal array. See
glNormalPointer
.
GL_NORMAL_ARRAY_TYPE
(1.1 only)params
returns one value, the data type of each
normal in the normal array. See glNormalPointer
.
GL_NUM_COMPRESSED_TEXTURE_FORMATS
params
returns one value, the number of supported
compressed texture formats. The value must be at least 10. See
glCompressedTexImage2D
and
glCompressedTexSubImage2D
.
GL_PACK_ALIGNMENT
(1.1 only)params
returns one value, the byte alignment used
for writing pixel data to memory. See glPixelStore
.
GL_PERSPECTIVE_CORRECTION_HINT
(1.1 only)params
returns one value, a symbolic constant
indicating the mode of the perspective correction hint. See
glHint
.
GL_POINT_SIZE
(1.1 only)params
returns one value, the point size as
specified by glPointSize
.
GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES
(OES_point_size_array
extension)params
returns one value, the point size array
buffer binding. See glPointSizePointer
.
GL_POINT_SIZE_ARRAY_STRIDE_OES
(OES_point_size_array
extension)params
returns one value, the byte offset between
consecutive point sizes in the point size array. See
glPointSizePointer
.
GL_POINT_SIZE_ARRAY_TYPE_OES
(OES_point_size_array
extension)params
returns one value, the data type of each
point size in the point array. See
glPointSizePointer
.
GL_POINT_SMOOTH_HINT
(1.1 only)params
returns one value, a symbolic constant
indicating the mode of the point antialiasing hint. See
glHint
.
GL_POLYGON_OFFSET_FACTOR
(1.1 only)params
returns one value, the scaling factor used
to determine the variable offset that is added to the depth value
of each fragment generated when a polygon is rasterized. See
glPolygonOffset
.
GL_POLYGON_OFFSET_UNITS
(1.1 only)params
returns one value. This value is
multiplied by an implementation-specific value and then added to
the depth value of each fragment generated when a polygon is
rasterized. See glPolygonOffset
.
GL_PROJECTION_MATRIX
(1.1 only)params
returns sixteen values: the projection
matrix on the top of the projection matrix stack. See
glPushMatrix
.
GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES
(OES_matrix_get
extension)params
returns a representation of the floating
point Projection matrix elements as as an array of integers,
according to the IEEE 754 floating point "single format" bit
layout. See glMatrixMode
.
GL_PROJECTION_STACK_DEPTH
(1.1 only)params
returns one value, the number of matrices
on the projection matrix stack. See glPushMatrix
.
GL_RED_BITS
params
returns one value, the number of red
bitplanes in each color buffer.
GL_SCISSOR_BOX
(1.1 only)params
returns four values: the x and y window
coordinates of the scissor box, followed by its width and
height. See glScissor
.
GL_SHADE_MODEL
(1.1 only)params
returns one value, a symbolic constant
indicating whether the shading mode is flat or smooth. See
glShadeModel
.
GL_SMOOTH_LINE_WIDTH_RANGE
params
returns two values, the smallest and largest
supported widths for antialiased lines. The range must include
1. See glLineWidth
.
GL_SMOOTH_POINT_SIZE_RANGE
params
returns two values, the smallest and largest
supported widths for antialiased points. The range must include
1. See glPointSize
.
GL_STENCIL_BITS
params
returns one value, the number of bitplanes in
the stencil buffer.
GL_STENCIL_CLEAR_VALUE
(1.1 only)params
returns one value, the index to which the
stencil bitplanes are cleared. See glClearStencil
.
GL_STENCIL_FAIL
(1.1 only)params
returns one value, a symbolic constant
indicating what action is taken when the stencil test fails. See
glStencilOp
.
GL_STENCIL_FUNC
(1.1 only)params
returns one value, a symbolic constant
indicating what function is used to compare the stencil reference
value with the stencil buffer value. See
glStencilFunc
.
GL_STENCIL_PASS_DEPTH_FAIL
(1.1 only)params
returns one value, a symbolic constant
indicating what action is taken when the stencil test passes, but
the depth test fails. See glStencilOp
.
GL_STENCIL_PASS_DEPTH_PASS
(1.1 only)params
returns one value, a symbolic constant
indicating what action is taken when the stencil test passes, and
the depth test passes. See glStencilOp
.
GL_STENCIL_REF
(1.1 only)params
returns one value, the reference value
that is compared with the contents of the stencil buffer. See
glStencilFunc
.
GL_STENCIL_VALUE_MASK
(1.1 only)params
returns one value, the mask that is used
to mask both the stencil reference value and the stencil buffer
value before they are compared. See glStencilFunc
.
GL_STENCIL_WRITEMASK
(1.1 only)params
returns one value, the mask that controls
writing of the stencil bitplanes. See glStencilMask
.
GL_SUBPIXEL_BITS
params
returns one value, an estimate of the number
of bits of subpixel resolution that are used to position
rasterized geometry in window coordinates. The value must be at
least 4.
GL_TEXTURE_BINDING_2D
(1.1 only)params
returns one value, the name of the texture
currently bound to the target GL_TEXTURE_2D
. See
glBindTexture
.
GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING
(1.1 only)params
returns one value, the texture coordinate
array buffer binding. See glTexCoordPointer
.
GL_TEXTURE_COORD_ARRAY_SIZE
(1.1 only)params
returns one value, the number of
coordinates per element in the texture coordinate array. See
glTexCoordPointer
.
GL_TEXTURE_COORD_ARRAY_STRIDE
(1.1 only)params
returns one value, the byte offset between
consecutive elements in the texture coordinate array. See
glTexCoordPointer
.
GL_TEXTURE_COORD_ARRAY_TYPE
(1.1 only)params
returns one value, returns the data type
of each coordinate in the texture coordinate array. See
glTexCoordPointer
.
GL_TEXTURE_MATRIX
(1.1 only)params
returns sixteen values: the texture matrix
on the top of the texture matrix stack. See
glPushMatrix
.
GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES
(OES_matrix_get
extension)params
returns a representation of the floating
point Texture matrix elements as as an array of integers,
according to the IEEE 754 floating point "single format" bit
layout. See glMatrixMode
.
GL_TEXTURE_STACK_DEPTH
(1.1 only)params
returns one value, the number of matrices
on the texture matrix stack. See glBindTexture
.
GL_UNPACK_ALIGNMENT
(1.1 only)params
returns one value, the byte alignment used
for reading pixel data from memory. See
glPixelStore
.
GL_VIEWPORT
(1.1 only)params
returns four values:, the x and y window
coordinates of the viewport, followed by its width and
height. See glViewport
.
GL_VERTEX_ARRAY_BUFFER_BINDING
(1.1 only)params
returns one value, the vertex array buffer
binding. See glVertexPointer
.
GL_VERTEX_ARRAY_SIZE
(1.1 only)params
returns one value, number of coordinates
per vertex in the vertex array. See glVertexPointer
.
GL_VERTEX_ARRAY_STRIDE
(1.1 only)params
returns one value, the byte offset between
consecutive vertexes in the vertex array. See
glVertexPointer
.
GL_VERTEX_ARRAY_TYPE
(1.1 only)params
returns one value, returns the data type
of each coordinate in the vertex array. See
glVertexPointer
.
GL_WEIGHT_ARRAY_BUFFER_BINDING_OES
(OES_matrix_palette
extension)params
returns one value, the weight array buffer
binding. See glWeightPointer
.
GL_WEIGHT_ARRAY_SIZE_OES
(OES_matrix_palette
extension)params
returns one value, the number of weights
per vertex. See glWeightPointer
.
GL_WEIGHT_ARRAY_STRIDE_OES
(OES_matrix_palette
extension)params
returns one value, the byte offset between
weights per vertex. See glWeightPointer
.
GL_WEIGHT_ARRAY_TYPE_OES
(OES_matrix_palette
extension)params
returns one value, the data type of each
weight in the weight array. See glWeightPointer
.
GL_INVALID_ENUM
is generated if pname
is not an accepted value.
pname
- Specifies the parameter value to be returned. The
symbolic constants in the list above are accepted.params
- Returns the value or values of the specified
parameter.offset
- the starting offset within the
params
array.java.lang.IllegalArgumentException
- if params
is
null
.java.lang.IllegalArgumentException
- if offset
is
less than 0.java.lang.IllegalArgumentException
- if params.length -
offset
is smaller than the number of values required by
the parameter.void glGetIntegerv(int pname, IntBuffer params)
Buffer
version of glGetIntegerv
.java.lang.IllegalArgumentException
- if params
is
null
.java.lang.IllegalArgumentException
- if
params.remaining()
is smaller than the number of
values required by the parameter.glGetIntegerv(int pname, int[] params, int offset)
java.lang.String glGetString(int name)
String
object.
glGetString
returns a String
describing some aspect of the current GL
implementation. name
can be one of the following:
GL_VENDOR
Returns the company responsible for this GL implementation. This name does not change from release to release.
GL_RENDERER
Returns the name of the renderer. This name is typically specific to a particular configuration of a hardware platform. It does not change from release to release.
GL_VERSION
Returns the particular OpenGL ES profile as well as the version of that profile.
GL_EXTENSIONS
Returns a space-separated list of supported extensions to GL.
Because the GL does not include queries for the performance
characteristics of an implementation, some applications are
written to recognize known platforms and modify their GL usage
based on known performance characteristics of these
platforms. Strings GL_VENDOR
and
GL_RENDERER
together uniquely specify a
platform. They do not change from release to release and should
be used by platform-recognition algorithms.
Some applications want to make use of features that are not part
of the standard GL. These features may be implemented as
extensions to the standard GL. The GL_EXTENSIONS
string is a space-separated list of supported GL
extensions. (Extension names never contain a space character.)
The GL_VERSION
string begins with a version
number. The version number uses one of these forms:
major_number.minor_number (1.0 only)
major_number.minor_number.release_number (1.0 only)
OpenGL ES-CM followed by major_number.minor_number for the common profile (1.1 only).
OpenGL ES-CL followed by major_number.minor_number for the common-lite profile (1.1 only).
On 1.0 implementations, vendor-specific information may follow the version number. A space always separates the version number and the vendor-specific information.
If an error is generated, glGetString
returns NULL.
The client and server may support different versions or
extensions. glGetString
always returns a compatible
version number or list of extensions. The release number always
describes the server.
GL_INVALID_ENUM
is generated if name
is not an accepted value.
name
- Specifies a symbolic constant, one of
GL_VENDOR
, GL_RENDERER
,
GL_VERSION
, or GL_EXTENSIONS
.String
formatted as described above.void glHint(int target, int mode)
Certain aspects of GL behavior, when there is room for
interpretation, can be controlled with hints. A hint is specified
with two arguments. target
is a symbolic constant
indicating the behavior to be controlled, and mode
is another symbolic constant indicating the desired behavior. The
initial value for each target
is
GL_DONT_CARE
. mode
can be one of the
following:
GL_FASTEST
The most efficient option should be chosen.
GL_NICEST
The most correct, or highest quality, option should be chosen.
GL_DONT_CARE
No preference.
Though the implementation aspects that can be hinted are well
defined, the interpretation of the hints depends on the
implementation. The hint aspects that can be specified with
target
, along with suggested semantics, are as follows:
GL_FOG_HINT
Indicates the accuracy of fog calculation. If per-pixel fog
calculation is not efficiently supported by the GL
implementation, hinting GL_DONT_CARE
or
GL_FASTEST
can result in per-vertex calculation of
fog effects.
GL_LINE_SMOOTH_HINT
Indicates the sampling quality of antialiased lines. If a larger
filter function is applied, hinting GL_NICEST
can
result in more pixel fragments being generated during
rasterization,
GL_PERSPECTIVE_CORRECTION_HINT
Indicates the quality of color and texture coordinate
interpolation. If perspective-corrected parameter interpolation
is not efficiently supported by the GL implementation, hinting
GL_DONT_CARE
or GL_FASTEST
can result
in simple linear interpolation of colors and/or texture
coordinates.
GL_POINT_SMOOTH_HINT
Indicates the sampling quality of antialiased points. If a larger
filter function is applied, hinting GL_NICEST
can
result in more pixel fragments being generated during
rasterization.
GL_GENERATE_MIPMAP_HINT
(1.1 only)Indicates the desired quality and performance of automatic mipmap level generation.
The interpretation of hints depends on the implementation. Some
implementations ignore glHint
settings.
GL_INVALID_ENUM
is generated if either
target
or mode
is not an accepted
value.
target
- Specifies a symbolic constant indicating the
behavior to be controlled. GL_FOG_HINT
,
GL_LINE_SMOOTH_HINT
,
GL_PERSPECTIVE_CORRECTION_HINT
, and
GL_POINT_SMOOTH_HINT
are accepted. On 1.1,
GL_GENERATE_MIPMAP_HINT
is additionally accepted.mode
- Specifies a symbolic constant indicating the desired
behavior. GL_FASTEST
, GL_NICEST
, and
GL_DONT_CARE
are accepted.void glLightModelf(int pname, float param)
glLightModel
sets the lighting model
parameter. pname
names a parameter and param gives
the new value. There is one single-valued lighting model parameter:
GL_LIGHT_MODEL_TWO_SIDE
param
specifies whether one- or two-sided lighting
calculations are done for polygons. It has no effect on the
lighting calculations for points, lines, or bitmaps. If
param
is 0, one-sided lighting is specified, and
only the front material parameters are used in the lighting
equation. Otherwise, two-sided lighting is specified. In this
case, vertices of back-facing polygons are lighted using the back
material parameters, and have their normals reversed before the
lighting equation is evaluated. Vertices of front-facing polygons
are always lighted using the front material parameters, with no
change to their normals. The initial value is 0.
GL_INVALID_ENUM
is generated if
pname
is not an accepted value.
pname
- Specifies a single-valued lighting model
parameter. Must be GL_LIGHT_MODEL_TWO_SIDE
.param
- Specifies the value that param
will be
set to.void glLightModelfv(int pname, float[] params, int offset)
glLightModel
sets the lighting model
parameter. pname
names a parameter and
params
gives the new value. There are two lighting
model parameters:
GL_LIGHT_MODEL_AMBIENT
params
contains four values that specify the ambient
intensity of the entire scene. The values are not clamped. The
initial value is (0.2, 0.2, 0.2, 1.0).
GL_LIGHT_MODEL_TWO_SIDE
params
contains a single value that specifies
whether one- or two-sided lighting calculations are done for
polygons. It has no effect on the lighting calculations for
points, lines, or bitmaps. If params
contains 0,
one-sided lighting is specified, and only the front material
parameters are used in the lighting equation. Otherwise,
two-sided lighting is specified. In this case, vertices of
back-facing polygons are lighted using the back material
parameters, and have their normals reversed before the lighting
equation is evaluated. Vertices of front-facing polygons are
always lighted using the front material parameters, with no
change to their normals. The initial value is 0.
The lighted color of a vertex is the sum of the material emission intensity, the product of the material ambient reflectance and the lighting model full-scene ambient intensity, and the contribution of each enabled light source. Each light source contributes the sum of three terms: ambient, diffuse, and specular. The ambient light source contribution is the product of the material ambient reflectance and the light's ambient intensity. The diffuse light source contribution is the product of the material diffuse reflectance, the light's diffuse intensity, and the dot product of the vertex's normal with the normalized vector from the vertex to the light source. The specular light source contribution is the product of the material specular reflectance, the light's specular intensity, and the dot product of the normalized vertex-to-eye and vertex-to-light vectors, raised to the power of the shininess of the material. All three light source contributions are attenuated equally based on the distance from the vertex to the light source and on light source direction, spread exponent, and spread cutoff angle. All dot products are replaced with 0 if they evaluate to a negative value.
The alpha component of the resulting lighted color is set to the alpha value of the material diffuse reflectance.
GL_INVALID_ENUM
is generated if
pname
is not an accepted value.
pname
- Specifies a lighting model
parameter. GL_LIGHT_MODEL_AMBIENT
and
GL_LIGHT_MODEL_TWO_SIDE
are accepted.params
- Specifies an array containing values that parameter
pname
will be set to.offset
- the starting offset within the
params
array.java.lang.IllegalArgumentException
- if params
is
null
.java.lang.IllegalArgumentException
- if offset
is
less than 0.java.lang.IllegalArgumentException
- if params.length -
offset
is smaller than the number of values required by
the parameter.void glLightModelfv(int pname, FloatBuffer params)
Buffer
version of glLightModel
.java.lang.IllegalArgumentException
- if params
is
null
.java.lang.IllegalArgumentException
- if
params.remaining()
is smaller than the number of
values required by the parameter.glLightModelfv(int pname, float[] params, int offset)
void glLightModelx(int pname, int param)
glLightModel
.void glLightModelxv(int pname, int[] params, int offset)
glLightModel
.java.lang.IllegalArgumentException
- if params
is
null
.java.lang.IllegalArgumentException
- if offset
is
less than 0.java.lang.IllegalArgumentException
- if params.length -
offset
is smaller than the number of values required by
the parameter.glLightModelfv(int pname, float[] params, int offset)
void glLightModelxv(int pname, IntBuffer params)
Buffer
version of glLightModel
.java.lang.IllegalArgumentException
- if params
is
null
.java.lang.IllegalArgumentException
- if
params.remaining()
is smaller than the number of
values required by the parameter.glLightModelfv(int pname, float[] params, int offset)
void glLightf(int light, int pname, float param)
glLight
sets the values of individual light
source parameters. light
names the light and is a
symbolic name of the form GL_LIGHT
i, where
0 <= i < GL_MAX_LIGHTS
. pname
specifies one of ten light source parameters, again by symbolic
name. param
contains the new value.
To enable and disable lighting calculation, call
glEnable
and glDisable
with argument
GL_LIGHTING
. Lighting is initially disabled. When it
is enabled, light sources that are enabled contribute to the
lighting calculation. Light source i is enabled and disabled
using glEnable
and glDisable
with
argument GL_LIGHT
i.
The light parameters are as follows:
GL_SPOT_EXPONENT
param
is a single value that specifies the
intensity distribution of the light. Fixed-point and
floating-point values are mapped directly. Only values in the
range [0, 128] are accepted.
Effective light intensity is attenuated by the cosine of the
angle between the direction of the light and the direction from
the light to the vertex being lighted, raised to the power of the
spot exponent. Thus, higher spot exponents result in a more
focused light source, regardless of the spot cutoff angle (see
GL_SPOT_CUTOFF
, next paragraph). The initial spot
exponent is 0, resulting in uniform light distribution.
GL_SPOT_CUTOFF
param
is a single value that specifies the maximum
spread angle of a light source. Fixed-point and floating-point
values are mapped directly. Only values in the range [0, 90] and
the special value 180 are accepted. If the angle between the
direction of the light and the direction from the light to the
vertex being lighted is greater than the spot cutoff angle, the
light is completely masked. Otherwise, its intensity is
controlled by the spot exponent and the attenuation factors. The
initial spot cutoff is 180, resulting in uniform light
distribution.
GL_CONSTANT_ATTENUATION
,
GL_LINEAR_ATTENUATION
,
GL_QUADRATIC_ATTENUATION
param
is a single value that specifies one of the
three light attenuation factors. Fixed-point and floating-point
values are mapped directly. Only nonnegative values are
accepted. If the light is positional, rather than directional,
its intensity is attenuated by the reciprocal of the sum of the
constant factor, the linear factor times the distance between the
light and the vertex being lighted, and the quadratic factor
times the square of the same distance. The initial attenuation
factors are (1, 0, 0), resulting in no attenuation.
It is always the case that GL_LIGHT
i =
GL_LIGHT0
+ i.
GL_INVALID_ENUM
is generated if either
light
or pname
is not an accepted
value.
GL_INVALID_VALUE
is generated if a spot exponent
value is specified outside the range [0, 128], or if spot cutoff
is specified outside the range [0, 90] (except for the special
value 180), or if a negative attenuation factor is specified.
light
- Specifies a light. The number of lights depends on
the implementation, but at least eight lights are supported. They
are identified by symbolic names of the form
GL_LIGHT
i where 0 <= i <
GL_MAX_LIGHTS
.pname
- Specifies a single-valued light source parameter for
light. GL_SPOT_EXPONENT
,
GL_SPOT_CUTOFF
,
GL_CONSTANT_ATTENUATION
,
GL_LINEAR_ATTENUATION
, and
GL_QUADRATIC_ATTENUATION
are accepted.param
- Specifies the value that parameter
pname
of light source light will be set to.void glLightfv(int light, int pname, float[] params, int offset)
glLight
sets the values of individual light
source parameters. light
names the light and is a
symbolic name of the form GL_LIGHT
i, where
0 <= i < GL_MAX_LIGHTS
. pname
specifies one of ten light source parameters, again by symbolic
name. params
is an array that contains the new
values.
To enable and disable lighting calculation, call
glEnable
and glDisable
with argument
GL_LIGHTING
. Lighting is initially disabled. When it
is enabled, light sources that are enabled contribute to the
lighting calculation. Light source i is enabled and disabled
using glEnable
and glDisable
with
argument GL_LIGHT
i.
The light parameters are as follows:
GL_AMBIENT
params
contains four values that specify the ambient
RGBA intensity of the light. Both fixed-point and floating-point
values are mapped directly. Neither fixed-point nor
floating-point values are clamped. The initial ambient light
intensity is (0, 0, 0, 1).
GL_DIFFUSE
params
contains four values that specify the diffuse
RGBA intensity of the light. Both fixed-point and floating-point
values are mapped directly. Neither fixed-point nor
floating-point values are clamped. The initial value for
GL_LIGHT0
is (1, 1, 1, 1). For other lights, the
initial value is (0, 0, 0, 0).
GL_SPECULAR
params
contains four values that specify the
specular RGBA intensity of the light. Both fixed-point and
floating-point values are mapped directly. Neither fixed-point
nor floating-point values are clamped. The initial value for
GL_LIGHT0
is (1, 1, 1, 1). For other lights, the
initial value is (0, 0, 0, 0).
GL_POSITION
(1.0 only)params
contains four values that specify the
position of the light in homogeneous object coordinates. Both
fixed-point and floating-point values are mapped
directly. Neither fixed-point nor floating-point values are
clamped.
The position is transformed by the modelview matrix when
glLight
is called (just as if it were a point), and
it is stored in eye coordinates. If the w component of the
position is 0, the light is treated as a directional
source. Diffuse and specular lighting calculations take the
light's direction, but not its actual position, into account, and
attenuation is disabled. Otherwise, diffuse and specular lighting
calculations are based on the actual location of the light in eye
coordinates, and attenuation is enabled. The initial position is
(0, 0, 1, 0). Thus, the initial light source is directional,
parallel to, and in the direction of the -z axis.
GL_SPOT_DIRECTION
params
contains three values that specify the
direction of the light in homogeneous object coordinates. Both
fixed-point and floating-point values are mapped
directly. Neither fixed-point nor floating-point values are
clamped.
The spot direction is transformed by the inverse of the modelview
matrix when glLight
is called (just as if it were a
normal), and it is stored in eye coordinates. It is significant
only when GL_SPOT_CUTOFF
is not 180, which it is
initially. The initial direction is (0, 0, -1).
GL_SPOT_EXPONENT
params
is a single value that specifies the
intensity distribution of the light. Fixed-point and
floating-point values are mapped directly. Only values in the
range [0, 128] are accepted.
Effective light intensity is attenuated by the cosine of the
angle between the direction of the light and the direction from
the light to the vertex being lighted, raised to the power of the
spot exponent. Thus, higher spot exponents result in a more
focused light source, regardless of the spot cutoff angle (see
GL_SPOT_CUTOFF
, next paragraph). The initial spot
exponent is 0, resulting in uniform light distribution.
GL_SPOT_CUTOFF
params
is a single value that specifies the maximum
spread angle of a light source. Fixed-point and floating-point
values are mapped directly. Only values in the range [0, 90] and
the special value 180 are accepted. If the angle between the
direction of the light and the direction from the light to the
vertex being lighted is greater than the spot cutoff angle, the
light is completely masked. Otherwise, its intensity is
controlled by the spot exponent and the attenuation factors. The
initial spot cutoff is 180, resulting in uniform light
distribution.
GL_CONSTANT_ATTENUATION
,
GL_LINEAR_ATTENUATION
,
GL_QUADRATIC_ATTENUATION
params
is a single value that specifies one of the
three light attenuation factors. Fixed-point and floating-point
values are mapped directly. Only nonnegative values are
accepted. If the light is positional, rather than directional,
its intensity is attenuated by the reciprocal of the sum of the
constant factor, the linear factor times the distance between the
light and the vertex being lighted, and the quadratic factor
times the square of the same distance. The initial attenuation
factors are (1, 0, 0), resulting in no attenuation.
It is always the case that GL_LIGHT
i =
GL_LIGHT0
+ i.
GL_INVALID_ENUM
is generated if either
light
or pname
is not an accepted
value.
GL_INVALID_VALUE
is generated if a spot exponent
value is specified outside the range [0, 128], or if spot cutoff
is specified outside the range [0, 90] (except for the special
value 180), or if a negative attenuation factor is specified.
light
- Specifies a light. The number of lights depends on
the implementation, but at least eight lights are supported. They
are identified by symbolic names of the form
GL_LIGHT
i where 0 <= i <
GL_MAX_LIGHTS
.pname
- Specifies a light source parameter for
light. GL_AMBIENT
, GL_DIFFUSE
,
GL_SPECULAR
, GL_POSITION
(1.0 only),
GL_SPOT_CUTOFF
, GL_SPOT_DIRECTION
,
GL_SPOT_EXPONENT
,
GL_CONSTANT_ATTENUATION
,
GL_LINEAR_ATTENUATION
, and
GL_QUADRATIC_ATTENUATION
are accepted.params
- Specifies an array containing values that parameter
pname
of light source light will be set to.offset
- the starting offset within the
params
array.java.lang.IllegalArgumentException
- if params
is
null
.java.lang.IllegalArgumentException
- if offset
is
less than 0.java.lang.IllegalArgumentException
- if params.length -
offset
is smaller than the number of values required by
the parameter.void glLightfv(int light, int pname, FloatBuffer params)
Buffer
version of glLight
.java.lang.IllegalArgumentException
- if params
is
null
.java.lang.IllegalArgumentException
- if
params.remaining()
is smaller than the number of
values required by the parameter.glLightfv(int light, int pname, float[] params, int offset)
void glLightx(int light, int pname, int param)
glLight
.void glLightxv(int light, int pname, int[] params, int offset)
glLight
.java.lang.IllegalArgumentException
- if params
is
null
.java.lang.IllegalArgumentException
- if offset
is
less than 0.java.lang.IllegalArgumentException
- if params.length -
offset
is smaller than the number of values required by
the parameter.glLightfv(int light, int pname, float[] params, int offset)
void glLightxv(int light, int pname, IntBuffer params)
Buffer
version of glLight
.java.lang.IllegalArgumentException
- if params
is
null
.java.lang.IllegalArgumentException
- if
params.remaining()
is smaller than the number of
values required by the parameter.glLightfv(int light, int pname, float[] params, int offset)
void glLineWidth(float width)
glLineWidth
specifies the rasterized width of
both aliased and antialiased lines. Using a line width other than
1 has different effects, depending on whether line antialiasing
is enabled. To enable and disable line antialiasing, call
glEnable
and glDisable
with argument
GL_LINE_SMOOTH
. Line antialiasing is initially
disabled.
If line antialiasing is disabled, the actual width is
determined by rounding the supplied width to the nearest
integer. (If the rounding results in the value 0, it is as if the
line width were 1.) If |delta x| >= |delta y|
,
i pixels are filled in each column that is rasterized,
where i is the rounded value of
width
. Otherwise, i pixels are filled in each
row that is rasterized.
If antialiasing is enabled, line rasterization produces a fragment for each pixel square that intersects the region lying within the rectangle having width equal to the current line width, length equal to the actual length of the line, and centered on the mathematical line segment. The coverage value for each fragment is the window coordinate area of the intersection of the rectangular region with the corresponding pixel square. This value is saved and used in the final rasterization step.
Not all widths can be supported when line antialiasing is
enabled. If an unsupported width is requested, the nearest
supported width is used. Only width 1 is guaranteed to be
supported; others depend on the implementation. Likewise, there
is a range for aliased line widths as well. To query the range of
supported widths and the size difference between supported widths
within the range, call glGetIntegerv
with arguments
GL_ALIASED_LINE_WIDTH_RANGE
,
GL_SMOOTH_LINE_WIDTH_RANGE
,
GL_SMOOTH_LINE_WIDTH_GRANULARITY
.
Nonantialiased line width may be clamped to an
implementation-dependent maximum. Call glGetIntegerv
with GL_ALIASED_LINE_WIDTH_RANGE
to determine the
maximum width.
GL_INVALID_VALUE
is generated if width is less
than or equal to 0.
glGetIntegerv
with argument
GL_ALIASED_LINE_WIDTH_RANGE
glGetIntegerv
with argument
GL_SMOOTH_LINE_WIDTH_RANGE
width
- Specifies the width of rasterized lines. The initial
value is 1.void glLineWidthx(int width)
glLineWidth
.glLineWidth(float)
void glLoadIdentity()
glLoadIdentity
replaces the current matrix with
the identity matrix. It is semantically equivalent to calling
glLoadMatrix with the identity matrix
( 1 0 0 0 ) ( 0 1 0 0 ) ( 0 0 1 0 ) ( 0 0 0 1 )but in some cases it is more efficient.
void glLoadMatrixf(float[] m, int offset)
glLoadMatrix
replaces the current matrix with the
one whose elements are specified by m
. The current
matrix is the projection matrix, modelview matrix, or texture
matrix, depending on the current matrix mode (see glMatrixMode).
The current matrix, M
, defines a transformation
of coordinates. For instance, assume M
refers to the
modelview matrix. If v = (v[0], v[1], v[2], v[3])
is
the set of object coordinates of a vertex, and m
is
an array of 16 fixed-point or single-precision floating-point
values m[0]
, m[1]
, ...,
m[15]
, then the modelview transformation
M(v)
does the following:
( m[0] m[4] m[8] m[12] ) ( v[0] ) M(v) = ( m[1] m[5] m[9] m[13] ) x ( v[1] ) ( m[2] m[6] m[10] m[14] ) ( v[2] ) ( m[3] m[7] m[11] m[15] ) ( v[3] )where "x" denotes matrix multiplication.
Projection and texture transformations are similarly defined.
While the elements of the matrix may be specified with single or double precision, the GL implementation may store or operate on these values in less than single precision.
m
- Specifies an array of at least 16 consecutive values,
the first 16 of which are used as the elements of a 4 × 4
column-major matrix.offset
- the starting offset within the
m
array.java.lang.IllegalArgumentException
- if m
is
null
.java.lang.IllegalArgumentException
- if offset
is
less than 0.java.lang.IllegalArgumentException
- if m.length -
offset
is less than 16.void glLoadMatrixf(FloatBuffer m)
Buffer
version of glLoadMatrix
.java.lang.IllegalArgumentException
- if m
is
null
.java.lang.IllegalArgumentException
- if m.remaining()
is less than 16.glLoadMatrixf(float[] m, int offset)
void glLoadMatrixx(int[] m, int offset)
glLoadMatrix
.java.lang.IllegalArgumentException
- if m
is
null
.java.lang.IllegalArgumentException
- if offset
is
less than 0.java.lang.IllegalArgumentException
- if m.length -
offset
is less than 16.glLoadMatrixf(float[] m, int offset)
void glLoadMatrixx(IntBuffer m)
Buffer
version of glLoadMatrix
.java.lang.IllegalArgumentException
- if m
is
null
.java.lang.IllegalArgumentException
- if m.remaining()
is less than 16.glLoadMatrixf(float[] m, int offset)
void glLogicOp(int opcode)
glLogicOp
specifies a logical operation that,
when enabled, is applied between the incoming color and the color
at the corresponding location in the frame buffer. To enable or
disable the logical operation, call glEnable
and
glDisable
with argument
GL_COLOR_LOGIC_OP
. Logical operation is initially
disabled.
Opcode Resulting Operation GL_CLEAR 0 GL_SET 1 GL_COPY s GL_COPY_INVERTED ~ s GL_NOOP d GL_INVERT ~ d GL_AND s & d GL_NAND ~ (s & d) GL_OR s | d GL_NOR ~ (s | d) GL_XOR s ^ d GL_EQUIV ~ (s ^ d) GL_AND_REVERSE s & ~ d GL_AND_INVERTED ~ s & d GL_OR_REVERSE s | ~ d GL_OR_INVERTED ~ s | d
opcode
is a symbolic constant chosen from the
list above. In the explanation of the logical operations,
s represents the incoming color and d represents
the color in the frame buffer. As in the Java language, "~"
represents bitwise negation, "&" represents bitwise AND, "|"
represents bitwise OR, and "^" represents bitwise XOR. As these
bitwise operators suggest, the logical operation is applied
independently to each bit pair of the source and destination
indices or colors.
GL_INVALID_ENUM
is generated if opcode is not an
accepted value.
opcode
- Specifies a symbolic constant that selects a
logical operation. The following symbols are accepted:
GL_CLEAR
, GL_SET
, GL_COPY
,
GL_COPY_INVERTED
, GL_NOOP
,
GL_INVERT
, GL_AND
,
GL_NAND
, GL_OR
, GL_NOR
,
GL_XOR
, GL_EQUIV
,
GL_AND_REVERSE
, GL_AND_INVERTED
,
GL_OR_REVERSE
, and GL_OR_INVERTED
. The
initial value is GL_COPY
.void glMaterialf(int face, int pname, float param)
glMaterial
assigns values to material
parameters. There are two matched sets of material
parameters. One, the front-facing set, is used to shade points,
lines, and all polygons (when two-sided lighting is disabled), or
just front-facing polygons (when two-sided lighting is
enabled). The other set, back-facing, is used to shade
back-facing polygons only when two-sided lighting is
enabled. Refer to the glLightModel
reference page
for details concerning one- and two-sided lighting calculations.
glMaterial
takes three arguments. The first,
face, must be GL_FRONT_AND_BACK
and specifies that
both front and back materials will be modified. The second,
pname, specifies which of several parameters in one or both sets
will be modified. The third, params, specifies what value or
values will be assigned to the specified parameter.
Material parameters are used in the lighting equation that is
optionally applied to each vertex. The equation is discussed in
the glLightModel
reference page. The parameters that
can be specified using glMaterial
, and their
interpretations by the lighting equation, are as follows:
GL_AMBIENT
params
contains four fixed-point or
floating-point values that specify the ambient RGBA reflectance
of the material. The values are not clamped. The initial ambient
reflectance is (0.2, 0.2, 0.2, 1.0).
GL_DIFFUSE
params
contains four fixed-point or
floating-point values that specify the diffuse RGBA reflectance
of the material. The values are not clamped. The initial diffuse
reflectance is (0.8, 0.8, 0.8, 1.0).
GL_SPECULAR
params
contains four fixed-point or
floating-point values that specify the specular RGBA reflectance
of the material. The values are not clamped. The initial specular
reflectance is (0, 0, 0, 1).
GL_EMISSION
params
contains four fixed-point or
floating-point values that specify the RGBA emitted light
intensity of the material. The values are not clamped. The
initial emission intensity is (0, 0, 0, 1).
GL_SHININESS
params
is a single fixed-point or floating-point
value that specifies the RGBA specular exponent of the
material. Only values in the range [0, 128] are accepted. The
initial specular exponent is 0.
GL_AMBIENT_AND_DIFFUSE
Equivalent to calling glMaterial
twice with the same
parameter values, once with GL_AMBIENT
and once with
GL_DIFFUSE
.
To change the diffuse and ambient material per vertex, color
material can be used. To enable and disable
GL_COLOR_MATERIAL
, call glEnable
and
glDisable
with argument
GL_COLOR_MATERIAL
. Color material is initially
disabled.
While the ambient, diffuse, specular and emission material parameters all have alpha components, only the diffuse alpha component is used in the lighting computation.
GL_INVALID_ENUM
is generated if either face or
pname
is not an accepted value.
GL_INVALID_VALUE
is generated if a specular
exponent outside the range [0, 128] is specified.
face
- Specifies which face or faces are being updated. Must
be GL_FRONT_AND_BACK
.pname
- Specifies the single-valued material parameter of
the face or faces that is being updated. Must be
GL_SHININESS
.param
- Specifies the value that parameter
GL_SHININESS
will be set to.void glMaterialfv(int face, int pname, float[] params, int offset)
glMaterial
assigns values to material
parameters. There are two matched sets of material
parameters. One, the front-facing set, is used to shade points,
lines, and all polygons (when two-sided lighting is disabled), or
just front-facing polygons (when two-sided lighting is
enabled). The other set, back-facing, is used to shade
back-facing polygons only when two-sided lighting is
enabled. Refer to the glLightModel
reference page
for details concerning one- and two-sided lighting calculations.
glMaterial
takes three arguments. The first,
face, must be GL_FRONT_AND_BACK
and specifies that
both front and back materials will be modified. The second,
pname, specifies which of several parameters in one or both sets
will be modified. The third, params, specifies what value or
values will be assigned to the specified parameter.
Material parameters are used in the lighting equation that is
optionally applied to each vertex. The equation is discussed in
the glLightModel
reference page. The parameters that
can be specified using glMaterial
, and their
interpretations by the lighting equation, are as follows:
GL_AMBIENT
params
contains four fixed-point or
floating-point values that specify the ambient RGBA reflectance
of the material. The values are not clamped. The initial ambient
reflectance is (0.2, 0.2, 0.2, 1.0).
GL_DIFFUSE
params
contains four fixed-point or
floating-point values that specify the diffuse RGBA reflectance
of the material. The values are not clamped. The initial diffuse
reflectance is (0.8, 0.8, 0.8, 1.0).
GL_SPECULAR
params
contains four fixed-point or
floating-point values that specify the specular RGBA reflectance
of the material. The values are not clamped. The initial specular
reflectance is (0, 0, 0, 1).
GL_EMISSION
params
contains four fixed-point or
floating-point values that specify the RGBA emitted light
intensity of the material. The values are not clamped. The
initial emission intensity is (0, 0, 0, 1).
GL_SHININESS
params
is a single fixed-point or floating-point
value that specifies the RGBA specular exponent of the
material. Only values in the range [0, 128] are accepted. The
initial specular exponent is 0.
GL_AMBIENT_AND_DIFFUSE
Equivalent to calling glMaterial
twice with the same
parameter values, once with GL_AMBIENT
and once with
GL_DIFFUSE
.
To change the diffuse and ambient material per vertex, color
material can be used. To enable and disable
GL_COLOR_MATERIAL
, call glEnable
and
glDisable
with argument
GL_COLOR_MATERIAL
. Color material is initially
disabled.
While the ambient, diffuse, specular and emission material parameters all have alpha components, only the diffuse alpha component is used in the lighting computation.
GL_INVALID_ENUM
is generated if either face or
pname
is not an accepted value.
GL_INVALID_VALUE
is generated if a specular
exponent outside the range [0, 128] is specified.
face
- Specifies which face or faces are being updated. Must
be GL_FRONT_AND_BACK
.pname
- Specifies the material parameter of the face or
faces that is being updated. Must be one of
GL_AMBIENT
, GL_DIFFUSE
,
GL_SPECULAR
, GL_EMISSION
,
GL_SHININESS
, or
GL_AMBIENT_AND_DIFFUSE
.params
- Specifies a pointer to the value or values that
pname
will be set to.offset
- the starting offset within the
params
array.java.lang.IllegalArgumentException
- if params
is
null
.java.lang.IllegalArgumentException
- if offset
is
less than 0.java.lang.IllegalArgumentException
- if params.length -
offset
is smaller than the number of values required by
the parameter.void glMaterialfv(int face, int pname, FloatBuffer params)
Buffer
version of glMaterial
.java.lang.IllegalArgumentException
- if params
is
null
.java.lang.IllegalArgumentException
- if
params.remaining()
is smaller than the number of
values required by the parameter.glMaterialfv(int face, int pname, float[] params, int offset)
void glMaterialx(int face, int pname, int param)
glMaterial
.void glMaterialxv(int face, int pname, int[] params, int offset)
glMaterial
.java.lang.IllegalArgumentException
- if params
is
null
.java.lang.IllegalArgumentException
- if offset
is
less than 0.java.lang.IllegalArgumentException
- if params.length -
offset
is smaller than the number of values required by
the parameter.glMaterialfv(int face, int pname, float[] params, int offset)
void glMaterialxv(int face, int pname, IntBuffer params)
Buffer
version of glMaterial
.java.lang.IllegalArgumentException
- if params
is
null
.java.lang.IllegalArgumentException
- if
params.remaining()
is smaller than the number of
values required by the parameter.glMaterialfv(int face, int pname, float[] params, int offset)
void glMatrixMode(int mode)
glMatrixMode
sets the current matrix mode. mode
can assume one of three values:
GL_MODELVIEW
Applies subsequent matrix operations to the modelview matrix stack.
GL_PROJECTION
Applies subsequent matrix operations to the projection matrix stack.
GL_TEXTURE
Applies subsequent matrix operations to the texture matrix stack.
GL_MATRIX_PALETTE_OES
(OES_matrix_palette
extension)Enables the matrix palette stack extension, and applies subsequent matrix operations to the matrix palette stack.
GL_INVALID_ENUM
is generated if mode is not an
accepted value.
mode
- Specifies which matrix stack is the target for
subsequent matrix operations. These values are accepted:
GL_MODELVIEW
, GL_PROJECTION
, and
GL_TEXTURE
. In the OES_matrix_palette
extension is available, GL_MATRIX_PALETTE_OES
is
additionally accepted. The initial value is
GL_MODELVIEW
.void glMultMatrixf(float[] m, int offset)
glMultMatrix
multiplies the current matrix with
the one specified using m, and replaces the current matrix with
the product.
The current matrix is determined by the current matrix mode (see glMatrixMode). It is either the projection matrix, modelview matrix, or the texture matrix.
If the current matrix is C
, and the coordinates
to be transformed are, v
= (v[0]
,
v[1]
, v[2]
, v[3]
), then
the current transformation is C x v
, or
( c[0] c[4] c[8] c[12] ) ( v[0] ) ( c[1] c[5] c[9] c[13] ) x ( v[1] ) ( c[2] c[6] c[10] c[14] ) ( v[2] ) ( c[3] c[7] c[11] c[15] ) ( v[3] )
Calling glMultMatrix
with an argument of
m
= m[0]
, m[1]
, ...,
m[15]
replaces the current transformation with
(C x M) x v
, or
( c[0] c[4] c[8] c[12] ) ( m[0] m[4] m[8] m[12] ) ( v[0] ) ( c[1] c[5] c[9] c[13] ) x ( m[1] m[5] m[9] m[13] ) x ( v[1] ) ( c[2] c[6] c[10] c[14] ) ( m[2] m[6] m[10] m[14] ) ( v[2] ) ( c[3] c[7] c[11] c[15] ) ( m[3] m[7] m[11] m[15] ) ( v[3] )
where "x" denotes matrix multiplication, and v
is
represented as a 4 × 1 matrix.
While the elements of the matrix may be specified with single or double precision, the GL may store or operate on these values in less than single precision.
The array elements are passed in as a one-dimensional
array in column-major order. The order of the multiplication
is important. For example, if the current transformation is a
rotation, and glMultMatrix
is called with a
translation matrix, the translation is done directly on the
coordinates to be transformed, while the rotation is done on the
results of that translation.
m
- Specifies an array of at least 16 consecutive values,
the first 16 of which are used as the elements of a 4 × 4
column-major matrix.offset
- the starting offset within the
m
array.java.lang.IllegalArgumentException
- if m
is
null
.java.lang.IllegalArgumentException
- if offset
is
less than 0.java.lang.IllegalArgumentException
- if m.length -
offset
is less than 16.void glMultMatrixf(FloatBuffer m)
Buffer
version of glMultMatrix
.java.lang.IllegalArgumentException
- if m
is
null
.java.lang.IllegalArgumentException
- if m.remaining()
is less than 16.glMultMatrixf(float[] m, int offset)
void glMultMatrixx(int[] m, int offset)
glMultMatrix
.java.lang.IllegalArgumentException
- if m
is
null
.java.lang.IllegalArgumentException
- if offset
is
less than 0.java.lang.IllegalArgumentException
- if m.length -
offset
is less than 16.glMultMatrixf(float[] m, int offset)
void glMultMatrixx(IntBuffer m)
Buffer
version of glMultMatrix
.java.lang.IllegalArgumentException
- if m
is
null
.java.lang.IllegalArgumentException
- if m.remaining()
is less than 16.glMultMatrixf(float[] m, int offset)
void glMultiTexCoord4f(int target, float s, float t, float r, float q)
glMultiTexCoord
specifies the four texture
coordinates as (s, t, r, q)
.
The current texture coordinates are part of the data that is associated with each vertex.
It is always the case that GL_TEXTURE
i =
GL_TEXTURE0
+ i.
glGetIntegerv
with argument
GL_MAX_TEXTURE_UNITS
.
target
- Specifies texture unit whose coordinates should be
modified. The number of texture units is implementation
dependent, but must be at least one. Must be one of
GL_TEXTURE
i, where 0 <= i <
GL_MAX_TEXTURE_UNITS
, which is an implementation-dependent
value.s
- Specifies an s texture coordinate for target texture
unit. The initial value is 0.t
- Specifies a t texture coordinate for
target texture unit. The initial value is 0.r
- Specifies an r texture coordinate for
target texture unit. The initial value is 0.q
- Specifies a q texture coordinate for
target texture unit. The initial value is 1.void glMultiTexCoord4x(int target, int s, int t, int r, int q)
glMultiTexCoord
.void glNormal3f(float nx, float ny, float nz)
The current normal is set to the given coordinates whenever
glNormal
is issued. Byte, short, or integer arguments are
converted to floating-point with a linear mapping that maps the
most positive representable integer value to 1.0, and the most
negative representable integer value to -1.0.
Normals specified with glNormal
need not have
unit length. If GL_NORMALIZE
is enabled, then
normals of any length specified with glNormal
are
normalized after transformation. If
GL_RESCALE_NORMAL
is enabled, normals are scaled by
a scaling factor derived from the modelview
matrix. GL_RESCALE_NORMAL
requires that the
originally specified normals were of unit length, and that the
modelview matrix contain only uniform scales for proper
results. To enable and disable normalization, call
glEnable
and glDisable
with either
GL_NORMALIZE
or
GL_RESCALE_NORMAL
. Normalization is initially
disabled.
nx
- Specifies the x coordinate of the new
current normal. The initial value is 0.ny
- Specifies the y coordinate of the new
current normal. The initial value is 0.nz
- Specifies the z coordinate of the new
current normal. The initial value is 1.void glNormal3x(int nx, int ny, int nz)
glNormal
.glNormal3f(float, float, float)
void glNormalPointer(int type, int stride, Buffer pointer)
glNormalPointer
specifies the location and data
of an array of normals to use when rendering. type specifies the
data type of the normal coordinates and stride gives the byte
stride from one normal to the next, allowing vertices and
attributes to be packed into a single array or stored in separate
arrays. (Single-array storage may be more efficient on some
implementations.) When a normal array is specified, type , stride
, and pointer are saved as client-side state.
If the normal array is enabled, it is used when
glDrawArrays
or glDrawElements
is
called. To enable and disable the normal array, call
glEnableClientState
and
glDisableClientState
with the argument
GL_NORMAL_ARRAY
. The normal array is initially
disabled and isn't accessed when glDrawArrays
or
glDrawElements
is called.
Use glDrawArrays
to construct a sequence of
primitives (all of the same type) from prespecified vertex and
vertex attribute arrays. Use glDrawElements
to
construct a sequence of primitives by indexing vertices and
vertex attributes.
glNormalPointer
is typically implemented on the
client side.
GL_INVALID_ENUM
is generated if type is not an
accepted value.
GL_INVALID_VALUE
is generated if stride is
negative.
The pointer
argument must be a direct buffer
with a type matching that specified by the type
argument.
type
- Specifies the data type of each coordinate in the
array. Symbolic constants GL_BYTE
,
GL_SHORT
, GL_FIXED
, and
GL_FLOAT
are accepted. The initial value is
GL_FLOAT
.stride
- Specifies the byte offset between consecutive
normals. If stride is 0, the normals are understood to be tightly
packed in the array. The initial value is 0.pointer
- Specifies a pointer to the first coordinate of the
first normal in the array. The initial value is 0.java.lang.IllegalStateException
- if OpenGL ES 1.1 is being used and
VBOs are enabled.java.lang.IllegalArgumentException
- if pointer
is
null
.java.lang.IllegalArgumentException
- if pointer
is not direct.void glOrthof(float left, float right, float bottom, float top, float near, float far)
glOrtho
describes a transformation that produces
a parallel projection. The current matrix (see glMatrixMode) is
multiplied by this matrix and the result replaces the current
matrix, as if glMultMatrix
were called with the
following matrix as its argument:
( 2/(right - left) 0 0 tx ) ( 0 2/(top - bottom) 0 ty ) ( 0 0 (-2)/(far - near) tz ) ( 0 0 0 1 )
where
tx = - (right + left)/(right - left) ty = - (top + bottom)/(top - bottom) tz = - (far + near) /(far - near)
Typically, the matrix mode is GL_PROJECTION
, and
(left, bottom, -near) and (right, top, -near) specify the points
on the near clipping plane that are mapped to the lower left and
upper right corners of the window, respectively, assuming that
the eye is located at (0, 0, 0). -far specifies the location of
the far clipping plane. Both near and far can be either positive
or negative.
Use glPushMatrix
and glPopMatrix
to
save and restore the current matrix stack.
left
- Specifies the coordinate for the left
vertical clipping plane.right
- Specifies the coordinate for the right
vertical clipping plane.bottom
- Specifies the coordinate for the bottom
horizontal clipping plane.top
- Specifies the coordinate for the top
horizontal clipping plane.near
- Specifies the distance to the nearer
depth clipping plane. This value is negative if the plane is
to be behind the viewer.far
- Specifies the distance to the farther
depth clipping plane. This value is negative if the plane is
to be behind the viewer.void glOrthox(int left, int right, int bottom, int top, int near, int far)
glOrtho
.void glPixelStorei(int pname, int param)
glPixelStore
sets pixel storage modes that affect
the operation of subsequent glReadPixels
as well as
the unpacking of glTexImage2D
, and
glTexSubImage2D
.
pname
is a symbolic constant indicating the
parameter to be set, and param
is the new value. The
following storage parameter affects how pixel data is returned to
client memory. This value is significant for
glReadPixels
:
GL_PACK_ALIGNMENT
Specifies the alignment requirements for the start of each pixel row in memory. The allowable values are 1 (byte-alignment), 2 (rows aligned to even-numbered bytes), 4 (word-alignment), and 8 (rows start on double-word boundaries). The initial value is 4.
The following storage parameter affects how pixel data is read
from client memory. This value is significant for
glTexImage2D
and glTexSubImage2D
:
GL_UNPACK_ALIGNMENT
Specifies the alignment requirements for the start of each pixel row in memory. The allowable values are 1 (byte-alignment), 2 (rows aligned to even-numbered bytes), 4 (word-alignment), and 8 (rows start on double-word boundaries). The initial value is 4.
Pixel storage modes are client states.
glCompressedTexImage2D
and
glCompressedTexSubImage2D
are not affected by
glPixelStore
.
GL_INVALID_ENUM
is generated if
pname
is not an accepted value.
GL_INVALID_VALUE
is generated if alignment is
specified as other than 1, 2, 4, or 8.
pname
- Specifies the symbolic name of the parameter to be
set. GL_PACK_ALIGNMENT
affects the packing of pixel
data into memory. GL_UNPACK_ALIGNMENT
affects the
unpacking of pixel data from memory.param
- Specifies the value that pname
is set
to.void glPointSize(float size)
glPointSize
specifies the rasterized diameter of
both aliased and antialiased points. Using a point size other
than 1 has different effects, depending on whether point
antialiasing is enabled. To enable and disable point
antialiasing, call glEnable
and
glDisable
with argument
GL_POINT_SMOOTH
. Point antialiasing is initially
disabled.
If point antialiasing is disabled, the actual size is determined by rounding the supplied size to the nearest integer. (If the rounding results in the value 0, it is as if the point size were 1.) If the rounded size is odd, then the center point (x, y) of the pixel fragment that represents the point is computed as
(floor(xw) + 1/2, floor(yw) + 1/2)
where w subscripts indicate window coordinates. All pixels that lie within the square grid of the rounded size centered at (x, y) make up the fragment. If the size is even, the center point is
(floor(xw + 1/2), floor(yw + 1/2))
and the rasterized fragment's centers are the half-integer window coordinates within the square of the rounded size centered at (x, y). All pixel fragments produced in rasterizing a nonantialiased point are assigned the same associated data, that of the vertex corresponding to the point.
If antialiasing is enabled, then point rasterization produces a fragment for each pixel square that intersects the region lying within the circle having diameter equal to the current point size and centered at the point's (xw, yw) . The coverage value for each fragment is the window coordinate area of the intersection of the circular region with the corresponding pixel square. This value is saved and used in the final rasterization step. The data associated with each fragment is the data associated with the point being rasterized.
Not all sizes are supported when point antialiasing is
enabled. If an unsupported size is requested, the nearest
supported size is used. Only size 1 is guaranteed to be
supported; others depend on the implementation. To query the
range of supported sizes, call glGetIntegerv
with the argument
GL_SMOOTH_POINT_SIZE_RANGE
. For aliased points, query the
supported ranges glGetIntegerv
with the argument
GL_ALIASED_POINT_SIZE_RANGE
.
A non-antialiased point size may be clamped to an implementation-dependent maximum. Although this maximum cannot be queried, it must be no less than the maximum value for antialiased points, rounded to the nearest integer value.
GL_INVALID_VALUE
is generated if size is less
than or equal to 0.
glGetIntegerv
with argument
GL_ALIASED_POINT_SIZE_RANGE
glGetIntegerv
with argument
GL_SMOOTH_POINT_SIZE_RANGE
size
- Specifies the diameter of rasterized points. The
initial value is 1.void glPointSizex(int size)
glPointSize
.glPointSize(float)
void glPolygonOffset(float factor, float units)
When GL_POLYGON_OFFSET_FILL
is enabled, each
fragment's depth value will be offset after it is interpolated
from the depth values of the appropriate vertices. The value of
the offset is m * factor + r * units, where m is a measurement of
the change in depth relative to the screen area of the polygon,
and r is the smallest value that is guaranteed to produce a
resolvable offset for a given implementation. The offset is added
before the depth test is performed and before the value is
written into the depth buffer.
glPolygonOffset
is useful for for applying decals
to surfaces.
factor
- Specifies a scale factor that is used to create a
variable depth offset for each polygon. The initial value is 0.units
- Is multiplied by an implementation-specific value to
create a constant depth offset. The initial value is 0.void glPolygonOffsetx(int factor, int units)
glPolygonOffset
.glPolygonOffset(float, float)
void glPopMatrix()
glPushMatrix()
void glPushMatrix()
There is a stack of matrices for each of the matrix modes. In
GL_MODELVIEW
mode, the stack depth is at least
16. In the other modes, GL_PROJECTION
, and
GL_TEXTURE
, the depth is at least 2. The current
matrix in any mode is the matrix on the top of the stack for that
mode.
glPushMatrix
pushes the current matrix stack down
by one, duplicating the current matrix. That is, after a
glPushMatrix call, the matrix on top of the stack is identical to
the one below it.
glPopMatrix
pops the current matrix stack,
replacing the current matrix with the one below it on the stack.
Initially, each of the stacks contains one matrix, an identity matrix.
It is an error to push a full matrix stack, or to pop a matrix stack that contains only a single matrix. In either case, the error flag is set and no other change is made to GL state.
Each texture unit has its own texture matrix stack. Use
glActiveTexture
to select the desired texture matrix stack.
GL_STACK_OVERFLOW
is generated if
glPushMatrix
is called while the current matrix
stack is full.
GL_STACK_UNDERFLOW
is generated if
glPopMatrix
is called while the current matrix stack
contains only a single matrix.
glGetIntegerv
with argument
GL_MAX_MODELVIEW_STACK_DEPTH
glGetIntegerv
with argument
GL_MAX_PROJECTION_STACK_DEPTH
glGetIntegerv
with argument
GL_MAX_TEXTURE_STACK_DEPTH
glGetIntegerv
with argument
GL_MAX_TEXTURE_UNITS
void glReadPixels(int x, int y, int width, int height, int format, int type, Buffer pixels)
glReadPixels
returns pixel data from the color
buffer, starting with the pixel whose lower left corner is at
location (x, y), into client memory starting at location
pixels. The processing of the pixel data before it is placed into
client memory can be controlled with glPixelStore
.
glReadPixels
returns values from each pixel with
lower left 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. Pixels are
returned in row order from the lowest to the highest row, left to
right in each row.
format
specifies the format of the returned pixel
values. GL_RGBA
is always accepted, the value of
GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
may allow
another format:
GL_RGBA
Each color component is converted to floating point such that zero intensity maps to 0 and full intensity maps to 1.
GL_RGB
Each element is an RGB triple. The GL converts it to floating point and assembles it into an RGBA element by attaching 1 for alpha.
GL_LUMINANCE
Each element is a single luminance value. The GL converts it to floating point and assembles it into an RGBA element by replicating the luminance value three times for red, green and blue and attaching 1 for alpha.
GL_LUMINANCE_ALPHA
Each element is a luminance/alpha pair. The GL converts it to floating point and assembles it into an RGBA element by replicating the luminance value three times for red, green and blue.
GL_ALPHA
Each element is a single alpha component. The GL converts it to floating point and assembles it into an RGBA element by attaching 0 for red, green and blue.
Unneeded data is then discarded. For example,
GL_ALPHA
discards the red, green, and blue
components, while GL_RGB
discards only the alpha
component. GL_LUMINANCE
computes a single-component
value as the sum of the red, green, and blue components, and
GL_LUMINANCE_ALPHA
does the same, while keeping
alpha as a second value. The final values are clamped to the
range [0, 1]
.
Finally, the components are converted to the proper, as specified by type where each component is multiplied by 2^n - 1, where n is the number of bits per component.
Return values are placed in memory as follows. If format is
GL_ALPHA
, or GL_LUMINANCE
, a single
value is returned and the data for the ith pixel in the jth row
is placed in location j * width + i. GL_RGB
returns
three values, GL_RGBA
returns four values, and
GL_LUMINANCE_ALPHA
returns two values for each
pixel, with all values corresponding to a single pixel occupying
contiguous space in pixels. Storage parameter
GL_PACK_ALIGNMENT
set by glPixelStore
,
affects the way that data is written into memory. See
glPixelStore
for a description.
Values for pixels that lie outside the window connected to the current GL context are undefined.
If an error is generated, no change is made to the contents of pixels.
GL_INVALID_ENUM
is generated if format is not
GL_RGBA
or the value of
GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
.
GL_INVALID_ENUM
is generated if type is not
GL_UNSIGNED_BYTE
or the value of
GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
.
GL_INVALID_VALUE
is generated if either width or
height is negative.
GL_INVALID_OPERATION
is generated if format and
type are neither (GL_RGBA
,
GL_UNSIGNED_BYTE)
nor the values of
(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
,
GL_IMPLEMENTATION_COLOR_READ_TYPE_OES)
.
glGetIntegerv
with argument
GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
glGetIntegerv
with argument
GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
x
- Specifies the window x coordinate of the first pixel
that is read from the color buffer. This location is the lower
left corner of a rectangular block of pixels.y
- Specifies the window y coordinate of the first pixel
that is read from the color buffer. This location is the lower
left corner of a rectangular block of pixels.width
- Specifies the width of the pixel
rectangle. width and height of one correspond to a single pixel.height
- Specifies the height of the pixel
rectangle. width and height of one correspond to a single pixel.format
- Specifies the format of the pixel data. Must be
either GL_RGBA
or the value of
GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
.type
- Specifies the data type of the pixel data. Must be
either GL_UNSIGNED_BYTE
or the value of
GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
.pixels
- Returns the pixel data.java.lang.IllegalArgumentException
- if pixels
is
null
.java.lang.IllegalArgumentException
- if pixels
does
not contain enough room for the pixel data.void glRotatef(float angle, float x, float y, float z)
glRotate
produces a rotation of angle degrees
around the vector (x, y, z) . The current matrix (see
glMatrixMode) is multiplied by a rotation matrix with the product
replacing the current matrix, as if glMultMatrix
were called with the following matrix as its argument:
( x^2(1 - c) + c xy (1 - c) - zs xz (1 - c) + ys 0 ) ( xy (1 - c) + zs y^2(1 - c) + c yz (1 - c) - xs 0 ) ( xz (1 - c) - ys yz (1 - c) + xs z^2(1 - c) + c 0 ) ( 0 0 0 1 )
Where c = cos (angle), s = sin (angle), and ||(x, y, z)|| = 1, (if not, the GL will normalize this vector).
If the matrix mode is either GL_MODELVIEW
or
GL_PROJECTION
, all objects drawn after
glRotate
is called are rotated. Use
glPushMatrix
and glPopMatrix
to save
and restore the unrotated coordinate system.
This rotation follows the right-hand rule, so if the vector (x, y, z) points toward the user, the rotation will be counterclockwise.
angle
- Specifies the angle of rotation, in degrees.x
- Specifies the x coordinate of a vector.y
- Specifies the y coordinate of a vector.z
- Specifies the z coordinate of a vector.void glRotatex(int angle, int x, int y, int z)
glRotate
.void glSampleCoverage(float value, boolean invert)
glSampleCoverage
defines a mask to modify the coverage of
multisampled pixel fragments. This capability is used for
antialiased screen-door transparency and smooth transitions
between two renderings of an object (often for level-of-detail
management in simulation systems).
When multisampling is enabled (see glEnable
with
argument GL_MULTISAMPLE)
a ``fragment mask'' is
computed for each fragment generated by a primitive. This mask
reflects the amount of the pixel covered by the fragment, and
determines the frame buffer samples that may be affected by the
fragment.
If conversion of alpha values to masks is enabled
(glEnable
with argument
GL_SAMPLE_ALPHA_TO_MASK)
, the fragment alpha value
is used to generate a temporary modification mask which is then
ANDed with the fragment mask. One way to interpret this is as a
form of dithering: a multivalued alpha (coverage or opacity) for
the whole fragment is converted to simple binary values of
coverage at many locations (the samples).
After conversion of alpha values to masks, if replacement of
alpha values is enabled (glEnable
with argument
GL_SAMPLE_ALPHA_TO_ONE)
, the fragment's alpha is set
to the maximum allowable value.
Finally, if fragment mask modification is enabled
(glEnable
with argument
GL_SAMPLE_MASK)
, glSampleCoverage
defines an additional modification mask. value is used to
generate a modification mask in much the same way alpha was used
above. If invert is GL_TRUE
, then the modification
mask specified by value will be inverted. The final modification
mask will then be ANDed with the fragment mask resulting from the
previous steps. This can be viewed as an ``override'' control
that selectively fades the effects of multisampled fragments.
Note that glSampleCoverage(value, GL_TRUE)
is not
necessarily equivalent to glSampleCoverage(1.0 - value,
GL_FALSE)
; due to round-off and other issues, complementing
the coverage will not necessarily yield an inverted modification
mask.
value
- Specifies the coverage of the modification mask. The
value is clamped to the range [0, 1]
, where 0
represents no coverage and 1 full coverage. The initial value is
1.invert
- Specifies whether the modification mask implied by
value is inverted or not. The initial value is GL_FALSE
.void glSampleCoveragex(int value, boolean invert)
glSampleCoverage
.glSampleCoverage(float, boolean)
void glScalef(float x, float y, float z)
glScale
produces a nonuniform scaling along the
x, y, and z axes. The three parameters indicate the desired scale
factor along each of the three axes.
The current matrix (see glMatrixMode) is multiplied by this scale matrix, and the product replaces the current matrix as if glScale were called with the following matrix as its argument:
( x 0 0 0 ) ( 0 y 0 0 ) ( 0 0 z 0 ) ( 0 0 0 1 )
If the matrix mode is either GL_MODELVIEW
or
GL_PROJECTION
, all objects drawn after
glScale
is called are scaled.
Use glPushMatrix
and glPopMatrix
to
save and restore the unscaled coordinate system.
If scale factors other than 1 are applied to the modelview matrix
and lighting is enabled, lighting often appears wrong. In that
case, enable automatic normalization of normals by calling
glEnable
with the argument GL_NORMALIZE
.
x
- Specifies the scale factor along the x axis.y
- Specifies the scale factor along the y axis.z
- Specifies the scale factor along the z axis.void glScalex(int x, int y, int z)
glScale
.glScalef(float, float, float)
void glScissor(int x, int y, int width, int height)
glScissor
defines a rectangle, called the scissor
box, in window coordinates. The first two arguments, x and y,
specify the lower left corner of the box. width and height
specify the width and height of the box.
To enable and disable the scissor test, call
glEnable
and glDisable
with argument
GL_SCISSOR_TEST
. The scissor test is initially
disabled. While scissor test is enabled, only pixels that lie
within the scissor box can be modified by drawing
commands. Window coordinates have integer values at the shared
corners of frame buffer pixels. glScissor(0, 0, 1, 1) allows
modification of only the lower left pixel in the window, and
glScissor(0, 0, 0, 0) doesn't allow modification of any pixels in
the window.
When the scissor test is disabled, it is as though the scissor box includes the entire window.
GL_INVALID_VALUE
is generated if either width or
height is negative.
x
- Specifies the x coordinate of the lower left corner
of the scissor box, in pixels. The initial value is 0.y
- Specifies the y coordinate of the lower left corner
of the scissor box, in pixels. The initial value is 0.width
- Specifies the width of the scissor box. When a GL
context is first attached to a surface (e.g. window), width and
height are set to the dimensions of that surface.height
- Specifies the height of the scissor box. When a GL
context is first attached to a surface (e.g. window), width and
height are set to the dimensions of that surface.void glShadeModel(int mode)
GL primitives can have either flat or smooth shading. Smooth shading, the default, causes the computed colors of vertices to be interpolated as the primitive is rasterized, typically assigning different colors to each resulting pixel fragment. Flat shading selects the computed color of just one vertex and assigns it to all the pixel fragments generated by rasterizing a single primitive. In either case, the computed color of a vertex is the result of lighting if lighting is enabled, or it is the current color at the time the vertex was specified if lighting is disabled.
Flat and smooth shading are indistinguishable for points. Starting at the beginning of the vertex array and counting vertices and primitives from 1, the GL gives each flat-shaded line segment i the computed color of vertex i + 1, its second vertex. Counting similarly from 1, the GL gives each flat-shaded polygon the computed color of vertex i + 2, which is the last vertex to specify the polygon.
Flat and smooth shading are specified by
glShadeModel
with mode set to GL_FLAT
and GL_SMOOTH
, respectively.
GL_INVALID_ENUM
is generated if mode is any value
other than GL_FLAT
or GL_SMOOTH
.
mode
- Specifies a symbolic value representing a shading
technique. Accepted values are GL_FLAT
and
GL_SMOOTH
. The initial value is
GL_SMOOTH
.void glStencilFunc(int func, int ref, int mask)
Stenciling, like depth-buffering, enables and disables drawing on a per-pixel basis. You draw into the stencil planes using GL drawing primitives, then render geometry and images, using the stencil planes to mask out portions of the screen. Stenciling is typically used in multipass rendering algorithms to achieve special effects, such as decals, outlining, and constructive solid geometry rendering.
The stencil test conditionally eliminates a pixel based on the
outcome of a comparison between the reference value and the value
in the stencil buffer. To enable and disable stencil test, call
glEnable
and glDisable
with argument
GL_STENCIL_TEST
. Stencil test is initially
disabled. To specify actions based on the outcome of the stencil
test, call glStencilOp
.
func
is a symbolic constant that determines the
stencil comparison function. It accepts one of eight values,
shown in the following list. ref
is an integer
reference value that is used in the stencil comparison. It is
clamped to the range [0, 2^n - 1]
, where n is
the number of bitplanes in the stencil buffer. mask
is bitwise ANDed with both the reference value and the stored
stencil value, with the ANDed values participating in the
comparison.
If stencil
represents the value stored in the
corresponding stencil buffer location, the following list shows
the effect of each comparison function that can be specified by
func. Only if the comparison succeeds is the pixel passed through
to the next stage in the rasterization process (see
glStencilOp). All tests treat stencil values as unsigned integers
in the range [0, 2^n - 1]
, where n is the
number of bitplanes in the stencil buffer.
The following values are accepted by func
:
GL_NEVER
Always fails.
GL_LESS
Passes if (ref & mask) < (stencil & mask) .
GL_LEQUAL
Passes if (ref & mask) <= (stencil & mask) .
GL_GREATER
Passes if (ref & mask) > (stencil & mask) .
GL_GEQUAL
Passes if (ref & mask) >= (stencil & mask) .
GL_EQUAL
Passes if (ref & mask) == (stencil & mask) .
GL_NOTEQUAL
Passes if (ref & mask) != (stencil & mask) .
GL_ALWAYS
Always passes.
Initially, the stencil test is disabled. If there is no stencil buffer, no stencil modification can occur and it is as if the stencil test always passes.
GL_INVALID_ENUM
is generated if func is not one
of the eight accepted values.
glGetIntegerv
with argument GL_STENCIL_BITS
func
- Specifies the test function. Eight tokens are valid:
GL_NEVER
, GL_LESS
,
GL_LEQUAL
, GL_GREATER
,
GL_GEQUAL
, GL_EQUAL
,
GL_NOTEQUAL
, and GL_ALWAYS
. The initial
value is GL_ALWAYS
.ref
- Specifies the reference value for the stencil
test. ref
is clamped to the range [0, 2^n -
1]
, where n is the number of bitplanes in the
stencil buffer. The initial value is 0.mask
- Specifies 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.void glStencilMask(int mask)
glStencilMask
controls the writing of individual
bits in the stencil planes. The least significant n bits of mask,
where n is the number of bits in the stencil buffer, specify a
mask. Where a 1 appears in the mask, it's possible to write to
the corresponding bit in the stencil buffer. Where a 0 appears,
the corresponding bit is write-protected. Initially, all bits are
enabled for writing.
glGetIntegerv
with argument GL_STENCIL_BITS
mask
- Specifies a bit mask to enable and disable writing of
individual bits in the stencil planes. The initial value is all
1's.void glStencilOp(int fail, int zfail, int zpass)
Stenciling, like depth-buffering, enables and disables drawing on a per-pixel basis. You draw into the stencil planes using GL drawing primitives, then render geometry and images, using the stencil planes to mask out portions of the screen. Stenciling is typically used in multipass rendering algorithms to achieve special effects, such as decals, outlining, and constructive solid geometry rendering.
The stencil test conditionally eliminates a pixel based on the
outcome of a comparison between the value in the stencil buffer
and a reference value. To enable and disable stencil test, call
glEnable
and glDisable
with argument
GL_STENCIL_TEST
. To control it, call
glStencilFunc
. Stenciling is initially disabled.
glStencilOp
takes three arguments that indicate
what happens to the stored stencil value while stenciling is
enabled. If the stencil test fails, no change is made to the
pixel's color or depth buffers, and fail specifies what happens
to the stencil buffer contents. The following six actions are
possible.
GL_KEEP
Keeps the current value.
GL_ZERO
Sets the stencil buffer value to 0.
GL_REPLACE
Sets the stencil buffer value to ref, as specified by
glStencilFunc
.
GL_INCR
Increments the current stencil buffer value. Clamps to the maximum representable unsigned value.
GL_DECR
Decrements the current stencil buffer value. Clamps to 0.
GL_INVERT
Bitwise inverts the current stencil buffer value. <--
OES_stencil_wrap
extension)
GL_DECR_WRAP
Decrements the current stencil buffer value, wrapping around to the maximum representable unsigned value if less than 0.
OES_stencil_wrap
extension)
GL_INCR
Increments the current stencil buffer value, wrapping around to 0 if greater than the maximum representable unsigned value. -->
Stencil buffer values are treated as unsigned integers. When
incremented and decremented, values are clamped to 0 and 2^n - 1,
where n is the value returned by querying GL_STENCIL_BITS
.
The other two arguments to glStencilOp
specify
stencil buffer actions that depend on whether subsequent depth
buffer tests succeed (zpass
) or fail
(zfail
) (see glDepthFunc
). The actions
are specified using the same six symbolic constants as
fail
. Note that zfail
is ignored when
there is no depth buffer, or when the depth buffer is not
enabled. In these cases, fail
and zpass
specify stencil action when the stencil test fails and passes,
respectively.
If there is no stencil buffer, no stencil modification can occur
and it is as if the stencil tests always pass, regardless of any
call to glStencilOp
.
GL_INVALID_ENUM
is generated if fail, zfail, or
zpass is any value other than the six defined constant values.
glGetIntegerv
with argument GL_STENCIL_BITS
fail
- Specifies the action to take when the stencil test
fails. Six symbolic constants are accepted: GL_KEEP
,
GL_ZERO
, GL_REPLACE
,
GL_INCR
, GL_DECR
, and
GL_INVERT
. The initial value is GL_KEEP
.zfail
- Specifies the stencil action when the stencil test
passes, but the depth test fails. zfail
accepts the
same symbolic constants as fail
. The initial value
is GL_KEEP
.zpass
- Specifies 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. zpass
accepts the same symbolic constants
as fail
. The initial value is GL_KEEP
.void glTexCoordPointer(int size, int type, int stride, Buffer pointer)
glTexCoordPointer
specifies the location and data
of an array of texture coordinates to use when rendering. size
specifies the number of coordinates per element, and must be 2,
3, or 4. type specifies the data type of each texture coordinate
and stride specifies the byte stride from one array element to
the next allowing vertices and attributes to be packed into a
single array or stored in separate arrays. (Single-array storage
may be more efficient on some implementations.)
When a texture coordinate array is specified, size, type, stride, and pointer are saved as client-side state.
If the texture coordinate array is enabled, it is used when
glDrawArrays
, or glDrawElements
is
called. To enable and disable the texture coordinate array for
the client-side active texture unit, call
glEnableClientState
and
glDisableClientState
with the argument
GL_TEXTURE_COORD_ARRAY
. The texture coordinate array
is initially disabled for all client-side active texture units
and isn't accessed when glDrawArrays
or
glDrawElements
is called.
Use glDrawArrays
to construct a sequence of
primitives (all of the same type) from prespecified vertex and
vertex attribute arrays. Use glDrawElements
to
construct a sequence of primitives by indexing vertices and
vertex attributes.
glTexCoordPointer
is typically implemented on the
client side.
glTexCoordPointer
updates the texture coordinate
array state of the client-side active texture unit, specified
with glClientActiveTexture
.
GL_INVALID_VALUE
is generated if size is not 2, 3, or 4.
GL_INVALID_ENUM
is generated if type is not an
accepted value.
GL_INVALID_VALUE
is generated if stride is negative.
The pointer
argument must be a direct buffer
with a type matching that specified by the type
argument.
size
- Specifies the number of coordinates per array
element. Must be 2, 3 or 4. The initial value is 4.type
- Specifies the data type of each texture
coordinate. Symbolic constants GL_BYTE
,
GL_SHORT
, GL_FIXED
,and
GL_FLOAT
are accepted. The initial value is
GL_FLOAT
.stride
- Specifies the byte offset between consecutive array
elements. If stride is 0, the array elements are understood to be
tightly packed. The initial value is 0.pointer
- Specifies a pointer to the first coordinate of the
first element in the array. The initial value is 0.java.lang.IllegalStateException
- if OpenGL ES 1.1 is being used and
VBOs are enabled.java.lang.IllegalArgumentException
- if pointer
is
null
or is not direct.void glTexEnvf(int target, int pname, float param)
If target
is GL_TEXTURE_ENV
, then
the following applies:
A texture environment specifies how texture values are
interpreted when a fragment is textured. target
must
be GL_TEXTURE_ENV
. pname
can be either
GL_TEXTURE_ENV_MODE
or
GL_TEXTURE_ENV_COLOR
.
If pname
is GL_TEXTURE_ENV_MODE
,
then params
contains the symbolic name of a texture
function. Four texture functions may be specified:
GL_MODULATE
, GL_DECAL
,
GL_BLEND
, and GL_REPLACE
.
A texture function acts on the fragment to be textured using
the texture image value that applies to the fragment (see
glTexParameter
) and produces an RGBA color for that
fragment. The following table shows how the RGBA color is
produced for each of the three texture functions that can be
chosen. C is a triple of color values (RGB) and A
is the associated alpha value. RGBA values extracted from a
texture image are in the range [0, 1]
. The subscript
f refers to the incoming fragment, the subscript t
to the texture image, the subscript c to the texture
environment color, and subscript v indicates a value
produced by the texture function.
A texture image can have up to four components per texture
element (see glTexImage2D
, and
glCopyTexImage2D
). In a one-component image,
Lt indicates that single component. A two-component image
uses Lt and At. A three-component image has only a
color value, Ct. A four-component image has both a color
value Ct and an alpha value At.
For texture functions: GL_REPLACE
,
GL_MODULATE
, GL_DECAL
,
GL_BLEND
, or GL_ADD
:
Base internal Texture functions format GL_MODULATE GL_DECALGL_ALPHA Cv = Cf undefined Av = Af*At
GL_LUMINANCE Cv = Cf*Lt undefined Av = Af
GL_LUMINANCE_ALPHA Cv = Cf*Lt undefined Av = Af*At
GL_RGB Cv = Cf*Ct Cv = Ct Av = Af Av = Af
GL_RGBA Cv = Cf*Ct Cv = Cf*(1 - At) + Ct*At Av = Af*At Av = Af
Base internal Texture functions format GL_BLEND GL_REPLACE
GL_ALPHA Cv = Cf Cv = Cf Av = Af*At Av = At
GL_LUMINANCE Cv = Cf*(1 - Lt) + Cc*Lt Cv = Lt Av = Af Av = Af
GL_LUMINANCE_ALPHA Cv = Cf*(1 - Lt) + Cc*Lt Cv = Lt Av = Af*At Av = At
GL_RGB Cv = Cf*(1 - Ct) + Cc*Ct Cv = Ct Av = Af Av = Af
GL_RGBA Cv = Cf*(1 - Ct) + Cc*Ct Cv = Ct Av = Af*At Av = At
Base internal Texture functions format GL_ADD
GL_ALPHA Cv = Cf Av = Af*At
GL_LUMINANCE Cv = Cf + Lt Av = Af
GL_LUMINANCE_ALPHA Cv = Cf + Lt Av = Af*At
GL_RGB Cv = Cf + Ct Av = Af
GL_RGBA Cv = Cf + Ct Av = Af*At
If pname
is GL_TEXTURE_ENV_COLOR
,
params
is a pointer to an array that holds an RGBA
color consisting of four values. The values are clamped to the
range [0, 1]
when they are specified. Cc
takes these four values.
The initial value of GL_TEXTURE_ENV_MODE
is
GL_MODULATE
. The initial value of
GL_TEXTURE_ENV_COLOR
is (0, 0, 0, 0).
If the value of GL_TEXTURE_ENV_MODE
is
GL_COMBINE
, then the form of the texture function
depends on the values of GL_COMBINE_RGB
and
GL_COMBINE_ALPHA
.
The RGB and ALPHA results of the texture function are then
multiplied by the values of GL_RGB_SCALE
and
GL_ALPHA_SCALE
, respectively.
The results are clamped to [0, 1]
.
The arguments Arg0, Arg1, Arg2 are
determined by the values of
GL_SRC
n_RGB
,
GL_SRC
n_ALPHA
,
GL_OPERAND
n_RGB
,
GL_OPERAND
n_ALPHA
, where
n = 0, 1, or 2, Cs and As denote the texture
source color and alpha from the texture image bound to texture
unit n.
The state required for the current texture environment, for
each texture unit, consists of a six-valued integer indicating
the texture function, an eight-valued integer indicating the RGB
combiner function and a six-valued integer indicating the ALPHA
combiner function, six four-valued integers indicating the
combiner RGB and ALPHA source arguments, three four-valued
integers indicating the combiner RGB operands, three two-valued
integers indicating the combiner ALPHA operands, and four
floating-point environment color values. In the initial state,
the texture and combiner functions are each
GL_MODULATE
, the combiner RGB and ALPHA sources are
each GL_TEXTURE
, GL_PREVIOUS
, and
GL_CONSTANT
for sources 0, 1, and 2 respectively,
the combiner RGB operands for sources 0 and 1 are each
SRC_COLOR
, the combiner RGB operand for source 2, as
well as for the combiner ALPHA operands, are each
GL_SRC_ALPHA
, and the environment color is (0, 0, 0,
0).
The state required for the texture filtering parameters, for each texture unit, consists of a single floating-point level of detail bias. The initial value of the bias is 0.0.
If pname
is GL_TEXTURE_ENV_COLOR
,
then params
is an array that holds an RGBA color
consisting of four values. The values are clamped to the range
[0, 1]
when they are specified. Cc takes
these four values.
The initial value of GL_TEXTURE_ENV_MODE
is
GL_MODULATE
. The initial value of
GL_TEXTURE_ENV_COLOR
is (0, 0, 0, 0).
If target
is GL_POINT_SPRITE_OES
then the following applies:
If pname
is GL_COORD_REPLACE_OES
,
then the point sprite texture coordinate replacement mode is set
from the value given by param, which may either be
GL_FALSE
or GL_TRUE
. The default value
for each texture unit is for point sprite texture coordinate
replacement to be disabled.
GL_INVALID_ENUM
is generated when target or pname
is not one of the accepted values, or when params
should have a defined constant value (based on the value of
pname
) and does not.
glGetTexEnv
target
- Specifies a texture environment. Can be either
GL_TEXTURE_ENV
or GL_POINT_SPRITE_OES
(OES_point_sprite
extension).pname
- Specifies the symbolic name of a single-valued
texture environment parameter. Must be one of
GL_TEXTURE_ENV_MODE
,
GL_TEXTURE_ENV_COLOR
(1.1 only),
GL_COMBINE_RGB
(1.1 only),
GL_COMBINE_ALPHA
(1.1 only), or
GL_COORD_REPLACE_OES
(OES_point_sprite
extension).param
- Specifies a single symbolic constant, one of
GL_REPLACE
, GL_MODULATE
,
GL_DECAL
, GL_BLEND
, or
GL_ADD
(1.1 only).void glTexEnvfv(int target, int pname, float[] params, int offset)
A texture environment specifies how texture values are
interpreted when a fragment is textured. target
must
be GL_TEXTURE_ENV
. pname
can be either
GL_TEXTURE_ENV_MODE
or
GL_TEXTURE_ENV_COLOR
.
If pname
is GL_TEXTURE_ENV_MODE
,
then params
contains the symbolic name of a texture
function. Four texture functions may be specified:
GL_MODULATE
, GL_DECAL
,
GL_BLEND
, and GL_REPLACE
.
A texture function acts on the fragment to be textured using
the texture image value that applies to the fragment (see
glTexParameter
) and produces an RGBA color for that
fragment. The following table shows how the RGBA color is
produced for each of the three texture functions that can be
chosen. C is a triple of color values (RGB) and A is the
associated alpha value. RGBA values extracted from a texture
image are in the range [0, 1]
. The subscript
f refers to the incoming fragment, the subscript t
to the texture image, the subscript c to the texture
environment color, and subscript v indicates a value
produced by the texture function.
A texture image can have up to four components per texture
element (see glTexImage2D
, and
glCopyTexImage2D
). In a one-component image,
Lt indicates that single component. A two-component image
uses Lt and At. A three-component image has only a
color value, Ct. A four-component image has both a color
value Ct and an alpha value At.
Base internal Texture functions format GL_MODULATE GL_DECALGL_ALPHA Cv = Cf undefined Av = At Af
GL_LUMINANCE Cv = Lt Cf undefined Av = Af
GL_LUMINANCE_ALPHA Cv = Lt Cf undefined Av = At Af
GL_RGB Cv = Ct Cf Cv = Ct Av = Af Av = Af
GL_RGBA Cv = Ct Cf Cv = (1 - At) Cf + At Ct Av = At Af Av = Af
Base internal Texture functions format GL_BLEND GL_REPLACE
GL_ALPHA Cv = Cf Cv = Cf Av = At Af Av = At
GL_LUMINANCE Cv = (1 - Lt) Cf + Lt Cc Cv = Lt Av = Af Av = Af
GL_LUMINANCE_ALPHA Cv = (1 - Lt) Cf + Lt Cc Cv = Lt Av = At Af Av = At
GL_RGB Cv = (1 - Ct) Cf + Ct Cc Cv = Ct Av = Af Av = Af
GL_RGBA Cv = (1 - Ct) Cf + Ct Cc Cv = Ct Av = At Af Av = At
If pname
is GL_TEXTURE_ENV_COLOR
,
params
holds an RGBA color consisting of four
values. The values are clamped to the range [0, 1]
when they are specified. Cc takes these four values.
The initial value of GL_TEXTURE_ENV_MODE
is
GL_MODULATE
. The initial value of
GL_TEXTURE_ENV_COLOR
is (0, 0, 0, 0).
GL_INVALID_ENUM
is generated when target or pname
is not one of the accepted values, or when params
should have a defined constant value (based on the value of
pname
) and does not.
target
- Specifies a texture environment. Must be
GL_TEXTURE_ENV
.pname
- Specifies the symbolic name of a texture environment
parameter. Accepted values are GL_TEXTURE_ENV_MODE
and
GL_TEXTURE_ENV_COLOR
.params
- Specifies a parameter array that contains either a
single symbolic constant or an RGBA color.offset
- the starting offset within the
params
array.java.lang.IllegalArgumentException
- if params
is
null
.java.lang.IllegalArgumentException
- if offset
is
less than 0.java.lang.IllegalArgumentException
- if params.length -
offset
is smaller than the number of values required by
the parameter.void glTexEnvfv(int target, int pname, FloatBuffer params)
Buffer
version of glTexEnv
.java.lang.IllegalArgumentException
- if params
is
null
.java.lang.IllegalArgumentException
- if
params.remaining()
is smaller than the number of
values required by the parameter.glTexEnvfv(int target, int pname, float[] params, int offset)
void glTexEnvx(int target, int pname, int param)
glTexEnv
.void glTexEnvxv(int target, int pname, int[] params, int offset)
glTexEnv
.java.lang.IllegalArgumentException
- if params
is
null
.java.lang.IllegalArgumentException
- if offset
is
less than 0.java.lang.IllegalArgumentException
- if params.length -
offset
is smaller than the number of values required by
the parameter.glTexEnvfv(int target, int pname, float[] params, int offset)
void glTexEnvxv(int target, int pname, IntBuffer params)
Buffer
version of glTexEnv
.java.lang.IllegalArgumentException
- if params
is
null
.java.lang.IllegalArgumentException
- if
params.remaining()
is smaller than the number of
values required by the parameter.glTexEnvfv(int target, int pname, float[] params, int offset)
void glTexImage2D(int target, int level, int internalformat, int width, int height, int border, int format, int type, Buffer pixels)
Texturing maps a portion of a specified texture image onto
each graphical primitive for which texturing is enabled. To
enable and disable two-dimensional texturing, call
glEnable
and glDisable with argument
GL_TEXTURE_2D
. Two-dimensional texturing is
initially disabled.
To define texture images, call glTexImage2D
. The arguments
describe the parameters of the texture image, such as height,
width, width of the border, level-of-detail number (see
glTexParameter), and number of color components provided. The
last three arguments describe how the image is represented in
memory.
Data is read from pixels as a sequence of unsigned bytes or shorts, depending on type. These values are grouped into sets of one, two, three, or four values, depending on format, to form elements.
When type is GL_UNSIGNED_BYTE
, each of these
bytes is interpreted as one color component, depending on
format. When type is one of GL_UNSIGNED_SHORT_5_6_5
,
GL_UNSIGNED_SHORT_4_4_4_4
,
GL_UNSIGNED_SHORT_5_5_5_1
, each unsigned value is
interpreted as containing all the components for a single pixel,
with the color components arranged according to format.
The first element corresponds to the lower left corner of the texture image. Subsequent elements progress left-to-right through the remaining texels in the lowest row of the texture image, and then in successively higher rows of the texture image. The final element corresponds to the upper right corner of the texture image.
By default, adjacent pixels are taken from adjacent memory
locations, except that after all width pixels are read, the read
pointer is advanced to the next four-byte boundary. The four-byte
row alignment is specified by glPixelStore
with argument
GL_UNPACK_ALIGNMENT
, and it can be set to one, two, four, or
eight bytes.
format determines the composition of each element in pixels. It can assume one of the following symbolic values:
GL_ALPHA
Each element is a single alpha component. The GL converts it to floating point and assembles it into an RGBA element by attaching 0 for red, green, and blue.
GL_RGB
Each element is an RGB triple. The GL converts it to fixed-point or floating-point and assembles it into an RGBA element by attaching 1 for alpha.
GL_RGBA
Each element contains all four components. The GL converts it to fixed-point or floating-point.
GL_LUMINANCE
Each element is a single luminance value. The GL converts it to fixed-point or floating-point, then assembles it into an RGBA element by replicating the luminance value three times for red, green, and blue and attaching 1 for alpha.
GL_LUMINANCE_ALPHA
Each element is a luminance/alpha pair. The GL converts it to fixed-point or floating point, then assembles it into an RGBA element by replicating the luminance value three times for red, green, and blue.
pixels may be NULL. In this case texture memory is allocated to accommodate a texture of width width and height height. You can then download subtextures to initialize this texture memory. The image is undefined if the user tries to apply an uninitialized portion of the texture image to a primitive.
glTexImage2D
specifies the two-dimensional texture for the
currently bound texture specified with glBindTexture
, and the
current texture unit, specified with glActiveTexture
.
GL_INVALID_ENUM
is generated if target is not
GL_TEXTURE_2D
.
GL_INVALID_ENUM
is generated if format is not an
accepted constant.
GL_INVALID_ENUM
is generated if type is not a
type constant.
GL_INVALID_VALUE
is generated if level is less
than 0.
GL_INVALID_VALUE
may be generated if level is
greater than log2max, where max is the returned value of
GL_MAX_TEXTURE_SIZE
.
GL_INVALID_VALUE
is generated if internalformat
is not an accepted constant.
GL_INVALID_VALUE
is generated if width or height
is less than 0 or greater than GL_MAX_TEXTURE_SIZE
,
or if either cannot be represented as 2^k + 2*border for some
integer k.
GL_INVALID_VALUE
is generated if border is not 0.
GL_INVALID_OPERATION
is generated if
internalformat and format are not the same.
GL_INVALID_OPERATION
is generated if type is
GL_UNSIGNED_SHORT_5_6_5
and format is not
GL_RGB
.
GL_INVALID_OPERATION
is generated if typeis one
of GL_UNSIGNED_SHORT_4_4_4_4
, or
GL_UNSIGNED_SHORT_5_5_5_1
and formatis not
GL_RGBA
.
glGetIntegerv
with argument
GL_MAX_TEXTURE_SIZE
target
- Specifies the target texture. Must be
GL_TEXTURE_2D
.level
- Specifies the level-of-detail number. Level 0 is the
base image level. Level n is the nth mipmap reduction image. Must
be greater or equal 0.internalformat
- Specifies the color components in the
texture. Must be same as format. The following symbolic values
are accepted: GL_ALPHA
, GL_RGB
,
GL_RGBA
, GL_LUMINANCE
, or
GL_LUMINANCE_ALPHA
.width
- Specifies the width of the texture image. Must be
2^n + 2*border for some integer n. All implementations support
texture images that are at least 64 texels wide.height
- Specifies the height of the texture image. Must be
2^m + 2*border for some integer m. All implementations support
texture images that are at least 64 texels high.border
- Specifies the width of the border. Must be 0.format
- Specifies the format of the pixel data. Must be
same as internalformat. The following symbolic values are
accepted: GL_ALPHA
, GL_RGB
,
GL_RGBA
, GL_LUMINANCE
, and
GL_LUMINANCE_ALPHA
.type
- Specifies the data type of the pixel data. The
following symbolic values are accepted:
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_SHORT_5_6_5
,
GL_UNSIGNED_SHORT_4_4_4_4
, and
GL_UNSIGNED_SHORT_5_5_5_1
.pixels
- Specifies a pointer to the image data in memory.java.lang.IllegalArgumentException
- if pixels
is
null
.java.lang.IllegalArgumentException
- if pixels
does
not contain the desired number of pixels.void glTexParameterf(int target, int pname, float param)
Texture mapping is a technique that applies an image onto an object's surface as if the image were a decal or cellophane shrink-wrap. The image is created in texture space, with an (s, t) coordinate system. A texture is a one- or two-dimensional image and a set of parameters that determine how samples are derived from the image.
glTexParameter
assigns the value or values in
param
to the texture parameter specified as
pname
. target
defines the target
texture, which must be GL_TEXTURE_2D
. The following
symbols are accepted in pname
:
GL_TEXTURE_MIN_FILTER
The texture minifying function is used whenever the pixel being textured maps to an area greater than one texture element. There are six defined minifying functions. Two of them use the nearest one or nearest four texture elements to compute the texture value. The other four use mipmaps.
A mipmap is an ordered set of arrays representing the same image
at progressively lower resolutions. If the texture has dimensions
2^n × 2^m, there are max (n, m) + 1 mipmaps. The first mipmap is
the original texture, with dimensions 2^n × 2^m. Each subsequent
mipmap has dimensions 2^(k - 1) × 2^(l - 1), where 2^k × 2^l are
the dimensions of the previous mipmap, until either k = 0 or l =
0. At that point, subsequent mipmaps have dimension 1 × 2^(l - 1)
or 2^(k - 1) × 1 until the final mipmap, which has dimension 1 ×
1. To define the mipmaps, call glTexImage2D
or
glCopyTexImage2D with the level argument indicating the order of
the mipmaps. Level 0 is the original texture. Level max (n, m) is
the final 1 × 1 mipmap.
param
supplies a function for minifying the
texture as one of the following:
GL_NEAREST
Returns the value of the texture element that is nearest (in Manhattan distance) to the center of the pixel being textured.
GL_LINEAR
Returns the weighted average of the four texture elements that
are closest to the center of the pixel being textured. These can
include border texture elements, depending on the values of
GL_TEXTURE_WRAP_S
and
GL_TEXTURE_WRAP_T
, and on the exact mapping.
GL_NEAREST_MIPMAP_NEAREST
Chooses the mipmap that most closely matches the size of the
pixel being textured and uses the GL_NEAREST
criterion (the texture element nearest to the center of the
pixel) to produce a texture value.
GL_LINEAR_MIPMAP_NEAREST
Chooses the mipmap that most closely matches the size of the
pixel being textured and uses the GL_LINEAR
criterion (a weighted average of the four texture elements that
are closest to the center of the pixel) to produce a texture
value.
GL_NEAREST_MIPMAP_LINEAR
Chooses the two mipmaps that most closely match the size of the
pixel being textured and uses the GL_NEAREST
criterion (the
texture element nearest to the center of the pixel) to produce a
texture value from each mipmap. The final texture value is a
weighted average of those two values.
GL_LINEAR_MIPMAP_LINEAR
Chooses the two mipmaps that most closely match the size of the
pixel being textured and uses the GL_LINEAR
criterion (a weighted average of the four texture elements that
are closest to the center of the pixel) to produce a texture
value from each mipmap. The final texture value is a weighted
average of those two values.
As more texture elements are sampled in the minification process,
fewer aliasing artifacts will be apparent. While the
GL_NEAREST
and GL_LINEAR
minification
functions can be faster than the other four, they sample only one
or four texture elements to determine the texture value of the
pixel being rendered and can produce moire patterns or ragged
transitions.
The initial value of GL_TEXTURE_MIN_FILTER
is
GL_NEAREST_MIPMAP_LINEAR
.
GL_TEXTURE_MAG_FILTER
The texture magnification function is used when the pixel being
textured maps to an area less than or equal to one texture
element. It sets the texture magnification function to either
GL_NEAREST
or GL_LINEAR
(see
below). GL_NEAREST
is generally faster than
GL_LINEAR
, but it can produce textured images with
sharper edges because the transition between texture elements is
not as smooth.
The initial value of GL_TEXTURE_MAG_FILTER
is
GL_LINEAR
.
GL_NEAREST
Returns the value of the texture element that is nearest (in Manhattan distance) to the center of the pixel being textured.
GL_LINEAR
Returns the weighted average of the four texture elements that
are closest to the center of the pixel being textured. These can
include border texture elements, depending on the values of
GL_TEXTURE_WRAP_S
and
GL_TEXTURE_WRAP_T
, and on the exact mapping.
GL_TEXTURE_WRAP_S
Sets the wrap parameter for texture coordinate s to
either GL_CLAMP
, GL_CLAMP_TO_EDGE
, or
GL_REPEAT
. GL_CLAMP
causes s coordinates to
be clamped to the range [0, 1]
and is useful for
preventing wrapping artifacts when mapping a single image onto an
object. GL_CLAMP_TO_EDGE
causes s coordinates
to be clamped to the range [1/(2N), 1 -
1/(2N)]
, where N is the size of the texture
in the direction of clamping. GL_REPEAT
causes the
integer part of the s coordinate to be ignored; the GL
uses only the fractional part, thereby creating a repeating
pattern. Border texture elements are accessed only if wrapping is
set to GL_CLAMP
.
Initially, GL_TEXTURE_WRAP_S
is set to
GL_REPEAT
.
GL_TEXTURE_WRAP_T
Sets the wrap parameter for texture coordinate t to
either GL_CLAMP
, GL_CLAMP_TO_EDGE
, or
GL_REPEAT
. See the
discussion under GL_TEXTURE_WRAP_S
.
Initially, GL_TEXTURE_WRAP_T
is set to
GL_REPEAT
.
GL_GENERATE_MIPMAP
(1.1 only)Sets the automatic mipmap generation parameter. If set to
GL_TRUE
, making any change to the interior or border
texels of the levelbase array of a mipmap will also compute a
complete set of mipmap arrays derived from the modified levelbase
array. Array levels levelbase + 1 through p are
replaced with the derived arrays, regardless of their previous
contents. All other mipmap arrays, including the levelbase array,
are left unchanged by this computation.
The initial value of GL_GENERATE_MIPMAP
is
GL_FALSE
.
Suppose that a program has enabled texturing (by calling
glEnable with argument GL_TEXTURE_2D
and has set
GL_TEXTURE_MIN_FILTER
to one of the functions that
requires a mipmap. If either the dimensions of the texture images
currently defined (with previous calls to
glTexImage2D
, or glCopyTexImage2D) do not follow the
proper sequence for mipmaps (described above), or there are fewer
texture images defined than are needed, or the set of texture
images have differing numbers of texture components, then it is
as if texture mapping were disabled.
Linear filtering accesses the four nearest texture elements.
glTexParameter
specifies the texture parameters
for the active texture unit, specified by calling
glActiveTexture
.
GL_INVALID_ENUM
is generated if target or pname
is not one of the accepted defined values.
GL_INVALID_ENUM
is generated if param should have
a defined constant value (based on the value of pname) and does
not.
target
- Specifies the target texture, which must be
GL_TEXTURE_2D
.pname
- Specifies the symbolic name of a single-valued
texture parameter. pname
can be one of the
following: GL_TEXTURE_MIN_FILTER
,
GL_TEXTURE_MAG_FILTER
,
GL_TEXTURE_WRAP_S
, GL_TEXTURE_WRAP_T
, or
GL_GENERATE_MIPMAP
(1.1 only) .param
- Specifies the value of pname
.void glTexParameterx(int target, int pname, int param)
glTexParameter
.void glTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, Buffer pixels)
Texturing maps a portion of a specified texture image onto
each graphical primitive for which texturing is enabled. To
enable and disable two-dimensional texturing, call
glEnable
and glDisable with argument
GL_TEXTURE_2D
. Two-dimensional texturing is
initially disabled.
glTexSubImage2D
redefines a contiguous subregion
of an existing two-dimensional texture image. The texels
referenced by pixels replace the portion of the existing texture
array with x indices xoffset and xoffset + width - 1, inclusive,
and y indices yoffset and yoffset + height - 1, inclusive. This
region may not include any texels outside the range of the
texture array as it was originally specified. It is not an error
to specify a subtexture with zero width or height, but such a
specification has no effect.
glPixelStore
affects texture images in exactly
the way it affects glTexImage2D
.
glTexSubImage2D
specifies a two-dimensional sub
texture for the currently bound texture, specified with
glBindTexture
and current texture unit, specified
with glActiveTexture
.
GL_INVALID_ENUM
is generated if target is not
GL_TEXTURE_2D
.
GL_INVALID_OPERATION
is generated if the texture
array has not been defined by a previous
glTexImage2D
or glCopyTexImage2D operation.
GL_INVALID_VALUE
is generated if level is less
than 0.
GL_INVALID_VALUE
may be generated if level is
greater than log2max, where max is the returned value of
GL_MAX_TEXTURE_SIZE
.
GL_INVALID_VALUE
is generated if xoffset < - b,
xoffset + width > (w - b) , yoffset < - b, or yoffset + height >
(h - b) , where w is the texture width, h is the texture height,
and b is the border of the texture image being modified. Note
that w and h include twice the border width.
GL_INVALID_VALUE
is generated if width or height
is less than 0.
GL_INVALID_ENUM
is generated if format is not an
accepted constant.
GL_INVALID_ENUM
is generated if type is not a
type constant.
GL_INVALID_OPERATION
is generated if type is
GL_UNSIGNED_SHORT_5_6_5
and format is not
GL_RGB
.
GL_INVALID_OPERATION
is generated if type is one
of GL_UNSIGNED_SHORT_4_4_4_4
, or
GL_UNSIGNED_SHORT_5_5_5_1
and format is not
GL_RGBA
.
glGetIntegerv
with argument
GL_MAX_TEXTURE_SIZE
target
- Specifies the target texture. Must be
GL_TEXTURE_2D
.level
- Specifies the level-of-detail number. Level 0 is the
base image level. Level n is the nth mipmap reduction image.xoffset
- Specifies a texel offset in the x direction within
the texture array.yoffset
- Specifies a texel offset in the y direction within
the texture array.width
- Specifies the width of the texture subimage.height
- Specifies the height of the texture subimage.format
- Specifies the of the pixel data. The following
symbolic values are accepted: GL_ALPHA
,
GL_RGB
, GL_RGBA
,
GL_LUMINANCE
, and GL_LUMINANCE_ALPHA
.type
- Specifies the data type of the pixel data. The
following symbolic values are accepted:
GL_UNSIGNED_BYTE
,
GL_UNSIGNED_SHORT_5_6_5
,
GL_UNSIGNED_SHORT_4_4_4_4
, and
GL_UNSIGNED_SHORT_5_5_5_1
.pixels
- Specifies the image data.java.lang.IllegalArgumentException
- if pixels
is
null
.java.lang.IllegalArgumentException
- if pixels
does
not contain the desired number of pixels.void glTranslatef(float x, float y, float z)
glTranslate
produces a translation by (x, y, z).
The current matrix (see glMatrixMode) is multiplied by this
translation matrix, with the product replacing the current
matrix, as if glMultMatrix
were called with the
following matrix for its argument:
( 1 0 0 x ) ( 0 1 0 y ) ( 0 0 1 z ) ( 0 0 0 1 )
If the matrix mode is either GL_MODELVIEW
or
GL_PROJECTION
, all objects drawn after a call to
glTranslate
are translated.
Use glPushMatrix
and glPopMatrix
to
save and restore the untranslated coordinate system.
x
- Specifies the x coordinate of a translation vector.y
- Specifies the y coordinate of a translation vector.z
- Specifies the z coordinate of a translation vector.void glTranslatex(int x, int y, int z)
glTranslate
.glTranslatef(float, float, float)
void glVertexPointer(int size, int type, int stride, Buffer pointer)
glVertexPointer
specifies the location and data
of an array of vertex coordinates to use when
rendering. size
specifies the number of coordinates
per vertex and type the data type of the
coordinates. stride
specifies the byte stride from
one vertex to the next allowing vertices and attributes to be
packed into a single array or stored in separate
arrays. (Single-array storage may be more efficient on some
implementations.)
When a vertex array is specified, size
,
type
, stride
, and pointer
are saved as client-side state.
If the vertex array is enabled, it is used when
glDrawArrays
, or glDrawElements
is
called. To enable and disable the vertex array, call
glEnableClientState
and
glDisableClientState
with the argument
GL_VERTEX_ARRAY
. The vertex array is initially
disabled and isn't accessed when glDrawArrays
or
glDrawElements
is called.
Use glDrawArrays
to construct a sequence of
primitives (all of the same type) from prespecified vertex and
vertex attribute arrays. Use glDrawElements
to
construct a sequence of primitives by indexing vertices and
vertex attributes.
glVertexPointer
is typically implemented on the
client side.
GL_INVALID_VALUE
is generated if size is not 2,
3, or 4.
GL_INVALID_ENUM
is generated if type is is not an
accepted value.
GL_INVALID_VALUE
is generated if stride is
negative.
The pointer
argument must be a direct buffer
with a type matching that specified by the type
argument.
size
- Specifies the number of coordinates per vertex. Must
be 2, 3, or 4. The initial value is 4.type
- Specifies the data type of each vertex coordinate in
the array. Symbolic constants GL_BYTE
,
GL_SHORT
, GL_FIXED
, and
GL_FLOAT
are accepted. The initial value is
GL_FLOAT
.stride
- Specifies the byte offset between consecutive
vertices. If stride is 0, the vertices are understood to be
tightly packed in the array. The initial value is 0.pointer
- Specifies a Buffer containing the coordinates of
the vertices.java.lang.IllegalStateException
- if OpenGL ES 1.1 is being used and
VBOs are enabled.java.lang.IllegalArgumentException
- if pointer
is not direct.void glViewport(int x, int y, int width, int height)
glViewport
specifies the affine transformation of
x and y from normalized device coordinates to window
coordinates. Let (xnd, ynd) be normalized device
coordinates. Then the window coordinates (xw, yw) are computed as
follows:
xw = ( xnd + 1 ) width/2 + x yw = ( ynd + 1 ) height/2 + y
Viewport width and height are silently clamped to a range that
depends on the implementation. To query this range, call
glGetIntegerv
with argument
GL_MAX_VIEWPORT_DIMS
.
GL_INVALID_VALUE
is generated if either width or
height is negative.
glGetIntegerv
with argument
GL_MAX_VIEWPORT_DIMS
x
- Specifies the x coordinate of the lower left corner of
the viewport rectangle, in pixels. The initial value is 0.y
- Specifies the y coordinate of the lower left corner of
the viewport rectangle, in pixels. The initial value is 0.width
- Specifies the width of the viewport. When a GL
context is first attached to a surface (e.g. window), width and
height are set to the dimensions of that surface.height
- Specifies the height of the viewport. When a GL
context is first attached to a surface (e.g. window), width and
height are set to the dimensions of that surface.Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Use is subject to License Terms. Your use of this web site or any of its contents or software indicates your agreement to be bound by these License Terms.