Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(454)

Side by Side Diff: cc/output/gl_renderer_unittest.cc

Issue 133023002: Remove unnecessary use of blink typedefs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | cc/test/fake_web_graphics_context_3d.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 #include "cc/output/gl_renderer.h" 5 #include "cc/output/gl_renderer.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "cc/base/math_util.h" 9 #include "cc/base/math_util.h"
10 #include "cc/output/compositor_frame_metadata.h" 10 #include "cc/output/compositor_frame_metadata.h"
(...skipping 22 matching lines...) Expand all
33 using testing::_; 33 using testing::_;
34 using testing::AnyNumber; 34 using testing::AnyNumber;
35 using testing::Args; 35 using testing::Args;
36 using testing::AtLeast; 36 using testing::AtLeast;
37 using testing::ElementsAre; 37 using testing::ElementsAre;
38 using testing::Expectation; 38 using testing::Expectation;
39 using testing::InSequence; 39 using testing::InSequence;
40 using testing::Mock; 40 using testing::Mock;
41 using testing::Return; 41 using testing::Return;
42 using testing::StrictMock; 42 using testing::StrictMock;
43 using blink::WebGLId;
44 using blink::WebString; 43 using blink::WebString;
45 using blink::WGC3Dbitfield;
46 using blink::WGC3Dboolean;
47 using blink::WGC3Dchar;
48 using blink::WGC3Denum;
49 using blink::WGC3Dfloat;
50 using blink::WGC3Dint;
51 using blink::WGC3Dintptr;
52 using blink::WGC3Dsizei;
53 using blink::WGC3Dsizeiptr;
54 using blink::WGC3Duint;
55 44
56 namespace cc { 45 namespace cc {
57 46
58 class GLRendererTest : public testing::Test { 47 class GLRendererTest : public testing::Test {
59 protected: 48 protected:
60 RenderPass* root_render_pass() { return render_passes_in_draw_order_.back(); } 49 RenderPass* root_render_pass() { return render_passes_in_draw_order_.back(); }
61 50
62 RenderPassList render_passes_in_draw_order_; 51 RenderPassList render_passes_in_draw_order_;
63 }; 52 };
64 53
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 viewport_rect, 390 viewport_rect,
402 true, 391 true,
403 false); 392 false);
404 EXPECT_TRUE(renderer_->stencil_enabled()); 393 EXPECT_TRUE(renderer_->stencil_enabled());
405 } 394 }
406 395
407 class ForbidSynchronousCallContext : public TestWebGraphicsContext3D { 396 class ForbidSynchronousCallContext : public TestWebGraphicsContext3D {
408 public: 397 public:
409 ForbidSynchronousCallContext() {} 398 ForbidSynchronousCallContext() {}
410 399
411 virtual bool getActiveAttrib(WebGLId program, 400 virtual bool getActiveAttrib(GLuint program,
412 WGC3Duint index, 401 GLuint index,
413 blink::WebGraphicsContext3D::ActiveInfo& info) 402 blink::WebGraphicsContext3D::ActiveInfo& info)
414 OVERRIDE { 403 OVERRIDE {
415 ADD_FAILURE(); 404 ADD_FAILURE();
416 return false; 405 return false;
417 } 406 }
418 virtual bool getActiveUniform(WebGLId program, 407 virtual bool getActiveUniform(GLuint program,
419 WGC3Duint index, 408 GLuint index,
420 blink::WebGraphicsContext3D::ActiveInfo& info) 409 blink::WebGraphicsContext3D::ActiveInfo& info)
421 OVERRIDE { 410 OVERRIDE {
422 ADD_FAILURE(); 411 ADD_FAILURE();
423 return false; 412 return false;
424 } 413 }
425 virtual void getAttachedShaders(WebGLId program, 414 virtual void getAttachedShaders(GLuint program,
426 WGC3Dsizei max_count, 415 GLsizei max_count,
427 WGC3Dsizei* count, 416 GLsizei* count,
428 WebGLId* shaders) OVERRIDE { 417 GLuint* shaders) OVERRIDE {
429 ADD_FAILURE(); 418 ADD_FAILURE();
430 } 419 }
431 virtual WGC3Dint getAttribLocation(WebGLId program, 420 virtual GLint getAttribLocation(GLuint program, const GLchar* name) OVERRIDE {
432 const WGC3Dchar* name) OVERRIDE {
433 ADD_FAILURE(); 421 ADD_FAILURE();
434 return 0; 422 return 0;
435 } 423 }
436 virtual void getBooleanv(WGC3Denum pname, WGC3Dboolean* value) OVERRIDE { 424 virtual void getBooleanv(GLenum pname, GLboolean* value) OVERRIDE {
437 ADD_FAILURE(); 425 ADD_FAILURE();
438 } 426 }
439 virtual void getBufferParameteriv(WGC3Denum target, 427 virtual void getBufferParameteriv(GLenum target,
440 WGC3Denum pname, 428 GLenum pname,
441 WGC3Dint* value) OVERRIDE { 429 GLint* value) OVERRIDE {
442 ADD_FAILURE(); 430 ADD_FAILURE();
443 } 431 }
444 virtual WGC3Denum getError() OVERRIDE { 432 virtual GLenum getError() OVERRIDE {
445 ADD_FAILURE(); 433 ADD_FAILURE();
446 return 0; 434 return GL_NO_ERROR;
447 } 435 }
448 virtual void getFloatv(WGC3Denum pname, WGC3Dfloat* value) OVERRIDE { 436 virtual void getFloatv(GLenum pname, GLfloat* value) OVERRIDE {
449 ADD_FAILURE(); 437 ADD_FAILURE();
450 } 438 }
451 virtual void getFramebufferAttachmentParameteriv(WGC3Denum target, 439 virtual void getFramebufferAttachmentParameteriv(GLenum target,
452 WGC3Denum attachment, 440 GLenum attachment,
453 WGC3Denum pname, 441 GLenum pname,
454 WGC3Dint* value) OVERRIDE { 442 GLint* value) OVERRIDE {
455 ADD_FAILURE(); 443 ADD_FAILURE();
456 } 444 }
457 virtual void getIntegerv(WGC3Denum pname, WGC3Dint* value) OVERRIDE { 445 virtual void getIntegerv(GLenum pname, GLint* value) OVERRIDE {
458 if (pname == GL_MAX_TEXTURE_SIZE) { 446 if (pname == GL_MAX_TEXTURE_SIZE) {
459 // MAX_TEXTURE_SIZE is cached client side, so it's OK to query. 447 // MAX_TEXTURE_SIZE is cached client side, so it's OK to query.
460 *value = 1024; 448 *value = 1024;
461 } else { 449 } else {
462 ADD_FAILURE(); 450 ADD_FAILURE();
463 } 451 }
464 } 452 }
465 453
466 // We allow querying the shader compilation and program link status in debug 454 // We allow querying the shader compilation and program link status in debug
467 // mode, but not release. 455 // mode, but not release.
468 virtual void getProgramiv(WebGLId program, 456 virtual void getProgramiv(GLuint program,
469 WGC3Denum pname, 457 GLenum pname,
470 WGC3Dint* value) OVERRIDE { 458 GLint* value) OVERRIDE {
471 #ifndef NDEBUG 459 #ifndef NDEBUG
472 *value = 1; 460 *value = 1;
473 #else 461 #else
474 ADD_FAILURE(); 462 ADD_FAILURE();
475 #endif 463 #endif
476 } 464 }
477 465
478 virtual void getShaderiv(WebGLId shader, 466 virtual void getShaderiv(GLuint shader, GLenum pname, GLint* value) OVERRIDE {
479 WGC3Denum pname,
480 WGC3Dint* value) OVERRIDE {
481 #ifndef NDEBUG 467 #ifndef NDEBUG
482 *value = 1; 468 *value = 1;
483 #else 469 #else
484 ADD_FAILURE(); 470 ADD_FAILURE();
485 #endif 471 #endif
486 } 472 }
487 473
488 virtual WebString getString(WGC3Denum name) OVERRIDE { 474 virtual WebString getString(GLenum name) OVERRIDE {
489 ADD_FAILURE() << name; 475 ADD_FAILURE() << name;
490 return WebString(); 476 return WebString();
491 } 477 }
492 478
493 virtual WebString getProgramInfoLog(WebGLId program) OVERRIDE { 479 virtual WebString getProgramInfoLog(GLuint program) OVERRIDE {
494 ADD_FAILURE(); 480 ADD_FAILURE();
495 return WebString(); 481 return WebString();
496 } 482 }
497 virtual void getRenderbufferParameteriv(WGC3Denum target, 483 virtual void getRenderbufferParameteriv(GLenum target,
498 WGC3Denum pname, 484 GLenum pname,
499 WGC3Dint* value) OVERRIDE { 485 GLint* value) OVERRIDE {
500 ADD_FAILURE(); 486 ADD_FAILURE();
501 } 487 }
502 488
503 virtual WebString getShaderInfoLog(WebGLId shader) OVERRIDE { 489 virtual WebString getShaderInfoLog(GLuint shader) OVERRIDE {
504 ADD_FAILURE(); 490 ADD_FAILURE();
505 return WebString(); 491 return WebString();
506 } 492 }
507 virtual void getShaderPrecisionFormat(WGC3Denum shadertype, 493 virtual void getShaderPrecisionFormat(GLenum shadertype,
508 WGC3Denum precisiontype, 494 GLenum precisiontype,
509 WGC3Dint* range, 495 GLint* range,
510 WGC3Dint* precision) OVERRIDE { 496 GLint* precision) OVERRIDE {
511 ADD_FAILURE(); 497 ADD_FAILURE();
512 } 498 }
513 virtual WebString getShaderSource(WebGLId shader) OVERRIDE { 499 virtual WebString getShaderSource(GLuint shader) OVERRIDE {
514 ADD_FAILURE(); 500 ADD_FAILURE();
515 return WebString(); 501 return WebString();
516 } 502 }
517 virtual void getTexParameterfv(WGC3Denum target, 503 virtual void getTexParameterfv(GLenum target,
518 WGC3Denum pname, 504 GLenum pname,
519 WGC3Dfloat* value) OVERRIDE { 505 GLfloat* value) OVERRIDE {
520 ADD_FAILURE(); 506 ADD_FAILURE();
521 } 507 }
522 virtual void getTexParameteriv(WGC3Denum target, 508 virtual void getTexParameteriv(GLenum target,
523 WGC3Denum pname, 509 GLenum pname,
524 WGC3Dint* value) OVERRIDE { 510 GLint* value) OVERRIDE {
525 ADD_FAILURE(); 511 ADD_FAILURE();
526 } 512 }
527 virtual void getUniformfv(WebGLId program, 513 virtual void getUniformfv(GLuint program,
528 WGC3Dint location, 514 GLint location,
529 WGC3Dfloat* value) OVERRIDE { 515 GLfloat* value) OVERRIDE {
530 ADD_FAILURE(); 516 ADD_FAILURE();
531 } 517 }
532 virtual void getUniformiv(WebGLId program, 518 virtual void getUniformiv(GLuint program,
533 WGC3Dint location, 519 GLint location,
534 WGC3Dint* value) OVERRIDE { 520 GLint* value) OVERRIDE {
535 ADD_FAILURE(); 521 ADD_FAILURE();
536 } 522 }
537 virtual WGC3Dint getUniformLocation(WebGLId program, 523 virtual GLint getUniformLocation(GLuint program,
538 const WGC3Dchar* name) OVERRIDE { 524 const GLchar* name) OVERRIDE {
539 ADD_FAILURE(); 525 ADD_FAILURE();
540 return 0; 526 return 0;
541 } 527 }
542 virtual void getVertexAttribfv(WGC3Duint index, 528 virtual void getVertexAttribfv(GLuint index,
543 WGC3Denum pname, 529 GLenum pname,
544 WGC3Dfloat* value) OVERRIDE { 530 GLfloat* value) OVERRIDE {
545 ADD_FAILURE(); 531 ADD_FAILURE();
546 } 532 }
547 virtual void getVertexAttribiv(WGC3Duint index, 533 virtual void getVertexAttribiv(GLuint index,
548 WGC3Denum pname, 534 GLenum pname,
549 WGC3Dint* value) OVERRIDE { 535 GLint* value) OVERRIDE {
550 ADD_FAILURE(); 536 ADD_FAILURE();
551 } 537 }
552 virtual WGC3Dsizeiptr getVertexAttribOffset(WGC3Duint index, 538 virtual GLsizeiptr getVertexAttribOffset(GLuint index,
553 WGC3Denum pname) OVERRIDE { 539 GLenum pname) OVERRIDE {
554 ADD_FAILURE(); 540 ADD_FAILURE();
555 return 0; 541 return 0;
556 } 542 }
557 }; 543 };
558 TEST_F(GLRendererTest, InitializationDoesNotMakeSynchronousCalls) { 544 TEST_F(GLRendererTest, InitializationDoesNotMakeSynchronousCalls) {
559 FakeOutputSurfaceClient output_surface_client; 545 FakeOutputSurfaceClient output_surface_client;
560 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 546 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
561 scoped_ptr<TestWebGraphicsContext3D>(new ForbidSynchronousCallContext))); 547 scoped_ptr<TestWebGraphicsContext3D>(new ForbidSynchronousCallContext)));
562 CHECK(output_surface->BindToClient(&output_surface_client)); 548 CHECK(output_surface->BindToClient(&output_surface_client));
563 549
564 scoped_ptr<ResourceProvider> resource_provider( 550 scoped_ptr<ResourceProvider> resource_provider(
565 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 551 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1));
566 552
567 LayerTreeSettings settings; 553 LayerTreeSettings settings;
568 FakeRendererClient renderer_client; 554 FakeRendererClient renderer_client;
569 FakeRendererGL renderer(&renderer_client, 555 FakeRendererGL renderer(&renderer_client,
570 &settings, 556 &settings,
571 output_surface.get(), 557 output_surface.get(),
572 resource_provider.get()); 558 resource_provider.get());
573 } 559 }
574 560
575 class LoseContextOnFirstGetContext : public TestWebGraphicsContext3D { 561 class LoseContextOnFirstGetContext : public TestWebGraphicsContext3D {
576 public: 562 public:
577 LoseContextOnFirstGetContext() {} 563 LoseContextOnFirstGetContext() {}
578 564
579 virtual void getProgramiv(WebGLId program, 565 virtual void getProgramiv(GLuint program,
580 WGC3Denum pname, 566 GLenum pname,
581 WGC3Dint* value) OVERRIDE { 567 GLint* value) OVERRIDE {
582 context_lost_ = true; 568 context_lost_ = true;
583 *value = 0; 569 *value = 0;
584 } 570 }
585 571
586 virtual void getShaderiv(WebGLId shader, 572 virtual void getShaderiv(GLuint shader, GLenum pname, GLint* value) OVERRIDE {
587 WGC3Denum pname,
588 WGC3Dint* value) OVERRIDE {
589 context_lost_ = true; 573 context_lost_ = true;
590 *value = 0; 574 *value = 0;
591 } 575 }
592 }; 576 };
593 577
594 TEST_F(GLRendererTest, InitializationWithQuicklyLostContextDoesNotAssert) { 578 TEST_F(GLRendererTest, InitializationWithQuicklyLostContextDoesNotAssert) {
595 FakeOutputSurfaceClient output_surface_client; 579 FakeOutputSurfaceClient output_surface_client;
596 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 580 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
597 scoped_ptr<TestWebGraphicsContext3D>(new LoseContextOnFirstGetContext))); 581 scoped_ptr<TestWebGraphicsContext3D>(new LoseContextOnFirstGetContext)));
598 CHECK(output_surface->BindToClient(&output_surface_client)); 582 CHECK(output_surface->BindToClient(&output_surface_client));
599 583
600 scoped_ptr<ResourceProvider> resource_provider( 584 scoped_ptr<ResourceProvider> resource_provider(
601 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 585 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1));
602 586
603 LayerTreeSettings settings; 587 LayerTreeSettings settings;
604 FakeRendererClient renderer_client; 588 FakeRendererClient renderer_client;
605 FakeRendererGL renderer(&renderer_client, 589 FakeRendererGL renderer(&renderer_client,
606 &settings, 590 &settings,
607 output_surface.get(), 591 output_surface.get(),
608 resource_provider.get()); 592 resource_provider.get());
609 } 593 }
610 594
611 class ClearCountingContext : public TestWebGraphicsContext3D { 595 class ClearCountingContext : public TestWebGraphicsContext3D {
612 public: 596 public:
613 ClearCountingContext() { test_capabilities_.discard_framebuffer = true; } 597 ClearCountingContext() { test_capabilities_.discard_framebuffer = true; }
614 598
615 MOCK_METHOD3(discardFramebufferEXT, 599 MOCK_METHOD3(discardFramebufferEXT,
616 void(WGC3Denum target, 600 void(GLenum target,
617 WGC3Dsizei numAttachments, 601 GLsizei numAttachments,
618 const WGC3Denum* attachments)); 602 const GLenum* attachments));
619 MOCK_METHOD1(clear, void(WGC3Dbitfield mask)); 603 MOCK_METHOD1(clear, void(GLbitfield mask));
620 }; 604 };
621 605
622 TEST_F(GLRendererTest, OpaqueBackground) { 606 TEST_F(GLRendererTest, OpaqueBackground) {
623 scoped_ptr<ClearCountingContext> context_owned(new ClearCountingContext); 607 scoped_ptr<ClearCountingContext> context_owned(new ClearCountingContext);
624 ClearCountingContext* context = context_owned.get(); 608 ClearCountingContext* context = context_owned.get();
625 609
626 FakeOutputSurfaceClient output_surface_client; 610 FakeOutputSurfaceClient output_surface_client;
627 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 611 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
628 context_owned.PassAs<TestWebGraphicsContext3D>())); 612 context_owned.PassAs<TestWebGraphicsContext3D>()));
629 CHECK(output_surface->BindToClient(&output_surface_client)); 613 CHECK(output_surface->BindToClient(&output_surface_client));
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
742 false); 726 false);
743 Mock::VerifyAndClearExpectations(context); 727 Mock::VerifyAndClearExpectations(context);
744 } 728 }
745 729
746 class VisibilityChangeIsLastCallTrackingContext 730 class VisibilityChangeIsLastCallTrackingContext
747 : public TestWebGraphicsContext3D { 731 : public TestWebGraphicsContext3D {
748 public: 732 public:
749 VisibilityChangeIsLastCallTrackingContext() 733 VisibilityChangeIsLastCallTrackingContext()
750 : last_call_was_set_visibility_(false) {} 734 : last_call_was_set_visibility_(false) {}
751 735
752 // WebGraphicsContext3D methods. 736 // TestWebGraphicsContext3D methods.
753 virtual void flush() OVERRIDE { last_call_was_set_visibility_ = false; } 737 virtual void flush() OVERRIDE { last_call_was_set_visibility_ = false; }
754 virtual void deleteTexture(WebGLId) OVERRIDE { 738 virtual void deleteTexture(GLuint) OVERRIDE {
755 last_call_was_set_visibility_ = false; 739 last_call_was_set_visibility_ = false;
756 } 740 }
757 virtual void deleteFramebuffer(WebGLId) OVERRIDE { 741 virtual void deleteFramebuffer(GLuint) OVERRIDE {
758 last_call_was_set_visibility_ = false; 742 last_call_was_set_visibility_ = false;
759 } 743 }
760 virtual void deleteQueryEXT(WebGLId) OVERRIDE { 744 virtual void deleteQueryEXT(GLuint) OVERRIDE {
761 last_call_was_set_visibility_ = false; 745 last_call_was_set_visibility_ = false;
762 } 746 }
763 virtual void deleteRenderbuffer(WebGLId) OVERRIDE { 747 virtual void deleteRenderbuffer(GLuint) OVERRIDE {
764 last_call_was_set_visibility_ = false; 748 last_call_was_set_visibility_ = false;
765 } 749 }
766 750
767 // Methods added for test. 751 // Methods added for test.
768 void set_last_call_was_visibility(bool visible) { 752 void set_last_call_was_visibility(bool visible) {
769 DCHECK(last_call_was_set_visibility_ == false); 753 DCHECK(last_call_was_set_visibility_ == false);
770 last_call_was_set_visibility_ = true; 754 last_call_was_set_visibility_ = true;
771 } 755 }
772 bool last_call_was_set_visibility() const { 756 bool last_call_was_set_visibility() const {
773 return last_call_was_set_visibility_; 757 return last_call_was_set_visibility_;
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
826 renderer.SetVisible(false); 810 renderer.SetVisible(false);
827 EXPECT_TRUE(context->last_call_was_set_visibility()); 811 EXPECT_TRUE(context->last_call_was_set_visibility());
828 } 812 }
829 813
830 class TextureStateTrackingContext : public TestWebGraphicsContext3D { 814 class TextureStateTrackingContext : public TestWebGraphicsContext3D {
831 public: 815 public:
832 TextureStateTrackingContext() : active_texture_(GL_INVALID_ENUM) { 816 TextureStateTrackingContext() : active_texture_(GL_INVALID_ENUM) {
833 test_capabilities_.egl_image_external = true; 817 test_capabilities_.egl_image_external = true;
834 } 818 }
835 819
836 MOCK_METHOD3(texParameteri, 820 MOCK_METHOD3(texParameteri, void(GLenum target, GLenum pname, GLint param));
837 void(WGC3Denum target, WGC3Denum pname, WGC3Dint param));
838 MOCK_METHOD4(drawElements, 821 MOCK_METHOD4(drawElements,
839 void(WGC3Denum mode, 822 void(GLenum mode, GLsizei count, GLenum type, GLintptr offset));
840 WGC3Dsizei count,
841 WGC3Denum type,
842 WGC3Dintptr offset));
843 823
844 virtual void activeTexture(WGC3Denum texture) { 824 virtual void activeTexture(GLenum texture) {
845 EXPECT_NE(texture, active_texture_); 825 EXPECT_NE(texture, active_texture_);
846 active_texture_ = texture; 826 active_texture_ = texture;
847 } 827 }
848 828
849 WGC3Denum active_texture() const { return active_texture_; } 829 GLenum active_texture() const { return active_texture_; }
850 830
851 private: 831 private:
852 WGC3Denum active_texture_; 832 GLenum active_texture_;
853 }; 833 };
854 834
855 TEST_F(GLRendererTest, ActiveTextureState) { 835 TEST_F(GLRendererTest, ActiveTextureState) {
856 scoped_ptr<TextureStateTrackingContext> context_owned( 836 scoped_ptr<TextureStateTrackingContext> context_owned(
857 new TextureStateTrackingContext); 837 new TextureStateTrackingContext);
858 TextureStateTrackingContext* context = context_owned.get(); 838 TextureStateTrackingContext* context = context_owned.get();
859 839
860 FakeOutputSurfaceClient output_surface_client; 840 FakeOutputSurfaceClient output_surface_client;
861 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 841 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
862 context_owned.PassAs<TestWebGraphicsContext3D>())); 842 context_owned.PassAs<TestWebGraphicsContext3D>()));
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
919 1.f, 899 1.f,
920 viewport_rect, 900 viewport_rect,
921 viewport_rect, 901 viewport_rect,
922 true, 902 true,
923 false); 903 false);
924 Mock::VerifyAndClearExpectations(context); 904 Mock::VerifyAndClearExpectations(context);
925 } 905 }
926 906
927 class NoClearRootRenderPassMockContext : public TestWebGraphicsContext3D { 907 class NoClearRootRenderPassMockContext : public TestWebGraphicsContext3D {
928 public: 908 public:
929 MOCK_METHOD1(clear, void(WGC3Dbitfield mask)); 909 MOCK_METHOD1(clear, void(GLbitfield mask));
930 MOCK_METHOD4(drawElements, 910 MOCK_METHOD4(drawElements,
931 void(WGC3Denum mode, 911 void(GLenum mode, GLsizei count, GLenum type, GLintptr offset));
932 WGC3Dsizei count,
933 WGC3Denum type,
934 WGC3Dintptr offset));
935 }; 912 };
936 913
937 TEST_F(GLRendererTest, ShouldClearRootRenderPass) { 914 TEST_F(GLRendererTest, ShouldClearRootRenderPass) {
938 scoped_ptr<NoClearRootRenderPassMockContext> mock_context_owned( 915 scoped_ptr<NoClearRootRenderPassMockContext> mock_context_owned(
939 new NoClearRootRenderPassMockContext); 916 new NoClearRootRenderPassMockContext);
940 NoClearRootRenderPassMockContext* mock_context = mock_context_owned.get(); 917 NoClearRootRenderPassMockContext* mock_context = mock_context_owned.get();
941 918
942 FakeOutputSurfaceClient output_surface_client; 919 FakeOutputSurfaceClient output_surface_client;
943 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 920 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
944 mock_context_owned.PassAs<TestWebGraphicsContext3D>())); 921 mock_context_owned.PassAs<TestWebGraphicsContext3D>()));
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1004 981
1005 // In multiple render passes all but the root pass should clear the 982 // In multiple render passes all but the root pass should clear the
1006 // framebuffer. 983 // framebuffer.
1007 Mock::VerifyAndClearExpectations(&mock_context); 984 Mock::VerifyAndClearExpectations(&mock_context);
1008 } 985 }
1009 986
1010 class ScissorTestOnClearCheckingContext : public TestWebGraphicsContext3D { 987 class ScissorTestOnClearCheckingContext : public TestWebGraphicsContext3D {
1011 public: 988 public:
1012 ScissorTestOnClearCheckingContext() : scissor_enabled_(false) {} 989 ScissorTestOnClearCheckingContext() : scissor_enabled_(false) {}
1013 990
1014 virtual void clear(WGC3Dbitfield) OVERRIDE { EXPECT_FALSE(scissor_enabled_); } 991 virtual void clear(GLbitfield) OVERRIDE { EXPECT_FALSE(scissor_enabled_); }
1015 992
1016 virtual void enable(WGC3Denum cap) OVERRIDE { 993 virtual void enable(GLenum cap) OVERRIDE {
1017 if (cap == GL_SCISSOR_TEST) 994 if (cap == GL_SCISSOR_TEST)
1018 scissor_enabled_ = true; 995 scissor_enabled_ = true;
1019 } 996 }
1020 997
1021 virtual void disable(WGC3Denum cap) OVERRIDE { 998 virtual void disable(GLenum cap) OVERRIDE {
1022 if (cap == GL_SCISSOR_TEST) 999 if (cap == GL_SCISSOR_TEST)
1023 scissor_enabled_ = false; 1000 scissor_enabled_ = false;
1024 } 1001 }
1025 1002
1026 private: 1003 private:
1027 bool scissor_enabled_; 1004 bool scissor_enabled_;
1028 }; 1005 };
1029 1006
1030 TEST_F(GLRendererTest, ScissorTestWhenClearing) { 1007 TEST_F(GLRendererTest, ScissorTestWhenClearing) {
1031 scoped_ptr<ScissorTestOnClearCheckingContext> context_owned( 1008 scoped_ptr<ScissorTestOnClearCheckingContext> context_owned(
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1086 false); 1063 false);
1087 } 1064 }
1088 1065
1089 class DiscardCheckingContext : public TestWebGraphicsContext3D { 1066 class DiscardCheckingContext : public TestWebGraphicsContext3D {
1090 public: 1067 public:
1091 DiscardCheckingContext() : discarded_(0) { 1068 DiscardCheckingContext() : discarded_(0) {
1092 set_have_post_sub_buffer(true); 1069 set_have_post_sub_buffer(true);
1093 set_have_discard_framebuffer(true); 1070 set_have_discard_framebuffer(true);
1094 } 1071 }
1095 1072
1096 virtual void discardFramebufferEXT(WGC3Denum target, 1073 virtual void discardFramebufferEXT(GLenum target,
1097 WGC3Dsizei numAttachments, 1074 GLsizei numAttachments,
1098 const WGC3Denum* attachments) OVERRIDE { 1075 const GLenum* attachments) OVERRIDE {
1099 ++discarded_; 1076 ++discarded_;
1100 } 1077 }
1101 1078
1102 int discarded() const { return discarded_; } 1079 int discarded() const { return discarded_; }
1103 void reset() { discarded_ = 0; } 1080 void reset() { discarded_ = 0; }
1104 1081
1105 private: 1082 private:
1106 int discarded_; 1083 int discarded_;
1107 }; 1084 };
1108 1085
(...skipping 592 matching lines...) Expand 10 before | Expand all | Expand 10 after
1701 1678
1702 TestSolidColorProgramAA(); 1679 TestSolidColorProgramAA();
1703 } 1680 }
1704 1681
1705 class OutputSurfaceMockContext : public TestWebGraphicsContext3D { 1682 class OutputSurfaceMockContext : public TestWebGraphicsContext3D {
1706 public: 1683 public:
1707 OutputSurfaceMockContext() { test_capabilities_.post_sub_buffer = true; } 1684 OutputSurfaceMockContext() { test_capabilities_.post_sub_buffer = true; }
1708 1685
1709 // Specifically override methods even if they are unused (used in conjunction 1686 // Specifically override methods even if they are unused (used in conjunction
1710 // with StrictMock). We need to make sure that GLRenderer does not issue 1687 // with StrictMock). We need to make sure that GLRenderer does not issue
1711 // framebuffer-related GL calls directly. Instead these are supposed to go 1688 // framebuffer-related GLuint calls directly. Instead these are supposed to go
1712 // through the OutputSurface abstraction. 1689 // through the OutputSurface abstraction.
1713 MOCK_METHOD2(bindFramebuffer, void(WGC3Denum target, WebGLId framebuffer)); 1690 MOCK_METHOD2(bindFramebuffer, void(GLenum target, GLuint framebuffer));
1714 MOCK_METHOD3(reshapeWithScaleFactor, 1691 MOCK_METHOD3(reshapeWithScaleFactor,
1715 void(int width, int height, float scale_factor)); 1692 void(int width, int height, float scale_factor));
1716 MOCK_METHOD4(drawElements, 1693 MOCK_METHOD4(drawElements,
1717 void(WGC3Denum mode, 1694 void(GLenum mode, GLsizei count, GLenum type, GLintptr offset));
1718 WGC3Dsizei count,
1719 WGC3Denum type,
1720 WGC3Dintptr offset));
1721 }; 1695 };
1722 1696
1723 class MockOutputSurface : public OutputSurface { 1697 class MockOutputSurface : public OutputSurface {
1724 public: 1698 public:
1725 MockOutputSurface() 1699 MockOutputSurface()
1726 : OutputSurface( 1700 : OutputSurface(
1727 TestContextProvider::Create(scoped_ptr<TestWebGraphicsContext3D>( 1701 TestContextProvider::Create(scoped_ptr<TestWebGraphicsContext3D>(
1728 new StrictMock<OutputSurfaceMockContext>))) { 1702 new StrictMock<OutputSurfaceMockContext>))) {
1729 surface_size_ = gfx::Size(100, 100); 1703 surface_size_ = gfx::Size(100, 100);
1730 } 1704 }
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
1899 base::MessageLoop::current()->Run(); 1873 base::MessageLoop::current()->Run();
1900 1874
1901 // The sync point should have happened. 1875 // The sync point should have happened.
1902 EXPECT_EQ(1, sync_point_callback_count); 1876 EXPECT_EQ(1, sync_point_callback_count);
1903 EXPECT_EQ(1, other_callback_count); 1877 EXPECT_EQ(1, other_callback_count);
1904 } 1878 }
1905 #endif // OS_ANDROID 1879 #endif // OS_ANDROID
1906 1880
1907 } // namespace 1881 } // namespace
1908 } // namespace cc 1882 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/test/fake_web_graphics_context_3d.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698