Encapsulate D3D textures into Storage classes.

TRAC #18730 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@851 736b8ea6-26fd-11df-bfd4-992fa37f6226
parent 8747f18f
......@@ -135,6 +135,21 @@ class Image
IDirect3DSurface9 *mSurface;
};
class TextureStorage
{
public:
explicit TextureStorage(bool renderable);
virtual ~TextureStorage();
bool isRenderable();
private:
DISALLOW_COPY_AND_ASSIGN(TextureStorage);
bool mIsRenderable;
};
class Texture : public RefCountObject
{
public:
......@@ -205,8 +220,6 @@ class Texture : public RefCountObject
bool mDirtyImages;
bool mIsRenderable;
unsigned int mSerial;
static unsigned int issueSerial();
......@@ -216,6 +229,22 @@ class Texture : public RefCountObject
static unsigned int mCurrentSerial;
};
class TextureStorage2D : public TextureStorage
{
public:
TextureStorage2D(IDirect3DTexture9 *texture, bool renderable);
virtual ~TextureStorage2D();
IDirect3DSurface9 *getSurfaceLevel(int level);
IDirect3DBaseTexture9 *getBaseTexture() const;
private:
DISALLOW_COPY_AND_ASSIGN(TextureStorage2D);
IDirect3DTexture9 *mTexture;
};
class Texture2D : public Texture
{
public:
......@@ -261,12 +290,28 @@ class Texture2D : public Texture
Image mImageArray[IMPLEMENTATION_MAX_TEXTURE_LEVELS];
IDirect3DTexture9 *mTexture;
TextureStorage2D *mTexture;
egl::Surface *mSurface;
BindingPointer<Renderbuffer> mColorbufferProxy;
};
class TextureStorageCubeMap : public TextureStorage
{
public:
TextureStorageCubeMap(IDirect3DCubeTexture9 *texture, bool renderable);
virtual ~TextureStorageCubeMap();
IDirect3DSurface9 *getCubeMapSurface(int face, int level);
IDirect3DBaseTexture9 *getBaseTexture() const;
private:
DISALLOW_COPY_AND_ASSIGN(TextureStorageCubeMap);
IDirect3DCubeTexture9 *mTexture;
};
class TextureCubeMap : public Texture
{
public:
......@@ -326,7 +371,7 @@ class TextureCubeMap : public Texture
Image mImageArray[6][IMPLEMENTATION_MAX_TEXTURE_LEVELS];
IDirect3DCubeTexture9 *mTexture;
TextureStorageCubeMap *mTexture;
BindingPointer<Renderbuffer> mFaceProxies[6];
};
......
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