Index

Numbers

2D Cartesian coordinates, 24

2D graphics

2D Bézier curves, 391–396

bitmaps

BITMAPS sample program, 253–257

definition of, 252

drawing, 257

pixel packing, 257–258

raster position, 256

color matrix, 288–289

color tables

bias values, 291

color lookup, 289–290

proxies, 290–291

rendering, 291

replacing, 291–292

scaling factors, 291

convolutions

applying, 293

border modes, 296–297

combining with other imaging operations, 293–294

definition of, 292

kernels, 292

loading from color buffer, 295

one-dimensional filters, 296

separable filters, 296

histograms, 297–300

history of, 10

imaging pipeline, 288

IMAGING sample program

glColorTable function, 290

glConvolutionFilter2D function, 293

glMatrixMode function, 288

histograms, 298–300

RenderScene function, 284–287

imaging subset, 283–284

minmax operations, 301

OPERATIONS sample program

glPixelMap function, 282

glPixelTransferf function, 279

glPixelZoom function, 275–277

ProcessMenu function, 269, 274

RenderScene function, 270–275

SetupRC function, 269, 274

source code, 268–275

overview, 251

pixel mapping, 281–282

pixel packing, 257–258

pixel transfer, 277–281

pixel zoom, 275–277

pixmaps

copying pixels, 265

data types, 259–260

definition of, 252

drawing, 258

IMAGELOAD, 261–265

moving pixels, 265–266

packed pixel formats, 260

pixel formats, 259

reading pixels, 265

saving pixels, 266–268

primitives, 27

targa files

loading, 262–265

writing to, 266–268

textures, 311–316

3D Cartesian coordinates, 27

3D graphics. See also GLSL (OpenGL Shading Language)

actors

actor frames, 161–163

definition of, 161

antialiasing, 18

applications

non–real-time 3D, 22

real-time 3D, 19–22

shaders, 22–23

Bézier curves

2D curves, 391–396

3D Bézier surfaces, 397–400

breakpoints, 390

continuity, 390–391

control points, 390

cubic curves, 390

degree of, 390

evaluating, 396–397

lighting and normal vectors, 400–401

order of, 390

overview, 388

parametric equation, 388–389

piecewise curves, 390

quadratic curves, 390

bitmaps, drawing, 796–797

blending, 18

buffers. See buffers

color. See color

coordinate systems

2D Cartesian coordinates, 24

3D Cartesian coordinates, 27

coordinate clipping, 25–26

overview, 24

vertices, 27

viewports, 26–27

display lists

batch processing, 423–424

converting to, 426–428

creating, 425

deleting, 425

executing, 425–426

immediate mode rendering, 423

limitations of, 426

naming, 425

overview, 422–423

preprocessed batches, 424–426

Euler angles, 163–164

feedback

feedback buffer, 471, 478–480

feedback data, 472

labeling objects for, 473–475

overview, 458, 471

passthrough markers, 473

SELECT sample program, 473–480

filtering, 16

fixed functionality rendering pipeline

antialiasing application, 521

clipping, 519–520

color sum, 520

fog application, 521

lighting, 518

overview, 515–516

texture application and environment, 520

texture coordinate generation and transformation, 519

vertex transformation, 518

further reading, 773–774

general polygons, 108–109

history of, 10–14

CRTs (cathode ray tubes), 10

development of 3D graphic techniques, 11–13

foreshortening, 14

overview, 9–10

real-time graphics, 10–11

immediate mode, 23

lines, drawing

curves, approximating with straight lines, 88–89

glBegin function, 85

glEnd function, 85

line loops, 87–88

line strips, 87–89

line width, 89–91

LINES program example, 85–87

stippling, 91–93

matrices

column-major matrix ordering, 154–155

creating, 157–159

definition of, 134

identity matrices, 140–142

loading, 156–160

modelview matrices, 136

orthonormal vectors, 155

perspective

definition of, 14

foreshortening, 14

hidden surface removal, 14

overview, 11–13

points, drawing

glBegin function, 78

glEnd function, 78

glVertex function, 76–77

overview, 74

point parameters, 85, 1040–1041

point size, 81–85, 1042–1043

POINTS program example, 78–80

POINTSZ program example, 82–85

projections

orthographic projections, 29

overview, 28

perspective projections, 30

quad strips, 108

quadrics

cylinders, 382

disks, 384–385

drawing, 108, 381–384

modeling with, 385–388

overview, 378

quadric states, 379–381

SNOWMAN sample program, 385–388

spheres, 381–382

rendering

definition of, 14

full-screen rendering on Mac OS X, 706–711

immediate mode rendering, 423

with vertex arrays, 434–435

retained mode, 23

scalars, 135

scissor test, 119–121

selection

definition of, 457

hierarchical picking, 466–471

naming primitives, 458–460

overview, 458

picking, 457, 464–466

rendering modes, 460–461

selection buffer, 461–463

shaders. See shaders

shading, 15

shadows, 15–16

solid objects, drawing

backface culling, 104–106

colors, 101–102, 182–183

depth testing, 103

edge flags, 114–116

hidden surface removal, 102–103

polygon construction rules, 113–114

polygon modes, 107

shading, 183–186

stippling, 109–113

TRIANGLE program example, 98–101

surfaces. See surfaces

textures

anisotropic texture filtering, 344–346

beach ball texture fragment shader, 592–595

binding, 795–796

checkerboard texture fragment shader, 589–591

compressing, 347–349

coordinate generation parameters, 966–967

coordinates, 1084–1087, 1091–1093

data types, 306–307

dependent texture lookups, 572

environment parameters, 964–966, 1087–1091

filtering, 318–319

floating-point textures, 622–630

internal formats, 305

isotropic texture filtering, 345

loading, 304–307

loading compressed textures, 349–350

making active, 785

mipmapping, 325–330

multiple textures, managing, 331–338

multitexture, 362–369

one-dimensional texture images, specifying, 1094–1099

overview, 16, 303–304

parameters, 318, 1110–1114

point sprites, 371–374

priorities, 1046–1047

procedural texture mapping vertex shader, 588–589

PYRAMID sample program, 311–316

resident textures, 338, 787

returning compressed textures, 937–938

secondary specular color, 341–344

selecting active texture, 814

state, 304

subimages. See subimages

texels, 304–306

texture combiners, 369–371

texture coordinates, 308–310, 350–361, 1018–1020

texture environment mode, 316–318

texture matrix, 311

texture objects, 330–339

texture priorities, 339

three-dimensional texture images, specifying, 1105–1110

toon-shading (cell-shading), 321–325

toy ball texture fragment shader, 595–599

two-dimensional texture images, specifying, 1099–1104

updating, 307–308

wrap modes, 320–321

transformations. See transformations

transparency, 18

triangles, drawing

overview, 94

simple example, 94–95

triangle fans, 97–98

triangle strips, 96–97

windings, 95–96, 201

vectors, 134

vertex arrays

enabling, 432–433

indexed vertex arrays, 435–449

loading geometry, 432

overview, 428–429

pointer functions, 433–434

rendering with, 434–435

sizes and data types, 434

STARRYNIGHT sample program, 429–431

texture, 434

viewing volume, 74–76

4-bit color mode, 179

8-bit color mode, 179

16-bit color mode, 180

24-bit color mode, 180

32-bit color mode, 180

8514 graphics cards, 178

A

accumulation buffers, 244–248, 784–785

active texture, selecting, 814

actors

actor frames, 161–163

definition of, 161

AddTriangle method, 445

AGL

full-screen rendering support, 708–711

overview, 686

pixel formats, 692–693

rendering context, 694–695

AGL_ACCUM_ALPHA_SIZE constant, 693

AGL_ACCUM_BLUE_SIZE constant, 693

AGL_ACCUM_GREEN_SIZE constant, 693

AGL_ACCUM_RED_SIZE constant, 693

AGL_ALL_RENDERERS constant, 692

AGL_ALPHA_SIZE constant, 693

AGL_AUX_BUFFERS constant, 693

AGL_AUX_DEPTH_STENCIL constant, 693

AGL_BLUE_SIZE constant, 693

AGL_BUFFER_SIZE constant, 692

AGL_COLOR_FLOAT constant, 693

AGL_DEPTH_SIZE constant, 693

AGL_DOUBLEBUFFER constant, 692

AGL_FULLSCREEN constant, 693

AGL_GREEN_SIZE constant, 693

AGL_LEVEL constant, 692

AGL_MAXIMUM_POLICY constant, 693

AGL_MINIMUM_POLICY constant, 693

AGL_MULTISAMPLE constant, 693

AGL_NONE constant, 692

AGL_OFFSCREEN constant, 693

AGL_PIXEL_SIZE constant, 693

AGL_RED_SIZE constant, 693

AGL_RGBA constant, 692

AGL_SAMPLES_ARB constant, 693

AGL_SAMPLE_ALPHA constant, 693

AGL_SAMPLE_BUFFERS_ARB constant, 693

AGL_STENCIL_SIZE constant, 693

AGL_STEREO constant, 693

AGL_SUPERSAMPLE constant, 693

aglChoosePixelFormat function, 692, 710

aglCreateContext function, 694

aglDestroyPixelFormat function, 694

aglEnable function, 710

AGLPixelFormat data type, 692

aglSetCurrentContext function, 694

aglSetDrawable function, 694

aglSetFullScreen function, 710

aglSwapBuffers function, 696

aglUpdateContext function, 696

aglUseFont function, 697–698

aliasing, 18

allocating texture objects, 330

alpha testing, 249, 506, 786

ambient light

AMBIENT program, 195–196

calculating light effects, 190–191

Cosmic Background Radiation (global ambient light), 192–193

material properties, 193–196

overview, 187–188

shadows, 500–501

AMBIENT program, 195–196

AMD/ATI’s developer home page, 774

animation

bouncing square example, 62–64

double buffering, 64–65

frames, 423

keyboard polling, 171

overview, 61

ANISOTROPIC program, 346

anisotropic texture filtering, 344–346

antialiasing, 18, 85, 234–238, 521

API wars, 36

ApplyActorTransform function, 169

ApplyCameraTransform function, 164

applying convolution filters, 293

approximation, 217

ARB (Architecture Review Board), 35

ARB_prefix, 71

arrays

of colors, defining, 819–820

of generic vertex attribute data, 1134–1135

indexing, 538

interleaved arrays, enabling, 984–985

of normals, defining, 1025–1026

overview, 534–535

of secondary colors, defining, 1069–1070

of texture coordinates, 1085–1087

vertex arrays

enabling, 432–433

indexed vertex arrays, 435–449

loading geometry, 432

overview, 428–429

pointer functions, 433–434

rendering with, 434–435

sizes and data types, 434

STARRYNIGHT sample program, 429–431

texture, 434

of vertex data, 1136–1137

ATI_prefix, 71

ATOM program, 143–146

attaching

images to FBOs (framebuffer objects), 610–611

program objects to shaders, 530

shaders, 788–789, 929–930

attribute qualifier, 535

averaging normal vectors, 211–213

axes (2D Cartesian coordinate systems), 24

B

B-splines, 402

backface culling, 104–106

batch processing

flushing buffer, 423–424

preprocessed batches, 424–426

beach ball texture fragment shader, 592–595

BeginPaint function, 665

BEZ3D program, 397–399

Bézier curves

2D curves, 391–396

3D Bézier surfaces, 397–400

breakpoints, 390

continuity, 390–391

control points, 390

cubic curves, 390

degree of, 390

evaluating, 396–397

lighting and normal vectors, 400–401

order of, 390

overview, 388

parametric equation, 388–389

piecewise curves, 390

quadratic curves, 390

BEZIER program, 391–393

BEZLIT program, 401

bi-cubic splines, 402

bias values, applying with color tables, 291

binding

texture objects, 330, 795–796

vertex buffer objects, 450, 793–795

bitmaps

bitmap fonts (Carbon)

CARBONGLFONTS sample program, 698

setting up fonts, 697–698

BITMAPS sample program, 253–255

glBitmap function, 257

glRasterPos2i function, 256

glWindowPos2i function, 256

RenderScene function, 255

definition of, 252

drawing, 257, 796–797

pixel packing, 257–258

raster position, 256

BITMAPS program, 253–255

glBitmap function, 257

glRasterPos2i function, 256

glWindowPos2i function, 256

RenderScene function, 255

bitwise color logical operations, 248

blending

color, 229

antialiasing, 234–238

blend color, 798

blending equation, 230, 234, 798–799

destination color, 230

enabling blending, 230

glBlendColor function, 234

glBlendEquation function, 234

glBlendFunc function, 230–232

glBlendFuncSeparate function, 234

multisampling, 238–240

pixel arithmetic, 801, 803–806

REFLECTION sample program, 232–233

source color, 230

overview, 18

vertex blending, 563–566

bloom effect

bright pass, 633–634

drawing scene, 630–633

framebuffer, 636–638

Gaussian blur, 634–636

overview, 630

PBOs (pixel buffer objects), 638

blurring images, 575–576

blur fragment shader, 575–576

Gaussian blur, 634–636

bodies of programs, 50

books

3D graphics books, 773–774

OpenGL books, 773

bool data type, 533

border modes (convolutions), 296–297

bouncing square program, 62–64

bounding boxes

bounding volumes, 485

creating, 485–486

