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
parent 370482e7
...@@ -323,7 +323,7 @@ void Context::makeCurrent(egl::Surface *surface) ...@@ -323,7 +323,7 @@ void Context::makeCurrent(egl::Surface *surface)
Colorbuffer *colorbufferZero = new Colorbuffer(swapchain); Colorbuffer *colorbufferZero = new Colorbuffer(swapchain);
DepthStencilbuffer *depthStencilbufferZero = new DepthStencilbuffer(swapchain); DepthStencilbuffer *depthStencilbufferZero = new DepthStencilbuffer(swapchain);
Framebuffer *framebufferZero = new DefaultFramebuffer(colorbufferZero, depthStencilbufferZero); Framebuffer *framebufferZero = new DefaultFramebuffer(mRenderer, colorbufferZero, depthStencilbufferZero);
setFramebufferZero(framebufferZero); setFramebufferZero(framebufferZero);
...@@ -1070,7 +1070,7 @@ void Context::bindReadFramebuffer(GLuint framebuffer) ...@@ -1070,7 +1070,7 @@ void Context::bindReadFramebuffer(GLuint framebuffer)
{ {
if (!getFramebuffer(framebuffer)) if (!getFramebuffer(framebuffer))
{ {
mFramebufferMap[framebuffer] = new Framebuffer(); mFramebufferMap[framebuffer] = new Framebuffer(mRenderer);
} }
mState.readFramebuffer = framebuffer; mState.readFramebuffer = framebuffer;
...@@ -1080,7 +1080,7 @@ void Context::bindDrawFramebuffer(GLuint framebuffer) ...@@ -1080,7 +1080,7 @@ void Context::bindDrawFramebuffer(GLuint framebuffer)
{ {
if (!getFramebuffer(framebuffer)) if (!getFramebuffer(framebuffer))
{ {
mFramebufferMap[framebuffer] = new Framebuffer(); mFramebufferMap[framebuffer] = new Framebuffer(mRenderer);
} }
mState.drawFramebuffer = framebuffer; mState.drawFramebuffer = framebuffer;
......
...@@ -17,7 +17,8 @@ ...@@ -17,7 +17,8 @@
namespace gl namespace gl
{ {
Framebuffer::Framebuffer() Framebuffer::Framebuffer(rx::Renderer *renderer)
: mRenderer(renderer)
{ {
mColorbufferType = GL_NONE; mColorbufferType = GL_NONE;
mDepthbufferType = GL_NONE; mDepthbufferType = GL_NONE;
...@@ -473,7 +474,8 @@ GLenum Framebuffer::completeness() ...@@ -473,7 +474,8 @@ GLenum Framebuffer::completeness()
return GL_FRAMEBUFFER_COMPLETE; 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)); mColorbufferPointer.set(new Renderbuffer(0, colorbuffer));
......
...@@ -17,6 +17,11 @@ ...@@ -17,6 +17,11 @@
#include "common/angleutils.h" #include "common/angleutils.h"
#include "common/RefCountObject.h" #include "common/RefCountObject.h"
namespace rx
{
class Renderer;
}
namespace gl namespace gl
{ {
class Renderbuffer; class Renderbuffer;
...@@ -28,7 +33,7 @@ class DepthStencilbuffer; ...@@ -28,7 +33,7 @@ class DepthStencilbuffer;
class Framebuffer class Framebuffer
{ {
public: public:
Framebuffer(); explicit Framebuffer(rx::Renderer *renderer);
virtual ~Framebuffer(); virtual ~Framebuffer();
...@@ -76,6 +81,8 @@ class Framebuffer ...@@ -76,6 +81,8 @@ class Framebuffer
BindingPointer<Renderbuffer> mNullColorbufferPointer; BindingPointer<Renderbuffer> mNullColorbufferPointer;
rx::Renderer *mRenderer;
private: private:
DISALLOW_COPY_AND_ASSIGN(Framebuffer); DISALLOW_COPY_AND_ASSIGN(Framebuffer);
...@@ -85,7 +92,7 @@ class Framebuffer ...@@ -85,7 +92,7 @@ class Framebuffer
class DefaultFramebuffer : public Framebuffer class DefaultFramebuffer : public Framebuffer
{ {
public: public:
DefaultFramebuffer(Colorbuffer *colorbuffer, DepthStencilbuffer *depthStencil); DefaultFramebuffer(rx::Renderer *Renderer, Colorbuffer *colorbuffer, DepthStencilbuffer *depthStencil);
virtual GLenum completeness(); virtual GLenum completeness();
......
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