15bd8deadSopenharmony_ciKurt Akeley 25bd8deadSopenharmony_ciList of potential OpenGL extensions 35bd8deadSopenharmony_ci 45bd8deadSopenharmony_ci$Id: //depot/main/doc/registry/extensions/future#11 $ 55bd8deadSopenharmony_ci 65bd8deadSopenharmony_ci * Consider supporting color conversion in both the pixel and 75bd8deadSopenharmony_ci geometry paths. This requires a color mode for TexGen and 85bd8deadSopenharmony_ci a pre-texture lookup (rather than a lookup in the pixel path). 95bd8deadSopenharmony_ci It might also be possible to use the color matrix in both 105bd8deadSopenharmony_ci the pixel and geometry paths. 115bd8deadSopenharmony_ci 125bd8deadSopenharmony_ci 1. Replace undefined pixel color components with specified values 135bd8deadSopenharmony_ci as part of the "Final Expansion to RGBA" operation. Allows alpha- 145bd8deadSopenharmony_ci only images to pick up a useful color. 155bd8deadSopenharmony_ci 165bd8deadSopenharmony_ci 2. Attached video texture. Automatic double buffering with 175bd8deadSopenharmony_ci swap linked to buffer swap. Video locked to buffer swap 185bd8deadSopenharmony_ci also. 195bd8deadSopenharmony_ci 205bd8deadSopenharmony_ci 5. Support non power-of-two texture dimensions for single-level 215bd8deadSopenharmony_ci (non mipmapped), clamped texture images? (Is this really 225bd8deadSopenharmony_ci necessary?) If we do this, then eliminate the "null" texture 235bd8deadSopenharmony_ci definition stuff. 245bd8deadSopenharmony_ci 255bd8deadSopenharmony_ci 8. Support automatic generation of mipmap images. Control with mode 265bd8deadSopenharmony_ci "attached" to a named texture. Generate only down to the 275bd8deadSopenharmony_ci low-LOD level. 285bd8deadSopenharmony_ci 295bd8deadSopenharmony_ciFeatures that have since been implemented: 305bd8deadSopenharmony_ci 315bd8deadSopenharmony_ci 3. Perform integer decimation during pixel unpack/pack. Separate values 325bd8deadSopenharmony_ci for x, y, and z decimation. 335bd8deadSopenharmony_ci 345bd8deadSopenharmony_ci Done: decimation. 355bd8deadSopenharmony_ci 365bd8deadSopenharmony_ci 4. Support LUMINANCE and LUMINANCE_ALPHA framebuffer formats. 375bd8deadSopenharmony_ci Use GLX to do all the work - only change to OpenGL is to define 385bd8deadSopenharmony_ci what the framebuffer returns for green and blue when there are 395bd8deadSopenharmony_ci no bits (alpha already defined). 405bd8deadSopenharmony_ci 415bd8deadSopenharmony_ci Done: fbconfig. 425bd8deadSopenharmony_ci 435bd8deadSopenharmony_ci 6. Allow additional named textures to be created, manipulated, 445bd8deadSopenharmony_ci and bound. 455bd8deadSopenharmony_ci 465bd8deadSopenharmony_ci Done: texture_object. 475bd8deadSopenharmony_ci 485bd8deadSopenharmony_ci 7. Allow specification of lowest and highest mipmap level. 495bd8deadSopenharmony_ci Attach this mode to named textures. 505bd8deadSopenharmony_ci 515bd8deadSopenharmony_ci Also support separate bias of LOD-in-x and LOD-in-y computation. 525bd8deadSopenharmony_ci (GL_LODX_OFFSET and GL_LODY_OFFSET are suggested by rad.) 535bd8deadSopenharmony_ci 545bd8deadSopenharmony_ci Done: texture_lod. 555bd8deadSopenharmony_ci 565bd8deadSopenharmony_ci 9. Add a new texture clamp mode that really clamps to the 575bd8deadSopenharmony_ci border color (nearest, linear, or cubic filtering). Check with 585bd8deadSopenharmony_ci Kona folks to be sure that this is all that is necessary. 595bd8deadSopenharmony_ci 605bd8deadSopenharmony_ci Done: texture_border_clamp and texture_edge_clamp. 615bd8deadSopenharmony_ci 625bd8deadSopenharmony_ci 10. Define image buffers - drawing surfaces associated with a 635bd8deadSopenharmony_ci rendering context that are not displayable. 645bd8deadSopenharmony_ci 655bd8deadSopenharmony_ci Done: pbuffer. 665bd8deadSopenharmony_ci 675bd8deadSopenharmony_ci 11. Add info about transparency to the level stuff in GLX (what color, 685bd8deadSopenharmony_ci if any, is transparent in that level). 695bd8deadSopenharmony_ci 705bd8deadSopenharmony_ci Done: visual_info. 715bd8deadSopenharmony_ci 725bd8deadSopenharmony_ci 12. Define a mechanism that renormalizes normals cheaply when all 735bd8deadSopenharmony_ci scales are uniform. 745bd8deadSopenharmony_ci 755bd8deadSopenharmony_ci Done: rescale_normal. 765bd8deadSopenharmony_ci 775bd8deadSopenharmony_ci 13. Define support for multiple active textures. 785bd8deadSopenharmony_ci 795bd8deadSopenharmony_ci Done: multitexture. 805bd8deadSopenharmony_ci 815bd8deadSopenharmony_ci 14. Introduce new <type> tokens to support packed pixel data 825bd8deadSopenharmony_ci types. For example, GL_PACKED_INT, GL_PACKED_SHORT, and 835bd8deadSopenharmony_ci GL_PACKED_BYTE. Then define the formats that result when 845bd8deadSopenharmony_ci these new types are used in conjunction with currently- 855bd8deadSopenharmony_ci defined formats. For example, format GL_RGB with type 865bd8deadSopenharmony_ci GL_PACKED_INT might be 875bd8deadSopenharmony_ci 885bd8deadSopenharmony_ci xxbbbbbbbbbbggggggggggrrrrrrrrrr 895bd8deadSopenharmony_ci 905bd8deadSopenharmony_ci Done: packed_pixels. 915bd8deadSopenharmony_ci 925bd8deadSopenharmony_ci 15. Add argb format to support photoshop, etc. 935bd8deadSopenharmony_ci 945bd8deadSopenharmony_ci Done (BGRA combined with _REV packed pixel formats in OpenGL 1.2). 955bd8deadSopenharmony_ci 965bd8deadSopenharmony_ci 16. Add input color mux to pixel path. Allows red to be sourced 975bd8deadSopenharmony_ci by red, green, blue, alpha, zero, or one. Likewise green, blue, 985bd8deadSopenharmony_ci and alpha. Could also use this mechanism to throw away a fifth 995bd8deadSopenharmony_ci component from a CMYKA image! This would elminiate the need for 1005bd8deadSopenharmony_ci RGBAx and xxxxA image formats. 1015bd8deadSopenharmony_ci 1025bd8deadSopenharmony_ci Done: color_matrix. 1035bd8deadSopenharmony_ci 1045bd8deadSopenharmony_ci 17. Support high-resolution pixmaps (lots of bits of color) even 1055bd8deadSopenharmony_ci if only low-resolution visuals are supported by the framebuffer. 1065bd8deadSopenharmony_ci 1075bd8deadSopenharmony_ci Done: fbconfig 1085bd8deadSopenharmony_ci 1095bd8deadSopenharmony_ci 18. Variable display resolution (on the fly) 1105bd8deadSopenharmony_ci 1115bd8deadSopenharmony_ci Done: video_resize. 1125bd8deadSopenharmony_ci 1135bd8deadSopenharmony_ci 19. Light points (automatic shading based on range, even field 1145bd8deadSopenharmony_ci intensity, etc.) 1155bd8deadSopenharmony_ci 1165bd8deadSopenharmony_ci Done: point_parameters. 1175bd8deadSopenharmony_ci 1185bd8deadSopenharmony_ci 20. Textured stamps. (Like trees.) 1195bd8deadSopenharmony_ci 1205bd8deadSopenharmony_ci Done: sprite. 121