OLD | NEW |
1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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 CC_TEST_FAKE_WEB_GRAPHICS_CONTEXT_3D_H_ | 5 #ifndef CC_TEST_FAKE_WEB_GRAPHICS_CONTEXT_3D_H_ |
6 #define CC_TEST_FAKE_WEB_GRAPHICS_CONTEXT_3D_H_ | 6 #define CC_TEST_FAKE_WEB_GRAPHICS_CONTEXT_3D_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/hash_tables.h" | 10 #include "base/hash_tables.h" |
(...skipping 15 matching lines...) Expand all Loading... |
26 const WebKit::WebGraphicsContext3D::Attributes& attributes) { | 26 const WebKit::WebGraphicsContext3D::Attributes& attributes) { |
27 return make_scoped_ptr(new FakeWebGraphicsContext3D(attributes)); | 27 return make_scoped_ptr(new FakeWebGraphicsContext3D(attributes)); |
28 } | 28 } |
29 virtual ~FakeWebGraphicsContext3D(); | 29 virtual ~FakeWebGraphicsContext3D(); |
30 | 30 |
31 virtual bool makeContextCurrent(); | 31 virtual bool makeContextCurrent(); |
32 | 32 |
33 virtual int width(); | 33 virtual int width(); |
34 virtual int height(); | 34 virtual int height(); |
35 | 35 |
36 virtual void reshape(int width, int height) {} | 36 virtual void reshape(int width, int height); |
37 | 37 |
38 virtual bool isGLES2Compliant(); | 38 virtual bool isGLES2Compliant(); |
39 | 39 |
40 virtual bool readBackFramebuffer( | 40 virtual bool readBackFramebuffer( |
41 unsigned char* pixels, | 41 unsigned char* pixels, |
42 size_t buffer_size, | 42 size_t buffer_size, |
43 WebKit::WebGLId framebuffer, | 43 WebKit::WebGLId framebuffer, |
44 int width, | 44 int width, |
45 int height); | 45 int height); |
46 | 46 |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 WebKit::WGC3Dbitfield mask, | 96 WebKit::WGC3Dbitfield mask, |
97 WebKit::WGC3Denum filter) {} | 97 WebKit::WGC3Denum filter) {} |
98 virtual void renderbufferStorageMultisampleCHROMIUM( | 98 virtual void renderbufferStorageMultisampleCHROMIUM( |
99 WebKit::WGC3Denum target, | 99 WebKit::WGC3Denum target, |
100 WebKit::WGC3Dsizei samples, | 100 WebKit::WGC3Dsizei samples, |
101 WebKit::WGC3Denum internalformat, | 101 WebKit::WGC3Denum internalformat, |
102 WebKit::WGC3Dsizei width, | 102 WebKit::WGC3Dsizei width, |
103 WebKit::WGC3Dsizei height) {} | 103 WebKit::WGC3Dsizei height) {} |
104 | 104 |
105 virtual void activeTexture(WebKit::WGC3Denum texture) {} | 105 virtual void activeTexture(WebKit::WGC3Denum texture) {} |
106 virtual void attachShader(WebKit::WebGLId program, WebKit::WebGLId shader) {} | 106 virtual void attachShader(WebKit::WebGLId program, WebKit::WebGLId shader); |
107 virtual void bindAttribLocation( | 107 virtual void bindAttribLocation( |
108 WebKit::WebGLId program, | 108 WebKit::WebGLId program, |
109 WebKit::WGC3Duint index, | 109 WebKit::WGC3Duint index, |
110 const WebKit::WGC3Dchar* name) {} | 110 const WebKit::WGC3Dchar* name) {} |
111 virtual void bindBuffer(WebKit::WGC3Denum target, WebKit::WebGLId buffer) {} | 111 virtual void bindBuffer(WebKit::WGC3Denum target, WebKit::WebGLId buffer); |
112 virtual void bindFramebuffer( | 112 virtual void bindFramebuffer( |
113 WebKit::WGC3Denum target, WebKit::WebGLId framebuffer) {} | 113 WebKit::WGC3Denum target, WebKit::WebGLId framebuffer); |
114 virtual void bindRenderbuffer( | 114 virtual void bindRenderbuffer( |
115 WebKit::WGC3Denum target, WebKit::WebGLId renderbuffer) {} | 115 WebKit::WGC3Denum target, WebKit::WebGLId renderbuffer); |
116 virtual void bindTexture( | 116 virtual void bindTexture( |
117 WebKit::WGC3Denum target, | 117 WebKit::WGC3Denum target, |
118 WebKit::WebGLId texture_id); | 118 WebKit::WebGLId texture_id); |
119 virtual void blendColor( | 119 virtual void blendColor( |
120 WebKit::WGC3Dclampf red, | 120 WebKit::WGC3Dclampf red, |
121 WebKit::WGC3Dclampf green, | 121 WebKit::WGC3Dclampf green, |
122 WebKit::WGC3Dclampf blue, | 122 WebKit::WGC3Dclampf blue, |
123 WebKit::WGC3Dclampf alpha) {} | 123 WebKit::WGC3Dclampf alpha) {} |
124 virtual void blendEquation(WebKit::WGC3Denum mode) {} | 124 virtual void blendEquation(WebKit::WGC3Denum mode) {} |
125 virtual void blendEquationSeparate( | 125 virtual void blendEquationSeparate( |
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
497 WebKit::WGC3Dint location, | 497 WebKit::WGC3Dint location, |
498 WebKit::WGC3Dsizei count, | 498 WebKit::WGC3Dsizei count, |
499 WebKit::WGC3Dboolean transpose, | 499 WebKit::WGC3Dboolean transpose, |
500 const WebKit::WGC3Dfloat* value) {} | 500 const WebKit::WGC3Dfloat* value) {} |
501 virtual void uniformMatrix4fv( | 501 virtual void uniformMatrix4fv( |
502 WebKit::WGC3Dint location, | 502 WebKit::WGC3Dint location, |
503 WebKit::WGC3Dsizei count, | 503 WebKit::WGC3Dsizei count, |
504 WebKit::WGC3Dboolean transpose, | 504 WebKit::WGC3Dboolean transpose, |
505 const WebKit::WGC3Dfloat* value) {} | 505 const WebKit::WGC3Dfloat* value) {} |
506 | 506 |
507 virtual void useProgram(WebKit::WebGLId program) {} | 507 virtual void useProgram(WebKit::WebGLId program); |
508 virtual void validateProgram(WebKit::WebGLId program) {} | 508 virtual void validateProgram(WebKit::WebGLId program) {} |
509 | 509 |
510 virtual void vertexAttrib1f(WebKit::WGC3Duint index, WebKit::WGC3Dfloat x) {} | 510 virtual void vertexAttrib1f(WebKit::WGC3Duint index, WebKit::WGC3Dfloat x) {} |
511 virtual void vertexAttrib1fv( | 511 virtual void vertexAttrib1fv( |
512 WebKit::WGC3Duint index, | 512 WebKit::WGC3Duint index, |
513 const WebKit::WGC3Dfloat* values) {} | 513 const WebKit::WGC3Dfloat* values) {} |
514 virtual void vertexAttrib2f( | 514 virtual void vertexAttrib2f( |
515 WebKit::WGC3Duint index, | 515 WebKit::WGC3Duint index, |
516 WebKit::WGC3Dfloat x, | 516 WebKit::WGC3Dfloat x, |
517 WebKit::WGC3Dfloat y) {} | 517 WebKit::WGC3Dfloat y) {} |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
549 WebKit::WGC3Dsizei width, | 549 WebKit::WGC3Dsizei width, |
550 WebKit::WGC3Dsizei height) {} | 550 WebKit::WGC3Dsizei height) {} |
551 | 551 |
552 virtual WebKit::WebGLId createBuffer(); | 552 virtual WebKit::WebGLId createBuffer(); |
553 virtual WebKit::WebGLId createFramebuffer(); | 553 virtual WebKit::WebGLId createFramebuffer(); |
554 virtual WebKit::WebGLId createProgram(); | 554 virtual WebKit::WebGLId createProgram(); |
555 virtual WebKit::WebGLId createRenderbuffer(); | 555 virtual WebKit::WebGLId createRenderbuffer(); |
556 virtual WebKit::WebGLId createShader(WebKit::WGC3Denum); | 556 virtual WebKit::WebGLId createShader(WebKit::WGC3Denum); |
557 virtual WebKit::WebGLId createTexture(); | 557 virtual WebKit::WebGLId createTexture(); |
558 | 558 |
559 virtual void deleteBuffer(WebKit::WebGLId) {} | 559 virtual void deleteBuffer(WebKit::WebGLId id); |
560 virtual void deleteFramebuffer(WebKit::WebGLId) {} | 560 virtual void deleteFramebuffer(WebKit::WebGLId id); |
561 virtual void deleteProgram(WebKit::WebGLId) {} | 561 virtual void deleteProgram(WebKit::WebGLId id); |
562 virtual void deleteRenderbuffer(WebKit::WebGLId) {} | 562 virtual void deleteRenderbuffer(WebKit::WebGLId id); |
563 virtual void deleteShader(WebKit::WebGLId) {} | 563 virtual void deleteShader(WebKit::WebGLId id); |
564 virtual void deleteTexture(WebKit::WebGLId texture_id); | 564 virtual void deleteTexture(WebKit::WebGLId texture_id); |
565 | 565 |
566 virtual void texStorage2DEXT( | 566 virtual void texStorage2DEXT( |
567 WebKit::WGC3Denum target, | 567 WebKit::WGC3Denum target, |
568 WebKit::WGC3Dint levels, | 568 WebKit::WGC3Dint levels, |
569 WebKit::WGC3Duint internalformat, | 569 WebKit::WGC3Duint internalformat, |
570 WebKit::WGC3Dint width, | 570 WebKit::WGC3Dint width, |
571 WebKit::WGC3Dint height) {} | 571 WebKit::WGC3Dint height) {} |
572 | 572 |
573 virtual WebKit::WebGLId createQueryEXT(); | 573 virtual WebKit::WebGLId createQueryEXT(); |
574 virtual void deleteQueryEXT(WebKit::WebGLId query) {} | 574 virtual void deleteQueryEXT(WebKit::WebGLId query) {} |
575 virtual WebKit::WGC3Dboolean isQueryEXT(WebKit::WebGLId query); | 575 virtual WebKit::WGC3Dboolean isQueryEXT(WebKit::WebGLId query); |
576 virtual void beginQueryEXT( | 576 virtual void beginQueryEXT( |
577 WebKit::WGC3Denum target, | 577 WebKit::WGC3Denum target, |
578 WebKit::WebGLId query) {} | 578 WebKit::WebGLId query) {} |
579 virtual void endQueryEXT(WebKit::WGC3Denum target) {} | 579 virtual void endQueryEXT(WebKit::WGC3Denum target); |
580 virtual void getQueryivEXT( | 580 virtual void getQueryivEXT( |
581 WebKit::WGC3Denum target, | 581 WebKit::WGC3Denum target, |
582 WebKit::WGC3Denum pname, | 582 WebKit::WGC3Denum pname, |
583 WebKit::WGC3Dint* params) {} | 583 WebKit::WGC3Dint* params) {} |
584 virtual void getQueryObjectuivEXT( | 584 virtual void getQueryObjectuivEXT( |
585 WebKit::WebGLId, | 585 WebKit::WebGLId query, |
586 WebKit::WGC3Denum, | 586 WebKit::WGC3Denum pname, |
587 WebKit::WGC3Duint*) {} | 587 WebKit::WGC3Duint* params); |
588 | 588 |
589 virtual void SetContextLostCallback( | 589 virtual void setContextLostCallback( |
590 WebGraphicsContextLostCallback* callback); | 590 WebGraphicsContextLostCallback* callback); |
591 | 591 |
592 virtual void loseContextCHROMIUM(); | 592 virtual void loseContextCHROMIUM(); |
593 | 593 |
| 594 // When set, MakeCurrent() will fail after this many times. |
| 595 void set_times_make_current_succeeds(int times) { |
| 596 times_make_current_succeeds_ = times; |
| 597 } |
| 598 void set_times_bind_texture_succeeds(int times) { |
| 599 times_bind_texture_succeeds_ = times; |
| 600 } |
| 601 void set_times_end_query_succeeds(int times) { |
| 602 times_end_query_succeeds_ = times; |
| 603 } |
| 604 |
594 size_t NumTextures() const { return textures_.size(); } | 605 size_t NumTextures() const { return textures_.size(); } |
595 WebKit::WebGLId TextureAt(int i) const { return textures_[i]; } | 606 WebKit::WebGLId TextureAt(int i) const { return textures_[i]; } |
596 | 607 |
597 size_t NumUsedTextures() const { return used_textures_.size(); } | 608 size_t NumUsedTextures() const { return used_textures_.size(); } |
598 bool UsedTexture(int texture) const { | 609 bool UsedTexture(int texture) const { |
599 return ContainsKey(used_textures_, texture); | 610 return ContainsKey(used_textures_, texture); |
600 } | 611 } |
601 void ResetUsedTextures() { used_textures_.clear(); } | 612 void ResetUsedTextures() { used_textures_.clear(); } |
602 | 613 |
| 614 void set_have_extension_io_surface(bool have) { |
| 615 have_extension_io_surface_ = have; |
| 616 } |
| 617 void set_have_extension_egl_image(bool have) { |
| 618 have_extension_egl_image_ = have; |
| 619 } |
| 620 |
| 621 static const WebKit::WebGLId kExternalTextureId; |
| 622 virtual WebKit::WebGLId NextTextureId(); |
| 623 |
603 protected: | 624 protected: |
604 FakeWebGraphicsContext3D(); | 625 FakeWebGraphicsContext3D(); |
605 FakeWebGraphicsContext3D( | 626 FakeWebGraphicsContext3D( |
606 const WebKit::WebGraphicsContext3D::Attributes& attributes); | 627 const WebKit::WebGraphicsContext3D::Attributes& attributes); |
607 | 628 |
| 629 unsigned context_id_; |
608 unsigned next_texture_id_; | 630 unsigned next_texture_id_; |
609 Attributes attributes_; | 631 Attributes attributes_; |
| 632 bool have_extension_io_surface_; |
| 633 bool have_extension_egl_image_; |
| 634 int times_make_current_succeeds_; |
| 635 int times_bind_texture_succeeds_; |
| 636 int times_end_query_succeeds_; |
610 bool context_lost_; | 637 bool context_lost_; |
611 WebGraphicsContextLostCallback* context_lost_callback_; | 638 WebGraphicsContextLostCallback* context_lost_callback_; |
612 std::vector<WebKit::WebGLId> textures_; | 639 std::vector<WebKit::WebGLId> textures_; |
613 base::hash_set<WebKit::WebGLId> used_textures_; | 640 base::hash_set<WebKit::WebGLId> used_textures_; |
| 641 int width_; |
| 642 int height_; |
614 }; | 643 }; |
615 | 644 |
616 } // namespace cc | 645 } // namespace cc |
617 | 646 |
618 #endif // CC_TEST_FAKE_WEB_GRAPHICS_CONTEXT_3D_H_ | 647 #endif // CC_TEST_FAKE_WEB_GRAPHICS_CONTEXT_3D_H_ |
OLD | NEW |