aboutsummaryrefslogtreecommitdiff
path: root/src/libGLESv2/renderer
diff options
context:
space:
mode:
authorJamie Madill <jmadill@chromium.org>2014-09-12 13:26:55 -0400
committerJamie Madill <jmadill@chromium.org>2014-09-12 21:06:54 +0000
commit612e2e4490ac8baac7da12de599e94d21a62538a (patch)
treea67c8afc98b8b4f7cce0ef00acc1ac511ce6afce /src/libGLESv2/renderer
parent9f0b42a6ab87ae2b2f065cf022497ac6deabf3fd (diff)
downloadangle-612e2e4490ac8baac7da12de599e94d21a62538a.tar.gz
Add a helper to replace FBO attachment's getSerial.
Ideally we could store a render target serial in the render target itself. For now, this helper function allows us to finally stop exposing rx::RenderTarget from gl::Texture. BUG=angle:732 Change-Id: I4ffc5e0af6f0542212ad4e74adced21ebbd89462 Reviewed-on: https://chromium-review.googlesource.com/217330 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Diffstat (limited to 'src/libGLESv2/renderer')
-rw-r--r--src/libGLESv2/renderer/TextureImpl.h4
-rw-r--r--src/libGLESv2/renderer/d3d/TextureD3D.h18
-rw-r--r--src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp8
-rw-r--r--src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp6
4 files changed, 16 insertions, 20 deletions
diff --git a/src/libGLESv2/renderer/TextureImpl.h b/src/libGLESv2/renderer/TextureImpl.h
index c34485a3..9ac3ec14 100644
--- a/src/libGLESv2/renderer/TextureImpl.h
+++ b/src/libGLESv2/renderer/TextureImpl.h
@@ -29,7 +29,6 @@ namespace rx
{
class Image;
-class RenderTarget;
class Renderer;
class TextureStorageInterface;
@@ -58,9 +57,6 @@ class TextureImpl
virtual void generateMipmaps() = 0;
- virtual unsigned int getRenderTargetSerial(GLint level, GLint layer) = 0;
- virtual RenderTarget *getRenderTarget(GLint level, GLint layer) = 0;
-
virtual void bindTexImage(egl::Surface *surface) = 0;
virtual void releaseTexImage() = 0;
};
diff --git a/src/libGLESv2/renderer/d3d/TextureD3D.h b/src/libGLESv2/renderer/d3d/TextureD3D.h
index 7f216307..e8fbe846 100644
--- a/src/libGLESv2/renderer/d3d/TextureD3D.h
+++ b/src/libGLESv2/renderer/d3d/TextureD3D.h
@@ -24,6 +24,7 @@ namespace rx
class Image;
class ImageD3D;
class Renderer;
+class RenderTarget;
class TextureStorageInterface;
class TextureStorageInterface2D;
class TextureStorageInterfaceCube;
@@ -51,6 +52,9 @@ class TextureD3D : public TextureImpl
bool isImmutable() const { return mImmutable; }
+ virtual RenderTarget *getRenderTarget(GLint level, GLint layer) = 0;
+ virtual unsigned int getRenderTargetSerial(GLint level, GLint layer) = 0;
+
protected:
void setImage(const gl::PixelUnpackState &unpack, GLenum type, const void *pixels, Image *image);
bool subImage(GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth,
@@ -111,9 +115,8 @@ class TextureD3D_2D : public TextureD3D
virtual void generateMipmaps();
- virtual unsigned int getRenderTargetSerial(GLint level, GLint layer);
-
virtual RenderTarget *getRenderTarget(GLint level, GLint layer);
+ virtual unsigned int getRenderTargetSerial(GLint level, GLint layer);
private:
DISALLOW_COPY_AND_ASSIGN(TextureD3D_2D);
@@ -168,9 +171,8 @@ class TextureD3D_Cube : public TextureD3D
virtual void generateMipmaps();
- virtual unsigned int getRenderTargetSerial(GLint level, GLint layer);
-
virtual RenderTarget *getRenderTarget(GLint level, GLint layer);
+ virtual unsigned int getRenderTargetSerial(GLint level, GLint layer);
private:
DISALLOW_COPY_AND_ASSIGN(TextureD3D_Cube);
@@ -225,10 +227,9 @@ class TextureD3D_3D : public TextureD3D
virtual void generateMipmaps();
- virtual unsigned int getRenderTargetSerial(GLint level, GLint layer);
-
- virtual RenderTarget *getRenderTarget(GLint level);
+ RenderTarget *getRenderTarget(GLint level);
virtual RenderTarget *getRenderTarget(GLint level, GLint layer);
+ virtual unsigned int getRenderTargetSerial(GLint level, GLint layer);
private:
DISALLOW_COPY_AND_ASSIGN(TextureD3D_3D);
@@ -282,9 +283,8 @@ class TextureD3D_2DArray : public TextureD3D
virtual void generateMipmaps();
- virtual unsigned int getRenderTargetSerial(GLint level, GLint layer);
-
virtual RenderTarget *getRenderTarget(GLint level, GLint layer);
+ virtual unsigned int getRenderTargetSerial(GLint level, GLint layer);
private:
DISALLOW_COPY_AND_ASSIGN(TextureD3D_2DArray);
diff --git a/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp b/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp
index 10d6bbef..753a4cae 100644
--- a/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp
+++ b/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp
@@ -820,7 +820,7 @@ bool Renderer11::applyRenderTarget(gl::Framebuffer *framebuffer)
return false;
}
- renderTargetSerials[colorAttachment] = colorbuffer->getSerial();
+ renderTargetSerials[colorAttachment] = GetAttachmentSerial(colorbuffer);
// Extract the render target dimensions and view
RenderTarget11 *renderTarget = d3d11::GetAttachmentRenderTarget(colorbuffer);
@@ -850,18 +850,18 @@ bool Renderer11::applyRenderTarget(gl::Framebuffer *framebuffer)
}
}
- // Get the depth stencil render buffer and serials
+ // Get the depth stencil render buffter and serials
gl::FramebufferAttachment *depthStencil = framebuffer->getDepthbuffer();
unsigned int depthbufferSerial = 0;
unsigned int stencilbufferSerial = 0;
if (depthStencil)
{
- depthbufferSerial = depthStencil->getSerial();
+ depthbufferSerial = GetAttachmentSerial(depthStencil);
}
else if (framebuffer->getStencilbuffer())
{
depthStencil = framebuffer->getStencilbuffer();
- stencilbufferSerial = depthStencil->getSerial();
+ stencilbufferSerial = GetAttachmentSerial(depthStencil);
}
ID3D11DepthStencilView* framebufferDSV = NULL;
diff --git a/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp b/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp
index 4ae077df..cabec08d 100644
--- a/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp
+++ b/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp
@@ -1150,7 +1150,7 @@ bool Renderer9::applyRenderTarget(gl::Framebuffer *framebuffer)
}
bool renderTargetChanged = false;
- unsigned int renderTargetSerial = attachment->getSerial();
+ unsigned int renderTargetSerial = GetAttachmentSerial(attachment);
if (renderTargetSerial != mAppliedRenderTargetSerial)
{
// Apply the render target on the device
@@ -1180,12 +1180,12 @@ bool Renderer9::applyRenderTarget(gl::Framebuffer *framebuffer)
unsigned int stencilbufferSerial = 0;
if (depthStencil)
{
- depthbufferSerial = depthStencil->getSerial();
+ depthbufferSerial = GetAttachmentSerial(depthStencil);
}
else if (framebuffer->getStencilbuffer())
{
depthStencil = framebuffer->getStencilbuffer();
- stencilbufferSerial = depthStencil->getSerial();
+ stencilbufferSerial = GetAttachmentSerial(depthStencil);
}
if (depthbufferSerial != mAppliedDepthbufferSerial ||