Commit 5a0e7273 by Nicolas Capens Committed by Nicolas Capens

Restore support for BGRA formats.

Change-Id: I3a239325ed802e9188839c1c743d45930643c273 Reviewed-on: https://swiftshader-review.googlesource.com/14608Tested-by: 's avatarNicolas Capens <nicolascapens@google.com> Reviewed-by: 's avatarAlexis Hétu <sugoi@google.com>
parent f11cd721
...@@ -499,6 +499,9 @@ GLenum Framebuffer::getImplementationColorReadFormat() const ...@@ -499,6 +499,9 @@ GLenum Framebuffer::getImplementationColorReadFormat() const
{ {
switch(colorbuffer->getFormat()) switch(colorbuffer->getFormat())
{ {
case GL_BGRA8_EXT: return GL_BGRA_EXT;
case GL_BGRA4_ANGLE: return GL_BGRA_EXT;
case GL_BGR5_A1_ANGLE: return GL_BGRA_EXT;
case GL_RGBA4: return GL_RGBA; case GL_RGBA4: return GL_RGBA;
case GL_RGB5_A1: return GL_RGBA; case GL_RGB5_A1: return GL_RGBA;
case GL_RGBA8: return GL_RGBA; case GL_RGBA8: return GL_RGBA;
...@@ -559,8 +562,11 @@ GLenum Framebuffer::getImplementationColorReadType() const ...@@ -559,8 +562,11 @@ GLenum Framebuffer::getImplementationColorReadType() const
{ {
switch(colorbuffer->getFormat()) switch(colorbuffer->getFormat())
{ {
case GL_RGBA4: return GL_UNSIGNED_BYTE; case GL_BGRA8_EXT: return GL_UNSIGNED_BYTE;
case GL_RGB5_A1: return GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT; case GL_BGRA4_ANGLE: return GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT;
case GL_BGR5_A1_ANGLE: return GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT;
case GL_RGBA4: return GL_UNSIGNED_SHORT_4_4_4_4;
case GL_RGB5_A1: return GL_UNSIGNED_SHORT_5_5_5_1;
case GL_RGBA8: return GL_UNSIGNED_BYTE; case GL_RGBA8: return GL_UNSIGNED_BYTE;
case GL_RGB565: return GL_UNSIGNED_SHORT_5_6_5; case GL_RGB565: return GL_UNSIGNED_SHORT_5_6_5;
case GL_RGB8: return GL_UNSIGNED_BYTE; case GL_RGB8: return GL_UNSIGNED_BYTE;
......
...@@ -27,6 +27,11 @@ ...@@ -27,6 +27,11 @@
namespace es2 namespace es2
{ {
// Sized internal formats corresponding to GL_BGRA_EXT/GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT and
// GL_BGRA_EXT/GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT format/type combinations, respectively.
const GLint GL_BGRA4_ANGLE = 0x6ABC;
const GLint GL_BGR5_A1_ANGLE = 0x6ABD;
class Texture2D; class Texture2D;
class Texture3D; class Texture3D;
class TextureCubeMap; class TextureCubeMap;
......
...@@ -2280,11 +2280,6 @@ void GenerateMipmap(GLenum target) ...@@ -2280,11 +2280,6 @@ void GenerateMipmap(GLenum target)
return error(GL_INVALID_ENUM); return error(GL_INVALID_ENUM);
} }
if(texture->isCompressed(target, 0) || texture->isDepth(target, 0))
{
return error(GL_INVALID_OPERATION);
}
if(!IsMipmappable(texture->getFormat(target, 0), clientVersion)) if(!IsMipmappable(texture->getFormat(target, 0), clientVersion))
{ {
return error(GL_INVALID_OPERATION); return error(GL_INVALID_OPERATION);
...@@ -4690,7 +4685,7 @@ void RenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum inter ...@@ -4690,7 +4685,7 @@ void RenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum inter
} }
if(samples > es2::IMPLEMENTATION_MAX_SAMPLES || if(samples > es2::IMPLEMENTATION_MAX_SAMPLES ||
(sw::Surface::isNonNormalizedInteger(es2sw::ConvertRenderbufferFormat(internalformat)) && samples > 0)) (IsNonNormalizedInteger(internalformat) && samples > 0))
{ {
return error(GL_INVALID_OPERATION); return error(GL_INVALID_OPERATION);
} }
......
...@@ -44,9 +44,6 @@ namespace es2 ...@@ -44,9 +44,6 @@ namespace es2
FormatMap BuildFormatMap() FormatMap BuildFormatMap()
{ {
static const GLint GL_BGRA4_ANGLEX = 0x6ABC;
static const GLint GL_BGR5_A1_ANGLEX = 0x6ABD;
FormatMap map; FormatMap map;
// | Format | Type | Internal format | // | Format | Type | Internal format |
...@@ -123,8 +120,8 @@ namespace es2 ...@@ -123,8 +120,8 @@ namespace es2
InsertFormatMapping(&map, GL_ALPHA, GL_HALF_FLOAT_OES, GL_ALPHA16F_EXT); InsertFormatMapping(&map, GL_ALPHA, GL_HALF_FLOAT_OES, GL_ALPHA16F_EXT);
InsertFormatMapping(&map, GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_BGRA8_EXT); InsertFormatMapping(&map, GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_BGRA8_EXT);
InsertFormatMapping(&map, GL_BGRA_EXT, GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT, GL_BGRA4_ANGLEX); InsertFormatMapping(&map, GL_BGRA_EXT, GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT, GL_BGRA4_ANGLE);
InsertFormatMapping(&map, GL_BGRA_EXT, GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT, GL_BGR5_A1_ANGLEX); InsertFormatMapping(&map, GL_BGRA_EXT, GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT, GL_BGR5_A1_ANGLE);
InsertFormatMapping(&map, GL_SRGB_EXT, GL_UNSIGNED_BYTE, GL_SRGB8); InsertFormatMapping(&map, GL_SRGB_EXT, GL_UNSIGNED_BYTE, GL_SRGB8);
InsertFormatMapping(&map, GL_SRGB_ALPHA_EXT, GL_UNSIGNED_BYTE, GL_SRGB8_ALPHA8); InsertFormatMapping(&map, GL_SRGB_ALPHA_EXT, GL_UNSIGNED_BYTE, GL_SRGB8_ALPHA8);
......
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