OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_H_ | 5 #ifndef GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_H_ |
6 #define GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_H_ | 6 #define GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_H_ |
7 | 7 |
8 #include <GLES2/gl2.h> | 8 #include <GLES2/gl2.h> |
9 | 9 |
10 #include <list> | 10 #include <list> |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
215 virtual void DisableVertexAttribArray(GLuint index) OVERRIDE; | 215 virtual void DisableVertexAttribArray(GLuint index) OVERRIDE; |
216 virtual void EnableVertexAttribArray(GLuint index) OVERRIDE; | 216 virtual void EnableVertexAttribArray(GLuint index) OVERRIDE; |
217 virtual void GetVertexAttribfv( | 217 virtual void GetVertexAttribfv( |
218 GLuint index, GLenum pname, GLfloat* params) OVERRIDE; | 218 GLuint index, GLenum pname, GLfloat* params) OVERRIDE; |
219 virtual void GetVertexAttribiv( | 219 virtual void GetVertexAttribiv( |
220 GLuint index, GLenum pname, GLint* params) OVERRIDE; | 220 GLuint index, GLenum pname, GLint* params) OVERRIDE; |
221 | 221 |
222 // ContextSupport implementation. | 222 // ContextSupport implementation. |
223 virtual void Swap() OVERRIDE; | 223 virtual void Swap() OVERRIDE; |
224 virtual void PartialSwapBuffers(const gfx::Rect& sub_buffer) OVERRIDE; | 224 virtual void PartialSwapBuffers(const gfx::Rect& sub_buffer) OVERRIDE; |
225 virtual void SetSwapBuffersCompleteCallback( | |
226 const base::Closure& swap_buffers_complete_callback) | |
227 OVERRIDE; | |
228 virtual void ScheduleOverlayPlane(int plane_z_order, | 225 virtual void ScheduleOverlayPlane(int plane_z_order, |
229 gfx::OverlayTransform plane_transform, | 226 gfx::OverlayTransform plane_transform, |
230 unsigned overlay_texture_id, | 227 unsigned overlay_texture_id, |
231 const gfx::Rect& display_bounds, | 228 const gfx::Rect& display_bounds, |
232 const gfx::RectF& uv_rect) OVERRIDE; | 229 const gfx::RectF& uv_rect) OVERRIDE; |
233 virtual GLuint InsertFutureSyncPointCHROMIUM() OVERRIDE; | 230 virtual GLuint InsertFutureSyncPointCHROMIUM() OVERRIDE; |
234 virtual void RetireSyncPointCHROMIUM(GLuint sync_point) OVERRIDE; | 231 virtual void RetireSyncPointCHROMIUM(GLuint sync_point) OVERRIDE; |
235 | 232 |
236 void GetProgramInfoCHROMIUMHelper(GLuint program, std::vector<int8>* result); | 233 void GetProgramInfoCHROMIUMHelper(GLuint program, std::vector<int8>* result); |
237 GLint GetAttribLocationHelper(GLuint program, const char* name); | 234 GLint GetAttribLocationHelper(GLuint program, const char* name); |
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
597 IdHandlerInterface* GetIdHandler(int id_namespace) const; | 594 IdHandlerInterface* GetIdHandler(int id_namespace) const; |
598 // IdAllocators for objects that can't be shared among contexts. | 595 // IdAllocators for objects that can't be shared among contexts. |
599 // For now, used only for Queries. TODO(hj.r.chung) Should be added for | 596 // For now, used only for Queries. TODO(hj.r.chung) Should be added for |
600 // Framebuffer and Vertex array objects. | 597 // Framebuffer and Vertex array objects. |
601 IdAllocatorInterface* GetIdAllocator(int id_namespace) const; | 598 IdAllocatorInterface* GetIdAllocator(int id_namespace) const; |
602 | 599 |
603 void FinishHelper(); | 600 void FinishHelper(); |
604 | 601 |
605 void RunIfContextNotLost(const base::Closure& callback); | 602 void RunIfContextNotLost(const base::Closure& callback); |
606 | 603 |
607 void OnSwapBuffersComplete(); | |
608 | |
609 // Validate if an offset is valid, i.e., non-negative and fit into 32-bit. | 604 // Validate if an offset is valid, i.e., non-negative and fit into 32-bit. |
610 // If not, generate an approriate error, and return false. | 605 // If not, generate an approriate error, and return false. |
611 bool ValidateOffset(const char* func, GLintptr offset); | 606 bool ValidateOffset(const char* func, GLintptr offset); |
612 | 607 |
613 // Validate if a size is valid, i.e., non-negative and fit into 32-bit. | 608 // Validate if a size is valid, i.e., non-negative and fit into 32-bit. |
614 // If not, generate an approriate error, and return false. | 609 // If not, generate an approriate error, and return false. |
615 bool ValidateSize(const char* func, GLsizeiptr offset); | 610 bool ValidateSize(const char* func, GLsizeiptr offset); |
616 | 611 |
617 // Remove the transfer buffer from the buffer tracker. For buffers used | 612 // Remove the transfer buffer from the buffer tracker. For buffers used |
618 // asynchronously the memory is free:ed if the upload has completed. For | 613 // asynchronously the memory is free:ed if the upload has completed. For |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
778 scoped_ptr<GpuMemoryBufferTracker> gpu_memory_buffer_tracker_; | 773 scoped_ptr<GpuMemoryBufferTracker> gpu_memory_buffer_tracker_; |
779 | 774 |
780 GLES2ImplementationErrorMessageCallback* error_message_callback_; | 775 GLES2ImplementationErrorMessageCallback* error_message_callback_; |
781 | 776 |
782 scoped_ptr<std::string> current_trace_name_; | 777 scoped_ptr<std::string> current_trace_name_; |
783 | 778 |
784 GpuControl* gpu_control_; | 779 GpuControl* gpu_control_; |
785 | 780 |
786 Capabilities capabilities_; | 781 Capabilities capabilities_; |
787 | 782 |
788 base::Closure swap_buffers_complete_callback_; | |
789 | |
790 base::WeakPtrFactory<GLES2Implementation> weak_ptr_factory_; | 783 base::WeakPtrFactory<GLES2Implementation> weak_ptr_factory_; |
791 | 784 |
792 DISALLOW_COPY_AND_ASSIGN(GLES2Implementation); | 785 DISALLOW_COPY_AND_ASSIGN(GLES2Implementation); |
793 }; | 786 }; |
794 | 787 |
795 inline bool GLES2Implementation::GetBufferParameterivHelper( | 788 inline bool GLES2Implementation::GetBufferParameterivHelper( |
796 GLenum /* target */, GLenum /* pname */, GLint* /* params */) { | 789 GLenum /* target */, GLenum /* pname */, GLint* /* params */) { |
797 return false; | 790 return false; |
798 } | 791 } |
799 | 792 |
(...skipping 22 matching lines...) Expand all Loading... |
822 | 815 |
823 inline bool GLES2Implementation::GetTexParameterivHelper( | 816 inline bool GLES2Implementation::GetTexParameterivHelper( |
824 GLenum /* target */, GLenum /* pname */, GLint* /* params */) { | 817 GLenum /* target */, GLenum /* pname */, GLint* /* params */) { |
825 return false; | 818 return false; |
826 } | 819 } |
827 | 820 |
828 } // namespace gles2 | 821 } // namespace gles2 |
829 } // namespace gpu | 822 } // namespace gpu |
830 | 823 |
831 #endif // GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_H_ | 824 #endif // GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_H_ |
OLD | NEW |