Commit e4795222 by Alexis Hetu Committed by Alexis Hétu

Fixed texture format checks

- Fixed a few typos in the format map - Added missing OpenGL ES 3.0 types to CheckTextureFormatType Change-Id: I4a0d8ad67fd85f8c32ef528ce1b3c029fe5f84aa Reviewed-on: https://swiftshader-review.googlesource.com/3991Reviewed-by: 's avatarNicolas Capens <capn@google.com> Tested-by: 's avatarAlexis Hétu <sugoi@google.com>
parent fe30f677
......@@ -5730,7 +5730,7 @@ void TexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width,
case GL_DEPTH_COMPONENT32F:
switch(type)
{
case GL_UNSIGNED_INT:
case GL_FLOAT:
break;
default:
return error(GL_INVALID_ENUM);
......
......@@ -184,7 +184,7 @@ static FormatMap BuildFormatMap3D()
InsertFormatMapping(map, GL_LUMINANCE, GL_LUMINANCE, GL_UNSIGNED_BYTE);
InsertFormatMapping(map, GL_ALPHA, GL_ALPHA, GL_UNSIGNED_BYTE);
InsertFormatMapping(map, GL_R8, GL_RED, GL_UNSIGNED_BYTE);
InsertFormatMapping(map, GL_R8_SNORM, GL_RED, GL_UNSIGNED_BYTE);
InsertFormatMapping(map, GL_R8_SNORM, GL_RED, GL_BYTE);
InsertFormatMapping(map, GL_R16F, GL_RED, GL_HALF_FLOAT);
InsertFormatMapping(map, GL_R16F, GL_RED, GL_FLOAT);
InsertFormatMapping(map, GL_R32F, GL_RED, GL_FLOAT);
......@@ -196,8 +196,8 @@ static FormatMap BuildFormatMap3D()
InsertFormatMapping(map, GL_R32I, GL_RED_INTEGER, GL_INT);
InsertFormatMapping(map, GL_RG8, GL_RG, GL_UNSIGNED_BYTE);
InsertFormatMapping(map, GL_RG8_SNORM, GL_RG, GL_BYTE);
InsertFormatMapping(map, GL_R16F, GL_RED, GL_HALF_FLOAT);
InsertFormatMapping(map, GL_R16F, GL_RED, GL_FLOAT);
InsertFormatMapping(map, GL_RG16F, GL_RG, GL_HALF_FLOAT);
InsertFormatMapping(map, GL_RG16F, GL_RG, GL_FLOAT);
InsertFormatMapping(map, GL_RG32F, GL_RG, GL_FLOAT);
InsertFormatMapping(map, GL_RG8UI, GL_RG_INTEGER, GL_UNSIGNED_BYTE);
InsertFormatMapping(map, GL_RG8I, GL_RG_INTEGER, GL_BYTE);
......@@ -230,6 +230,7 @@ static FormatMap BuildFormatMap3D()
InsertFormatMapping(map, GL_RGB5_A1, GL_RGBA, GL_UNSIGNED_BYTE);
InsertFormatMapping(map, GL_RGB5_A1, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1);
InsertFormatMapping(map, GL_RGB5_A1, GL_RGBA, GL_UNSIGNED_INT_2_10_10_10_REV);
InsertFormatMapping(map, GL_RGBA8_SNORM, GL_RGBA, GL_BYTE);
InsertFormatMapping(map, GL_RGBA4, GL_RGBA, GL_UNSIGNED_BYTE);
InsertFormatMapping(map, GL_RGBA4, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4);
InsertFormatMapping(map, GL_RGB10_A2, GL_RGBA, GL_UNSIGNED_INT_2_10_10_10_REV);
......
......@@ -429,6 +429,56 @@ namespace es2
case GL_LUMINANCE:
case GL_LUMINANCE_ALPHA:
return true;
case GL_RED:
case GL_RED_INTEGER:
case GL_RG:
case GL_RG_INTEGER:
case GL_RGB_INTEGER:
case GL_RGBA_INTEGER:
return clientVersion >= 3;
default:
return false;
}
case GL_BYTE:
case GL_SHORT:
case GL_INT:
switch(format)
{
case GL_RGBA:
case GL_BGRA_EXT:
case GL_RGB:
case GL_ALPHA:
case GL_LUMINANCE:
case GL_LUMINANCE_ALPHA:
case GL_RED:
case GL_RED_INTEGER:
case GL_RG:
case GL_RG_INTEGER:
case GL_RGB_INTEGER:
case GL_RGBA_INTEGER:
return clientVersion >= 3;
default:
return false;
}
case GL_UNSIGNED_SHORT:
case GL_UNSIGNED_INT:
switch(format)
{
case GL_RGBA:
case GL_BGRA_EXT:
case GL_RGB:
case GL_ALPHA:
case GL_LUMINANCE:
case GL_LUMINANCE_ALPHA:
case GL_RED:
case GL_RED_INTEGER:
case GL_RG:
case GL_RG_INTEGER:
case GL_RGB_INTEGER:
case GL_RGBA_INTEGER:
return clientVersion >= 3;
case GL_DEPTH_COMPONENT:
return (clientVersion >= 3) || (type == GL_UNSIGNED_INT);
default:
return false;
}
......@@ -447,16 +497,37 @@ namespace es2
case GL_LUMINANCE:
case GL_LUMINANCE_ALPHA:
return true;
case GL_RED:
case GL_RG:
return clientVersion >= 3;
default:
return false;
}
case GL_UNSIGNED_INT_2_10_10_10_REV:
switch(format)
{
case GL_RGBA:
case GL_RGBA_INTEGER:
return clientVersion >= 3;
default:
return false;
}
case GL_UNSIGNED_SHORT_4_4_4_4:
case GL_UNSIGNED_SHORT_5_5_5_1:
return (format == GL_RGBA);
case GL_UNSIGNED_INT_10F_11F_11F_REV:
case GL_UNSIGNED_INT_5_9_9_9_REV:
if(clientVersion < 3)
{
return false;
}
case GL_UNSIGNED_SHORT_5_6_5:
return (format == GL_RGB);
case GL_UNSIGNED_INT:
return (format == GL_DEPTH_COMPONENT);
case GL_FLOAT_32_UNSIGNED_INT_24_8_REV:
if(clientVersion < 3)
{
return false;
}
case GL_UNSIGNED_INT_24_8_OES:
return (format == GL_DEPTH_STENCIL_OES);
default:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment