blob: 8f0d15d09d58b6909e49a49ba3dd3ee0801de81d [file] [log] [blame]
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.