Gambas Documentation
Application Repository
Code Snippets
Compilation & Installation
Components
gb
gb.args
gb.cairo
gb.chart
gb.clipper
gb.complex
gb.compress
gb.crypt
gb.data
gb.db
gb.db.form
gb.db.mysql
gb.db.odbc
gb.db.postgresql
gb.db.sqlite2
gb.db.sqlite3
gb.dbus
gb.dbus.trayicon
gb.debug
gb.desktop
gb.desktop.gnome.keyring
gb.desktop.x11
gb.eval
gb.eval.highlight
gb.form
gb.form.dialog
gb.form.editor
gb.form.htmlview
gb.form.mdi
gb.form.print
gb.form.stock
gb.form.terminal
gb.gmp
gb.gsl
gb.gtk
gb.gtk.opengl
gb.gtk3
gb.gtk3.opengl
gb.gtk3.webview
gb.gui
gb.gui.opengl
gb.gui.qt
gb.gui.qt.ext
gb.gui.qt.opengl
gb.gui.qt.webkit
gb.gui.trayicon
gb.gui.webview
gb.hash
gb.highlight
gb.image
gb.image.effect
gb.image.imlib
gb.image.io
gb.inotify
gb.jit
gb.libxml
gb.logging
gb.map
gb.markdown
gb.media
gb.media.form
gb.memcached
gb.mime
gb.mysql
gb.ncurses
gb.net
gb.net.curl
gb.net.pop3
gb.net.smtp
gb.openal
gb.opengl
gears.png
Gl
Accum
ACCUM_
ACCUM_ALPHA_BITS
ACCUM_BLUE_BITS
ACCUM_BUFFER_BIT
ACCUM_CLEAR_VALUE
ACCUM_GREEN_BITS
ACCUM_RED_BITS
ActiveTexture
ADD
ADD_SIGNED_ARB
ALL_ATTRIB_BITS
ALPHA
ALPHA_BIAS
ALPHA_BITS
ALPHA_SCALE
ALPHA_TEST
ALPHA_TEST_FUNC
ALPHA_TEST_REF
AlphaFunc
ALWAYS
AMBIENT
AMBIENT_AND_DIFFUSE
AND
AND_INVERTED
AND_REVERSE
ARRAY_BUFFER
ATTRIB_STACK_DEPTH
AUTO_NORMAL
AUX0
AUX1
AUX2
AUX3
AUX_BUFFERS
BACK
BACK_LEFT
BACK_RIGHT
Begin
BGR
BGRA
BindFramebufferEXT
BindRenderbufferEXT
BindTexture
BITMAP_
BITMAP_TOKEN
BLEND
BLEND_DST
BLEND_SRC
BlendFunc
BLUE
BLUE_BIAS
BLUE_BITS
BLUE_SCALE
CallList
CallLists
CCW
CheckExtensions
CheckFramebufferStatusEXT
CLAMP
Clear
CLEAR_
ClearAccum
ClearColor
ClearDepth
ClearIndex
ClearStencil
CLIENT_ATTRIB_STACK_DEPTH
CLIP_PLANE0
CLIP_PLANE1
CLIP_PLANE2
CLIP_PLANE3
CLIP_PLANE4
CLIP_PLANE5
ClipPlane
COEFF
COLOR
Color3f
Color3i
Color4f
Color4i
COLOR_ARRAY
COLOR_ATTACHMENT0_EXT
COLOR_ATTACHMENT1_EXT
COLOR_ATTACHMENT2_EXT
COLOR_ATTACHMENT3_EXT
COLOR_ATTACHMENT4_EXT
COLOR_ATTACHMENT5_EXT
COLOR_ATTACHMENT6_EXT
COLOR_ATTACHMENT7_EXT
COLOR_ATTACHMENT8_EXT
COLOR_ATTACHMENT9_EXT
COLOR_ATTACHMENT10_EXT
COLOR_ATTACHMENT11_EXT
COLOR_ATTACHMENT12_EXT
COLOR_ATTACHMENT13_EXT
COLOR_ATTACHMENT14_EXT
COLOR_ATTACHMENT15_EXT
COLOR_BUFFER_BIT
COLOR_CLEAR_VALUE
COLOR_INDEX
COLOR_INDEXES
COLOR_LOGIC_OP
COLOR_MATERIAL
COLOR_MATERIAL_FACE
COLOR_MATERIAL_PARAMETER
COLOR_WRITEMASK
Colorf
Colorfv
Colori
Coloriv
ColorMask
ColorMaterial
COMBINE
COMBINE_ALPHA
COMBINE_ALPHA_ARB
COMBINE_ALPHA_EXT
COMBINE_ARB
COMBINE_EXT
COMBINE_RGB
COMBINE_RGB_ARB
COMBINE_RGB_EXT
COMPILE
COMPILE_AND_EXECUTE
COMPRESSED_RGBA
COMPRESSED_RGBA_S3TC_DXT1_EXT
COMPRESSED_RGBA_S3TC_DXT3_EXT
COMPRESSED_RGBA_S3TC_DXT5_EXT
CONSTANT_ARB
CONSTANT_ATTENUATION
COPY
COPY_INVERTED
COPY_PIXEL_TOKEN
CopyPixels
CopyTexImage1D
CopyTexImage2D
CULL_FACE
CULL_FACE_MODE
CullFace
CURRENT_BIT
CURRENT_COLOR
CURRENT_INDEX
CURRENT_NORMAL
CURRENT_QUERY
CURRENT_RASTER_COLOR
CURRENT_RASTER_DISTANCE
CURRENT_RASTER_INDEX
CURRENT_RASTER_POSITION
CURRENT_RASTER_POSITION_VALID
CURRENT_RASTER_TEXTURE_COORDS
CURRENT_TEXTURE_COORDS
CW
DECAL
DECR
DeleteFramebuffersEXT
DeleteLists
DeleteRenderbuffersEXT
DeleteTextures
DEPTH
DEPTH_ATTACHMENT_EXT
DEPTH_BIAS
DEPTH_BITS
DEPTH_BUFFER_BIT
DEPTH_CLEAR_VALUE
DEPTH_COMPONENT
DEPTH_FUNC
DEPTH_RANGE
DEPTH_SCALE
DEPTH_TEST
DEPTH_WRITEMASK
DepthFunc
DepthMask
DepthRange
DIFFUSE
Disable
DITHER
DOMAIN
DONT_CARE
DOUBLE
DOUBLEBUFFER
DRAW_BUFFER
DRAW_PIXEL_TOKEN
DrawBuffer
DrawPixels
DST_ALPHA
DST_COLOR
EDGE_FLAG
EdgeFlag
ELEMENT_ARRAY_BUFFER
EMISSION
Enable
ENABLE_BIT
End
EndList
EQUAL
EQUIV
EVAL_BIT
EvalCoord1f
EvalCoord2f
EvalCoord2fv
EvalMesh1
EvalMesh2
EvalPoint1
EvalPoint2
EXP
EXP2
EXTENSIONS
EYE_LINEAR
EYE_PLANE
FALSE
FASTEST
FEEDBACK
FEEDBACK_BUFFER_POINTER
FEEDBACK_BUFFER_SIZE
FEEDBACK_BUFFER_TYPE
FeedbackBuffer
FILL
Finish
FLAT
FLOAT
Flush
FOG
FOG_BIT
FOG_COLOR
FOG_DENSITY
FOG_END
FOG_HINT
FOG_INDEX
FOG_MODE
FOG_START
Fogf
Fogfv
Fogi
Fogiv
FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT
FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT
FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT
FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT
FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT
FRAMEBUFFER_BINDING_EXT
FRAMEBUFFER_COMPLETE_EXT
FRAMEBUFFER_EXT
FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT
FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT
FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT
FRAMEBUFFER_INCOMPLETE_FORMATS_EXT
FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT
FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT
FRAMEBUFFER_UNSUPPORTED_EXT
FramebufferRenderbufferEXT
FramebufferTexture1DEXT
FramebufferTexture2DEXT
FramebufferTexture3DEXT
FRONT
FRONT_AND_BACK
FRONT_FACE
FRONT_LEFT
FRONT_RIGHT
FrontFace
Frustum
GENERATE_MIPMAP
GenerateMipmapEXT
GenFramebuffersEXT
GenLists
GenRenderbuffersEXT
GenTextures
GEQUAL
GetBooleanv
GetClipPlane
GetError
GetFloatv
GetFramebufferAttachmentParameterivEXT
GetIntegerv
GetLightfv
GetLightiv
GetMaterialfv
GetMaterialiv
GetRenderbufferParameterivEXT
GetString
GREATER
GREEN
GREEN_BIAS
GREEN_BITS
GREEN_SCALE
Hint
HINT_BIT
INCR
INDEX_BITS
INDEX_CLEAR_VALUE
INDEX_LOGIC_OP
INDEX_MODE
INDEX_OFFSET
INDEX_SHIFT
INDEX_WRITEMASK
Indexf
Indexi
IndexMask
InitNames
INTEGER
INTERPOLATE_ARB
INVALID_ENUM
INVALID_FRAMEBUFFER_OPERATION_EXT
INVALID_OPERATION
INVALID_VALUE
INVERT
IsEnabled
IsFramebufferEXT
IsList
IsRenderbufferEXT
IsTexture
KEEP
LEFT
LEQUAL
LESS
LIGHT0
LIGHT1
LIGHT2
LIGHT3
LIGHT4
LIGHT5
LIGHT6
LIGHT7
LIGHT_MODEL_AMBIENT
LIGHT_MODEL_LOCAL_VIEWER
LIGHT_MODEL_TWO_SIDE
Lightf
Lightfv
Lighti
LIGHTING
LIGHTING_BIT
Lightiv
LightModelf
LightModelfv
LightModeli
LightModeliv
LINE
LINE_BIT
LINE_LOOP
LINE_RESET_TOKEN
LINE_SMOOTH
LINE_SMOOTH_HINT
LINE_STIPPLE
LINE_STIPPLE_PATTERN
LINE_STIPPLE_REPEAT
LINE_STRIP
LINE_TOKEN
LINE_WIDTH
LINEAR
LINEAR_ATTENUATION
LINEAR_MIPMAP_LINEAR
LINEAR_MIPMAP_NEAREST
LINES
LineStipple
LineWidth
LIST_BASE
LIST_BIT
LIST_INDEX
LIST_MODE
ListBase
LOAD
LoadIdentity
LoadMatrixf
LoadName
LOGIC_OP
LOGIC_OP_MODE
LogicOp
LUMINANCE
LUMINANCE_ALPHA
MAP1_COLOR_4
MAP1_GRID_DOMAIN
MAP1_GRID_SEGMENTS
MAP1_INDEX
MAP1_NORMAL
MAP1_TEXTURE_COORD_1
MAP1_TEXTURE_COORD_2
MAP1_TEXTURE_COORD_3
MAP1_TEXTURE_COORD_4
MAP1_VERTEX_3
MAP1_VERTEX_4
Map1f
MAP2_COLOR_4
MAP2_GRID_DOMAIN
MAP2_GRID_SEGMENTS
MAP2_INDEX
MAP2_NORMAL
MAP2_TEXTURE_COORD_1
MAP2_TEXTURE_COORD_2
MAP2_TEXTURE_COORD_3
MAP2_TEXTURE_COORD_4
MAP2_VERTEX_3
MAP2_VERTEX_4
Map2f
MAP_COLOR
MAP_STENCIL
MapGrid1f
MapGrid2f
Materialf
Materialfv
Materiali
Materialiv
MATRIX_MODE
MatrixMode
MAX_ATTRIB_STACK_DEPTH
MAX_CLIENT_ATTRIB_STACK_DEPTH
MAX_CLIP_PLANES
MAX_COLOR_ATTACHMENTS_EXT
MAX_EVAL_ORDER
MAX_LIGHTS
MAX_LIST_NESTING
MAX_MODELVIEW_STACK_DEPTH
MAX_NAME_STACK_DEPTH
MAX_PIXEL_MAP_TABLE
MAX_PROJECTION_STACK_DEPTH
MAX_RECTANGLE_TEXTURE_SIZE_ARB
MAX_RENDERBUFFER_SIZE_EXT
MAX_TEXTURE_SIZE
MAX_TEXTURE_STACK_DEPTH
MAX_VIEWPORT_DIMS
MODELVIEW
MODELVIEW_MATRIX
MODELVIEW_STACK_DEPTH
MODULATE
MULT
MultiTexCoord2f
MultMatrixf
NAME_STACK_DEPTH
NAND
NEAREST
NEAREST_MIPMAP_LINEAR
NEAREST_MIPMAP_NEAREST
NEVER
NewList
NICEST
NO_ERROR
NONE
NOOP
NOR
Normal3f
Normal3fv
Normal3i
Normal3iv
NORMAL_ARRAY
NORMALIZE
NOTEQUAL
OBJECT_LINEAR
OBJECT_PLANE
ONE
ONE_MINUS_DST_ALPHA
ONE_MINUS_DST_COLOR
ONE_MINUS_SRC_ALPHA
ONE_MINUS_SRC_COLOR
OPERAND0_ALPHA_ARB
OPERAND0_RGB_ARB
OPERAND1_ALPHA_ARB
OPERAND1_RGB_ARB
OPERAND2_ALPHA_ARB
OPERAND2_RGB_ARB
OR
OR_INVERTED
OR_REVERSE
ORDER
Ortho
OUT_OF_MEMORY
PACK_ALIGNMENT
PACK_LSB_FIRST
PACK_ROW_LENGTH
PACK_SKIP_PIXELS
PACK_SKIP_ROWS
PACK_SWAP_BYTES
PASS_THROUGH_TOKEN
PassThrough
PERSPECTIVE_CORRECTION_HINT
PIXEL_MAP_A_TO_A
PIXEL_MAP_A_TO_A_SIZE
PIXEL_MAP_B_TO_B
PIXEL_MAP_B_TO_B_SIZE
PIXEL_MAP_G_TO_G
PIXEL_MAP_G_TO_G_SIZE
PIXEL_MAP_I_TO_A
PIXEL_MAP_I_TO_A_SIZE
PIXEL_MAP_I_TO_B
PIXEL_MAP_I_TO_B_SIZE
PIXEL_MAP_I_TO_G
PIXEL_MAP_I_TO_G_SIZE
PIXEL_MAP_I_TO_I
PIXEL_MAP_I_TO_I_SIZE
PIXEL_MAP_I_TO_R
PIXEL_MAP_I_TO_R_SIZE
PIXEL_MAP_R_TO_R
PIXEL_MAP_R_TO_R_SIZE
PIXEL_MAP_S_TO_S
PIXEL_MAP_S_TO_S_SIZE
PIXEL_MODE_BIT
PixelStoref
PixelStorei
PixelTransferf
PixelTransferi
POINT
POINT_BIT
POINT_SIZE
POINT_SMOOTH
POINT_SMOOTH_HINT
POINT_TOKEN
POINTS
PointSize
POLYGON
POLYGON_BIT
POLYGON_MODE
POLYGON_OFFSET_FACTOR
POLYGON_OFFSET_FILL
POLYGON_OFFSET_LINE
POLYGON_OFFSET_POINT
POLYGON_OFFSET_UNITS
POLYGON_SMOOTH
POLYGON_SMOOTH_HINT
POLYGON_STIPPLE
POLYGON_STIPPLE_BIT
POLYGON_TOKEN
PolygonMode
PolygonOffset
PopMatrix
PopName
POSITION
PREVIOUS_ARB
PRIMARY_COLOR_ARB
PRIMITIVES_GENERATED
PROJECTION
PROJECTION_MATRIX
PROJECTION_STACK_DEPTH
PROXY_TEXTURE_RECTANGLE_ARB
PushMatrix
PushName
Q
QUAD_STRIP
QUADRATIC_ATTENUATION
QUADS
QUERY_COUNTER_BITS
QUERY_RESULT
R
RasterPos2f
RasterPos2i
RasterPos3f
RasterPos3i
RasterPos4f
RasterPos4i
RasterPosf
RasterPosfv
RasterPosi
RasterPosiv
READ_BUFFER
ReadBuffer
Rectf
Recti
RED
RED_BIAS
RED_BITS
RED_SCALE
RENDER
RENDER_MODE
RENDERBUFFER_ALPHA_SIZE_EXT
RENDERBUFFER_BINDING_EXT
RENDERBUFFER_BLUE_SIZE_EXT
RENDERBUFFER_DEPTH_SIZE_EXT
RENDERBUFFER_EXT
RENDERBUFFER_GREEN_SIZE_EXT
RENDERBUFFER_HEIGHT_EXT
RENDERBUFFER_INTERNAL_FORMAT_EXT
RENDERBUFFER_RED_SIZE_EXT
RENDERBUFFER_STENCIL_SIZE_EXT
RENDERBUFFER_WIDTH_EXT
RenderbufferStorageEXT
RENDERER
RenderMode
REPEAT
REPLACE
RETURN
RGB
RGB_SCALE_ARB
RGBA
RGBA_MODE
RIGHT
Rotatef
S
SAMPLER_2D_RECT_ARB
SAMPLER_2D_RECT_SHADOW_ARB
SAMPLES_PASSED
Scalef
Scissor
SCISSOR_BIT
SCISSOR_BOX
SCISSOR_TEST
SELECT
SelectBuffer
SELECTION_BUFFER_POINTER
SELECTION_BUFFER_SIZE
SET
SHADE_MODEL
ShadeModel
SHADING_LANGUAGE_VERSION
SHININESS
SMOOTH
SMOOTH_LINE_WIDTH_GRANULARITY
SMOOTH_LINE_WIDTH_RANGE
SMOOTH_POINT_SIZE_GRANULARITY
SMOOTH_POINT_SIZE_RANGE
SOURCE0_ALPHA_ARB
SOURCE0_RGB_ARB
SOURCE1_ALPHA_ARB
SOURCE1_RGB_ARB
SOURCE2_ALPHA_ARB
SOURCE2_RGB_ARB
SPECULAR
SPHERE_MAP
SPOT_CUTTOFF
SPOT_DIRECTION
SPOT_EXPONENT
SRC_ALPHA
SRC_ALPHA_SATURATE
SRC_COLOR
STACK_OVERFLOW
STACK_UNDERFLOW
STATIC_DRAW
STENCIL
STENCIL_ATTACHMENT_EXT
STENCIL_BITS
STENCIL_BUFFER_BIT
STENCIL_CLEAR_VALUE
STENCIL_FAIL
STENCIL_FUNC
STENCIL_INDEX
STENCIL_INDEX1_EXT
STENCIL_INDEX4_EXT
STENCIL_INDEX8_EXT
STENCIL_INDEX16_EXT
STENCIL_PASS_DEPTH_FAIL
STENCIL_PASS_DEPTH_PASS
STENCIL_REF
STENCIL_TEST
STENCIL_VALUE_MASK
STENCIL_WRITEMASK
StencilFunc
StencilMask
StencilOp
STEREO
SUBPIXEL_BITS
SUBTRACT_ARB
T
TexCoord1f
TexCoord1i
TexCoord2f
TexCoord2i
TexCoord3f
TexCoord3i
TexCoord4f
TexCoord4i
TexCoordf
TexCoordi
TexEnvf
TexEnvfv
TexEnvi
TexEnviv
TexGeni
TexImage1D
TexImage2D
TexParameterf
TexParameterfv
TexParameteri
TexParameteriv
TexSubImage1D
TexSubImage2D
TEXTURE
TEXTURE0
TEXTURE0_ARB
TEXTURE1
TEXTURE1_ARB
TEXTURE2
TEXTURE2_ARB
TEXTURE3
TEXTURE3_ARB
TEXTURE4
TEXTURE4_ARB
TEXTURE_1D
TEXTURE_2D
TEXTURE_ALPHA_SIZE
TEXTURE_BINDING_RECTANGLE_ARB
TEXTURE_BIT
TEXTURE_BLUE_SIZE
TEXTURE_BORDER
TEXTURE_BORDER_COLOR
TEXTURE_COMPONENTS
TEXTURE_COORD_ARRAY
TEXTURE_ENV
TEXTURE_ENV_COLOR
TEXTURE_ENV_MODE
TEXTURE_GEN_MODE
TEXTURE_GEN_Q
TEXTURE_GEN_R
TEXTURE_GEN_S
TEXTURE_GEN_T
TEXTURE_GREEN_SIZE
TEXTURE_HEIGHT
TEXTURE_INTENSITY_SIZE
TEXTURE_LUMINANCE_SIZE
TEXTURE_MAG_FILTER
TEXTURE_MATRIX
TEXTURE_MAX_LEVEL
TEXTURE_MIN_FILTER
TEXTURE_RECTANGLE_ARB
TEXTURE_RED_SIZE
TEXTURE_STACK_DEPTH
TEXTURE_WIDTH
TEXTURE_WRAP_S
TEXTURE_WRAP_T
TRANSFORM_BIT
TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN
Translatef
TRIANGLE_FAN
TRIANGLE_STRIP
TRIANGLES
TRUE
UNPACK_ALIGNMENT
UNPACK_LSB_FIRST
UNPACK_ROW_LENGTH
UNPACK_SKIP_PIXELS
UNPACK_SKIP_ROWS
UNPACK_SWAP_BYTES
UNSIGNED_BYTE
UNSIGNED_INT
VENDOR
VERSION
Vertex2f
Vertex2i
Vertex3f
Vertex3i
Vertex4f
Vertex4i
VERTEX_ARRAY
Vertexf
Vertexfv
Vertexi
Vertexiv
Viewport
VIEWPORT_
VIEWPORT_BIT
XOR
ZERO
ZOOM_X
ZOOM_Y
gb.opengl.glsl
gb.opengl.glu
gb.opengl.sge
gb.openssl
gb.option
gb.pcre
gb.pdf
gb.poppler
gb.qt4
gb.qt4.ext
gb.qt4.opengl
gb.qt4.webkit
gb.qt4.webview
gb.qt5
gb.qt5.ext
gb.qt5.opengl
gb.qt5.webkit
gb.qt5.webview
gb.qt6
gb.qt6.ext
gb.qt6.opengl
gb.qt6.webview
gb.report
gb.report2
gb.scanner
gb.sdl
gb.sdl.sound
gb.sdl2
gb.sdl2.audio
gb.settings
gb.signal
gb.term
gb.test
gb.util
gb.util.web
gb.v4l
gb.vb
gb.web
gb.web.feed
gb.web.form
gb.web.gui
gb.xml
gb.xml.html
gb.xml.rpc
gb.xml.xslt
Controls pictures
Deprecated components
Developer Documentation
Development Environment Documentation
Documents
Error Messages
Gambas Playground
How To's
Language Index
Language Overviews
Last Changes
Lexicon
README
Search the wiki
To Do
Topics
Tutorials
Wiki License
Wiki Manual

