| 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 CONTENT_COMMON_GPU_CLIENT_WEBGRAPHICSCONTEXT3D_COMMAND_BUFFER_IMPL_H_ | 5 #ifndef CONTENT_COMMON_GPU_CLIENT_WEBGRAPHICSCONTEXT3D_COMMAND_BUFFER_IMPL_H_ |
| 6 #define CONTENT_COMMON_GPU_CLIENT_WEBGRAPHICSCONTEXT3D_COMMAND_BUFFER_IMPL_H_ | 6 #define CONTENT_COMMON_GPU_CLIENT_WEBGRAPHICSCONTEXT3D_COMMAND_BUFFER_IMPL_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 class ContextSupport; | 24 class ContextSupport; |
| 25 class TransferBuffer; | 25 class TransferBuffer; |
| 26 | 26 |
| 27 namespace gles2 { | 27 namespace gles2 { |
| 28 class GLES2CmdHelper; | 28 class GLES2CmdHelper; |
| 29 class GLES2Implementation; | 29 class GLES2Implementation; |
| 30 class GLES2Interface; | 30 class GLES2Interface; |
| 31 } | 31 } |
| 32 } | 32 } |
| 33 | 33 |
| 34 using WebKit::WebGLId; | 34 using blink::WebGLId; |
| 35 | 35 |
| 36 using WebKit::WGC3Dbyte; | 36 using blink::WGC3Dbyte; |
| 37 using WebKit::WGC3Dchar; | 37 using blink::WGC3Dchar; |
| 38 using WebKit::WGC3Denum; | 38 using blink::WGC3Denum; |
| 39 using WebKit::WGC3Dboolean; | 39 using blink::WGC3Dboolean; |
| 40 using WebKit::WGC3Dbitfield; | 40 using blink::WGC3Dbitfield; |
| 41 using WebKit::WGC3Dint; | 41 using blink::WGC3Dint; |
| 42 using WebKit::WGC3Dsizei; | 42 using blink::WGC3Dsizei; |
| 43 using WebKit::WGC3Duint; | 43 using blink::WGC3Duint; |
| 44 using WebKit::WGC3Dfloat; | 44 using blink::WGC3Dfloat; |
| 45 using WebKit::WGC3Dclampf; | 45 using blink::WGC3Dclampf; |
| 46 using WebKit::WGC3Dintptr; | 46 using blink::WGC3Dintptr; |
| 47 using WebKit::WGC3Dsizeiptr; | 47 using blink::WGC3Dsizeiptr; |
| 48 | 48 |
| 49 namespace content { | 49 namespace content { |
| 50 class GpuChannelHost; | 50 class GpuChannelHost; |
| 51 | 51 |
| 52 const size_t kDefaultCommandBufferSize = 1024 * 1024; | 52 const size_t kDefaultCommandBufferSize = 1024 * 1024; |
| 53 const size_t kDefaultStartTransferBufferSize = 1 * 1024 * 1024; | 53 const size_t kDefaultStartTransferBufferSize = 1 * 1024 * 1024; |
| 54 const size_t kDefaultMinTransferBufferSize = 1 * 256 * 1024; | 54 const size_t kDefaultMinTransferBufferSize = 1 * 256 * 1024; |
| 55 const size_t kDefaultMaxTransferBufferSize = 16 * 1024 * 1024; | 55 const size_t kDefaultMaxTransferBufferSize = 16 * 1024 * 1024; |
| 56 | 56 |
| 57 // TODO(piman): move this logic to the compositor and remove it from the | 57 // TODO(piman): move this logic to the compositor and remove it from the |
| 58 // context... | 58 // context... |
| 59 class WebGraphicsContext3DSwapBuffersClient { | 59 class WebGraphicsContext3DSwapBuffersClient { |
| 60 public: | 60 public: |
| 61 virtual void OnViewContextSwapBuffersPosted() = 0; | 61 virtual void OnViewContextSwapBuffersPosted() = 0; |
| 62 virtual void OnViewContextSwapBuffersComplete() = 0; | 62 virtual void OnViewContextSwapBuffersComplete() = 0; |
| 63 virtual void OnViewContextSwapBuffersAborted() = 0; | 63 virtual void OnViewContextSwapBuffersAborted() = 0; |
| 64 | 64 |
| 65 protected: | 65 protected: |
| 66 virtual ~WebGraphicsContext3DSwapBuffersClient() {} | 66 virtual ~WebGraphicsContext3DSwapBuffersClient() {} |
| 67 }; | 67 }; |
| 68 | 68 |
| 69 class WebGraphicsContext3DErrorMessageCallback; | 69 class WebGraphicsContext3DErrorMessageCallback; |
| 70 | 70 |
| 71 class WebGraphicsContext3DCommandBufferImpl | 71 class WebGraphicsContext3DCommandBufferImpl |
| 72 : public WebKit::WebGraphicsContext3D { | 72 : public blink::WebGraphicsContext3D { |
| 73 public: | 73 public: |
| 74 enum MappedMemoryReclaimLimit { | 74 enum MappedMemoryReclaimLimit { |
| 75 kNoLimit = 0, | 75 kNoLimit = 0, |
| 76 }; | 76 }; |
| 77 | 77 |
| 78 struct SharedMemoryLimits { | 78 struct SharedMemoryLimits { |
| 79 SharedMemoryLimits(); | 79 SharedMemoryLimits(); |
| 80 | 80 |
| 81 size_t command_buffer_size; | 81 size_t command_buffer_size; |
| 82 size_t start_transfer_buffer_size; | 82 size_t start_transfer_buffer_size; |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 279 | 279 |
| 280 virtual void getFramebufferAttachmentParameteriv(WGC3Denum target, | 280 virtual void getFramebufferAttachmentParameteriv(WGC3Denum target, |
| 281 WGC3Denum attachment, | 281 WGC3Denum attachment, |
| 282 WGC3Denum pname, | 282 WGC3Denum pname, |
| 283 WGC3Dint* value); | 283 WGC3Dint* value); |
| 284 | 284 |
| 285 virtual void getIntegerv(WGC3Denum pname, WGC3Dint* value); | 285 virtual void getIntegerv(WGC3Denum pname, WGC3Dint* value); |
| 286 | 286 |
| 287 virtual void getProgramiv(WebGLId program, WGC3Denum pname, WGC3Dint* value); | 287 virtual void getProgramiv(WebGLId program, WGC3Denum pname, WGC3Dint* value); |
| 288 | 288 |
| 289 virtual WebKit::WebString getProgramInfoLog(WebGLId program); | 289 virtual blink::WebString getProgramInfoLog(WebGLId program); |
| 290 | 290 |
| 291 virtual void getRenderbufferParameteriv(WGC3Denum target, | 291 virtual void getRenderbufferParameteriv(WGC3Denum target, |
| 292 WGC3Denum pname, | 292 WGC3Denum pname, |
| 293 WGC3Dint* value); | 293 WGC3Dint* value); |
| 294 | 294 |
| 295 virtual void getShaderiv(WebGLId shader, WGC3Denum pname, WGC3Dint* value); | 295 virtual void getShaderiv(WebGLId shader, WGC3Denum pname, WGC3Dint* value); |
| 296 | 296 |
| 297 virtual WebKit::WebString getShaderInfoLog(WebGLId shader); | 297 virtual blink::WebString getShaderInfoLog(WebGLId shader); |
| 298 | 298 |
| 299 virtual void getShaderPrecisionFormat(WGC3Denum shadertype, | 299 virtual void getShaderPrecisionFormat(WGC3Denum shadertype, |
| 300 WGC3Denum precisiontype, | 300 WGC3Denum precisiontype, |
| 301 WGC3Dint* range, | 301 WGC3Dint* range, |
| 302 WGC3Dint* precision); | 302 WGC3Dint* precision); |
| 303 | 303 |
| 304 virtual WebKit::WebString getShaderSource(WebGLId shader); | 304 virtual blink::WebString getShaderSource(WebGLId shader); |
| 305 virtual WebKit::WebString getString(WGC3Denum name); | 305 virtual blink::WebString getString(WGC3Denum name); |
| 306 | 306 |
| 307 virtual void getTexParameterfv(WGC3Denum target, | 307 virtual void getTexParameterfv(WGC3Denum target, |
| 308 WGC3Denum pname, | 308 WGC3Denum pname, |
| 309 WGC3Dfloat* value); | 309 WGC3Dfloat* value); |
| 310 virtual void getTexParameteriv(WGC3Denum target, | 310 virtual void getTexParameteriv(WGC3Denum target, |
| 311 WGC3Denum pname, | 311 WGC3Denum pname, |
| 312 WGC3Dint* value); | 312 WGC3Dint* value); |
| 313 | 313 |
| 314 virtual void getUniformfv(WebGLId program, | 314 virtual void getUniformfv(WebGLId program, |
| 315 WGC3Dint location, | 315 WGC3Dint location, |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 516 WGC3Dsizei numAttachments, | 516 WGC3Dsizei numAttachments, |
| 517 const WGC3Denum* attachments); | 517 const WGC3Denum* attachments); |
| 518 virtual void discardBackbufferCHROMIUM(); | 518 virtual void discardBackbufferCHROMIUM(); |
| 519 virtual void ensureBackbufferCHROMIUM(); | 519 virtual void ensureBackbufferCHROMIUM(); |
| 520 | 520 |
| 521 virtual void copyTextureToParentTextureCHROMIUM( | 521 virtual void copyTextureToParentTextureCHROMIUM( |
| 522 WebGLId texture, WebGLId parentTexture); | 522 WebGLId texture, WebGLId parentTexture); |
| 523 | 523 |
| 524 virtual void rateLimitOffscreenContextCHROMIUM(); | 524 virtual void rateLimitOffscreenContextCHROMIUM(); |
| 525 | 525 |
| 526 virtual WebKit::WebString getRequestableExtensionsCHROMIUM(); | 526 virtual blink::WebString getRequestableExtensionsCHROMIUM(); |
| 527 virtual void requestExtensionCHROMIUM(const char*); | 527 virtual void requestExtensionCHROMIUM(const char*); |
| 528 | 528 |
| 529 virtual void blitFramebufferCHROMIUM( | 529 virtual void blitFramebufferCHROMIUM( |
| 530 WGC3Dint srcX0, WGC3Dint srcY0, WGC3Dint srcX1, WGC3Dint srcY1, | 530 WGC3Dint srcX0, WGC3Dint srcY0, WGC3Dint srcX1, WGC3Dint srcY1, |
| 531 WGC3Dint dstX0, WGC3Dint dstY0, WGC3Dint dstX1, WGC3Dint dstY1, | 531 WGC3Dint dstX0, WGC3Dint dstY0, WGC3Dint dstX1, WGC3Dint dstY1, |
| 532 WGC3Dbitfield mask, WGC3Denum filter); | 532 WGC3Dbitfield mask, WGC3Denum filter); |
| 533 virtual void renderbufferStorageMultisampleCHROMIUM( | 533 virtual void renderbufferStorageMultisampleCHROMIUM( |
| 534 WGC3Denum target, WGC3Dsizei samples, WGC3Denum internalformat, | 534 WGC3Denum target, WGC3Dsizei samples, WGC3Denum internalformat, |
| 535 WGC3Dsizei width, WGC3Dsizei height); | 535 WGC3Dsizei width, WGC3Dsizei height); |
| 536 | 536 |
| 537 virtual WebKit::WebString getTranslatedShaderSourceANGLE(WebGLId shader); | 537 virtual blink::WebString getTranslatedShaderSourceANGLE(WebGLId shader); |
| 538 | 538 |
| 539 virtual void setContextLostCallback( | 539 virtual void setContextLostCallback( |
| 540 WebGraphicsContext3D::WebGraphicsContextLostCallback* callback); | 540 WebGraphicsContext3D::WebGraphicsContextLostCallback* callback); |
| 541 | 541 |
| 542 virtual WGC3Denum getGraphicsResetStatusARB(); | 542 virtual WGC3Denum getGraphicsResetStatusARB(); |
| 543 | 543 |
| 544 virtual void setErrorMessageCallback( | 544 virtual void setErrorMessageCallback( |
| 545 WebGraphicsContext3D::WebGraphicsErrorMessageCallback* callback); | 545 WebGraphicsContext3D::WebGraphicsErrorMessageCallback* callback); |
| 546 | 546 |
| 547 virtual void setSwapBuffersCompleteCallbackCHROMIUM( | 547 virtual void setSwapBuffersCompleteCallbackCHROMIUM( |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 725 WGC3Denum context_lost_reason_; | 725 WGC3Denum context_lost_reason_; |
| 726 | 726 |
| 727 WebGraphicsContext3D::WebGraphicsErrorMessageCallback* | 727 WebGraphicsContext3D::WebGraphicsErrorMessageCallback* |
| 728 error_message_callback_; | 728 error_message_callback_; |
| 729 scoped_ptr<WebGraphicsContext3DErrorMessageCallback> | 729 scoped_ptr<WebGraphicsContext3DErrorMessageCallback> |
| 730 client_error_message_callback_; | 730 client_error_message_callback_; |
| 731 | 731 |
| 732 WebGraphicsContext3D::WebGraphicsSwapBuffersCompleteCallbackCHROMIUM* | 732 WebGraphicsContext3D::WebGraphicsSwapBuffersCompleteCallbackCHROMIUM* |
| 733 swapbuffers_complete_callback_; | 733 swapbuffers_complete_callback_; |
| 734 | 734 |
| 735 WebKit::WebGraphicsContext3D::Attributes attributes_; | 735 blink::WebGraphicsContext3D::Attributes attributes_; |
| 736 gfx::GpuPreference gpu_preference_; | 736 gfx::GpuPreference gpu_preference_; |
| 737 | 737 |
| 738 // Errors raised by synthesizeGLError(). | 738 // Errors raised by synthesizeGLError(). |
| 739 std::vector<WGC3Denum> synthetic_errors_; | 739 std::vector<WGC3Denum> synthetic_errors_; |
| 740 | 740 |
| 741 base::WeakPtrFactory<WebGraphicsContext3DCommandBufferImpl> weak_ptr_factory_; | 741 base::WeakPtrFactory<WebGraphicsContext3DCommandBufferImpl> weak_ptr_factory_; |
| 742 | 742 |
| 743 bool initialized_; | 743 bool initialized_; |
| 744 scoped_ptr<CommandBufferProxyImpl> command_buffer_; | 744 scoped_ptr<CommandBufferProxyImpl> command_buffer_; |
| 745 scoped_ptr<gpu::gles2::GLES2CmdHelper> gles2_helper_; | 745 scoped_ptr<gpu::gles2::GLES2CmdHelper> gles2_helper_; |
| 746 scoped_ptr<gpu::TransferBuffer> transfer_buffer_; | 746 scoped_ptr<gpu::TransferBuffer> transfer_buffer_; |
| 747 gpu::gles2::GLES2Interface* gl_; | 747 gpu::gles2::GLES2Interface* gl_; |
| 748 scoped_ptr<gpu::gles2::GLES2Implementation> real_gl_; | 748 scoped_ptr<gpu::gles2::GLES2Implementation> real_gl_; |
| 749 scoped_ptr<gpu::gles2::GLES2Interface> trace_gl_; | 749 scoped_ptr<gpu::gles2::GLES2Interface> trace_gl_; |
| 750 Error last_error_; | 750 Error last_error_; |
| 751 int frame_number_; | 751 int frame_number_; |
| 752 bool bind_generates_resources_; | 752 bool bind_generates_resources_; |
| 753 bool use_echo_for_swap_ack_; | 753 bool use_echo_for_swap_ack_; |
| 754 SharedMemoryLimits mem_limits_; | 754 SharedMemoryLimits mem_limits_; |
| 755 | 755 |
| 756 uint32_t flush_id_; | 756 uint32_t flush_id_; |
| 757 }; | 757 }; |
| 758 | 758 |
| 759 } // namespace content | 759 } // namespace content |
| 760 | 760 |
| 761 #endif // CONTENT_COMMON_GPU_CLIENT_WEBGRAPHICSCONTEXT3D_COMMAND_BUFFER_IMPL_H_ | 761 #endif // CONTENT_COMMON_GPU_CLIENT_WEBGRAPHICSCONTEXT3D_COMMAND_BUFFER_IMPL_H_ |
| OLD | NEW |