Commit 6518fe24 by Brandon Jones

Moved TextureStorage and Image into d3d

BUG=angle:688 Change-Id: I98ffa1082340a829a77fe5082958898b9c6ab1a2 Reviewed-on: https://chromium-review.googlesource.com/207054Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Tested-by: 's avatarBrandon Jones <bajones@chromium.org>
parent d4cfa57d
......@@ -364,10 +364,6 @@ if (is_win) {
"src/libGLESv2/renderer/FenceImpl.h",
"src/libGLESv2/renderer/Image.cpp",
"src/libGLESv2/renderer/Image.h",
"src/libGLESv2/renderer/IndexBuffer.cpp",
"src/libGLESv2/renderer/IndexBuffer.h",
"src/libGLESv2/renderer/IndexDataManager.cpp",
"src/libGLESv2/renderer/IndexDataManager.h",
"src/libGLESv2/renderer/IndexRangeCache.cpp",
"src/libGLESv2/renderer/IndexRangeCache.h",
"src/libGLESv2/renderer/QueryImpl.h",
......@@ -376,13 +372,7 @@ if (is_win) {
"src/libGLESv2/renderer/Renderer.h",
"src/libGLESv2/renderer/ShaderExecutable.h",
"src/libGLESv2/renderer/SwapChain.h",
"src/libGLESv2/renderer/TextureStorage.cpp",
"src/libGLESv2/renderer/TextureStorage.h",
"src/libGLESv2/renderer/VertexArrayImpl.h",
"src/libGLESv2/renderer/VertexBuffer.cpp",
"src/libGLESv2/renderer/VertexBuffer.h",
"src/libGLESv2/renderer/VertexDataManager.cpp",
"src/libGLESv2/renderer/VertexDataManager.h",
"src/libGLESv2/renderer/copyimage.cpp",
"src/libGLESv2/renderer/copyimage.h",
"src/libGLESv2/renderer/copyvertex.h",
......@@ -419,8 +409,22 @@ if (is_win) {
# Shared D3dD sources.
if (angle_enable_d3d9 || angle_enable_d3d11) {
sources += [
"src/libGLESv2/renderer/d3d/BufferD3D.cpp",
"src/libGLESv2/renderer/d3d/BufferD3D.h",
"src/libGLESv2/renderer/d3d/HLSLCompiler.cpp",
"src/libGLESv2/renderer/d3d/HLSLCompiler.h",
"src/libGLESv2/renderer/d3d/ImageD3D.cpp",
"src/libGLESv2/renderer/d3d/ImageD3D.h",
"src/libGLESv2/renderer/d3d/IndexBuffer.cpp",
"src/libGLESv2/renderer/d3d/IndexBuffer.h",
"src/libGLESv2/renderer/d3d/IndexDataManager.cpp",
"src/libGLESv2/renderer/d3d/IndexDataManager.h",
"src/libGLESv2/renderer/d3d/TextureStorage.cpp",
"src/libGLESv2/renderer/d3d/TextureStorage.h",
"src/libGLESv2/renderer/d3d/VertexBuffer.cpp",
"src/libGLESv2/renderer/d3d/VertexBuffer.h",
"src/libGLESv2/renderer/d3d/VertexDataManager.cpp",
"src/libGLESv2/renderer/d3d/VertexDataManager.h",
]
}
......
......@@ -129,6 +129,7 @@
<ClInclude Include="..\..\src\libGLESv2\Shader.h"/>
<ClInclude Include="..\..\src\libGLESv2\BinaryStream.h"/>
<ClInclude Include="..\..\src\libGLESv2\resource.h"/>
<ClInclude Include="..\..\src\libGLESv2\Sampler.h"/>
<ClInclude Include="..\..\src\libGLESv2\Caps.h"/>
<ClInclude Include="..\..\src\libGLESv2\precompiled.h"/>
<ClInclude Include="..\..\src\libGLESv2\TransformFeedback.h"/>
......@@ -145,7 +146,6 @@
<ClInclude Include="..\..\src\libGLESv2\queryconversions.h"/>
<ClInclude Include="..\..\src\libGLESv2\validationES3.h"/>
<ClInclude Include="..\..\src\libGLESv2\Program.h"/>
<ClInclude Include="..\..\src\libGLESv2\Sampler.h"/>
<ClInclude Include="..\..\src\libGLESv2\HandleAllocator.h"/>
<ClInclude Include="..\..\src\libGLESv2\ResourceManager.h"/>
<ClInclude Include="..\..\src\libGLESv2\DynamicHLSL.h"/>
......@@ -158,7 +158,6 @@
<ClInclude Include="..\..\src\libGLESv2\formatutils.h"/>
<ClInclude Include="..\..\src\libGLESv2\validationES.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\Renderer.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\TextureStorage.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\ShaderExecutable.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\loadimage.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\copyimage.h"/>
......@@ -176,6 +175,8 @@
<ClInclude Include="..\..\src\libGLESv2\renderer\VertexArrayImpl.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\d3d\IndexBuffer.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\d3d\HLSLCompiler.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\d3d\ImageD3D.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\d3d\TextureStorage.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\d3d\IndexDataManager.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\d3d\VertexBuffer.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\d3d\BufferD3D.h"/>
......@@ -331,7 +332,6 @@
<ClCompile Include="..\..\src\libGLESv2\Texture.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\ResourceManager.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\copyimage.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\TextureStorage.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\loadimage.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\loadimageSSE2.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\Image.cpp"/>
......@@ -342,6 +342,8 @@
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\IndexBuffer.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\VertexDataManager.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\IndexDataManager.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\ImageD3D.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\TextureStorage.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\VertexBuffer.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\d3d11\Renderer11.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\d3d11\InputLayoutCache.cpp"/>
......
......@@ -87,6 +87,9 @@
<ClCompile Include="..\..\src\libGLESv2\DynamicHLSL.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\Sampler.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\Caps.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
......@@ -183,9 +186,6 @@
<ClInclude Include="..\..\src\libGLESv2\Program.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\Sampler.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\HandleAllocator.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
......@@ -261,15 +261,9 @@
<ClInclude Include="..\..\src\libGLESv2\renderer\Renderer.h">
<Filter>src\libGLESv2\renderer</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\renderer\TextureStorage.h">
<Filter>src\libGLESv2\renderer</Filter>
</ClInclude>
<None Include="..\..\src\libGLESv2\renderer\loadimage.inl">
<Filter>src\libGLESv2\renderer</Filter>
</None>
<ClCompile Include="..\..\src\libGLESv2\renderer\TextureStorage.cpp">
<Filter>src\libGLESv2\renderer</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\renderer\ShaderExecutable.h">
<Filter>src\libGLESv2\renderer</Filter>
</ClInclude>
......@@ -342,6 +336,9 @@
<ClInclude Include="..\..\src\libGLESv2\renderer\d3d\HLSLCompiler.h">
<Filter>src\libGLESv2\renderer\d3d</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\renderer\d3d\ImageD3D.h">
<Filter>src\libGLESv2\renderer\d3d</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\BufferD3D.cpp">
<Filter>src\libGLESv2\renderer\d3d</Filter>
</ClCompile>
......@@ -354,6 +351,15 @@
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\IndexDataManager.cpp">
<Filter>src\libGLESv2\renderer\d3d</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\renderer\d3d\TextureStorage.h">
<Filter>src\libGLESv2\renderer\d3d</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\ImageD3D.cpp">
<Filter>src\libGLESv2\renderer\d3d</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\TextureStorage.cpp">
<Filter>src\libGLESv2\renderer\d3d</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\renderer\d3d\IndexDataManager.h">
<Filter>src\libGLESv2\renderer\d3d</Filter>
</ClInclude>
......@@ -402,12 +408,12 @@
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\d3d11\Query11.cpp">
<Filter>src\libGLESv2\renderer\d3d\d3d11</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\d3d11\ShaderExecutable11.cpp">
<Filter>src\libGLESv2\renderer\d3d\d3d11</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\renderer\d3d\d3d11\Buffer11.h">
<Filter>src\libGLESv2\renderer\d3d\d3d11</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\d3d11\ShaderExecutable11.cpp">
<Filter>src\libGLESv2\renderer\d3d\d3d11</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\d3d11\RenderTarget11.cpp">
<Filter>src\libGLESv2\renderer\d3d\d3d11</Filter>
</ClCompile>
......
......@@ -13,7 +13,7 @@
#include "libGLESv2/Texture.h"
#include "libGLESv2/renderer/Renderer.h"
#include "libGLESv2/renderer/TextureStorage.h"
#include "libGLESv2/renderer/d3d/TextureStorage.h"
#include "common/utilities.h"
#include "libGLESv2/formatutils.h"
#include "libGLESv2/Renderbuffer.h"
......
......@@ -14,7 +14,6 @@
#include "libGLESv2/Texture.h"
#include "libGLESv2/renderer/Renderer.h"
#include "libGLESv2/renderer/TextureStorage.h"
#include "common/utilities.h"
#include "libGLESv2/formatutils.h"
#include "libGLESv2/FramebufferAttachment.h"
......@@ -127,11 +126,6 @@ rx::RenderTarget *RenderbufferStorage::getDepthStencil()
return NULL;
}
rx::TextureStorage *RenderbufferStorage::getTextureStorage()
{
return NULL;
}
GLsizei RenderbufferStorage::getWidth() const
{
return mWidth;
......
......@@ -71,7 +71,6 @@ class RenderbufferStorage
virtual rx::RenderTarget *getRenderTarget();
virtual rx::RenderTarget *getDepthStencil();
virtual rx::TextureStorage *getTextureStorage();
virtual GLsizei getWidth() const;
virtual GLsizei getHeight() const;
......
......@@ -18,7 +18,8 @@
#include "libGLESv2/Renderbuffer.h"
#include "libGLESv2/renderer/Image.h"
#include "libGLESv2/renderer/Renderer.h"
#include "libGLESv2/renderer/TextureStorage.h"
#include "libGLESv2/renderer/d3d/ImageD3D.h"
#include "libGLESv2/renderer/d3d/TextureStorage.h"
#include "libEGL/Surface.h"
#include "libGLESv2/Buffer.h"
#include "libGLESv2/renderer/BufferImpl.h"
......@@ -446,7 +447,7 @@ void Texture2D::commitRect(GLint level, GLint xoffset, GLint yoffset, GLsizei wi
{
if (isValidLevel(level))
{
rx::Image *image = mImageArray[level];
rx::ImageD3D *image = rx::ImageD3D::makeImageD3D(mImageArray[level]);
if (image->copyToStorage(mTexStorage, level, xoffset, yoffset, width, height))
{
image->markClean();
......@@ -575,7 +576,7 @@ void Texture2D::setCompleteTexStorage(rx::TextureStorageInterface2D *newComplete
{
for (int level = 0; level < mTexStorage->getLevelCount(); level++)
{
mImageArray[level]->setManagedSurface(mTexStorage, level);
rx::ImageD3D::makeImageD3D(mImageArray[level])->setManagedSurface(mTexStorage, level);
}
}
......@@ -994,7 +995,7 @@ void TextureCubeMap::commitRect(int faceIndex, GLint level, GLint xoffset, GLint
{
if (isValidFaceLevel(faceIndex, level))
{
rx::Image *image = mImageArray[faceIndex][level];
rx::ImageD3D *image = rx::ImageD3D::makeImageD3D(mImageArray[faceIndex][level]);
if (image->copyToStorage(mTexStorage, faceIndex, level, xoffset, yoffset, width, height))
image->markClean();
}
......@@ -1213,7 +1214,7 @@ void TextureCubeMap::setCompleteTexStorage(rx::TextureStorageInterfaceCube *newC
{
for (int level = 0; level < mTexStorage->getLevelCount(); level++)
{
mImageArray[faceIndex][level]->setManagedSurface(mTexStorage, faceIndex, level);
rx::ImageD3D::makeImageD3D(mImageArray[faceIndex][level])->setManagedSurface(mTexStorage, faceIndex, level);
}
}
}
......@@ -2027,7 +2028,7 @@ void Texture3D::commitRect(GLint level, GLint xoffset, GLint yoffset, GLint zoff
{
if (isValidLevel(level))
{
rx::Image *image = mImageArray[level];
rx::ImageD3D *image = rx::ImageD3D::makeImageD3D(mImageArray[level]);
if (image->copyToStorage(mTexStorage, level, xoffset, yoffset, zoffset, width, height, depth))
{
image->markClean();
......@@ -2566,7 +2567,7 @@ void Texture2DArray::commitRect(GLint level, GLint xoffset, GLint yoffset, GLint
{
if (isValidLevel(level) && layerTarget < getLayers(level))
{
rx::Image *image = mImageArray[level][layerTarget];
rx::ImageD3D *image = rx::ImageD3D::makeImageD3D(mImageArray[level][layerTarget]);
if (image->copyToStorage(mTexStorage, level, xoffset, yoffset, layerTarget, width, height))
{
image->markClean();
......
......@@ -20,11 +20,8 @@ class Framebuffer;
namespace rx
{
class Renderer;
class TextureStorageInterface2D;
class TextureStorageInterfaceCube;
class TextureStorageInterface3D;
class TextureStorageInterface2DArray;
class Image
{
......@@ -44,15 +41,6 @@ class Image
void markClean() {mDirty = false;}
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 bool redefine(Renderer *renderer, GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, bool forceRelease) = 0;
virtual void loadData(GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth,
......
#include "precompiled.h"
//
// Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Image.h: Implements the rx::Image class, an abstract base class for the
// renderer-specific classes which will define the interface to the underlying
// surfaces or resources.
#include "libGLESv2/renderer/d3d/ImageD3D.h"
namespace rx
{
ImageD3D::ImageD3D()
{
}
ImageD3D *ImageD3D::makeImageD3D(Image *img)
{
ASSERT(HAS_DYNAMIC_TYPE(rx::ImageD3D*, img));
return static_cast<rx::ImageD3D*>(img);
}
}
//
// Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Image.h: Defines the rx::Image class, an abstract base class for the
// renderer-specific classes which will define the interface to the underlying
// surfaces or resources.
#ifndef LIBGLESV2_RENDERER_IMAGED3D_H_
#define LIBGLESV2_RENDERER_IMAGED3D_H_
#include "common/debug.h"
#include "libGLESv2/renderer/Image.h"
namespace gl
{
class Framebuffer;
}
namespace rx
{
class TextureStorageInterface2D;
class TextureStorageInterfaceCube;
class TextureStorageInterface3D;
class TextureStorageInterface2DArray;
class ImageD3D : public Image
{
public:
ImageD3D();
virtual ~ImageD3D() {};
static ImageD3D *ImageD3D::makeImageD3D(Image *img);
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;
private:
DISALLOW_COPY_AND_ASSIGN(ImageD3D);
};
}
#endif // LIBGLESV2_RENDERER_IMAGED3D_H_
......@@ -9,7 +9,7 @@
// classes TextureStorageInterface2D and TextureStorageInterfaceCube, which act as the interface to the
// GPU-side texture.
#include "libGLESv2/renderer/TextureStorage.h"
#include "libGLESv2/renderer/d3d/TextureStorage.h"
#include "libGLESv2/renderer/Renderer.h"
#include "libGLESv2/Renderbuffer.h"
#include "libGLESv2/Texture.h"
......
......@@ -10,7 +10,7 @@
#ifndef LIBGLESV2_RENDERER_IMAGE11_H_
#define LIBGLESV2_RENDERER_IMAGE11_H_
#include "libGLESv2/renderer/Image.h"
#include "libGLESv2/renderer/d3d/ImageD3D.h"
#include "common/debug.h"
......@@ -26,7 +26,7 @@ class Renderer11;
class TextureStorageInterface2D;
class TextureStorageInterfaceCube;
class Image11 : public Image
class Image11 : public ImageD3D
{
public:
Image11();
......
......@@ -11,7 +11,7 @@
#define LIBGLESV2_RENDERER_TEXTURESTORAGE11_H_
#include "libGLESv2/Texture.h"
#include "libGLESv2/renderer/TextureStorage.h"
#include "libGLESv2/renderer/d3d/TextureStorage.h"
namespace rx
{
......
......@@ -10,7 +10,7 @@
#ifndef LIBGLESV2_RENDERER_IMAGE9_H_
#define LIBGLESV2_RENDERER_IMAGE9_H_
#include "libGLESv2/renderer/Image.h"
#include "libGLESv2/renderer/d3d/ImageD3D.h"
#include "common/debug.h"
namespace gl
......@@ -25,7 +25,7 @@ class Renderer9;
class TextureStorageInterface2D;
class TextureStorageInterfaceCube;
class Image9 : public Image
class Image9 : public ImageD3D
{
public:
Image9();
......
......@@ -11,7 +11,7 @@
#ifndef LIBGLESV2_RENDERER_TEXTURESTORAGE9_H_
#define LIBGLESV2_RENDERER_TEXTURESTORAGE9_H_
#include "libGLESv2/renderer/TextureStorage.h"
#include "libGLESv2/renderer/d3d/TextureStorage.h"
#include "common/debug.h"
namespace rx
......
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