Gl.DrawPixels (gb.opengl)

Static Sub DrawPixels ( Image As Image )

Write a block of pixels to the frame buffer.

Parameters

width, height

Specify the dimensions of the pixel rectangle to be written into the frame buffer.
format

Specifies the format of the pixel data. Symbolic constants Gl.COLOR_INDEX, Gl.STENCIL_INDEX, Gl.DEPTH_COMPONENT, Gl.RGB, Gl.BGR, Gl.RGBA, Gl.BGRA, Gl.RED, Gl.GREEN, Gl.BLUE, Gl.ALPHA, Gl.LUMINANCE, and Gl.LUMINANCE_ALPHA are accepted.
type

Specifies the data type for data. Symbolic constants Gl.UNSIGNED_BYTE, Gl.BYTE, Gl.BITMAP, Gl.UNSIGNED_SHORT, Gl.SHORT, Gl.UNSIGNED_INT, Gl.INT, Gl.FLOAT, Gl.UNSIGNED_BYTE_3_3_2, Gl.UNSIGNED_BYTE_2_3_3_REV, Gl.UNSIGNED_SHORT_5_6_5, Gl.UNSIGNED_SHORT_5_6_5_REV, Gl.UNSIGNED_SHORT_4_4_4_4, Gl.UNSIGNED_SHORT_4_4_4_4_REV, Gl.UNSIGNED_SHORT_5_5_5_1, Gl.UNSIGNED_SHORT_1_5_5_5_REV, Gl.UNSIGNED_INT_8_8_8_8, Gl.UNSIGNED_INT_8_8_8_8_REV, Gl.UNSIGNED_INT_10_10_10_2, and Gl.UNSIGNED_INT_2_10_10_10_REV are accepted.
data