rendering, 487–490

bounding volumes, 485

breakpoints (Bézier curves), 390

buffer swaps, 423, 705–706

buffers

accumulation buffers, 244–248, 784–785

clearing, 811–812

binding, 793–795

bloom effect

bright pass, 633–634

drawing scene, 630–633

framebuffer, 636–638

Gaussian blur, 634–636

overview, 630

PBOs (pixel buffer objects), 638

buffer swaps, 423, 705–706

buffer targets, 117–119

clearing, 810–811

color buffer, 117

clearing, 52–53, 812

loading convolution kernels from, 295

loading textures from, 307

specifying, 868–870, 1057

color index buffers

clearing, 813

controlling writing to, 981–982

data store

creating and initializing, 806–807

mapping, 1009–1010

returning pointers to, 932–933

returning subset of, 933

updating subset of, 807–808

depth buffer, 119, 497–498

clearing, 812–813

enabling/disabling, 865

double-buffered rendering, 64–65, 117

EGL, 764–765

FBOs (framebuffer objects)

attaching images, 610–611

creating, 609–610

destroying, 609–610

draw buffers, 611

environment map generation sample program, 615–618

framebuffer completeness, 612–613

mipmap generation, 613

multiple target rendering, 619–621

offscreen rendering, 613–615

overview, 608–609

shadow mapping sample program, 613–615

feedback buffer

glFeedbackBuffer function, 471

loading and parsing, 478–480

placing markers in, 1028

types, 471

floating-point textures

High Dynamic Range (HDR), 622–623

OpenEXR file format, 623–626

overview, 622

tone mapping, 626–630

flushing, 423–424

frame buffer, 53

color components, enabling/disabling, 817–818

copying pixels in, 848–850

reading pixels from, 1057–1060

writing block of pixels to, 871–876

multisampled buffers, 652

named buffer objects

deleting, 861

generating names, 900

querying names, 985

OpenGL ES 2.0, 749–750

overview, 117, 601

parameters, returning, 931–932

PBOs (pixel buffer objects)

benefits of, 603–604

functions, 602–603, 608

motion blur sample program, 604–608

overview, 601–602

selection buffer, 461–463, 1070–1071

single-buffered rendering, 117–119

stencil buffer, 121–126

clearing, 813

vertex buffer objects

binding, 450

creating, 450

initializing arrays, 452–453

loading, 451

mixing static and dynamic data, 453–454

overview, 450

rendering from, 451–455

built-in variables, 536–537

bvec2 data type, 533

bvec3 data type, 533

bvec4 data type, 533

byte coordinates (ES 1.0), 741

C

C calling convention, 41

calculating

ambient light effects, 190–191

blending equation, 230, 234

diffuse light effects, 191

fog equations, 242–244

normal vectors, 202–203

specular light effects, 191

callback functions, tessellator callbacks, 412–413

calling functions (GLSL), 543

camera transformations, 164–165

campfire graphics

campfire bitmap program (BITMAPS), 253–255

glBitmap function, 257

glRasterPos2i function, 256

glWindowPos2i function, 256

RenderScene function, 255

campfire pixmap program (IMAGELOAD)

gltLoadTGA function, 262–265

RenderScene function, 261–262

canvases. See viewing volumes

capturing display, 707

Carbon

bitmap fonts, 697

CARBONGLFONTS sample program, 698

setting up, 697–698

Carbon window, initializing, 690–691

cleanup, 695

event handling, 695–696

OpenGL setup, 689–690

overview, 689

pixel format, 692–693

rendering context, 694–695

CARBONGLFONTS program, 698

Cartesian coordinates

2D Cartesian coordinates, 24

3D Cartesian coordinates, 27

cartoons with texture, 321–325

cathode ray tube (CRT), 10, 176

cell-shading (toon-shading), 321–325

centroid varying qualifier, 535

CGA (Color Graphics Adapter) cards, 178

CGDisplayBestModeForParameters function, 707

CGDisplayCapture function, 707

CGDisplayPixelsHigh function, 707

CGDisplayPixelsWide function, 707

CGDisplaySwitchToMode function, 707

CGL, 686

CGMainDisplayID function, 707

CGReleaseAllDisplays function, 707

ChangeDisplaySettings function, 675

ChangeSize function, 58, 75, 394, 499, 696, 711

changing display modes, 707

checkerboard texture fragment shader, 589–591

checking for extensions, 69–71

ChoosePixelFormat function, 653–654

Clarke, Arthur C., 173

classes

CTriangleMesh, 448

CVBOMesh, 454

GLFrame, 162–164

ThunderGLView, 701–705

cleanup

Carbon, 695

OpenGL ES applications, 771–772

clearing

buffers, 810–811

accumulation buffers, 811–812

color buffers, 52–53, 812

color index buffers, 813

depth buffers, 812–813

stencil buffers, 813

windows, 51–52

client-side capability, enabling/disabling, 884–885

clients, pushing attributes onto attribute stack, 1052

clipped viewing volumes, defining, 59–60

clipping

clipping planes

specifying, 814–815

returning coefficients of, 934

clipping regions, 25

fixed vertex processing, 519–520

overview, 524

clockwise windings, 95

Cocoa

COCOAGL program, 699–700

buffer swaps, 705–706

OpenGL views, creating, 700–701

ThunderGLView class, 701–705

overview, 699

source module, 688

COCOAGL program, 699–700

buffer swaps, 705–706

OpenGL views, creating, 700–701

ThunderGLView class, 701–705

code, indenting, 78

collecting

histogram data, 298–300

minmax data, 301

color

accumulation buffers, 244–248

alpha testing, 249

array of colors, defining, 819–820

blending, 229

antialiasing, 234–238

blending equation, 230, 234, 798–799

destination color, 230

enabling, 230

glBlendColor function, 234

glBlendEquation function, 234

glBlendFunc function, 230–232

glBlendFuncSeparate function, 234

multisampling, 238–240

overview, 18

pixel arithmetic, 801, 803–806

REFLECTION sample program, 232–233

setting blend color, 798

source color, 230

color buffer, 52–53, 117

clearing, 812

loading convolution kernels from, 295

loading textures from, 307

specifying, 868–870, 1057

color depth, 179–180

color index

defining array of, 982–983

logical pixel operation, 1002–1003

setting, 980–981

color index buffers

clearing, 813

controlling writing to, 981–982

color masking, 248

color matrix, 288–289

color sum, 520

color tables

bias values, 291

color lookup, 289–290

copying pixels into, 843–845

defining, 821–824

parameters, 824–825, 936–937

proxies, 290–291

rendering, 291

replacing, 291–292

respecifying portion of, 820–821, 843

retrieving contents of, 934–935

scaling factors, 291

color tracking, 194

composite colors, 52

computer monitors and, 176–177

converting

color inversion fragment shader, 570–571

grayscale conversion fragment shader, 568–569

sepia-tone conversion fragment shader, 569–570

depth buffers, clearing, 812–813

display modes, 179–180

dithering, 250

drawing colors, setting, 182–183

fog

creating, 240–241

enabling/disabling, 241

fog coordinates, 244, 896

fog equations, 242–244

fog parameters, 894–895

glFog function, 242

graphics cards, 177–179

heat signature effect, 571–572

light particles, 175

light sources

direction, specifying, 197

material properties, 205

normal averaging, 211–213

overview, 196

polygons, specifying, 205–206

setting up, 203–205

surface normals, 197–200

unit normals, 201–203

light wavelengths, 174

lighting conditions

adding to materials, 190

ambient light, 187–196

Cosmic Background Radiation (global ambient light), 192–193

diffuse light, 188, 191

enabling lighting, 192

material properties, 190, 193–196, 205

normal averaging, 211–213

overview, 186–187, 207

RGBA values, 189

SHINYJET sample program, 210–211

specular exponent, 209–210

specular highlights, 207

specular light, 188–191, 208

specular reflectance, 208–209

SPOT sample program, 213–220

logical operations, 248–249

OpenGL ES specifications, 740

overview, 15, 174

perception by eye, 176

polygon colors, setting, 101–102, 182–183

RGB colorspace, 180–181

secondary colors

defining array of, 1069–1070

setting, 1067–1069

specular color, 341–344

setting, 815–817

shading

definition of, 183

flat shading, 186

smooth shading, 183–185

shadows

ambient lighting, 500–501

definition of, 222

depth buffer, 497–498

depth textures, 498–500

FBO shadow mapping, 613–615

GL_ARB_shadow_ambient extension, 509

modelview matrix, 496

overview, 221, 495–496

polygon offset, 510

projection matrix, 496–497

shadow maps, 501–509

shadow projection matrix, 223–225

SHADOW sample program, 223–226

SPHEREWORLD sample program, 227

spotlights

creating, 214–216

drawing, 216–220

stencil buffers, clearing, 813

color buffer, 52–53, 117

clearing, 812

loading convolution kernels from, 295

loading textures from, 307

specifying, 868–870, 1057

Color Graphics Adapter (CGA) cards, 178

color index

defining array of, 982–983

logical pixel operation, 1002–1003

setting, 980–981

color index buffers

clearing, 813

controlling writing to, 981–982

color inversion fragment shader, 570–571

color masking, 248

color matrix, 288–289

color space (RGB), 180–181

color tables

bias values, 291

color lookup, 289–290

copying pixels into, 843–845

defining, 821–824

parameters, 824–825, 936–937

proxies, 290–291

rendering, 291

replacing, 291–292

respecifying portion of, 820–821, 843

retrieving contents of, 934–935

scaling factors, 291

column-major matrix ordering, 154–155

combining

textures with texture combiners, 369–371

transformations, 160–161

commands

compiling, 424

glxinfo, 714, 718

comparision functions (alpha testing), 249

compiling

commands, 424

shaders, 529–530, 825–826

component selectors, 540–541

composite colors, 52

compressed paletted texture (ES 1.0), 742

compressed textures

loading, 349–350

returning, 937–938

compressing textures, 347–349

cone cells (eyes), 176

config management

GLX 1.2, 722–723

GLX 1.3+, 719–721

configuring OpenGL on Linux

GLUT, 716–717

glxinfo command, 714

hardware drivers, 715

Mesa installation, 715

OpenGL programs, building, 716–717

X Server, 715–716

conformance, 35–36

const qualifier, 535

constructors, 538–540

context management

EGL, 763–764

GLX

GLX 1.2, 726

GLX 1.3+, 724–726

continuity of Bézier curves, 390–391

control points (Bézier curves), 390

conventions used in book, 5

converting

colors

color inversion fragment shader, 570–571

grayscale conversion fragment shader, 568–569

sepia-tone conversion fragment shader, 569–570

display lists, 426–428

convex polygons, 114

convolutions

applying, 293

border modes, 296–297

combining with other imaging operations, 293–294

definition of, 292

kernels, 292

loading from color buffer, 295

one-dimensional filters, 296

copying pixels into, 845–846

defining, 836–838

parameters, 841–842, 940–941

returning, 938–940

separable filters, 296, 959–960

separable two-dimensional filters, 1072–1074

two-dimensional filters

copying pixels into, 846–848

defining, 839–841

coordinate clipping, 25–26

coordinate generation parameters (textures), returning, 966–967

coordinate systems

2D Cartesian coordinates, 24

3D Cartesian coordinates, 27

coordinate clipping, 25–26

eye coordinates, 129

fog coordinates, 244, 896–897

overview, 24

texture coordinate generation, 350–354

cube mapping, 357–361

disabling, 350

enabling, 350

eye linear mapping, 355–356

object linear mapping, 354

sphere mapping, 356–357

TEXGEN sample program, 351–354

texture coordinates, 308–310

arrays of coordinates, 1085–1087

controlling generation of, 1091–1093

setting, 1018–1020, 1084–1085

vertices, 27

viewports, 26–27

copying

pixels, 265

into 1D texture image, 850–852

into 2D texture image, 852–854

into color table, 843–845

in frame buffer, 848–850

into one-dimensional convolution filters, 845–846

into two-dimensional convolution filters, 846–848

texture subimages

one-dimensional, 854–855

three-dimensional, 857–858

two-dimensional, 855–857

core additions

ES 1.0

OES_byte_coordinates, 741

OES_compressed_paletted_textures, 742

OES_fixed_point, 741

OES_query_matrix, 742

OES_read_format, 742

OES_single_precision_commands, 742

ES 1.1

OES_draw_texture, 745

OES_matrix_get, 745

OES_matrix_palette, 744

OES_point_sprite, 745

ES 2.0

OES_compressed_ETC1_RGB8_texture, 750

OES_element_index_uint, 750

OES_fbo_render_mipmap, 749

OES_fragment_precision_high, 750

OES_framebuffer_object, 749

OES_mapbuffer, 750

OES_shader_binary, 751–752

OES_shader_source, 751

OES_stencil8, 749

OES_texture_3D, 750

OES_texture_float, 750

OES_texture_half_float, 750

OES_texture_npot, 750

OES_vertex_half_float, 749

ES SC, 754

Cosmic Background Radiation (global ambient light), 192–193

counterclockwise windings, 95

CreateWindow function, 657, 659, 672

CRT (cathode ray tube), 10, 176

CTriangleMesh class, 448

cube mapping, 357–361

creating mirrored surface effect with, 360–361

loading cube maps, 358–360

CUBEDX program, 436–439

