Commit 7cb2b9d7 by Jamie Madill

Introduce new method commitRegion to TextureD3D.

Replacing commitRect with commitRegion, which takes generic parameter types, will allow us to call it directly from the base class TextureD3D. This will be useful in subsequent patches that introduce the SubData performance workaround. BUG=angle:729 Change-Id: I37bf12f847b43f7c961b403321de19f547258b01 Reviewed-on: https://chromium-review.googlesource.com/220274Tested-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent 86ffde57
...@@ -82,6 +82,7 @@ class TextureD3D : public TextureImpl ...@@ -82,6 +82,7 @@ class TextureD3D : public TextureImpl
virtual TextureStorage *createCompleteStorage(bool renderTarget) const = 0; virtual TextureStorage *createCompleteStorage(bool renderTarget) const = 0;
virtual void setCompleteTexStorage(TextureStorage *newCompleteTexStorage) = 0; virtual void setCompleteTexStorage(TextureStorage *newCompleteTexStorage) = 0;
virtual gl::Error commitRegion(const gl::ImageIndex &index, const gl::Box &region) = 0;
Renderer *mRenderer; Renderer *mRenderer;
...@@ -139,6 +140,7 @@ class TextureD3D_2D : public TextureD3D ...@@ -139,6 +140,7 @@ class TextureD3D_2D : public TextureD3D
virtual void initializeStorage(bool renderTarget); virtual void initializeStorage(bool renderTarget);
virtual TextureStorage *createCompleteStorage(bool renderTarget) const; virtual TextureStorage *createCompleteStorage(bool renderTarget) const;
virtual void setCompleteTexStorage(TextureStorage *newCompleteTexStorage); virtual void setCompleteTexStorage(TextureStorage *newCompleteTexStorage);
gl::Error commitRegion(const gl::ImageIndex &index, const gl::Box &region);
virtual void updateStorage(); virtual void updateStorage();
virtual void initMipmapsImages(); virtual void initMipmapsImages();
...@@ -149,7 +151,6 @@ class TextureD3D_2D : public TextureD3D ...@@ -149,7 +151,6 @@ class TextureD3D_2D : public TextureD3D
void updateStorageLevel(int level); void updateStorageLevel(int level);
void redefineImage(GLint level, GLenum internalformat, GLsizei width, GLsizei height); void redefineImage(GLint level, GLenum internalformat, GLsizei width, GLsizei height);
gl::Error commitRect(GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height);
ImageD3D *mImageArray[gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS]; ImageD3D *mImageArray[gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS];
}; };
...@@ -194,6 +195,7 @@ class TextureD3D_Cube : public TextureD3D ...@@ -194,6 +195,7 @@ class TextureD3D_Cube : public TextureD3D
virtual void initializeStorage(bool renderTarget); virtual void initializeStorage(bool renderTarget);
virtual TextureStorage *createCompleteStorage(bool renderTarget) const; virtual TextureStorage *createCompleteStorage(bool renderTarget) const;
virtual void setCompleteTexStorage(TextureStorage *newCompleteTexStorage); virtual void setCompleteTexStorage(TextureStorage *newCompleteTexStorage);
virtual gl::Error commitRegion(const gl::ImageIndex &index, const gl::Box &region);
virtual void updateStorage(); virtual void updateStorage();
virtual void initMipmapsImages(); virtual void initMipmapsImages();
...@@ -204,7 +206,6 @@ class TextureD3D_Cube : public TextureD3D ...@@ -204,7 +206,6 @@ class TextureD3D_Cube : public TextureD3D
void updateStorageFaceLevel(int faceIndex, int level); void updateStorageFaceLevel(int faceIndex, int level);
void redefineImage(int faceIndex, GLint level, GLenum internalformat, GLsizei width, GLsizei height); void redefineImage(int faceIndex, GLint level, GLenum internalformat, GLsizei width, GLsizei height);
gl::Error commitRect(int faceIndex, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height);
ImageD3D *mImageArray[6][gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS]; ImageD3D *mImageArray[6][gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS];
}; };
...@@ -248,6 +249,7 @@ class TextureD3D_3D : public TextureD3D ...@@ -248,6 +249,7 @@ class TextureD3D_3D : public TextureD3D
virtual void initializeStorage(bool renderTarget); virtual void initializeStorage(bool renderTarget);
virtual TextureStorage *createCompleteStorage(bool renderTarget) const; virtual TextureStorage *createCompleteStorage(bool renderTarget) const;
virtual void setCompleteTexStorage(TextureStorage *newCompleteTexStorage); virtual void setCompleteTexStorage(TextureStorage *newCompleteTexStorage);
virtual gl::Error commitRegion(const gl::ImageIndex &index, const gl::Box &region);
virtual void updateStorage(); virtual void updateStorage();
virtual void initMipmapsImages(); virtual void initMipmapsImages();
...@@ -257,7 +259,6 @@ class TextureD3D_3D : public TextureD3D ...@@ -257,7 +259,6 @@ class TextureD3D_3D : public TextureD3D
void updateStorageLevel(int level); void updateStorageLevel(int level);
void redefineImage(GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); void redefineImage(GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
gl::Error commitRect(GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
ImageD3D *mImageArray[gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS]; ImageD3D *mImageArray[gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS];
}; };
...@@ -300,6 +301,7 @@ class TextureD3D_2DArray : public TextureD3D ...@@ -300,6 +301,7 @@ class TextureD3D_2DArray : public TextureD3D
virtual void initializeStorage(bool renderTarget); virtual void initializeStorage(bool renderTarget);
virtual TextureStorage *createCompleteStorage(bool renderTarget) const; virtual TextureStorage *createCompleteStorage(bool renderTarget) const;
virtual void setCompleteTexStorage(TextureStorage *newCompleteTexStorage); virtual void setCompleteTexStorage(TextureStorage *newCompleteTexStorage);
virtual gl::Error commitRegion(const gl::ImageIndex &index, const gl::Box &region);
virtual void updateStorage(); virtual void updateStorage();
virtual void initMipmapsImages(); virtual void initMipmapsImages();
...@@ -310,7 +312,6 @@ class TextureD3D_2DArray : public TextureD3D ...@@ -310,7 +312,6 @@ class TextureD3D_2DArray : public TextureD3D
void deleteImages(); void deleteImages();
void redefineImage(GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); void redefineImage(GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
gl::Error commitRect(GLint level, GLint xoffset, GLint yoffset, GLint layerTarget, GLsizei width, GLsizei height);
// Storing images as an array of single depth textures since D3D11 treats each array level of a // Storing images as an array of single depth textures since D3D11 treats each array level of a
// Texture2D object as a separate subresource. Each layer would have to be looped over // Texture2D object as a separate subresource. Each layer would have to be looped over
......
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