| Index: gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h
|
| diff --git a/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h b/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h
|
| index dd705323badecb1833e85a8da0353fb8b1dbd7f3..bb3ff305d24c8db440eb0e79098f599d1b954011 100644
|
| --- a/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h
|
| +++ b/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h
|
| @@ -18,6 +18,28 @@ namespace gles2 {
|
|
|
| class GLES2Decoder;
|
|
|
| +enum CopyTextureMethod {
|
| + // Use CopyTex{Sub}Image2D to copy from the source to the destination.
|
| + DIRECT_COPY,
|
| + // Draw from the source to the destination texture.
|
| + DIRECT_DRAW,
|
| + // Draw to an intermediate texture, and then copy to the destination texture.
|
| + DRAW_AND_COPY,
|
| + // CopyTexture isn't available.
|
| + NOT_COPYABLE
|
| +};
|
| +
|
| +// TODOs(qiankun.miao@intel.com):
|
| +// 1. Add readback path for RGB9_E5 and float formats (if extension isn't
|
| +// available and they are not color-renderable).
|
| +// 2. Support faces of cube map texture as valid dest target. The cube map
|
| +// texture may be incomplete currently.
|
| +// 3. Add support for levels other than 0.
|
| +// 4. Support ALPHA, LUMINANCE and LUMINANCE_ALPHA formats on core profile.
|
| +// 5. Update the extension doc after the whole work is done
|
| +// in gpu/GLES2/extensions/CHROMIUM/CHROMIUM_copy_texture.txt. We probably
|
| +// will need a ES2 version and a ES3 version.
|
| +
|
| // This class encapsulates the resources required to implement the
|
| // GL_CHROMIUM_copy_texture extension. The copy operation is performed
|
| // via glCopyTexImage2D() or a blit to a framebuffer object.
|
| @@ -42,7 +64,8 @@ class GPU_EXPORT CopyTextureCHROMIUMResourceManager {
|
| GLsizei height,
|
| bool flip_y,
|
| bool premultiply_alpha,
|
| - bool unpremultiply_alpha);
|
| + bool unpremultiply_alpha,
|
| + CopyTextureMethod method);
|
|
|
| void DoCopySubTexture(const gles2::GLES2Decoder* decoder,
|
| GLenum source_target,
|
| @@ -63,7 +86,8 @@ class GPU_EXPORT CopyTextureCHROMIUMResourceManager {
|
| GLsizei source_height,
|
| bool flip_y,
|
| bool premultiply_alpha,
|
| - bool unpremultiply_alpha);
|
| + bool unpremultiply_alpha,
|
| + CopyTextureMethod method);
|
|
|
| void DoCopySubTextureWithTransform(const gles2::GLES2Decoder* decoder,
|
| GLenum source_target,
|
| @@ -94,8 +118,10 @@ class GPU_EXPORT CopyTextureCHROMIUMResourceManager {
|
| void DoCopyTextureWithTransform(const gles2::GLES2Decoder* decoder,
|
| GLenum source_target,
|
| GLuint source_id,
|
| + GLenum source_format,
|
| GLenum dest_target,
|
| GLuint dest_id,
|
| + GLenum dest_format,
|
| GLsizei width,
|
| GLsizei height,
|
| bool flip_y,
|
| @@ -136,8 +162,10 @@ class GPU_EXPORT CopyTextureCHROMIUMResourceManager {
|
| void DoCopyTextureInternal(const gles2::GLES2Decoder* decoder,
|
| GLenum source_target,
|
| GLuint source_id,
|
| + GLenum source_format,
|
| GLenum dest_target,
|
| GLuint dest_id,
|
| + GLenum dest_format,
|
| GLint xoffset,
|
| GLint yoffset,
|
| GLint x,
|
| @@ -156,7 +184,7 @@ class GPU_EXPORT CopyTextureCHROMIUMResourceManager {
|
| bool initialized_;
|
| bool nv_egl_stream_consumer_external_;
|
| typedef std::vector<GLuint> ShaderVector;
|
| - GLuint vertex_shader_;
|
| + ShaderVector vertex_shaders_;
|
| ShaderVector fragment_shaders_;
|
| typedef int ProgramMapKey;
|
| typedef base::hash_map<ProgramMapKey, ProgramInfo> ProgramMap;
|
|
|