Passes pointer to Renderer to Framebuffer at construction.
TRAC #22000
Signed-off-by: Daniel Koch
Author: Shannon Woods
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1405 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/Context.cpp b/src/libGLESv2/Context.cpp
index 1b4b553..974cb49 100644
--- a/src/libGLESv2/Context.cpp
+++ b/src/libGLESv2/Context.cpp
@@ -323,7 +323,7 @@
Colorbuffer *colorbufferZero = new Colorbuffer(swapchain);
DepthStencilbuffer *depthStencilbufferZero = new DepthStencilbuffer(swapchain);
- Framebuffer *framebufferZero = new DefaultFramebuffer(colorbufferZero, depthStencilbufferZero);
+ Framebuffer *framebufferZero = new DefaultFramebuffer(mRenderer, colorbufferZero, depthStencilbufferZero);
setFramebufferZero(framebufferZero);
@@ -1070,7 +1070,7 @@
{
if (!getFramebuffer(framebuffer))
{
- mFramebufferMap[framebuffer] = new Framebuffer();
+ mFramebufferMap[framebuffer] = new Framebuffer(mRenderer);
}
mState.readFramebuffer = framebuffer;
@@ -1080,7 +1080,7 @@
{
if (!getFramebuffer(framebuffer))
{
- mFramebufferMap[framebuffer] = new Framebuffer();
+ mFramebufferMap[framebuffer] = new Framebuffer(mRenderer);
}
mState.drawFramebuffer = framebuffer;
diff --git a/src/libGLESv2/Framebuffer.cpp b/src/libGLESv2/Framebuffer.cpp
index 77d79c0..a4be062 100644
--- a/src/libGLESv2/Framebuffer.cpp
+++ b/src/libGLESv2/Framebuffer.cpp
@@ -17,7 +17,8 @@
namespace gl
{
-Framebuffer::Framebuffer()
+Framebuffer::Framebuffer(rx::Renderer *renderer)
+ : mRenderer(renderer)
{
mColorbufferType = GL_NONE;
mDepthbufferType = GL_NONE;
@@ -473,7 +474,8 @@
return GL_FRAMEBUFFER_COMPLETE;
}
-DefaultFramebuffer::DefaultFramebuffer(Colorbuffer *colorbuffer, DepthStencilbuffer *depthStencil)
+DefaultFramebuffer::DefaultFramebuffer(rx::Renderer *renderer, Colorbuffer *colorbuffer, DepthStencilbuffer *depthStencil)
+ : Framebuffer(renderer)
{
mColorbufferPointer.set(new Renderbuffer(0, colorbuffer));
diff --git a/src/libGLESv2/Framebuffer.h b/src/libGLESv2/Framebuffer.h
index 14d9c2a..ca978e9 100644
--- a/src/libGLESv2/Framebuffer.h
+++ b/src/libGLESv2/Framebuffer.h
@@ -17,6 +17,11 @@
#include "common/angleutils.h"
#include "common/RefCountObject.h"
+namespace rx
+{
+class Renderer;
+}
+
namespace gl
{
class Renderbuffer;
@@ -28,7 +33,7 @@
class Framebuffer
{
public:
- Framebuffer();
+ explicit Framebuffer(rx::Renderer *renderer);
virtual ~Framebuffer();
@@ -76,6 +81,8 @@
BindingPointer<Renderbuffer> mNullColorbufferPointer;
+ rx::Renderer *mRenderer;
+
private:
DISALLOW_COPY_AND_ASSIGN(Framebuffer);
@@ -85,7 +92,7 @@
class DefaultFramebuffer : public Framebuffer
{
public:
- DefaultFramebuffer(Colorbuffer *colorbuffer, DepthStencilbuffer *depthStencil);
+ DefaultFramebuffer(rx::Renderer *Renderer, Colorbuffer *colorbuffer, DepthStencilbuffer *depthStencil);
virtual GLenum completeness();