CUBEMAP program, 358–362

cubic curves, 390

culling, backface, 104–106, 860

curves

approximating with straight lines, 88–89

Bézier

2D curves, 391–396

3D Bézier surfaces, 397–400

breakpoints, 390

continuity, 390–391

control points, 390

cubic curves, 390

degree of, 390

evaluating, 396–397

lighting and normal vectors, 400–401

order of, 390

overview, 388

parametric equation, 388–389

piecewise curves, 390

quadratic curves, 390

NURBS, 409

CVBOMesh class, 454

cylinders, drawing, 382

D

data store (buffer)

creating and initializing, 806–807

mapping, 1009–1010

returning pointers to, 932–933

returning subset of, 933

updating subset of, 807–808

data types, 532–533

AGLPixelFormat, 692

corresponding C/C++ data types, 44–45

for pixel data, 306–307

of vertex arrays, 434

overview, 45

pixel data, 259–260

declaring

arrays, 534

functions (GLSL), 542–543

NURBS surfaces, 404–406

structures, 534

Deep Exploration, 440

degree of Bézier curves, 390

deleting

buffer objects, 861

Cocoa source module, 688

display lists, 425, 861

program objects, 530, 862

query objects, 487, 862–863

rendering contexts, 660–663

shader objects, 528, 863

texture objects, 330, 863–864

delimiting

queries, 791–792

vertices of primitives, 789–791

dependent texture lookups, 572

depth buffers, 119, 497–498

enabling/disabling, 865

depth of color, 179–180

depth testing, 103

depth textures

overview, 498–499

size, 499–500

DescribePixelFormat function, 650–651

destination color, 230

destroying FBOs (framebuffer objects), 609–610

detaching

program objects from shaders, 530

shaders, 866–867

detecting edges, 580, 582

device contexts

GDI device contexts, 646

GLRECT program, 657–660

diffuse light

calculating light effects, 191

diffuse lighting fragment shader, 582–584

diffuse lighting vertex shader, 549, 551

overview, 188

dilating images, 578–579

dilation fragment shader, 578–579

direction of light sources, specifying, 197

disabling

alpha testing, 249

client-side capability, 884–885

depth buffer, 865

fog, 241

multisampling, 239

scissor test, 120

state variables, 65–66

texture coordinate generation, 350

vertex attribute arrays, 886

discard keyword (GLSL), 542

disks, drawing, 384–385

display callback functions, 51

display configs (EGL), 759–763

display lists

batch processing, 423–424

converting to, 426–428

creating, 425, 1023–1024

deleting, 425, 861

executing, 425–426, 808–810

generating, 900–901

immediate mode rendering, 423

limitations of, 426

naming, 425

overview, 422–423

preprocessed batches, 424–426

querying, 988–989

display modes

color depth, 179–180

double-buffered, 50

overview, 179

screen resolution, 179

single-buffered, 50

displays

EGL, 758–759

GLX, 718

dithering, 250

double buffering, 64–65

double-buffered rendering, 117

double-buffered windows, 50

draw buffers, 611

Draw method

CTriangleMesh class, 448

CVBOMesh class, 454

DrawBody function, 440

DrawGeometry function, 246

DrawGround function, 166–168

drawing

bitmaps, 257, 796–797

buffers

buffer targets, 117–119

color buffers, 117

depth buffer, 119

double-buffered rendering, 117

overview, 117

single-buffered rendering, 117–119

stencil buffer, 121–126

color, setting, 182–183

general polygons, 108–109

lines

curves, approximating with straight lines, 88–89

glBegin function, 85

glEnd function, 85

line loops, 87–88

line strips, 87–89

line width, 89–91

LINES program example, 85–87

stippling, 91–93

pixmaps, 258

points

glBegin function, 78

glEnd function, 78

glVertex function, 76–77

overview, 74

point parameters, 85

point size, 81–85

POINTS program example, 78, 80

POINTSZ program example, 82–85

quad strips, 108

quadrics, 108, 381–384

rectangles, 56, 1061–1062

scaling drawings to window, 56

solid objects

backface culling, 104–106

colors, 101–102, 182–183

depth testing, 103

edge flags, 114–116

hidden surface removal, 102–103

polygon construction rules, 113–114

polygon modes, 107

shading, 183–186

stippling, 109–113

TRIANGLE program example, 98–101

triangles

overview, 94

simple example, 94–95

triangle fans, 97–98

triangle strips, 96–97

windings, 95–96, 201

viewing volume, 74–76

DrawModels function, 487

DrawObjects function, 474

DrawOccluder function, 482

DrawPoints function, 392–394

DrawSphere function, 484, 490

DrawThunderBird function, 446–447

DrawTorus function, 158

drivers, 715

extended OpenGL, 644–645

ICD (Installable Client Driver), 642–643

Mini-Client Driver (MCD), 643

mini-drivers, 643–644

OpenGL on Vista, 644

E

earth/sun/moon program, 151–154

edge detection fragment shader, 580–582

edge flags, 114–116, 878–879

edges of polygons, 114–116

effects

fog

creating, 240–241

enabling/disabling, 241

fog coordinates, 244

fog equations, 242–244

glFog function, 242

lighting effects

normal averaging, 211–213

overview, 207

SHINYJET sample program, 210–211

specular exponent, 209–210

specular highlights, 207

specular light, 208

specular reflectance, 208–209

mirrored surface effect, 360–361

EGA (Enhanced Graphics Adapter) cards, 178

EGL

buffers, 764–765

context management, 763–764

display configs, 759–763

displays, 758–759

embedded system diagram, 758

errors, 765

extending, 765–766

initializing, 758

overview, 757

rendering surfaces, 763

rendering synchronization, 764–765

strings, 765

EGL_ALPHA_MASK_SIZE config attribute, 760

EGL_ALPHA_SIZE config attribute, 760

EGL_BIND_TO_TEXTURE_RGB config attribute, 760

EGL_BIND_TO_TEXTURE_RGBA config attribute, 760

EGL_BLUE_SIZE config attribute, 760

EGL_BUFFER SIZE config attribute, 760

EGL_COLOR_BUFFER_TYPE config attribute, 760

EGL_CONFIG_CAVEAT config attribute, 760

EGL_CONFIG_ID config attribute, 760

EGL_DEPTH_SIZE config attribute, 760

EGL_GREEN_SIZE config attribute, 760

EGL_LEVEL config attribute, 760

EGL_LUMINANCE_SIZE config attribute, 760

EGL_MAX_PBUFFER_HEIGHT config attribute, 761

EGL_MAX_PBUFFER_PIXELS config attribute, 761

EGL_MAX_PBUFFER_WIDTH config attribute, 761

EGL_MAX_SWAP_INTERVAL config attribute, 760

EGL_MIN_SWAP_INTERVAL config attribute, 760

EGL_NATIVE_RENDERABLE config attribute, 760

EGL_NATIVE_VISUAL_ID config attribute, 760

EGL_NATIVE_VISUAL_TYPE config attribute, 760

EGL_RED_SIZE config attribute, 760

EGL_RENDERABLE_TYPE config attribute, 760

EGL_SAMPLES config attribute, 760

EGL_SAMPLE_BUFFERS config attribute, 760

EGL_STENCIL_SIZE config attribute, 760

EGL_SURFACE_TYPE config attribute, 760

EGL_TRANSPARENT_BLUE_VALUE config attribute, 761

EGL_TRANSPARENT_GREEN_VALUE config attribute, 761

EGL_TRANSPARENT_RED_VALUE config attribute, 760

EGL_TRANSPARENT_TYPE config attribute, 760

eglBindAPI function, 759

eglChooseConfig function, 761

eglCreateContext function, 763, 769

eglCreateWindowSurface function, 763, 768–769

eglDestroyContext function, 764, 772

eglDestroySurface function, 763

eglGetConfigAttrib function, 762

eglGetConfigs function, 763

eglGetDisplay function, 758

eglGetError function, 765

eglGetProcAddress function, 766

eglInitialize function, 758, 768

eglMakeCurrent function, 764, 769–771

eglQueryString function, 765

eglReleaseThread function, 759

eglSwapBuffers function, 764, 771

eglSwapInterval function, 764

eglTerminate function, 759

eglWaitGL function, 765

eglWaitNative function, 765

Eliminate Surface Acne with Gradient Shadow Mapping, 510

embedded environments

embedded hardware, 766

operating systems, 766

vendor-specific extensions, 767

enabling

alpha testing, 249

antialiasing, 236

blending, 230

client-side capability, 884–885

color logical operations, 248

color tracking, 194

cube mapping, 359

depth buffer, 865

depth testing, 103, 119

dithering, 250

fog, 241

histograms, 298

interleaved arrays, 984–985

lighting, 192, 203

minmax operations, 301

multisampling, 239

normalization, 201

point sprites, 372

polygon stippling, 109

program objects, 532

scissor test, 119–121

secondary specular color, 344

state variables, 65–66

stippling, 91

texture coordinate generation, 350

texture mapping, 316

vertex arrays, 432–433, 886

EndMesh method, 452–453

EndPaint function, 665

Enhanced Graphics Adapter (EGA) cards, 178

enumerating pixel formats, 650–652

environment parameters (textures)

returning, 964–966

setting, 1087–1091

environments

embedded environments

embedded hardware, 766

operating systems, 766

vendor-specific extensions, 767

environment mapping, 615–618

texture, 316–318

equations

blending equation, 230, 234

fog equations, 242–244

parametric equation for curves, 388–389

second-order exponential fog factor, 557

specular lighting, 551

Ericsson compressed texture format, 750

eroding images, 580

erosion fragment shader, 580

errors

EGL, 765

error codes, 68

error flags, displaying, 67–68

FBOs (framebuffer objects), 612–613

GL_STACK_OVERFLOW, 143

GL_STACK_UNDERFLOW, 143

glAccum function, 785

glActiveTexture function, 785

glAlphaFunc function, 786

glAreTexturesResident function, 787

glArrayElement function, 788

glAttachShader function, 789

glBegin function, 790

glBeginQuery function, 792

glBindAttribLocation function, 793

glBindBuffer function, 795

glBindTexture function, 796

glBitmap function, 797

glBlendColor function, 798

glBlendEquation function, 799

glBlendFunc function, 803

glBlendFuncSeparate function, 806

glBufferData function, 807

glBufferSubData function, 808

glCallLists function, 810

glClear function, 811

glClearAccum function, 812

glClearColor function, 812

glClearDepth function, 813

glClearIndex function, 813

glClearStencil function, 813

glClientActiveTexture function, 814

glClipPlane function, 815

glColorMask function, 818

glColorMaterial function, 818

glColorPointer function, 820

glColorSubTable function, 821

glColorTable function, 824

glColorTableParameter function, 825

glCompileShader function, 825

glCompressedTexImage1D function, 827

glCompressedTexImage2D function, 829

glCompressedTexImage3D function, 831

glCompressedTexSubImage1D function, 832

glCompressedTexSubImage2D function, 834

glCompressedTexSubImage3D function, 836

glConvolutionFilter1D function, 838

glConvolutionFilter2D function, 840

glConvolutionParameter function, 842

glCopyColorSubTable function, 843

glCopyColorTable function, 844

glCopyConvolutionFilter1D function, 846

glCopyConvolutionFilter2D function, 848

glCopyPixels function, 850

glCopyTexImage1D function, 852

glCopyTexImage2D function, 854

glCopyTexSubImage1D function, 855

glCreateShader function, 860

glCullFace function, 860

glDeleteBuffers function, 861

glDeleteLists function, 861

glDeleteProgram function, 862

glDeleteQueries function, 863

glDeleteShader function, 863

glDeleteTextures function, 864

glDepthFunc function, 865

glDepthMask function, 865

glDepthRange function, 866

glDetachShader function, 866

glDrawArrays function, 867

glDrawBuffer function, 869

glDrawBuffers function, 870

glDrawElements function, 871

glDrawPixels function, 876

glDrawRangeElements function, 877

glEdgeFlagPointer function, 879

glEnable function, 884

glEnableClientState function, 885

glEnableVertexAttribArray function, 886

glEvalMesh function, 890

glFeedbackBuffer function, 893

glFinish function, 893

glFlush function, 894

glFog function, 895

glFogCoordPointer function, 897

glFrontFace function, 898

glFrustum function, 899

glGenBuffers function, 900

glGenLists function, 901

glGenTextures function, 902

glGet function, 926

glGetActiveAttrib function, 927

glGetActiveUniform function, 929

glGetAttachedShaders function, 930

glGetAttribLocation function, 931

glGetBufferParameteriv function, 932

glGetBufferPointerv function, 932

glGetBufferSubData function, 933

glGetClipPlane function, 934

glGetColorTable function, 935

glGetColorTableParameter function, 937

glGetCompressedTexImage function, 938

glGetConvolutionFilter function, 939–940

glGetConvolutionParameter function, 941

glGetError function, 942

glGetHistogram function, 943

glGetHistogramParameter function, 944

glGetLight function, 946

glGetMap function, 947

glGetMaterial function, 949

glGetMinmax function, 950

glGetMinmaxParameter function, 951

glGetPixelMap function, 952

glGetPointerv function, 953

glGetPolygonStipple function, 954

glGetProgramInfoLog function, 956

glGetProgramiv function, 955

glGetQueryiv function, 957

glGetQueryObject function, 958

glGetSeparableFilter function, 960

glGetShaderInfoLog function, 962

glGetShaderiv function, 961

glGetString function, 964

glGetTexEnv function, 966

glGetTexImage function, 969

glGetTexLevelParameter function, 971

glGetTexParameter function, 973

glGetUniform function, 974

glGetUniformLocation function, 975

glGetVertexAttrib function, 977

glGetVertexAttributePointerv function, 978

glHint function, 979

glHistogram function, 980

glIndexMask function, 982

glIndexPointer function, 983

glInitNames function, 983

glInterleavedArrays function, 984

glIsBuffer function, 985

glIsEnabled function, 988

glIsList function, 988

glIsProgram function, 989

glIsQuery function, 989

glIsShader function, 990

glIsTexture function, 991

glLight function, 993

glLightModel function, 995

glLineStipple function, 996

glLineWidth function, 997

glLinkProgram function, 998

glListBase function, 999

glLoadIdentity function, 999

glLoadMatrix function, 1000

glLoadName function, 1001

glLoadTransposeMatrix function, 1002

glLogicOp function, 1003

glMap1 function, 1005

glMap2 function, 1008

glMapBuffer function, 1010

glMapGrid function, 1012

glMaterial function, 1014

glMatrixMode function, 1014

glMinmax function, 1015

glMultiDrawArrays function, 1016

glMultiDrawElements function, 1018

glMultMatrix function, 1021

glMultTransposeMatrix function, 1022

glNewList function, 1024

glOrtho function, 1027

glPassThrough function, 1028

glPixelMap function, 1030

glPixelStore function, 1035

glPixelTransfer function, 1039

glPixelZoom function, 1040

glPointParameter function, 1041

glPointSize function, 1043

glPolygonMode function, 1044

glPolygonOffset function, 1045

glPolygonStipple function, 1046

glPrioritizeTextures function, 1047

glPushAttrib function, 1051

glPushClientAttrib function, 1052

glPushMatrix function, 1053

glPushName function, 1054

glRasterPos function, 1056

glReadBuffer function, 1057

glReadPixels function, 1060

glRect function, 1062

glRenderMode function, 1063

glResetHistogram function, 1063

glResetMinmax function, 1064

glRotate function, 1065

glSampleCoverage function, 1065

glScale function, 1066

glScissor function, 1067

glSecondaryColorPointer function, 1070

glSelectBuffer function, 1071

glSeparableFilter2D function, 1073–1074

glShaderSource function, 1076

glStencilFunc function, 1077

glStencilFuncSeparate function, 1079

glStencilMask function, 1079

glStencilMaskSeparate function, 1080

glStencilOp function, 1082

glStencilOpSeparate function, 1083

glTexCoordPointer function, 1086

glTexEnv function, 1091

glTexGen function, 1093

glTexImage1D function, 1098–1099

glTexImage2D function, 1104

glTexImage3D function, 1109–1110

glTexSubImage1D function, 1116

glTexSubImage2D function, 1118–1119

glTexSubImage3D function, 1120–1121

glTranslate function, 1122

glUniform function, 1125–1126

glUseProgram function, 1127

glValidateProgram function, 1129

glVertexAttrib function, 1134

glVertexAttribPointer function, 1135

glVertexPointer function, 1136

glViewport function, 1137

glWindowPos function, 1139

returning information about, 941–942

overview, 67

ES. See OpenGL ES

Essential Mathematics for Games and Interactive Applications, 757

Euler angles, 163–164

evaluating Bézier curves, 396–397

evaluators

definition of, 391

glMap1f, 395

glMap2f, 399

one-dimensional evaluators, defining, 1003–1005

parameters, returning, 946–947

two-dimensional evaluators, defining, 1006–1009

event handling (Carbon), 695–696

event-driven programming, 660

executing display lists, 425–426

expressions

array access, 538

component selectors, 540–541

constructors, 538–540

operators, 537–538

EXT_prefix, 71

extended OpenGL, 644–645

extending

EGL, 765–766

GLX, 729

extensions

checking for, 69–71

ES 1.0

OES_byte_coordinates, 741

OES_compressed_paletted_textures, 742

OES_fixed_point, 741

OES_query_matrix, 742

OES_read_format, 742

OES_single_precision_commands, 742

ES 1.1

OES_matrix_get, 745

OES_matrix_palette, 744

OES_point_sprite, 745

ES 2.0

OES_compressed_ETC1_RGB8_texture, 750

OES_element_index_uint, 750

OES_fbo_render_mipmap, 749

OES_fragment_precision_high, 750

OES_framebuffer_object, 749

OES_mapbuffer, 750

OES_shader_binary, 751–752

OES_shader_source, 751

OES_stencil8, 749

OES_texture_3D, 750

OES_texture_float, 750

OES_texture_half_float, 750

OES_texture_npot, 750

OES_vertex_half_float, 749

ES SC, 754

overview, 69

prefix identifiers, 71

WGL. See WGL extensions

eye coordinates, 129

eye linear mapping, 355–356

eyes, perception of color, 176

F

F-16 Thunderbird model. See THUNDERGL program

Fahrenheit, 36–37

FBOs (framebuffer objects)

attaching images, 610–611

color components, enabling/disabling, 817–818

copying pixels in, 848–850

creating, 609–610

destroying, 609–610

draw buffers, 611

environment map generation sample program, 615–618

framebuffer completeness, 612–613

mipmap generation, 613

multiple target rendering, 619–621

offscreen rendering, 613–615

OpenGL ES specifications

ES 1.0, 741

ES 2.0, 749

overview, 40, 53, 608–609

reading pixels from, 1057–1060

shadow mapping sample program, 613–615

writing block of pixels to, 871–876

feedback

feedback buffer

glFeedbackBuffer function, 471

loading and parsing, 478–480

placing markers in, 1028

types, 471

feedback data, 472

labeling objects for, 473–475

overview, 458, 471

passthrough markers, 473

SELECT sample program

labeling objects for feedback, 473–475

loading and parsing feedback buffer, 478–480

selecting objects, 476–477

feedback buffer

glFeedbackBuffer function, 471

loading and parsing, 478–480

placing markers in, 1028

types, 471

feedback mode, 891–893

files

gl.h, 42

glee.h, 43

gltools.cpp, 43

gltools.h, 42–43

glu.h, 42

glut.h, 43

OpenEXR format, 623–626

targa files

loading, 262–265

writing to, 266–268

filters

anisotropic texture filtering, 344–346

convolution filters. See convolutions

definition of, 16

isotropic texture filtering, 345

mipmap filters, 327–328

percentage-closer filtering, 506

textures, 318–319

finding normal vectors, 202–203

fixed functionality

antialiasing application, 521

clipping, 519–520

color sum, 520

fixed functionality rendering pipeline, 515

fog application, 521

lighting, 518

overview, 516

texture application and environment, 520

texture coordinate generation and transformation, 519

vertex transformation, 518

fixed-point data type (ES 1.0), 741

fixed-point math, 756–757

flagging edges, 878–879

flat shading, 186

float data type, 533

floating-point textures

High Dynamic Range (HDR), 622–623

OpenEXR file format, 623–626

OpenGL ES specifications, 750

overview, 622

tone mapping, 626–630

FLORIDA program, 414–419

complex polygon, tessellating, 417–418

convex polygon, drawing, 415–416

vertex data and drawing code for state outline, 414–415

flow control (GLSL)

discard keyword, 542

functions

calling, 543

declaring, 542–543

function name overloading, 543

main, 542

texture lookup functions, 544–545

if/else clauses, 542

loops, 541

flushing

buffer, 423–424

queue, 53

fog

creating, 240–241

enabling/disabling, 241

fixed fragment processing, 521

fog coordinates, 244, 896

fog equations, 242–244

fog fragment shader, 572–574

fog parameters, 894–895

fog vertex shader, 557–559

glFog function, 242

overview, 17

second-order exponential fog factor, 557

font.c program, 728–729

fonts

bitmap fonts, 697–698

Windows fonts

2D fonts and text, 669, 671

3D fonts and text, 666–668

overview, 666

X fonts, 728–729

forcing command execution, 893–894

foreshortening, 14, 133

fragment operations (OpenGL ES)

ES 2.0, 748

ES SC, 753

fragment shaders

beach ball texture fragment shader, 592–595

blur fragment shader, 575–576

capabilities of, 525–526

checkerboard texture fragment shader, 589–591

color inversion fragment shader, 570–571

diffuse lighting fragment shader, 582–584

dilation fragment shader, 578–579

edge detection fragment shader, 580–582

erosion fragment shader, 580

fog fragment shader, 572–574

grayscale conversion fragment shader, 568–569

heat signature fragment shader, 571–572

overview, 567–568

sepia-tone conversion fragment shader, 569–570

sharpen fragment shader, 577–578

simple example, 527

three colored lights fragment shader, 586–587

toy ball texture fragment shader, 595–599

framebuffer objects. See FBOs

frameless windows, creating, 672

frames, 423

actor frames, 161–163

GLFrame class, 162–164

freeglut, 47. See also GLUT

front-facing polygons, defining, 898

frustums, 30, 148–149, 898–899

full-screen rendering

Mac OS X

AGL full-screen support, 708–711

display management, 706–707

overview, 706

Windows, 671

frameless windows, creating, 672

full-screen windows, creating, 672–675

full-screen windows, creating, 672–675

functions, 542–545. See also specific functions

calling, 543

declaring, 542–543

evaluators, 391

main, 542

naming conventions, 45–46

name overloading, 543

texture lookup functions, 544–545

future of OpenGL, 37

G

Gaussian blur, 634–636

GDI (graphics device interface), 38

GDI device contexts, 646

generating

buffer names, 900

display lists, 900–901

mip levels, 328–329

query names, 901

texture coordinates, 350–354

cube mapping, 357–361

disabling, 350

enabling, 350

eye linear mapping, 355–356

object linear mapping, 354

sphere mapping, 356–357

TEXGEN sample program, 351–354

texture names, 902

generic implementations, 38–39, 642

geometric primitives. See primitives, drawing

geometric transformations. See transformations

geometry throughput

display lists

batch processing, 423–424

converting to, 426–428

creating, 425

deleting, 425

executing, 425–426

immediate mode rendering, 423

limitations of, 426

naming, 425

overview, 422–423

preprocessed batches, 424–426

overview, 421–422

vertex arrays

enabling, 432–433

indexed vertex arrays, 435–449

loading geometry, 432

overview, 428–429

pointer functions, 433–434

rendering with, 434–435

sizes and data types, 434

STARRYNIGHT sample program, 429–431

texture, 434

vertex buffer objects

binding, 450

creating, 450

initializing arrays, 452–453

loading, 451

mixing static and dynamic data, 453–454

overview, 450

rendering from, 451–455

GetDC function, 657–658

GetDeviceCaps function, 673

GetMatrix function, 162–163

GetWindowPortBounds function, 696

GL Easy Extension (GLEE) library, 679

gl.h file, 42

GL_ACCUM_ALPHA_BITS constant (glGet function), 903

GL_ACCUM_BLUE_BITS constant (glGet function), 903

GL_ACCUM_CLEAR_VALUE constant (glGet function), 903

GL_ACCUM_GREEN_BITS constant (glGet function), 903

GL_ACCUM_RED_BITS constant (glGet function), 903

GL_ACTIVE_TEXTURE constant (glGet function), 903

GL_ADD texture environment mode, 317, 370

GL_ADD_SIGNED constant, 370

GL_ALIASED_LINE_WIDTH_RANGE constant (glGet function), 903

GL_ALIASED_POINT_SIZE_RANGE constant (glGet function), 903

GL_ALPHA pixel format, 259

GL_ALPHA_BIAS constant (glGet function), 903

GL_ALPHA_BITS constant (glGet function), 903

GL_ALPHA_SCALE constant (glGet function), 903

GL_ALPHA_TEST constant (glGet function), 903

GL_ALPHA_TEST_FUNC constant (glGet function), 903

GL_ALPHA_TEST_REF constant (glGet function), 904

GL_AMBIENT parameter

glGetLight function, 945

glLight function, 992

glMaterial function, 1013

GL_AMBIENT_AND_DIFFUSE parameter (glMaterial function), 1013

GL_ARB_color_buffer_float extension. See floating-point textures

GL_ARB_shadow_ambient extension, 509

GL_ARRAY_BUFFER_BINDING constant (glGet function), 904

GL_ATTRIB_STACK_DEPTH constant (glGet function), 904

GL_AUTO_NORMAL constant (glGet function), 904

GL_AUX_BUFFERS constant (glGet function), 904

gl_BackColor built-in variable, 537

gl_BackSecondaryColor built-in variable, 537

GL_BGR pixel format, 259

GL_BGRA pixel format, 259

GL_BITMAP data type, 259, 306

GL_BLEND constant (glGet function), 904

GL_BLEND texture environment mode, 317

GL_BLEND_COLOR constant (glGet function), 904

GL_BLEND_DST_ALPHA constant (glGet function), 904

GL_BLEND_DST_RGB constant (glGet function), 904

GL_BLEND_EQUATION_ALPHA constant (glGet function), 904

GL_BLEND_EQUATION_RGB constant (glGet function), 904

GL_BLEND_SRC_ALPHA constant (glGet function), 904

