Fix FBO/Texture/renderbuffer class hierarchy issues
TRAC #14744
Issue=51/52
Delegated format queries to RenderbufferStorage.
Eliminated TextureColorbufferProxy by merging it into Colorbuffer.
Abstracted texture colorbuffer queries.
Moved some conversion functions to the right namespace.
Fixed line-endings in Texture.cpp
Signed-off-by: Daniel Koch
Author: Nicolas Capens <nicolas@transgaming.com>
git-svn-id: https://angleproject.googlecode.com/svn/trunk@553 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index cfc3a45..9ab0abe 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -1044,7 +1044,7 @@
}
gl::Colorbuffer *source = framebuffer->getColorbuffer();
- GLenum colorbufferFormat = source->getFormat();
+ GLenum colorbufferFormat = source->getInternalFormat();
// [OpenGL ES 2.0.24] table 3.9
switch (internalformat)
@@ -1178,7 +1178,7 @@
}
gl::Colorbuffer *source = framebuffer->getColorbuffer();
- GLenum colorbufferFormat = source->getFormat();
+ GLenum colorbufferFormat = source->getInternalFormat();
gl::Texture *texture = NULL;
if (target == GL_TEXTURE_2D)
@@ -1196,7 +1196,7 @@
return error(GL_INVALID_OPERATION);
}
- GLenum textureFormat = texture->getFormat();
+ GLenum textureFormat = texture->getInternalFormat();
// [OpenGL ES 2.0.24] table 3.9
switch (textureFormat)
@@ -2954,85 +2954,23 @@
switch (pname)
{
- case GL_RENDERBUFFER_WIDTH:
- *params = renderbuffer->getWidth();
- break;
- case GL_RENDERBUFFER_HEIGHT:
- *params = renderbuffer->getHeight();
- break;
- case GL_RENDERBUFFER_INTERNAL_FORMAT:
- *params = renderbuffer->getFormat();
- break;
- case GL_RENDERBUFFER_RED_SIZE:
- if (renderbuffer->isColorbuffer())
- {
- *params = static_cast<gl::Colorbuffer*>(renderbuffer->getStorage())->getRedSize();
- }
- else
- {
- *params = 0;
- }
- break;
- case GL_RENDERBUFFER_GREEN_SIZE:
- if (renderbuffer->isColorbuffer())
- {
- *params = static_cast<gl::Colorbuffer*>(renderbuffer->getStorage())->getGreenSize();
- }
- else
- {
- *params = 0;
- }
- break;
- case GL_RENDERBUFFER_BLUE_SIZE:
- if (renderbuffer->isColorbuffer())
- {
- *params = static_cast<gl::Colorbuffer*>(renderbuffer->getStorage())->getBlueSize();
- }
- else
- {
- *params = 0;
- }
- break;
- case GL_RENDERBUFFER_ALPHA_SIZE:
- if (renderbuffer->isColorbuffer())
- {
- *params = static_cast<gl::Colorbuffer*>(renderbuffer->getStorage())->getAlphaSize();
- }
- else
- {
- *params = 0;
- }
- break;
- case GL_RENDERBUFFER_DEPTH_SIZE:
- if (renderbuffer->isDepthbuffer())
- {
- *params = static_cast<gl::Depthbuffer*>(renderbuffer->getStorage())->getDepthSize();
- }
- else
- {
- *params = 0;
- }
- break;
- case GL_RENDERBUFFER_STENCIL_SIZE:
- if (renderbuffer->isStencilbuffer())
- {
- *params = static_cast<gl::Stencilbuffer*>(renderbuffer->getStorage())->getStencilSize();
- }
- else
- {
- *params = 0;
- }
- break;
+ case GL_RENDERBUFFER_WIDTH: *params = renderbuffer->getWidth(); break;
+ case GL_RENDERBUFFER_HEIGHT: *params = renderbuffer->getHeight(); break;
+ case GL_RENDERBUFFER_INTERNAL_FORMAT: *params = renderbuffer->getInternalFormat(); break;
+ case GL_RENDERBUFFER_RED_SIZE: *params = renderbuffer->getRedSize(); break;
+ case GL_RENDERBUFFER_GREEN_SIZE: *params = renderbuffer->getGreenSize(); break;
+ case GL_RENDERBUFFER_BLUE_SIZE: *params = renderbuffer->getBlueSize(); break;
+ case GL_RENDERBUFFER_ALPHA_SIZE: *params = renderbuffer->getAlphaSize(); break;
+ case GL_RENDERBUFFER_DEPTH_SIZE: *params = renderbuffer->getDepthSize(); break;
+ case GL_RENDERBUFFER_STENCIL_SIZE: *params = renderbuffer->getStencilSize(); break;
case GL_RENDERBUFFER_SAMPLES_ANGLE:
+ if (context->getMaxSupportedSamples() != 0)
{
- if (context->getMaxSupportedSamples() != 0)
- {
- *params = renderbuffer->getStorage()->getSamples();
- }
- else
- {
- return error(GL_INVALID_ENUM);
- }
+ *params = renderbuffer->getSamples();
+ }
+ else
+ {
+ return error(GL_INVALID_ENUM);
}
break;
default:
@@ -4797,7 +4735,7 @@
return error(GL_INVALID_OPERATION);
}
- if (format != texture->getFormat())
+ if (format != texture->getInternalFormat())
{
return error(GL_INVALID_OPERATION);
}
@@ -4818,7 +4756,7 @@
return error(GL_INVALID_OPERATION);
}
- if (format != texture->getFormat())
+ if (format != texture->getInternalFormat())
{
return error(GL_INVALID_OPERATION);
}