Merge "opengles emulator: GLESv2: glGetShaderPrecision"

This commit is contained in:
David Turner
2011-08-10 01:42:25 -07:00
committed by Android Code Review

View File

@@ -1153,28 +1153,24 @@ GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat(GLenum shadertype, GLenu
GET_CTX_V2(); GET_CTX_V2();
SET_ERROR_IF(!(GLESv2Validate::shaderType(shadertype) && GLESv2Validate::precisionType(precisiontype)),GL_INVALID_ENUM); SET_ERROR_IF(!(GLESv2Validate::shaderType(shadertype) && GLESv2Validate::precisionType(precisiontype)),GL_INVALID_ENUM);
if(ctx->dispatcher().glGetShaderPrecisionFormat != NULL) switch (precisiontype) {
{ case GL_LOW_INT:
ctx->dispatcher().glGetShaderPrecisionFormat(shadertype,precisiontype,range,precision); case GL_MEDIUM_INT:
} case GL_HIGH_INT:
else range[0] = range[1] = 16;
{ *precision = 0;
switch(precisiontype) break;
{
case GL_LOW_INT:
case GL_MEDIUM_INT:
case GL_HIGH_INT:
range[0] = range[1] = 16;
*precision = 0;
break;
case GL_LOW_FLOAT: case GL_LOW_FLOAT:
case GL_MEDIUM_FLOAT: case GL_MEDIUM_FLOAT:
case GL_HIGH_FLOAT: case GL_HIGH_FLOAT:
range[0] = range[1] = 127; if(ctx->dispatcher().glGetShaderPrecisionFormat != NULL) {
*precision = 24; ctx->dispatcher().glGetShaderPrecisionFormat(shadertype,precisiontype,range,precision);
break; } else {
range[0] = range[1] = 127;
*precision = 24;
} }
break;
} }
} }