replicant-frameworks_native/opengl/libagl2
David Li aa1f54d78f Initial commit of libAgl2 using Pixelflinger2 in external/mesa3d
Somewhat functional, refer to README for details.
Need to enable Android.mk to build.
It builds libGLES_android.so, which needs to replace
 the one in system/lib/egl built by libagl.

Change-Id: Iec3aaa8f3963a4185d81955cd24019eb0c4a5850
Signed-off-by: David Li <davidxli@google.com>
2011-03-08 17:41:29 -08:00
..
src Initial commit of libAgl2 using Pixelflinger2 in external/mesa3d 2011-03-08 17:41:29 -08:00
Android.mk Initial commit of libAgl2 using Pixelflinger2 in external/mesa3d 2011-03-08 17:41:29 -08:00
libagl2.project Initial commit of libAgl2 using Pixelflinger2 in external/mesa3d 2011-03-08 17:41:29 -08:00
README Initial commit of libAgl2 using Pixelflinger2 in external/mesa3d 2011-03-08 17:41:29 -08:00

libAgl2 provides software GL ES 2.0 implementation using Pixelflinger2 in external/mesa3d

To build, enable Android.mk, which builds libGLES_android.so, then replace the one built from libAgl in system/lib/egl.
ES 1.0 functions are not implemented and will cause exit, so do not setprop debug.egl.hw 0 until launcher is loaded.

All functions have little to none error checking.
Not thread safe, Pixelflinger2 uses some static data.

Most shader functions are implemented, however, most Get* functions for shaders/programs/uniforms/attribs are not.
No name system for shaders/programs, just using the pointers as names.

Basic glTexImage2D, glTexSubImage2D, glCopyImage2D and glCopySubImage2D are implemented, with a range of 8/16/24/32bpp formats.
Cube map support is minimal. No mipmapping.
TexParameter is mostly implemented, supports texcoord wrap modes, and only linear for both min and mag, or nearest for both min and mag filtering.
Texture names are implemented, but bad.

Frame buffer and render buffers are not implemented.

Depth and stencil are implemented, but not tested.
Blending seems to work.
Colorbuffer supports RGBA_8888 and RGB_565.

Vertex buffer objects are implemented.
Some GL_TRIANGLES and GL_TRIANGLE_STRIPS modes for glDrawArrays and glDrawElements are implemented, but vertex order is probably wrong so culling is disabled.

Basic apps should work, and some libhwui should work, except for frame buffer operations, which will cause exit.