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 WEBKIT_COMMON_GPU_WEBGRAPHICSCONTEXT3D_IN_PROCESS_COMMAND_BUFFER_IMPL_H_ | 5 #ifndef WEBKIT_COMMON_GPU_WEBGRAPHICSCONTEXT3D_IMPL_H_ |
6 #define WEBKIT_COMMON_GPU_WEBGRAPHICSCONTEXT3D_IN_PROCESS_COMMAND_BUFFER_IMPL_H_ | 6 #define WEBKIT_COMMON_GPU_WEBGRAPHICSCONTEXT3D_IMPL_H_ |
7 | 7 |
8 #include <string> | |
8 #include <vector> | 9 #include <vector> |
9 | 10 |
10 #include "base/compiler_specific.h" | 11 #include "base/callback.h" |
11 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
12 #include "third_party/WebKit/public/platform/WebGraphicsContext3D.h" | 13 #include "third_party/WebKit/public/platform/WebGraphicsContext3D.h" |
13 #include "third_party/WebKit/public/platform/WebString.h" | 14 #include "third_party/WebKit/public/platform/WebString.h" |
14 #include "ui/gfx/native_widget_types.h" | |
15 #include "webkit/common/gpu/webkit_gpu_export.h" | 15 #include "webkit/common/gpu/webkit_gpu_export.h" |
16 | 16 |
17 namespace gpu { | 17 namespace gpu { |
18 class ContextSupport; | |
19 | 18 |
20 namespace gles2 { | 19 namespace gles2 { |
21 class GLES2Interface; | 20 class GLES2Interface; |
22 class GLES2Implementation; | 21 class GLES2ImplementationErrorMessageCallback; |
23 } | 22 } |
24 } | 23 } |
25 | 24 |
26 using blink::WebGLId; | 25 using blink::WebGLId; |
27 | 26 |
28 using blink::WGC3Dbyte; | 27 using blink::WGC3Dbyte; |
29 using blink::WGC3Dchar; | 28 using blink::WGC3Dchar; |
30 using blink::WGC3Denum; | 29 using blink::WGC3Denum; |
31 using blink::WGC3Dboolean; | 30 using blink::WGC3Dboolean; |
32 using blink::WGC3Dbitfield; | 31 using blink::WGC3Dbitfield; |
33 using blink::WGC3Dint; | 32 using blink::WGC3Dint; |
34 using blink::WGC3Dsizei; | 33 using blink::WGC3Dsizei; |
35 using blink::WGC3Duint; | 34 using blink::WGC3Duint; |
36 using blink::WGC3Dfloat; | 35 using blink::WGC3Dfloat; |
37 using blink::WGC3Dclampf; | 36 using blink::WGC3Dclampf; |
38 using blink::WGC3Dintptr; | 37 using blink::WGC3Dintptr; |
39 using blink::WGC3Dsizeiptr; | 38 using blink::WGC3Dsizeiptr; |
40 | 39 |
41 namespace gpu { | 40 namespace content { |
jamesr
2014/06/03 21:22:56
what on earth? why are we defining symbols in name
bajones
2014/06/03 21:25:13
Ack! That's a mistake. (File was originally a copy
| |
42 class GLInProcessContext; | |
43 struct GLInProcessContextAttribs; | |
44 } | |
45 | 41 |
46 namespace webkit { | 42 class WebGraphicsContext3DErrorMessageCallback; |
47 namespace gpu { | |
48 | 43 |
49 class WEBKIT_GPU_EXPORT WebGraphicsContext3DInProcessCommandBufferImpl | 44 class WEBKIT_GPU_EXPORT WebGraphicsContext3DImpl |
50 : public NON_EXPORTED_BASE(blink::WebGraphicsContext3D) { | 45 : public NON_EXPORTED_BASE(blink::WebGraphicsContext3D) { |
51 public: | 46 public: |
52 static scoped_ptr<WebGraphicsContext3DInProcessCommandBufferImpl> | |
53 CreateViewContext( | |
54 const blink::WebGraphicsContext3D::Attributes& attributes, | |
55 bool lose_context_when_out_of_memory, | |
56 gfx::AcceleratedWidget window); | |
57 | |
58 static scoped_ptr<WebGraphicsContext3DInProcessCommandBufferImpl> | |
59 CreateOffscreenContext( | |
60 const blink::WebGraphicsContext3D::Attributes& attributes, | |
61 bool lose_context_when_out_of_memory); | |
62 | |
63 static scoped_ptr<WebGraphicsContext3DInProcessCommandBufferImpl> | |
64 WrapContext( | |
65 scoped_ptr< ::gpu::GLInProcessContext> context, | |
66 const blink::WebGraphicsContext3D::Attributes& attributes); | |
67 | |
68 virtual ~WebGraphicsContext3DInProcessCommandBufferImpl(); | |
69 | |
70 // Convert WebGL context creation attributes into GLInProcessContext / EGL | |
71 // size requests. | |
72 static void ConvertAttributes( | |
73 const blink::WebGraphicsContext3D::Attributes& attributes, | |
74 ::gpu::GLInProcessContextAttribs* output_attribs); | |
75 | |
76 //---------------------------------------------------------------------- | 47 //---------------------------------------------------------------------- |
77 // WebGraphicsContext3D methods | 48 // WebGraphicsContext3D methods |
78 virtual bool makeContextCurrent(); | |
79 | 49 |
80 virtual uint32_t lastFlushID(); | 50 virtual uint32_t lastFlushID(); |
81 | 51 |
82 virtual void reshapeWithScaleFactor(int width, int height, float scaleFactor); | 52 virtual unsigned int insertSyncPoint(); |
53 virtual void waitSyncPoint(unsigned int sync_point); | |
54 | |
55 virtual void loseContextCHROMIUM(WGC3Denum current, WGC3Denum other); | |
56 | |
57 virtual void reshapeWithScaleFactor( | |
58 int width, int height, float scale_factor); | |
83 | 59 |
84 virtual void prepareTexture(); | 60 virtual void prepareTexture(); |
85 virtual void postSubBufferCHROMIUM(int x, int y, int width, int height); | 61 virtual void postSubBufferCHROMIUM(int x, int y, int width, int height); |
86 | 62 |
87 virtual void activeTexture(WGC3Denum texture); | 63 virtual void activeTexture(WGC3Denum texture); |
88 virtual void attachShader(WebGLId program, WebGLId shader); | 64 virtual void attachShader(WebGLId program, WebGLId shader); |
89 virtual void bindAttribLocation(WebGLId program, WGC3Duint index, | 65 virtual void bindAttribLocation(WebGLId program, WGC3Duint index, |
90 const WGC3Dchar* name); | 66 const WGC3Dchar* name); |
91 virtual void bindBuffer(WGC3Denum target, WebGLId buffer); | 67 virtual void bindBuffer(WGC3Denum target, WebGLId buffer); |
92 virtual void bindFramebuffer(WGC3Denum target, WebGLId framebuffer); | 68 virtual void bindFramebuffer(WGC3Denum target, WebGLId framebuffer); |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
197 virtual void getBooleanv(WGC3Denum pname, WGC3Dboolean* value); | 173 virtual void getBooleanv(WGC3Denum pname, WGC3Dboolean* value); |
198 | 174 |
199 virtual void getBufferParameteriv(WGC3Denum target, | 175 virtual void getBufferParameteriv(WGC3Denum target, |
200 WGC3Denum pname, | 176 WGC3Denum pname, |
201 WGC3Dint* value); | 177 WGC3Dint* value); |
202 | 178 |
203 virtual Attributes getContextAttributes(); | 179 virtual Attributes getContextAttributes(); |
204 | 180 |
205 virtual WGC3Denum getError(); | 181 virtual WGC3Denum getError(); |
206 | 182 |
207 virtual bool isContextLost(); | |
208 | |
209 virtual void getFloatv(WGC3Denum pname, WGC3Dfloat* value); | 183 virtual void getFloatv(WGC3Denum pname, WGC3Dfloat* value); |
210 | 184 |
211 virtual void getFramebufferAttachmentParameteriv(WGC3Denum target, | 185 virtual void getFramebufferAttachmentParameteriv(WGC3Denum target, |
212 WGC3Denum attachment, | 186 WGC3Denum attachment, |
213 WGC3Denum pname, | 187 WGC3Denum pname, |
214 WGC3Dint* value); | 188 WGC3Dint* value); |
215 | 189 |
216 virtual void getIntegerv(WGC3Denum pname, WGC3Dint* value); | 190 virtual void getIntegerv(WGC3Denum pname, WGC3Dint* value); |
217 | 191 |
218 virtual void getProgramiv(WebGLId program, WGC3Denum pname, WGC3Dint* value); | 192 virtual void getProgramiv(WebGLId program, WGC3Denum pname, WGC3Dint* value); |
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
439 WGC3Denum format, | 413 WGC3Denum format, |
440 WGC3Denum type, | 414 WGC3Denum type, |
441 WGC3Denum access); | 415 WGC3Denum access); |
442 virtual void unmapTexSubImage2DCHROMIUM(const void*); | 416 virtual void unmapTexSubImage2DCHROMIUM(const void*); |
443 | 417 |
444 virtual void setVisibilityCHROMIUM(bool visible); | 418 virtual void setVisibilityCHROMIUM(bool visible); |
445 | 419 |
446 virtual void discardFramebufferEXT(WGC3Denum target, | 420 virtual void discardFramebufferEXT(WGC3Denum target, |
447 WGC3Dsizei numAttachments, | 421 WGC3Dsizei numAttachments, |
448 const WGC3Denum* attachments); | 422 const WGC3Denum* attachments); |
449 | |
450 virtual void copyTextureToParentTextureCHROMIUM( | 423 virtual void copyTextureToParentTextureCHROMIUM( |
451 WebGLId texture, WebGLId parentTexture); | 424 WebGLId texture, WebGLId parentTexture); |
452 | 425 |
453 virtual blink::WebString getRequestableExtensionsCHROMIUM(); | 426 virtual blink::WebString getRequestableExtensionsCHROMIUM(); |
454 virtual void requestExtensionCHROMIUM(const char*); | 427 virtual void requestExtensionCHROMIUM(const char*); |
455 | 428 |
456 virtual void blitFramebufferCHROMIUM( | 429 virtual void blitFramebufferCHROMIUM( |
457 WGC3Dint srcX0, WGC3Dint srcY0, WGC3Dint srcX1, WGC3Dint srcY1, | 430 WGC3Dint srcX0, WGC3Dint srcY0, WGC3Dint srcX1, WGC3Dint srcY1, |
458 WGC3Dint dstX0, WGC3Dint dstY0, WGC3Dint dstX1, WGC3Dint dstY1, | 431 WGC3Dint dstX0, WGC3Dint dstY0, WGC3Dint dstX1, WGC3Dint dstY1, |
459 WGC3Dbitfield mask, WGC3Denum filter); | 432 WGC3Dbitfield mask, WGC3Denum filter); |
460 virtual void renderbufferStorageMultisampleCHROMIUM( | 433 virtual void renderbufferStorageMultisampleCHROMIUM( |
461 WGC3Denum target, WGC3Dsizei samples, WGC3Denum internalformat, | 434 WGC3Denum target, WGC3Dsizei samples, WGC3Denum internalformat, |
462 WGC3Dsizei width, WGC3Dsizei height); | 435 WGC3Dsizei width, WGC3Dsizei height); |
463 | 436 |
464 virtual blink::WebString getTranslatedShaderSourceANGLE(WebGLId shader); | 437 virtual blink::WebString getTranslatedShaderSourceANGLE(WebGLId shader); |
465 | 438 |
466 virtual void setContextLostCallback( | 439 virtual void setContextLostCallback( |
467 WebGraphicsContext3D::WebGraphicsContextLostCallback* callback); | 440 WebGraphicsContext3D::WebGraphicsContextLostCallback* callback); |
468 virtual WGC3Denum getGraphicsResetStatusARB(); | 441 |
442 virtual void setErrorMessageCallback( | |
443 WebGraphicsContext3D::WebGraphicsErrorMessageCallback* callback); | |
469 | 444 |
470 virtual void texImageIOSurface2DCHROMIUM( | 445 virtual void texImageIOSurface2DCHROMIUM( |
471 WGC3Denum target, WGC3Dint width, WGC3Dint height, | 446 WGC3Denum target, WGC3Dint width, WGC3Dint height, |
472 WGC3Duint ioSurfaceId, WGC3Duint plane); | 447 WGC3Duint ioSurfaceId, WGC3Duint plane); |
473 | 448 |
474 virtual void bindTexImage2DCHROMIUM(WGC3Denum target, WGC3Dint imageId); | |
475 virtual void releaseTexImage2DCHROMIUM(WGC3Denum target, WGC3Dint imageId); | |
476 | |
477 virtual void texStorage2DEXT( | 449 virtual void texStorage2DEXT( |
478 WGC3Denum target, WGC3Dint levels, WGC3Duint internalformat, | 450 WGC3Denum target, WGC3Dint levels, WGC3Duint internalformat, |
479 WGC3Dint width, WGC3Dint height); | 451 WGC3Dint width, WGC3Dint height); |
480 virtual WGC3Duint createImageCHROMIUM(WGC3Dsizei width, | 452 |
481 WGC3Dsizei height, | |
482 WGC3Denum internalformat, | |
483 WGC3Denum usage); | |
484 virtual void destroyImageCHROMIUM(WGC3Duint image_id); | |
485 virtual void getImageParameterivCHROMIUM( | |
486 WGC3Duint image_id, WGC3Denum pname, WGC3Dint* params); | |
487 virtual void* mapImageCHROMIUM(WGC3Duint image_id); | |
488 virtual void unmapImageCHROMIUM(WGC3Duint image_id); | |
489 virtual WebGLId createQueryEXT(); | 453 virtual WebGLId createQueryEXT(); |
490 virtual void deleteQueryEXT(WebGLId query); | 454 virtual void deleteQueryEXT(WebGLId query); |
491 virtual WGC3Dboolean isQueryEXT(WebGLId query); | 455 virtual WGC3Dboolean isQueryEXT(WGC3Duint query); |
492 virtual void beginQueryEXT(WGC3Denum target, WebGLId query); | 456 virtual void beginQueryEXT(WGC3Denum target, WebGLId query); |
493 virtual void endQueryEXT(WGC3Denum target); | 457 virtual void endQueryEXT(WGC3Denum target); |
494 virtual void getQueryivEXT( | 458 virtual void getQueryivEXT( |
495 WGC3Denum target, WGC3Denum pname, WGC3Dint* params); | 459 WGC3Denum target, WGC3Denum pname, WGC3Dint* params); |
496 virtual void getQueryObjectuivEXT( | 460 virtual void getQueryObjectuivEXT( |
497 WebGLId query, WGC3Denum pname, WGC3Duint* params); | 461 WebGLId query, WGC3Denum pname, WGC3Duint* params); |
498 | 462 |
499 virtual void copyTextureCHROMIUM(WGC3Denum target, WGC3Duint source_id, | 463 virtual void copyTextureCHROMIUM(WGC3Denum target, WebGLId source_id, |
500 WGC3Duint dest_id, WGC3Dint level, | 464 WebGLId dest_id, WGC3Dint level, |
501 WGC3Denum internal_format, | 465 WGC3Denum internal_format, |
502 WGC3Denum dest_type); | 466 WGC3Denum dest_type); |
503 | 467 |
504 virtual void bindUniformLocationCHROMIUM(WebGLId program, WGC3Dint location, | 468 virtual void bindUniformLocationCHROMIUM(WebGLId program, WGC3Dint location, |
505 const WGC3Dchar* uniform); | 469 const WGC3Dchar* uniform); |
506 | 470 |
507 virtual void shallowFlushCHROMIUM(); | 471 virtual void shallowFlushCHROMIUM(); |
508 virtual void shallowFinishCHROMIUM(); | 472 virtual void shallowFinishCHROMIUM(); |
509 | 473 |
510 virtual void genMailboxCHROMIUM(WGC3Dbyte* mailbox); | 474 virtual void genMailboxCHROMIUM(WGC3Dbyte* mailbox); |
511 virtual void produceTextureCHROMIUM(WGC3Denum target, | 475 virtual void produceTextureCHROMIUM(WGC3Denum target, |
512 const WGC3Dbyte* mailbox); | 476 const WGC3Dbyte* mailbox); |
513 virtual void consumeTextureCHROMIUM(WGC3Denum target, | 477 virtual void consumeTextureCHROMIUM(WGC3Denum target, |
514 const WGC3Dbyte* mailbox); | 478 const WGC3Dbyte* mailbox); |
515 | 479 |
516 virtual void insertEventMarkerEXT(const WGC3Dchar* marker); | 480 virtual void insertEventMarkerEXT(const WGC3Dchar* marker); |
517 virtual void pushGroupMarkerEXT(const WGC3Dchar* marker); | 481 virtual void pushGroupMarkerEXT(const WGC3Dchar* marker); |
518 virtual void popGroupMarkerEXT(); | 482 virtual void popGroupMarkerEXT(); |
519 | 483 |
484 // GL_OES_vertex_array_object | |
485 virtual WebGLId createVertexArrayOES(); | |
486 virtual void deleteVertexArrayOES(WebGLId array); | |
487 virtual WGC3Dboolean isVertexArrayOES(WebGLId array); | |
488 virtual void bindVertexArrayOES(WebGLId array); | |
489 | |
490 virtual void bindTexImage2DCHROMIUM(WGC3Denum target, WGC3Dint image_id); | |
491 virtual void releaseTexImage2DCHROMIUM(WGC3Denum target, WGC3Dint image_id); | |
492 | |
520 virtual void* mapBufferCHROMIUM(WGC3Denum target, WGC3Denum access); | 493 virtual void* mapBufferCHROMIUM(WGC3Denum target, WGC3Denum access); |
521 virtual WGC3Dboolean unmapBufferCHROMIUM(WGC3Denum target); | 494 virtual WGC3Dboolean unmapBufferCHROMIUM(WGC3Denum target); |
522 | 495 |
523 virtual void framebufferTexture2DMultisampleEXT(WGC3Denum target, | |
524 WGC3Denum attachment, | |
525 WGC3Denum textarget, | |
526 WebGLId texture, | |
527 WGC3Dint level, | |
528 WGC3Dsizei samples); | |
529 virtual void renderbufferStorageMultisampleEXT(WGC3Denum target, | |
530 WGC3Dsizei samples, | |
531 WGC3Denum internalformat, | |
532 WGC3Dsizei width, | |
533 WGC3Dsizei height); | |
534 | |
535 | |
536 // Async pixel transfer functions. | 496 // Async pixel transfer functions. |
537 virtual void asyncTexImage2DCHROMIUM( | 497 virtual void asyncTexImage2DCHROMIUM( |
538 WGC3Denum target, | 498 WGC3Denum target, |
539 WGC3Dint level, | 499 WGC3Dint level, |
540 WGC3Denum internalformat, | 500 WGC3Denum internalformat, |
541 WGC3Dsizei width, | 501 WGC3Dsizei width, |
542 WGC3Dsizei height, | 502 WGC3Dsizei height, |
543 WGC3Dint border, | 503 WGC3Dint border, |
544 WGC3Denum format, | 504 WGC3Denum format, |
545 WGC3Denum type, | 505 WGC3Denum type, |
546 const void* pixels); | 506 const void* pixels); |
547 virtual void asyncTexSubImage2DCHROMIUM( | 507 virtual void asyncTexSubImage2DCHROMIUM( |
548 WGC3Denum target, | 508 WGC3Denum target, |
549 WGC3Dint level, | 509 WGC3Dint level, |
550 WGC3Dint xoffset, | 510 WGC3Dint xoffset, |
551 WGC3Dint yoffset, | 511 WGC3Dint yoffset, |
552 WGC3Dsizei width, | 512 WGC3Dsizei width, |
553 WGC3Dsizei height, | 513 WGC3Dsizei height, |
554 WGC3Denum format, | 514 WGC3Denum format, |
555 WGC3Denum type, | 515 WGC3Denum type, |
556 const void* pixels); | 516 const void* pixels); |
557 virtual void waitAsyncTexImage2DCHROMIUM(WGC3Denum target); | 517 virtual void waitAsyncTexImage2DCHROMIUM(WGC3Denum target); |
558 | 518 |
559 virtual void drawBuffersEXT(WGC3Dsizei n, const WGC3Denum* bufs); | 519 // GL_EXT_draw_buffers |
520 virtual void drawBuffersEXT( | |
521 WGC3Dsizei n, | |
522 const WGC3Denum* bufs); | |
560 | 523 |
561 virtual unsigned insertSyncPoint(); | 524 // GL_ANGLE_instanced_arrays |
525 virtual void drawArraysInstancedANGLE(WGC3Denum mode, WGC3Dint first, | |
526 WGC3Dsizei count, WGC3Dsizei primcount); | |
527 virtual void drawElementsInstancedANGLE(WGC3Denum mode, WGC3Dsizei count, | |
528 WGC3Denum type, WGC3Dintptr offset, WGC3Dsizei primcount); | |
529 virtual void vertexAttribDivisorANGLE(WGC3Duint index, WGC3Duint divisor); | |
562 | 530 |
563 virtual void loseContextCHROMIUM(WGC3Denum current, WGC3Denum other); | 531 // GL_CHROMIUM_map_image |
532 virtual WGC3Duint createImageCHROMIUM(WGC3Dsizei width, | |
533 WGC3Dsizei height, | |
534 WGC3Denum internalformat, | |
535 WGC3Denum usage); | |
536 virtual void destroyImageCHROMIUM(WGC3Duint image_id); | |
537 virtual void getImageParameterivCHROMIUM( | |
538 WGC3Duint image_id, WGC3Denum pname, WGC3Dint* params); | |
539 virtual void* mapImageCHROMIUM(WGC3Duint image_id); | |
540 virtual void unmapImageCHROMIUM(WGC3Duint image_id); | |
541 | |
542 // GL_EXT_multisampled_render_to_texture | |
543 virtual void framebufferTexture2DMultisampleEXT(WGC3Denum target, | |
544 WGC3Denum attachment, | |
545 WGC3Denum textarget, | |
546 WebGLId texture, | |
547 WGC3Dint level, | |
548 WGC3Dsizei samples); | |
549 virtual void renderbufferStorageMultisampleEXT( | |
550 WGC3Denum target, WGC3Dsizei samples, WGC3Denum internalformat, | |
551 WGC3Dsizei width, WGC3Dsizei height); | |
564 | 552 |
565 virtual GrGLInterface* createGrGLInterface(); | 553 virtual GrGLInterface* createGrGLInterface(); |
566 | 554 |
567 ::gpu::gles2::GLES2Interface* GetGLInterface(); | 555 gpu::gles2::GLES2Interface* GetGLInterface() { |
568 ::gpu::ContextSupport* GetContextSupport(); | |
569 | |
570 ::gpu::gles2::GLES2Implementation* GetImplementation() { | |
571 return gl_; | 556 return gl_; |
572 } | 557 } |
573 | 558 |
574 private: | 559 protected: |
575 WebGraphicsContext3DInProcessCommandBufferImpl( | 560 friend class WebGraphicsContext3DErrorMessageCallback; |
576 scoped_ptr< ::gpu::GLInProcessContext> context, | |
577 const blink::WebGraphicsContext3D::Attributes& attributes, | |
578 bool lose_context_when_out_of_memory, | |
579 bool is_offscreen, | |
580 gfx::AcceleratedWidget window); | |
581 | 561 |
582 void OnContextLost(); | 562 WebGraphicsContext3DImpl( |
563 const Attributes& attributes, | |
564 bool lose_context_when_out_of_memory); | |
565 virtual ~WebGraphicsContext3DImpl(); | |
583 | 566 |
584 bool MaybeInitializeGL(); | 567 gpu::gles2::GLES2ImplementationErrorMessageCallback* |
568 getErrorMessageCallback(); | |
569 virtual void OnErrorMessage(const std::string& message, int id); | |
585 | 570 |
586 // Used to try to find bugs in code that calls gl directly through the gl api | 571 void setGLInterface(gpu::gles2::GLES2Interface* gl) { |
587 // instead of going through WebGraphicsContext3D. | 572 gl_ = gl; |
588 void ClearContext(); | 573 } |
589 | |
590 bool is_offscreen_; | |
591 // Only used when not offscreen. | |
592 gfx::AcceleratedWidget window_; | |
593 | 574 |
594 bool initialized_; | 575 bool initialized_; |
595 bool initialize_failed_; | 576 bool initialize_failed_; |
596 | 577 |
597 // The context we use for OpenGL rendering. | |
598 scoped_ptr< ::gpu::GLInProcessContext> context_; | |
599 // The GLES2Implementation we use for OpenGL rendering. | |
600 ::gpu::gles2::GLES2Implementation* gl_; | |
601 | |
602 WebGraphicsContext3D::WebGraphicsContextLostCallback* context_lost_callback_; | 578 WebGraphicsContext3D::WebGraphicsContextLostCallback* context_lost_callback_; |
603 WGC3Denum context_lost_reason_; | 579 WGC3Denum context_lost_reason_; |
604 | 580 |
581 WebGraphicsContext3D::WebGraphicsErrorMessageCallback* | |
582 error_message_callback_; | |
583 scoped_ptr<WebGraphicsContext3DErrorMessageCallback> | |
584 client_error_message_callback_; | |
585 | |
605 blink::WebGraphicsContext3D::Attributes attributes_; | 586 blink::WebGraphicsContext3D::Attributes attributes_; |
606 bool lose_context_when_out_of_memory_; | |
607 | 587 |
608 // Errors raised by synthesizeGLError(). | 588 // Errors raised by synthesizeGLError(). |
609 std::vector<WGC3Denum> synthetic_errors_; | 589 std::vector<WGC3Denum> synthetic_errors_; |
610 | 590 |
591 gpu::gles2::GLES2Interface* gl_; | |
592 bool lose_context_when_out_of_memory_; | |
611 uint32_t flush_id_; | 593 uint32_t flush_id_; |
612 }; | 594 }; |
613 | 595 |
614 } // namespace gpu | 596 } // namespace content |
615 } // namespace webkit | |
616 | 597 |
617 #endif // WEBKIT_COMMON_GPU_WEBGRAPHICSCONTEXT3D_IN_PROCESS_COMMAND_BUFFER_IMPL _H_ | 598 #endif // WEBKIT_COMMON_GPU_WEBGRAPHICSCONTEXT3D_IMPL_H_ |
OLD | NEW |