next up previous contents index
Next: C Version 1.1 Up: The OpenGL Graphics System: Previous: A.4 What All This

B Corollaries

The following observations are derived from the body and the other appendixes of the specification. Absence of an observation from this list in no way impugns its veracity.

  1. The CURRENT_RASTER_TEXTURE_COORDINATES must be maintained correctly at all times, including periods while texture mapping is not enabled, and when the GL is in color index mode.

  2. When requested, texture coordinates returned in feedback mode are always valid, including periods while texture mapping is not enabled, and when the GL is in color index mode.

  3. The error semantics of upward compatible OpenGL revisions may change. Otherwise, only additions can be made to upward compatible revisions.

  4. GL query commands are not required to satisfy the semantics of the Flush  or the Finish  commands. All that is required is that the queried state be consistent with complete execution of all previously executed GL commands.

  5. Application specified point size and line width must be returned as specified when queried. Implementation dependent clamping affects the values only while they are in use.

  6. Bitmaps and pixel transfers do not cause selection hits.

  7. The mask specified as the third argument to StencilFunc  affects the operands of the stencil comparison function, but has no direct effect on the update of the stencil buffer. The mask specified by StencilMask  has no effect on the stencil comparison function; it limits the effect of the update of the stencil buffer.

  8. Polygon shading is completed before the polygon mode is interpreted. If the shade model is FLAT, all of the points or lines generated by a single polygon will have the same color.

  9. A display list is just a group of commands and arguments, so errors generated by commands in a display list must be generated when the list is executed. If the list is created in COMPILE mode, errors should not be generated while the list is being created.

  10. RasterPos  does not change the current raster index from its default value in an RGBA mode GL context. Likewise, RasterPos  does not change the current raster color from its default value in a color index GL context. Both the current raster index and the current raster color can be queried, however, regardless of the color mode of the GL context.

  11. A material property that is attached to the current color via ColorMaterial  always takes the value of the current color. Attempts to change that material property via Material  calls have no effect.

  12. Material  and ColorMaterial  can be used to modify the RGBA material properties, even in a color index context. Likewise, Material  can be used to modify the color index material properties, even in an RGBA context.

  13. There is no atomicity requirement for OpenGL rendering commands, even at the fragment level.

  14. Because rasterization of non-antialiased polygons is point sampled, polygons that have no area generate no fragments when they are rasterized in FILL mode, and the fragments generated by the rasterization of ``narrow'' polygons may not form a continuous array.

  15. OpenGL does not force left- or right-handedness on any of its coordinates systems. Consider, however, the following conditions: (1) the object coordinate system is right-handed; (2) the only commands used to manipulate the model-view matrix are Scale  (with positive scaling values only), Rotate , and Translate ; (3) exactly one of either Frustum  or Ortho  is used to set the projection matrix; (4) the near value is less than the far value for DepthRange . If these conditions are all satisfied, then the eye coordinate system is right-handed and the clip, normalized device, and window coordinate systems are left-handed.

  16. ColorMaterial has no effect on color index lighting.

  17. (No pixel dropouts or duplicates.) Let two polygons share an identical edge (that is, there exist vertices A and B of an edge of one polygon, and vertices C and D of an edge of the other polygon, and the coordinates of vertex A (resp. B) are identical to those of vertex C (resp. D), and the state of the the coordinate transfomations is identical when A, B, C, and D are specified). Then, when the fragments produced by rasterization of both polygons are taken together, each fragment intersecting the interior of the shared edge is produced exactly once.

  18. OpenGL state continues to be modified in FEEDBACK mode and in SELECT mode. The contents of the framebuffer are not modified.

  19. The current raster position, the user defined clip planes, the spot directions and the light positions for LIGHTi, and the eye planes for texgen are transformed when they are specified. They are not transformed during a PopAttrib , or when copying a context.

  20. Dithering algorithms may be different for different components. In particular, alpha may be dithered differently from red, green, or blue, and an implementation may choose to not dither alpha at all.

next up previous contents index
Next: C Version 1.1 Up: The OpenGL Graphics System: Previous: A.4 What All This

David Blythe
Sat Mar 29 02:23:21 PST 1997