GL_BLEND_SRC_RGB constant (glGet function), 904

GL_BLUE pixel format, 259

GL_BLUE_BIAS constant (glGet function), 904

GL_BLUE_BITS constant (glGet function), 904

GL_BLUE_SCALE constant (glGet function), 904

GL_BYTE data type, 259, 306

GL_CLAMP wrap mode, 321

GL_CLAMP_TO_BORDER wrap mode, 321

GL_CLAMP_TO_EDGE wrap mode, 321

GL_CLIENT_ACTIVE_TEXTURE constant (glGet function), 905

GL_CLIENT_ATTRIB_STACK_DEPTH constant (glGet function), 905

GL_CLIP_PLANEi constant (glGet function), 905

gl_ClipVertex built-in variable, 536

gl_Color built-in variable, 536–537

GL_COLOR_ARRAY constant (glGet function), 905

GL_COLOR_ARRAY_BUFFER_BINDING constant (glGet function), 905

GL_COLOR_ARRAY_SIZE constant (glGet function), 905

GL_COLOR_ARRAY_STRIDE constant (glGet function), 905

GL_COLOR_ARRAY_TYPE constant (glGet function), 905

GL_COLOR_CLEAR_VALUE constant (glGet function), 905

GL_COLOR_INDEXES parameter (glMaterial function), 1013

GL_COLOR_LOGIC_OP constant (glGet function), 905

GL_COLOR_MATERIAL constant (glGet function), 905

GL_COLOR_MATERIAL_FACE constant (glGet function), 905

GL_COLOR_MATERIAL_PARAMETER constant (glGet function), 905

GL_COLOR_MATRIX constant (glGet function), 905

GL_COLOR_MATRIX_STACK_DEPTH constant (glGet function), 905

GL_COLOR_SUM constant (glGet function), 905

GL_COLOR_TABLE constant (glGet function), 906

GL_COLOR_WRITEMASK constant (glGet function), 906

GL_COMPRESSED_TEXTURE_FORMATS constant (glGet function), 906

GL_CONSTANT constant, 370

GL_CONSTANT_ATTENUATION parameter

glGetLight function, 946

glLight function, 993

GL_CONVOLUTION_1D constant (glGet function), 906

GL_CONVOLUTION_2D constant (glGet function), 906

GL_CULL_FACE constant (glGet function), 906

GL_CULL_FACE_MODE constant (glGet function), 906

GL_CURRENT_COLOR constant (glGet function), 906

GL_CURRENT_FOG_COORD constant (glGet function), 906

GL_CURRENT_INDEX constant (glGet function), 906

GL_CURRENT_NORMAL constant (glGet function), 906

GL_CURRENT_PROGRAM constant (glGet function), 906

GL_CURRENT_RASTER_COLOR constant (glGet function), 906

GL_CURRENT_RASTER_DISTANCE constant (glGet function), 906

GL_CURRENT_RASTER_INDEX constant (glGet function), 906

GL_CURRENT_RASTER_POSITION constant (glGet function), 906

GL_CURRENT_RASTER_POSITION_VALID constant (glGet function), 907

GL_CURRENT_RASTER_SECONDARY_COLOR constant (glGet function), 907

GL_CURRENT_RASTER_TEXTURE_COORDS constant (glGet function), 907

GL_CURRENT_SECONDARY_COLOR constant (glGet function), 907

GL_CURRENT_TEXTURE_COORDS constant (glGet function), 907

GL_DECAL texture environment mode, 317

GL_DEPTH_BIAS constant (glGet function), 907

GL_DEPTH_BITS constant (glGet function), 907

GL_DEPTH_CLEAR_VALUE constant (glGet function), 907

GL_DEPTH_COMPONENT pixel format, 259

GL_DEPTH_FUNC constant (glGet function), 907

GL_DEPTH_RANGE constant (glGet function), 907

GL_DEPTH_SCALE constant (glGet function), 907

GL_DEPTH_TEST constant (glGet function), 907

GL_DEPTH_WRITEMASK constant (glGet function), 907

GL_DIFFUSE parameter

glGetLight function, 945

glLight function, 992

glMaterial function, 1013

GL_DITHER constant (glGet function), 907

GL_DOT3_RGB constant, 370

GL_DOT3_RGBA constant, 370

GL_DOUBLEBUFFER constant (glGet function), 907

GL_DRAW_BUFFER constant (glGet function), 908

GL_DRAW_BUFFERi constant (glGet function), 908

GL_DYNAMIC_DRAW usage hint, 451

GL_EDGE_FLAG constant (glGet function), 908

GL_EDGE_FLAG_ARRAY constant (glGet function), 908

GL_EDGE_FLAG_ARRAY_BUFFER_BINDING constant (glGet function), 908

GL_EDGE_FLAG_ARRAY_STRIDE constant (glGet function), 908

GL_ELEMENT_ARRAY_BUFFER_BINDING constant (glGet function), 908

GL_EMISSION parameter (glMaterial function), 1013

GL_EXP fog mode, 242

GL_EXP2 fog mode, 242

GL_EXT_texture_compression_s3tc texture compression format, 349

GL_EYE_LINEAR texture generation mode, 355–356

GL_FEEDBACK rendering mode, 461

GL_FEEDBACK_BUFFER_SIZE constant (glGet function), 908

GL_FEEDBACK_BUFFER_TYPE constant (glGet function), 908

GL_FLOAT data type, 259, 306

GL_FOG constant (glGet function), 908

GL_FOG_COLOR constant (glGet function), 909

GL_FOG_COORD_ARRAY constant (glGet function), 908

GL_FOG_COORD_ARRAY_BUFFER_BINDING constant (glGet function), 908

GL_FOG_COORD_ARRAY_STRIDE constant (glGet function), 908

GL_FOG_COORD_ARRAY_TYPE constant (glGet function), 908

GL_FOG_COORD_SRC constant (glGet function), 908

GL_FOG_DENSITY constant (glGet function), 909

GL_FOG_END constant (glGet function), 909

GL_FOG_HINT constant (glGet function), 909

GL_FOG_INDEX constant (glGet function), 909

GL_FOG_MODE constant (glGet function), 909

GL_FOG_START constant (glGet function), 909

gl_FogCoord built-in variable, 536

gl_FogFragCoord built-in variable, 537

gl_FragColor built-in variable, 537

gl_FragCoord built-in variable, 537

gl_FragData[ ] built-in variable, 537

gl_FragDepth built-in variable, 537

GL_FRAGMENT_SHADER_DERIVATIVE_HINT constant (glGet function), 909

GL_FRAMEBUFFER_COMPLETE_EXT error condition, 612

GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT error condition, 612

GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT error condition, 612

GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT error condition, 612

GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT error condition, 612

GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT error condition, 612

GL_FRAMEBUFFER_UNSUPPORTED_EXT error condition, 612

GL_FRONT_FACE constant (glGet function), 909

gl_FrontColor built-in variable, 536

gl_FrontFacing built-in variable, 537

gl_FrontSecondaryColor built-in variable, 537

GL_FUNC_ADD constant, 234

GL_FUNC_REVERSE_SUBTRACT constant, 234

GL_FUNC_SUBTRACT constant, 234

GL_GENERATE_MIPMAP_HINT constant (glGet function), 909

GL_GREEN pixel format, 259

GL_GREEN_BIAS constant (glGet function), 909

GL_GREEN_BITS constant (glGet function), 909

GL_GREEN_SCALE constant (glGet function), 909

GL_HISTOGRAM constant (glGet function), 909

GL_INDEX_ARRAY constant (glGet function), 909

GL_INDEX_ARRAY_BUFFER_BINDING constant (glGet function), 909

GL_INDEX_ARRAY_STRIDE constant (glGet function), 909

GL_INDEX_ARRAY_TYPE constant (glGet function), 910

GL_INDEX_BITS constant (glGet function), 910

GL_INDEX_CLEAR_VALUE constant (glGet function), 910

GL_INDEX_LOGIC_OP constant (glGet function), 910

GL_INDEX_MODE constant (glGet function), 910

GL_INDEX_OFFSET constant (glGet function), 910

GL_INDEX_SHIFT constant (glGet function), 910

GL_INDEX_WRITEMASK constant (glGet function), 910

GL_INT data type, 259, 306

GL_INTERPOLATE constant, 370

GL_INVALID_ENUM error code, 68

GL_INVALID_FRAMEBUFFER_OPERATION_EXT error condition, 613

GL_INVALID_OPERATION error code, 68

GL_INVALID_VALUE error code, 68

GL_LIGHT_MODEL_AMBIENT constant (glGet function), 910

GL_LIGHT_MODEL_COLOR_CONTROL constant (glGet function), 910

GL_LIGHT_MODEL_LOCAL_VIEWER constant (glGet function), 910

GL_LIGHT_MODEL_TWO_SIDE constant (glGet function), 910

GL_LIGHTi constant (glGet function), 910

GL_LIGHTING constant (glGet function), 910

GL_LINE_LOOP primitive, 87–88

GL_LINE_SMOOTH constant (glGet function), 910

GL_LINE_SMOOTH_HINT constant (glGet function), 910

GL_LINE_STIPPLE constant (glGet function), 910

GL_LINE_STIPPLE_PATTERN constant (glGet function), 911

GL_LINE_STIPPLE_REPEAT constant (glGet function), 911

GL_LINE_STRIP primitive, 87–89

GL_LINE_WIDTH constant (glGet function), 911

GL_LINE_WIDTH_GRANULARITY constant (glGet function), 911

GL_LINE_WIDTH_RANGE constant (glGet function), 911

GL_LINEAR constant, 242, 327

GL_LINEAR_ATTENUATION parameter

glGetLight function, 946

glLight function, 993

GL_LINEAR_MIPMAP_LINEAR mipmap filter, 327

GL_LINEAR_MIPMAP_NEAREST mipmap filter, 327

GL_LINES primitive. See lines, drawing

GL_LIST_BASE constant (glGet function), 911

GL_LIST_INDEX constant (glGet function), 911

GL_LIST_MODE constant (glGet function), 911

GL_LOGIC_OP_MODE constant (glGet function), 911

GL_LUMINANCE pixel format, 259

GL_LUMINANCE_ALPHA pixel format, 259

GL_MAP_COLOR constant (glGet function), 912

GL_MAP_STENCIL constant (glGet function), 912

GL_MAP1_COLOR_4 constant (glGet function), 911

GL_MAP1_GRID_DOMAIN constant (glGet function), 911

GL_MAP1_GRID_SEGMENTS constant (glGet function), 911

GL_MAP1_INDEX constant (glGet function), 911

GL_MAP1_NORMAL constant (glGet function), 911

GL_MAP1_TEXTURE_COORD_1 constant (glGet function), 911

GL_MAP1_TEXTURE_COORD_2 constant (glGet function), 911

GL_MAP1_TEXTURE_COORD_3 constant (glGet function), 911

GL_MAP1_TEXTURE_COORD_4 constant (glGet function), 911

GL_MAP1_VERTEX_3 constant (glGet function), 912

GL_MAP1_VERTEX_4 constant (glGet function), 912

GL_MAP2_COLOR_4 constant (glGet function), 912

GL_MAP2_GRID_DOMAIN constant (glGet function), 912

GL_MAP2_GRID_SEGMENTS constant (glGet function), 912

GL_MAP2_INDEX constant (glGet function), 912

GL_MAP2_NORMAL constant (glGet function), 912

GL_MAP2_TEXTURE_COORD_1 constant (glGet function), 912

GL_MAP2_TEXTURE_COORD_2 constant (glGet function), 912

GL_MAP2_TEXTURE_COORD_3 constant (glGet function), 912

GL_MAP2_TEXTURE_COORD_4 constant (glGet function), 912

GL_MAP2_VERTEX_3 constant (glGet function), 912

GL_MAP2_VERTEX_4 constant (glGet function), 912

GL_MATRIX_MODE constant (glGet function), 912

GL_MAX blending mode, 234

GL_MAX_3D_TEXTURE_SIZE constant (glGet function), 912

GL_MAX_ATTRIB_STACK_DEPTH constant (glGet function), 913

GL_MAX_CLIENT_ATTRIB_STACK_DEPTH constant (glGet function), 913

GL_MAX_CLIP_PLANES constant (glGet function), 913

GL_MAX_COLOR_MATRIX_STACK_DEPTH constant (glGet function), 913

GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS constant (glGet function), 913

GL_MAX_CUBE_MAP_TEXTURE_SIZE constant (glGet function), 913

GL_MAX_DRAW_BUFFERS constant (glGet function), 913

GL_MAX_ELEMENTS_INDICES constant (glGet function), 913

GL_MAX_ELEMENTS_VERTICES constant (glGet function), 913

GL_MAX_EVAL_ORDER constant (glGet function), 913

GL_MAX_FRAGMENT_UNIFORM_COMPONENTS constant (glGet function), 913

GL_MAX_LIGHTS constant (glGet function), 913

GL_MAX_LIST_NESTING constant (glGet function), 913

GL_MAX_MODELVIEW_STACK_DEPTH constant (glGet function), 913

GL_MAX_NAME_STACK_DEPTH constant (glGet function), 913

GL_MAX_PIXEL_MAP_TABLE constant (glGet function), 913

