am f4b1fa4c: Merge "GLESv2 Translator: fix glGet*"
* commit 'f4b1fa4c498bd43365f3000746f004be6e815511': GLESv2 Translator: fix glGet*
This commit is contained in:
@@ -687,18 +687,14 @@ GL_API void GL_APIENTRY glGetBooleanv( GLenum pname, GLboolean *params) {
|
|||||||
|
|
||||||
switch(pname)
|
switch(pname)
|
||||||
{
|
{
|
||||||
case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
|
case GL_FRAMEBUFFER_BINDING_OES:
|
||||||
case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
|
case GL_RENDERBUFFER_BINDING_OES:
|
||||||
case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
|
{
|
||||||
glGetIntegerv(pname, &i);
|
GLint name;
|
||||||
*params = (i != 0) ? GL_TRUE : GL_FALSE;
|
glGetIntegerv(pname,&name);
|
||||||
break;
|
*params = name!=0 ? GL_TRUE: GL_FALSE;
|
||||||
|
}
|
||||||
case GL_COMPRESSED_TEXTURE_FORMATS:
|
break;
|
||||||
glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &i);
|
|
||||||
*params = (i != 0) ? GL_TRUE : GL_FALSE;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case GL_TEXTURE_GEN_STR_OES:
|
case GL_TEXTURE_GEN_STR_OES:
|
||||||
{
|
{
|
||||||
GLboolean state_s = GL_FALSE;
|
GLboolean state_s = GL_FALSE;
|
||||||
@@ -709,8 +705,7 @@ GL_API void GL_APIENTRY glGetBooleanv( GLenum pname, GLboolean *params) {
|
|||||||
ctx->dispatcher().glGetBooleanv(GL_TEXTURE_GEN_R,&state_r);
|
ctx->dispatcher().glGetBooleanv(GL_TEXTURE_GEN_R,&state_r);
|
||||||
*params = state_s && state_t && state_r ? GL_TRUE: GL_FALSE;
|
*params = state_s && state_t && state_r ? GL_TRUE: GL_FALSE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
ctx->dispatcher().glGetBooleanv(pname,params);
|
ctx->dispatcher().glGetBooleanv(pname,params);
|
||||||
}
|
}
|
||||||
@@ -766,33 +761,11 @@ GL_API void GL_APIENTRY glGetFixedv( GLenum pname, GLfixed *params) {
|
|||||||
|
|
||||||
switch(pname)
|
switch(pname)
|
||||||
{
|
{
|
||||||
case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
|
case GL_FRAMEBUFFER_BINDING_OES:
|
||||||
case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
|
case GL_RENDERBUFFER_BINDING_OES:
|
||||||
case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
|
|
||||||
glGetIntegerv(pname, &i);
|
|
||||||
*params = I2X(i);
|
|
||||||
nParams = 0;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case GL_COMPRESSED_TEXTURE_FORMATS:
|
|
||||||
glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &i);
|
|
||||||
if(i > 0)
|
|
||||||
{
|
|
||||||
GLint* iParams = new GLint[i];
|
|
||||||
glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS, iParams);
|
|
||||||
while(i >= 0)
|
|
||||||
{
|
|
||||||
params[i] = I2X(iParams[i]);
|
|
||||||
i--;
|
|
||||||
}
|
|
||||||
delete [] iParams;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case GL_TEXTURE_GEN_STR_OES:
|
case GL_TEXTURE_GEN_STR_OES:
|
||||||
ctx->dispatcher().glGetFloatv(GL_TEXTURE_GEN_S,&fParams[0]);
|
glGetFloatv(pname,&fParams[0]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
ctx->dispatcher().glGetFloatv(pname,fParams);
|
ctx->dispatcher().glGetFloatv(pname,fParams);
|
||||||
}
|
}
|
||||||
@@ -815,34 +788,13 @@ GL_API void GL_APIENTRY glGetFloatv( GLenum pname, GLfloat *params) {
|
|||||||
|
|
||||||
GLint i;
|
GLint i;
|
||||||
|
|
||||||
switch(pname)
|
switch (pname) {
|
||||||
{
|
case GL_FRAMEBUFFER_BINDING_OES:
|
||||||
case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
|
case GL_RENDERBUFFER_BINDING_OES:
|
||||||
case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
|
case GL_TEXTURE_GEN_STR_OES:
|
||||||
case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
|
glGetIntegerv(pname,&i);
|
||||||
glGetIntegerv(pname, &i);
|
|
||||||
*params = (GLfloat)i;
|
*params = (GLfloat)i;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GL_COMPRESSED_TEXTURE_FORMATS:
|
|
||||||
glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &i);
|
|
||||||
if(i > 0)
|
|
||||||
{
|
|
||||||
GLint* iParams = new GLint[i];
|
|
||||||
glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS, iParams);
|
|
||||||
while(i >= 0)
|
|
||||||
{
|
|
||||||
params[i] = (GLfloat)iParams[i];
|
|
||||||
i--;
|
|
||||||
}
|
|
||||||
delete [] iParams;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case GL_TEXTURE_GEN_STR_OES:
|
|
||||||
ctx->dispatcher().glGetFloatv(GL_TEXTURE_GEN_S,¶ms[0]);
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
ctx->dispatcher().glGetFloatv(pname,params);
|
ctx->dispatcher().glGetFloatv(pname,params);
|
||||||
}
|
}
|
||||||
@@ -855,29 +807,26 @@ GL_API void GL_APIENTRY glGetIntegerv( GLenum pname, GLint *params) {
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GLint i;
|
||||||
|
|
||||||
switch(pname)
|
switch(pname)
|
||||||
{
|
{
|
||||||
case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
|
|
||||||
*params = GL_UNSIGNED_BYTE;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
|
|
||||||
*params = GL_RGBA;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case GL_TEXTURE_GEN_STR_OES:
|
case GL_TEXTURE_GEN_STR_OES:
|
||||||
ctx->dispatcher().glGetIntegerv(GL_TEXTURE_GEN_S,¶ms[0]);
|
ctx->dispatcher().glGetIntegerv(GL_TEXTURE_GEN_S,¶ms[0]);
|
||||||
break;
|
break;
|
||||||
|
case GL_FRAMEBUFFER_BINDING_OES:
|
||||||
case GL_COMPRESSED_TEXTURE_FORMATS:
|
if (thrd->shareGroup.Ptr()) {
|
||||||
getCompressedFormats(params);
|
ctx->dispatcher().glGetIntegerv(pname,&i);
|
||||||
|
*params = thrd->shareGroup->getLocalName(FRAMEBUFFER,i);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
case GL_RENDERBUFFER_BINDING_OES:
|
||||||
case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
|
if (thrd->shareGroup.Ptr()) {
|
||||||
*params = getCompressedFormats(NULL);
|
ctx->dispatcher().glGetIntegerv(pname,&i);
|
||||||
|
*params = thrd->shareGroup->getLocalName(RENDERBUFFER,i);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
ctx->dispatcher().glGetIntegerv(pname,params);
|
ctx->dispatcher().glGetIntegerv(pname,params);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -638,7 +638,9 @@ GL_APICALL int GL_APIENTRY glGetAttribLocation(GLuint program, const GLchar* nam
|
|||||||
|
|
||||||
GL_APICALL void GL_APIENTRY glGetBooleanv(GLenum pname, GLboolean* params){
|
GL_APICALL void GL_APIENTRY glGetBooleanv(GLenum pname, GLboolean* params){
|
||||||
GET_CTX();
|
GET_CTX();
|
||||||
ctx->dispatcher().glGetBooleanv(pname,params);
|
if (!ctx->glGetBooleanv(pname,params)) {
|
||||||
|
ctx->dispatcher().glGetBooleanv(pname,params);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GL_APICALL void GL_APIENTRY glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params){
|
GL_APICALL void GL_APIENTRY glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params){
|
||||||
@@ -669,12 +671,55 @@ GL_APICALL GLenum GL_APIENTRY glGetError(void){
|
|||||||
|
|
||||||
GL_APICALL void GL_APIENTRY glGetFloatv(GLenum pname, GLfloat* params){
|
GL_APICALL void GL_APIENTRY glGetFloatv(GLenum pname, GLfloat* params){
|
||||||
GET_CTX();
|
GET_CTX();
|
||||||
ctx->dispatcher().glGetFloatv(pname,params);
|
if (ctx->glGetFloatv(pname,params)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
GLint i;
|
||||||
|
switch (pname) {
|
||||||
|
case GL_CURRENT_PROGRAM:
|
||||||
|
case GL_FRAMEBUFFER_BINDING:
|
||||||
|
case GL_RENDERBUFFER_BINDING:
|
||||||
|
glGetIntegerv(pname,&i);
|
||||||
|
*params = (GLfloat)i;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
ctx->dispatcher().glGetFloatv(pname,params);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GL_APICALL void GL_APIENTRY glGetIntegerv(GLenum pname, GLint* params){
|
GL_APICALL void GL_APIENTRY glGetIntegerv(GLenum pname, GLint* params){
|
||||||
GET_CTX();
|
GET_CTX();
|
||||||
ctx->dispatcher().glGetIntegerv(pname,params);
|
|
||||||
|
if (ctx->glGetIntegerv(pname,params))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
GLint i;
|
||||||
|
|
||||||
|
switch (pname) {
|
||||||
|
case GL_CURRENT_PROGRAM:
|
||||||
|
if (thrd->shareGroup.Ptr()) {
|
||||||
|
ctx->dispatcher().glGetIntegerv(pname,&i);
|
||||||
|
*params = thrd->shareGroup->getLocalName(SHADER,i);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case GL_FRAMEBUFFER_BINDING:
|
||||||
|
if (thrd->shareGroup.Ptr()) {
|
||||||
|
ctx->dispatcher().glGetIntegerv(pname,&i);
|
||||||
|
*params = thrd->shareGroup->getLocalName(FRAMEBUFFER,i);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case GL_RENDERBUFFER_BINDING:
|
||||||
|
if (thrd->shareGroup.Ptr()) {
|
||||||
|
ctx->dispatcher().glGetIntegerv(pname,&i);
|
||||||
|
*params = thrd->shareGroup->getLocalName(RENDERBUFFER,i);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ctx->dispatcher().glGetIntegerv(pname,params);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params){
|
GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params){
|
||||||
|
|||||||
@@ -538,29 +538,59 @@ bool GLEScontext::glGetBooleanv(GLenum pname, GLboolean *params)
|
|||||||
|
|
||||||
bool GLEScontext::glGetFixedv(GLenum pname, GLfixed *params)
|
bool GLEScontext::glGetFixedv(GLenum pname, GLfixed *params)
|
||||||
{
|
{
|
||||||
GLint iParam;
|
bool result = false;
|
||||||
|
GLint numParams = 1;
|
||||||
|
|
||||||
if(glGetIntegerv(pname, &iParam))
|
switch(pname)
|
||||||
{
|
{
|
||||||
*params = I2X(iParam);
|
case GL_COMPRESSED_TEXTURE_FORMATS:
|
||||||
return true;
|
glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &numParams);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
numParams=1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
GLint* iParams = new GLint[numParams];
|
||||||
|
if (numParams>0 && glGetIntegerv(pname,iParams)) {
|
||||||
|
while(numParams >= 0)
|
||||||
|
{
|
||||||
|
params[numParams] = I2X(iParams[numParams]);
|
||||||
|
numParams--;
|
||||||
|
}
|
||||||
|
result = true;
|
||||||
|
}
|
||||||
|
delete [] iParams;
|
||||||
|
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GLEScontext::glGetFloatv(GLenum pname, GLfloat *params)
|
bool GLEScontext::glGetFloatv(GLenum pname, GLfloat *params)
|
||||||
{
|
{
|
||||||
GLint iParam;
|
bool result = false;
|
||||||
|
GLint numParams = 1;
|
||||||
|
|
||||||
if(glGetIntegerv(pname, &iParam))
|
switch(pname)
|
||||||
{
|
{
|
||||||
*params = (GLfloat)iParam;
|
case GL_COMPRESSED_TEXTURE_FORMATS:
|
||||||
return true;
|
glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &numParams);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
numParams=1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
GLint* iParams = new GLint[numParams];
|
||||||
}
|
if (numParams>0 && glGetIntegerv(pname,iParams)) {
|
||||||
|
while(numParams >= 0)
|
||||||
|
{
|
||||||
|
params[numParams] = (GLfloat)iParams[numParams];
|
||||||
|
numParams--;
|
||||||
|
}
|
||||||
|
result = true;
|
||||||
|
}
|
||||||
|
delete [] iParams;
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
bool GLEScontext::glGetIntegerv(GLenum pname, GLint *params)
|
bool GLEScontext::glGetIntegerv(GLenum pname, GLint *params)
|
||||||
{
|
{
|
||||||
@@ -574,10 +604,31 @@ bool GLEScontext::glGetIntegerv(GLenum pname, GLint *params)
|
|||||||
*params = m_elementBuffer;
|
*params = m_elementBuffer;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case GL_TEXTURE_BINDING_CUBE_MAP:
|
||||||
case GL_TEXTURE_BINDING_2D:
|
case GL_TEXTURE_BINDING_2D:
|
||||||
*params = m_tex2DBind[m_activeTexture].texture;
|
*params = m_tex2DBind[m_activeTexture].texture;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case GL_ACTIVE_TEXTURE:
|
||||||
|
*params = m_activeTexture+GL_TEXTURE0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GL_COMPRESSED_TEXTURE_FORMATS:
|
||||||
|
getCompressedFormats(params);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
|
||||||
|
*params = getCompressedFormats(NULL);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
|
||||||
|
*params = GL_UNSIGNED_BYTE;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
|
||||||
|
*params = GL_RGBA;
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user