OLD | NEW |
| (Empty) |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_COPY_TEXTURE_CHROMIUM_H_ | |
6 #define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_COPY_TEXTURE_CHROMIUM_H_ | |
7 | |
8 #include "gpu/command_buffer/service/gl_utils.h" | |
9 | |
10 // This class encapsulates the resources required to implement the | |
11 // GL_CHROMIUM_copy_texture extension. The copy operation is performed | |
12 // via a blit to a framebuffer object. | |
13 class CopyTextureCHROMIUMResourceManager { | |
14 public: | |
15 CopyTextureCHROMIUMResourceManager() : initialized_(false) {} | |
16 | |
17 void Initialize(); | |
18 void Destroy(); | |
19 | |
20 void DoCopyTexture(GLenum target, GLuint source_id, GLuint dest_id, | |
21 GLint level, bool flip_y, bool premultiply_alpha); | |
22 | |
23 // The attributes used during invocation of the extension. | |
24 static const GLuint kVertexPositionAttrib = 0; | |
25 static const GLuint kVertexTextureAttrib = 1; | |
26 | |
27 private: | |
28 bool initialized_; | |
29 | |
30 static const int kNumPrograms = 4; | |
31 GLuint programs_[kNumPrograms]; | |
32 GLuint buffer_ids_[2]; | |
33 GLuint framebuffer_; | |
34 GLuint sampler_locations_[kNumPrograms]; | |
35 | |
36 DISALLOW_COPY_AND_ASSIGN(CopyTextureCHROMIUMResourceManager); | |
37 }; | |
38 | |
39 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_COPY_TEXTURE_CHROMIUM_H_ | |
40 | |
41 | |
OLD | NEW |