GL_MAX_PROJECTION_STACK_DEPTH constant (glGet function), 914

GL_MAX_TEXTURE_COORDS constant (glGet function), 914

GL_MAX_TEXTURE_IMAGE_UNITS constant (glGet function), 914

GL_MAX_TEXTURE_LOD_BIAS constant (glGet function), 914

GL_MAX_TEXTURE_SIZE constant (glGet function), 914

GL_MAX_TEXTURE_STACK_DEPTH constant (glGet function), 914

GL_MAX_TEXTURE_UNITS constant (glGet function), 914

GL_MAX_VARYING_FLOATS constant (glGet function), 914

GL_MAX_VERTEX_ATTRIBS constant (glGet function), 914

GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS constant (glGet function), 914

GL_MAX_VERTEX_UNIFORM_COMPONENTS constant (glGet function), 914

GL_MAX_VIEWPORT_DIMS constant (glGet function), 914

GL_MIN blending mode, 234

GL_MINMAX constant (glGet function), 914

GL_MODELVIEW_MATRIX constant (glGet function), 914

GL_MODELVIEW_STACK_DEPTH constant (glGet function), 914

GL_MODULATE texture environment mode, 317, 370

gl_MultiTexCoordn built-in variable, 536

GL_NAME_STACK_DEPTH constant (glGet function), 915

GL_NEAREST mipmap filter, 327

GL_NEAREST_MIPMAP_LINEAR mipmap filter, 327

GL_NEAREST_MIPMAP_NEAREST mipmap filter, 327

GL_NO_ERROR error code, 68

gl_Normal built-in variable, 536

GL_NORMAL_ARRAY constant (glGet function), 915

GL_NORMAL_ARRAY_BUFFER_BINDING constant (glGet function), 915

GL_NORMAL_ARRAY_STRIDE constant (glGet function), 915

GL_NORMAL_ARRAY_TYPE constant (glGet function), 915

GL_NORMAL_MAP texture generation mode, 357

GL_NORMALIZE constant (glGet function), 915

gl_NormalMatrix function, 551

GL_NUM_COMPRESSED_TEXTURE_FORMATS constant (glGet function), 915

GL_OBJECT_LINEAR texture generation mode, 354

GL_ONE_MINUS_SRC_ALPHA constant, 371

GL_ONE_MINUS_SRC_COLOR constant, 371

GL_OUT_OF_MEMORY error code, 68

GL_PACK_ALIGNMENT constant

glGet function, 915

glPixlStore function, 1033

GL_PACK_IMAGE_HEIGHT constant

glGet function, 915

glPixlStore function, 1032

GL_PACK_LSB_FIRST constant

glGet function, 915

glPixlStore function, 1032

GL_PACK_ROW_LENGTH constant

glGet function, 915

glPixlStore function, 1032

GL_PACK_SKIP_IMAGES constant

glGet function, 915

glPixlStore function, 1033

GL_PACK_SKIP_PIXELS constant

glGet function, 915

glPixlStore function, 1033

GL_PACK_SKIP_ROWS constant

glGet function, 915

glPixlStore function, 1033

GL_PACK_SWAP_BYTES constant

glGet function, 915

glPixlStore function, 1032

GL_PERSPECTIVE_CORRECTION_HINT constant (glGet function), 915

GL_PIXEL_MAP_A_TO_A_SIZE constant (glGet function), 916

GL_PIXEL_MAP_B_TO_B_SIZE constant (glGet function), 916

GL_PIXEL_MAP_G_TO_G_SIZE constant (glGet function), 916

GL_PIXEL_MAP_I_TO_A_SIZE constant (glGet function), 916

GL_PIXEL_MAP_I_TO_B_SIZE constant (glGet function), 916

GL_PIXEL_MAP_I_TO_G_SIZE constant (glGet function), 916

GL_PIXEL_MAP_I_TO_I_SIZE constant (glGet function), 916

GL_PIXEL_MAP_I_TO_R_SIZE constant (glGet function), 916

GL_PIXEL_MAP_R_TO_R_SIZE constant (glGet function), 916

GL_PIXEL_MAP_S_TO_S_SIZE constant (glGet function), 916

GL_PIXEL_PACK_BUFFER_BINDING constant (glGet function), 916

GL_PIXEL_UNPACK_BUFFER_BINDING constant (glGet function), 916

GL_POINT_DISTANCE_ATTENUATION constant (glGet function), 916

GL_POINT_FADE_THRESHOLD_SIZE constant (glGet function), 916

GL_POINT_SIZE constant (glGet function), 916

GL_POINT_SIZE_GRANULARITY constant (glGet function), 916

GL_POINT_SIZE_MAX constant (glGet function), 916

GL_POINT_SIZE_MIN constant (glGet function), 917

GL_POINT_SIZE_RANGE constant (glGet function), 917

GL_POINT_SMOOTH constant (glGet function), 917

GL_POINT_SMOOTH_HINT constant (glGet function), 917

GL_POINT_SPRITE constant (glGet function), 917

gl_PointCoord built-in variable, 537

GL_POINTS primitive. See points, drawing

gl_PointSize built-in variable, 536

GL_POLYGON primitive, 108–109

GL_POLYGON_MODE constant (glGet function), 917

GL_POLYGON_OFFSET_FACTOR constant (glGet function), 917

GL_POLYGON_OFFSET_FILL constant (glGet function), 917

GL_POLYGON_OFFSET_LINE constant (glGet function), 917

GL_POLYGON_OFFSET_POINT constant (glGet function), 917

GL_POLYGON_OFFSET_UNITS constant (glGet function), 917

GL_POLYGON_SMOOTH constant (glGet function), 917

GL_POLYGON_SMOOTH_HINT constant (glGet function), 917

GL_POLYGON_STIPPLE constant (glGet function), 917

gl_Position built-in variable, 536

GL_POSITION parameter

glGetLight function, 945

glLight function, 992

GL_POST_COLOR_MATRIX_ALPHA_BIAS constant (glGet function), 918

GL_POST_COLOR_MATRIX_ALPHA_SCALE constant (glGet function), 918

GL_POST_COLOR_MATRIX_BLUE_BIAS constant (glGet function), 918

GL_POST_COLOR_MATRIX_BLUE_SCALE constant (glGet function), 918

GL_POST_COLOR_MATRIX_COLOR_TABLE constant (glGet function), 917

GL_POST_COLOR_MATRIX_GREEN_BIAS constant (glGet function), 918

GL_POST_COLOR_MATRIX_GREEN_SCALE constant (glGet function), 918

GL_POST_COLOR_MATRIX_RED_BIAS constant (glGet function), 917

GL_POST_COLOR_MATRIX_RED_SCALE constant (glGet function), 918

GL_POST_CONVOLUTION_ALPHA_BIAS constant (glGet function), 918

GL_POST_CONVOLUTION_ALPHA_SCALE constant (glGet function), 918

GL_POST_CONVOLUTION_BLUE_BIAS constant (glGet function), 918

GL_POST_CONVOLUTION_BLUE_SCALE constant (glGet function), 918

GL_POST_CONVOLUTION_COLOR_TABLE constant (glGet function), 918

GL_POST_CONVOLUTION_GREEN_BIAS constant (glGet function), 918

GL_POST_CONVOLUTION_GREEN_SCALE constant (glGet function), 918

GL_POST_CONVOLUTION_RED_BIAS constant (glGet function), 918

GL_POST_CONVOLUTION_RED_SCALE constant (glGet function), 918

GL_PREVIOUS constant, 370

GL_PRIMARY_COLOR constant, 370

GL_PROJECTION_MATRIX constant (glGet function), 918

GL_PROJECTION_STACK_DEPTH constant (glGet function), 919

GL_QUAD_STRIP primitive, 108

GL_QUADRATIC_ATTENUATION parameter

glGetLight function, 946

glLight function, 993

GL_QUADS primitive, 108

GL_READ_BUFFER constant (glGet function), 919

GL_RED pixel format, 259

GL_RED_BIAS constant (glGet function), 919

GL_RED_BITS constant (glGet function), 919

GL_RED_SCALE constant (glGet function), 919

GL_REFLECTION_MAP texture generation mode, 357

GL_RENDER rendering mode, 460

GL_RENDER_MODE constant (glGet function), 919

GL_REPEAT wrap mode, 320–321

GL_REPLACE texture environment mode, 317, 370

GL_RESCALE_NORMAL constant (glGet function), 919

GL_RGB pixel format, 259

GL_RGBA pixel format, 259

GL_RGBA_MODE constant (glGet function), 919

GL_SAMPLES constant (glGet function), 919

GL_SAMPLE_BUFFERS constant (glGet function), 919

GL_SAMPLE_COVERAGE_INVERT constant (glGet function), 919

GL_SAMPLE_COVERAGE_VALUE constant (glGet function), 919

GL_SCISSOR_BOX constant (glGet function), 919

GL_SCISSOR_TEST constant (glGet function), 919

GL_SECONDARY_COLOR_ARRAY constant (glGet function), 919

GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING constant (glGet function), 919

GL_SECONDARY_COLOR_ARRAY_SIZE constant (glGet function), 919

GL_SECONDARY_COLOR_ARRAY_STRIDE constant (glGet function), 920

GL_SECONDARY_COLOR_ARRAY_TYPE constant (glGet function), 920

gl_SecondaryColor built-in variable, 536–537

GL_SELECTION_BUFFER_SIZE constant (glGet function), 920

GL_SEPARABLE_2D constant (glGet function), 920

GL_SHADE_MODEL constant (glGet function), 920

GL_SHININESS parameter (glMaterial function), 1013

GL_SHORT data type, 259, 306

GL_SMOOTH_LINE_WIDTH_GRANULARITY constant (glGet function), 920

GL_SMOOTH_LINE_WIDTH_RANGE constant (glGet function), 920

GL_SMOOTH_POINT_SIZE_GRANULARITY constant (glGet function), 920

GL_SMOOTH_POINT_SIZE_RANGE constant (glGet function), 920

GL_SPECULAR parameter

glGetLight function, 945

glLight function, 992

glMaterial function, 1013

GL_SPHERE_MAP texture generation mode, 356–357

GL_SPOT_CUTOFF parameter

glGetLight function, 946

glLight function, 993

GL_SPOT_DIRECTION parameter

glGetLight function, 946

glLight function, 992

GL_SPOT_EXPONENT parameter

glGetLight function, 946

glLight function, 992

GL_SRC_ALPHA constant, 371

GL_SRC_COLOR constant, 371

GL_STACK_OVERFLOW error code, 68, 143

GL_STACK_UNDERFLOW error code, 68, 143

GL_STATIC_DRAW usage hint, 451

GL_STENCIL_BACK_FAIL constant (glGet function), 920

GL_STENCIL_BACK_FUNC constant (glGet function), 920

GL_STENCIL_BACK_PASS_DEPTH_FAIL constant (glGet function), 920

GL_STENCIL_BACK_PASS_DEPTH_PASS constant (glGet function), 920

GL_STENCIL_BACK_REF constant (glGet function), 920

GL_STENCIL_BACK_VALUE_MASK constant (glGet function), 920

GL_STENCIL_BACK_WRITEMASK constant (glGet function), 920

GL_STENCIL_BITS constant (glGet function), 920

GL_STENCIL_CLEAR_VALUE constant (glGet function), 921

GL_STENCIL_FAIL constant (glGet function), 921

GL_STENCIL_FUNC constant (glGet function), 921

GL_STENCIL_INDEX pixel format, 259

GL_STENCIL_PASS_DEPTH_FAIL constant (glGet function), 921

GL_STENCIL_PASS_DEPTH_PASS constant (glGet function), 921

GL_STENCIL_REF constant (glGet function), 921

GL_STENCIL_TEST constant (glGet function), 921

GL_STENCIL_VALUE_MASK constant (glGet function), 921

GL_STENCIL_WRITEMASK constant (glGet function), 921

GL_STEREO constant (glGet function), 921

GL_STREAM_DRAW usage hint, 451

GL_SUBPIXEL_BITS constant (glGet function), 921

GL_SUBTRACT constant, 370

GL_TABLE_TOO_LARGE error code, 68

gl_TexCoord[ ] built-in variable, 537

GL_TEXTURE constant, 370

GL_TEXTURE_1D constant (glGet function), 921

GL_TEXTURE_2D constant (glGet function), 922

GL_TEXTURE_3D constant (glGet function), 922

GL_TEXTURE_BINDING_1D constant (glGet function), 921

GL_TEXTURE_BINDING_2D constant (glGet function), 922

GL_TEXTURE_BINDING_3D constant (glGet function), 922

GL_TEXTURE_BINDING_CUBE_MAP constant (glGet function), 922

GL_TEXTURE_COMPRESSION_HINT constant (glGet function), 922

GL_TEXTURE_COORD_ARRAY constant (glGet function), 922

GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING constant (glGet function), 922

GL_TEXTURE_COORD_ARRAY_SIZE constant (glGet function), 922

GL_TEXTURE_COORD_ARRAY_STRIDE constant (glGet function), 922

GL_TEXTURE_COORD_ARRAY_TYPE constant (glGet function), 922

GL_TEXTURE_CUBE_MAP constant (glGet function), 922

GL_TEXTURE_GEN_Q constant (glGet function), 922

GL_TEXTURE_GEN_R constant (glGet function), 922

