1Kurt Akeley 2List of potential OpenGL extensions 3 4$Id: //depot/main/doc/registry/extensions/future#11 $ 5 6 * Consider supporting color conversion in both the pixel and 7 geometry paths. This requires a color mode for TexGen and 8 a pre-texture lookup (rather than a lookup in the pixel path). 9 It might also be possible to use the color matrix in both 10 the pixel and geometry paths. 11 12 1. Replace undefined pixel color components with specified values 13 as part of the "Final Expansion to RGBA" operation. Allows alpha- 14 only images to pick up a useful color. 15 16 2. Attached video texture. Automatic double buffering with 17 swap linked to buffer swap. Video locked to buffer swap 18 also. 19 20 5. Support non power-of-two texture dimensions for single-level 21 (non mipmapped), clamped texture images? (Is this really 22 necessary?) If we do this, then eliminate the "null" texture 23 definition stuff. 24 25 8. Support automatic generation of mipmap images. Control with mode 26 "attached" to a named texture. Generate only down to the 27 low-LOD level. 28 29Features that have since been implemented: 30 31 3. Perform integer decimation during pixel unpack/pack. Separate values 32 for x, y, and z decimation. 33 34 Done: decimation. 35 36 4. Support LUMINANCE and LUMINANCE_ALPHA framebuffer formats. 37 Use GLX to do all the work - only change to OpenGL is to define 38 what the framebuffer returns for green and blue when there are 39 no bits (alpha already defined). 40 41 Done: fbconfig. 42 43 6. Allow additional named textures to be created, manipulated, 44 and bound. 45 46 Done: texture_object. 47 48 7. Allow specification of lowest and highest mipmap level. 49 Attach this mode to named textures. 50 51 Also support separate bias of LOD-in-x and LOD-in-y computation. 52 (GL_LODX_OFFSET and GL_LODY_OFFSET are suggested by rad.) 53 54 Done: texture_lod. 55 56 9. Add a new texture clamp mode that really clamps to the 57 border color (nearest, linear, or cubic filtering). Check with 58 Kona folks to be sure that this is all that is necessary. 59 60 Done: texture_border_clamp and texture_edge_clamp. 61 62 10. Define image buffers - drawing surfaces associated with a 63 rendering context that are not displayable. 64 65 Done: pbuffer. 66 67 11. Add info about transparency to the level stuff in GLX (what color, 68 if any, is transparent in that level). 69 70 Done: visual_info. 71 72 12. Define a mechanism that renormalizes normals cheaply when all 73 scales are uniform. 74 75 Done: rescale_normal. 76 77 13. Define support for multiple active textures. 78 79 Done: multitexture. 80 81 14. Introduce new <type> tokens to support packed pixel data 82 types. For example, GL_PACKED_INT, GL_PACKED_SHORT, and 83 GL_PACKED_BYTE. Then define the formats that result when 84 these new types are used in conjunction with currently- 85 defined formats. For example, format GL_RGB with type 86 GL_PACKED_INT might be 87 88 xxbbbbbbbbbbggggggggggrrrrrrrrrr 89 90 Done: packed_pixels. 91 92 15. Add argb format to support photoshop, etc. 93 94 Done (BGRA combined with _REV packed pixel formats in OpenGL 1.2). 95 96 16. Add input color mux to pixel path. Allows red to be sourced 97 by red, green, blue, alpha, zero, or one. Likewise green, blue, 98 and alpha. Could also use this mechanism to throw away a fifth 99 component from a CMYKA image! This would elminiate the need for 100 RGBAx and xxxxA image formats. 101 102 Done: color_matrix. 103 104 17. Support high-resolution pixmaps (lots of bits of color) even 105 if only low-resolution visuals are supported by the framebuffer. 106 107 Done: fbconfig 108 109 18. Variable display resolution (on the fly) 110 111 Done: video_resize. 112 113 19. Light points (automatic shading based on range, even field 114 intensity, etc.) 115 116 Done: point_parameters. 117 118 20. Textured stamps. (Like trees.) 119 120 Done: sprite. 121