aa1f54d78f
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>
80 lines
2.6 KiB
C++
80 lines
2.6 KiB
C++
#include "gles2context.h"
|
|
|
|
static char const * const gVendorString = "Android";
|
|
static char const * const gRendererString = "Android PixelFlinger2 0.0";
|
|
static char const * const gVersionString = "OpenGL ES 2.0";
|
|
static char const * const gExtensionsString =
|
|
// "GL_OES_byte_coordinates " // OK
|
|
// "GL_OES_fixed_point " // OK
|
|
// "GL_OES_single_precision " // OK
|
|
// "GL_OES_read_format " // OK
|
|
// "GL_OES_compressed_paletted_texture " // OK
|
|
// "GL_OES_draw_texture " // OK
|
|
// "GL_OES_matrix_get " // OK
|
|
// "GL_OES_query_matrix " // OK
|
|
// // "GL_OES_point_size_array " // TODO
|
|
// // "GL_OES_point_sprite " // TODO
|
|
// "GL_OES_EGL_image " // OK
|
|
//#ifdef GL_OES_compressed_ETC1_RGB8_texture
|
|
// "GL_OES_compressed_ETC1_RGB8_texture " // OK
|
|
//#endif
|
|
// "GL_ARB_texture_compression " // OK
|
|
// "GL_ARB_texture_non_power_of_two " // OK
|
|
// "GL_ANDROID_user_clip_plane " // OK
|
|
// "GL_ANDROID_vertex_buffer_object " // OK
|
|
// "GL_ANDROID_generate_mipmap " // OK
|
|
""
|
|
;
|
|
|
|
void glGetIntegerv(GLenum pname, GLint* params)
|
|
{
|
|
switch (pname) {
|
|
case GL_MAX_TEXTURE_SIZE :
|
|
*params = 4096; // limit is in precision of texcoord calculation, which uses 16.16
|
|
break;
|
|
case GL_MAX_VERTEX_ATTRIBS:
|
|
*params = GGL_MAXVERTEXATTRIBS;
|
|
break;
|
|
case GL_MAX_VERTEX_UNIFORM_VECTORS:
|
|
*params = GGL_MAXVERTEXUNIFORMVECTORS;
|
|
break;
|
|
case GL_MAX_VARYING_VECTORS:
|
|
*params = GGL_MAXVARYINGVECTORS;
|
|
break;
|
|
case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS:
|
|
*params = GGL_MAXCOMBINEDTEXTUREIMAGEUNITS;
|
|
break;
|
|
case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS:
|
|
*params = GGL_MAXVERTEXTEXTUREIMAGEUNITS;
|
|
break;
|
|
case GL_MAX_TEXTURE_IMAGE_UNITS:
|
|
*params = GGL_MAXTEXTUREIMAGEUNITS;
|
|
break;
|
|
case GL_MAX_FRAGMENT_UNIFORM_VECTORS:
|
|
*params = GGL_MAXFRAGMENTUNIFORMVECTORS;
|
|
break;
|
|
case GL_ALIASED_LINE_WIDTH_RANGE:
|
|
*params = 1; // TODO: not implemented
|
|
break;
|
|
default:
|
|
LOGD("agl2: glGetIntegerv 0x%.4X", pname);
|
|
assert(0);
|
|
}
|
|
}
|
|
|
|
const GLubyte* glGetString(GLenum name)
|
|
{
|
|
switch (name) {
|
|
case GL_VENDOR:
|
|
return (const GLubyte*)gVendorString;
|
|
case GL_RENDERER:
|
|
return (const GLubyte*)gRendererString;
|
|
case GL_VERSION:
|
|
return (const GLubyte*)gVersionString;
|
|
case GL_EXTENSIONS:
|
|
return (const GLubyte*)gExtensionsString;
|
|
}
|
|
assert(0); //(c, GL_INVALID_ENUM);
|
|
return 0;
|
|
}
|