GL_TEXTURE_GEN_S constant (glGet function), 922

GL_TEXTURE_GEN_T constant (glGet function), 922

GL_TEXTURE_MATRIX constant (glGet function), 922

GL_TEXTURE_STACK_DEPTH constant (glGet function), 923

GL_TRANSPOSE_COLOR_MATRIX constant (glGet function), 923

GL_TRANSPOSE_MODELVIEW_MATRIX constant (glGet function), 923

GL_TRANSPOSE_PROJECTION_MATRIX constant (glGet function), 923

GL_TRANSPOSE_TEXTURE_MATRIX constant (glGet function), 923

GL_TRIANGLES primitive. See triangles, drawing

GL_TRIANGLE_FAN primitive, 97–98

GL_TRIANGLE_STRIP primitive, 96–97

GL_UNPACK_ALIGNMENT constant

glGet function, 923

glPixlStore function, 1034

GL_UNPACK_IMAGE_HEIGHT constant

glGet function, 923

glPixlStore function, 1033

GL_UNPACK_LSB_FIRST constant

glGet function, 923

glPixlStore function, 1033

GL_UNPACK_ROW_LENGTH constant

glGet function, 923

glPixlStore function, 1033

GL_UNPACK_SKIP_IMAGES constant (glGet function), 923

GL_UNPACK_SKIP_PIXELS constant

glGet function, 923

glPixlStore function, 1034

GL_UNPACK_SKIP_ROWS constant

glGet function, 923

glPixlStore function, 1034

GL_UNPACK_SWAP_BYTES constant

glGet function, 923

glPixlStore function, 1033

GL_UNSIGNED_BYTE data type, 259, 306

GL_UNSIGNED_INT data type, 259–260, 306

GL_UNSIGNED_SHORT data type, 259–260, 306

gl_Vertex built-in variable, 536

GL_VERTEX_ARRAY constant (glGet function), 923

GL_VERTEX_ARRAY_BUFFER_BINDING constant (glGet function), 923

GL_VERTEX_ARRAY_SIZE constant (glGet function), 923

GL_VERTEX_ARRAY_STRIDE constant (glGet function), 924

GL_VERTEX_ARRAY_TYPE constant (glGet function), 924

GL_VERTEX_PROGRAM_POINT_SIZE constant (glGet function), 924

GL_VERTEX_PROGRAM_TWO_SIDE constant (glGet function), 924

GL_VIEWPORT constant (glGet function), 924

GL_ZOOM_X constant (glGet function), 924

GL_ZOOM_Y constant (glGet function), 924

glAccum function, 244–246, 784–785

glActiveTexture function, 363, 785

glAlphaFunc function, 249, 506, 786

glAreTexturesResident function, 338, 787

glArrayElement function, 435, 788

glAttachShader function, 530, 747, 788–789

glBegin function, 422, 789–791

GL_LINES parameter, 85

GL_LINE_STRIP parameter, 87

GL_POINTS parameter, 78

GL_TRIANGLES parameter, 94

glBeginQuery function, 487, 791–792

glBindAttribLocation function, 747, 792–793

glBindBuffer function, 450–454, 602–603, 793–795

glBindFramebufferEXT function, 609

glBindRenderbufferEXT function, 609

glBindTexture function, 330, 337, 505, 795–796

glBitmap function, 257, 796–797

glBlendColor function, 234, 798

glBlendEquation function, 234, 798–799

glBlendEquationSeparate function, 799–801

glBlendFunc function, 230–232, 236, 801–803

glBlendFuncSeparate function, 234, 803–806

glBufferData function, 451, 602, 806–807

glBufferSubData function, 602, 807–808

glCallList function, 425, 808–809

glCallLists function, 425, 668, 698, 728, 809–810

glClear function, 52, 123, 810–811

glClearAccum function, 811–812

glClearColor function, 51–52, 812

glClearDepth function, 812–813

glClearIndex function, 813

glClearStencil function, 123, 813

glClientActiveTexture function, 434, 814

glClipPlane function, 814–815

glColor function, 182–183, 815–817

glColor3f function, 56, 182

glColor3ub function, 182

glColor4ub function, 742

glColorMask function, 248, 817–818

glColorMaterial function, 194, 205, 818–819

glColorPointer function, 433–434, 819–820

glColorSubTable function, 291, 820–821

glColorTable function, 289–290, 821–824

glColorTableParameter function, 291, 824–825

glColorTableParameterfv function, 291

glColorTableParameteriv function, 291

glCompileShader function, 529, 751, 825–826

glCompressedTexImage1D function, 349, 826–827

glCompressedTexImage2D function, 349, 827–829

glCompressedTexImage3D function, 350, 830–831

glCompressedTexSubImage function, 350

glCompressedTexSubImage1D function, 832–833

glCompressedTexSubImage2D function, 833–835

glCompressedTexSubImage3D function, 835–836

glConvolutionFilter1D function, 296, 836–838

glConvolutionFilter2D function, 293–294, 839–841

glConvolutionParameter function, 296, 841–842

glConvolutionParameterf function, 296

glConvolutionParameterfv function, 296

glConvolutionParameteri function, 296

glConvolutionParameteriv function, 296

glCopyColorSubTable function, 292, 843

glCopyColorTable function, 291, 843–845

glCopyConvolutionFilter1D function, 845–846

glCopyConvolutionFilter2D function, 295, 846–848

glCopyPixels function, 265, 848–850

glCopyTexImage function, 638

glCopyTexImage1D function, 307, 850–852

glCopyTexImage2D function, 307, 498–499, 574, 618, 852–854

glCopyTexSubImage function, 308

glCopyTexSubImage1D function, 308, 854–855

glCopyTexSubImage2D function, 308, 855–857

glCopyTexSubImage3D function, 308, 857–858

glCreateProgram function, 530, 747, 858–859

glCreateShader function, 528, 747, 859–860

glCullFace function, 860

glDeleteBuffers function, 602, 861

glDeleteFramebuffersEXT function, 609

glDeleteLists function, 425, 861

glDeleteProgram function, 530, 862

glDeleteQueries function, 487, 862–863

glDeleteRenderbuffersEXT function, 609

glDeleteShader function, 528, 863

glDeleteTextures function, 330, 863–864

glDepthFunc function, 249, 864–865

glDepthMask function, 119, 865

glDepthRange function, 865–866

glDetachShader function, 530, 866–867

glDisable function, 66, 91, 290

GL_ALPHA_TEST parameter, 249

GL_DITHER parameter, 250

GL_FOG parameter, 241

GL_MULTISAMPLE parameter, 239

GL_TEXTURE_GEN_* parameter, 351

glDisableClientState function, 432

glDrawArrays function, 435, 771, 867

glDrawBuffer function, 117, 266, 611, 706, 868–869

glDrawBuffers function, 611, 869–870

glDrawElements function, 438, 870–871

glDrawPixels function, 258, 279–280, 602–603, 871–876

glDrawRangeElements function, 439, 876–877

glDrawTex function, 745

glEdgeFlag function, 115–116, 878

glEdgeFlagPointer function, 433–434, 878–879

glee.h file, 43

glEnable function, 65, 91, 879–884

GL_ALPHA_TEST parameter, 249

GL_BLEND parameter, 230, 236

GL_COLOR_LOGIC_OP parameter, 248

GL_COLOR_MATERIAL parameter, 194

GL_COLOR_SUM parameter, 344

GL_DEPTH_TEST parameter, 103, 119

GL_DITHER parameter, 250

GL_FOG parameter, 241

GL_HISTOGRAM parameter, 298

GL_LIGHT0 parameter, 203

GL_LIGHTING parameter, 192

GL_LINE_STIPPLE parameter, 91

GL_MINMAX parameter, 301

GL_MULTISAMPLE parameter, 239

GL_NORMALIZE parameter, 201

GL_POINT_SPRITE parameter, 372

GL_POLYGON_STIPPLE parameter, 109

GL_RESCALE_NORMALS parameter, 201

GL_SCISSOR_TEST parameter, 120

GL_STENCIL_TEST parameter, 122

GL_TEXTURE_2D function, 316

GL_TEXTURE_CUBE_MAP parameter, 359

GL_TEXTURE_GEN_* parameter, 350

glEnableClientState function, 432–433, 884–885

glEnableVertexAttribArray function, 886

glEnd function, 422

GL_LINES parameter, 85

GL_LINE_STRIP parameter, 87

GL_POINTS parameter, 78

GL_TRIANGLES parameter, 95

glEndList function, 424–426

glEndQuery function, 487

glEvalCoord function, 396, 886–888

glEvalCoord1f function, 396

glEvalMesh function, 396, 400, 888–890

glEvalMesh2 function, 400

glEvalPoint function, 890–891

glFeedbackBuffer function, 471, 891–893

glFinish function, 424, 893

glFlush function, 53, 424, 893–894

glFog function, 242, 894–895

glFogCoord function, 896

glFogCoordf function, 244

glFogCoordPointer function, 433–434, 896–897

glFogf function, 242–243

glFogfv function, 242

glFogi function, 242, 244

glFogiv function, 242

GLFrame class, 162–164

glFramebufferRenderbufferEXT function, 610

glFramebufferTexture1DEXT function, 610

glFramebufferTexture2DEXT function, 610

glFramebufferTexture3DEXT function, 610

glFrontFace function, 96, 898

glFrustrumf function, 770

glFrustum function, 149, 898–899

glGenBuffers function, 450, 602, 900

glGenerateMipmapEXT function, 613, 618, 634

glGenFramebuffersEXT function, 609

glGenLists function, 425, 900–901

glGenQueries function, 486

glGenRenderbuffersEXT function, 609

glGenTextures function, 330, 337, 505, 902

glGet function, 143

glGet function, 902–924

C specification, 902

constants

GL_ACCUM_ALPHA_BITS, 903

GL_ACCUM_BLUE_BITS, 903

GL_ACCUM_CLEAR_VALUE, 903

GL_ACCUM_GREEN_BITS, 903

GL_ACCUM_RED_BITS, 903

GL_ACTIVE_TEXTURE, 903

GL_ALIASED_LINE_WIDTH_RANGE, 903

GL_ALIASED_POINT_SIZE_RANGE, 903

GL_ALPHA_BIAS, 903

GL_ALPHA_BITS, 903

GL_ALPHA_SCALE, 903

GL_ALPHA_TEST, 903

GL_ALPHA_TEST_FUNC, 903

GL_ALPHA_TEST_REF, 904

GL_ARRAY_BUFFER_BINDING, 904

GL_ATTRIB_STACK_DEPTH, 904

GL_AUTO_NORMAL, 904

GL_AUX_BUFFERS, 904

GL_BLEND, 904

GL_BLEND_COLOR, 904

GL_BLEND_DST_ALPHA, 904

GL_BLEND_DST_RGB, 904

GL_BLEND_EQUATION_ALPHA, 904

GL_BLEND_EQUATION_RGB, 904

GL_BLEND_SRC_ALPHA, 904

GL_BLEND_SRC_RGB, 904

GL_BLUE_BIAS, 904

GL_BLUE_BITS, 904

GL_BLUE_SCALE, 904

GL_CLIENT_ACTIVE_TEXTURE, 905

GL_CLIENT_ATTRIB_STACK_DEPTH, 905

GL_CLIP_PLANEi, 905

GL_COLOR_ARRAY, 905

GL_COLOR_ARRAY_BUFFER_BINDING, 905

GL_COLOR_ARRAY_SIZE, 905

GL_COLOR_ARRAY_STRIDE, 905

GL_COLOR_ARRAY_TYPE, 905

GL_COLOR_CLEAR_VALUE, 905

GL_COLOR_LOGIC_OP, 905

GL_COLOR_MATERIAL, 905

GL_COLOR_MATERIAL_FACE, 905

GL_COLOR_MATERIAL_PARAMETER, 905

GL_COLOR_MATRIX, 905

GL_COLOR_MATRIX_STACK_DEPTH, 905

GL_COLOR_SUM, 905

GL_COLOR_TABLE, 906

GL_COLOR_WRITEMASK, 906

GL_COMPRESSED_TEXTURE_FORMATS, 906

GL_CONVOLUTION_1D, 906

GL_CONVOLUTION_2D, 906

GL_CULL_FACE, 906

GL_CULL_FACE_MODE, 906

GL_CURRENT_COLOR, 906

GL_CURRENT_FOG_COORD, 906

GL_CURRENT_INDEX, 906

GL_CURRENT_NORMAL, 906

GL_CURRENT_PROGRAM, 906

GL_CURRENT_RASTER_COLOR, 906

GL_CURRENT_RASTER_DISTANCE, 906

GL_CURRENT_RASTER_INDEX, 906

GL_CURRENT_RASTER_POSITION, 906

GL_CURRENT_RASTER_POSITION_VALID, 907

GL_CURRENT_RASTER_SECONDARY_COLOR, 907

GL_CURRENT_RASTER_TEXTURE_COORDS, 907

GL_CURRENT_SECONDARY_COLOR, 907

GL_CURRENT_TEXTURE_COORDS, 907

GL_DEPTH_BIAS, 907

GL_DEPTH_BITS, 907

GL_DEPTH_CLEAR_VALUE, 907

GL_DEPTH_FUNC, 907

GL_DEPTH_RANGE, 907

