GLESv1 extensions
This fix adds support for OpenGLES 1.1 extensions in the codec layer. This fix also includes bug fixes in GLEncoder (client-state) and gles android wrapper modules. Change-Id: I512649724d43e4af9d3ce5d49ae66d9f4da0b823
This commit is contained in:
@@ -61,12 +61,16 @@ int GLDecoder::initGL(get_proc_func_t getProcFunc, void *getProcFuncData)
|
||||
set_glNormalPointerOffset(s_glNormalPointerOffset);
|
||||
set_glTexCoordPointerOffset(s_glTexCoordPointerOffset);
|
||||
set_glPointSizePointerOffset(s_glPointSizePointerOffset);
|
||||
set_glWeightPointerOffset(s_glWeightPointerOffset);
|
||||
set_glMatrixIndexPointerOffset(s_glMatrixIndexPointerOffset);
|
||||
|
||||
set_glVertexPointerData(s_glVertexPointerData);
|
||||
set_glColorPointerData(s_glColorPointerData);
|
||||
set_glNormalPointerData(s_glNormalPointerData);
|
||||
set_glTexCoordPointerData(s_glTexCoordPointerData);
|
||||
set_glPointSizePointerData(s_glPointSizePointerData);
|
||||
set_glWeightPointerData(s_glWeightPointerData);
|
||||
set_glMatrixIndexPointerData(s_glMatrixIndexPointerData);
|
||||
|
||||
set_glDrawElementsOffset(s_glDrawElementsOffset);
|
||||
set_glDrawElementsData(s_glDrawElementsData);
|
||||
@@ -104,6 +108,20 @@ void GLDecoder::s_glPointSizePointerOffset(void *self, GLenum type, GLsizei stri
|
||||
ctx->glPointSizePointerOES(type, stride, (void *)offset);
|
||||
}
|
||||
|
||||
void GLDecoder::s_glWeightPointerOffset(void * self, GLint size, GLenum type, GLsizei stride, GLuint offset)
|
||||
{
|
||||
GLDecoder *ctx = (GLDecoder *)self;
|
||||
ctx->glWeightPointerOES(size, type, stride, (void*)offset);
|
||||
}
|
||||
|
||||
void GLDecoder::s_glMatrixIndexPointerOffset(void * self, GLint size, GLenum type, GLsizei stride, GLuint offset)
|
||||
{
|
||||
GLDecoder *ctx = (GLDecoder *)self;
|
||||
ctx->glMatrixIndexPointerOES(size, type, stride, (void*)offset);
|
||||
}
|
||||
|
||||
|
||||
|
||||
#define STORE_POINTER_DATA_OR_ABORT(location) \
|
||||
if (ctx->m_contextData != NULL) { \
|
||||
ctx->m_contextData->storePointerData((location), data, datalen); \
|
||||
@@ -158,6 +176,24 @@ void GLDecoder::s_glPointSizePointerData(void *self, GLenum type, GLsizei stride
|
||||
ctx->glPointSizePointerOES(type, 0, ctx->m_contextData->pointerData(GLDecoderContextData::POINTSIZE_LOCATION));
|
||||
}
|
||||
|
||||
void GLDecoder::s_glWeightPointerData(void * self, GLint size, GLenum type, GLsizei stride, void * data, GLuint datalen)
|
||||
{
|
||||
GLDecoder *ctx = (GLDecoder *)self;
|
||||
|
||||
STORE_POINTER_DATA_OR_ABORT(GLDecoderContextData::WEIGHT_LOCATION);
|
||||
|
||||
ctx->glWeightPointerOES(size, type, 0, ctx->m_contextData->pointerData(GLDecoderContextData::WEIGHT_LOCATION));
|
||||
}
|
||||
|
||||
void GLDecoder::s_glMatrixIndexPointerData(void * self, GLint size, GLenum type, GLsizei stride, void * data, GLuint datalen)
|
||||
{
|
||||
GLDecoder *ctx = (GLDecoder *)self;
|
||||
|
||||
STORE_POINTER_DATA_OR_ABORT(GLDecoderContextData::MATRIXINDEX_LOCATION);
|
||||
|
||||
ctx->glMatrixIndexPointerOES(size, type, 0, ctx->m_contextData->pointerData(GLDecoderContextData::MATRIXINDEX_LOCATION));
|
||||
}
|
||||
|
||||
void GLDecoder::s_glDrawElementsOffset(void *self, GLenum mode, GLsizei count, GLenum type, GLuint offset)
|
||||
{
|
||||
GLDecoder *ctx = (GLDecoder *)self;
|
||||
|
||||
@@ -53,6 +53,12 @@ private:
|
||||
static void s_glDrawElementsOffset(void *self, GLenum mode, GLsizei count, GLenum type, GLuint offset);
|
||||
static void s_glDrawElementsData(void *self, GLenum mode, GLsizei count, GLenum type, void * data, GLuint datalen);
|
||||
|
||||
static void s_glWeightPointerData(void * self, GLint size, GLenum type, GLsizei stride, void * data, GLuint datalen);
|
||||
static void s_glWeightPointerOffset(void * self, GLint size, GLenum type, GLsizei stride, GLuint offset);
|
||||
|
||||
static void s_glMatrixIndexPointerData(void * self, GLint size, GLenum type, GLsizei stride, void * data, GLuint datalen);
|
||||
static void s_glMatrixIndexPointerOffset(void * self, GLint size, GLenum type, GLsizei stride, GLuint offset);
|
||||
|
||||
static void * s_getProc(const char *name, void *userData);
|
||||
|
||||
GLDecoderContextData *m_contextData;
|
||||
|
||||
Reference in New Issue
Block a user