| Kurt Akeley |
| List of potential OpenGL extensions |
| |
| $Id: //depot/main/doc/registry/extensions/future#11 $ |
| |
| * Consider supporting color conversion in both the pixel and |
| geometry paths. This requires a color mode for TexGen and |
| a pre-texture lookup (rather than a lookup in the pixel path). |
| It might also be possible to use the color matrix in both |
| the pixel and geometry paths. |
| |
| 1. Replace undefined pixel color components with specified values |
| as part of the "Final Expansion to RGBA" operation. Allows alpha- |
| only images to pick up a useful color. |
| |
| 2. Attached video texture. Automatic double buffering with |
| swap linked to buffer swap. Video locked to buffer swap |
| also. |
| |
| 5. Support non power-of-two texture dimensions for single-level |
| (non mipmapped), clamped texture images? (Is this really |
| necessary?) If we do this, then eliminate the "null" texture |
| definition stuff. |
| |
| 8. Support automatic generation of mipmap images. Control with mode |
| "attached" to a named texture. Generate only down to the |
| low-LOD level. |
| |
| Features that have since been implemented: |
| |
| 3. Perform integer decimation during pixel unpack/pack. Separate values |
| for x, y, and z decimation. |
| |
| Done: decimation. |
| |
| 4. Support LUMINANCE and LUMINANCE_ALPHA framebuffer formats. |
| Use GLX to do all the work - only change to OpenGL is to define |
| what the framebuffer returns for green and blue when there are |
| no bits (alpha already defined). |
| |
| Done: fbconfig. |
| |
| 6. Allow additional named textures to be created, manipulated, |
| and bound. |
| |
| Done: texture_object. |
| |
| 7. Allow specification of lowest and highest mipmap level. |
| Attach this mode to named textures. |
| |
| Also support separate bias of LOD-in-x and LOD-in-y computation. |
| (GL_LODX_OFFSET and GL_LODY_OFFSET are suggested by rad.) |
| |
| Done: texture_lod. |
| |
| 9. Add a new texture clamp mode that really clamps to the |
| border color (nearest, linear, or cubic filtering). Check with |
| Kona folks to be sure that this is all that is necessary. |
| |
| Done: texture_border_clamp and texture_edge_clamp. |
| |
| 10. Define image buffers - drawing surfaces associated with a |
| rendering context that are not displayable. |
| |
| Done: pbuffer. |
| |
| 11. Add info about transparency to the level stuff in GLX (what color, |
| if any, is transparent in that level). |
| |
| Done: visual_info. |
| |
| 12. Define a mechanism that renormalizes normals cheaply when all |
| scales are uniform. |
| |
| Done: rescale_normal. |
| |
| 13. Define support for multiple active textures. |
| |
| Done: multitexture. |
| |
| 14. Introduce new <type> tokens to support packed pixel data |
| types. For example, GL_PACKED_INT, GL_PACKED_SHORT, and |
| GL_PACKED_BYTE. Then define the formats that result when |
| these new types are used in conjunction with currently- |
| defined formats. For example, format GL_RGB with type |
| GL_PACKED_INT might be |
| |
| xxbbbbbbbbbbggggggggggrrrrrrrrrr |
| |
| Done: packed_pixels. |
| |
| 15. Add argb format to support photoshop, etc. |
| |
| Done (BGRA combined with _REV packed pixel formats in OpenGL 1.2). |
| |
| 16. Add input color mux to pixel path. Allows red to be sourced |
| by red, green, blue, alpha, zero, or one. Likewise green, blue, |
| and alpha. Could also use this mechanism to throw away a fifth |
| component from a CMYKA image! This would elminiate the need for |
| RGBAx and xxxxA image formats. |
| |
| Done: color_matrix. |
| |
| 17. Support high-resolution pixmaps (lots of bits of color) even |
| if only low-resolution visuals are supported by the framebuffer. |
| |
| Done: fbconfig |
| |
| 18. Variable display resolution (on the fly) |
| |
| Done: video_resize. |
| |
| 19. Light points (automatic shading based on range, even field |
| intensity, etc.) |
| |
| Done: point_parameters. |
| |
| 20. Textured stamps. (Like trees.) |
| |
| Done: sprite. |