diff options
Diffstat (limited to 'src/libGLESv2/renderer')
-rw-r--r-- | src/libGLESv2/renderer/Renderer.h | 31 | ||||
-rw-r--r-- | src/libGLESv2/renderer/d3d/ImageD3D.h | 21 | ||||
-rw-r--r-- | src/libGLESv2/renderer/d3d/TextureD3D.cpp | 87 | ||||
-rw-r--r-- | src/libGLESv2/renderer/d3d/TextureD3D.h | 28 | ||||
-rw-r--r-- | src/libGLESv2/renderer/d3d/TextureStorage.cpp | 36 | ||||
-rw-r--r-- | src/libGLESv2/renderer/d3d/TextureStorage.h | 45 | ||||
-rw-r--r-- | src/libGLESv2/renderer/d3d/d3d11/Image11.cpp | 8 | ||||
-rw-r--r-- | src/libGLESv2/renderer/d3d/d3d11/Image11.h | 11 | ||||
-rw-r--r-- | src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp | 24 | ||||
-rw-r--r-- | src/libGLESv2/renderer/d3d/d3d11/Renderer11.h | 26 | ||||
-rw-r--r-- | src/libGLESv2/renderer/d3d/d3d9/Blit9.cpp | 4 | ||||
-rw-r--r-- | src/libGLESv2/renderer/d3d/d3d9/Blit9.h | 7 | ||||
-rw-r--r-- | src/libGLESv2/renderer/d3d/d3d9/Image9.cpp | 12 | ||||
-rw-r--r-- | src/libGLESv2/renderer/d3d/d3d9/Image9.h | 15 | ||||
-rw-r--r-- | src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp | 28 | ||||
-rw-r--r-- | src/libGLESv2/renderer/d3d/d3d9/Renderer9.h | 26 |
16 files changed, 160 insertions, 249 deletions
diff --git a/src/libGLESv2/renderer/Renderer.h b/src/libGLESv2/renderer/Renderer.h index ec75fbbf..742c8f6c 100644 --- a/src/libGLESv2/renderer/Renderer.h +++ b/src/libGLESv2/renderer/Renderer.h @@ -44,10 +44,7 @@ struct VertexAttribCurrentValueData; namespace rx { -class TextureStorageInterface2D; -class TextureStorageInterfaceCube; -class TextureStorageInterface3D; -class TextureStorageInterface2DArray; +class TextureStorageInterface; class VertexBuffer; class IndexBuffer; class QueryImpl; @@ -173,19 +170,19 @@ class Renderer virtual int getMaxSwapInterval() const = 0; // Pixel operations - virtual bool copyToRenderTarget(TextureStorageInterface2D *dest, TextureStorageInterface2D *source) = 0; - virtual bool copyToRenderTarget(TextureStorageInterfaceCube *dest, TextureStorageInterfaceCube *source) = 0; - virtual bool copyToRenderTarget(TextureStorageInterface3D *dest, TextureStorageInterface3D *source) = 0; - virtual bool copyToRenderTarget(TextureStorageInterface2DArray *dest, TextureStorageInterface2DArray *source) = 0; - - virtual bool copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, - GLint xoffset, GLint yoffset, TextureStorageInterface2D *storage, GLint level) = 0; - virtual bool copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, - GLint xoffset, GLint yoffset, TextureStorageInterfaceCube *storage, GLenum target, GLint level) = 0; - virtual bool copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, - GLint xoffset, GLint yoffset, GLint zOffset, TextureStorageInterface3D *storage, GLint level) = 0; - virtual bool copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, - GLint xoffset, GLint yoffset, GLint zOffset, TextureStorageInterface2DArray *storage, GLint level) = 0; + virtual bool copyToRenderTarget2D(TextureStorageInterface *dest, TextureStorageInterface *source) = 0; + virtual bool copyToRenderTargetCube(TextureStorageInterface *dest, TextureStorageInterface *source) = 0; + virtual bool copyToRenderTarget3D(TextureStorageInterface *dest, TextureStorageInterface *source) = 0; + virtual bool copyToRenderTarget2DArray(TextureStorageInterface *dest, TextureStorageInterface *source) = 0; + + virtual bool copyImage2D(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, + GLint xoffset, GLint yoffset, TextureStorageInterface *storage, GLint level) = 0; + virtual bool copyImageCube(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, + GLint xoffset, GLint yoffset, TextureStorageInterface *storage, GLenum target, GLint level) = 0; + virtual bool copyImage3D(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, + GLint xoffset, GLint yoffset, GLint zOffset, TextureStorageInterface *storage, GLint level) = 0; + virtual bool copyImage2DArray(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, + GLint xoffset, GLint yoffset, GLint zOffset, TextureStorageInterface *storage, GLint level) = 0; virtual bool blitRect(gl::Framebuffer *readTarget, const gl::Rectangle &readRect, gl::Framebuffer *drawTarget, const gl::Rectangle &drawRect, const gl::Rectangle *scissor, bool blitRenderTarget, bool blitDepth, bool blitStencil, GLenum filter) = 0; diff --git a/src/libGLESv2/renderer/d3d/ImageD3D.h b/src/libGLESv2/renderer/d3d/ImageD3D.h index 242ce5af..ac2da19e 100644 --- a/src/libGLESv2/renderer/d3d/ImageD3D.h +++ b/src/libGLESv2/renderer/d3d/ImageD3D.h @@ -21,10 +21,7 @@ class Framebuffer; namespace rx { -class TextureStorageInterface2D; -class TextureStorageInterfaceCube; -class TextureStorageInterface3D; -class TextureStorageInterface2DArray; +class TextureStorageInterface; class ImageD3D : public Image { @@ -36,14 +33,14 @@ class ImageD3D : public Image virtual bool isDirty() const = 0; - virtual void setManagedSurface(TextureStorageInterface2D *storage, int level) {}; - virtual void setManagedSurface(TextureStorageInterfaceCube *storage, int face, int level) {}; - virtual void setManagedSurface(TextureStorageInterface3D *storage, int level) {}; - virtual void setManagedSurface(TextureStorageInterface2DArray *storage, int layer, int level) {}; - virtual bool copyToStorage(TextureStorageInterface2D *storage, int level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height) = 0; - virtual bool copyToStorage(TextureStorageInterfaceCube *storage, int face, int level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height) = 0; - virtual bool copyToStorage(TextureStorageInterface3D *storage, int level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth) = 0; - virtual bool copyToStorage(TextureStorageInterface2DArray *storage, int level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height) = 0; + virtual void setManagedSurface2D(TextureStorageInterface *storage, int level) {}; + virtual void setManagedSurfaceCube(TextureStorageInterface *storage, int face, int level) {}; + virtual void setManagedSurface3D(TextureStorageInterface *storage, int level) {}; + virtual void setManagedSurface2DArray(TextureStorageInterface *storage, int layer, int level) {}; + virtual bool copyToStorage2D(TextureStorageInterface *storage, int level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height) = 0; + virtual bool copyToStorageCube(TextureStorageInterface *storage, int face, int level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height) = 0; + virtual bool copyToStorage3D(TextureStorageInterface *storage, int level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth) = 0; + virtual bool copyToStorage2DArray(TextureStorageInterface *storage, int level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height) = 0; private: DISALLOW_COPY_AND_ASSIGN(ImageD3D); diff --git a/src/libGLESv2/renderer/d3d/TextureD3D.cpp b/src/libGLESv2/renderer/d3d/TextureD3D.cpp index f18eecaa..b68c7fad 100644 --- a/src/libGLESv2/renderer/d3d/TextureD3D.cpp +++ b/src/libGLESv2/renderer/d3d/TextureD3D.cpp @@ -398,7 +398,7 @@ void TextureD3D_2D::copyImage(GLenum target, GLint level, GLenum format, GLint x sourceRect.y = y; sourceRect.height = height; - mRenderer->copyImage(source, sourceRect, format, 0, 0, mTexStorage, level); + mRenderer->copyImage2D(source, sourceRect, format, 0, 0, mTexStorage, level); } } } @@ -430,9 +430,9 @@ void TextureD3D_2D::copySubImage(GLenum target, GLint level, GLint xoffset, GLin sourceRect.y = y; sourceRect.height = height; - mRenderer->copyImage(source, sourceRect, - gl::GetInternalFormatInfo(getBaseLevelInternalFormat()).format, - xoffset, yoffset, mTexStorage, level); + mRenderer->copyImage2D(source, sourceRect, + gl::GetInternalFormatInfo(getBaseLevelInternalFormat()).format, + xoffset, yoffset, mTexStorage, level); } } } @@ -457,7 +457,7 @@ void TextureD3D_2D::storage(GLenum target, GLsizei levels, GLenum internalformat bool renderTarget = IsRenderTargetUsage(mUsage); TextureStorage *storage = mRenderer->createTextureStorage2D(internalformat, renderTarget, width, height, levels); - setCompleteTexStorage(new TextureStorageInterface2D(storage)); + setCompleteTexStorage(new TextureStorageInterface(storage, 1)); } void TextureD3D_2D::bindTexImage(egl::Surface *surface) @@ -470,7 +470,8 @@ void TextureD3D_2D::bindTexImage(egl::Surface *surface) { SafeDelete(mTexStorage); } - mTexStorage = new TextureStorageInterface2D(mRenderer, surface->getSwapChain()); + TextureStorage *storage = mRenderer->createTextureStorage2D(surface->getSwapChain()); + mTexStorage = new TextureStorageInterface(storage, 1); mDirtyImages = true; } @@ -609,7 +610,7 @@ void TextureD3D_2D::initializeStorage(bool renderTarget) updateStorage(); } -TextureStorageInterface2D *TextureD3D_2D::createCompleteStorage(bool renderTarget) const +TextureStorageInterface *TextureD3D_2D::createCompleteStorage(bool renderTarget) const { GLsizei width = getBaseLevelWidth(); GLsizei height = getBaseLevelHeight(); @@ -621,10 +622,10 @@ TextureStorageInterface2D *TextureD3D_2D::createCompleteStorage(bool renderTarge GLint levels = (mTexStorage ? mTexStorage->getLevelCount() : creationLevels(width, height, 1)); TextureStorage *storageInstance = mRenderer->createTextureStorage2D(internalFormat, renderTarget, width, height, levels); - return new TextureStorageInterface2D(storageInstance); + return new TextureStorageInterface(storageInstance, 1); } -void TextureD3D_2D::setCompleteTexStorage(TextureStorageInterface2D *newCompleteTexStorage) +void TextureD3D_2D::setCompleteTexStorage(TextureStorageInterface *newCompleteTexStorage) { SafeDelete(mTexStorage); mTexStorage = newCompleteTexStorage; @@ -633,7 +634,7 @@ void TextureD3D_2D::setCompleteTexStorage(TextureStorageInterface2D *newComplete { for (int level = 0; level < mTexStorage->getLevelCount(); level++) { - mImageArray[level]->setManagedSurface(mTexStorage, level); + mImageArray[level]->setManagedSurface2D(mTexStorage, level); } } @@ -662,9 +663,9 @@ bool TextureD3D_2D::ensureRenderTarget() ASSERT(mTexStorage); if (!mTexStorage->isRenderTarget()) { - TextureStorageInterface2D *newRenderTargetStorage = createCompleteStorage(true); + TextureStorageInterface *newRenderTargetStorage = createCompleteStorage(true); - if (!mRenderer->copyToRenderTarget(newRenderTargetStorage, mTexStorage)) + if (!mRenderer->copyToRenderTarget2D(newRenderTargetStorage, mTexStorage)) { delete newRenderTargetStorage; return gl::error(GL_OUT_OF_MEMORY, false); @@ -732,7 +733,7 @@ void TextureD3D_2D::commitRect(GLint level, GLint xoffset, GLint yoffset, GLsize if (isValidLevel(level)) { ImageD3D *image = mImageArray[level]; - if (image->copyToStorage(mTexStorage, level, xoffset, yoffset, width, height)) + if (image->copyToStorage2D(mTexStorage, level, xoffset, yoffset, width, height)) { image->markClean(); } @@ -878,7 +879,7 @@ void TextureD3D_Cube::copyImage(GLenum target, GLint level, GLenum format, GLint sourceRect.y = y; sourceRect.height = height; - mRenderer->copyImage(source, sourceRect, format, 0, 0, mTexStorage, target, level); + mRenderer->copyImageCube(source, sourceRect, format, 0, 0, mTexStorage, target, level); } } } @@ -911,8 +912,8 @@ void TextureD3D_Cube::copySubImage(GLenum target, GLint level, GLint xoffset, GL sourceRect.y = y; sourceRect.height = height; - mRenderer->copyImage(source, sourceRect, gl::GetInternalFormatInfo(getBaseLevelInternalFormat()).format, - xoffset, yoffset, mTexStorage, target, level); + mRenderer->copyImageCube(source, sourceRect, gl::GetInternalFormatInfo(getBaseLevelInternalFormat()).format, + xoffset, yoffset, mTexStorage, target, level); } } } @@ -943,7 +944,7 @@ void TextureD3D_Cube::storage(GLenum target, GLsizei levels, GLenum internalform bool renderTarget = IsRenderTargetUsage(mUsage); TextureStorage *storageInstance = mRenderer->createTextureStorageCube(internalformat, renderTarget, width, levels); - setCompleteTexStorage(new TextureStorageInterfaceCube(storageInstance)); + setCompleteTexStorage(new TextureStorageInterface(storageInstance, 6)); } // Tests for cube texture completeness. [OpenGL ES 2.0.24] section 3.7.10 page 81. @@ -1063,7 +1064,7 @@ void TextureD3D_Cube::initializeStorage(bool renderTarget) updateStorage(); } -TextureStorageInterfaceCube *TextureD3D_Cube::createCompleteStorage(bool renderTarget) const +TextureStorageInterface *TextureD3D_Cube::createCompleteStorage(bool renderTarget) const { GLsizei size = getBaseLevelWidth(); @@ -1073,10 +1074,10 @@ TextureStorageInterfaceCube *TextureD3D_Cube::createCompleteStorage(bool renderT GLint levels = (mTexStorage ? mTexStorage->getLevelCount() : creationLevels(size, size, 1)); TextureStorage *storage = mRenderer->createTextureStorageCube(getBaseLevelInternalFormat(), renderTarget, size, levels); - return new TextureStorageInterfaceCube(storage); + return new TextureStorageInterface(storage, 6); } -void TextureD3D_Cube::setCompleteTexStorage(TextureStorageInterfaceCube *newCompleteTexStorage) +void TextureD3D_Cube::setCompleteTexStorage(TextureStorageInterface *newCompleteTexStorage) { SafeDelete(mTexStorage); mTexStorage = newCompleteTexStorage; @@ -1087,7 +1088,7 @@ void TextureD3D_Cube::setCompleteTexStorage(TextureStorageInterfaceCube *newComp { for (int level = 0; level < mTexStorage->getLevelCount(); level++) { - mImageArray[faceIndex][level]->setManagedSurface(mTexStorage, faceIndex, level); + mImageArray[faceIndex][level]->setManagedSurfaceCube(mTexStorage, faceIndex, level); } } } @@ -1120,9 +1121,9 @@ bool TextureD3D_Cube::ensureRenderTarget() ASSERT(mTexStorage); if (!mTexStorage->isRenderTarget()) { - TextureStorageInterfaceCube *newRenderTargetStorage = createCompleteStorage(true); + TextureStorageInterface *newRenderTargetStorage = createCompleteStorage(true); - if (!mRenderer->copyToRenderTarget(newRenderTargetStorage, mTexStorage)) + if (!mRenderer->copyToRenderTargetCube(newRenderTargetStorage, mTexStorage)) { delete newRenderTargetStorage; return gl::error(GL_OUT_OF_MEMORY, false); @@ -1241,7 +1242,7 @@ void TextureD3D_Cube::commitRect(int faceIndex, GLint level, GLint xoffset, GLin if (isValidFaceLevel(faceIndex, level)) { ImageD3D *image = mImageArray[faceIndex][level]; - if (image->copyToStorage(mTexStorage, faceIndex, level, xoffset, yoffset, width, height)) + if (image->copyToStorageCube(mTexStorage, faceIndex, level, xoffset, yoffset, width, height)) image->markClean(); } } @@ -1441,9 +1442,9 @@ void TextureD3D_3D::copySubImage(GLenum target, GLint level, GLint xoffset, GLin sourceRect.y = y; sourceRect.height = height; - mRenderer->copyImage(source, sourceRect, - gl::GetInternalFormatInfo(getBaseLevelInternalFormat()).format, - xoffset, yoffset, zoffset, mTexStorage, level); + mRenderer->copyImage3D(source, sourceRect, + gl::GetInternalFormatInfo(getBaseLevelInternalFormat()).format, + xoffset, yoffset, zoffset, mTexStorage, level); } } } @@ -1469,7 +1470,7 @@ void TextureD3D_3D::storage(GLenum target, GLsizei levels, GLenum internalformat bool renderTarget = IsRenderTargetUsage(mUsage); TextureStorage *storage = mRenderer->createTextureStorage3D(internalformat, renderTarget, width, height, depth, levels); - setCompleteTexStorage(new TextureStorageInterface3D(storage, depth)); + setCompleteTexStorage(new TextureStorageInterface(storage, depth)); } void TextureD3D_3D::bindTexImage(egl::Surface *surface) @@ -1561,7 +1562,7 @@ void TextureD3D_3D::initializeStorage(bool renderTarget) updateStorage(); } -TextureStorageInterface3D *TextureD3D_3D::createCompleteStorage(bool renderTarget) const +TextureStorageInterface *TextureD3D_3D::createCompleteStorage(bool renderTarget) const { GLsizei width = getBaseLevelWidth(); GLsizei height = getBaseLevelHeight(); @@ -1574,10 +1575,10 @@ TextureStorageInterface3D *TextureD3D_3D::createCompleteStorage(bool renderTarge GLint levels = (mTexStorage ? mTexStorage->getLevelCount() : creationLevels(width, height, depth)); TextureStorage *storage = mRenderer->createTextureStorage3D(internalFormat, renderTarget, width, height, depth, levels); - return new TextureStorageInterface3D(storage, depth); + return new TextureStorageInterface(storage, depth); } -void TextureD3D_3D::setCompleteTexStorage(TextureStorageInterface3D *newCompleteTexStorage) +void TextureD3D_3D::setCompleteTexStorage(TextureStorageInterface *newCompleteTexStorage) { SafeDelete(mTexStorage); mTexStorage = newCompleteTexStorage; @@ -1609,9 +1610,9 @@ bool TextureD3D_3D::ensureRenderTarget() ASSERT(mTexStorage); if (!mTexStorage->isRenderTarget()) { - TextureStorageInterface3D *newRenderTargetStorage = createCompleteStorage(true); + TextureStorageInterface *newRenderTargetStorage = createCompleteStorage(true); - if (!mRenderer->copyToRenderTarget(newRenderTargetStorage, mTexStorage)) + if (!mRenderer->copyToRenderTarget3D(newRenderTargetStorage, mTexStorage)) { delete newRenderTargetStorage; return gl::error(GL_OUT_OF_MEMORY, false); @@ -1734,7 +1735,7 @@ void TextureD3D_3D::commitRect(GLint level, GLint xoffset, GLint yoffset, GLint if (isValidLevel(level)) { ImageD3D *image = mImageArray[level]; - if (image->copyToStorage(mTexStorage, level, xoffset, yoffset, zoffset, width, height, depth)) + if (image->copyToStorage3D(mTexStorage, level, xoffset, yoffset, zoffset, width, height, depth)) { image->markClean(); } @@ -1914,8 +1915,8 @@ void TextureD3D_2DArray::copySubImage(GLenum target, GLint level, GLint xoffset, sourceRect.y = y; sourceRect.height = height; - mRenderer->copyImage(source, sourceRect, gl::GetInternalFormatInfo(getInternalFormat(0)).format, - xoffset, yoffset, zoffset, mTexStorage, level); + mRenderer->copyImage2DArray(source, sourceRect, gl::GetInternalFormatInfo(getInternalFormat(0)).format, + xoffset, yoffset, zoffset, mTexStorage, level); } } } @@ -1951,7 +1952,7 @@ void TextureD3D_2DArray::storage(GLenum target, GLsizei levels, GLenum internalf bool renderTarget = IsRenderTargetUsage(mUsage); TextureStorage *storage = mRenderer->createTextureStorage2DArray(internalformat, renderTarget, width, height, depth, levels); - setCompleteTexStorage(new TextureStorageInterface2DArray(storage, depth)); + setCompleteTexStorage(new TextureStorageInterface(storage, depth)); } void TextureD3D_2DArray::bindTexImage(egl::Surface *surface) @@ -2043,7 +2044,7 @@ void TextureD3D_2DArray::initializeStorage(bool renderTarget) updateStorage(); } -TextureStorageInterface2DArray *TextureD3D_2DArray::createCompleteStorage(bool renderTarget) const +TextureStorageInterface *TextureD3D_2DArray::createCompleteStorage(bool renderTarget) const { GLsizei width = getBaseLevelWidth(); GLsizei height = getBaseLevelHeight(); @@ -2056,10 +2057,10 @@ TextureStorageInterface2DArray *TextureD3D_2DArray::createCompleteStorage(bool r GLint levels = (mTexStorage ? mTexStorage->getLevelCount() : creationLevels(width, height, 1)); TextureStorage *storage = mRenderer->createTextureStorage2DArray(internalFormat, renderTarget, width, height, depth, levels); - return new TextureStorageInterface2DArray(storage, depth); + return new TextureStorageInterface(storage, depth); } -void TextureD3D_2DArray::setCompleteTexStorage(TextureStorageInterface2DArray *newCompleteTexStorage) +void TextureD3D_2DArray::setCompleteTexStorage(TextureStorageInterface *newCompleteTexStorage) { SafeDelete(mTexStorage); mTexStorage = newCompleteTexStorage; @@ -2091,9 +2092,9 @@ bool TextureD3D_2DArray::ensureRenderTarget() ASSERT(mTexStorage); if (!mTexStorage->isRenderTarget()) { - TextureStorageInterface2DArray *newRenderTargetStorage = createCompleteStorage(true); + TextureStorageInterface *newRenderTargetStorage = createCompleteStorage(true); - if (!mRenderer->copyToRenderTarget(newRenderTargetStorage, mTexStorage)) + if (!mRenderer->copyToRenderTarget2DArray(newRenderTargetStorage, mTexStorage)) { delete newRenderTargetStorage; return gl::error(GL_OUT_OF_MEMORY, false); @@ -2253,7 +2254,7 @@ void TextureD3D_2DArray::commitRect(GLint level, GLint xoffset, GLint yoffset, G if (isValidLevel(level) && layerTarget < getLayers(level)) { ImageD3D *image = mImageArray[level][layerTarget]; - if (image->copyToStorage(mTexStorage, level, xoffset, yoffset, layerTarget, width, height)) + if (image->copyToStorage2DArray(mTexStorage, level, xoffset, yoffset, layerTarget, width, height)) { image->markClean(); } diff --git a/src/libGLESv2/renderer/d3d/TextureD3D.h b/src/libGLESv2/renderer/d3d/TextureD3D.h index 8777f360..227ad891 100644 --- a/src/libGLESv2/renderer/d3d/TextureD3D.h +++ b/src/libGLESv2/renderer/d3d/TextureD3D.h @@ -26,10 +26,6 @@ class ImageD3D; class Renderer; class RenderTarget; class TextureStorageInterface; -class TextureStorageInterface2D; -class TextureStorageInterfaceCube; -class TextureStorageInterface3D; -class TextureStorageInterface2DArray; class TextureD3D : public TextureImpl { @@ -123,8 +119,8 @@ class TextureD3D_2D : public TextureD3D DISALLOW_COPY_AND_ASSIGN(TextureD3D_2D); virtual void initializeStorage(bool renderTarget); - TextureStorageInterface2D *createCompleteStorage(bool renderTarget) const; - void setCompleteTexStorage(TextureStorageInterface2D *newCompleteTexStorage); + TextureStorageInterface *createCompleteStorage(bool renderTarget) const; + void setCompleteTexStorage(TextureStorageInterface *newCompleteTexStorage); virtual void updateStorage(); bool ensureRenderTarget(); @@ -139,7 +135,7 @@ class TextureD3D_2D : public TextureD3D void redefineImage(GLint level, GLenum internalformat, GLsizei width, GLsizei height); void commitRect(GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height); - TextureStorageInterface2D *mTexStorage; + TextureStorageInterface *mTexStorage; ImageD3D *mImageArray[gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS]; }; @@ -180,8 +176,8 @@ class TextureD3D_Cube : public TextureD3D DISALLOW_COPY_AND_ASSIGN(TextureD3D_Cube); virtual void initializeStorage(bool renderTarget); - TextureStorageInterfaceCube *createCompleteStorage(bool renderTarget) const; - void setCompleteTexStorage(TextureStorageInterfaceCube *newCompleteTexStorage); + TextureStorageInterface *createCompleteStorage(bool renderTarget) const; + void setCompleteTexStorage(TextureStorageInterface *newCompleteTexStorage); virtual void updateStorage(); bool ensureRenderTarget(); @@ -198,7 +194,7 @@ class TextureD3D_Cube : public TextureD3D ImageD3D *mImageArray[6][gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS]; - TextureStorageInterfaceCube *mTexStorage; + TextureStorageInterface *mTexStorage; }; class TextureD3D_3D : public TextureD3D @@ -237,8 +233,8 @@ class TextureD3D_3D : public TextureD3D DISALLOW_COPY_AND_ASSIGN(TextureD3D_3D); virtual void initializeStorage(bool renderTarget); - TextureStorageInterface3D *createCompleteStorage(bool renderTarget) const; - void setCompleteTexStorage(TextureStorageInterface3D *newCompleteTexStorage); + TextureStorageInterface *createCompleteStorage(bool renderTarget) const; + void setCompleteTexStorage(TextureStorageInterface *newCompleteTexStorage); virtual void updateStorage(); bool ensureRenderTarget(); @@ -254,7 +250,7 @@ class TextureD3D_3D : public TextureD3D ImageD3D *mImageArray[gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS]; - TextureStorageInterface3D *mTexStorage; + TextureStorageInterface *mTexStorage; }; class TextureD3D_2DArray : public TextureD3D @@ -293,8 +289,8 @@ class TextureD3D_2DArray : public TextureD3D DISALLOW_COPY_AND_ASSIGN(TextureD3D_2DArray); virtual void initializeStorage(bool renderTarget); - TextureStorageInterface2DArray *createCompleteStorage(bool renderTarget) const; - void setCompleteTexStorage(TextureStorageInterface2DArray *newCompleteTexStorage); + TextureStorageInterface *createCompleteStorage(bool renderTarget) const; + void setCompleteTexStorage(TextureStorageInterface *newCompleteTexStorage); virtual void updateStorage(); bool ensureRenderTarget(); @@ -316,7 +312,7 @@ class TextureD3D_2DArray : public TextureD3D GLsizei mLayerCounts[gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS]; ImageD3D **mImageArray[gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS]; - TextureStorageInterface2DArray *mTexStorage; + TextureStorageInterface *mTexStorage; }; } diff --git a/src/libGLESv2/renderer/d3d/TextureStorage.cpp b/src/libGLESv2/renderer/d3d/TextureStorage.cpp index 8005efb1..b46db145 100644 --- a/src/libGLESv2/renderer/d3d/TextureStorage.cpp +++ b/src/libGLESv2/renderer/d3d/TextureStorage.cpp @@ -4,9 +4,7 @@ // found in the LICENSE file. // -// TextureStorage.cpp: Implements the abstract rx::TextureStorageInterface class and its concrete derived -// classes TextureStorageInterface2D and TextureStorageInterfaceCube, which act as the interface to the -// GPU-side texture. +// TextureStorage.cpp: Shared members of abstract rx::TextureStorage class. #include "libGLESv2/renderer/d3d/TextureStorage.h" #include "libGLESv2/renderer/d3d/TextureD3D.h" @@ -69,36 +67,4 @@ unsigned int TextureStorageInterface::getRenderTargetSerial(const gl::ImageIndex return mFirstRenderTargetSerial + static_cast<unsigned int>(index.mipIndex) + layerOffset; } -TextureStorageInterface2D::TextureStorageInterface2D(Renderer *renderer, SwapChain *swapchain) - : TextureStorageInterface(renderer->createTextureStorage2D(swapchain), 1) -{} - -TextureStorageInterface2D::TextureStorageInterface2D(TextureStorage *storageInstance) - : TextureStorageInterface(storageInstance, 1) -{} - -TextureStorageInterface2D::~TextureStorageInterface2D() -{} - -TextureStorageInterfaceCube::TextureStorageInterfaceCube(TextureStorage *storageInstance) - : TextureStorageInterface(storageInstance, 6) -{} - -TextureStorageInterfaceCube::~TextureStorageInterfaceCube() -{} - -TextureStorageInterface3D::TextureStorageInterface3D(TextureStorage *storageInstance, unsigned int depth) - : TextureStorageInterface(storageInstance, depth) -{} - -TextureStorageInterface3D::~TextureStorageInterface3D() -{} - -TextureStorageInterface2DArray::TextureStorageInterface2DArray(TextureStorage *storageInstance, unsigned int depth) - : TextureStorageInterface(storageInstance, depth) -{} - -TextureStorageInterface2DArray::~TextureStorageInterface2DArray() -{} - } diff --git a/src/libGLESv2/renderer/d3d/TextureStorage.h b/src/libGLESv2/renderer/d3d/TextureStorage.h index a57a7348..ae00f892 100644 --- a/src/libGLESv2/renderer/d3d/TextureStorage.h +++ b/src/libGLESv2/renderer/d3d/TextureStorage.h @@ -4,9 +4,7 @@ // found in the LICENSE file. // -// TextureStorage.h: Defines the abstract rx::TextureStorageInterface class and its concrete derived -// classes TextureStorageInterface2D and TextureStorageInterfaceCube, which act as the interface to the -// GPU-side texture. +// TextureStorage.h: Defines the abstract rx::TextureStorage class. #ifndef LIBGLESV2_RENDERER_TEXTURESTORAGE_H_ #define LIBGLESV2_RENDERER_TEXTURESTORAGE_H_ @@ -77,47 +75,6 @@ class TextureStorageInterface unsigned int mRenderTargetSerialsLayerStride; }; -class TextureStorageInterface2D : public TextureStorageInterface -{ - public: - TextureStorageInterface2D(Renderer *renderer, SwapChain *swapchain); - TextureStorageInterface2D(TextureStorage *storageInstance); - virtual ~TextureStorageInterface2D(); - - private: - DISALLOW_COPY_AND_ASSIGN(TextureStorageInterface2D); -}; - -class TextureStorageInterfaceCube : public TextureStorageInterface -{ - public: - TextureStorageInterfaceCube(TextureStorage *storageInstance); - virtual ~TextureStorageInterfaceCube(); - - private: - DISALLOW_COPY_AND_ASSIGN(TextureStorageInterfaceCube); -}; - -class TextureStorageInterface3D : public TextureStorageInterface -{ - public: - TextureStorageInterface3D(TextureStorage *storageInstance, unsigned int depth); - virtual ~TextureStorageInterface3D(); - - private: - DISALLOW_COPY_AND_ASSIGN(TextureStorageInterface3D); -}; - -class TextureStorageInterface2DArray : public TextureStorageInterface -{ - public: - TextureStorageInterface2DArray(TextureStorage *storageInstance, unsigned int depth); - virtual ~TextureStorageInterface2DArray(); - - private: - DISALLOW_COPY_AND_ASSIGN(TextureStorageInterface2DArray); -}; - } #endif // LIBGLESV2_RENDERER_TEXTURESTORAGE_H_ diff --git a/src/libGLESv2/renderer/d3d/d3d11/Image11.cpp b/src/libGLESv2/renderer/d3d/d3d11/Image11.cpp index 185bd9c0..d448f732 100644 --- a/src/libGLESv2/renderer/d3d/d3d11/Image11.cpp +++ b/src/libGLESv2/renderer/d3d/d3d11/Image11.cpp @@ -99,25 +99,25 @@ bool Image11::isDirty() const return mDirty; } -bool Image11::copyToStorage(TextureStorageInterface2D *storage, int level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height) +bool Image11::copyToStorage2D(TextureStorageInterface *storage, int level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height) { TextureStorage11_2D *storage11 = TextureStorage11_2D::makeTextureStorage11_2D(storage->getStorageInstance()); return copyToStorageImpl(storage11, level, 0, xoffset, yoffset, width, height); } -bool Image11::copyToStorage(TextureStorageInterfaceCube *storage, int face, int level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height) +bool Image11::copyToStorageCube(TextureStorageInterface *storage, int face, int level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height) { TextureStorage11_Cube *storage11 = TextureStorage11_Cube::makeTextureStorage11_Cube(storage->getStorageInstance()); return copyToStorageImpl(storage11, level, face, xoffset, yoffset, width, height); } -bool Image11::copyToStorage(TextureStorageInterface3D *storage, int level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth) +bool Image11::copyToStorage3D(TextureStorageInterface *storage, int level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth) { TextureStorage11_3D *storage11 = TextureStorage11_3D::makeTextureStorage11_3D(storage->getStorageInstance()); return copyToStorageImpl(storage11, level, 0, xoffset, yoffset, width, height); } -bool Image11::copyToStorage(TextureStorageInterface2DArray *storage, int level, GLint xoffset, GLint yoffset, GLint arrayLayer, GLsizei width, GLsizei height) +bool Image11::copyToStorage2DArray(TextureStorageInterface *storage, int level, GLint xoffset, GLint yoffset, GLint arrayLayer, GLsizei width, GLsizei height) { TextureStorage11_2DArray *storage11 = TextureStorage11_2DArray::makeTextureStorage11_2DArray(storage->getStorageInstance()); return copyToStorageImpl(storage11, level, arrayLayer, xoffset, yoffset, width, height); diff --git a/src/libGLESv2/renderer/d3d/d3d11/Image11.h b/src/libGLESv2/renderer/d3d/d3d11/Image11.h index c815eaf4..80909d2c 100644 --- a/src/libGLESv2/renderer/d3d/d3d11/Image11.h +++ b/src/libGLESv2/renderer/d3d/d3d11/Image11.h @@ -23,8 +23,7 @@ namespace rx { class Renderer; class Renderer11; -class TextureStorageInterface2D; -class TextureStorageInterfaceCube; +class TextureStorageInterface; class TextureStorage11; class Image11 : public ImageD3D @@ -39,10 +38,10 @@ class Image11 : public ImageD3D virtual bool isDirty() const; - virtual bool copyToStorage(TextureStorageInterface2D *storage, int level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height); - virtual bool copyToStorage(TextureStorageInterfaceCube *storage, int face, int level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height); - virtual bool copyToStorage(TextureStorageInterface3D *storage, int level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); - virtual bool copyToStorage(TextureStorageInterface2DArray *storage, int level, GLint xoffset, GLint yoffset, GLint arrayLayer, GLsizei width, GLsizei height); + virtual bool copyToStorage2D(TextureStorageInterface *storage, int level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height); + virtual bool copyToStorageCube(TextureStorageInterface *storage, int face, int level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height); + virtual bool copyToStorage3D(TextureStorageInterface *storage, int level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); + virtual bool copyToStorage2DArray(TextureStorageInterface *storage, int level, GLint xoffset, GLint yoffset, GLint arrayLayer, GLsizei width, GLsizei height); virtual bool redefine(Renderer *renderer, GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, bool forceRelease); diff --git a/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp b/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp index 8685904c..651e83ff 100644 --- a/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp +++ b/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp @@ -1873,7 +1873,7 @@ int Renderer11::getMaxSwapInterval() const return 4; } -bool Renderer11::copyToRenderTarget(TextureStorageInterface2D *dest, TextureStorageInterface2D *source) +bool Renderer11::copyToRenderTarget2D(TextureStorageInterface *dest, TextureStorageInterface *source) { if (source && dest) { @@ -1890,7 +1890,7 @@ bool Renderer11::copyToRenderTarget(TextureStorageInterface2D *dest, TextureStor return false; } -bool Renderer11::copyToRenderTarget(TextureStorageInterfaceCube *dest, TextureStorageInterfaceCube *source) +bool Renderer11::copyToRenderTargetCube(TextureStorageInterface *dest, TextureStorageInterface *source) { if (source && dest) { @@ -1907,7 +1907,7 @@ bool Renderer11::copyToRenderTarget(TextureStorageInterfaceCube *dest, TextureSt return false; } -bool Renderer11::copyToRenderTarget(TextureStorageInterface3D *dest, TextureStorageInterface3D *source) +bool Renderer11::copyToRenderTarget3D(TextureStorageInterface *dest, TextureStorageInterface *source) { if (source && dest) { @@ -1924,7 +1924,7 @@ bool Renderer11::copyToRenderTarget(TextureStorageInterface3D *dest, TextureStor return false; } -bool Renderer11::copyToRenderTarget(TextureStorageInterface2DArray *dest, TextureStorageInterface2DArray *source) +bool Renderer11::copyToRenderTarget2DArray(TextureStorageInterface *dest, TextureStorageInterface *source) { if (source && dest) { @@ -1941,8 +1941,8 @@ bool Renderer11::copyToRenderTarget(TextureStorageInterface2DArray *dest, Textur return false; } -bool Renderer11::copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, - GLint xoffset, GLint yoffset, TextureStorageInterface2D *storage, GLint level) +bool Renderer11::copyImage2D(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, + GLint xoffset, GLint yoffset, TextureStorageInterface *storage, GLint level) { gl::FramebufferAttachment *colorbuffer = framebuffer->getReadColorbuffer(); if (!colorbuffer) @@ -2003,8 +2003,8 @@ bool Renderer11::copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &so return ret; } -bool Renderer11::copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, - GLint xoffset, GLint yoffset, TextureStorageInterfaceCube *storage, GLenum target, GLint level) +bool Renderer11::copyImageCube(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, + GLint xoffset, GLint yoffset, TextureStorageInterface *storage, GLenum target, GLint level) { gl::FramebufferAttachment *colorbuffer = framebuffer->getReadColorbuffer(); if (!colorbuffer) @@ -2065,8 +2065,8 @@ bool Renderer11::copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &so return ret; } -bool Renderer11::copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, - GLint xoffset, GLint yoffset, GLint zOffset, TextureStorageInterface3D *storage, GLint level) +bool Renderer11::copyImage3D(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, + GLint xoffset, GLint yoffset, GLint zOffset, TextureStorageInterface *storage, GLint level) { gl::FramebufferAttachment *colorbuffer = framebuffer->getReadColorbuffer(); if (!colorbuffer) @@ -2127,8 +2127,8 @@ bool Renderer11::copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &so return ret; } -bool Renderer11::copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, - GLint xoffset, GLint yoffset, GLint zOffset, TextureStorageInterface2DArray *storage, GLint level) +bool Renderer11::copyImage2DArray(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, + GLint xoffset, GLint yoffset, GLint zOffset, TextureStorageInterface *storage, GLint level) { gl::FramebufferAttachment *colorbuffer = framebuffer->getReadColorbuffer(); if (!colorbuffer) diff --git a/src/libGLESv2/renderer/d3d/d3d11/Renderer11.h b/src/libGLESv2/renderer/d3d/d3d11/Renderer11.h index 56108d03..d23b71d0 100644 --- a/src/libGLESv2/renderer/d3d/d3d11/Renderer11.h +++ b/src/libGLESv2/renderer/d3d/d3d11/Renderer11.h @@ -115,19 +115,19 @@ class Renderer11 : public Renderer virtual int getMaxSwapInterval() const; // Pixel operations - virtual bool copyToRenderTarget(TextureStorageInterface2D *dest, TextureStorageInterface2D *source); - virtual bool copyToRenderTarget(TextureStorageInterfaceCube *dest, TextureStorageInterfaceCube *source); - virtual bool copyToRenderTarget(TextureStorageInterface3D *dest, TextureStorageInterface3D *source); - virtual bool copyToRenderTarget(TextureStorageInterface2DArray *dest, TextureStorageInterface2DArray *source); - - virtual bool copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, - GLint xoffset, GLint yoffset, TextureStorageInterface2D *storage, GLint level); - virtual bool copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, - GLint xoffset, GLint yoffset, TextureStorageInterfaceCube *storage, GLenum target, GLint level); - virtual bool copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, - GLint xoffset, GLint yoffset, GLint zOffset, TextureStorageInterface3D *storage, GLint level); - virtual bool copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, - GLint xoffset, GLint yoffset, GLint zOffset, TextureStorageInterface2DArray *storage, GLint level); + virtual bool copyToRenderTarget2D(TextureStorageInterface *dest, TextureStorageInterface *source); + virtual bool copyToRenderTargetCube(TextureStorageInterface *dest, TextureStorageInterface *source); + virtual bool copyToRenderTarget3D(TextureStorageInterface *dest, TextureStorageInterface *source); + virtual bool copyToRenderTarget2DArray(TextureStorageInterface *dest, TextureStorageInterface *source); + + virtual bool copyImage2D(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, + GLint xoffset, GLint yoffset, TextureStorageInterface *storage, GLint level); + virtual bool copyImageCube(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, + GLint xoffset, GLint yoffset, TextureStorageInterface *storage, GLenum target, GLint level); + virtual bool copyImage3D(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, + GLint xoffset, GLint yoffset, GLint zOffset, TextureStorageInterface *storage, GLint level); + virtual bool copyImage2DArray(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, + GLint xoffset, GLint yoffset, GLint zOffset, TextureStorageInterface *storage, GLint level); virtual bool blitRect(gl::Framebuffer *readTarget, const gl::Rectangle &readRect, gl::Framebuffer *drawTarget, const gl::Rectangle &drawRect, const gl::Rectangle *scissor, bool blitRenderTarget, bool blitDepth, bool blitStencil, GLenum filter); diff --git a/src/libGLESv2/renderer/d3d/d3d9/Blit9.cpp b/src/libGLESv2/renderer/d3d/d3d9/Blit9.cpp index 59867fb1..9730f9d8 100644 --- a/src/libGLESv2/renderer/d3d/d3d9/Blit9.cpp +++ b/src/libGLESv2/renderer/d3d/d3d9/Blit9.cpp @@ -208,7 +208,7 @@ bool Blit9::boxFilter(IDirect3DSurface9 *source, IDirect3DSurface9 *dest) return true; } -bool Blit9::copy(gl::Framebuffer *framebuffer, const RECT &sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, TextureStorageInterface2D *storage, GLint level) +bool Blit9::copy2D(gl::Framebuffer *framebuffer, const RECT &sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, TextureStorageInterface *storage, GLint level) { RenderTarget9 *renderTarget = NULL; IDirect3DSurface9 *source = NULL; @@ -244,7 +244,7 @@ bool Blit9::copy(gl::Framebuffer *framebuffer, const RECT &sourceRect, GLenum de return result; } -bool Blit9::copy(gl::Framebuffer *framebuffer, const RECT &sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, TextureStorageInterfaceCube *storage, GLenum target, GLint level) +bool Blit9::copyCube(gl::Framebuffer *framebuffer, const RECT &sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, TextureStorageInterface *storage, GLenum target, GLint level) { RenderTarget9 *renderTarget = NULL; IDirect3DSurface9 *source = NULL; diff --git a/src/libGLESv2/renderer/d3d/d3d9/Blit9.h b/src/libGLESv2/renderer/d3d/d3d9/Blit9.h index 40bf8910..2f4f8f1a 100644 --- a/src/libGLESv2/renderer/d3d/d3d9/Blit9.h +++ b/src/libGLESv2/renderer/d3d/d3d9/Blit9.h @@ -21,8 +21,7 @@ class Framebuffer; namespace rx { class Renderer9; -class TextureStorageInterface2D; -class TextureStorageInterfaceCube; +class TextureStorageInterface; class Blit9 { @@ -32,8 +31,8 @@ class Blit9 // Copy from source surface to dest surface. // sourceRect, xoffset, yoffset are in D3D coordinates (0,0 in upper-left) - bool copy(gl::Framebuffer *framebuffer, const RECT &sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, TextureStorageInterface2D *storage, GLint level); - bool copy(gl::Framebuffer *framebuffer, const RECT &sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, TextureStorageInterfaceCube *storage, GLenum target, GLint level); + bool copy2D(gl::Framebuffer *framebuffer, const RECT &sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, TextureStorageInterface *storage, GLint level); + bool copyCube(gl::Framebuffer *framebuffer, const RECT &sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, TextureStorageInterface *storage, GLenum target, GLint level); // Copy from source surface to dest surface. // sourceRect, xoffset, yoffset are in D3D coordinates (0,0 in upper-left) diff --git a/src/libGLESv2/renderer/d3d/d3d9/Image9.cpp b/src/libGLESv2/renderer/d3d/d3d9/Image9.cpp index 95c920e8..c332305b 100644 --- a/src/libGLESv2/renderer/d3d/d3d9/Image9.cpp +++ b/src/libGLESv2/renderer/d3d/d3d9/Image9.cpp @@ -270,13 +270,13 @@ IDirect3DSurface9 *Image9::getSurface() return mSurface; } -void Image9::setManagedSurface(TextureStorageInterface2D *storage, int level) +void Image9::setManagedSurface2D(TextureStorageInterface *storage, int level) { TextureStorage9_2D *storage9 = TextureStorage9_2D::makeTextureStorage9_2D(storage->getStorageInstance()); setManagedSurface(storage9->getSurfaceLevel(level, false)); } -void Image9::setManagedSurface(TextureStorageInterfaceCube *storage, int face, int level) +void Image9::setManagedSurfaceCube(TextureStorageInterface *storage, int face, int level) { TextureStorage9_Cube *storage9 = TextureStorage9_Cube::makeTextureStorage9_Cube(storage->getStorageInstance()); setManagedSurface(storage9->getCubeMapSurface(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, level, false)); @@ -301,28 +301,28 @@ void Image9::setManagedSurface(IDirect3DSurface9 *surface) } } -bool Image9::copyToStorage(TextureStorageInterface2D *storage, int level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height) +bool Image9::copyToStorage2D(TextureStorageInterface *storage, int level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height) { ASSERT(getSurface() != NULL); TextureStorage9_2D *storage9 = TextureStorage9_2D::makeTextureStorage9_2D(storage->getStorageInstance()); return copyToSurface(storage9->getSurfaceLevel(level, true), xoffset, yoffset, width, height); } -bool Image9::copyToStorage(TextureStorageInterfaceCube *storage, int face, int level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height) +bool Image9::copyToStorageCube(TextureStorageInterface *storage, int face, int level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height) { ASSERT(getSurface() != NULL); TextureStorage9_Cube *storage9 = TextureStorage9_Cube::makeTextureStorage9_Cube(storage->getStorageInstance()); return copyToSurface(storage9->getCubeMapSurface(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, level, true), xoffset, yoffset, width, height); } -bool Image9::copyToStorage(TextureStorageInterface3D *storage, int level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth) +bool Image9::copyToStorage3D(TextureStorageInterface *storage, int level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth) { // 3D textures are not supported by the D3D9 backend. UNREACHABLE(); return false; } -bool Image9::copyToStorage(TextureStorageInterface2DArray *storage, int level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height) +bool Image9::copyToStorage2DArray(TextureStorageInterface *storage, int level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height) { // 2D array textures are not supported by the D3D9 backend. UNREACHABLE(); diff --git a/src/libGLESv2/renderer/d3d/d3d9/Image9.h b/src/libGLESv2/renderer/d3d/d3d9/Image9.h index 2d1536f2..c170b0af 100644 --- a/src/libGLESv2/renderer/d3d/d3d9/Image9.h +++ b/src/libGLESv2/renderer/d3d/d3d9/Image9.h @@ -22,8 +22,7 @@ namespace rx { class Renderer; class Renderer9; -class TextureStorageInterface2D; -class TextureStorageInterfaceCube; +class TextureStorageInterface; class Image9 : public ImageD3D { @@ -44,12 +43,12 @@ class Image9 : public ImageD3D virtual bool isDirty() const; IDirect3DSurface9 *getSurface(); - virtual void setManagedSurface(TextureStorageInterface2D *storage, int level); - virtual void setManagedSurface(TextureStorageInterfaceCube *storage, int face, int level); - virtual bool copyToStorage(TextureStorageInterface2D *storage, int level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height); - virtual bool copyToStorage(TextureStorageInterfaceCube *storage, int face, int level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height); - virtual bool copyToStorage(TextureStorageInterface3D *storage, int level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); - virtual bool copyToStorage(TextureStorageInterface2DArray *storage, int level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height); + virtual void setManagedSurface2D(TextureStorageInterface *storage, int level); + virtual void setManagedSurfaceCube(TextureStorageInterface *storage, int face, int level); + virtual bool copyToStorage2D(TextureStorageInterface *storage, int level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height); + virtual bool copyToStorageCube(TextureStorageInterface *storage, int face, int level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height); + virtual bool copyToStorage3D(TextureStorageInterface *storage, int level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); + virtual bool copyToStorage2DArray(TextureStorageInterface *storage, int level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height); virtual void loadData(GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLint unpackAlignment, GLenum type, const void *input); diff --git a/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp b/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp index 7a3c3509..6f61fb99 100644 --- a/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp +++ b/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp @@ -2335,7 +2335,7 @@ int Renderer9::getMaxSwapInterval() const return mMaxSwapInterval; } -bool Renderer9::copyToRenderTarget(TextureStorageInterface2D *dest, TextureStorageInterface2D *source) +bool Renderer9::copyToRenderTarget2D(TextureStorageInterface *dest, TextureStorageInterface *source) { bool result = false; @@ -2365,7 +2365,7 @@ bool Renderer9::copyToRenderTarget(TextureStorageInterface2D *dest, TextureStora return result; } -bool Renderer9::copyToRenderTarget(TextureStorageInterfaceCube *dest, TextureStorageInterfaceCube *source) +bool Renderer9::copyToRenderTargetCube(TextureStorageInterface *dest, TextureStorageInterface *source) { bool result = false; @@ -2397,14 +2397,14 @@ bool Renderer9::copyToRenderTarget(TextureStorageInterfaceCube *dest, TextureSto return result; } -bool Renderer9::copyToRenderTarget(TextureStorageInterface3D *dest, TextureStorageInterface3D *source) +bool Renderer9::copyToRenderTarget3D(TextureStorageInterface *dest, TextureStorageInterface *source) { // 3D textures are not available in the D3D9 backend. UNREACHABLE(); return false; } -bool Renderer9::copyToRenderTarget(TextureStorageInterface2DArray *dest, TextureStorageInterface2DArray *source) +bool Renderer9::copyToRenderTarget2DArray(TextureStorageInterface *dest, TextureStorageInterface *source) { // 2D array textures are not supported by the D3D9 backend. UNREACHABLE(); @@ -2428,8 +2428,8 @@ D3DPOOL Renderer9::getBufferPool(DWORD usage) const return D3DPOOL_DEFAULT; } -bool Renderer9::copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, - GLint xoffset, GLint yoffset, TextureStorageInterface2D *storage, GLint level) +bool Renderer9::copyImage2D(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, + GLint xoffset, GLint yoffset, TextureStorageInterface *storage, GLint level) { RECT rect; rect.left = sourceRect.x; @@ -2437,11 +2437,11 @@ bool Renderer9::copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sou rect.right = sourceRect.x + sourceRect.width; rect.bottom = sourceRect.y + sourceRect.height; - return mBlit->copy(framebuffer, rect, destFormat, xoffset, yoffset, storage, level); + return mBlit->copy2D(framebuffer, rect, destFormat, xoffset, yoffset, storage, level); } -bool Renderer9::copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, - GLint xoffset, GLint yoffset, TextureStorageInterfaceCube *storage, GLenum target, GLint level) +bool Renderer9::copyImageCube(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, + GLint xoffset, GLint yoffset, TextureStorageInterface *storage, GLenum target, GLint level) { RECT rect; rect.left = sourceRect.x; @@ -2449,19 +2449,19 @@ bool Renderer9::copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sou rect.right = sourceRect.x + sourceRect.width; rect.bottom = sourceRect.y + sourceRect.height; - return mBlit->copy(framebuffer, rect, destFormat, xoffset, yoffset, storage, target, level); + return mBlit->copyCube(framebuffer, rect, destFormat, xoffset, yoffset, storage, target, level); } -bool Renderer9::copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, - GLint xoffset, GLint yoffset, GLint zOffset, TextureStorageInterface3D *storage, GLint level) +bool Renderer9::copyImage3D(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, + GLint xoffset, GLint yoffset, GLint zOffset, TextureStorageInterface *storage, GLint level) { // 3D textures are not available in the D3D9 backend. UNREACHABLE(); return false; } -bool Renderer9::copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, - GLint xoffset, GLint yoffset, GLint zOffset, TextureStorageInterface2DArray *storage, GLint level) +bool Renderer9::copyImage2DArray(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, + GLint xoffset, GLint yoffset, GLint zOffset, TextureStorageInterface *storage, GLint level) { // 2D array textures are not available in the D3D9 backend. UNREACHABLE(); diff --git a/src/libGLESv2/renderer/d3d/d3d9/Renderer9.h b/src/libGLESv2/renderer/d3d/d3d9/Renderer9.h index c23ce89b..ca1d1723 100644 --- a/src/libGLESv2/renderer/d3d/d3d9/Renderer9.h +++ b/src/libGLESv2/renderer/d3d/d3d9/Renderer9.h @@ -119,19 +119,19 @@ class Renderer9 : public Renderer virtual int getMaxSwapInterval() const; // Pixel operations - virtual bool copyToRenderTarget(TextureStorageInterface2D *dest, TextureStorageInterface2D *source); - virtual bool copyToRenderTarget(TextureStorageInterfaceCube *dest, TextureStorageInterfaceCube *source); - virtual bool copyToRenderTarget(TextureStorageInterface3D *dest, TextureStorageInterface3D *source); - virtual bool copyToRenderTarget(TextureStorageInterface2DArray *dest, TextureStorageInterface2DArray *source); - - virtual bool copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, - GLint xoffset, GLint yoffset, TextureStorageInterface2D *storage, GLint level); - virtual bool copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, - GLint xoffset, GLint yoffset, TextureStorageInterfaceCube *storage, GLenum target, GLint level); - virtual bool copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, - GLint xoffset, GLint yoffset, GLint zOffset, TextureStorageInterface3D *storage, GLint level); - virtual bool copyImage(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, - GLint xoffset, GLint yoffset, GLint zOffset, TextureStorageInterface2DArray *storage, GLint level); + virtual bool copyToRenderTarget2D(TextureStorageInterface *dest, TextureStorageInterface *source); + virtual bool copyToRenderTargetCube(TextureStorageInterface *dest, TextureStorageInterface *source); + virtual bool copyToRenderTarget3D(TextureStorageInterface *dest, TextureStorageInterface *source); + virtual bool copyToRenderTarget2DArray(TextureStorageInterface *dest, TextureStorageInterface *source); + + virtual bool copyImage2D(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, + GLint xoffset, GLint yoffset, TextureStorageInterface *storage, GLint level); + virtual bool copyImageCube(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, + GLint xoffset, GLint yoffset, TextureStorageInterface *storage, GLenum target, GLint level); + virtual bool copyImage3D(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, + GLint xoffset, GLint yoffset, GLint zOffset, TextureStorageInterface *storage, GLint level); + virtual bool copyImage2DArray(gl::Framebuffer *framebuffer, const gl::Rectangle &sourceRect, GLenum destFormat, + GLint xoffset, GLint yoffset, GLint zOffset, TextureStorageInterface *storage, GLint level); virtual bool blitRect(gl::Framebuffer *readTarget, const gl::Rectangle &readRect, gl::Framebuffer *drawTarget, const gl::Rectangle &drawRect, const gl::Rectangle *scissor, bool blitRenderTarget, bool blitDepth, bool blitStencil, GLenum filter); |