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

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

Issue 645853008: Standardize usage of virtual/override/final in cc/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Formatted Created 6 years, 2 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
« no previous file with comments | « cc/output/gl_renderer.cc ('k') | cc/output/output_surface_unittest.cc » ('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 344 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 viewport_rect, 355 viewport_rect,
356 viewport_rect, 356 viewport_rect,
357 false); 357 false);
358 EXPECT_TRUE(renderer_->stencil_enabled()); 358 EXPECT_TRUE(renderer_->stencil_enabled());
359 } 359 }
360 360
361 class ForbidSynchronousCallContext : public TestWebGraphicsContext3D { 361 class ForbidSynchronousCallContext : public TestWebGraphicsContext3D {
362 public: 362 public:
363 ForbidSynchronousCallContext() {} 363 ForbidSynchronousCallContext() {}
364 364
365 virtual void getAttachedShaders(GLuint program, 365 void getAttachedShaders(GLuint program,
366 GLsizei max_count, 366 GLsizei max_count,
367 GLsizei* count, 367 GLsizei* count,
368 GLuint* shaders) override { 368 GLuint* shaders) override {
369 ADD_FAILURE(); 369 ADD_FAILURE();
370 } 370 }
371 virtual GLint getAttribLocation(GLuint program, const GLchar* name) override { 371 GLint getAttribLocation(GLuint program, const GLchar* name) override {
372 ADD_FAILURE(); 372 ADD_FAILURE();
373 return 0; 373 return 0;
374 } 374 }
375 virtual void getBooleanv(GLenum pname, GLboolean* value) override { 375 void getBooleanv(GLenum pname, GLboolean* value) override { ADD_FAILURE(); }
376 void getBufferParameteriv(GLenum target,
377 GLenum pname,
378 GLint* value) override {
376 ADD_FAILURE(); 379 ADD_FAILURE();
377 } 380 }
378 virtual void getBufferParameteriv(GLenum target, 381 GLenum getError() override {
379 GLenum pname,
380 GLint* value) override {
381 ADD_FAILURE();
382 }
383 virtual GLenum getError() override {
384 ADD_FAILURE(); 382 ADD_FAILURE();
385 return GL_NO_ERROR; 383 return GL_NO_ERROR;
386 } 384 }
387 virtual void getFloatv(GLenum pname, GLfloat* value) override { 385 void getFloatv(GLenum pname, GLfloat* value) override { ADD_FAILURE(); }
386 void getFramebufferAttachmentParameteriv(GLenum target,
387 GLenum attachment,
388 GLenum pname,
389 GLint* value) override {
388 ADD_FAILURE(); 390 ADD_FAILURE();
389 } 391 }
390 virtual void getFramebufferAttachmentParameteriv(GLenum target, 392 void getIntegerv(GLenum pname, GLint* value) override {
391 GLenum attachment,
392 GLenum pname,
393 GLint* value) override {
394 ADD_FAILURE();
395 }
396 virtual void getIntegerv(GLenum pname, GLint* value) override {
397 if (pname == GL_MAX_TEXTURE_SIZE) { 393 if (pname == GL_MAX_TEXTURE_SIZE) {
398 // MAX_TEXTURE_SIZE is cached client side, so it's OK to query. 394 // MAX_TEXTURE_SIZE is cached client side, so it's OK to query.
399 *value = 1024; 395 *value = 1024;
400 } else { 396 } else {
401 ADD_FAILURE(); 397 ADD_FAILURE();
402 } 398 }
403 } 399 }
404 400
405 // We allow querying the shader compilation and program link status in debug 401 // We allow querying the shader compilation and program link status in debug
406 // mode, but not release. 402 // mode, but not release.
407 virtual void getProgramiv(GLuint program, 403 void getProgramiv(GLuint program, GLenum pname, GLint* value) override {
408 GLenum pname,
409 GLint* value) override {
410 #ifndef NDEBUG 404 #ifndef NDEBUG
411 *value = 1; 405 *value = 1;
412 #else 406 #else
413 ADD_FAILURE(); 407 ADD_FAILURE();
414 #endif 408 #endif
415 } 409 }
416 410
417 virtual void getShaderiv(GLuint shader, GLenum pname, GLint* value) override { 411 void getShaderiv(GLuint shader, GLenum pname, GLint* value) override {
418 #ifndef NDEBUG 412 #ifndef NDEBUG
419 *value = 1; 413 *value = 1;
420 #else 414 #else
421 ADD_FAILURE(); 415 ADD_FAILURE();
422 #endif 416 #endif
423 } 417 }
424 418
425 virtual void getRenderbufferParameteriv(GLenum target, 419 void getRenderbufferParameteriv(GLenum target,
426 GLenum pname, 420 GLenum pname,
427 GLint* value) override { 421 GLint* value) override {
428 ADD_FAILURE(); 422 ADD_FAILURE();
429 } 423 }
430 424
431 virtual void getShaderPrecisionFormat(GLenum shadertype, 425 void getShaderPrecisionFormat(GLenum shadertype,
432 GLenum precisiontype, 426 GLenum precisiontype,
433 GLint* range, 427 GLint* range,
434 GLint* precision) override { 428 GLint* precision) override {
435 ADD_FAILURE(); 429 ADD_FAILURE();
436 } 430 }
437 virtual void getTexParameterfv(GLenum target, 431 void getTexParameterfv(GLenum target, GLenum pname, GLfloat* value) override {
438 GLenum pname,
439 GLfloat* value) override {
440 ADD_FAILURE(); 432 ADD_FAILURE();
441 } 433 }
442 virtual void getTexParameteriv(GLenum target, 434 void getTexParameteriv(GLenum target, GLenum pname, GLint* value) override {
443 GLenum pname,
444 GLint* value) override {
445 ADD_FAILURE(); 435 ADD_FAILURE();
446 } 436 }
447 virtual void getUniformfv(GLuint program, 437 void getUniformfv(GLuint program, GLint location, GLfloat* value) override {
448 GLint location,
449 GLfloat* value) override {
450 ADD_FAILURE(); 438 ADD_FAILURE();
451 } 439 }
452 virtual void getUniformiv(GLuint program, 440 void getUniformiv(GLuint program, GLint location, GLint* value) override {
453 GLint location,
454 GLint* value) override {
455 ADD_FAILURE(); 441 ADD_FAILURE();
456 } 442 }
457 virtual GLint getUniformLocation(GLuint program, 443 GLint getUniformLocation(GLuint program, const GLchar* name) override {
458 const GLchar* name) override {
459 ADD_FAILURE(); 444 ADD_FAILURE();
460 return 0; 445 return 0;
461 } 446 }
462 virtual void getVertexAttribfv(GLuint index, 447 void getVertexAttribfv(GLuint index, GLenum pname, GLfloat* value) override {
463 GLenum pname,
464 GLfloat* value) override {
465 ADD_FAILURE(); 448 ADD_FAILURE();
466 } 449 }
467 virtual void getVertexAttribiv(GLuint index, 450 void getVertexAttribiv(GLuint index, GLenum pname, GLint* value) override {
468 GLenum pname,
469 GLint* value) override {
470 ADD_FAILURE(); 451 ADD_FAILURE();
471 } 452 }
472 virtual GLsizeiptr getVertexAttribOffset(GLuint index, 453 GLsizeiptr getVertexAttribOffset(GLuint index, GLenum pname) override {
473 GLenum pname) override {
474 ADD_FAILURE(); 454 ADD_FAILURE();
475 return 0; 455 return 0;
476 } 456 }
477 }; 457 };
478 TEST_F(GLRendererTest, InitializationDoesNotMakeSynchronousCalls) { 458 TEST_F(GLRendererTest, InitializationDoesNotMakeSynchronousCalls) {
479 FakeOutputSurfaceClient output_surface_client; 459 FakeOutputSurfaceClient output_surface_client;
480 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 460 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
481 scoped_ptr<TestWebGraphicsContext3D>(new ForbidSynchronousCallContext))); 461 scoped_ptr<TestWebGraphicsContext3D>(new ForbidSynchronousCallContext)));
482 CHECK(output_surface->BindToClient(&output_surface_client)); 462 CHECK(output_surface->BindToClient(&output_surface_client));
483 463
(...skipping 14 matching lines...) Expand all
498 FakeRendererGL renderer(&renderer_client, 478 FakeRendererGL renderer(&renderer_client,
499 &settings, 479 &settings,
500 output_surface.get(), 480 output_surface.get(),
501 resource_provider.get()); 481 resource_provider.get());
502 } 482 }
503 483
504 class LoseContextOnFirstGetContext : public TestWebGraphicsContext3D { 484 class LoseContextOnFirstGetContext : public TestWebGraphicsContext3D {
505 public: 485 public:
506 LoseContextOnFirstGetContext() {} 486 LoseContextOnFirstGetContext() {}
507 487
508 virtual void getProgramiv(GLuint program, 488 void getProgramiv(GLuint program, GLenum pname, GLint* value) override {
509 GLenum pname,
510 GLint* value) override {
511 context_lost_ = true; 489 context_lost_ = true;
512 *value = 0; 490 *value = 0;
513 } 491 }
514 492
515 virtual void getShaderiv(GLuint shader, GLenum pname, GLint* value) override { 493 void getShaderiv(GLuint shader, GLenum pname, GLint* value) override {
516 context_lost_ = true; 494 context_lost_ = true;
517 *value = 0; 495 *value = 0;
518 } 496 }
519 }; 497 };
520 498
521 TEST_F(GLRendererTest, InitializationWithQuicklyLostContextDoesNotAssert) { 499 TEST_F(GLRendererTest, InitializationWithQuicklyLostContextDoesNotAssert) {
522 FakeOutputSurfaceClient output_surface_client; 500 FakeOutputSurfaceClient output_surface_client;
523 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 501 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
524 scoped_ptr<TestWebGraphicsContext3D>(new LoseContextOnFirstGetContext))); 502 scoped_ptr<TestWebGraphicsContext3D>(new LoseContextOnFirstGetContext)));
525 CHECK(output_surface->BindToClient(&output_surface_client)); 503 CHECK(output_surface->BindToClient(&output_surface_client));
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
700 Mock::VerifyAndClearExpectations(context); 678 Mock::VerifyAndClearExpectations(context);
701 } 679 }
702 680
703 class VisibilityChangeIsLastCallTrackingContext 681 class VisibilityChangeIsLastCallTrackingContext
704 : public TestWebGraphicsContext3D { 682 : public TestWebGraphicsContext3D {
705 public: 683 public:
706 VisibilityChangeIsLastCallTrackingContext() 684 VisibilityChangeIsLastCallTrackingContext()
707 : last_call_was_set_visibility_(false) {} 685 : last_call_was_set_visibility_(false) {}
708 686
709 // TestWebGraphicsContext3D methods. 687 // TestWebGraphicsContext3D methods.
710 virtual void flush() override { last_call_was_set_visibility_ = false; } 688 void flush() override { last_call_was_set_visibility_ = false; }
711 virtual void deleteTexture(GLuint) override { 689 void deleteTexture(GLuint) override { last_call_was_set_visibility_ = false; }
690 void deleteFramebuffer(GLuint) override {
712 last_call_was_set_visibility_ = false; 691 last_call_was_set_visibility_ = false;
713 } 692 }
714 virtual void deleteFramebuffer(GLuint) override { 693 void deleteQueryEXT(GLuint) override {
715 last_call_was_set_visibility_ = false; 694 last_call_was_set_visibility_ = false;
716 } 695 }
717 virtual void deleteQueryEXT(GLuint) override { 696 void deleteRenderbuffer(GLuint) override {
718 last_call_was_set_visibility_ = false;
719 }
720 virtual void deleteRenderbuffer(GLuint) override {
721 last_call_was_set_visibility_ = false; 697 last_call_was_set_visibility_ = false;
722 } 698 }
723 699
724 // Methods added for test. 700 // Methods added for test.
725 void set_last_call_was_visibility(bool visible) { 701 void set_last_call_was_visibility(bool visible) {
726 DCHECK(last_call_was_set_visibility_ == false); 702 DCHECK(last_call_was_set_visibility_ == false);
727 last_call_was_set_visibility_ = true; 703 last_call_was_set_visibility_ = true;
728 } 704 }
729 bool last_call_was_set_visibility() const { 705 bool last_call_was_set_visibility() const {
730 return last_call_was_set_visibility_; 706 return last_call_was_set_visibility_;
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
982 958
983 // In multiple render passes all but the root pass should clear the 959 // In multiple render passes all but the root pass should clear the
984 // framebuffer. 960 // framebuffer.
985 Mock::VerifyAndClearExpectations(&mock_context); 961 Mock::VerifyAndClearExpectations(&mock_context);
986 } 962 }
987 963
988 class ScissorTestOnClearCheckingContext : public TestWebGraphicsContext3D { 964 class ScissorTestOnClearCheckingContext : public TestWebGraphicsContext3D {
989 public: 965 public:
990 ScissorTestOnClearCheckingContext() : scissor_enabled_(false) {} 966 ScissorTestOnClearCheckingContext() : scissor_enabled_(false) {}
991 967
992 virtual void clear(GLbitfield) override { EXPECT_FALSE(scissor_enabled_); } 968 void clear(GLbitfield) override { EXPECT_FALSE(scissor_enabled_); }
993 969
994 virtual void enable(GLenum cap) override { 970 void enable(GLenum cap) override {
995 if (cap == GL_SCISSOR_TEST) 971 if (cap == GL_SCISSOR_TEST)
996 scissor_enabled_ = true; 972 scissor_enabled_ = true;
997 } 973 }
998 974
999 virtual void disable(GLenum cap) override { 975 void disable(GLenum cap) override {
1000 if (cap == GL_SCISSOR_TEST) 976 if (cap == GL_SCISSOR_TEST)
1001 scissor_enabled_ = false; 977 scissor_enabled_ = false;
1002 } 978 }
1003 979
1004 private: 980 private:
1005 bool scissor_enabled_; 981 bool scissor_enabled_;
1006 }; 982 };
1007 983
1008 TEST_F(GLRendererTest, ScissorTestWhenClearing) { 984 TEST_F(GLRendererTest, ScissorTestWhenClearing) {
1009 scoped_ptr<ScissorTestOnClearCheckingContext> context_owned( 985 scoped_ptr<ScissorTestOnClearCheckingContext> context_owned(
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
1071 false); 1047 false);
1072 } 1048 }
1073 1049
1074 class DiscardCheckingContext : public TestWebGraphicsContext3D { 1050 class DiscardCheckingContext : public TestWebGraphicsContext3D {
1075 public: 1051 public:
1076 DiscardCheckingContext() : discarded_(0) { 1052 DiscardCheckingContext() : discarded_(0) {
1077 set_have_post_sub_buffer(true); 1053 set_have_post_sub_buffer(true);
1078 set_have_discard_framebuffer(true); 1054 set_have_discard_framebuffer(true);
1079 } 1055 }
1080 1056
1081 virtual void discardFramebufferEXT(GLenum target, 1057 void discardFramebufferEXT(GLenum target,
1082 GLsizei numAttachments, 1058 GLsizei numAttachments,
1083 const GLenum* attachments) override { 1059 const GLenum* attachments) override {
1084 ++discarded_; 1060 ++discarded_;
1085 } 1061 }
1086 1062
1087 int discarded() const { return discarded_; } 1063 int discarded() const { return discarded_; }
1088 void reset() { discarded_ = 0; } 1064 void reset() { discarded_ = 0; }
1089 1065
1090 private: 1066 private:
1091 int discarded_; 1067 int discarded_;
1092 }; 1068 };
1093 1069
1094 class NonReshapableOutputSurface : public FakeOutputSurface { 1070 class NonReshapableOutputSurface : public FakeOutputSurface {
1095 public: 1071 public:
1096 explicit NonReshapableOutputSurface( 1072 explicit NonReshapableOutputSurface(
1097 scoped_ptr<TestWebGraphicsContext3D> context3d) 1073 scoped_ptr<TestWebGraphicsContext3D> context3d)
1098 : FakeOutputSurface(TestContextProvider::Create(context3d.Pass()), 1074 : FakeOutputSurface(TestContextProvider::Create(context3d.Pass()),
1099 false) { 1075 false) {
1100 surface_size_ = gfx::Size(500, 500); 1076 surface_size_ = gfx::Size(500, 500);
1101 } 1077 }
1102 virtual void Reshape(const gfx::Size& size, float scale_factor) override {} 1078 void Reshape(const gfx::Size& size, float scale_factor) override {}
1103 void set_fixed_size(const gfx::Size& size) { surface_size_ = size; } 1079 void set_fixed_size(const gfx::Size& size) { surface_size_ = size; }
1104 }; 1080 };
1105 1081
1106 TEST_F(GLRendererTest, NoDiscardOnPartialUpdates) { 1082 TEST_F(GLRendererTest, NoDiscardOnPartialUpdates) {
1107 scoped_ptr<DiscardCheckingContext> context_owned(new DiscardCheckingContext); 1083 scoped_ptr<DiscardCheckingContext> context_owned(new DiscardCheckingContext);
1108 DiscardCheckingContext* context = context_owned.get(); 1084 DiscardCheckingContext* context = context_owned.get();
1109 1085
1110 FakeOutputSurfaceClient output_surface_client; 1086 FakeOutputSurfaceClient output_surface_client;
1111 scoped_ptr<NonReshapableOutputSurface> output_surface( 1087 scoped_ptr<NonReshapableOutputSurface> output_surface(
1112 new NonReshapableOutputSurface(context_owned.Pass())); 1088 new NonReshapableOutputSurface(context_owned.Pass()));
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
1257 false); 1233 false);
1258 EXPECT_EQ(0, context->discarded()); 1234 EXPECT_EQ(0, context->discarded());
1259 context->reset(); 1235 context->reset();
1260 } 1236 }
1261 } 1237 }
1262 1238
1263 class FlippedScissorAndViewportContext : public TestWebGraphicsContext3D { 1239 class FlippedScissorAndViewportContext : public TestWebGraphicsContext3D {
1264 public: 1240 public:
1265 FlippedScissorAndViewportContext() 1241 FlippedScissorAndViewportContext()
1266 : did_call_viewport_(false), did_call_scissor_(false) {} 1242 : did_call_viewport_(false), did_call_scissor_(false) {}
1267 virtual ~FlippedScissorAndViewportContext() { 1243 ~FlippedScissorAndViewportContext() override {
1268 EXPECT_TRUE(did_call_viewport_); 1244 EXPECT_TRUE(did_call_viewport_);
1269 EXPECT_TRUE(did_call_scissor_); 1245 EXPECT_TRUE(did_call_scissor_);
1270 } 1246 }
1271 1247
1272 virtual void viewport(GLint x, GLint y, GLsizei width, GLsizei height) 1248 void viewport(GLint x, GLint y, GLsizei width, GLsizei height) override {
1273 override {
1274 EXPECT_EQ(10, x); 1249 EXPECT_EQ(10, x);
1275 EXPECT_EQ(390, y); 1250 EXPECT_EQ(390, y);
1276 EXPECT_EQ(100, width); 1251 EXPECT_EQ(100, width);
1277 EXPECT_EQ(100, height); 1252 EXPECT_EQ(100, height);
1278 did_call_viewport_ = true; 1253 did_call_viewport_ = true;
1279 } 1254 }
1280 1255
1281 virtual void scissor(GLint x, GLint y, GLsizei width, GLsizei height) 1256 void scissor(GLint x, GLint y, GLsizei width, GLsizei height) override {
1282 override {
1283 EXPECT_EQ(30, x); 1257 EXPECT_EQ(30, x);
1284 EXPECT_EQ(450, y); 1258 EXPECT_EQ(450, y);
1285 EXPECT_EQ(20, width); 1259 EXPECT_EQ(20, width);
1286 EXPECT_EQ(20, height); 1260 EXPECT_EQ(20, height);
1287 did_call_scissor_ = true; 1261 did_call_scissor_ = true;
1288 } 1262 }
1289 1263
1290 private: 1264 private:
1291 bool did_call_viewport_; 1265 bool did_call_viewport_;
1292 bool did_call_scissor_; 1266 bool did_call_scissor_;
(...skipping 557 matching lines...) Expand 10 before | Expand all | Expand 10 after
1850 base::MessageLoop::current()->Run(); 1824 base::MessageLoop::current()->Run();
1851 1825
1852 // The sync point should have happened. 1826 // The sync point should have happened.
1853 EXPECT_EQ(1, sync_point_callback_count); 1827 EXPECT_EQ(1, sync_point_callback_count);
1854 EXPECT_EQ(1, other_callback_count); 1828 EXPECT_EQ(1, other_callback_count);
1855 } 1829 }
1856 #endif // OS_ANDROID 1830 #endif // OS_ANDROID
1857 1831
1858 } // namespace 1832 } // namespace
1859 } // namespace cc 1833 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/gl_renderer.cc ('k') | cc/output/output_surface_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698