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 097eb2ce46e80df41c34955b116a90618647c6a9..de022bb8c3891b5ee4498d6673a608e04fa8d6cd 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h |
+++ b/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h |
@@ -5,6 +5,7 @@ |
#ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_COPY_TEXTURE_CHROMIUM_H_ |
#define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_COPY_TEXTURE_CHROMIUM_H_ |
+#include "base/containers/hash_tables.h" |
#include "gpu/command_buffer/service/gl_utils.h" |
#include "gpu/gpu_export.h" |
@@ -21,6 +22,7 @@ class GLES2Decoder; |
class GPU_EXPORT CopyTextureCHROMIUMResourceManager { |
public: |
CopyTextureCHROMIUMResourceManager(); |
+ ~CopyTextureCHROMIUMResourceManager(); |
void Initialize(const gles2::GLES2Decoder* decoder); |
void Destroy(); |
@@ -45,14 +47,21 @@ class GPU_EXPORT CopyTextureCHROMIUMResourceManager { |
static const GLuint kVertexPositionAttrib = 0; |
private: |
- bool initialized_; |
+ struct ProgramInfo { |
+ ProgramInfo() : program(0u), matrix_handle(0u), sampler_locations(0u) {} |
+ |
+ GLuint program; |
+ GLuint matrix_handle; |
+ GLuint sampler_locations; |
+ }; |
- static const int kNumPrograms = 12; |
- GLuint programs_[kNumPrograms]; |
+ bool initialized_; |
+ typedef std::pair<int, int> ProgramMapKey; |
+ typedef base::hash_map<ProgramMapKey, ProgramInfo> ProgramMap; |
+ ProgramMap programs_; |
GLuint buffer_id_; |
GLuint framebuffer_; |
- GLuint matrix_handle_[kNumPrograms]; |
- GLuint sampler_locations_[kNumPrograms]; |
+ GLuint vertex_shader_; |
DISALLOW_COPY_AND_ASSIGN(CopyTextureCHROMIUMResourceManager); |
}; |