Rename Renderbuffer to FramebufferAttachment.
Part of the refactoring effort to clean up our classes for FBO
attachments and Renderbuffers.
BUG=angle:660
Change-Id: Id23df904f56499568159611b66c8922b9dce6a3d
Reviewed-on: https://chromium-review.googlesource.com/201832
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libGLESv2/Context.cpp b/src/libGLESv2/Context.cpp
index 79b47c8..879a560 100644
--- a/src/libGLESv2/Context.cpp
+++ b/src/libGLESv2/Context.cpp
@@ -1105,7 +1105,7 @@
return mResourceManager->getTexture(handle);
}
-Renderbuffer *Context::getRenderbuffer(GLuint handle)
+FramebufferAttachment *Context::getRenderbuffer(GLuint handle)
{
return mResourceManager->getRenderbuffer(handle);
}
@@ -1440,7 +1440,7 @@
return;
}
- Renderbuffer *renderbufferObject = mState.renderbuffer.get();
+ FramebufferAttachment *renderbufferObject = mState.renderbuffer.get();
renderbufferObject->setStorage(renderbuffer);
}
@@ -1884,7 +1884,7 @@
case GL_ALPHA_BITS:
{
gl::Framebuffer *framebuffer = getDrawFramebuffer();
- gl::Renderbuffer *colorbuffer = framebuffer->getFirstColorbuffer();
+ gl::FramebufferAttachment *colorbuffer = framebuffer->getFirstColorbuffer();
if (colorbuffer)
{
@@ -1905,7 +1905,7 @@
case GL_DEPTH_BITS:
{
gl::Framebuffer *framebuffer = getDrawFramebuffer();
- gl::Renderbuffer *depthbuffer = framebuffer->getDepthbuffer();
+ gl::FramebufferAttachment *depthbuffer = framebuffer->getDepthbuffer();
if (depthbuffer)
{
@@ -1920,7 +1920,7 @@
case GL_STENCIL_BITS:
{
gl::Framebuffer *framebuffer = getDrawFramebuffer();
- gl::Renderbuffer *stencilbuffer = framebuffer->getStencilbuffer();
+ gl::FramebufferAttachment *stencilbuffer = framebuffer->getStencilbuffer();
if (stencilbuffer)
{
@@ -3348,12 +3348,12 @@
Framebuffer *framebuffer = getReadFramebuffer();
ASSERT(framebuffer && framebuffer->completeness() == GL_FRAMEBUFFER_COMPLETE);
- Renderbuffer *renderbuffer = framebuffer->getReadColorbuffer();
- ASSERT(renderbuffer);
+ FramebufferAttachment *attachment = framebuffer->getReadColorbuffer();
+ ASSERT(attachment);
- *internalFormat = renderbuffer->getActualFormat();
- *format = gl::GetFormat(renderbuffer->getActualFormat(), mClientVersion);
- *type = gl::GetType(renderbuffer->getActualFormat(), mClientVersion);
+ *internalFormat = attachment->getActualFormat();
+ *format = gl::GetFormat(attachment->getActualFormat(), mClientVersion);
+ *type = gl::GetType(attachment->getActualFormat(), mClientVersion);
}
void Context::detachBuffer(GLuint buffer)
@@ -3393,7 +3393,7 @@
// [OpenGL ES 2.0.24] section 4.4 page 112:
// If a texture object is deleted while its image is attached to the currently bound framebuffer, then it is
- // as if FramebufferTexture2D had been called, with a texture of 0, for each attachment point to which this
+ // as if Texture2DAttachment had been called, with a texture of 0, for each attachment point to which this
// image was attached in the currently bound framebuffer.
Framebuffer *readFramebuffer = getReadFramebuffer();
@@ -3883,17 +3883,17 @@
Framebuffer *drawFramebuffer = getDrawFramebuffer();
for (unsigned int i = 0; i < IMPLEMENTATION_MAX_DRAW_BUFFERS; i++)
{
- Renderbuffer *renderBuffer = drawFramebuffer->getColorbuffer(i);
- if (renderBuffer && renderBuffer->isTexture())
+ FramebufferAttachment *attachment = drawFramebuffer->getColorbuffer(i);
+ if (attachment && attachment->isTexture())
{
- (*outSerialArray)[serialCount++] = renderBuffer->getTextureSerial();
+ (*outSerialArray)[serialCount++] = attachment->getTextureSerial();
}
}
- Renderbuffer *depthStencilBuffer = drawFramebuffer->getDepthOrStencilbuffer();
- if (depthStencilBuffer && depthStencilBuffer->isTexture())
+ FramebufferAttachment *depthStencilAttachment = drawFramebuffer->getDepthOrStencilbuffer();
+ if (depthStencilAttachment && depthStencilAttachment->isTexture())
{
- (*outSerialArray)[serialCount++] = depthStencilBuffer->getTextureSerial();
+ (*outSerialArray)[serialCount++] = depthStencilAttachment->getTextureSerial();
}
std::sort(outSerialArray->begin(), outSerialArray->begin() + serialCount);
@@ -3958,43 +3958,43 @@
if (attachments[i] >= GL_COLOR_ATTACHMENT0 && attachments[i] <= GL_COLOR_ATTACHMENT15)
{
- gl::Renderbuffer *renderBuffer = frameBuffer->getColorbuffer(attachments[i] - GL_COLOR_ATTACHMENT0);
- if (renderBuffer)
+ gl::FramebufferAttachment *attachment = frameBuffer->getColorbuffer(attachments[i] - GL_COLOR_ATTACHMENT0);
+ if (attachment)
{
- renderTarget = renderBuffer->getRenderTarget();
+ renderTarget = attachment->getRenderTarget();
}
}
else if (attachments[i] == GL_COLOR)
{
- gl::Renderbuffer *renderBuffer = frameBuffer->getColorbuffer(0);
- if (renderBuffer)
+ gl::FramebufferAttachment *attachment = frameBuffer->getColorbuffer(0);
+ if (attachment)
{
- renderTarget = renderBuffer->getRenderTarget();
+ renderTarget = attachment->getRenderTarget();
}
}
else
{
- gl::Renderbuffer *renderBuffer = NULL;
+ gl::FramebufferAttachment *attachment = NULL;
switch (attachments[i])
{
case GL_DEPTH_ATTACHMENT:
case GL_DEPTH:
- renderBuffer = frameBuffer->getDepthbuffer();
+ attachment = frameBuffer->getDepthbuffer();
break;
case GL_STENCIL_ATTACHMENT:
case GL_STENCIL:
- renderBuffer = frameBuffer->getStencilbuffer();
+ attachment = frameBuffer->getStencilbuffer();
break;
case GL_DEPTH_STENCIL_ATTACHMENT:
- renderBuffer = frameBuffer->getDepthOrStencilbuffer();
+ attachment = frameBuffer->getDepthOrStencilbuffer();
break;
default:
UNREACHABLE();
}
- if (renderBuffer)
+ if (attachment)
{
- renderTarget = renderBuffer->getDepthStencil();
+ renderTarget = attachment->getDepthStencil();
}
}
diff --git a/src/libGLESv2/Context.h b/src/libGLESv2/Context.h
index b3c8a3f..ab79004 100644
--- a/src/libGLESv2/Context.h
+++ b/src/libGLESv2/Context.h
@@ -50,7 +50,7 @@
class Texture3D;
class Texture2DArray;
class Framebuffer;
-class Renderbuffer;
+class FramebufferAttachment;
class RenderbufferStorage;
class Colorbuffer;
class Depthbuffer;
@@ -100,7 +100,7 @@
BindingPointer<Buffer> arrayBuffer;
GLuint readFramebuffer;
GLuint drawFramebuffer;
- BindingPointer<Renderbuffer> renderbuffer;
+ BindingPointer<FramebufferAttachment> renderbuffer;
GLuint currentProgram;
VertexAttribCurrentValueData vertexAttribCurrentValues[MAX_VERTEX_ATTRIBS]; // From glVertexAttrib
@@ -331,7 +331,7 @@
Program *getProgram(GLuint handle) const;
Texture *getTexture(GLuint handle);
Framebuffer *getFramebuffer(GLuint handle) const;
- Renderbuffer *getRenderbuffer(GLuint handle);
+ FramebufferAttachment *getRenderbuffer(GLuint handle);
VertexArray *getVertexArray(GLuint handle) const;
Sampler *getSampler(GLuint handle) const;
Query *getQuery(GLuint handle, bool create, GLenum type);
diff --git a/src/libGLESv2/Framebuffer.cpp b/src/libGLESv2/Framebuffer.cpp
index 97d37d0..b78419f 100644
--- a/src/libGLESv2/Framebuffer.cpp
+++ b/src/libGLESv2/Framebuffer.cpp
@@ -42,7 +42,7 @@
mStencilbuffer.set(NULL, GL_NONE, 0, 0);
}
-Renderbuffer *Framebuffer::lookupRenderbuffer(GLenum type, GLuint handle, GLint level, GLint layer) const
+FramebufferAttachment *Framebuffer::lookupAttachment(GLenum type, GLuint handle, GLint level, GLint layer) const
{
gl::Context *context = gl::getContext();
@@ -59,7 +59,7 @@
Texture *texture = context->getTexture(handle);
if (texture && texture->getTarget() == GL_TEXTURE_2D)
{
- return static_cast<Texture2D*>(texture)->getRenderbuffer(level);
+ return static_cast<Texture2D*>(texture)->getAttachment(level);
}
else
{
@@ -77,7 +77,7 @@
Texture *texture = context->getTexture(handle);
if (texture && texture->getTarget() == GL_TEXTURE_CUBE_MAP)
{
- return static_cast<TextureCubeMap*>(texture)->getRenderbuffer(type, level);
+ return static_cast<TextureCubeMap*>(texture)->getAttachment(type, level);
}
else
{
@@ -90,7 +90,7 @@
Texture *texture = context->getTexture(handle);
if (texture && texture->getTarget() == GL_TEXTURE_3D)
{
- return static_cast<Texture3D*>(texture)->getRenderbuffer(level, layer);
+ return static_cast<Texture3D*>(texture)->getAttachment(level, layer);
}
else
{
@@ -103,7 +103,7 @@
Texture *texture = context->getTexture(handle);
if (texture && texture->getTarget() == GL_TEXTURE_2D_ARRAY)
{
- return static_cast<Texture2DArray*>(texture)->getRenderbuffer(level, layer);
+ return static_cast<Texture2DArray*>(texture)->getAttachment(level, layer);
}
else
{
@@ -120,10 +120,10 @@
void Framebuffer::setColorbuffer(unsigned int colorAttachment, GLenum type, GLuint colorbuffer, GLint level, GLint layer)
{
ASSERT(colorAttachment < IMPLEMENTATION_MAX_DRAW_BUFFERS);
- Renderbuffer *renderBuffer = lookupRenderbuffer(type, colorbuffer, level, layer);
- if (renderBuffer)
+ FramebufferAttachment *attachment = lookupAttachment(type, colorbuffer, level, layer);
+ if (attachment)
{
- mColorbuffers[colorAttachment].set(renderBuffer, type, level, layer);
+ mColorbuffers[colorAttachment].set(attachment, type, level, layer);
}
else
{
@@ -133,10 +133,10 @@
void Framebuffer::setDepthbuffer(GLenum type, GLuint depthbuffer, GLint level, GLint layer)
{
- Renderbuffer *renderBuffer = lookupRenderbuffer(type, depthbuffer, level, layer);
- if (renderBuffer)
+ FramebufferAttachment *attachment = lookupAttachment(type, depthbuffer, level, layer);
+ if (attachment)
{
- mDepthbuffer.set(renderBuffer, type, level, layer);
+ mDepthbuffer.set(attachment, type, level, layer);
}
else
{
@@ -146,10 +146,10 @@
void Framebuffer::setStencilbuffer(GLenum type, GLuint stencilbuffer, GLint level, GLint layer)
{
- Renderbuffer *renderBuffer = lookupRenderbuffer(type, stencilbuffer, level, layer);
- if (renderBuffer)
+ FramebufferAttachment *attachment = lookupAttachment(type, stencilbuffer, level, layer);
+ if (attachment)
{
- mStencilbuffer.set(renderBuffer, type, level, layer);
+ mStencilbuffer.set(attachment, type, level, layer);
}
else
{
@@ -159,11 +159,11 @@
void Framebuffer::setDepthStencilBuffer(GLenum type, GLuint depthStencilBuffer, GLint level, GLint layer)
{
- Renderbuffer *renderBuffer = lookupRenderbuffer(type, depthStencilBuffer, level, layer);
- if (renderBuffer && renderBuffer->getDepthSize() > 0 && renderBuffer->getStencilSize() > 0)
+ FramebufferAttachment *attachment = lookupAttachment(type, depthStencilBuffer, level, layer);
+ if (attachment && attachment->getDepthSize() > 0 && attachment->getStencilSize() > 0)
{
- mDepthbuffer.set(renderBuffer, type, level, layer);
- mStencilbuffer.set(renderBuffer, type, level, layer);
+ mDepthbuffer.set(attachment, type, level, layer);
+ mStencilbuffer.set(attachment, type, level, layer);
}
else
{
@@ -219,7 +219,7 @@
{
ASSERT(colorAttachment < IMPLEMENTATION_MAX_DRAW_BUFFERS);
- Renderbuffer *colorbuffer = mColorbuffers[colorAttachment].get();
+ FramebufferAttachment *colorbuffer = mColorbuffers[colorAttachment].get();
if (colorbuffer)
{
@@ -231,7 +231,7 @@
unsigned int Framebuffer::getDepthbufferSerial() const
{
- Renderbuffer *depthbuffer = mDepthbuffer.get();
+ FramebufferAttachment *depthbuffer = mDepthbuffer.get();
if (depthbuffer)
{
@@ -243,7 +243,7 @@
unsigned int Framebuffer::getStencilbufferSerial() const
{
- Renderbuffer *stencilbuffer = mStencilbuffer.get();
+ FramebufferAttachment *stencilbuffer = mStencilbuffer.get();
if (stencilbuffer)
{
@@ -253,30 +253,30 @@
return 0;
}
-Renderbuffer *Framebuffer::getColorbuffer(unsigned int colorAttachment) const
+FramebufferAttachment *Framebuffer::getColorbuffer(unsigned int colorAttachment) const
{
ASSERT(colorAttachment < IMPLEMENTATION_MAX_DRAW_BUFFERS);
return mColorbuffers[colorAttachment].get();
}
-Renderbuffer *Framebuffer::getDepthbuffer() const
+FramebufferAttachment *Framebuffer::getDepthbuffer() const
{
return mDepthbuffer.get();
}
-Renderbuffer *Framebuffer::getStencilbuffer() const
+FramebufferAttachment *Framebuffer::getStencilbuffer() const
{
return mStencilbuffer.get();
}
-Renderbuffer *Framebuffer::getDepthStencilBuffer() const
+FramebufferAttachment *Framebuffer::getDepthStencilBuffer() const
{
return (mDepthbuffer.id() == mStencilbuffer.id()) ? mDepthbuffer.get() : NULL;
}
-Renderbuffer *Framebuffer::getDepthOrStencilbuffer() const
+FramebufferAttachment *Framebuffer::getDepthOrStencilbuffer() const
{
- Renderbuffer *depthstencilbuffer = mDepthbuffer.get();
+ FramebufferAttachment *depthstencilbuffer = mDepthbuffer.get();
if (!depthstencilbuffer)
{
@@ -286,7 +286,7 @@
return depthstencilbuffer;
}
-Renderbuffer *Framebuffer::getReadColorbuffer() const
+FramebufferAttachment *Framebuffer::getReadColorbuffer() const
{
// Will require more logic if glReadBuffers is supported
return mColorbuffers[0].get();
@@ -298,7 +298,7 @@
return mColorbuffers[0].type();
}
-Renderbuffer *Framebuffer::getFirstColorbuffer() const
+FramebufferAttachment *Framebuffer::getFirstColorbuffer() const
{
for (unsigned int colorAttachment = 0; colorAttachment < IMPLEMENTATION_MAX_DRAW_BUFFERS; colorAttachment++)
{
@@ -427,7 +427,7 @@
{
if (mStencilbuffer.type() != GL_NONE)
{
- const Renderbuffer *stencilbufferObject = getStencilbuffer();
+ const FramebufferAttachment *stencilbufferObject = getStencilbuffer();
if (stencilbufferObject)
{
@@ -464,7 +464,7 @@
{
if (mColorbuffers[colorAttachment].type() != GL_NONE)
{
- const Renderbuffer *colorbuffer = getColorbuffer(colorAttachment);
+ const FramebufferAttachment *colorbuffer = getColorbuffer(colorAttachment);
if (!colorbuffer)
{
@@ -549,8 +549,8 @@
}
}
- const Renderbuffer *depthbuffer = NULL;
- const Renderbuffer *stencilbuffer = NULL;
+ const FramebufferAttachment *depthbuffer = NULL;
+ const FramebufferAttachment *stencilbuffer = NULL;
if (mDepthbuffer.type() != GL_NONE)
{
@@ -690,9 +690,9 @@
DefaultFramebuffer::DefaultFramebuffer(rx::Renderer *renderer, Colorbuffer *colorbuffer, DepthStencilbuffer *depthStencil)
: Framebuffer(renderer)
{
- mColorbuffers[0].set(new Renderbuffer(mRenderer, 0, colorbuffer), GL_RENDERBUFFER, 0, 0);
+ mColorbuffers[0].set(new FramebufferAttachment(mRenderer, 0, colorbuffer), GL_RENDERBUFFER, 0, 0);
- Renderbuffer *depthStencilRenderbuffer = new Renderbuffer(mRenderer, 0, depthStencil);
+ FramebufferAttachment *depthStencilRenderbuffer = new FramebufferAttachment(mRenderer, 0, depthStencil);
mDepthbuffer.set(depthStencilRenderbuffer, (depthStencilRenderbuffer->getDepthSize() != 0) ? GL_RENDERBUFFER : GL_NONE, 0, 0);
mStencilbuffer.set(depthStencilRenderbuffer, (depthStencilRenderbuffer->getStencilSize() != 0) ? GL_RENDERBUFFER : GL_NONE, 0, 0);
diff --git a/src/libGLESv2/Framebuffer.h b/src/libGLESv2/Framebuffer.h
index c0d8ee8..1a5e2b6 100644
--- a/src/libGLESv2/Framebuffer.h
+++ b/src/libGLESv2/Framebuffer.h
@@ -21,7 +21,7 @@
namespace gl
{
-class Renderbuffer;
+class FramebufferAttachment;
class Colorbuffer;
class Depthbuffer;
class Stencilbuffer;
@@ -46,14 +46,14 @@
unsigned int getDepthbufferSerial() const;
unsigned int getStencilbufferSerial() const;
- Renderbuffer *getColorbuffer(unsigned int colorAttachment) const;
- Renderbuffer *getDepthbuffer() const;
- Renderbuffer *getStencilbuffer() const;
- Renderbuffer *getDepthStencilBuffer() const;
- Renderbuffer *getDepthOrStencilbuffer() const;
- Renderbuffer *getReadColorbuffer() const;
+ FramebufferAttachment *getColorbuffer(unsigned int colorAttachment) const;
+ FramebufferAttachment *getDepthbuffer() const;
+ FramebufferAttachment *getStencilbuffer() const;
+ FramebufferAttachment *getDepthStencilBuffer() const;
+ FramebufferAttachment *getDepthOrStencilbuffer() const;
+ FramebufferAttachment *getReadColorbuffer() const;
GLenum getReadColorbufferType() const;
- Renderbuffer *getFirstColorbuffer() const;
+ FramebufferAttachment *getFirstColorbuffer() const;
GLenum getColorbufferType(unsigned int colorAttachment) const;
GLenum getDepthbufferType() const;
@@ -87,19 +87,19 @@
virtual GLenum completeness() const;
protected:
- FramebufferTextureBindingPointer<Renderbuffer> mColorbuffers[IMPLEMENTATION_MAX_DRAW_BUFFERS];
+ FramebufferTextureBindingPointer<FramebufferAttachment> mColorbuffers[IMPLEMENTATION_MAX_DRAW_BUFFERS];
GLenum mDrawBufferStates[IMPLEMENTATION_MAX_DRAW_BUFFERS];
GLenum mReadBufferState;
- FramebufferTextureBindingPointer<Renderbuffer> mDepthbuffer;
- FramebufferTextureBindingPointer<Renderbuffer> mStencilbuffer;
+ FramebufferTextureBindingPointer<FramebufferAttachment> mDepthbuffer;
+ FramebufferTextureBindingPointer<FramebufferAttachment> mStencilbuffer;
rx::Renderer *mRenderer;
private:
DISALLOW_COPY_AND_ASSIGN(Framebuffer);
- Renderbuffer *lookupRenderbuffer(GLenum type, GLuint handle, GLint level, GLint layer) const;
+ FramebufferAttachment *lookupAttachment(GLenum type, GLuint handle, GLint level, GLint layer) const;
};
class DefaultFramebuffer : public Framebuffer
diff --git a/src/libGLESv2/Renderbuffer.cpp b/src/libGLESv2/Renderbuffer.cpp
index 2851908..ce822ec 100644
--- a/src/libGLESv2/Renderbuffer.cpp
+++ b/src/libGLESv2/Renderbuffer.cpp
@@ -22,341 +22,341 @@
{
unsigned int RenderbufferStorage::mCurrentSerial = 1;
-RenderbufferInterface::RenderbufferInterface()
+FramebufferAttachmentInterface::FramebufferAttachmentInterface()
{
}
-// The default case for classes inherited from RenderbufferInterface is not to
-// need to do anything upon the reference count to the parent Renderbuffer incrementing
+// The default case for classes inherited from FramebufferAttachmentInterface is not to
+// need to do anything upon the reference count to the parent FramebufferAttachment incrementing
// or decrementing.
-void RenderbufferInterface::addProxyRef(const Renderbuffer *proxy)
+void FramebufferAttachmentInterface::addProxyRef(const FramebufferAttachment *proxy)
{
}
-void RenderbufferInterface::releaseProxy(const Renderbuffer *proxy)
+void FramebufferAttachmentInterface::releaseProxy(const FramebufferAttachment *proxy)
{
}
-///// RenderbufferTexture2D Implementation ////////
+///// Texture2DAttachment Implementation ////////
-RenderbufferTexture2D::RenderbufferTexture2D(Texture2D *texture, GLint level) : mLevel(level)
+Texture2DAttachment::Texture2DAttachment(Texture2D *texture, GLint level) : mLevel(level)
{
mTexture2D.set(texture);
}
-RenderbufferTexture2D::~RenderbufferTexture2D()
+Texture2DAttachment::~Texture2DAttachment()
{
mTexture2D.set(NULL);
}
// Textures need to maintain their own reference count for references via
// Renderbuffers acting as proxies. Here, we notify the texture of a reference.
-void RenderbufferTexture2D::addProxyRef(const Renderbuffer *proxy)
+void Texture2DAttachment::addProxyRef(const FramebufferAttachment *proxy)
{
mTexture2D->addProxyRef(proxy);
}
-void RenderbufferTexture2D::releaseProxy(const Renderbuffer *proxy)
+void Texture2DAttachment::releaseProxy(const FramebufferAttachment *proxy)
{
mTexture2D->releaseProxy(proxy);
}
-rx::RenderTarget *RenderbufferTexture2D::getRenderTarget()
+rx::RenderTarget *Texture2DAttachment::getRenderTarget()
{
return mTexture2D->getRenderTarget(mLevel);
}
-rx::RenderTarget *RenderbufferTexture2D::getDepthStencil()
+rx::RenderTarget *Texture2DAttachment::getDepthStencil()
{
return mTexture2D->getDepthSencil(mLevel);
}
-rx::TextureStorage *RenderbufferTexture2D::getTextureStorage()
+rx::TextureStorage *Texture2DAttachment::getTextureStorage()
{
return mTexture2D->getNativeTexture()->getStorageInstance();
}
-GLsizei RenderbufferTexture2D::getWidth() const
+GLsizei Texture2DAttachment::getWidth() const
{
return mTexture2D->getWidth(mLevel);
}
-GLsizei RenderbufferTexture2D::getHeight() const
+GLsizei Texture2DAttachment::getHeight() const
{
return mTexture2D->getHeight(mLevel);
}
-GLenum RenderbufferTexture2D::getInternalFormat() const
+GLenum Texture2DAttachment::getInternalFormat() const
{
return mTexture2D->getInternalFormat(mLevel);
}
-GLenum RenderbufferTexture2D::getActualFormat() const
+GLenum Texture2DAttachment::getActualFormat() const
{
return mTexture2D->getActualFormat(mLevel);
}
-GLsizei RenderbufferTexture2D::getSamples() const
+GLsizei Texture2DAttachment::getSamples() const
{
return 0;
}
-unsigned int RenderbufferTexture2D::getSerial() const
+unsigned int Texture2DAttachment::getSerial() const
{
return mTexture2D->getRenderTargetSerial(mLevel);
}
-bool RenderbufferTexture2D::isTexture() const
+bool Texture2DAttachment::isTexture() const
{
return true;
}
-unsigned int RenderbufferTexture2D::getTextureSerial() const
+unsigned int Texture2DAttachment::getTextureSerial() const
{
return mTexture2D->getTextureSerial();
}
-///// RenderbufferTextureCubeMap Implementation ////////
+///// TextureCubeMapAttachment Implementation ////////
-RenderbufferTextureCubeMap::RenderbufferTextureCubeMap(TextureCubeMap *texture, GLenum faceTarget, GLint level)
+TextureCubeMapAttachment::TextureCubeMapAttachment(TextureCubeMap *texture, GLenum faceTarget, GLint level)
: mFaceTarget(faceTarget), mLevel(level)
{
mTextureCubeMap.set(texture);
}
-RenderbufferTextureCubeMap::~RenderbufferTextureCubeMap()
+TextureCubeMapAttachment::~TextureCubeMapAttachment()
{
mTextureCubeMap.set(NULL);
}
// Textures need to maintain their own reference count for references via
// Renderbuffers acting as proxies. Here, we notify the texture of a reference.
-void RenderbufferTextureCubeMap::addProxyRef(const Renderbuffer *proxy)
+void TextureCubeMapAttachment::addProxyRef(const FramebufferAttachment *proxy)
{
mTextureCubeMap->addProxyRef(proxy);
}
-void RenderbufferTextureCubeMap::releaseProxy(const Renderbuffer *proxy)
+void TextureCubeMapAttachment::releaseProxy(const FramebufferAttachment *proxy)
{
mTextureCubeMap->releaseProxy(proxy);
}
-rx::RenderTarget *RenderbufferTextureCubeMap::getRenderTarget()
+rx::RenderTarget *TextureCubeMapAttachment::getRenderTarget()
{
return mTextureCubeMap->getRenderTarget(mFaceTarget, mLevel);
}
-rx::RenderTarget *RenderbufferTextureCubeMap::getDepthStencil()
+rx::RenderTarget *TextureCubeMapAttachment::getDepthStencil()
{
return mTextureCubeMap->getDepthStencil(mFaceTarget, mLevel);
}
-rx::TextureStorage *RenderbufferTextureCubeMap::getTextureStorage()
+rx::TextureStorage *TextureCubeMapAttachment::getTextureStorage()
{
return mTextureCubeMap->getNativeTexture()->getStorageInstance();
}
-GLsizei RenderbufferTextureCubeMap::getWidth() const
+GLsizei TextureCubeMapAttachment::getWidth() const
{
return mTextureCubeMap->getWidth(mFaceTarget, mLevel);
}
-GLsizei RenderbufferTextureCubeMap::getHeight() const
+GLsizei TextureCubeMapAttachment::getHeight() const
{
return mTextureCubeMap->getHeight(mFaceTarget, mLevel);
}
-GLenum RenderbufferTextureCubeMap::getInternalFormat() const
+GLenum TextureCubeMapAttachment::getInternalFormat() const
{
return mTextureCubeMap->getInternalFormat(mFaceTarget, mLevel);
}
-GLenum RenderbufferTextureCubeMap::getActualFormat() const
+GLenum TextureCubeMapAttachment::getActualFormat() const
{
return mTextureCubeMap->getActualFormat(mFaceTarget, mLevel);
}
-GLsizei RenderbufferTextureCubeMap::getSamples() const
+GLsizei TextureCubeMapAttachment::getSamples() const
{
return 0;
}
-unsigned int RenderbufferTextureCubeMap::getSerial() const
+unsigned int TextureCubeMapAttachment::getSerial() const
{
return mTextureCubeMap->getRenderTargetSerial(mFaceTarget, mLevel);
}
-bool RenderbufferTextureCubeMap::isTexture() const
+bool TextureCubeMapAttachment::isTexture() const
{
return true;
}
-unsigned int RenderbufferTextureCubeMap::getTextureSerial() const
+unsigned int TextureCubeMapAttachment::getTextureSerial() const
{
return mTextureCubeMap->getTextureSerial();
}
-///// RenderbufferTexture3DLayer Implementation ////////
+///// Texture3DAttachment Implementation ////////
-RenderbufferTexture3DLayer::RenderbufferTexture3DLayer(Texture3D *texture, GLint level, GLint layer)
+Texture3DAttachment::Texture3DAttachment(Texture3D *texture, GLint level, GLint layer)
: mLevel(level), mLayer(layer)
{
mTexture3D.set(texture);
}
-RenderbufferTexture3DLayer::~RenderbufferTexture3DLayer()
+Texture3DAttachment::~Texture3DAttachment()
{
mTexture3D.set(NULL);
}
// Textures need to maintain their own reference count for references via
// Renderbuffers acting as proxies. Here, we notify the texture of a reference.
-void RenderbufferTexture3DLayer::addProxyRef(const Renderbuffer *proxy)
+void Texture3DAttachment::addProxyRef(const FramebufferAttachment *proxy)
{
mTexture3D->addProxyRef(proxy);
}
-void RenderbufferTexture3DLayer::releaseProxy(const Renderbuffer *proxy)
+void Texture3DAttachment::releaseProxy(const FramebufferAttachment *proxy)
{
mTexture3D->releaseProxy(proxy);
}
-rx::RenderTarget *RenderbufferTexture3DLayer::getRenderTarget()
+rx::RenderTarget *Texture3DAttachment::getRenderTarget()
{
return mTexture3D->getRenderTarget(mLevel, mLayer);
}
-rx::RenderTarget *RenderbufferTexture3DLayer::getDepthStencil()
+rx::RenderTarget *Texture3DAttachment::getDepthStencil()
{
return mTexture3D->getDepthStencil(mLevel, mLayer);
}
-rx::TextureStorage *RenderbufferTexture3DLayer::getTextureStorage()
+rx::TextureStorage *Texture3DAttachment::getTextureStorage()
{
return mTexture3D->getNativeTexture()->getStorageInstance();
}
-GLsizei RenderbufferTexture3DLayer::getWidth() const
+GLsizei Texture3DAttachment::getWidth() const
{
return mTexture3D->getWidth(mLevel);
}
-GLsizei RenderbufferTexture3DLayer::getHeight() const
+GLsizei Texture3DAttachment::getHeight() const
{
return mTexture3D->getHeight(mLevel);
}
-GLenum RenderbufferTexture3DLayer::getInternalFormat() const
+GLenum Texture3DAttachment::getInternalFormat() const
{
return mTexture3D->getInternalFormat(mLevel);
}
-GLenum RenderbufferTexture3DLayer::getActualFormat() const
+GLenum Texture3DAttachment::getActualFormat() const
{
return mTexture3D->getActualFormat(mLevel);
}
-GLsizei RenderbufferTexture3DLayer::getSamples() const
+GLsizei Texture3DAttachment::getSamples() const
{
return 0;
}
-unsigned int RenderbufferTexture3DLayer::getSerial() const
+unsigned int Texture3DAttachment::getSerial() const
{
return mTexture3D->getRenderTargetSerial(mLevel, mLayer);
}
-bool RenderbufferTexture3DLayer::isTexture() const
+bool Texture3DAttachment::isTexture() const
{
return true;
}
-unsigned int RenderbufferTexture3DLayer::getTextureSerial() const
+unsigned int Texture3DAttachment::getTextureSerial() const
{
return mTexture3D->getTextureSerial();
}
-////// RenderbufferTexture2DArrayLayer Implementation //////
+////// Texture2DArrayAttachment Implementation //////
-RenderbufferTexture2DArrayLayer::RenderbufferTexture2DArrayLayer(Texture2DArray *texture, GLint level, GLint layer)
+Texture2DArrayAttachment::Texture2DArrayAttachment(Texture2DArray *texture, GLint level, GLint layer)
: mLevel(level), mLayer(layer)
{
mTexture2DArray.set(texture);
}
-RenderbufferTexture2DArrayLayer::~RenderbufferTexture2DArrayLayer()
+Texture2DArrayAttachment::~Texture2DArrayAttachment()
{
mTexture2DArray.set(NULL);
}
-void RenderbufferTexture2DArrayLayer::addProxyRef(const Renderbuffer *proxy)
+void Texture2DArrayAttachment::addProxyRef(const FramebufferAttachment *proxy)
{
mTexture2DArray->addProxyRef(proxy);
}
-void RenderbufferTexture2DArrayLayer::releaseProxy(const Renderbuffer *proxy)
+void Texture2DArrayAttachment::releaseProxy(const FramebufferAttachment *proxy)
{
mTexture2DArray->releaseProxy(proxy);
}
-rx::RenderTarget *RenderbufferTexture2DArrayLayer::getRenderTarget()
+rx::RenderTarget *Texture2DArrayAttachment::getRenderTarget()
{
return mTexture2DArray->getRenderTarget(mLevel, mLayer);
}
-rx::RenderTarget *RenderbufferTexture2DArrayLayer::getDepthStencil()
+rx::RenderTarget *Texture2DArrayAttachment::getDepthStencil()
{
return mTexture2DArray->getDepthStencil(mLevel, mLayer);
}
-rx::TextureStorage *RenderbufferTexture2DArrayLayer::getTextureStorage()
+rx::TextureStorage *Texture2DArrayAttachment::getTextureStorage()
{
return mTexture2DArray->getNativeTexture()->getStorageInstance();
}
-GLsizei RenderbufferTexture2DArrayLayer::getWidth() const
+GLsizei Texture2DArrayAttachment::getWidth() const
{
return mTexture2DArray->getWidth(mLevel);
}
-GLsizei RenderbufferTexture2DArrayLayer::getHeight() const
+GLsizei Texture2DArrayAttachment::getHeight() const
{
return mTexture2DArray->getHeight(mLevel);
}
-GLenum RenderbufferTexture2DArrayLayer::getInternalFormat() const
+GLenum Texture2DArrayAttachment::getInternalFormat() const
{
return mTexture2DArray->getInternalFormat(mLevel);
}
-GLenum RenderbufferTexture2DArrayLayer::getActualFormat() const
+GLenum Texture2DArrayAttachment::getActualFormat() const
{
return mTexture2DArray->getActualFormat(mLevel);
}
-GLsizei RenderbufferTexture2DArrayLayer::getSamples() const
+GLsizei Texture2DArrayAttachment::getSamples() const
{
return 0;
}
-unsigned int RenderbufferTexture2DArrayLayer::getSerial() const
+unsigned int Texture2DArrayAttachment::getSerial() const
{
return mTexture2DArray->getRenderTargetSerial(mLevel, mLayer);
}
-bool RenderbufferTexture2DArrayLayer::isTexture() const
+bool Texture2DArrayAttachment::isTexture() const
{
return true;
}
-unsigned int RenderbufferTexture2DArrayLayer::getTextureSerial() const
+unsigned int Texture2DArrayAttachment::getTextureSerial() const
{
return mTexture2DArray->getTextureSerial();
}
-////// Renderbuffer Implementation //////
+////// FramebufferAttachment Implementation //////
-Renderbuffer::Renderbuffer(rx::Renderer *renderer, GLuint id, RenderbufferInterface *instance) : RefCountObject(id)
+FramebufferAttachment::FramebufferAttachment(rx::Renderer *renderer, GLuint id, FramebufferAttachmentInterface *instance) : RefCountObject(id)
{
ASSERT(instance != NULL);
mInstance = instance;
@@ -365,123 +365,123 @@
mRenderer = renderer;
}
-Renderbuffer::~Renderbuffer()
+FramebufferAttachment::~FramebufferAttachment()
{
delete mInstance;
}
-// The RenderbufferInterface contained in this Renderbuffer may need to maintain
+// The FramebufferAttachmentInterface contained in this FramebufferAttachment may need to maintain
// its own reference count, so we pass it on here.
-void Renderbuffer::addRef() const
+void FramebufferAttachment::addRef() const
{
mInstance->addProxyRef(this);
RefCountObject::addRef();
}
-void Renderbuffer::release() const
+void FramebufferAttachment::release() const
{
mInstance->releaseProxy(this);
RefCountObject::release();
}
-rx::RenderTarget *Renderbuffer::getRenderTarget()
+rx::RenderTarget *FramebufferAttachment::getRenderTarget()
{
return mInstance->getRenderTarget();
}
-rx::RenderTarget *Renderbuffer::getDepthStencil()
+rx::RenderTarget *FramebufferAttachment::getDepthStencil()
{
return mInstance->getDepthStencil();
}
-rx::TextureStorage *Renderbuffer::getTextureStorage()
+rx::TextureStorage *FramebufferAttachment::getTextureStorage()
{
return mInstance->getTextureStorage();
}
-GLsizei Renderbuffer::getWidth() const
+GLsizei FramebufferAttachment::getWidth() const
{
return mInstance->getWidth();
}
-GLsizei Renderbuffer::getHeight() const
+GLsizei FramebufferAttachment::getHeight() const
{
return mInstance->getHeight();
}
-GLenum Renderbuffer::getInternalFormat() const
+GLenum FramebufferAttachment::getInternalFormat() const
{
return mInstance->getInternalFormat();
}
-GLenum Renderbuffer::getActualFormat() const
+GLenum FramebufferAttachment::getActualFormat() const
{
return mInstance->getActualFormat();
}
-GLuint Renderbuffer::getRedSize() const
+GLuint FramebufferAttachment::getRedSize() const
{
return gl::GetRedBits(getActualFormat(), mRenderer->getCurrentClientVersion());
}
-GLuint Renderbuffer::getGreenSize() const
+GLuint FramebufferAttachment::getGreenSize() const
{
return gl::GetGreenBits(getActualFormat(), mRenderer->getCurrentClientVersion());
}
-GLuint Renderbuffer::getBlueSize() const
+GLuint FramebufferAttachment::getBlueSize() const
{
return gl::GetBlueBits(getActualFormat(), mRenderer->getCurrentClientVersion());
}
-GLuint Renderbuffer::getAlphaSize() const
+GLuint FramebufferAttachment::getAlphaSize() const
{
return gl::GetAlphaBits(getActualFormat(), mRenderer->getCurrentClientVersion());
}
-GLuint Renderbuffer::getDepthSize() const
+GLuint FramebufferAttachment::getDepthSize() const
{
return gl::GetDepthBits(getActualFormat(), mRenderer->getCurrentClientVersion());
}
-GLuint Renderbuffer::getStencilSize() const
+GLuint FramebufferAttachment::getStencilSize() const
{
return gl::GetStencilBits(getActualFormat(), mRenderer->getCurrentClientVersion());
}
-GLenum Renderbuffer::getComponentType() const
+GLenum FramebufferAttachment::getComponentType() const
{
return gl::GetComponentType(getActualFormat(), mRenderer->getCurrentClientVersion());
}
-GLenum Renderbuffer::getColorEncoding() const
+GLenum FramebufferAttachment::getColorEncoding() const
{
return gl::GetColorEncoding(getActualFormat(), mRenderer->getCurrentClientVersion());
}
-GLsizei Renderbuffer::getSamples() const
+GLsizei FramebufferAttachment::getSamples() const
{
return mInstance->getSamples();
}
-unsigned int Renderbuffer::getSerial() const
+unsigned int FramebufferAttachment::getSerial() const
{
return mInstance->getSerial();
}
-bool Renderbuffer::isTexture() const
+bool FramebufferAttachment::isTexture() const
{
return mInstance->isTexture();
}
-unsigned int Renderbuffer::getTextureSerial() const
+unsigned int FramebufferAttachment::getTextureSerial() const
{
return mInstance->getTextureSerial();
}
-void Renderbuffer::setStorage(RenderbufferStorage *newStorage)
+void FramebufferAttachment::setStorage(RenderbufferStorage *newStorage)
{
ASSERT(newStorage != NULL);
diff --git a/src/libGLESv2/Renderbuffer.h b/src/libGLESv2/Renderbuffer.h
index 969232b..820175d 100644
--- a/src/libGLESv2/Renderbuffer.h
+++ b/src/libGLESv2/Renderbuffer.h
@@ -32,19 +32,19 @@
class TextureCubeMap;
class Texture3D;
class Texture2DArray;
-class Renderbuffer;
+class FramebufferAttachment;
class Colorbuffer;
class DepthStencilbuffer;
-class RenderbufferInterface
+class FramebufferAttachmentInterface
{
public:
- RenderbufferInterface();
+ FramebufferAttachmentInterface();
- virtual ~RenderbufferInterface() {};
+ virtual ~FramebufferAttachmentInterface() {};
- virtual void addProxyRef(const Renderbuffer *proxy);
- virtual void releaseProxy(const Renderbuffer *proxy);
+ virtual void addProxyRef(const FramebufferAttachment *proxy);
+ virtual void releaseProxy(const FramebufferAttachment *proxy);
virtual rx::RenderTarget *getRenderTarget() = 0;
virtual rx::RenderTarget *getDepthStencil() = 0;
@@ -62,18 +62,18 @@
virtual unsigned int getTextureSerial() const = 0;
private:
- DISALLOW_COPY_AND_ASSIGN(RenderbufferInterface);
+ DISALLOW_COPY_AND_ASSIGN(FramebufferAttachmentInterface);
};
-class RenderbufferTexture2D : public RenderbufferInterface
+class Texture2DAttachment : public FramebufferAttachmentInterface
{
public:
- RenderbufferTexture2D(Texture2D *texture, GLint level);
+ Texture2DAttachment(Texture2D *texture, GLint level);
- virtual ~RenderbufferTexture2D();
+ virtual ~Texture2DAttachment();
- void addProxyRef(const Renderbuffer *proxy);
- void releaseProxy(const Renderbuffer *proxy);
+ void addProxyRef(const FramebufferAttachment *proxy);
+ void releaseProxy(const FramebufferAttachment *proxy);
rx::RenderTarget *getRenderTarget();
rx::RenderTarget *getDepthStencil();
@@ -91,21 +91,21 @@
virtual unsigned int getTextureSerial() const;
private:
- DISALLOW_COPY_AND_ASSIGN(RenderbufferTexture2D);
+ DISALLOW_COPY_AND_ASSIGN(Texture2DAttachment);
BindingPointer <Texture2D> mTexture2D;
const GLint mLevel;
};
-class RenderbufferTextureCubeMap : public RenderbufferInterface
+class TextureCubeMapAttachment : public FramebufferAttachmentInterface
{
public:
- RenderbufferTextureCubeMap(TextureCubeMap *texture, GLenum faceTarget, GLint level);
+ TextureCubeMapAttachment(TextureCubeMap *texture, GLenum faceTarget, GLint level);
- virtual ~RenderbufferTextureCubeMap();
+ virtual ~TextureCubeMapAttachment();
- void addProxyRef(const Renderbuffer *proxy);
- void releaseProxy(const Renderbuffer *proxy);
+ void addProxyRef(const FramebufferAttachment *proxy);
+ void releaseProxy(const FramebufferAttachment *proxy);
rx::RenderTarget *getRenderTarget();
rx::RenderTarget *getDepthStencil();
@@ -123,22 +123,22 @@
virtual unsigned int getTextureSerial() const;
private:
- DISALLOW_COPY_AND_ASSIGN(RenderbufferTextureCubeMap);
+ DISALLOW_COPY_AND_ASSIGN(TextureCubeMapAttachment);
BindingPointer <TextureCubeMap> mTextureCubeMap;
const GLint mLevel;
const GLenum mFaceTarget;
};
-class RenderbufferTexture3DLayer : public RenderbufferInterface
+class Texture3DAttachment : public FramebufferAttachmentInterface
{
public:
- RenderbufferTexture3DLayer(Texture3D *texture, GLint level, GLint layer);
+ Texture3DAttachment(Texture3D *texture, GLint level, GLint layer);
- virtual ~RenderbufferTexture3DLayer();
+ virtual ~Texture3DAttachment();
- void addProxyRef(const Renderbuffer *proxy);
- void releaseProxy(const Renderbuffer *proxy);
+ void addProxyRef(const FramebufferAttachment *proxy);
+ void releaseProxy(const FramebufferAttachment *proxy);
rx::RenderTarget *getRenderTarget();
rx::RenderTarget *getDepthStencil();
@@ -156,22 +156,22 @@
virtual unsigned int getTextureSerial() const;
private:
- DISALLOW_COPY_AND_ASSIGN(RenderbufferTexture3DLayer);
+ DISALLOW_COPY_AND_ASSIGN(Texture3DAttachment);
BindingPointer<Texture3D> mTexture3D;
const GLint mLevel;
const GLint mLayer;
};
-class RenderbufferTexture2DArrayLayer : public RenderbufferInterface
+class Texture2DArrayAttachment : public FramebufferAttachmentInterface
{
public:
- RenderbufferTexture2DArrayLayer(Texture2DArray *texture, GLint level, GLint layer);
+ Texture2DArrayAttachment(Texture2DArray *texture, GLint level, GLint layer);
- virtual ~RenderbufferTexture2DArrayLayer();
+ virtual ~Texture2DArrayAttachment();
- void addProxyRef(const Renderbuffer *proxy);
- void releaseProxy(const Renderbuffer *proxy);
+ void addProxyRef(const FramebufferAttachment *proxy);
+ void releaseProxy(const FramebufferAttachment *proxy);
rx::RenderTarget *getRenderTarget();
rx::RenderTarget *getDepthStencil();
@@ -189,7 +189,7 @@
virtual unsigned int getTextureSerial() const;
private:
- DISALLOW_COPY_AND_ASSIGN(RenderbufferTexture2DArrayLayer);
+ DISALLOW_COPY_AND_ASSIGN(Texture2DArrayAttachment);
BindingPointer<Texture2DArray> mTexture2DArray;
const GLint mLevel;
@@ -199,7 +199,7 @@
// A class derived from RenderbufferStorage is created whenever glRenderbufferStorage
// is called. The specific concrete type depends on whether the internal format is
// colour depth, stencil or packed depth/stencil.
-class RenderbufferStorage : public RenderbufferInterface
+class RenderbufferStorage : public FramebufferAttachmentInterface
{
public:
RenderbufferStorage();
@@ -238,20 +238,20 @@
static unsigned int mCurrentSerial;
};
-// Renderbuffer implements the GL renderbuffer object.
-// It's only a proxy for a RenderbufferInterface instance; the internal object
+// FramebufferAttachment implements the GL renderbuffer object.
+// It's only a proxy for a FramebufferAttachmentInterface instance; the internal object
// can change whenever glRenderbufferStorage is called.
-class Renderbuffer : public RefCountObject
+class FramebufferAttachment : public RefCountObject
{
public:
- Renderbuffer(rx::Renderer *renderer, GLuint id, RenderbufferInterface *storage);
+ FramebufferAttachment(rx::Renderer *renderer, GLuint id, FramebufferAttachmentInterface *storage);
- virtual ~Renderbuffer();
+ virtual ~FramebufferAttachment();
// These functions from RefCountObject are overloaded here because
// Textures need to maintain their own count of references to them via
// Renderbuffers/RenderbufferTextures. These functions invoke those
- // reference counting functions on the RenderbufferInterface.
+ // reference counting functions on the FramebufferAttachmentInterface.
void addRef() const;
void release() const;
@@ -281,10 +281,10 @@
void setStorage(RenderbufferStorage *newStorage);
private:
- DISALLOW_COPY_AND_ASSIGN(Renderbuffer);
+ DISALLOW_COPY_AND_ASSIGN(FramebufferAttachment);
rx::Renderer const *mRenderer;
- RenderbufferInterface *mInstance;
+ FramebufferAttachmentInterface *mInstance;
};
class Colorbuffer : public RenderbufferStorage
diff --git a/src/libGLESv2/RenderbufferProxySet.cpp b/src/libGLESv2/RenderbufferProxySet.cpp
index 009c7a6..f4fbe51 100644
--- a/src/libGLESv2/RenderbufferProxySet.cpp
+++ b/src/libGLESv2/RenderbufferProxySet.cpp
@@ -14,7 +14,7 @@
namespace gl
{
-void RenderbufferProxySet::addRef(const Renderbuffer *proxy)
+void RenderbufferProxySet::addRef(const FramebufferAttachment *proxy)
{
RefCountMap::iterator i = mRefCountMap.find(proxy);
if (i != mRefCountMap.end())
@@ -23,7 +23,7 @@
}
}
-void RenderbufferProxySet::release(const Renderbuffer *proxy)
+void RenderbufferProxySet::release(const FramebufferAttachment *proxy)
{
RefCountMap::iterator i = mRefCountMap.find(proxy);
if (i != mRefCountMap.end())
@@ -35,7 +35,7 @@
if (i->second == 0)
{
- // Clear the buffer map of references to this Renderbuffer
+ // Clear the buffer map of references to this FramebufferAttachment
BufferMap::iterator j = mBufferMap.begin();
while (j != mBufferMap.end())
{
@@ -54,7 +54,7 @@
}
}
-void RenderbufferProxySet::add(unsigned int mipLevel, unsigned int layer, Renderbuffer *renderBuffer)
+void RenderbufferProxySet::add(unsigned int mipLevel, unsigned int layer, FramebufferAttachment *renderBuffer)
{
if (mRefCountMap.find(renderBuffer) == mRefCountMap.end())
{
@@ -70,7 +70,7 @@
}
}
-Renderbuffer *RenderbufferProxySet::get(unsigned int mipLevel, unsigned int layer) const
+FramebufferAttachment *RenderbufferProxySet::get(unsigned int mipLevel, unsigned int layer) const
{
RenderbufferKey key;
key.mipLevel = mipLevel;
diff --git a/src/libGLESv2/RenderbufferProxySet.h b/src/libGLESv2/RenderbufferProxySet.h
index ae5bf94..f151151 100644
--- a/src/libGLESv2/RenderbufferProxySet.h
+++ b/src/libGLESv2/RenderbufferProxySet.h
@@ -14,16 +14,16 @@
namespace gl
{
-class Renderbuffer;
+class FramebufferAttachment;
class RenderbufferProxySet
{
public:
- void addRef(const Renderbuffer *proxy);
- void release(const Renderbuffer *proxy);
+ void addRef(const FramebufferAttachment *proxy);
+ void release(const FramebufferAttachment *proxy);
- void add(unsigned int mipLevel, unsigned int layer, Renderbuffer *renderBuffer);
- Renderbuffer *get(unsigned int mipLevel, unsigned int layer) const;
+ void add(unsigned int mipLevel, unsigned int layer, FramebufferAttachment *renderBuffer);
+ FramebufferAttachment *get(unsigned int mipLevel, unsigned int layer) const;
private:
struct RenderbufferKey
@@ -34,10 +34,10 @@
bool operator<(const RenderbufferKey &other) const;
};
- typedef std::map<RenderbufferKey, Renderbuffer*> BufferMap;
+ typedef std::map<RenderbufferKey, FramebufferAttachment*> BufferMap;
BufferMap mBufferMap;
- typedef std::map<const Renderbuffer*, unsigned int> RefCountMap;
+ typedef std::map<const FramebufferAttachment*, unsigned int> RefCountMap;
RefCountMap mRefCountMap;
};
diff --git a/src/libGLESv2/ResourceManager.cpp b/src/libGLESv2/ResourceManager.cpp
index 97c28cb..cf0812d 100644
--- a/src/libGLESv2/ResourceManager.cpp
+++ b/src/libGLESv2/ResourceManager.cpp
@@ -311,7 +311,7 @@
}
}
-Renderbuffer *ResourceManager::getRenderbuffer(unsigned int handle)
+FramebufferAttachment *ResourceManager::getRenderbuffer(unsigned int handle)
{
RenderbufferMap::iterator renderbuffer = mRenderbufferMap.find(handle);
@@ -353,7 +353,7 @@
}
}
-void ResourceManager::setRenderbuffer(GLuint handle, Renderbuffer *buffer)
+void ResourceManager::setRenderbuffer(GLuint handle, FramebufferAttachment *buffer)
{
mRenderbufferMap[handle] = buffer;
}
@@ -405,7 +405,7 @@
{
if (renderbuffer != 0 && !getRenderbuffer(renderbuffer))
{
- Renderbuffer *renderbufferObject = new Renderbuffer(mRenderer, renderbuffer, new Colorbuffer(mRenderer, 0, 0, GL_RGBA4, 0));
+ FramebufferAttachment *renderbufferObject = new FramebufferAttachment(mRenderer, renderbuffer, new Colorbuffer(mRenderer, 0, 0, GL_RGBA4, 0));
mRenderbufferMap[renderbuffer] = renderbufferObject;
renderbufferObject->addRef();
}
diff --git a/src/libGLESv2/ResourceManager.h b/src/libGLESv2/ResourceManager.h
index 85e6b4b..a08a6aa 100644
--- a/src/libGLESv2/ResourceManager.h
+++ b/src/libGLESv2/ResourceManager.h
@@ -30,7 +30,7 @@
class Shader;
class Program;
class Texture;
-class Renderbuffer;
+class FramebufferAttachment;
class Sampler;
class FenceSync;
@@ -63,11 +63,11 @@
Shader *getShader(GLuint handle);
Program *getProgram(GLuint handle);
Texture *getTexture(GLuint handle);
- Renderbuffer *getRenderbuffer(GLuint handle);
+ FramebufferAttachment *getRenderbuffer(GLuint handle);
Sampler *getSampler(GLuint handle);
FenceSync *getFenceSync(GLuint handle);
- void setRenderbuffer(GLuint handle, Renderbuffer *renderbuffer);
+ void setRenderbuffer(GLuint handle, FramebufferAttachment *renderbuffer);
void checkBufferAllocation(unsigned int buffer);
void checkTextureAllocation(GLuint texture, TextureType type);
@@ -97,7 +97,7 @@
TextureMap mTextureMap;
HandleAllocator mTextureHandleAllocator;
- typedef std::unordered_map<GLuint, Renderbuffer*> RenderbufferMap;
+ typedef std::unordered_map<GLuint, FramebufferAttachment*> RenderbufferMap;
RenderbufferMap mRenderbufferMap;
HandleAllocator mRenderbufferHandleAllocator;
diff --git a/src/libGLESv2/Texture.cpp b/src/libGLESv2/Texture.cpp
index 52348cb..baa5bc6 100644
--- a/src/libGLESv2/Texture.cpp
+++ b/src/libGLESv2/Texture.cpp
@@ -87,12 +87,12 @@
return mTarget;
}
-void Texture::addProxyRef(const Renderbuffer *proxy)
+void Texture::addProxyRef(const FramebufferAttachment *proxy)
{
mRenderbufferProxies.addRef(proxy);
}
-void Texture::releaseProxy(const Renderbuffer *proxy)
+void Texture::releaseProxy(const FramebufferAttachment *proxy)
{
mRenderbufferProxies.release(proxy);
}
@@ -1027,16 +1027,16 @@
return mTexStorage;
}
-Renderbuffer *Texture2D::getRenderbuffer(GLint level)
+FramebufferAttachment *Texture2D::getAttachment(GLint level)
{
- Renderbuffer *renderBuffer = mRenderbufferProxies.get(level, 0);
- if (!renderBuffer)
+ FramebufferAttachment *attachment = mRenderbufferProxies.get(level, 0);
+ if (!attachment)
{
- renderBuffer = new Renderbuffer(mRenderer, id(), new RenderbufferTexture2D(this, level));
- mRenderbufferProxies.add(level, 0, renderBuffer);
+ attachment = new FramebufferAttachment(mRenderer, id(), new Texture2DAttachment(this, level));
+ mRenderbufferProxies.add(level, 0, attachment);
}
- return renderBuffer;
+ return attachment;
}
unsigned int Texture2D::getRenderTargetSerial(GLint level)
@@ -1662,19 +1662,19 @@
return mTexStorage;
}
-Renderbuffer *TextureCubeMap::getRenderbuffer(GLenum target, GLint level)
+FramebufferAttachment *TextureCubeMap::getAttachment(GLenum target, GLint level)
{
ASSERT(!IsCubemapTextureTarget(target));
int faceIndex = targetToIndex(target);
- Renderbuffer *renderBuffer = mRenderbufferProxies.get(level, faceIndex);
- if (!renderBuffer)
+ FramebufferAttachment *attachment = mRenderbufferProxies.get(level, faceIndex);
+ if (!attachment)
{
- renderBuffer = new Renderbuffer(mRenderer, id(), new RenderbufferTextureCubeMap(this, target, level));
- mRenderbufferProxies.add(level, faceIndex, renderBuffer);
+ attachment = new FramebufferAttachment(mRenderer, id(), new TextureCubeMapAttachment(this, target, level));
+ mRenderbufferProxies.add(level, faceIndex, attachment);
}
- return renderBuffer;
+ return attachment;
}
unsigned int TextureCubeMap::getRenderTargetSerial(GLenum target, GLint level)
@@ -2042,16 +2042,16 @@
return true;
}
-Renderbuffer *Texture3D::getRenderbuffer(GLint level, GLint layer)
+FramebufferAttachment *Texture3D::getAttachment(GLint level, GLint layer)
{
- Renderbuffer *renderBuffer = mRenderbufferProxies.get(level, layer);
- if (!renderBuffer)
+ FramebufferAttachment *attachment = mRenderbufferProxies.get(level, layer);
+ if (!attachment)
{
- renderBuffer = new Renderbuffer(mRenderer, id(), new RenderbufferTexture3DLayer(this, level, layer));
- mRenderbufferProxies.add(level, 0, renderBuffer);
+ attachment = new FramebufferAttachment(mRenderer, id(), new Texture3DAttachment(this, level, layer));
+ mRenderbufferProxies.add(level, 0, attachment);
}
- return renderBuffer;
+ return attachment;
}
unsigned int Texture3D::getRenderTargetSerial(GLint level, GLint layer)
@@ -2593,16 +2593,16 @@
return true;
}
-Renderbuffer *Texture2DArray::getRenderbuffer(GLint level, GLint layer)
+FramebufferAttachment *Texture2DArray::getAttachment(GLint level, GLint layer)
{
- Renderbuffer *renderBuffer = mRenderbufferProxies.get(level, layer);
- if (!renderBuffer)
+ FramebufferAttachment *attachment = mRenderbufferProxies.get(level, layer);
+ if (!attachment)
{
- renderBuffer = new Renderbuffer(mRenderer, id(), new RenderbufferTexture2DArrayLayer(this, level, layer));
- mRenderbufferProxies.add(level, 0, renderBuffer);
+ attachment = new FramebufferAttachment(mRenderer, id(), new Texture2DArrayAttachment(this, level, layer));
+ mRenderbufferProxies.add(level, 0, attachment);
}
- return renderBuffer;
+ return attachment;
}
unsigned int Texture2DArray::getRenderTargetSerial(GLint level, GLint layer)
diff --git a/src/libGLESv2/Texture.h b/src/libGLESv2/Texture.h
index a44a701..84ca289 100644
--- a/src/libGLESv2/Texture.h
+++ b/src/libGLESv2/Texture.h
@@ -41,7 +41,7 @@
namespace gl
{
class Framebuffer;
-class Renderbuffer;
+class FramebufferAttachment;
enum
{
@@ -65,8 +65,8 @@
virtual ~Texture();
- void addProxyRef(const Renderbuffer *proxy);
- void releaseProxy(const Renderbuffer *proxy);
+ void addProxyRef(const FramebufferAttachment *proxy);
+ void releaseProxy(const FramebufferAttachment *proxy);
GLenum getTarget() const;
@@ -161,7 +161,7 @@
// because, as the renderbuffer acting as proxy will maintain a binding pointer
// back to this texture, there would be a circular reference if we used a binding
// pointer here. This reference count will cause the pointer to be set to NULL if
- // the count drops to zero, but will not cause deletion of the Renderbuffer.
+ // the count drops to zero, but will not cause deletion of the FramebufferAttachment.
RenderbufferProxySet mRenderbufferProxies;
private:
@@ -199,11 +199,11 @@
virtual void generateMipmaps();
- Renderbuffer *getRenderbuffer(GLint level);
+ FramebufferAttachment *getAttachment(GLint level);
unsigned int getRenderTargetSerial(GLint level);
protected:
- friend class RenderbufferTexture2D;
+ friend class Texture2DAttachment;
rx::RenderTarget *getRenderTarget(GLint level);
rx::RenderTarget *getDepthSencil(GLint level);
@@ -267,13 +267,13 @@
virtual void generateMipmaps();
- Renderbuffer *getRenderbuffer(GLenum target, GLint level);
+ FramebufferAttachment *getAttachment(GLenum target, GLint level);
unsigned int getRenderTargetSerial(GLenum target, GLint level);
static int targetToIndex(GLenum target);
protected:
- friend class RenderbufferTextureCubeMap;
+ friend class TextureCubeMapAttachment;
rx::RenderTarget *getRenderTarget(GLenum target, GLint level);
rx::RenderTarget *getDepthStencil(GLenum target, GLint level);
@@ -330,11 +330,11 @@
virtual bool isSamplerComplete(const SamplerState &samplerState) const;
virtual bool isMipmapComplete() const;
- Renderbuffer *getRenderbuffer(GLint level, GLint layer);
+ FramebufferAttachment *getAttachment(GLint level, GLint layer);
unsigned int getRenderTargetSerial(GLint level, GLint layer);
protected:
- friend class RenderbufferTexture3DLayer;
+ friend class Texture3DAttachment;
rx::RenderTarget *getRenderTarget(GLint level);
rx::RenderTarget *getRenderTarget(GLint level, GLint layer);
rx::RenderTarget *getDepthStencil(GLint level, GLint layer);
@@ -391,11 +391,11 @@
virtual bool isSamplerComplete(const SamplerState &samplerState) const;
virtual bool isMipmapComplete() const;
- Renderbuffer *getRenderbuffer(GLint level, GLint layer);
+ FramebufferAttachment *getAttachment(GLint level, GLint layer);
unsigned int getRenderTargetSerial(GLint level, GLint layer);
protected:
- friend class RenderbufferTexture2DArrayLayer;
+ friend class Texture2DArrayAttachment;
rx::RenderTarget *getRenderTarget(GLint level, GLint layer);
rx::RenderTarget *getDepthStencil(GLint level, GLint layer);
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index 0645250..bf3cd0f 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -2692,11 +2692,11 @@
GLuint attachmentHandle;
GLuint attachmentLevel;
GLuint attachmentLayer;
- gl::Renderbuffer *renderbuffer;
+ gl::FramebufferAttachment *attachmentObject;
- if(framebufferHandle == 0)
+ if (framebufferHandle == 0)
{
- if(context->getClientVersion() < 3)
+ if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_OPERATION);
}
@@ -2708,21 +2708,21 @@
attachmentHandle = framebuffer->getColorbufferHandle(0);
attachmentLevel = framebuffer->getColorbufferMipLevel(0);
attachmentLayer = framebuffer->getColorbufferLayer(0);
- renderbuffer = framebuffer->getColorbuffer(0);
+ attachmentObject = framebuffer->getColorbuffer(0);
break;
case GL_DEPTH:
attachmentType = framebuffer->getDepthbufferType();
attachmentHandle = framebuffer->getDepthbufferHandle();
attachmentLevel = framebuffer->getDepthbufferMipLevel();
attachmentLayer = framebuffer->getDepthbufferLayer();
- renderbuffer = framebuffer->getDepthbuffer();
+ attachmentObject = framebuffer->getDepthbuffer();
break;
case GL_STENCIL:
attachmentType = framebuffer->getStencilbufferType();
attachmentHandle = framebuffer->getStencilbufferHandle();
attachmentLevel = framebuffer->getStencilbufferMipLevel();
attachmentLayer = framebuffer->getStencilbufferLayer();
- renderbuffer = framebuffer->getStencilbuffer();
+ attachmentObject = framebuffer->getStencilbuffer();
break;
default:
return gl::error(GL_INVALID_OPERATION);
@@ -2737,7 +2737,7 @@
attachmentHandle = framebuffer->getColorbufferHandle(colorAttachment);
attachmentLevel = framebuffer->getColorbufferMipLevel(colorAttachment);
attachmentLayer = framebuffer->getColorbufferLayer(colorAttachment);
- renderbuffer = framebuffer->getColorbuffer(colorAttachment);
+ attachmentObject = framebuffer->getColorbuffer(colorAttachment);
}
else
{
@@ -2748,14 +2748,14 @@
attachmentHandle = framebuffer->getDepthbufferHandle();
attachmentLevel = framebuffer->getDepthbufferMipLevel();
attachmentLayer = framebuffer->getDepthbufferLayer();
- renderbuffer = framebuffer->getDepthbuffer();
+ attachmentObject = framebuffer->getDepthbuffer();
break;
case GL_STENCIL_ATTACHMENT:
attachmentType = framebuffer->getStencilbufferType();
attachmentHandle = framebuffer->getStencilbufferHandle();
attachmentLevel = framebuffer->getStencilbufferMipLevel();
attachmentLayer = framebuffer->getStencilbufferLayer();
- renderbuffer = framebuffer->getStencilbuffer();
+ attachmentObject = framebuffer->getStencilbuffer();
break;
case GL_DEPTH_STENCIL_ATTACHMENT:
if (framebuffer->getDepthbufferHandle() != framebuffer->getStencilbufferHandle())
@@ -2766,7 +2766,7 @@
attachmentHandle = framebuffer->getDepthStencilbufferHandle();
attachmentLevel = framebuffer->getDepthStencilbufferMipLevel();
attachmentLayer = framebuffer->getDepthStencilbufferLayer();
- renderbuffer = framebuffer->getDepthStencilBuffer();
+ attachmentObject = framebuffer->getDepthStencilBuffer();
break;
default:
return gl::error(GL_INVALID_OPERATION);
@@ -2831,7 +2831,7 @@
{
ASSERT(attachmentObjectType == GL_RENDERBUFFER || attachmentObjectType == GL_TEXTURE ||
attachmentObjectType == GL_FRAMEBUFFER_DEFAULT);
- ASSERT(renderbuffer != NULL);
+ ASSERT(attachmentObject != NULL);
switch (pname)
{
@@ -2864,27 +2864,27 @@
break;
case GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE:
- *params = renderbuffer->getRedSize();
+ *params = attachmentObject->getRedSize();
break;
case GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:
- *params = renderbuffer->getGreenSize();
+ *params = attachmentObject->getGreenSize();
break;
case GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:
- *params = renderbuffer->getBlueSize();
+ *params = attachmentObject->getBlueSize();
break;
case GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:
- *params = renderbuffer->getAlphaSize();
+ *params = attachmentObject->getAlphaSize();
break;
case GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:
- *params = renderbuffer->getDepthSize();
+ *params = attachmentObject->getDepthSize();
break;
case GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:
- *params = renderbuffer->getStencilSize();
+ *params = attachmentObject->getStencilSize();
break;
case GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:
@@ -2892,11 +2892,11 @@
{
gl::error(GL_INVALID_OPERATION);
}
- *params = renderbuffer->getComponentType();
+ *params = attachmentObject->getComponentType();
break;
case GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:
- *params = renderbuffer->getColorEncoding();
+ *params = attachmentObject->getColorEncoding();
break;
case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:
@@ -3188,23 +3188,23 @@
return gl::error(GL_INVALID_OPERATION);
}
- gl::Renderbuffer *renderbuffer = context->getRenderbuffer(context->getRenderbufferHandle());
+ gl::FramebufferAttachment *attachment = context->getRenderbuffer(context->getRenderbufferHandle());
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->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_WIDTH: *params = attachment->getWidth(); break;
+ case GL_RENDERBUFFER_HEIGHT: *params = attachment->getHeight(); break;
+ case GL_RENDERBUFFER_INTERNAL_FORMAT: *params = attachment->getInternalFormat(); break;
+ case GL_RENDERBUFFER_RED_SIZE: *params = attachment->getRedSize(); break;
+ case GL_RENDERBUFFER_GREEN_SIZE: *params = attachment->getGreenSize(); break;
+ case GL_RENDERBUFFER_BLUE_SIZE: *params = attachment->getBlueSize(); break;
+ case GL_RENDERBUFFER_ALPHA_SIZE: *params = attachment->getAlphaSize(); break;
+ case GL_RENDERBUFFER_DEPTH_SIZE: *params = attachment->getDepthSize(); break;
+ case GL_RENDERBUFFER_STENCIL_SIZE: *params = attachment->getStencilSize(); break;
case GL_RENDERBUFFER_SAMPLES_ANGLE:
if (context->getMaxSupportedSamples() != 0)
{
- *params = renderbuffer->getSamples();
+ *params = attachment->getSamples();
}
else
{
@@ -4237,7 +4237,7 @@
if (context && renderbuffer)
{
- gl::Renderbuffer *renderbufferObject = context->getRenderbuffer(renderbuffer);
+ gl::FramebufferAttachment *renderbufferObject = context->getRenderbuffer(renderbuffer);
if (renderbufferObject)
{
diff --git a/src/libGLESv2/renderer/d3d11/Clear11.cpp b/src/libGLESv2/renderer/d3d11/Clear11.cpp
index c02cd9e..bb73241 100644
--- a/src/libGLESv2/renderer/d3d11/Clear11.cpp
+++ b/src/libGLESv2/renderer/d3d11/Clear11.cpp
@@ -169,16 +169,16 @@
gl::Extents framebufferSize;
if (frameBuffer->getFirstColorbuffer() != NULL)
{
- gl::Renderbuffer *renderBuffer = frameBuffer->getFirstColorbuffer();
- framebufferSize.width = renderBuffer->getWidth();
- framebufferSize.height = renderBuffer->getHeight();
+ gl::FramebufferAttachment *attachment = frameBuffer->getFirstColorbuffer();
+ framebufferSize.width = attachment->getWidth();
+ framebufferSize.height = attachment->getHeight();
framebufferSize.depth = 1;
}
else if (frameBuffer->getDepthOrStencilbuffer() != NULL)
{
- gl::Renderbuffer *renderBuffer = frameBuffer->getDepthOrStencilbuffer();
- framebufferSize.width = renderBuffer->getWidth();
- framebufferSize.height = renderBuffer->getHeight();
+ gl::FramebufferAttachment *attachment = frameBuffer->getDepthOrStencilbuffer();
+ framebufferSize.width = attachment->getWidth();
+ framebufferSize.height = attachment->getHeight();
framebufferSize.depth = 1;
}
else
@@ -211,18 +211,18 @@
{
if (clearParams.clearColor[colorAttachment] && frameBuffer->isEnabledColorAttachment(colorAttachment))
{
- gl::Renderbuffer *renderbuffer = frameBuffer->getColorbuffer(colorAttachment);
- if (renderbuffer)
+ gl::FramebufferAttachment *attachment = frameBuffer->getColorbuffer(colorAttachment);
+ if (attachment)
{
- RenderTarget11 *renderTarget = RenderTarget11::makeRenderTarget11(renderbuffer->getRenderTarget());
+ RenderTarget11 *renderTarget = RenderTarget11::makeRenderTarget11(attachment->getRenderTarget());
if (!renderTarget)
{
ERR("Render target pointer unexpectedly null.");
return;
}
- GLenum internalFormat = renderbuffer->getInternalFormat();
- GLenum actualFormat = renderbuffer->getActualFormat();
+ GLenum internalFormat = attachment->getInternalFormat();
+ GLenum actualFormat = attachment->getActualFormat();
GLenum componentType = gl::GetComponentType(internalFormat, clientVersion);
if (clearParams.colorClearType == GL_FLOAT &&
!(componentType == GL_FLOAT || componentType == GL_UNSIGNED_NORMALIZED || componentType == GL_SIGNED_NORMALIZED))
@@ -287,17 +287,17 @@
if (clearParams.clearDepth || clearParams.clearStencil)
{
- gl::Renderbuffer *renderbuffer = frameBuffer->getDepthOrStencilbuffer();
- if (renderbuffer)
+ gl::FramebufferAttachment *attachment = frameBuffer->getDepthOrStencilbuffer();
+ if (attachment)
{
- RenderTarget11 *renderTarget = RenderTarget11::makeRenderTarget11(renderbuffer->getDepthStencil());
+ RenderTarget11 *renderTarget = RenderTarget11::makeRenderTarget11(attachment->getDepthStencil());
if (!renderTarget)
{
ERR("Depth stencil render target pointer unexpectedly null.");
return;
}
- GLenum actualFormat = renderbuffer->getActualFormat();
+ GLenum actualFormat = attachment->getActualFormat();
unsigned int stencilUnmasked = frameBuffer->hasStencil() ? (1 << gl::GetStencilBits(actualFormat, clientVersion)) - 1 : 0;
bool needMaskedStencilClear = clearParams.clearStencil && (clearParams.stencilWriteMask & stencilUnmasked) != stencilUnmasked;
diff --git a/src/libGLESv2/renderer/d3d11/Image11.cpp b/src/libGLESv2/renderer/d3d11/Image11.cpp
index 85484f9..aa9260d 100644
--- a/src/libGLESv2/renderer/d3d11/Image11.cpp
+++ b/src/libGLESv2/renderer/d3d11/Image11.cpp
@@ -213,7 +213,7 @@
void Image11::copy(GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height, gl::Framebuffer *source)
{
- gl::Renderbuffer *colorbuffer = source->getReadColorbuffer();
+ gl::FramebufferAttachment *colorbuffer = source->getReadColorbuffer();
if (colorbuffer && colorbuffer->getActualFormat() == mActualFormat)
{
diff --git a/src/libGLESv2/renderer/d3d11/RenderStateCache.cpp b/src/libGLESv2/renderer/d3d11/RenderStateCache.cpp
index d0bfd6c..b58569a 100644
--- a/src/libGLESv2/renderer/d3d11/RenderStateCache.cpp
+++ b/src/libGLESv2/renderer/d3d11/RenderStateCache.cpp
@@ -93,18 +93,18 @@
key.blendState = blendState;
for (unsigned int i = 0; i < D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT; i++)
{
- gl::Renderbuffer *renderBuffer = framebuffer->getColorbuffer(i);
- if (renderBuffer)
+ gl::FramebufferAttachment *attachment = framebuffer->getColorbuffer(i);
+ if (attachment)
{
if (i > 0)
{
mrt = true;
}
- key.rtChannels[i][0] = renderBuffer->getRedSize() > 0;
- key.rtChannels[i][1] = renderBuffer->getGreenSize() > 0;
- key.rtChannels[i][2] = renderBuffer->getBlueSize() > 0;
- key.rtChannels[i][3] = renderBuffer->getAlphaSize() > 0;
+ key.rtChannels[i][0] = attachment->getRedSize() > 0;
+ key.rtChannels[i][1] = attachment->getGreenSize() > 0;
+ key.rtChannels[i][2] = attachment->getBlueSize() > 0;
+ key.rtChannels[i][3] = attachment->getAlphaSize() > 0;
}
else
{
diff --git a/src/libGLESv2/renderer/d3d11/Renderer11.cpp b/src/libGLESv2/renderer/d3d11/Renderer11.cpp
index 143799a..c0ad111 100644
--- a/src/libGLESv2/renderer/d3d11/Renderer11.cpp
+++ b/src/libGLESv2/renderer/d3d11/Renderer11.cpp
@@ -979,7 +979,7 @@
// the draw buffer must be either "none", "back" for the default buffer or the same index as this color (in order)
ASSERT(drawBufferState == GL_BACK || drawBufferState == (GL_COLOR_ATTACHMENT0_EXT + colorAttachment));
- gl::Renderbuffer *colorbuffer = framebuffer->getColorbuffer(colorAttachment);
+ gl::FramebufferAttachment *colorbuffer = framebuffer->getColorbuffer(colorAttachment);
if (!colorbuffer)
{
@@ -1026,7 +1026,7 @@
}
// Get the depth stencil render buffer and serials
- gl::Renderbuffer *depthStencil = NULL;
+ gl::FramebufferAttachment *depthStencil = NULL;
unsigned int depthbufferSerial = 0;
unsigned int stencilbufferSerial = 0;
if (framebuffer->getDepthbufferType() != GL_NONE)
@@ -2634,7 +2634,7 @@
bool Renderer11::copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat,
GLint xoffset, GLint yoffset, TextureStorageInterface2D *storage, GLint level)
{
- gl::Renderbuffer *colorbuffer = framebuffer->getReadColorbuffer();
+ gl::FramebufferAttachment *colorbuffer = framebuffer->getReadColorbuffer();
if (!colorbuffer)
{
ERR("Failed to retrieve the color buffer from the frame buffer.");
@@ -2695,7 +2695,7 @@
bool Renderer11::copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat,
GLint xoffset, GLint yoffset, TextureStorageInterfaceCube *storage, GLenum target, GLint level)
{
- gl::Renderbuffer *colorbuffer = framebuffer->getReadColorbuffer();
+ gl::FramebufferAttachment *colorbuffer = framebuffer->getReadColorbuffer();
if (!colorbuffer)
{
ERR("Failed to retrieve the color buffer from the frame buffer.");
@@ -2756,7 +2756,7 @@
bool Renderer11::copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat,
GLint xoffset, GLint yoffset, GLint zOffset, TextureStorageInterface3D *storage, GLint level)
{
- gl::Renderbuffer *colorbuffer = framebuffer->getReadColorbuffer();
+ gl::FramebufferAttachment *colorbuffer = framebuffer->getReadColorbuffer();
if (!colorbuffer)
{
ERR("Failed to retrieve the color buffer from the frame buffer.");
@@ -2817,7 +2817,7 @@
bool Renderer11::copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat,
GLint xoffset, GLint yoffset, GLint zOffset, TextureStorageInterface2DArray *storage, GLint level)
{
- gl::Renderbuffer *colorbuffer = framebuffer->getReadColorbuffer();
+ gl::FramebufferAttachment *colorbuffer = framebuffer->getReadColorbuffer();
if (!colorbuffer)
{
ERR("Failed to retrieve the color buffer from the frame buffer.");
@@ -3169,7 +3169,7 @@
return mPixelTransfer->copyBufferToTexture(unpack, offset, destRenderTarget, destinationFormat, sourcePixelsType, destArea);
}
-bool Renderer11::getRenderTargetResource(gl::Renderbuffer *colorbuffer, unsigned int *subresourceIndex, ID3D11Texture2D **resource)
+bool Renderer11::getRenderTargetResource(gl::FramebufferAttachment *colorbuffer, unsigned int *subresourceIndex, ID3D11Texture2D **resource)
{
ASSERT(colorbuffer != NULL);
@@ -3210,7 +3210,7 @@
{
if (blitRenderTarget)
{
- gl::Renderbuffer *readBuffer = readTarget->getReadColorbuffer();
+ gl::FramebufferAttachment *readBuffer = readTarget->getReadColorbuffer();
if (!readBuffer)
{
@@ -3224,7 +3224,7 @@
{
if (drawTarget->isEnabledColorAttachment(colorAttachment))
{
- gl::Renderbuffer *drawBuffer = drawTarget->getColorbuffer(colorAttachment);
+ gl::FramebufferAttachment *drawBuffer = drawTarget->getColorbuffer(colorAttachment);
if (!drawBuffer)
{
@@ -3245,8 +3245,8 @@
if (blitDepth || blitStencil)
{
- gl::Renderbuffer *readBuffer = readTarget->getDepthOrStencilbuffer();
- gl::Renderbuffer *drawBuffer = drawTarget->getDepthOrStencilbuffer();
+ gl::FramebufferAttachment *readBuffer = readTarget->getDepthOrStencilbuffer();
+ gl::FramebufferAttachment *drawBuffer = drawTarget->getDepthOrStencilbuffer();
if (!readBuffer)
{
@@ -3281,7 +3281,7 @@
ID3D11Texture2D *colorBufferTexture = NULL;
unsigned int subresourceIndex = 0;
- gl::Renderbuffer *colorbuffer = framebuffer->getReadColorbuffer();
+ gl::FramebufferAttachment *colorbuffer = framebuffer->getReadColorbuffer();
if (colorbuffer && getRenderTargetResource(colorbuffer, &subresourceIndex, &colorBufferTexture))
{
@@ -3749,9 +3749,10 @@
}
}
-void Renderer11::invalidateRenderbufferSwizzles(gl::Renderbuffer *renderBuffer, int mipLevel)
+void Renderer11::invalidateFBOAttachmentSwizzles(gl::FramebufferAttachment *attachment, int mipLevel)
{
- TextureStorage *texStorage = renderBuffer->getTextureStorage();
+ ASSERT(attachment->isTexture());
+ TextureStorage *texStorage = attachment->getTextureStorage();
if (texStorage)
{
TextureStorage11 *texStorage11 = TextureStorage11::makeTextureStorage11(texStorage);
@@ -3769,23 +3770,23 @@
{
for (unsigned int colorAttachment = 0; colorAttachment < gl::IMPLEMENTATION_MAX_DRAW_BUFFERS; colorAttachment++)
{
- gl::Renderbuffer *colorbuffer = framebuffer->getColorbuffer(colorAttachment);
- if (colorbuffer)
+ gl::FramebufferAttachment *attachment = framebuffer->getColorbuffer(colorAttachment);
+ if (attachment && attachment->isTexture())
{
- invalidateRenderbufferSwizzles(colorbuffer, framebuffer->getColorbufferMipLevel(colorAttachment));
+ invalidateFBOAttachmentSwizzles(attachment, framebuffer->getColorbufferMipLevel(colorAttachment));
}
}
- gl::Renderbuffer *depthBuffer = framebuffer->getDepthbuffer();
- if (depthBuffer)
+ gl::FramebufferAttachment *depthAttachment = framebuffer->getDepthbuffer();
+ if (depthAttachment && depthAttachment->isTexture())
{
- invalidateRenderbufferSwizzles(depthBuffer, framebuffer->getDepthbufferMipLevel());
+ invalidateFBOAttachmentSwizzles(depthAttachment, framebuffer->getDepthbufferMipLevel());
}
- gl::Renderbuffer *stencilBuffer = framebuffer->getStencilbuffer();
- if (stencilBuffer)
+ gl::FramebufferAttachment *stencilAttachment = framebuffer->getStencilbuffer();
+ if (stencilAttachment && stencilAttachment->isTexture())
{
- invalidateRenderbufferSwizzles(stencilBuffer, framebuffer->getStencilbufferMipLevel());
+ invalidateFBOAttachmentSwizzles(stencilAttachment, framebuffer->getStencilbufferMipLevel());
}
}
diff --git a/src/libGLESv2/renderer/d3d11/Renderer11.h b/src/libGLESv2/renderer/d3d11/Renderer11.h
index 3e6a54a..bbd0de4 100644
--- a/src/libGLESv2/renderer/d3d11/Renderer11.h
+++ b/src/libGLESv2/renderer/d3d11/Renderer11.h
@@ -21,7 +21,7 @@
namespace gl
{
-class Renderbuffer;
+class FramebufferAttachment;
}
namespace rx
@@ -229,7 +229,7 @@
virtual bool fastCopyBufferToTexture(const gl::PixelUnpackState &unpack, unsigned int offset, RenderTarget *destRenderTarget,
GLenum destinationFormat, GLenum sourcePixelsType, const gl::Box &destArea);
- bool getRenderTargetResource(gl::Renderbuffer *colorbuffer, unsigned int *subresourceIndex, ID3D11Texture2D **resource);
+ bool getRenderTargetResource(gl::FramebufferAttachment *colorbuffer, unsigned int *subresourceIndex, ID3D11Texture2D **resource);
void unapplyRenderTargets();
void setOneTimeRenderTarget(ID3D11RenderTargetView *renderTargetView);
void packPixels(ID3D11Texture2D *readTexture, const PackPixelsParams ¶ms, void *pixelsOut);
@@ -255,7 +255,7 @@
bool colorBlit, bool depthBlit, bool stencilBlit);
ID3D11Texture2D *resolveMultisampledTexture(ID3D11Texture2D *source, unsigned int subresource);
- static void invalidateRenderbufferSwizzles(gl::Renderbuffer *renderBuffer, int mipLevel);
+ static void invalidateFBOAttachmentSwizzles(gl::FramebufferAttachment *attachment, int mipLevel);
static void invalidateFramebufferSwizzles(gl::Framebuffer *framebuffer);
HMODULE mD3d11Module;
diff --git a/src/libGLESv2/renderer/d3d9/Blit9.cpp b/src/libGLESv2/renderer/d3d9/Blit9.cpp
index a8485bd..80a4375 100644
--- a/src/libGLESv2/renderer/d3d9/Blit9.cpp
+++ b/src/libGLESv2/renderer/d3d9/Blit9.cpp
@@ -213,7 +213,7 @@
{
RenderTarget9 *renderTarget = NULL;
IDirect3DSurface9 *source = NULL;
- gl::Renderbuffer *colorbuffer = framebuffer->getColorbuffer(0);
+ gl::FramebufferAttachment *colorbuffer = framebuffer->getColorbuffer(0);
if (colorbuffer)
{
@@ -249,7 +249,7 @@
{
RenderTarget9 *renderTarget = NULL;
IDirect3DSurface9 *source = NULL;
- gl::Renderbuffer *colorbuffer = framebuffer->getColorbuffer(0);
+ gl::FramebufferAttachment *colorbuffer = framebuffer->getColorbuffer(0);
if (colorbuffer)
{
diff --git a/src/libGLESv2/renderer/d3d9/Image9.cpp b/src/libGLESv2/renderer/d3d9/Image9.cpp
index 7ddf957..001858e 100644
--- a/src/libGLESv2/renderer/d3d9/Image9.cpp
+++ b/src/libGLESv2/renderer/d3d9/Image9.cpp
@@ -452,7 +452,7 @@
RenderTarget9 *renderTarget = NULL;
IDirect3DSurface9 *surface = NULL;
- gl::Renderbuffer *colorbuffer = source->getColorbuffer(0);
+ gl::FramebufferAttachment *colorbuffer = source->getColorbuffer(0);
if (colorbuffer)
{
diff --git a/src/libGLESv2/renderer/d3d9/Renderer9.cpp b/src/libGLESv2/renderer/d3d9/Renderer9.cpp
index 76fdfdc..7d6dd7a 100644
--- a/src/libGLESv2/renderer/d3d9/Renderer9.cpp
+++ b/src/libGLESv2/renderer/d3d9/Renderer9.cpp
@@ -930,8 +930,8 @@
FIXME("Sample alpha to coverage is unimplemented.");
}
- gl::Renderbuffer *renderBuffer = framebuffer->getFirstColorbuffer();
- GLenum internalFormat = renderBuffer ? renderBuffer->getInternalFormat() : GL_NONE;
+ gl::FramebufferAttachment *attachment = framebuffer->getFirstColorbuffer();
+ GLenum internalFormat = attachment ? attachment->getInternalFormat() : GL_NONE;
GLuint clientVersion = getCurrentClientVersion();
// Set the color mask
@@ -1225,7 +1225,7 @@
}
-gl::Renderbuffer *Renderer9::getNullColorbuffer(gl::Renderbuffer *depthbuffer)
+gl::FramebufferAttachment *Renderer9::getNullColorbuffer(gl::FramebufferAttachment *depthbuffer)
{
if (!depthbuffer)
{
@@ -1248,7 +1248,7 @@
}
}
- gl::Renderbuffer *nullbuffer = new gl::Renderbuffer(this, 0, new gl::Colorbuffer(this, width, height, GL_NONE, 0));
+ gl::FramebufferAttachment *nullbuffer = new gl::FramebufferAttachment(this, 0, new gl::Colorbuffer(this, width, height, GL_NONE, 0));
// add nullbuffer to the cache
NullColorbufferCacheEntry *oldest = &mNullColorbufferCache[0];
@@ -1273,7 +1273,7 @@
{
// if there is no color attachment we must synthesize a NULL colorattachment
// to keep the D3D runtime happy. This should only be possible if depth texturing.
- gl::Renderbuffer *renderbufferObject = NULL;
+ gl::FramebufferAttachment *renderbufferObject = NULL;
if (framebuffer->getColorbufferType(0) != GL_NONE)
{
renderbufferObject = framebuffer->getColorbuffer(0);
@@ -1314,7 +1314,7 @@
renderTargetChanged = true;
}
- gl::Renderbuffer *depthStencil = NULL;
+ gl::FramebufferAttachment *depthStencil = NULL;
unsigned int depthbufferSerial = 0;
unsigned int stencilbufferSerial = 0;
if (framebuffer->getDepthbufferType() != GL_NONE)
@@ -1902,9 +1902,9 @@
D3DCOLOR color = D3DCOLOR_ARGB(255, 0, 0, 0);
if (clearColor)
{
- gl::Renderbuffer *renderbuffer = frameBuffer->getFirstColorbuffer();
- GLenum internalFormat = renderbuffer->getInternalFormat();
- GLenum actualFormat = renderbuffer->getActualFormat();
+ gl::FramebufferAttachment *attachment = frameBuffer->getFirstColorbuffer();
+ GLenum internalFormat = attachment->getInternalFormat();
+ GLenum actualFormat = attachment->getActualFormat();
GLuint clientVersion = getCurrentClientVersion();
GLuint internalRedBits = gl::GetRedBits(internalFormat, clientVersion);
@@ -2935,8 +2935,8 @@
if (blitRenderTarget)
{
- gl::Renderbuffer *readBuffer = readFramebuffer->getColorbuffer(0);
- gl::Renderbuffer *drawBuffer = drawFramebuffer->getColorbuffer(0);
+ gl::FramebufferAttachment *readBuffer = readFramebuffer->getColorbuffer(0);
+ gl::FramebufferAttachment *drawBuffer = drawFramebuffer->getColorbuffer(0);
RenderTarget9 *readRenderTarget = NULL;
RenderTarget9 *drawRenderTarget = NULL;
IDirect3DSurface9* readSurface = NULL;
@@ -3064,8 +3064,8 @@
if (blitDepth || blitStencil)
{
- gl::Renderbuffer *readBuffer = readFramebuffer->getDepthOrStencilbuffer();
- gl::Renderbuffer *drawBuffer = drawFramebuffer->getDepthOrStencilbuffer();
+ gl::FramebufferAttachment *readBuffer = readFramebuffer->getDepthOrStencilbuffer();
+ gl::FramebufferAttachment *drawBuffer = drawFramebuffer->getDepthOrStencilbuffer();
RenderTarget9 *readDepthStencil = NULL;
RenderTarget9 *drawDepthStencil = NULL;
IDirect3DSurface9* readSurface = NULL;
@@ -3117,7 +3117,7 @@
RenderTarget9 *renderTarget = NULL;
IDirect3DSurface9 *surface = NULL;
- gl::Renderbuffer *colorbuffer = framebuffer->getColorbuffer(0);
+ gl::FramebufferAttachment *colorbuffer = framebuffer->getColorbuffer(0);
if (colorbuffer)
{
diff --git a/src/libGLESv2/renderer/d3d9/Renderer9.h b/src/libGLESv2/renderer/d3d9/Renderer9.h
index 8f723e3..d3ea314 100644
--- a/src/libGLESv2/renderer/d3d9/Renderer9.h
+++ b/src/libGLESv2/renderer/d3d9/Renderer9.h
@@ -19,7 +19,7 @@
namespace gl
{
-class Renderbuffer;
+class FramebufferAttachment;
}
namespace rx
@@ -249,7 +249,7 @@
void drawIndexedPoints(GLsizei count, GLenum type, const GLvoid *indices, int minIndex, gl::Buffer *elementArrayBuffer);
bool copyToRenderTarget(IDirect3DSurface9 *dest, IDirect3DSurface9 *source, bool fromManaged);
- gl::Renderbuffer *getNullColorbuffer(gl::Renderbuffer *depthbuffer);
+ gl::FramebufferAttachment *getNullColorbuffer(gl::FramebufferAttachment *depthbuffer);
D3DPOOL getBufferPool(DWORD usage) const;
@@ -401,7 +401,7 @@
UINT lruCount;
int width;
int height;
- gl::Renderbuffer *buffer;
+ gl::FramebufferAttachment *buffer;
} mNullColorbufferCache[NUM_NULL_COLORBUFFER_CACHE_ENTRIES];
UINT mMaxNullColorbufferLRU;
diff --git a/src/libGLESv2/validationES.cpp b/src/libGLESv2/validationES.cpp
index 86d518d..e44a0f7 100644
--- a/src/libGLESv2/validationES.cpp
+++ b/src/libGLESv2/validationES.cpp
@@ -375,7 +375,7 @@
return true;
}
-static bool IsPartialBlit(gl::Context *context, gl::Renderbuffer *readBuffer, gl::Renderbuffer *writeBuffer,
+static bool IsPartialBlit(gl::Context *context, gl::FramebufferAttachment *readBuffer, gl::FramebufferAttachment *writeBuffer,
GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1)
{
@@ -472,8 +472,8 @@
if (mask & GL_COLOR_BUFFER_BIT)
{
- gl::Renderbuffer *readColorBuffer = readFramebuffer->getReadColorbuffer();
- gl::Renderbuffer *drawColorBuffer = drawFramebuffer->getFirstColorbuffer();
+ gl::FramebufferAttachment *readColorBuffer = readFramebuffer->getReadColorbuffer();
+ gl::FramebufferAttachment *drawColorBuffer = drawFramebuffer->getFirstColorbuffer();
if (readColorBuffer && drawColorBuffer)
{
@@ -555,8 +555,8 @@
if (mask & GL_DEPTH_BUFFER_BIT)
{
- gl::Renderbuffer *readDepthBuffer = readFramebuffer->getDepthbuffer();
- gl::Renderbuffer *drawDepthBuffer = drawFramebuffer->getDepthbuffer();
+ gl::FramebufferAttachment *readDepthBuffer = readFramebuffer->getDepthbuffer();
+ gl::FramebufferAttachment *drawDepthBuffer = drawFramebuffer->getDepthbuffer();
if (readDepthBuffer && drawDepthBuffer)
{
@@ -589,8 +589,8 @@
if (mask & GL_STENCIL_BUFFER_BIT)
{
- gl::Renderbuffer *readStencilBuffer = readFramebuffer->getStencilbuffer();
- gl::Renderbuffer *drawStencilBuffer = drawFramebuffer->getStencilbuffer();
+ gl::FramebufferAttachment *readStencilBuffer = readFramebuffer->getStencilbuffer();
+ gl::FramebufferAttachment *drawStencilBuffer = drawFramebuffer->getStencilbuffer();
if (readStencilBuffer && drawStencilBuffer)
{
@@ -1078,8 +1078,8 @@
return gl::error(GL_INVALID_OPERATION, false);
}
- Renderbuffer *renderbuffer = framebuffer->getReadColorbuffer();
- if (!renderbuffer)
+ FramebufferAttachment *attachment = framebuffer->getReadColorbuffer();
+ if (!attachment)
{
return gl::error(GL_INVALID_OPERATION, false);
}
diff --git a/src/libGLESv2/validationES3.cpp b/src/libGLESv2/validationES3.cpp
index 555c5e3..a45a5a3 100644
--- a/src/libGLESv2/validationES3.cpp
+++ b/src/libGLESv2/validationES3.cpp
@@ -316,7 +316,18 @@
}
gl::Framebuffer *framebuffer = context->getReadFramebuffer();
- gl::Renderbuffer *source = framebuffer->getReadColorbuffer();
+
+ if (framebuffer->completeness() != GL_FRAMEBUFFER_COMPLETE)
+ {
+ return gl::error(GL_INVALID_FRAMEBUFFER_OPERATION, false);
+ }
+
+ if (context->getReadFramebufferHandle() != 0 && framebuffer->getSamples() != 0)
+ {
+ return gl::error(GL_INVALID_OPERATION, false);
+ }
+
+ gl::FramebufferAttachment *source = framebuffer->getReadColorbuffer();
GLenum colorbufferInternalFormat = source->getInternalFormat();
if (isSubImage)