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 |