David Li | aa1f54d | 2011-03-01 16:54:04 -0800 | [diff] [blame] | 1 | libAgl2 provides software GL ES 2.0 implementation using Pixelflinger2 in external/mesa3d |
| 2 | |
| 3 | To build, enable Android.mk, which builds libGLES_android.so, then replace the one built from libAgl in system/lib/egl. |
| 4 | ES 1.0 functions are not implemented and will cause exit, so do not setprop debug.egl.hw 0 until launcher is loaded. |
| 5 | |
| 6 | All functions have little to none error checking. |
| 7 | Not thread safe, Pixelflinger2 uses some static data. |
| 8 | |
| 9 | Most shader functions are implemented, however, most Get* functions for shaders/programs/uniforms/attribs are not. |
| 10 | No name system for shaders/programs, just using the pointers as names. |
| 11 | |
| 12 | Basic glTexImage2D, glTexSubImage2D, glCopyImage2D and glCopySubImage2D are implemented, with a range of 8/16/24/32bpp formats. |
| 13 | Cube map support is minimal. No mipmapping. |
| 14 | TexParameter is mostly implemented, supports texcoord wrap modes, and only linear for both min and mag, or nearest for both min and mag filtering. |
| 15 | Texture names are implemented, but bad. |
| 16 | |
| 17 | Frame buffer and render buffers are not implemented. |
| 18 | |
| 19 | Depth and stencil are implemented, but not tested. |
| 20 | Blending seems to work. |
| 21 | Colorbuffer supports RGBA_8888 and RGB_565. |
| 22 | |
| 23 | Vertex buffer objects are implemented. |
| 24 | Some GL_TRIANGLES and GL_TRIANGLE_STRIPS modes for glDrawArrays and glDrawElements are implemented, but vertex order is probably wrong so culling is disabled. |
| 25 | |
| 26 | Basic apps should work, and some libhwui should work, except for frame buffer operations, which will cause exit. |