diff options
author | Jamie Madill <jmadill@chromium.org> | 2014-09-17 16:59:33 -0400 |
---|---|---|
committer | Jamie Madill <jmadill@chromium.org> | 2014-09-18 18:39:26 +0000 |
commit | ac7579c2bd0cc9afdf5892a766e6967bf3a341f0 (patch) | |
tree | 6c8e04b06c31b7283370831262a99acc6073f28b /src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp | |
parent | 02f18b883992598ffc22c2747720f17da65a330e (diff) | |
download | angle-ac7579c2bd0cc9afdf5892a766e6967bf3a341f0.tar.gz |
Use ImageIndex in getRenderTarget.
Also change ImageIndex to allow invalid indexes for layer. In 3D
indexes, sometimes the layer parameter is invalid, indicating we
index an entire mip level instead of a layer of a mip level.
BUG=angle:741
Change-Id: I7b410f9aaf568f215bb93ae063934669a8fa09bd
Reviewed-on: https://chromium-review.googlesource.com/218312
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Diffstat (limited to 'src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp')
-rw-r--r-- | src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp b/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp index eb13343b..d7cadf6c 100644 --- a/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp +++ b/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp @@ -1958,7 +1958,8 @@ bool Renderer11::copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &so return gl::error(GL_OUT_OF_MEMORY, false); } - RenderTarget11 *destRenderTarget = RenderTarget11::makeRenderTarget11(storage11->getRenderTarget(level)); + gl::ImageIndex index = gl::ImageIndex::Make2D(level); + RenderTarget11 *destRenderTarget = RenderTarget11::makeRenderTarget11(storage11->getRenderTarget(index)); if (!destRenderTarget) { ERR("Failed to retrieve the render target from the destination storage."); @@ -2019,7 +2020,8 @@ bool Renderer11::copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &so return gl::error(GL_OUT_OF_MEMORY, false); } - RenderTarget11 *destRenderTarget = RenderTarget11::makeRenderTarget11(storage11->getRenderTargetFace(target, level)); + gl::ImageIndex index = gl::ImageIndex::MakeCube(target, level); + RenderTarget11 *destRenderTarget = RenderTarget11::makeRenderTarget11(storage11->getRenderTarget(index)); if (!destRenderTarget) { ERR("Failed to retrieve the render target from the destination storage."); @@ -2080,7 +2082,8 @@ bool Renderer11::copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &so return gl::error(GL_OUT_OF_MEMORY, false); } - RenderTarget11 *destRenderTarget = RenderTarget11::makeRenderTarget11(storage11->getRenderTargetLayer(level, zOffset)); + gl::ImageIndex index = gl::ImageIndex::Make3D(level, zOffset); + RenderTarget11 *destRenderTarget = RenderTarget11::makeRenderTarget11(storage11->getRenderTarget(index)); if (!destRenderTarget) { ERR("Failed to retrieve the render target from the destination storage."); @@ -2142,7 +2145,8 @@ bool Renderer11::copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &so return gl::error(GL_OUT_OF_MEMORY, false); } - RenderTarget11 *destRenderTarget = RenderTarget11::makeRenderTarget11(storage11->getRenderTargetLayer(level, zOffset)); + gl::ImageIndex index = gl::ImageIndex::Make2DArray(level, zOffset); + RenderTarget11 *destRenderTarget = RenderTarget11::makeRenderTarget11(storage11->getRenderTarget(index)); if (!destRenderTarget) { SafeRelease(source); |