GL_DEPTH_SCALE, 907

GL_DEPTH_TEST, 907

GL_DEPTH_WRITEMASK, 907

GL_DITHER, 907

GL_DOUBLEBUFFER, 907

GL_DRAW_BUFFER, 908

GL_DRAW_BUFFERi, 908

GL_EDGE_FLAG, 908

GL_EDGE_FLAG_ARRAY, 908

GL_EDGE_FLAG_ARRAY_BUFFER_BINDING, 908

GL_EDGE_FLAG_ARRAY_STRIDE, 908

GL_ELEMENT_ARRAY_BUFFER_BINDING, 908

GL_FEEDBACK_BUFFER_SIZE, 908

GL_FEEDBACK_BUFFER_TYPE, 908

GL_FOG, 908

GL_FOG_COLOR, 909

GL_FOG_COORD_ARRAY, 908

GL_FOG_COORD_ARRAY_BUFFER_BINDING, 908

GL_FOG_COORD_ARRAY_STRIDE, 908

GL_FOG_COORD_ARRAY_TYPE, 908

GL_FOG_COORD_SRC, 908

GL_FOG_DENSITY, 909

GL_FOG_END, 909

GL_FOG_HINT, 909

GL_FOG_INDEX, 909

GL_FOG_MODE, 909

GL_FOG_START, 909

GL_FRAGMENT_SHADER_DERIVATIVE_HINT, 909

GL_FRONT_FACE, 909

GL_GENERATE_MIPMAP_HINT, 909

GL_GREEN_BIAS, 909

GL_GREEN_BITS, 909

GL_GREEN_SCALE, 909

GL_HISTOGRAM, 909

GL_INDEX_ARRAY, 909

GL_INDEX_ARRAY_BUFFER_BINDING, 909

GL_INDEX_ARRAY_STRIDE, 909

GL_INDEX_ARRAY_TYPE, 910

GL_INDEX_BITS, 910

GL_INDEX_CLEAR_VALUE, 910

GL_INDEX_LOGIC_OP, 910

GL_INDEX_MODE, 910

GL_INDEX_OFFSET, 910

GL_INDEX_SHIFT, 910

GL_INDEX_WRITEMASK, 910

GL_LIGHTi, 910

GL_LIGHTING, 910

GL_LIGHT_MODEL_AMBIENT, 910

GL_LIGHT_MODEL_COLOR_CONTROL, 910

GL_LIGHT_MODEL_LOCAL_VIEWER, 910

GL_LIGHT_MODEL_TWO_SIDE, 910

GL_LINE_SMOOTH, 910

GL_LINE_SMOOTH_HINT, 910

GL_LINE_STIPPLE, 910

GL_LINE_STIPPLE_PATTERN, 911

GL_LINE_STIPPLE_REPEAT, 911

GL_LINE_WIDTH, 911

GL_LINE_WIDTH_GRANULARITY, 911

GL_LINE_WIDTH_RANGE, 911

GL_LIST_BASE, 911

GL_LIST_INDEX, 911

GL_LIST_MODE, 911

GL_LOGIC_OP_MODE, 911

GL_MAP1_COLOR_4, 911

GL_MAP1_GRID_DOMAIN, 911

GL_MAP1_GRID_SEGMENTS, 911

GL_MAP1_INDEX, 911

GL_MAP1_NORMAL, 911

GL_MAP1_TEXTURE_COORD_1, 911

GL_MAP1_TEXTURE_COORD_2, 911

GL_MAP1_TEXTURE_COORD_3, 911

GL_MAP1_TEXTURE_COORD_4, 911

GL_MAP1_VERTEX_3, 912

GL_MAP1_VERTEX_4, 912

GL_MAP2_COLOR_4, 912

GL_MAP2_GRID_DOMAIN, 912

GL_MAP2_GRID_SEGMENTS, 912

GL_MAP2_INDEX, 912

GL_MAP2_NORMAL, 912

GL_MAP2_TEXTURE_COORD_1, 912

GL_MAP2_TEXTURE_COORD_2, 912

GL_MAP2_TEXTURE_COORD_3, 912

GL_MAP2_TEXTURE_COORD_4, 912

GL_MAP2_VERTEX_3, 912

GL_MAP2_VERTEX_4, 912

GL_MAP_COLOR, 912

GL_MAP_STENCIL, 912

GL_MATRIX_MODE, 912

GL_MAX_3D_TEXTURE_SIZE, 912

GL_MAX_ATTRIB_STACK_DEPTH, 913

GL_MAX_CLIENT_ATTRIB_STACK_DEPTH, 913

GL_MAX_CLIP_PLANES, 913

GL_MAX_COLOR_MATRIX_STACK_DEPTH, 913

GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, 913

GL_MAX_CUBE_MAP_TEXTURE_SIZE, 913

GL_MAX_DRAW_BUFFERS, 913

GL_MAX_ELEMENTS_INDICES, 913

GL_MAX_ELEMENTS_VERTICES, 913

GL_MAX_EVAL_ORDER, 913

GL_MAX_FRAGMENT_UNIFORM_COMPONENTS, 913

GL_MAX_LIGHTS, 913

GL_MAX_LIST_NESTING, 913

GL_MAX_MODELVIEW_STACK_DEPTH, 913

GL_MAX_NAME_STACK_DEPTH, 913

GL_MAX_PIXEL_MAP_TABLE, 913

GL_MAX_PROJECTION_STACK_DEPTH, 914

GL_MAX_TEXTURE_COORDS, 914

GL_MAX_TEXTURE_IMAGE_UNITS, 914

GL_MAX_TEXTURE_LOD_BIAS, 914

GL_MAX_TEXTURE_SIZE, 914

GL_MAX_TEXTURE_STACK_DEPTH, 914

GL_MAX_TEXTURE_UNITS, 914

GL_MAX_VARYING_FLOATS, 914

GL_MAX_VERTEX_ATTRIBS, 914

GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, 914

GL_MAX_VERTEX_UNIFORM_COMPONENTS, 914

GL_MAX_VIEWPORT_DIMS, 914

GL_MINMAX, 914

GL_MODELVIEW_MATRIX, 914

GL_MODELVIEW_STACK_DEPTH, 914

GL_NAME_STACK_DEPTH, 915

GL_NORMALIZE, 915

GL_NORMAL_ARRAY, 915

GL_NORMAL_ARRAY_BUFFER_BINDING, 915

GL_NORMAL_ARRAY_STRIDE, 915

GL_NORMAL_ARRAY_TYPE, 915

GL_NUM_COMPRESSED_TEXTURE_FORMATS, 915

GL_PACK_ALIGNMENT, 915

GL_PACK_IMAGE_HEIGHT, 915

GL_PACK_LSB_FIRST, 915

GL_PACK_ROW_LENGTH, 915

GL_PACK_SKIP_IMAGES, 915

GL_PACK_SKIP_PIXELS, 915

GL_PACK_SKIP_ROWS, 915

GL_PACK_SWAP_BYTES, 915

GL_PERSPECTIVE_CORRECTION_HINT, 915

GL_PIXEL_MAP_A_TO_A_SIZE, 916

GL_PIXEL_MAP_B_TO_B_SIZE, 916

GL_PIXEL_MAP_G_TO_G_SIZE, 916

GL_PIXEL_MAP_I_TO_A_SIZE, 916

GL_PIXEL_MAP_I_TO_B_SIZE, 916

GL_PIXEL_MAP_I_TO_G_SIZE, 916

GL_PIXEL_MAP_I_TO_I_SIZE, 916

GL_PIXEL_MAP_I_TO_R_SIZE, 916

GL_PIXEL_MAP_R_TO_R_SIZE, 916

GL_PIXEL_MAP_S_TO_S_SIZE, 916

GL_PIXEL_PACK_BUFFER_BINDING, 916

GL_PIXEL_UNPACK_BUFFER_BINDING, 916

GL_POINT_DISTANCE_ATTENUATION, 916

GL_POINT_FADE_THRESHOLD_SIZE, 916

GL_POINT_SIZE, 916

GL_POINT_SIZE_GRANULARITY, 916

GL_POINT_SIZE_MAX, 916

GL_POINT_SIZE_MIN, 917

GL_POINT_SIZE_RANGE, 917

GL_POINT_SMOOTH, 917

GL_POINT_SMOOTH_HINT, 917

GL_POINT_SPRITE, 917

GL_POLYGON_MODE, 917

GL_POLYGON_OFFSET_FACTOR, 917

GL_POLYGON_OFFSET_FILL, 917

GL_POLYGON_OFFSET_LINE, 917

GL_POLYGON_OFFSET_POINT, 917

GL_POLYGON_OFFSET_UNITS, 917

GL_POLYGON_SMOOTH, 917

GL_POLYGON_SMOOTH_HINT, 917

GL_POLYGON_STIPPLE, 917

GL_POST_COLOR_MATRIX_ALPHA_BIAS, 918

GL_POST_COLOR_MATRIX_ALPHA_SCALE, 918

GL_POST_COLOR_MATRIX_BLUE_BIAS, 918

GL_POST_COLOR_MATRIX_BLUE_SCALE, 918

GL_POST_COLOR_MATRIX_COLOR_TABLE, 917

GL_POST_COLOR_MATRIX_GREEN_BIAS, 918

GL_POST_COLOR_MATRIX_GREEN_SCALE, 918

GL_POST_COLOR_MATRIX_RED_BIAS, 917

GL_POST_COLOR_MATRIX_RED_SCALE, 918

GL_POST_CONVOLUTION_ALPHA_BIAS, 918

GL_POST_CONVOLUTION_ALPHA_SCALE, 918

GL_POST_CONVOLUTION_BLUE_BIAS, 918

GL_POST_CONVOLUTION_BLUE_SCALE, 918

GL_POST_CONVOLUTION_COLOR_TABLE, 918

GL_POST_CONVOLUTION_GREEN_BIAS, 918

GL_POST_CONVOLUTION_GREEN_SCALE, 918

GL_POST_CONVOLUTION_RED_BIAS, 918

GL_POST_CONVOLUTION_RED_SCALE, 918

GL_PROJECTION_MATRIX, 918

GL_PROJECTION_STACK_DEPTH, 919

GL_READ_BUFFER, 919

GL_RED_BIAS, 919

GL_RED_BITS, 919

GL_RED_SCALE, 919

GL_RENDER_MODE, 919

GL_RESCALE_NORMAL, 919

GL_RGBA_MODE, 919

GL_SAMPLES, 919

GL_SAMPLE_BUFFERS, 919

GL_SAMPLE_COVERAGE_INVERT, 919

GL_SAMPLE_COVERAGE_VALUE, 919

GL_SCISSOR_BOX, 919

GL_SCISSOR_TEST, 919

GL_SECONDARY_COLOR_ARRAY, 919

GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING, 919

GL_SECONDARY_COLOR_ARRAY_SIZE, 919

GL_SECONDARY_COLOR_ARRAY_STRIDE, 920

GL_SECONDARY_COLOR_ARRAY_TYPE, 920

GL_SELECTION_BUFFER_SIZE, 920

GL_SEPARABLE_2D, 920

GL_SHADE_MODEL, 920

GL_SMOOTH_LINE_WIDTH_GRANULARITY, 920

GL_SMOOTH_LINE_WIDTH_RANGE, 920

GL_SMOOTH_POINT_SIZE_GRANULARITY, 920

GL_SMOOTH_POINT_SIZE_RANGE, 920

GL_STENCIL_BACK_FAIL, 920

GL_STENCIL_BACK_FUNC, 920

GL_STENCIL_BACK_PASS_DEPTH_FAIL, 920

GL_STENCIL_BACK_PASS_DEPTH_PASS, 920

GL_STENCIL_BACK_REF, 920

GL_STENCIL_BACK_VALUE_MASK, 920

GL_STENCIL_BACK_WRITEMASK, 920

GL_STENCIL_BITS, 920

GL_STENCIL_CLEAR_VALUE, 921

GL_STENCIL_FAIL, 921

GL_STENCIL_FUNC, 921

GL_STENCIL_PASS_DEPTH_FAIL, 921

GL_STENCIL_PASS_DEPTH_PASS, 921

GL_STENCIL_REF, 921

GL_STENCIL_TEST, 921

GL_STENCIL_VALUE_MASK, 921

GL_STENCIL_WRITEMASK, 921

GL_STEREO, 921

GL_SUBPIXEL_BITS, 921

GL_TEXTURE_1D, 921

GL_TEXTURE_2D, 922

GL_TEXTURE_3D, 922

GL_TEXTURE_BINDING_1D, 921

GL_TEXTURE_BINDING_2D, 922

GL_TEXTURE_BINDING_3D, 922

GL_TEXTURE_BINDING_CUBE_MAP, 922

GL_TEXTURE_COMPRESSION_HINT, 922

GL_TEXTURE_COORD_ARRAY, 922

GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING, 922

GL_TEXTURE_COORD_ARRAY_SIZE, 922

GL_TEXTURE_COORD_ARRAY_STRIDE, 922

GL_TEXTURE_COORD_ARRAY_TYPE, 922

GL_TEXTURE_CUBE_MAP, 922

GL_TEXTURE_GEN_Q, 922

GL_TEXTURE_GEN_R, 922

GL_TEXTURE_GEN_S, 922

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset