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

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

Issue 15688002: Part 1/3 (compositor) of adding with device scale factor to transport surfaces (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 7 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
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 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 root_render_pass->SetNew( 159 root_render_pass->SetNew(
160 render_pass_id, gfx::Rect(), gfx::Rect(), gfx::Transform()); 160 render_pass_id, gfx::Rect(), gfx::Rect(), gfx::Transform());
161 render_passes_in_draw_order_.push_back(root_render_pass.Pass()); 161 render_passes_in_draw_order_.push_back(root_render_pass.Pass());
162 } 162 }
163 163
164 // RendererClient methods. 164 // RendererClient methods.
165 virtual gfx::Size DeviceViewportSize() const OVERRIDE { 165 virtual gfx::Size DeviceViewportSize() const OVERRIDE {
166 static gfx::Size fake_size(1, 1); 166 static gfx::Size fake_size(1, 1);
167 return fake_size; 167 return fake_size;
168 } 168 }
169 virtual float DeviceScaleFactor() const OVERRIDE {
170 return 1.f;
danakj 2013/05/22 14:08:42 Can we have a test where this is != 1?
ccameron 2013/05/22 18:26:11 The test wasn't verifying any of the Reshape argum
171 }
169 virtual const LayerTreeSettings& Settings() const OVERRIDE { 172 virtual const LayerTreeSettings& Settings() const OVERRIDE {
170 static LayerTreeSettings fake_settings; 173 static LayerTreeSettings fake_settings;
171 return fake_settings; 174 return fake_settings;
172 } 175 }
173 virtual void SetFullRootLayerDamage() OVERRIDE { 176 virtual void SetFullRootLayerDamage() OVERRIDE {
174 set_full_root_layer_damage_count_++; 177 set_full_root_layer_damage_count_++;
175 } 178 }
176 virtual void SetManagedMemoryPolicy(const ManagedMemoryPolicy& policy) 179 virtual void SetManagedMemoryPolicy(const ManagedMemoryPolicy& policy)
177 OVERRIDE { 180 OVERRIDE {
178 memory_allocation_limit_bytes_ = policy.bytes_limit_when_visible; 181 memory_allocation_limit_bytes_ = policy.bytes_limit_when_visible;
(...skipping 1251 matching lines...) Expand 10 before | Expand all | Expand 10 after
1430 class OutputSurfaceMockContext : public TestWebGraphicsContext3D { 1433 class OutputSurfaceMockContext : public TestWebGraphicsContext3D {
1431 public: 1434 public:
1432 // Specifically override methods even if they are unused (used in conjunction 1435 // Specifically override methods even if they are unused (used in conjunction
1433 // with StrictMock). We need to make sure that GLRenderer does not issue 1436 // with StrictMock). We need to make sure that GLRenderer does not issue
1434 // framebuffer-related GL calls directly. Instead these are supposed to go 1437 // framebuffer-related GL calls directly. Instead these are supposed to go
1435 // through the OutputSurface abstraction. 1438 // through the OutputSurface abstraction.
1436 MOCK_METHOD0(ensureBackbufferCHROMIUM, void()); 1439 MOCK_METHOD0(ensureBackbufferCHROMIUM, void());
1437 MOCK_METHOD0(discardBackbufferCHROMIUM, void()); 1440 MOCK_METHOD0(discardBackbufferCHROMIUM, void());
1438 MOCK_METHOD2(bindFramebuffer, void(WGC3Denum target, WebGLId framebuffer)); 1441 MOCK_METHOD2(bindFramebuffer, void(WGC3Denum target, WebGLId framebuffer));
1439 MOCK_METHOD0(prepareTexture, void()); 1442 MOCK_METHOD0(prepareTexture, void());
1440 MOCK_METHOD2(reshape, void(int width, int height)); 1443 MOCK_METHOD3(reshapeWithScaleFactor,
1444 void(int width, int height, float scale_factor));
1441 MOCK_METHOD4(drawElements, 1445 MOCK_METHOD4(drawElements,
1442 void(WGC3Denum mode, 1446 void(WGC3Denum mode,
1443 WGC3Dsizei count, 1447 WGC3Dsizei count,
1444 WGC3Denum type, 1448 WGC3Denum type,
1445 WGC3Dintptr offset)); 1449 WGC3Dintptr offset));
1446 1450
1447 virtual WebString getString(WebKit::WGC3Denum name) { 1451 virtual WebString getString(WebKit::WGC3Denum name) {
1448 if (name == GL_EXTENSIONS) 1452 if (name == GL_EXTENSIONS)
1449 return WebString( 1453 return WebString(
1450 "GL_CHROMIUM_post_sub_buffer GL_CHROMIUM_discard_backbuffer"); 1454 "GL_CHROMIUM_post_sub_buffer GL_CHROMIUM_discard_backbuffer");
1451 return WebString(); 1455 return WebString();
1452 } 1456 }
1453 }; 1457 };
1454 1458
1455 class MockOutputSurface : public OutputSurface { 1459 class MockOutputSurface : public OutputSurface {
1456 public: 1460 public:
1457 MockOutputSurface() 1461 MockOutputSurface()
1458 : OutputSurface(scoped_ptr<WebKit::WebGraphicsContext3D>( 1462 : OutputSurface(scoped_ptr<WebKit::WebGraphicsContext3D>(
1459 new StrictMock<OutputSurfaceMockContext>)) {} 1463 new StrictMock<OutputSurfaceMockContext>)) {}
1460 virtual ~MockOutputSurface() {} 1464 virtual ~MockOutputSurface() {}
1461 1465
1462 MOCK_METHOD1(SendFrameToParentCompositor, void(CompositorFrame* frame)); 1466 MOCK_METHOD1(SendFrameToParentCompositor, void(CompositorFrame* frame));
1463 MOCK_METHOD0(EnsureBackbuffer, void()); 1467 MOCK_METHOD0(EnsureBackbuffer, void());
1464 MOCK_METHOD0(DiscardBackbuffer, void()); 1468 MOCK_METHOD0(DiscardBackbuffer, void());
1465 MOCK_METHOD1(Reshape, void(gfx::Size size)); 1469 MOCK_METHOD2(Reshape, void(gfx::Size size, float scale_factor));
1466 MOCK_METHOD0(BindFramebuffer, void()); 1470 MOCK_METHOD0(BindFramebuffer, void());
1467 MOCK_METHOD2(PostSubBuffer, void(gfx::Rect rect, const LatencyInfo&)); 1471 MOCK_METHOD2(PostSubBuffer, void(gfx::Rect rect, const LatencyInfo&));
1468 MOCK_METHOD1(SwapBuffers, void(const LatencyInfo&)); 1472 MOCK_METHOD1(SwapBuffers, void(const LatencyInfo&));
1469 }; 1473 };
1470 1474
1471 class MockOutputSurfaceTest : public testing::Test, public FakeRendererClient { 1475 class MockOutputSurfaceTest : public testing::Test, public FakeRendererClient {
1472 protected: 1476 protected:
1473 MockOutputSurfaceTest() 1477 MockOutputSurfaceTest()
1474 : resource_provider_(ResourceProvider::Create(&output_surface_, 0)), 1478 : resource_provider_(ResourceProvider::Create(&output_surface_, 0)),
1475 renderer_(this, &output_surface_, resource_provider_.get()) {} 1479 renderer_(this, &output_surface_, resource_provider_.get()) {}
1476 1480
1477 virtual void SetUp() { EXPECT_TRUE(renderer_.Initialize()); } 1481 virtual void SetUp() { EXPECT_TRUE(renderer_.Initialize()); }
1478 1482
1479 void SwapBuffers() { renderer_.SwapBuffers(LatencyInfo()); } 1483 void SwapBuffers() { renderer_.SwapBuffers(LatencyInfo()); }
1480 1484
1481 void DrawFrame() { 1485 void DrawFrame() {
1482 gfx::Rect viewport_rect(DeviceViewportSize()); 1486 gfx::Rect viewport_rect(DeviceViewportSize());
1483 ScopedPtrVector<RenderPass>* render_passes = render_passes_in_draw_order(); 1487 ScopedPtrVector<RenderPass>* render_passes = render_passes_in_draw_order();
1484 render_passes->clear(); 1488 render_passes->clear();
1485 1489
1486 RenderPass::Id render_pass_id(1, 0); 1490 RenderPass::Id render_pass_id(1, 0);
1487 TestRenderPass* render_pass = AddRenderPass( 1491 TestRenderPass* render_pass = AddRenderPass(
1488 render_passes, render_pass_id, viewport_rect, gfx::Transform()); 1492 render_passes, render_pass_id, viewport_rect, gfx::Transform());
1489 AddQuad(render_pass, viewport_rect, SK_ColorGREEN); 1493 AddQuad(render_pass, viewport_rect, SK_ColorGREEN);
1490 1494
1491 EXPECT_CALL(output_surface_, EnsureBackbuffer()).WillRepeatedly(Return()); 1495 EXPECT_CALL(output_surface_, EnsureBackbuffer()).WillRepeatedly(Return());
1492 1496
1493 EXPECT_CALL(output_surface_, Reshape(_)).Times(1); 1497 EXPECT_CALL(output_surface_, Reshape(_, _)).Times(1);
1494 1498
1495 EXPECT_CALL(output_surface_, BindFramebuffer()).Times(1); 1499 EXPECT_CALL(output_surface_, BindFramebuffer()).Times(1);
1496 1500
1497 EXPECT_CALL(*Context(), drawElements(_, _, _, _)).Times(1); 1501 EXPECT_CALL(*Context(), drawElements(_, _, _, _)).Times(1);
1498 1502
1499 renderer_.DecideRenderPassAllocationsForFrame( 1503 renderer_.DecideRenderPassAllocationsForFrame(
1500 *render_passes_in_draw_order()); 1504 *render_passes_in_draw_order());
1501 renderer_.DrawFrame(render_passes_in_draw_order()); 1505 renderer_.DrawFrame(render_passes_in_draw_order());
1502 } 1506 }
1503 1507
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
1613 base::MessageLoop::current()->Run(); 1617 base::MessageLoop::current()->Run();
1614 1618
1615 // The sync point should have happened. 1619 // The sync point should have happened.
1616 EXPECT_EQ(1, sync_point_callback_count); 1620 EXPECT_EQ(1, sync_point_callback_count);
1617 EXPECT_EQ(1, other_callback_count); 1621 EXPECT_EQ(1, other_callback_count);
1618 } 1622 }
1619 #endif // OS_ANDROID 1623 #endif // OS_ANDROID
1620 1624
1621 } // namespace 1625 } // namespace
1622 } // namespace cc 1626 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698