khronos

09-17-2004, 09:44 AM

Should the OpenGL ES 2.0 API include the fixed functionality from OpenGL ES 1.X that can be cleanly replaced by programmable vertex and fragment shaders?

OpenGL ES 2.0 will provide vertex and fragment shader programmability using a close derivative of the desktop OpenGL Shading Language. The desktop OpenGL 2.0 API retains full OpenGL 1.5 fixed functionality to provide full backwards compatibility within a single API. Desktop OpenGL 2.0 also enables fine-grained mixing of shaders with the original fixed-function pipeline to enable OpenGL 1.X programs to be incrementally upgraded with programmability. The design goals for OpenGL ES 2.0 place a stronger emphasis on API simplicity and small driver footprint for embedded markets. OpenGL ES 2.0 could eliminate the fixed functionality from OpenGL ES 1.X that can be cleanly replaced by programmable vertex and fragment shaders - resulting in a smaller, simpler API. Platforms that need backwards compatibility with OpenGL ES 1.X applications could ship a separate OpenGL ES 1.X library. The source code of shader programs that emulate the full OpenGL ES 1.X fixed pipeline could be provided to execute 1.X applications that wish to incrementally use programmability through modifying those shaders. Just as with OpenGL ES 1.X, some software modifications would be necessary to port applications between desktop OpenGL 2.0 and embedded OpenGL ES 2.0.

OpenGL ES 2.0 will provide vertex and fragment shader programmability using a close derivative of the desktop OpenGL Shading Language. The desktop OpenGL 2.0 API retains full OpenGL 1.5 fixed functionality to provide full backwards compatibility within a single API. Desktop OpenGL 2.0 also enables fine-grained mixing of shaders with the original fixed-function pipeline to enable OpenGL 1.X programs to be incrementally upgraded with programmability. The design goals for OpenGL ES 2.0 place a stronger emphasis on API simplicity and small driver footprint for embedded markets. OpenGL ES 2.0 could eliminate the fixed functionality from OpenGL ES 1.X that can be cleanly replaced by programmable vertex and fragment shaders - resulting in a smaller, simpler API. Platforms that need backwards compatibility with OpenGL ES 1.X applications could ship a separate OpenGL ES 1.X library. The source code of shader programs that emulate the full OpenGL ES 1.X fixed pipeline could be provided to execute 1.X applications that wish to incrementally use programmability through modifying those shaders. Just as with OpenGL ES 1.X, some software modifications would be necessary to port applications between desktop OpenGL 2.0 and embedded OpenGL ES 2.0.