Commit 4b8df2f5 by Nicolas Capens

Provide missing OpenGL ES 1.x extension for implementation read format/type.

Bug 14643416 Change-Id: Ie710b76fcf1f64849a4f0556c3f0db587304000e Reviewed-on: https://swiftshader-review.googlesource.com/1870Reviewed-by: 's avatarNicolas Capens <capn@google.com> Tested-by: 's avatarNicolas Capens <capn@google.com>
parent 66be2450
......@@ -1082,13 +1082,13 @@ bool Context::getIntegerv(GLenum pname, GLint *params)
}
}
break;
case GL_IMPLEMENTATION_COLOR_READ_TYPE:
case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
{
Framebuffer *framebuffer = getFramebuffer();
*params = framebuffer->getImplementationColorReadType();
}
break;
case GL_IMPLEMENTATION_COLOR_READ_FORMAT:
case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
{
Framebuffer *framebuffer = getFramebuffer();
*params = framebuffer->getImplementationColorReadFormat();
......
......@@ -2409,6 +2409,7 @@ const GLubyte* GL_APIENTRY glGetString(GLenum name)
"GL_OES_element_index_uint "
"GL_OES_framebuffer_object "
"GL_OES_packed_depth_stencil "
"GL_OES_read_format "
"GL_OES_rgb8_rgba8 "
"GL_OES_stencil8 "
"GL_OES_stencil_wrap "
......
......@@ -399,45 +399,45 @@ GLenum Framebuffer::completeness(int &width, int &height, int &samples)
return GL_FRAMEBUFFER_COMPLETE;
}
GLenum Framebuffer::getImplementationColorReadFormat()
{
Renderbuffer *colorbuffer = mColorbufferPointer.get();
if(colorbuffer)
{
switch(colorbuffer->getInternalFormat())
{
case sw::FORMAT_A16B16G16R16F: return GL_RGBA;
case sw::FORMAT_A32B32G32R32F: return GL_RGBA;
case sw::FORMAT_A8R8G8B8: return GL_BGRA_EXT;
case sw::FORMAT_X8R8G8B8: return GL_BGRA_EXT;
case sw::FORMAT_A1R5G5B5: return GL_BGRA_EXT;
case sw::FORMAT_R5G6B5: return 0x80E0; // GL_BGR_EXT
default:
UNREACHABLE();
}
}
return GL_RGBA;
}
GLenum Framebuffer::getImplementationColorReadFormat()
{
Renderbuffer *colorbuffer = mColorbufferPointer.get();
if(colorbuffer)
{
switch(colorbuffer->getInternalFormat())
{
case sw::FORMAT_A16B16G16R16F: return GL_RGBA;
case sw::FORMAT_A32B32G32R32F: return GL_RGBA;
case sw::FORMAT_A8R8G8B8: return GL_BGRA_EXT;
case sw::FORMAT_X8R8G8B8: return GL_BGRA_EXT;
case sw::FORMAT_A1R5G5B5: return GL_BGRA_EXT;
case sw::FORMAT_R5G6B5: return 0x80E0; // GL_BGR_EXT
default:
UNREACHABLE();
}
}
return GL_RGBA;
}
GLenum Framebuffer::getImplementationColorReadType()
{
Renderbuffer *colorbuffer = mColorbufferPointer.get();
if(colorbuffer)
{
switch(colorbuffer->getInternalFormat())
{
case sw::FORMAT_A16B16G16R16F: return GL_HALF_FLOAT_OES;
case sw::FORMAT_A32B32G32R32F: return GL_FLOAT;
case sw::FORMAT_A8R8G8B8: return GL_UNSIGNED_BYTE;
case sw::FORMAT_X8R8G8B8: return GL_UNSIGNED_BYTE;
case sw::FORMAT_A1R5G5B5: return GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT;
case sw::FORMAT_R5G6B5: return GL_UNSIGNED_SHORT_5_6_5;
default:
UNREACHABLE();
}
Renderbuffer *colorbuffer = mColorbufferPointer.get();
if(colorbuffer)
{
switch(colorbuffer->getInternalFormat())
{
case sw::FORMAT_A16B16G16R16F: return GL_HALF_FLOAT_OES;
case sw::FORMAT_A32B32G32R32F: return GL_FLOAT;
case sw::FORMAT_A8R8G8B8: return GL_UNSIGNED_BYTE;
case sw::FORMAT_X8R8G8B8: return GL_UNSIGNED_BYTE;
case sw::FORMAT_A1R5G5B5: return GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT;
case sw::FORMAT_R5G6B5: return GL_UNSIGNED_SHORT_5_6_5;
default:
UNREACHABLE();
}
}
return GL_UNSIGNED_BYTE;
......
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