Module BGL
[hide private]
[frames] | no frames]

Source Code for Module BGL

   1  # Blender.BGL module (OpenGL wrapper) 
   2   
   3  """ 
   4  The Blender.BGL submodule (the OpenGL wrapper). 
   5   
   6  B{New}: some GLU functions: L{gluLookAt}, etc. 
   7   
   8  The Blender.BGL submodule 
   9  ========================= 
  10  (when accessing it from the Game Engine use BGL instead of Blender.BGL) 
  11   
  12  This module wraps OpenGL constants and functions, making them available from 
  13  within Blender Python. 
  14   
  15  The complete list can be retrieved from the module itself, by listing its 
  16  contents: dir(Blender.BGL).  A simple search on the net can point to more  
  17  than enough material to teach OpenGL programming, from books to many  
  18  collections of tutorials. 
  19   
  20  The "red book": "I{OpenGL Programming Guide: The Official Guide to Learning 
  21  OpenGL}" and the online NeHe tutorials are two of the best resources. 
  22   
  23  Example:: 
  24    import Blender 
  25    from Blender.BGL import * 
  26    from Blender import Draw 
  27    R = G = B = 0 
  28    A = 1 
  29    title = "Testing BGL  + Draw" 
  30    instructions = "Use mouse buttons or wheel to change the background color." 
  31    quitting = " Press ESC or q to quit." 
  32    len1 = Draw.GetStringWidth(title) 
  33    len2 = Draw.GetStringWidth(instructions + quitting) 
  34    # 
  35    def show_win(): 
  36      glClearColor(R,G,B,A)                # define color used to clear buffers  
  37      glClear(GL_COLOR_BUFFER_BIT)         # use it to clear the color buffer 
  38      glColor3f(0.35,0.18,0.92)            # define default color 
  39      glBegin(GL_POLYGON)                  # begin a vertex data list 
  40      glVertex2i(165, 158) 
  41      glVertex2i(252, 55) 
  42      glVertex2i(104, 128) 
  43      glEnd() 
  44      glColor3f(0.4,0.4,0.4)               # change default color 
  45      glRecti(40, 96, 60+len1, 113) 
  46      glColor3f(1,1,1) 
  47      glRasterPos2i(50,100)                # move cursor to x = 50, y = 100 
  48      Draw.Text(title)                     # draw this text there 
  49      glRasterPos2i(350,40)                # move cursor again 
  50      Draw.Text(instructions + quitting)   # draw another msg 
  51      glBegin(GL_LINE_LOOP)                # begin a vertex-data list 
  52      glVertex2i(46,92) 
  53      glVertex2i(120,92) 
  54      glVertex2i(120,115) 
  55      glVertex2i(46,115) 
  56      glEnd()                              # close this list 
  57    # 
  58    def ev(evt, val):                      # event callback for Draw.Register() 
  59      global R,G,B,A                       # ... it handles input events 
  60      if evt == Draw.ESCKEY or evt == Draw.QKEY: 
  61        Draw.Exit()                        # this quits the script 
  62      elif not val: return 
  63      elif evt == Draw.LEFTMOUSE: R = 1 - R 
  64      elif evt == Draw.MIDDLEMOUSE: G = 1 - G 
  65      elif evt == Draw.RIGHTMOUSE: B = 1 - B 
  66      elif evt == Draw.WHEELUPMOUSE: 
  67        R += 0.1 
  68        if R > 1: R = 1 
  69      elif evt == Draw.WHEELDOWNMOUSE: 
  70        R -= 0.1 
  71        if R < 0: R = 0 
  72      else: 
  73        return                             # don't redraw if nothing changed 
  74      Draw.Redraw(1)                       # make changes visible. 
  75    # 
  76    Draw.Register(show_win, ev, None)      # start the main loop 
  77   
  78  @note: you can use the L{Image} module and L{Image.Image} BPy object to load 
  79      and set textures.  See L{Image.Image.glLoad} and L{Image.Image.glFree}, 
  80      for example. 
  81  @see: U{www.opengl.org} 
  82  @see: U{nehe.gamedev.net} 
  83  """ 
  84   
85 -def glAccum(op, value):
86 """ 87 Operate on the accumulation buffer 88 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/accum.html} 89 90 @type op: Enumerated constant 91 @param op: The accumulation buffer operation. 92 @type value: float 93 @param value: a value used in the accumulation buffer operation. 94 """
95
96 -def glAlphaFunc(func, ref):
97 """ 98 Specify the alpha test function 99 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/alphafunc.html} 100 101 @type func: Enumerated constant 102 @param func: Specifies the alpha comparison function. 103 @type ref: float 104 @param ref: The reference value that incoming alpha values are compared to. 105 Clamped between 0 and 1. 106 """
107
108 -def glAreTexturesResident(n, textures, residences):
109 """ 110 Determine if textures are loaded in texture memory 111 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/aretexturesresident.html} 112 113 @type n: int 114 @param n: Specifies the number of textures to be queried. 115 @type textures: Buffer object I{type GL_INT} 116 @param textures: Specifies an array containing the names of the textures to be queried 117 @type residences: Buffer object I{type GL_INT}(boolean) 118 @param residences: An array in which the texture residence status in returned.The residence status of a 119 texture named by an element of textures is returned in the corresponding element of residences. 120 """
121
122 -def glBegin(mode):
123 """ 124 Delimit the vertices of a primitive or a group of like primatives 125 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/begin.html} 126 127 @type mode: Enumerated constant 128 @param mode: Specifies the primitive that will be create from vertices between glBegin and 129 glEnd. 130 """
131
132 -def glBindTexture(target, texture):
133 """ 134 Bind a named texture to a texturing target 135 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/bindtexture.html} 136 137 @type target: Enumerated constant 138 @param target: Specifies the target to which the texture is bound. 139 @type texture: unsigned int 140 @param texture: Specifies the name of a texture. 141 """
142
143 -def glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap):
144 """ 145 Draw a bitmap 146 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/bitmap.html} 147 148 @type width, height: int 149 @param width, height: Specify the pixel width and height of the bitmap image. 150 @type xorig, yorig: float 151 @param xorig, yorig: Specify the location of the origin in the bitmap image. The origin is measured 152 from the lower left corner of the bitmap, with right and up being the positive axes. 153 @type xmove, ymove: float 154 @param xmove, ymove: Specify the x and y offsets to be added to the current raster position after 155 the bitmap is drawn. 156 @type bitmap: Buffer object I{type GL_BYTE} 157 @param bitmap: Specifies the address of the bitmap image. 158 """
159
160 -def glBlendFunc(sfactor, dfactor):
161 """ 162 Specify pixel arithmetic 163 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/blendfunc.html} 164 165 @type sfactor: Enumerated constant 166 @param sfactor: Specifies how the red, green, blue, and alpha source blending factors are 167 computed. 168 @type dfactor: Enumerated constant 169 @param dfactor: Specifies how the red, green, blue, and alpha destination blending factors are 170 computed. 171 """
172
173 -def glCallList(list):
174 """ 175 Execute a display list 176 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/calllist.html} 177 178 @type list: unsigned int 179 @param list: Specifies the integer name of the display list to be executed. 180 """
181
182 -def glCallLists(n, type, lists):
183 """ 184 Execute a list of display lists 185 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/calllists.html} 186 187 @type n: int 188 @param n: Specifies the number of display lists to be executed. 189 @type type: Enumerated constant 190 @param type: Specifies the type of values in lists. 191 @type lists: Buffer object 192 @param lists: Specifies the address of an array of name offsets in the display list. 193 The pointer type is void because the offsets can be bytes, shorts, ints, or floats, 194 depending on the value of type. 195 """
196
197 -def glClear(mask):
198 """ 199 Clear buffers to preset values 200 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/clear.html} 201 202 @type mask: Enumerated constant(s) 203 @param mask: Bitwise OR of masks that indicate the buffers to be cleared. 204 """
205
206 -def glClearAccum(red, green, blue, alpha):
207 """ 208 Specify clear values for the accumulation buffer 209 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/clearaccum.html} 210 211 @type red, green, blue, alpha: float 212 @param red, green, blue, alpha: Specify the red, green, blue, and alpha values used when the 213 accumulation buffer is cleared. The initial values are all 0. 214 """
215
216 -def glClearColor(red, green, blue, alpha):
217 """ 218 Specify clear values for the color buffers 219 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/clearcolor.html} 220 221 @type red, green, blue, alpha: float 222 @param red, green, blue, alpha: Specify the red, green, blue, and alpha values used when the 223 color buffers are cleared. The initial values are all 0. 224 """
225
226 -def glClearDepth(depth):
227 """ 228 Specify the clear value for the depth buffer 229 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/cleardepth.html} 230 231 @type depth: int 232 @param depth: Specifies the depth value used when the depth buffer is cleared. 233 The initial value is 1. 234 """
235
236 -def glClearIndex(c):
237 """ 238 Specify the clear value for the color index buffers 239 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/clearindex.html} 240 241 @type c: float 242 @param c: Specifies the index used when the color index buffers are cleared. 243 The initial value is 0. 244 """
245
246 -def glClearStencil(s):
247 """ 248 Specify the clear value for the stencil buffer 249 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/clearstencil.html} 250 251 @type s: int 252 @param s: Specifies the index used when the stencil buffer is cleared. The initial value is 0. 253 """
254
255 -def glClipPlane (plane, equation):
256 """ 257 Specify a plane against which all geometry is clipped 258 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/clipplane.html} 259 260 @type plane: Enumerated constant 261 @param plane: Specifies which clipping plane is being positioned. 262 @type equation: Buffer object I{type GL_FLOAT}(double) 263 @param equation: Specifies the address of an array of four double- precision floating-point 264 values. These values are interpreted as a plane equation. 265 """
266
267 -def glColor (red, green, blue, alpha):
268 """ 269 B{glColor3b, glColor3d, glColor3f, glColor3i, glColor3s, glColor3ub, glColor3ui, glColor3us, 270 glColor4b, glColor4d, glColor4f, glColor4i, glColor4s, glColor4ub, glColor4ui, glColor4us, 271 glColor3bv, glColor3dv, glColor3fv, glColor3iv, glColor3sv, glColor3ubv, glColor3uiv, 272 glColor3usv, glColor4bv, glColor4dv, glColor4fv, glColor4iv, glColor4sv, glColor4ubv, 273 glColor4uiv, glColor4usv} 274 275 Set a new color. 276 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/color.html} 277 278 @type red, green, blue, alpha: Depends on function prototype. 279 @param red, green, blue: Specify new red, green, and blue values for the current color. 280 @param alpha: Specifies a new alpha value for the current color. Included only in the 281 four-argument glColor4 commands. (With '4' colors only) 282 """
283
284 -def glColorMask(red, green, blue, alpha):
285 """ 286 Enable and disable writing of frame buffer color components 287 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/colormask.html} 288 289 @type red, green, blue, alpha: int (boolean) 290 @param red, green, blue, alpha: Specify whether red, green, blue, and alpha can or cannot be 291 written into the frame buffer. The initial values are all GL_TRUE, indicating that the 292 color components can be written. 293 """
294
295 -def glColorMaterial(face, mode):
296 """ 297 Cause a material color to track the current color 298 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/colormaterial.html} 299 300 @type face: Enumerated constant 301 @param face: Specifies whether front, back, or both front and back material parameters should 302 track the current color. 303 @type mode: Enumerated constant 304 @param mode: Specifies which of several material parameters track the current color. 305 """
306
307 -def glCopyPixels(x, y, width, height, type):
308 """ 309 Copy pixels in the frame buffer 310 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/copypixels.html} 311 312 @type x, y: int 313 @param x, y: Specify the window coordinates of the lower left corner of the rectangular 314 region of pixels to be copied. 315 @type width, height: int 316 @param width,height: Specify the dimensions of the rectangular region of pixels to be copied. 317 Both must be non-negative. 318 @type type: Enumerated constant 319 @param type: Specifies whether color values, depth values, or stencil values are to be copied. 320 """
321
322 -def glCullFace(mode):
323 """ 324 Specify whether front- or back-facing facets can be culled 325 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/cullface.html} 326 327 @type mode: Enumerated constant 328 @param mode: Specifies whether front- or back-facing facets are candidates for culling. 329 """
330
331 -def glDeleteLists(list, range):
332 """ 333 Delete a contiguous group of display lists 334 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/deletelists.html} 335 336 @type list: unsigned int 337 @param list: Specifies the integer name of the first display list to delete 338 @type range: int 339 @param range: Specifies the number of display lists to delete 340 """
341
342 -def glDeleteTextures(n, textures):
343 """ 344 Delete named textures 345 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/deletetextures.html} 346 347 @type n: int 348 @param n: Specifies the number of textures to be deleted 349 @type textures: Buffer I{GL_INT} 350 @param textures: Specifies an array of textures to be deleted 351 """
352
353 -def glDepthFunc(func):
354 """ 355 Specify the value used for depth buffer comparisons 356 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/depthfunc.html} 357 358 @type func: Enumerated constant 359 @param func: Specifies the depth comparison function. 360 """
361
362 -def glDepthMask(flag):
363 """ 364 Enable or disable writing into the depth buffer 365 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/depthmask.html} 366 367 @type flag: int (boolean) 368 @param flag: Specifies whether the depth buffer is enabled for writing. If flag is GL_FALSE, 369 depth buffer writing is disabled. Otherwise, it is enabled. Initially, depth buffer 370 writing is enabled. 371 """
372
373 -def glDepthRange(zNear, zFar):
374 """ 375 Specify mapping of depth values from normalized device coordinates to window coordinates 376 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/depthrange.html} 377 378 @type zNear: int 379 @param zNear: Specifies the mapping of the near clipping plane to window coordinates. 380 The initial value is 0. 381 @type zFar: int 382 @param zFar: Specifies the mapping of the far clipping plane to window coordinates. 383 The initial value is 1. 384 """
385
386 -def glDisable(cap):
387 """ 388 Disable server-side GL capabilities 389 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/enable.html} 390 391 @type cap: Enumerated constant 392 @param cap: Specifies a symbolic constant indicating a GL capability. 393 """
394
395 -def glDrawBuffer(mode):
396 """ 397 Specify which color buffers are to be drawn into 398 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/drawbuffer.html} 399 400 @type mode: Enumerated constant 401 @param mode: Specifies up to four color buffers to be drawn into. 402 """
403
404 -def glDrawPixels(width, height, format, type, pixels):
405 """ 406 Write a block of pixels to the frame buffer 407 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/drawpixels.html} 408 409 @type width, height: int 410 @param width, height: Specify the dimensions of the pixel rectangle to be 411 written into the frame buffer. 412 @type format: Enumerated constant 413 @param format: Specifies the format of the pixel data. 414 @type type: Enumerated constant 415 @param type: Specifies the data type for pixels. 416 @type pixels: Buffer object 417 @param pixels: Specifies a pointer to the pixel data. 418 """
419
420 -def glEdgeFlag (flag):
421 """ 422 B{glEdgeFlag, glEdgeFlagv} 423 424 Flag edges as either boundary or non-boundary 425 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/edgeflag.html} 426 427 @type flag: Depends of function prototype 428 @param flag: Specifies the current edge flag value.The initial value is GL_TRUE. 429 """
430
431 -def glEnable(cap):
432 """ 433 Enable server-side GL capabilities 434 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/enable.html} 435 436 @type cap: Enumerated constant 437 @param cap: Specifies a symbolic constant indicating a GL capability. 438 """
439
440 -def glEnd():
441 """ 442 Delimit the vertices of a primitive or group of like primitives 443 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/begin.html} 444 """
445
446 -def glEndList():
447 """ 448 Create or replace a display list 449 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/newlist.html} 450 """
451
452 -def glEvalCoord (u,v):
453 """ 454 B{glEvalCoord1d, glEvalCoord1f, glEvalCoord2d, glEvalCoord2f, glEvalCoord1dv, glEvalCoord1fv, 455 glEvalCoord2dv, glEvalCoord2fv} 456 457 Evaluate enabled one- and two-dimensional maps 458 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/evalcoord.html} 459 460 @type u: Depends on function prototype. 461 @param u: Specifies a value that is the domain coordinate u to the basis function defined 462 in a previous glMap1 or glMap2 command. If the function prototype ends in 'v' then 463 u specifies a pointer to an array containing either one or two domain coordinates. The first 464 coordinate is u. The second coordinate is v, which is present only in glEvalCoord2 versions. 465 @type v: Depends on function prototype. (only with '2' prototypes) 466 @param v: Specifies a value that is the domain coordinate v to the basis function defined 467 in a previous glMap2 command. This argument is not present in a glEvalCoord1 command. 468 """
469
470 -def glEvalMesh (mode, i1, i2):
471 """ 472 B{glEvalMesh1 or glEvalMesh2} 473 474 Compute a one- or two-dimensional grid of points or lines 475 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/evalmesh.html} 476 477 @type mode: Enumerated constant 478 @param mode: In glEvalMesh1, specifies whether to compute a one-dimensional 479 mesh of points or lines. 480 @type i1, i2: int 481 @param i1, i2: Specify the first and last integer values for the grid domain variable i. 482 """
483
484 -def glEvalPoint (i, j):
485 """ 486 B{glEvalPoint1 and glEvalPoint2} 487 488 Generate and evaluate a single point in a mesh 489 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/evalpoint.html} 490 491 @type i: int 492 @param i: Specifies the integer value for grid domain variable i. 493 @type j: int (only with '2' prototypes) 494 @param j: Specifies the integer value for grid domain variable j (glEvalPoint2 only). 495 """
496
497 -def glFeedbackBuffer (size, type, buffer):
498 """ 499 Controls feedback mode 500 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/feedbackbuffer.html} 501 502 @type size: int 503 @param size:Specifies the maximum number of values that can be written into buffer. 504 @type type: Enumerated constant 505 @param type:Specifies a symbolic constant that describes the information that 506 will be returned for each vertex. 507 @type buffer: Buffer object I{GL_FLOAT} 508 @param buffer: Returns the feedback data. 509 """
510
511 -def glFinish():
512 """ 513 Block until all GL execution is complete 514 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/finish.html} 515 """
516
517 -def glFlush():
518 """ 519 Force Execution of GL commands in finite time 520 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/flush.html} 521 """
522
523 -def glFog (pname, param):
524 """ 525 B{glFogf, glFogi, glFogfv, glFogiv} 526 527 Specify fog parameters 528 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/fog.html} 529 530 @type pname: Enumerated constant 531 @param pname: Specifies a single-valued fog parameter. If the function prototype 532 ends in 'v' specifies a fog parameter. 533 @type param: Depends on function prototype. 534 @param param: Specifies the value or values to be assigned to pname. GL_FOG_COLOR 535 requires an array of four values. All other parameters accept an array containing 536 only a single value. 537 """
538
539 -def glFrontFace(mode):
540 """ 541 Define front- and back-facing polygons 542 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/frontface.html} 543 544 @type mode: Enumerated constant 545 @param mode: Specifies the orientation of front-facing polygons. 546 """
547
548 -def glFrustum(left, right, bottom, top, zNear, zFar):
549 """ 550 Multiply the current matrix by a perspective matrix 551 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/frustum.html} 552 553 @type left, right: double (float) 554 @param left, right: Specify the coordinates for the left and right vertical 555 clipping planes. 556 @type top, bottom: double (float) 557 @param top, bottom: Specify the coordinates for the bottom and top horizontal 558 clipping planes. 559 @type zNear, zFar: double (float) 560 @param zNear, zFar: Specify the distances to the near and far depth clipping planes. 561 Both distances must be positive. 562 """
563
564 -def glGenLists(range):
565 """ 566 Generate a contiguous set of empty display lists 567 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/genlists.html} 568 569 @type range: int 570 @param range: Specifies the number of contiguous empty display lists to be generated. 571 """
572
573 -def glGenTextures(n, textures):
574 """ 575 Generate texture names 576 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/gentextures.html} 577 578 @type n: int 579 @param n: Specifies the number of textures name to be generated. 580 @type textures: Buffer object I{type GL_INT} 581 @param textures: Specifies an array in which the generated textures names are stored. 582 """
583
584 -def glGet (pname, param):
585 """ 586 B{glGetBooleanv, glGetfloatv, glGetFloatv, glGetIntegerv} 587 588 Return the value or values of a selected parameter 589 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/get.html} 590 591 @type pname: Enumerated constant 592 @param pname: Specifies the parameter value to be returned. 593 @type param: Depends on function prototype. 594 @param param: Returns the value or values of the specified parameter. 595 """
596
597 -def glGetClipPlane(plane, equation):
598 """ 599 Return the coefficients of the specified clipping plane 600 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/getclipplane.html} 601 602 @type plane: Enumerated constant 603 @param plane: Specifies a clipping plane. The number of clipping planes depends on the 604 implementation, but at least six clipping planes are supported. They are identified by 605 symbolic names of the form GL_CLIP_PLANEi where 0 < i < GL_MAX_CLIP_PLANES. 606 @type equation: Buffer object I{type GL_FLOAT} 607 @param equation: Returns four float (double)-precision values that are the coefficients of the 608 plane equation of plane in eye coordinates. The initial value is (0, 0, 0, 0). 609 """
610
611 -def glGetError():
612 """ 613 Return error information 614 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/geterror.html} 615 """
616
617 -def glGetLight (light, pname, params):
618 """ 619 B{glGetLightfv and glGetLightiv} 620 621 Return light source parameter values 622 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/getlight.html} 623 624 @type light: Enumerated constant 625 @param light: Specifies a light source. The number of possible lights depends on the 626 implementation, but at least eight lights are supported. They are identified by symbolic 627 names of the form GL_LIGHTi where 0 < i < GL_MAX_LIGHTS. 628 @type pname: Enumerated constant 629 @param pname: Specifies a light source parameter for light. 630 @type params: Buffer object. Depends on function prototype. 631 @param params: Returns the requested data. 632 """
633
634 -def glGetMap (target, query, v):
635 """ 636 B{glGetMapdv, glGetMapfv, glGetMapiv} 637 638 Return evaluator parameters 639 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/getmap.html} 640 641 @type target: Enumerated constant 642 @param target: Specifies the symbolic name of a map. 643 @type query: Enumerated constant 644 @param query: Specifies which parameter to return. 645 @type v: Buffer object. Depends on function prototype. 646 @param v: Returns the requested data. 647 """
648
649 -def glGetMaterial (face, pname, params):
650 """ 651 B{glGetMaterialfv, glGetMaterialiv} 652 653 Return material parameters 654 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/getmaterial.html} 655 656 @type face: Enumerated constant 657 @param face: Specifies which of the two materials is being queried. 658 representing the front and back materials, respectively. 659 @type pname: Enumerated constant 660 @param pname: Specifies the material parameter to return. 661 @type params: Buffer object. Depends on function prototype. 662 @param params: Returns the requested data. 663 """
664
665 -def glGetPixelMap (map, values):
666 """ 667 B{glGetPixelMapfv, glGetPixelMapuiv, glGetPixelMapusv} 668 669 Return the specified pixel map 670 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/getpixelmap.html} 671 672 @type map: Enumerated constant 673 @param map: Specifies the name of the pixel map to return. 674 @type values: Buffer object. Depends on function prototype. 675 @param values: Returns the pixel map contents. 676 """
677
678 -def glGetPolygonStipple(mask):
679 """ 680 Return the polygon stipple pattern 681 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/getpolygonstipple.html} 682 683 @type mask: Buffer object I{type GL_BYTE} 684 @param mask: Returns the stipple pattern. The initial value is all 1's. 685 """
686
687 -def glGetString(name):
688 """ 689 Return a string describing the current GL connection 690 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/getstring.html} 691 692 @type name: Enumerated constant 693 @param name: Specifies a symbolic constant. 694 695 """
696
697 -def glGetTexEnv (target, pname, params):
698 """ 699 B{glGetTexEnvfv, glGetTexEnviv} 700 701 Return texture environment parameters 702 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/gettexenv.html} 703 704 @type target: Enumerated constant 705 @param target: Specifies a texture environment. Must be GL_TEXTURE_ENV. 706 @type pname: Enumerated constant 707 @param pname: Specifies the symbolic name of a texture environment parameter. 708 @type params: Buffer object. Depends on function prototype. 709 @param params: Returns the requested data. 710 """
711
712 -def glGetTexGen (coord, pname, params):
713 """ 714 B{glGetTexGendv, glGetTexGenfv, glGetTexGeniv} 715 716 Return texture coordinate generation parameters 717 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/gettexgen.html} 718 719 @type coord: Enumerated constant 720 @param coord: Specifies a texture coordinate. 721 @type pname: Enumerated constant 722 @param pname: Specifies the symbolic name of the value(s) to be returned. 723 @type params: Buffer object. Depends on function prototype. 724 @param params: Returns the requested data. 725 """
726
727 -def glGetTexImage(target, level, format, type, pixels):
728 """ 729 Return a texture image 730 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/getteximage.html} 731 732 @type target: Enumerated constant 733 @param target: Specifies which texture is to be obtained. 734 @type level: int 735 @param level: Specifies the level-of-detail number of the desired image. 736 Level 0 is the base image level. Level n is the nth mipmap reduction image. 737 @type format: Enumerated constant 738 @param format: Specifies a pixel format for the returned data. 739 @type type: Enumerated constant 740 @param type: Specifies a pixel type for the returned data. 741 @type pixels: Buffer object. 742 @param pixels: Returns the texture image. Should be a pointer to an array of the 743 type specified by type 744 """
745
746 -def glGetTexLevelParameter (target, level, pname, params):
747 """ 748 B{glGetTexLevelParameterfv, glGetTexLevelParameteriv} 749 750 return texture parameter values for a specific level of detail 751 @see: U{opengl.org/developers/documentation/man_pages/hardcopy/GL/html/gl/gettexlevelparameter.html} 752 753 @type target: Enumerated constant 754 @param target: Specifies the symbolic name of the target texture. 755 @type level: int 756 @param level: Specifies the level-of-detail number of the desired image. 757 Level 0 is the base image level. Level n is the nth mipmap reduction image. 758 @type pname: Enumerated constant 759 @param pname: Specifies the symbolic name of a texture parameter. 760 @type params: Buffer object. Depends on function prototype. 761 @param params: Returns the requested data. 762 """
763
764 -def glGetTexParameter (target, pname, params):
765 """ 766 B{glGetTexParameterfv, glGetTexParameteriv} 767 768 Return texture parameter values 769 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/gettexparameter.html} 770 771 @type target: Enumerated constant 772 @param target: Specifies the symbolic name of the target texture. 773 @type pname: Enumerated constant 774 @param pname: Specifies the symbolic name the target texture. 775 @type params: Buffer object. Depends on function prototype. 776 @param params: Returns the texture parameters. 777 """
778
779 -def glHint(target, mode):
780 """ 781 Specify implementation-specific hints 782 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/hint.html} 783 784 @type target: Enumerated constant 785 @param target: Specifies a symbolic constant indicating the behavior to be 786 controlled. 787 @type mode: Enumerated constant 788 @param mode: Specifies a symbolic constant indicating the desired behavior. 789 """
790
791 -def glIndex (c):
792 """ 793 B{glIndexd, glIndexf, glIndexi, glIndexs, glIndexdv, glIndexfv, glIndexiv, glIndexsv} 794 795 Set the current color index 796 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/index_.html} 797 798 @type c: Buffer object. Depends on function prototype. 799 @param c: Specifies a pointer to a one element array that contains the new value for 800 the current color index. 801 """
802
803 -def glInitNames():
804 """ 805 Initialize the name stack 806 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/initnames.html} 807 """
808
809 -def glIsEnabled(cap):
810 """ 811 Test whether a capability is enabled 812 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/isenabled.html} 813 814 @type cap: Enumerated constant 815 @param cap: Specifies a constant representing a GL capability. 816 """
817
818 -def glIsList(list):
819 """ 820 Determine if a name corresponds to a display-list 821 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/islist.html} 822 823 @type list: unsigned int 824 @param list: Specifies a potential display-list name. 825 """
826
827 -def glIsTexture(texture):
828 """ 829 Determine if a name corresponds to a texture 830 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/istexture.html} 831 832 @type texture: unsigned int 833 @param texture: Specifies a value that may be the name of a texture. 834 """
835
836 -def glLight (light, pname, param):
837 """ 838 B{glLightf,glLighti, glLightfv, glLightiv} 839 840 Set the light source parameters 841 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/light.html} 842 843 @type light: Enumerated constant 844 @param light: Specifies a light. The number of lights depends on the implementation, 845 but at least eight lights are supported. They are identified by symbolic names of the 846 form GL_LIGHTi where 0 < i < GL_MAX_LIGHTS. 847 @type pname: Enumerated constant 848 @param pname: Specifies a single-valued light source parameter for light. 849 @type param: Depends on function prototype. 850 @param param: Specifies the value that parameter pname of light source light will be set to. 851 If function prototype ends in 'v' specifies a pointer to the value or values that 852 parameter pname of light source light will be set to. 853 """
854
855 -def glLightModel (pname, param):
856 """ 857 B{glLightModelf, glLightModeli, glLightModelfv, glLightModeliv} 858 859 Set the lighting model parameters 860 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/lightmodel.html} 861 862 @type pname: Enumerated constant 863 @param pname: Specifies a single-value light model parameter. 864 @type param: Depends on function prototype. 865 @param param: Specifies the value that param will be set to. If function prototype ends in 'v' 866 specifies a pointer to the value or values that param will be set to. 867 """
868
869 -def glLineStipple(factor, pattern):
870 """ 871 Specify the line stipple pattern 872 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/linestipple.html} 873 874 @type factor: int 875 @param factor: Specifies a multiplier for each bit in the line stipple pattern. 876 If factor is 3, for example, each bit in the pattern is used three times before 877 the next bit in the pattern is used. factor is clamped to the range [1, 256] and 878 defaults to 1. 879 @type pattern: unsigned short int 880 @param pattern: Specifies a 16-bit integer whose bit pattern determines which fragments 881 of a line will be drawn when the line is rasterized. Bit zero is used first; the default 882 pattern is all 1's. 883 """
884
885 -def glLineWidth(width):
886 """ 887 Specify the width of rasterized lines. 888 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/linewidth.html} 889 890 @type width: float 891 @param width: Specifies the width of rasterized lines. The initial value is 1. 892 """
893
894 -def glListBase(base):
895 """ 896 Set the display-list base for glCallLists 897 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/listbase.html} 898 899 @type base: unsigned int 900 @param base: Specifies an integer offset that will be added to glCallLists 901 offsets to generate display-list names. The initial value is 0. 902 """
903
904 -def glLoadIdentity():
905 """ 906 Replace the current matrix with the identity matrix 907 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/loadidentity.html} 908 """
909
910 -def glLoadMatrix (m):
911 """ 912 B{glLoadMatrixd, glLoadMatixf} 913 914 Replace the current matrix with the specified matrix 915 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/loadmatrix.html} 916 917 @type m: Buffer object. Depends on function prototype. 918 @param m: Specifies a pointer to 16 consecutive values, which are used as the elements 919 of a 4x4 column-major matrix. 920 """
921
922 -def glLoadName(name):
923 """ 924 Load a name onto the name stack. 925 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/loadname.html} 926 927 @type name: unsigned int 928 @param name: Specifies a name that will replace the top value on the name stack. 929 """
930
931 -def glLogicOp(opcode):
932 """ 933 Specify a logical pixel operation for color index rendering 934 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/logicop.html} 935 936 @type opcode: Enumerated constant 937 @param opcode: Specifies a symbolic constant that selects a logical operation. 938 """
939
940 -def glMap1 (target, u1, u2, stride, order, points):
941 """ 942 B{glMap1d, glMap1f} 943 944 Define a one-dimensional evaluator 945 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/map1.html} 946 947 @type target: Enumerated constant 948 @param target: Specifies the kind of values that are generated by the evaluator. 949 @type u1, u2: Depends on function prototype. 950 @param u1,u2: Specify a linear mapping of u, as presented to glEvalCoord1, to ^, t 951 he variable that is evaluated by the equations specified by this command. 952 @type stride: int 953 @param stride: Specifies the number of floats or float (double)s between the beginning 954 of one control point and the beginning of the next one in the data structure 955 referenced in points. This allows control points to be embedded in arbitrary data 956 structures. The only constraint is that the values for a particular control point must 957 occupy contiguous memory locations. 958 @type order: int 959 @param order: Specifies the number of control points. Must be positive. 960 @type points: Buffer object. Depends on function prototype. 961 @param points: Specifies a pointer to the array of control points. 962 """
963
964 -def glMap2 (target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points):
965 """ 966 B{glMap2d, glMap2f} 967 968 Define a two-dimensional evaluator 969 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/map2.html} 970 971 @type target: Enumerated constant 972 @param target: Specifies the kind of values that are generated by the evaluator. 973 @type u1, u2: Depends on function prototype. 974 @param u1,u2: Specify a linear mapping of u, as presented to glEvalCoord2, to ^, t 975 he variable that is evaluated by the equations specified by this command. Initially 976 u1 is 0 and u2 is 1. 977 @type ustride: int 978 @param ustride: Specifies the number of floats or float (double)s between the beginning 979 of control point R and the beginning of control point R ij, where i and j are the u 980 and v control point indices, respectively. This allows control points to be embedded 981 in arbitrary data structures. The only constraint is that the values for a particular 982 control point must occupy contiguous memory locations. The initial value of ustride is 0. 983 @type uorder: int 984 @param uorder: Specifies the dimension of the control point array in the u axis. 985 Must be positive. The initial value is 1. 986 @type v1, v2: Depends on function prototype. 987 @param v1, v2: Specify a linear mapping of v, as presented to glEvalCoord2, to ^, 988 one of the two variables that are evaluated by the equations specified by this command. 989 Initially, v1 is 0 and v2 is 1. 990 @type vstride: int 991 @param vstride: Specifies the number of floats or float (double)s between the beginning of control 992 point R and the beginning of control point R ij, where i and j are the u and v control 993 point(indices, respectively. This allows control points to be embedded in arbitrary data 994 structures. The only constraint is that the values for a particular control point must 995 occupy contiguous memory locations. The initial value of vstride is 0. 996 @type vorder: int 997 @param vorder: Specifies the dimension of the control point array in the v axis. 998 Must be positive. The initial value is 1. 999 @type points: Buffer object. Depends on function prototype. 1000 @param points: Specifies a pointer to the array of control points. 1001 """
1002
1003 -def glMapGrid (un, u1,u2 ,vn, v1, v2):
1004 """ 1005 B{glMapGrid1d, glMapGrid1f, glMapGrid2d, glMapGrid2f} 1006 1007 Define a one- or two-dimensional mesh 1008 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/mapgrid.html} 1009 1010 @type un: int 1011 @param un: Specifies the number of partitions in the grid range interval 1012 [u1, u2]. Must be positive. 1013 @type u1, u2: Depends on function prototype. 1014 @param u1, u2: Specify the mappings for integer grid domain values i=0 and i=un. 1015 @type vn: int 1016 @param vn: Specifies the number of partitions in the grid range interval [v1, v2] 1017 (glMapGrid2 only). 1018 @type v1, v2: Depends on function prototype. 1019 @param v1, v2: Specify the mappings for integer grid domain values j=0 and j=vn 1020 (glMapGrid2 only). 1021 """
1022
1023 -def glMaterial (face, pname, params):
1024 """ 1025 Specify material parameters for the lighting model. 1026 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/material.html} 1027 1028 @type face: Enumerated constant 1029 @param face: Specifies which face or faces are being updated. Must be one of: 1030 @type pname: Enumerated constant 1031 @param pname: Specifies the single-valued material parameter of the face 1032 or faces that is being updated. Must be GL_SHININESS. 1033 @type params: int 1034 @param params: Specifies the value that parameter GL_SHININESS will be set to. 1035 If function prototype ends in 'v' specifies a pointer to the value or values that 1036 pname will be set to. 1037 """
1038
1039 -def glMatrixMode(mode):
1040 """ 1041 Specify which matrix is the current matrix. 1042 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/matrixmode.html} 1043 1044 @type mode: Enumerated constant 1045 @param mode: Specifies which matrix stack is the target for subsequent matrix operations. 1046 """
1047
1048 -def glMultMatrix (m):
1049 """ 1050 B{glMultMatrixd, glMultMatrixf} 1051 1052 Multiply the current matrix with the specified matrix 1053 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/multmatrix.html} 1054 1055 @type m: Buffer object. Depends on function prototype. 1056 @param m: Points to 16 consecutive values that are used as the elements of a 4x4 column 1057 major matrix. 1058 """
1059
1060 -def glNewList(list, mode):
1061 """ 1062 Create or replace a display list 1063 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/newlist.html} 1064 1065 @type list: unsigned int 1066 @param list: Specifies the display list name 1067 @type mode: Enumerated constant 1068 @param mode: Specifies the compilation mode. 1069 """
1070
1071 -def glNormal3 (nx, ny, nz, v):
1072 """ 1073 B{Normal3b, Normal3bv, Normal3d, Normal3dv, Normal3f, Normal3fv, Normal3i, Normal3iv, 1074 Normal3s, Normal3sv} 1075 1076 Set the current normal vector 1077 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/normal.html} 1078 1079 @type nx, ny, nz: Depends on function prototype. (non - 'v' prototypes only) 1080 @param nx, ny, nz: Specify the x, y, and z coordinates of the new current normal. 1081 The initial value of the current normal is the unit vector, (0, 0, 1). 1082 @type v: Buffer object. Depends on function prototype. ('v' prototypes) 1083 @param v: Specifies a pointer to an array of three elements: the x, y, and z coordinates 1084 of the new current normal. 1085 """
1086
1087 -def glOrtho(left, right, bottom, top, zNear, zFar):
1088 """ 1089 Multiply the current matrix with an orthographic matrix 1090 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/ortho.html} 1091 1092 @type left, right: double (float) 1093 @param left, right: Specify the coordinates for the left and 1094 right vertical clipping planes. 1095 @type bottom, top: double (float) 1096 @param bottom, top: Specify the coordinates for the bottom and top 1097 horizontal clipping planes. 1098 @type zNear, zFar: double (float) 1099 @param zNear, zFar: Specify the distances to the nearer and farther 1100 depth clipping planes. These values are negative if the plane is to be behind the viewer. 1101 """
1102
1103 -def glPassThrough(token):
1104 """ 1105 Place a marker in the feedback buffer 1106 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/passthrough.html} 1107 1108 @type token: float 1109 @param token: Specifies a marker value to be placed in the feedback 1110 buffer following a GL_PASS_THROUGH_TOKEN. 1111 """
1112
1113 -def glPixelMap (map, mapsize, values):
1114 """ 1115 B{glPixelMapfv, glPixelMapuiv, glPixelMapusv} 1116 1117 Set up pixel transfer maps 1118 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/pixelmap.html} 1119 1120 @type map: Enumerated constant 1121 @param map: Specifies a symbolic map name. 1122 @type mapsize: int 1123 @param mapsize: Specifies the size of the map being defined. 1124 @type values: Buffer object. Depends on function prototype. 1125 @param values: Specifies an array of mapsize values. 1126 """
1127
1128 -def glPixelStore (pname, param):
1129 """ 1130 B{glPixelStoref, glPixelStorei} 1131 1132 Set pixel storage modes 1133 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/pixelstore.html} 1134 1135 @type pname: Enumerated constant 1136 @param pname: Specifies the symbolic name of the parameter to be set. 1137 Six values affect the packing of pixel data into memory. 1138 Six more affect the unpacking of pixel data from memory. 1139 @type param: Depends on function prototype. 1140 @param param: Specifies the value that pname is set to. 1141 """
1142
1143 -def glPixelTransfer (pname, param):
1144 """ 1145 B{glPixelTransferf, glPixelTransferi} 1146 1147 Set pixel transfer modes 1148 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/pixeltransfer.html} 1149 1150 @type pname: Enumerated constant 1151 @param pname: Specifies the symbolic name of the pixel transfer parameter to be set. 1152 @type param: Depends on function prototype. 1153 @param param: Specifies the value that pname is set to. 1154 """
1155
1156 -def glPixelZoom(xfactor, yfactor):
1157 """ 1158 Specify the pixel zoom factors 1159 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/pixelzoom.html} 1160 1161 @type xfactor, yfactor: float 1162 @param xfactor, yfactor: Specify the x and y zoom factors for pixel write operations. 1163 """
1164
1165 -def glPointSize(size):
1166 """ 1167 Specify the diameter of rasterized points 1168 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/pointsize.html} 1169 1170 @type size: float 1171 @param size: Specifies the diameter of rasterized points. The initial value is 1. 1172 """
1173
1174 -def glPolygonMode(face, mode):
1175 """ 1176 Select a polygon rasterization mode 1177 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/polygonmode.html} 1178 1179 @type face: Enumerated constant 1180 @param face: Specifies the polygons that mode applies to. 1181 Must be GL_FRONT for front-facing polygons, GL_BACK for back- facing polygons, 1182 or GL_FRONT_AND_BACK for front- and back-facing polygons. 1183 @type mode: Enumerated constant 1184 @param mode: Specifies how polygons will be rasterized. 1185 The initial value is GL_FILL for both front- and back- facing polygons. 1186 """
1187
1188 -def glPolygonOffset(factor, units):
1189 """ 1190 Set the scale and units used to calculate depth values 1191 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/polygonoffset.html} 1192 1193 @type factor: float 1194 @param factor: Specifies a scale factor that is used to create a variable depth 1195 offset for each polygon. The initial value is 0. 1196 @type units: float 1197 @param units: Is multiplied by an implementation-specific value to create a constant 1198 depth offset. The initial value is 0. 1199 """
1200
1201 -def glPolygonStipple(mask):
1202 """ 1203 Set the polygon stippling pattern 1204 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/polygonstipple.html} 1205 1206 @type mask: Buffer object I{type GL_BYTE} 1207 @param mask: Specifies a pointer to a 32x32 stipple pattern that will be unpacked 1208 from memory in the same way that glDrawPixels unpacks pixels. 1209 """
1210
1211 -def glPopAttrib():
1212 """ 1213 Pop the server attribute stack 1214 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/pushattrib.html} 1215 """
1216
1217 -def glPopClientAttrib():
1218 """ 1219 Pop the client attribute stack 1220 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/pushclientattrib.html} 1221 """
1222
1223 -def glPopMatrix():
1224 """ 1225 Pop the current matrix stack 1226 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/pushmatrix.html} 1227 """
1228
1229 -def glPopName():
1230 """ 1231 Pop the name stack 1232 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/pushname.html} 1233 """
1234
1235 -def glPrioritizeTextures(n, textures, priorities):
1236 """ 1237 Set texture residence priority 1238 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/prioritizetextures.html} 1239 1240 @type n: int 1241 @param n:Specifies the number of textures to be prioritized. 1242 @type textures: Buffer I{type GL_INT} 1243 @param textures: Specifies an array containing the names of the textures to be prioritized. 1244 @type priorities: Buffer I{type GL_FLOAT} 1245 @param priorities: Specifies an array containing the texture priorities. A priority given 1246 in an element of priorities applies to the texture named by the corresponding element of textures. 1247 """
1248
1249 -def glPushAttrib(mask):
1250 """ 1251 Push the server attribute stack 1252 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/pushattrib.html} 1253 1254 @type mask: Enumerated constant(s) 1255 @param mask: Specifies a mask that indicates which attributes to save. 1256 """
1257
1258 -def glPushClientAttrib(mask):
1259 """ 1260 Push the client attribute stack 1261 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/pushclientattrib.html} 1262 1263 @type mask: Enumerated constant(s) 1264 @param mask: Specifies a mask that indicates which attributes to save. 1265 """
1266
1267 -def glPushMatrix():
1268 """ 1269 Push the current matrix stack 1270 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/pushmatrix.html} 1271 """
1272
1273 -def glPushName(name):
1274 """ 1275 Push the name stack 1276 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/pushname.html} 1277 1278 @type name: unsigned int 1279 @param name: Specifies a name that will be pushed onto the name stack. 1280 """
1281
1282 -def glRasterPos (x,y,z,w):
1283 """ 1284 B{glRasterPos2d, glRasterPos2f, glRasterPos2i, glRasterPos2s, glRasterPos3d, 1285 glRasterPos3f, glRasterPos3i, glRasterPos3s, glRasterPos4d, glRasterPos4f, 1286 glRasterPos4i, glRasterPos4s, glRasterPos2dv, glRasterPos2fv, glRasterPos2iv, 1287 glRasterPos2sv, glRasterPos3dv, glRasterPos3fv, glRasterPos3iv, glRasterPos3sv, 1288 glRasterPos4dv, glRasterPos4fv, glRasterPos4iv, glRasterPos4sv} 1289 1290 Specify the raster position for pixel operations 1291 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/rasterpos.html} 1292 1293 @type x, y, z, w: Depends on function prototype. (z and w for '3' and '4' prototypes only) 1294 @param x, y, z, w: Specify the x,y,z, and w object coordinates (if present) for the 1295 raster position. If function prototype ends in 'v' specifies a pointer to an array of two, 1296 three, or four elements, specifying x, y, z, and w coordinates, respectively. 1297 @note: 1298 If you are drawing to the 3d view with a Scriptlink of a space handler 1299 the zoom level of the panels will scale the glRasterPos by the view matrix. 1300 so a X of 10 will not always offset 10 pixels as you would expect. 1301 1302 To work around this get the scale value of the view matrix and use it to scale your pixel values. 1303 1304 Workaround:: 1305 1306 import Blender 1307 from Blender.BGL import * 1308 xval, yval= 100, 40 1309 # Get the scale of the view matrix 1310 viewMatrix = Buffer(GL_FLOAT, 16) 1311 glGetFloatv(GL_MODELVIEW_MATRIX, viewMatrix) 1312 f = 1/viewMatrix[0] 1313 glRasterPos2f(xval*f, yval*f) # Instead of the usual glRasterPos2i(xval, yval) 1314 """
1315
1316 -def glReadBuffer(mode):
1317 """ 1318 Select a color buffer source for pixels. 1319 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/readbuffer.html} 1320 1321 @type mode: Enumerated constant 1322 @param mode: Specifies a color buffer. 1323 """
1324
1325 -def glReadPixels(x, y, width, height, format, type, pixels):
1326 """ 1327 Read a block of pixels from the frame buffer 1328 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/readpixels.html} 1329 1330 @type x, y: int 1331 @param x, y:Specify the window coordinates of the first pixel that is read 1332 from the frame buffer. This location is the lower left corner of a rectangular 1333 block of pixels. 1334 @type width, height: int 1335 @param width, height: Specify the dimensions of the pixel rectangle. width and 1336 height of one correspond to a single pixel. 1337 @type format: Enumerated constant 1338 @param format: Specifies the format of the pixel data. 1339 @type type: Enumerated constant 1340 @param type: Specifies the data type of the pixel data. 1341 @type pixels: Buffer object 1342 @param pixels: Returns the pixel data. 1343 """
1344
1345 -def glRect (x1,y1,x2,y2,v1,v2):
1346 """ 1347 B{glRectd, glRectf, glRecti, glRects, glRectdv, glRectfv, glRectiv, glRectsv} 1348 1349 Draw a rectangle 1350 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/rect.html} 1351 1352 @type x1, y1: Depends on function prototype. (for non 'v' prototypes only) 1353 @param x1, y1: Specify one vertex of a rectangle 1354 @type x2, y2: Depends on function prototype. (for non 'v' prototypes only) 1355 @param x2, y2: Specify the opposite vertex of the rectangle 1356 @type v1, v2: Depends on function prototype. (for 'v' prototypes only) 1357 @param v1, v2: Specifies a pointer to one vertex of a rectangle and the pointer 1358 to the opposite vertex of the rectangle 1359 """
1360
1361 -def glRenderMode(mode):
1362 """ 1363 Set rasterization mode 1364 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/rendermode.html} 1365 1366 @type mode: Enumerated constant 1367 @param mode: Specifies the rasterization mode. 1368 """
1369
1370 -def glRotate (angle, x, y, z):
1371 """ 1372 B{glRotated, glRotatef} 1373 1374 Multiply the current matrix by a rotation matrix 1375 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/rotate.html} 1376 1377 @type angle: Depends on function prototype. 1378 @param angle: Specifies the angle of rotation in degrees. 1379 @type x, y, z: Depends on function prototype. 1380 @param x, y, z: Specify the x, y, and z coordinates of a vector respectively. 1381 """
1382
1383 -def glScale (x,y,z):
1384 """ 1385 B{glScaled, glScalef} 1386 1387 Multiply the current matrix by a general scaling matrix 1388 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/scale.html} 1389 1390 @type x, y, z: Depends on function prototype. 1391 @param x, y, z: Specify scale factors along the x, y, and z axes, respectively. 1392 """
1393
1394 -def glScissor(x,y,width,height):
1395 """ 1396 Define the scissor box 1397 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/scissor.html} 1398 1399 @type x, y: int 1400 @param x, y: Specify the lower left corner of the scissor box. Initially (0, 0). 1401 @type width, height: int 1402 @param width height: Specify the width and height of the scissor box. When a 1403 GL context is first attached to a window, width and height are set to the 1404 dimensions of that window. 1405 """
1406
1407 -def glSelectBuffer(size, buffer):
1408 """ 1409 Establish a buffer for selection mode values 1410 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/selectbuffer.html} 1411 1412 @type size: int 1413 @param size: Specifies the size of buffer 1414 @type buffer: Buffer I{type GL_INT} 1415 @param buffer: Returns the selection data 1416 """
1417
1418 -def glShadeModel(mode):
1419 """ 1420 Select flat or smooth shading 1421 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/shademodel.html} 1422 1423 @type mode: Enumerated constant 1424 @param mode: Specifies a symbolic value representing a shading technique. 1425 """
1426
1427 -def glStencilFuc(func, ref, mask):
1428 """ 1429 Set function and reference value for stencil testing 1430 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/stencilfunc.html} 1431 1432 @type func: Enumerated constant 1433 @param func:Specifies the test function. 1434 @type ref: int 1435 @param ref:Specifies the reference value for the stencil test. ref is clamped to 1436 the range [0,2n-1], where n is the number of bitplanes in the stencil buffer. 1437 The initial value is 0. 1438 @type mask: unsigned int 1439 @param mask:Specifies a mask that is ANDed with both the reference value and 1440 the stored stencil value when the test is done. The initial value is all 1's. 1441 """
1442
1443 -def glStencilMask(mask):
1444 """ 1445 Control the writing of individual bits in the stencil planes 1446 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/stencilmask.html} 1447 1448 @type mask: unsigned int 1449 @param mask: Specifies a bit mask to enable and disable writing of individual bits 1450 in the stencil planes. Initially, the mask is all 1's. 1451 """
1452
1453 -def glStencilOp(fail, zfail, zpass):
1454 """ 1455 Set stencil test actions 1456 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/stencilop.html} 1457 1458 @type fail: Enumerated constant 1459 @param fail: Specifies the action to take when the stencil test fails. 1460 The initial value is GL_KEEP. 1461 @type zfail: Enumerated constant 1462 @param zfail: Specifies the stencil action when the stencil test passes, but the 1463 depth test fails. zfail accepts the same symbolic constants as fail. 1464 The initial value is GL_KEEP. 1465 @type zpass: Enumerated constant 1466 @param zpass: Specifies the stencil action when both the stencil test and the 1467 depth test pass, or when the stencil test passes and either there is no depth 1468 buffer or depth testing is not enabled. zpass accepts the same symbolic constants 1469 as fail. The initial value is GL_KEEP. 1470 """
1471
1472 -def glTexCoord (s,t,r,q,v):
1473 """ 1474 B{glTexCoord1d, glTexCoord1f, glTexCoord1i, glTexCoord1s, glTexCoord2d, glTexCoord2f, 1475 glTexCoord2i, glTexCoord2s, glTexCoord3d, glTexCoord3f, glTexCoord3i, glTexCoord3s, 1476 glTexCoord4d, glTexCoord4f, glTexCoord4i, glTexCoord4s, glTexCoord1dv, glTexCoord1fv, 1477 glTexCoord1iv, glTexCoord1sv, glTexCoord2dv, glTexCoord2fv, glTexCoord2iv, 1478 glTexCoord2sv, glTexCoord3dv, glTexCoord3fv, glTexCoord3iv, glTexCoord3sv, 1479 glTexCoord4dv, glTexCoord4fv, glTexCoord4iv, glTexCoord4sv} 1480 1481 Set the current texture coordinates 1482 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/texcoord.html} 1483 1484 @type s, t, r, q: Depends on function prototype. (r and q for '3' and '4' prototypes only) 1485 @param s, t, r, q: Specify s, t, r, and q texture coordinates. Not all parameters are 1486 present in all forms of the command. 1487 @type v: Buffer object. Depends on function prototype. (for 'v' prototypes only) 1488 @param v: Specifies a pointer to an array of one, two, three, or four elements, 1489 which in turn specify the s, t, r, and q texture coordinates. 1490 """ 1491
1492 -def glTexEnv (target, pname, param):
1493 """ 1494 B{glTextEnvf, glTextEnvi, glTextEnvfv, glTextEnviv} 1495 1496 Set texture environment parameters 1497 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/texenv.html} 1498 1499 @type target: Enumerated constant 1500 @param target: Specifies a texture environment. Must be GL_TEXTURE_ENV. 1501 @type pname: Enumerated constant 1502 @param pname: Specifies the symbolic name of a single-valued texture environment 1503 parameter. Must be GL_TEXTURE_ENV_MODE. 1504 @type param: Depends on function prototype. 1505 @param param: Specifies a single symbolic constant. If function prototype ends in 'v' 1506 specifies a pointer to a parameter array that contains either a single symbolic 1507 constant or an RGBA color 1508 """
1509
1510 -def glTexGen (coord, pname, param):
1511 """ 1512 B{glTexGend, glTexGenf, glTexGeni, glTexGendv, glTexGenfv, glTexGeniv} 1513 1514 Control the generation of texture coordinates 1515 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/texgen.html} 1516 1517 @type coord: Enumerated constant 1518 @param coord: Specifies a texture coordinate. 1519 @type pname: Enumerated constant 1520 @param pname: Specifies the symbolic name of the texture- coordinate generation function. 1521 @type param: Depends on function prototype. 1522 @param param: Specifies a single-valued texture generation parameter. 1523 If function prototype ends in 'v' specifies a pointer to an array of texture 1524 generation parameters. If pname is GL_TEXTURE_GEN_MODE, then the array must 1525 contain a single symbolic constant. Otherwise, params holds the coefficients 1526 for the texture-coordinate generation function specified by pname. 1527 """
1528
1529 -def glTexImage1D(target, level, internalformat, width, border, format, type, pixels):
1530 """ 1531 Specify a one-dimensional texture image 1532 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/teximage1d.html} 1533 1534 @type target: Enumerated constant 1535 @param target: Specifies the target texture. 1536 @type level: int 1537 @param level: Specifies the level-of-detail number. Level 0 is the base image level. 1538 Level n is the nth mipmap reduction image. 1539 @type internalformat: int 1540 @param internalformat: Specifies the number of color components in the texture. 1541 @type width: int 1542 @param width: Specifies the width of the texture image. Must be 2n+2(border) for 1543 some integer n. All implementations support texture images that are at least 64 1544 texels wide. The height of the 1D texture image is 1. 1545 @type border: int 1546 @param border: Specifies the width of the border. Must be either 0 or 1. 1547 @type format: Enumerated constant 1548 @param format: Specifies the format of the pixel data. 1549 @type type: Enumerated constant 1550 @param type: Specifies the data type of the pixel data. 1551 @type pixels: Buffer object. 1552 @param pixels: Specifies a pointer to the image data in memory. 1553 """
1554
1555 -def glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels):
1556 """ 1557 Specify a two-dimensional texture image 1558 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/teximage2d.html} 1559 1560 @type target: Enumerated constant 1561 @param target: Specifies the target texture. 1562 @type level: int 1563 @param level: Specifies the level-of-detail number. Level 0 is the base image level. 1564 Level n is the nth mipmap reduction image. 1565 @type internalformat: int 1566 @param internalformat: Specifies the number of color components in the texture. 1567 @type width: int 1568 @param width: Specifies the width of the texture image. Must be 2n+2(border) for 1569 some integer n. All implementations support texture images that are at least 64 1570 texels wide. 1571 @type height: int 1572 @param height: Specifies the height of the texture image. Must be 2m+2(border) for 1573 some integer m. All implementations support texture images that are at least 64 1574 texels high. 1575 @type border: int 1576 @param border: Specifies the width of the border. Must be either 0 or 1. 1577 @type format: Enumerated constant 1578 @param format: Specifies the format of the pixel data. 1579 @type type: Enumerated constant 1580 @param type: Specifies the data type of the pixel data. 1581 @type pixels: Buffer object. 1582 @param pixels: Specifies a pointer to the image data in memory. 1583 """
1584
1585 -def glTexParameter (target, pname, param):
1586 """ 1587 B{glTexParameterf, glTexParameteri, glTexParameterfv, glTexParameteriv} 1588 1589 Set texture parameters 1590 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/texparameter.html} 1591 1592 @type target: Enumerated constant 1593 @param target: Specifies the target texture. 1594 @type pname: Enumerated constant 1595 @param pname: Specifies the symbolic name of a single-valued texture parameter. 1596 @type param: Depends on function prototype. 1597 @param param: Specifies the value of pname. If function prototype ends in 'v' specifies 1598 a pointer to an array where the value or values of pname are stored. 1599 """
1600
1601 -def glTranslate (x, y, z):
1602 """ 1603 B{glTranslatef, glTranslated} 1604 1605 Multiply the current matrix by a translation matrix 1606 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/translate.html} 1607 1608 @type x, y, z: Depends on function prototype. 1609 @param x, y, z: Specify the x, y, and z coordinates of a translation vector. 1610 """
1611
1612 -def glVertex (x,y,z,w,v):
1613 """ 1614 B{glVertex2d, glVertex2f, glVertex2i, glVertex2s, glVertex3d, glVertex3f, glVertex3i, 1615 glVertex3s, glVertex4d, glVertex4f, glVertex4i, glVertex4s, glVertex2dv, glVertex2fv, 1616 glVertex2iv, glVertex2sv, glVertex3dv, glVertex3fv, glVertex3iv, glVertex3sv, glVertex4dv, 1617 glVertex4fv, glVertex4iv, glVertex4sv} 1618 1619 Specify a vertex 1620 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/vertex.html} 1621 1622 @type x, y, z, w: Depends on function prototype (z and w for '3' and '4' prototypes only) 1623 @param x, y, z, w: Specify x, y, z, and w coordinates of a vertex. Not all parameters 1624 are present in all forms of the command. 1625 @type v: Buffer object. Depends of function prototype (for 'v' prototypes only) 1626 @param v: Specifies a pointer to an array of two, three, or four elements. The 1627 elements of a two-element array are x and y; of a three-element array, x, y, and z; 1628 and of a four-element array, x, y, z, and w. 1629 """
1630
1631 -def glViewport(x,y,width,height):
1632 """ 1633 Set the viewport 1634 @see: U{www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/viewport.html} 1635 1636 @type x, y: int 1637 @param x, y: Specify the lower left corner of the viewport rectangle, 1638 in pixels. The initial value is (0,0). 1639 @type width, height: int 1640 @param width, height: Specify the width and height of the viewport. When a GL context 1641 is first attached to a window, width and height are set to the dimensions of that window. 1642 """
1643
1644 -def gluPerspective(fovY, aspect, zNear, zFar):
1645 """ 1646 Set up a perspective projection matrix. 1647 @see: U{http://biology.ncsa.uiuc.edu/cgi-bin/infosrch.cgi?cmd=getdoc&coll=0650&db=bks&fname=/SGI_Developer/OpenGL_RM/ch06.html#id5577288} 1648 1649 @type fovY: double 1650 @param fovY: Specifies the field of view angle, in degrees, in the y direction. 1651 @type aspect: double 1652 @param aspect: Specifies the aspect ratio that determines the field of view in the x direction. 1653 The aspect ratio is the ratio of x (width) to y (height). 1654 @type zNear: double 1655 @param zNear: Specifies the distance from the viewer to the near clipping plane (always positive). 1656 @type zFar: double 1657 @param zFar: Specifies the distance from the viewer to the far clipping plane (always positive). 1658 """
1659
1660 -def gluLookAt(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz):
1661 """ 1662 Define a viewing transformation 1663 @see: U{http://biology.ncsa.uiuc.edu/cgi-bin/infosrch.cgi?cmd=getdoc&coll=0650&db=bks&fname=/SGI_Developer/OpenGL_RM/ch06.html#id5573042} 1664 1665 @type eyex, eyey, eyez: double 1666 @param eyex, eyey, eyez: Specifies the position of the eye point. 1667 @type centerx, centery, centerz: double 1668 @param centerx, centery, centerz: Specifies the position of the reference point. 1669 @type upx, upy, upz: double 1670 @param upx, upy, upz: Specifies the direction of the up vector. 1671 """
1672
1673 -def gluOrtho2D(left, right, bottom, top):
1674 """ 1675 Define a 2-D orthographic projection matrix 1676 @see: U{http://biology.ncsa.uiuc.edu/cgi-bin/infosrch.cgi?cmd=getdoc&coll=0650&db=bks&fname=/SGI_Developer/OpenGL_RM/ch06.html#id5578074} 1677 1678 @type left, right: double 1679 @param left, right: Specify the coordinates for the left and right vertical clipping planes. 1680 @type bottom, top: double 1681 @param bottom, top: Specify the coordinates for the bottom and top horizontal clipping planes. 1682 """
1683
1684 -def gluPickMatrix(x, y, width, height, viewport):
1685 """ 1686 Define a picking region 1687 @see: U{http://biology.ncsa.uiuc.edu/cgi-bin/infosrch.cgi?cmd=getdoc&coll=0650&db=bks&fname=/SGI_Developer/OpenGL_RM/ch06.html#id5578074} 1688 1689 @type x, y: double 1690 @param x, y: Specify the center of a picking region in window coordinates. 1691 @type width, height: double 1692 @param width, height: Specify the width and height, respectively, of the picking region in window coordinates. 1693 @type viewport: Buffer object. [int] 1694 @param viewport: Specifies the current viewport. 1695 """
1696
1697 -def gluProject(objx, objy, objz, modelMatrix, projMatrix, viewport, winx, winy, winz):
1698 """ 1699 Map object coordinates to window coordinates. 1700 @see: U{http://biology.ncsa.uiuc.edu/cgi-bin/infosrch.cgi?cmd=getdoc&coll=0650&db=bks&fname=/SGI_Developer/OpenGL_RM/ch06.html#id5578074} 1701 1702 @type objx, objy, objz: double 1703 @param objx, objy, objz: Specify the object coordinates. 1704 @type modelMatrix: Buffer object. [double] 1705 @param modelMatrix: Specifies the current modelview matrix (as from a glGetDoublev call). 1706 @type projMatrix: Buffer object. [double] 1707 @param projMatrix: Specifies the current projection matrix (as from a glGetDoublev call). 1708 @type viewport: Buffer object. [int] 1709 @param viewport: Specifies the current viewport (as from a glGetIntegerv call). 1710 @type winx, winy, winz: Buffer object. [double] 1711 @param winx, winy, winz: Return the computed window coordinates. 1712 """
1713
1714 -def gluUnProject(winx, winy, winz, modelMatrix, projMatrix, viewport, objx, objy, objz):
1715 """ 1716 Map object coordinates to window 1717 coordinates. 1718 @see: U{http://biology.ncsa.uiuc.edu/cgi-bin/infosrch.cgi?cmd=getdoc&coll=0650&db=bks&fname=/SGI_Developer/OpenGL_RM/ch06.html#id5582204} 1719 1720 @type winx, winy, winz: double 1721 @param winx, winy, winz: Specify the window coordinates to be mapped. 1722 @type modelMatrix: Buffer object. [double] 1723 @param modelMatrix: Specifies the current modelview matrix (as from a glGetDoublev call). 1724 @type projMatrix: Buffer object. [double] 1725 @param projMatrix: Specifies the current projection matrix (as from a glGetDoublev call). 1726 @type viewport: Buffer object. [int] 1727 @param viewport: Specifies the current viewport (as from a glGetIntegerv call). 1728 @type objx, objy, objz: Buffer object. [double] 1729 @param objx, objy, objz: Return the computed object coordinates. 1730 """
1731
1732 -class Buffer:
1733 """ 1734 The Buffer object is simply a block of memory that is delineated and initialized by the 1735 user. Many OpenGL functions return data to a C-style pointer, however, because this 1736 is not possible in python the Buffer object can be used to this end. Wherever pointer 1737 notation is used in the OpenGL functions the Buffer object can be used in it's BGL 1738 wrapper. In some instances the Buffer object will need to be initialized with the template 1739 parameter, while in other instances the user will want to create just a blank buffer 1740 which will be zeroed by default. 1741 1742 Example with Buffer:: 1743 import Blender 1744 from Blender import BGL 1745 myByteBuffer = BGL.Buffer(BGL.GL_BYTE, [32,32]) 1746 BGL.glGetPolygonStipple(myByteBuffer) 1747 print myByteBuffer.dimensions 1748 print myByteBuffer.list 1749 sliceBuffer = myByteBuffer[0:16] 1750 print sliceBuffer 1751 1752 @ivar list: The contents of the Buffer. 1753 @ivar dimensions: The size of the Buffer. 1754 """ 1755
1756 - def __init__(type, dimensions, template = None):
1757 """ 1758 This will create a new Buffer object for use with other BGL OpenGL commands. 1759 Only the type of argument to store in the buffer and the dimensions of the buffer 1760 are necessary. Buffers are zeroed by default unless a template is supplied, in 1761 which case the buffer is initialized to the template. 1762 1763 @type type: int 1764 @param type: The format to store data in. The type should be one of 1765 GL_BYTE, GL_SHORT, GL_INT, or GL_FLOAT. 1766 @type dimensions: An int or sequence object specifying the dimensions of the buffer. 1767 @param dimensions: If the dimensions are specified as an int a linear array will 1768 be created for the buffer. If a sequence is passed for the dimensions, the buffer 1769 becomes n-Dimensional, where n is equal to the number of parameters passed in the 1770 sequence. Example: [256,2] is a two- dimensional buffer while [256,256,4] creates 1771 a three- dimensional buffer. You can think of each additional dimension as a sub-item 1772 of the dimension to the left. i.e. [10,2] is a 10 element array each with 2 sub-items. 1773 [(0,0), (0,1), (1,0), (1,1), (2,0), ...] etc. 1774 @type template: A python sequence object (optional) 1775 @param template: A sequence of matching dimensions which will be used to initialize 1776 the Buffer. If a template is not passed in all fields will be initialized to 0. 1777 @rtype: Buffer object 1778 @return: The newly created buffer as a PyObject. 1779 """
1780