Specifies a pointer to the pixel data.

Description

Gl.DrawPixels reads pixel data from memory and writes it into the frame buffer relative to the current raster position, provided that the raster position is valid. Use Gl.RasterPos or Gl.WindowPos to set the current raster position; use Gl.Get with argument Gl.CURRENT_RASTER_POSITION_VALID to determine if the specified raster position is valid, and Gl.Get with argument Gl.CURRENT_RASTER_POSITION to query the raster position.

Several parameters define the encoding of pixel data in memory and control the processing of the pixel data before it is placed in the frame buffer. These parameters are set with four commands: Gl.PixelStore, Gl.PixelTransfer, Gl.PixelMap, and Gl.PixelZoom. This reference page describes the effects on Gl.DrawPixels of many, but not all, of the parameters specified by these four commands.

Data is read from data as a sequence of signed or unsigned bytes, signed or unsigned shorts, signed or unsigned integers, or single-precision floating-point values, depending on type. When type is one of Gl.UNSIGNED_BYTE, Gl.BYTE, Gl.UNSIGNED_SHORT, Gl.SHORT, Gl.UNSIGNED_INT, Gl.INT, or Gl.FLOAT each of these bytes, shorts, integers, or floating-point values is interpreted as one color or depth component, or one index, depending on format. When type is one of Gl.UNSIGNED_BYTE_3_3_2, Gl.UNSIGNED_SHORT_5_6_5, Gl.UNSIGNED_SHORT_4_4_4_4, Gl.UNSIGNED_SHORT_5_5_5_1, Gl.UNSIGNED_INT_8_8_8_8, or Gl.UNSIGNED_INT_10_10_10_2, each unsigned value is interpreted as containing all the components for a single pixel, with the color components arranged according to format. When type is one of Gl.UNSIGNED_BYTE_2_3_3_REV, Gl.UNSIGNED_SHORT_5_6_5_REV, Gl.UNSIGNED_SHORT_4_4_4_4_REV, Gl.UNSIGNED_SHORT_1_5_5_5_REV, Gl.UNSIGNED_INT_8_8_8_8_REV, or Gl.UNSIGNED_INT_2_10_10_10_REV, each unsigned value is interpreted as containing all color components, specified by format, for a single pixel in a reversed order. Indices are always treated individually. Color components are treated as groups of one, two, three, or four values, again based on format. Both individual indices and groups of components are referred to as pixels. If type is Gl.BITMAP, the data must be unsigned bytes, and format must be either Gl.COLOR_INDEX or Gl.STENCIL_INDEX. Each unsigned byte is treated as eight 1-bit pixels, with bit ordering determined by Gl.UNPACK_LSB_FIRST (see Gl.PixelStore).

width × height pixels are read from memory, starting at location data. By default, these 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 Gl.PixelStore with argument Gl.UNPACK_ALIGNMENT, and it can be set to one, two, four, or eight bytes. Other pixel store parameters specify different read pointer advancements, both before the first pixel is read and after all width pixels are read. See the Gl.PixelStore reference page for details on these options.

If a non-zero named buffer object is bound to the Gl.PIXEL_UNPACK_BUFFER target (see Gl.BindBuffer) while a block of pixels is specified, data is treated as a byte offset into the buffer object's data store.

The width × height pixels that are read from memory are each operated on in the same way, based on the values of several parameters specified by Gl.PixelTransfer and Gl.PixelMap. The details of these operations, as well as the target buffer into which the pixels are drawn, are specific to the format of the pixels, as specified by format. format can assume one of 13 symbolic values:
Gl.COLOR_INDEX

Each pixel is a single value, a color index. It is converted to fixed-point format, with an unspecified number of bits to the right of the binary point, regardless of the memory data type. Floating-point values convert to true fixed-point values. Signed and unsigned integer data is converted with all fraction bits set to 0. Bitmap data convert to either 0 or 1.

Each fixed-point index is then shifted left by Gl.INDEX_SHIFT bits and added to Gl.INDEX_OFFSET. If Gl.INDEX_SHIFT is negative, the shift is to the right. In either case, zero bits fill otherwise unspecified bit locations in the result.

If the GL is in RGBA mode, the resulting index is converted to an RGBA pixel with the help of the Gl.PIXEL_MAP_I_TO_R, Gl.PIXEL_MAP_I_TO_G, Gl.PIXEL_MAP_I_TO_B, and Gl.PIXEL_MAP_I_TO_A tables. If the GL is in color index mode, and if Gl.MAP_COLOR is true, the index is replaced with the value that it references in lookup table Gl.PIXEL_MAP_I_TO_I. Whether the lookup replacement of the index is done or not, the integer part of the index is then ANDed with 2 b - 1 , where b is the number of bits in a color index buffer.

The GL then converts the resulting indices or RGBA colors to fragments by attaching the current raster position z coordinate and texture coordinates to each pixel, then assigning x and y window coordinates to the nth fragment such that x n x r + n % width

y n y r + n width

where x r y r is the current raster position. These pixel fragments are then treated just like the fragments generated by rasterizing points, lines, or polygons. Texture mapping, fog, and all the fragment operations are applied before the fragments are written to the frame buffer.
Gl.STENCIL_INDEX

Each pixel is a single value, a stencil index. It is converted to fixed-point format, with an unspecified number of bits to the right of the binary point, regardless of the memory data type. Floating-point values convert to true fixed-point values. Signed and unsigned integer data is converted with all fraction bits set to 0. Bitmap data convert to either 0 or 1.

Each fixed-point index is then shifted left by Gl.INDEX_SHIFT bits, and added to Gl.INDEX_OFFSET. If Gl.INDEX_SHIFT is negative, the shift is to the right. In either case, zero bits fill otherwise unspecified bit locations in the result. If Gl.MAP_STENCIL is true, the index is replaced with the value that it references in lookup table Gl.PIXEL_MAP_S_TO_S. Whether the lookup replacement of the index is done or not, the integer part of the index is then ANDed with 2 b - 1 , where b is the number of bits in the stencil buffer. The resulting stencil indices are then written to the stencil buffer such that the nth index is written to location

x n x r + n % width

y n y r + n width

where x r y r is the current raster position. Only the pixel ownership test, the scissor test, and the stencil writemask affect these write operations.
Gl.DEPTH_COMPONENT

Each pixel is a single-depth component. Floating-point data is converted directly to an internal floating-point format with unspecified precision. Signed integer data is mapped linearly to the internal floating-point format such that the most positive representable integer value maps to 1.0, and the most negative representable value maps to -1.0 . Unsigned integer data is mapped similarly: the largest integer value maps to 1.0, and 0 maps to 0.0. The resulting floating-point depth value is then multiplied by Gl.DEPTH_SCALE and added to Gl.DEPTH_BIAS. The result is clamped to the range 0 1 .

The GL then converts the resulting depth components to fragments by attaching the current raster position color or color index and texture coordinates to each pixel, then assigning x and y window coordinates to the nth fragment such that

x n x r + n % width

y n y r + n width

where x r y r is the current raster position. These pixel fragments are then treated just like the fragments generated by rasterizing points, lines, or polygons. Texture mapping, fog, and all the fragment operations are applied before the fragments are written to the frame buffer.
Gl.RGBA
Gl.BGRA

Each pixel is a four-component group: For Gl.RGBA, the red component is first, followed by green, followed by blue, followed by alpha; for Gl.BGRA the order is blue, green, red and then alpha. Floating-point values are converted directly to an internal floating-point format with unspecified precision. Signed integer values are mapped linearly to the internal floating-point format such that the most positive representable integer value maps to 1.0, and the most negative representable value maps to -1.0 . (Note that this mapping does not convert 0 precisely to 0.0.) Unsigned integer data is mapped similarly: The largest integer value maps to 1.0, and 0 maps to 0.0. The resulting floating-point color values are then multiplied by Gl.c_SCALE and added to Gl.c_BIAS, where c is RED, GREEN, BLUE, and ALPHA for the respective color components. The results are clamped to the range 0 1 .

If Gl.MAP_COLOR is true, each color component is scaled by the size of lookup table Gl.PIXEL_MAP_c_TO_c, then replaced by the value that it references in that table. c is R, G, B, or A respectively.

The GL then converts the resulting RGBA colors to fragments by attaching the current raster position z coordinate and texture coordinates to each pixel, then assigning x and y window coordinates to the nth fragment such that

x n x r + n % width

y n y r + n width

where x r y r is the current raster position. These pixel fragments are then treated just like the fragments generated by rasterizing points, lines, or polygons. Texture mapping, fog, and all the fragment operations are applied before the fragments are written to the frame buffer.
Gl.RED

Each pixel is a single red component. This component is converted to the internal floating-point format in the same way the red component of an RGBA pixel is. It is then converted to an RGBA pixel with green and blue set to 0, and alpha set to 1. After this conversion, the pixel is treated as if it had been read as an RGBA pixel.
Gl.GREEN

Each pixel is a single green component. This component is converted to the internal floating-point format in the same way the green component of an RGBA pixel is. It is then converted to an RGBA pixel with red and blue set to 0, and alpha set to 1. After this conversion, the pixel is treated as if it had been read as an RGBA pixel.
Gl.BLUE

Each pixel is a single blue component. This component is converted to the internal floating-point format in the same way the blue component of an RGBA pixel is. It is then converted to an RGBA pixel with red and green set to 0, and alpha set to 1. After this conversion, the pixel is treated as if it had been read as an RGBA pixel.
Gl.ALPHA

Each pixel is a single alpha component. This component is converted to the internal floating-point format in the same way the alpha component of an RGBA pixel is. It is then converted to an RGBA pixel with red, green, and blue set to 0. After this conversion, the pixel is treated as if it had been read as an RGBA pixel.
Gl.RGB
Gl.BGR

Each pixel is a three-component group: red first, followed by green, followed by blue; for Gl.BGR, the first component is blue, followed by green and then red. Each component is converted to the internal floating-point format in the same way the red, green, and blue components of an RGBA pixel are. The color triple is converted to an RGBA pixel with alpha set to 1. After this conversion, the pixel is treated as if it had been read as an RGBA pixel.
Gl.LUMINANCE

Each pixel is a single luminance component. This component is converted to the internal floating-point format in the same way the red component of an RGBA pixel is. It is then converted to an RGBA pixel with red, green, and blue set to the converted luminance value, and alpha set to 1. After this conversion, the pixel is treated as if it had been read as an RGBA pixel.
Gl.LUMINANCE_ALPHA

Each pixel is a two-component group: luminance first, followed by alpha. The two components are converted to the internal floating-point format in the same way the red component of an RGBA pixel is. They are then converted to an RGBA pixel with red, green, and blue set to the converted luminance value, and alpha set to the converted alpha value. After this conversion, the pixel is treated as if it had been read as an RGBA pixel.

The following table summarizes the meaning of the valid constants for the type parameter:

Type Corresponding Type
Gl.UNSIGNED_BYTE unsigned 8-bit integer
Gl.BYTE signed 8-bit integer
Gl.BITMAP single bits in unsigned 8-bit integers
Gl.UNSIGNED_SHORT unsigned 16-bit integer
Gl.SHORT signed 16-bit integer
Gl.UNSIGNED_INT unsigned 32-bit integer
Gl.INT 32-bit integer
Gl.FLOAT single-precision floating-point
Gl.UNSIGNED_BYTE_3_3_2 unsigned 8-bit integer
Gl.UNSIGNED_BYTE_2_3_3_REV unsigned 8-bit integer with reversed component ordering
Gl.UNSIGNED_SHORT_5_6_5 unsigned 16-bit integer
Gl.UNSIGNED_SHORT_5_6_5_REV unsigned 16-bit integer with reversed component ordering
Gl.UNSIGNED_SHORT_4_4_4_4 unsigned 16-bit integer
Gl.UNSIGNED_SHORT_4_4_4_4_REV unsigned 16-bit integer with reversed component ordering
Gl.UNSIGNED_SHORT_5_5_5_1 unsigned 16-bit integer
Gl.UNSIGNED_SHORT_1_5_5_5_REV unsigned 16-bit integer with reversed component ordering
Gl.UNSIGNED_INT_8_8_8_8 unsigned 32-bit integer
Gl.UNSIGNED_INT_8_8_8_8_REV unsigned 32-bit integer with reversed component ordering
Gl.UNSIGNED_INT_10_10_10_2 unsigned 32-bit integer
Gl.UNSIGNED_INT_2_10_10_10_REV unsigned 32-bit integer with reversed component ordering

The rasterization described so far assumes pixel zoom factors of 1. If Gl.PixelZoom is used to change the x and y pixel zoom factors, pixels are converted to fragments as follows. If x r y r is the current raster position, and a given pixel is in the nth column and mth row of the pixel rectangle, then fragments are generated for pixels whose centers are in the rectangle with corners at

x r + zoom x n y r + zoom y m

x r + zoom x n + 1 y r + zoom y m + 1

where zoom x is the value of Gl.ZOOM_X and zoom y is the value of Gl.ZOOM_Y.

Notes

Gl.BGR and Gl.BGRA are only valid for format if the GL version is 1.2 or greater.

Gl.UNSIGNED_BYTE_3_3_2, Gl.UNSIGNED_BYTE_2_3_3_REV, Gl.UNSIGNED_SHORT_5_6_5, Gl.UNSIGNED_SHORT_5_6_5_REV, Gl.UNSIGNED_SHORT_4_4_4_4, Gl.UNSIGNED_SHORT_4_4_4_4_REV, Gl.UNSIGNED_SHORT_5_5_5_1, Gl.UNSIGNED_SHORT_1_5_5_5_REV, Gl.UNSIGNED_INT_8_8_8_8, Gl.UNSIGNED_INT_8_8_8_8_REV, Gl.UNSIGNED_INT_10_10_10_2, and Gl.UNSIGNED_INT_2_10_10_10_REV are only valid for type if the GL version is 1.2 or greater.

Errors

Gl.INVALID_ENUM is generated if format or type is not one of the accepted values.

Gl.INVALID_ENUM is generated if type is Gl.BITMAP and format is not either Gl.COLOR_INDEX or Gl.STENCIL_INDEX.

Gl.INVALID_VALUE is generated if either width or height is negative.

Gl.INVALID_OPERATION is generated if format is Gl.STENCIL_INDEX and there is no stencil buffer.

Gl.INVALID_OPERATION is generated if format is Gl.RED, Gl.GREEN, Gl.BLUE, Gl.ALPHA, Gl.RGB, Gl.RGBA, Gl.BGR, Gl.BGRA, Gl.LUMINANCE, or Gl.LUMINANCE_ALPHA, and the GL is in color index mode.

Gl.INVALID_OPERATION is generated if format is one of Gl.UNSIGNED_BYTE_3_3_2, Gl.UNSIGNED_BYTE_2_3_3_REV, Gl.UNSIGNED_SHORT_5_6_5, or Gl.UNSIGNED_SHORT_5_6_5_REV and format is not Gl.RGB.

Gl.INVALID_OPERATION is generated if format is one of Gl.UNSIGNED_SHORT_4_4_4_4, Gl.UNSIGNED_SHORT_4_4_4_4_REV, Gl.UNSIGNED_SHORT_5_5_5_1, Gl.UNSIGNED_SHORT_1_5_5_5_REV, Gl.UNSIGNED_INT_8_8_8_8, Gl.UNSIGNED_INT_8_8_8_8_REV, Gl.UNSIGNED_INT_10_10_10_2, or Gl.UNSIGNED_INT_2_10_10_10_REV and format is neither Gl.RGBA nor Gl.BGRA.

Gl.INVALID_OPERATION is generated if a non-zero buffer object name is bound to the Gl.PIXEL_UNPACK_BUFFER target and the buffer object's data store is currently mapped.

Gl.INVALID_OPERATION is generated if a non-zero buffer object name is bound to the Gl.PIXEL_UNPACK_BUFFER target and the data would be unpacked from the buffer object such that the memory reads required would exceed the data store size.

Gl.INVALID_OPERATION is generated if a non-zero buffer object name is bound to the Gl.PIXEL_UNPACK_BUFFER target and data is not evenly divisible into the number of bytes needed to store in memory a datum indicated by type.

Gl.INVALID_OPERATION is generated if Gl.DrawPixels is executed between the execution of Gl.Begin and the corresponding execution of Gl.End.

Associated Gets

Gl.Get with argument Gl.CURRENT_RASTER_POSITION

Gl.Get with argument Gl.CURRENT_RASTER_POSITION_VALID

Gl.Get with argument Gl.PIXEL_UNPACK_BUFFER_BINDING

See also

Gl.LogicOp, Gl.PixelMap, Gl.PixelStore, Gl.PixelTransfer, Gl.PixelZoom, Gl.RasterPos, Gl.ReadPixels, Gl.Scissor, Gl.WindowPos

See original documentation on OpenGL website