|  | // Copyright 2014 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_CLEAR_FRAMEBUFFER_H_ | 
|  | #define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_CLEAR_FRAMEBUFFER_H_ | 
|  |  | 
|  | #include "base/macros.h" | 
|  | #include "gpu/command_buffer/service/gl_utils.h" | 
|  | #include "gpu/gpu_export.h" | 
|  |  | 
|  | namespace gfx { | 
|  | class Size; | 
|  | } | 
|  |  | 
|  | namespace gpu { | 
|  | namespace gles2 { | 
|  | class GLES2Decoder; | 
|  |  | 
|  | class GPU_EXPORT ClearFramebufferResourceManager { | 
|  | public: | 
|  | ClearFramebufferResourceManager(const gles2::GLES2Decoder* decoder); | 
|  | ~ClearFramebufferResourceManager(); | 
|  |  | 
|  |  | 
|  | void ClearFramebuffer(const gles2::GLES2Decoder* decoder, | 
|  | const gfx::Size& framebuffer_size, | 
|  | GLbitfield mask, | 
|  | GLfloat clear_color_red, | 
|  | GLfloat clear_color_green, | 
|  | GLfloat clear_color_blue, | 
|  | GLfloat clear_color_alpha, | 
|  | GLfloat clear_depth_value, | 
|  | GLint clear_stencil_value); | 
|  |  | 
|  | private: | 
|  | void Initialize(const gles2::GLES2Decoder* decoder); | 
|  | void Destroy(); | 
|  |  | 
|  | // The attributes used during invocation of the extension. | 
|  | static const GLuint kVertexPositionAttrib = 0; | 
|  |  | 
|  | bool initialized_; | 
|  | GLuint program_; | 
|  | GLuint depth_handle_; | 
|  | GLuint color_handle_; | 
|  | GLuint buffer_id_; | 
|  |  | 
|  | DISALLOW_COPY_AND_ASSIGN(ClearFramebufferResourceManager); | 
|  | }; | 
|  |  | 
|  | }  // namespace gles2 | 
|  | }  // namespace gpu | 
|  |  | 
|  | #endif  // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_CLEAR_FRAMEBUFFER_H_ |