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

Side by Side Diff: cc/software_renderer_unittest.cc

Issue 11264056: cc: Use gfx:: Geometry types for positions, bounds, and related things. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ScaleAsVector Created 8 years, 1 month 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 | « cc/software_renderer.cc ('k') | cc/stubs/float_point_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 "config.h" 5 #include "config.h"
6 6
7 #include "cc/software_renderer.h" 7 #include "cc/software_renderer.h"
8 8
9 #include "cc/quad_sink.h" 9 #include "cc/quad_sink.h"
10 #include "cc/render_pass.h" 10 #include "cc/render_pass.h"
(...skipping 22 matching lines...) Expand all
33 void initializeRenderer() { 33 void initializeRenderer() {
34 m_outputSurface = FakeWebCompositorOutputSurface::createSoftware(scoped_ ptr<WebKit::WebCompositorSoftwareOutputDevice>(new FakeWebCompositorSoftwareOutp utDevice)); 34 m_outputSurface = FakeWebCompositorOutputSurface::createSoftware(scoped_ ptr<WebKit::WebCompositorSoftwareOutputDevice>(new FakeWebCompositorSoftwareOutp utDevice));
35 m_resourceProvider = ResourceProvider::create(m_outputSurface.get()); 35 m_resourceProvider = ResourceProvider::create(m_outputSurface.get());
36 m_renderer = SoftwareRenderer::create(this, resourceProvider(), software Device()); 36 m_renderer = SoftwareRenderer::create(this, resourceProvider(), software Device());
37 } 37 }
38 38
39 WebCompositorSoftwareOutputDevice* softwareDevice() const { return m_outputS urface->softwareDevice(); } 39 WebCompositorSoftwareOutputDevice* softwareDevice() const { return m_outputS urface->softwareDevice(); }
40 FakeWebCompositorOutputSurface* outputSurface() const { return m_outputSurfa ce.get(); } 40 FakeWebCompositorOutputSurface* outputSurface() const { return m_outputSurfa ce.get(); }
41 ResourceProvider* resourceProvider() const { return m_resourceProvider.get() ; } 41 ResourceProvider* resourceProvider() const { return m_resourceProvider.get() ; }
42 SoftwareRenderer* renderer() const { return m_renderer.get(); } 42 SoftwareRenderer* renderer() const { return m_renderer.get(); }
43 void setViewportSize(IntSize viewportSize) { m_viewportSize = viewportSize; } 43 void setViewportSize(gfx::Size viewportSize) { m_viewportSize = viewportSize ; }
44 44
45 // RendererClient implementation. 45 // RendererClient implementation.
46 virtual const IntSize& deviceViewportSize() const OVERRIDE { return m_viewpo rtSize; } 46 virtual const gfx::Size& deviceViewportSize() const OVERRIDE { return m_view portSize; }
47 virtual const LayerTreeSettings& settings() const OVERRIDE { return m_settin gs; } 47 virtual const LayerTreeSettings& settings() const OVERRIDE { return m_settin gs; }
48 virtual void didLoseContext() OVERRIDE { } 48 virtual void didLoseContext() OVERRIDE { }
49 virtual void onSwapBuffersComplete() OVERRIDE { } 49 virtual void onSwapBuffersComplete() OVERRIDE { }
50 virtual void setFullRootLayerDamage() OVERRIDE { } 50 virtual void setFullRootLayerDamage() OVERRIDE { }
51 virtual void setManagedMemoryPolicy(const ManagedMemoryPolicy& policy) OVERR IDE { }; 51 virtual void setManagedMemoryPolicy(const ManagedMemoryPolicy& policy) OVERR IDE { };
52 virtual void enforceManagedMemoryPolicy(const ManagedMemoryPolicy& policy) O VERRIDE { }; 52 virtual void enforceManagedMemoryPolicy(const ManagedMemoryPolicy& policy) O VERRIDE { };
53 53
54 protected: 54 protected:
55 DebugScopedSetImplThread m_alwaysImplThread; 55 DebugScopedSetImplThread m_alwaysImplThread;
56 56
57 scoped_ptr<FakeWebCompositorOutputSurface> m_outputSurface; 57 scoped_ptr<FakeWebCompositorOutputSurface> m_outputSurface;
58 scoped_ptr<ResourceProvider> m_resourceProvider; 58 scoped_ptr<ResourceProvider> m_resourceProvider;
59 scoped_ptr<SoftwareRenderer> m_renderer; 59 scoped_ptr<SoftwareRenderer> m_renderer;
60 IntSize m_viewportSize; 60 gfx::Size m_viewportSize;
61 LayerTreeSettings m_settings; 61 LayerTreeSettings m_settings;
62 }; 62 };
63 63
64 TEST_F(SoftwareRendererTest, solidColorQuad) 64 TEST_F(SoftwareRendererTest, solidColorQuad)
65 { 65 {
66 IntSize outerSize(100, 100); 66 gfx::Size outerSize(100, 100);
67 int outerPixels = outerSize.width() * outerSize.height(); 67 int outerPixels = outerSize.width() * outerSize.height();
68 IntSize innerSize(98, 98); 68 gfx::Size innerSize(98, 98);
69 IntRect outerRect(IntPoint(), outerSize); 69 gfx::Rect outerRect(gfx::Point(), outerSize);
70 IntRect innerRect(IntPoint(1, 1), innerSize); 70 gfx::Rect innerRect(gfx::Point(1, 1), innerSize);
71 setViewportSize(outerSize); 71 setViewportSize(outerSize);
72 72
73 initializeRenderer(); 73 initializeRenderer();
74 74
75 scoped_ptr<SharedQuadState> sharedQuadState = SharedQuadState::create(WebTra nsformationMatrix(), outerRect, outerRect, 1.0, true); 75 scoped_ptr<SharedQuadState> sharedQuadState = SharedQuadState::create(WebTra nsformationMatrix(), outerRect, outerRect, 1.0, true);
76 RenderPass::Id rootRenderPassId = RenderPass::Id(1, 1); 76 RenderPass::Id rootRenderPassId = RenderPass::Id(1, 1);
77 scoped_ptr<TestRenderPass> rootRenderPass = TestRenderPass::create(rootRende rPassId, outerRect, WebTransformationMatrix()); 77 scoped_ptr<TestRenderPass> rootRenderPass = TestRenderPass::create(rootRende rPassId, outerRect, WebTransformationMatrix());
78 scoped_ptr<DrawQuad> outerQuad = SolidColorDrawQuad::create(sharedQuadState. get(), outerRect, SK_ColorYELLOW).PassAs<DrawQuad>(); 78 scoped_ptr<DrawQuad> outerQuad = SolidColorDrawQuad::create(sharedQuadState. get(), outerRect, SK_ColorYELLOW).PassAs<DrawQuad>();
79 scoped_ptr<DrawQuad> innerQuad = SolidColorDrawQuad::create(sharedQuadState. get(), innerRect, SK_ColorCYAN).PassAs<DrawQuad>(); 79 scoped_ptr<DrawQuad> innerQuad = SolidColorDrawQuad::create(sharedQuadState. get(), innerRect, SK_ColorCYAN).PassAs<DrawQuad>();
80 rootRenderPass->appendQuad(innerQuad.Pass()); 80 rootRenderPass->appendQuad(innerQuad.Pass());
(...skipping 15 matching lines...) Expand all
96 #ifndef OS_ANDROID 96 #ifndef OS_ANDROID
97 EXPECT_EQ(SK_ColorYELLOW, pixels[0]); 97 EXPECT_EQ(SK_ColorYELLOW, pixels[0]);
98 EXPECT_EQ(SK_ColorYELLOW, pixels[outerPixels - 1]); 98 EXPECT_EQ(SK_ColorYELLOW, pixels[outerPixels - 1]);
99 EXPECT_EQ(SK_ColorCYAN, pixels[outerSize.width() + 1]); 99 EXPECT_EQ(SK_ColorCYAN, pixels[outerSize.width() + 1]);
100 EXPECT_EQ(SK_ColorCYAN, pixels[outerPixels - outerSize.width() - 2]); 100 EXPECT_EQ(SK_ColorCYAN, pixels[outerPixels - outerSize.width() - 2]);
101 #endif 101 #endif
102 } 102 }
103 103
104 TEST_F(SoftwareRendererTest, tileQuad) 104 TEST_F(SoftwareRendererTest, tileQuad)
105 { 105 {
106 IntSize outerSize(100, 100); 106 gfx::Size outerSize(100, 100);
107 int outerPixels = outerSize.width() * outerSize.height(); 107 int outerPixels = outerSize.width() * outerSize.height();
108 IntSize innerSize(98, 98); 108 gfx::Size innerSize(98, 98);
109 int innerPixels = innerSize.width() * innerSize.height(); 109 int innerPixels = innerSize.width() * innerSize.height();
110 IntRect outerRect(IntPoint(), outerSize); 110 gfx::Rect outerRect(gfx::Point(), outerSize);
111 IntRect innerRect(IntPoint(1, 1), innerSize); 111 gfx::Rect innerRect(gfx::Point(1, 1), innerSize);
112 setViewportSize(outerSize); 112 setViewportSize(outerSize);
113 initializeRenderer(); 113 initializeRenderer();
114 114
115 ResourceProvider::ResourceId resourceYellow = resourceProvider()->createReso urce(1, outerSize, GL_RGBA, ResourceProvider::TextureUsageAny); 115 ResourceProvider::ResourceId resourceYellow = resourceProvider()->createReso urce(1, outerSize, GL_RGBA, ResourceProvider::TextureUsageAny);
116 ResourceProvider::ResourceId resourceCyan = resourceProvider()->createResour ce(1, innerSize, GL_RGBA, ResourceProvider::TextureUsageAny); 116 ResourceProvider::ResourceId resourceCyan = resourceProvider()->createResour ce(1, innerSize, GL_RGBA, ResourceProvider::TextureUsageAny);
117 117
118 SkColor yellow = SK_ColorYELLOW; 118 SkColor yellow = SK_ColorYELLOW;
119 SkColor cyan = SK_ColorCYAN; 119 SkColor cyan = SK_ColorCYAN;
120 scoped_array<SkColor> yellowPixels(new SkColor[outerPixels]); 120 scoped_array<SkColor> yellowPixels(new SkColor[outerPixels]);
121 scoped_array<SkColor> cyanPixels(new SkColor[innerPixels]); 121 scoped_array<SkColor> cyanPixels(new SkColor[innerPixels]);
122 for (int i = 0; i < outerPixels; i++) 122 for (int i = 0; i < outerPixels; i++)
123 yellowPixels[i] = yellow; 123 yellowPixels[i] = yellow;
124 for (int i = 0; i < innerPixels; i++) 124 for (int i = 0; i < innerPixels; i++)
125 cyanPixels[i] = cyan; 125 cyanPixels[i] = cyan;
126 126
127 resourceProvider()->upload(resourceYellow, reinterpret_cast<uint8_t*>(yellow Pixels.get()), gfx::Rect(gfx::Point(), outerSize), gfx::Rect(gfx::Point(), outer Size), gfx::Vector2d()); 127 resourceProvider()->upload(resourceYellow, reinterpret_cast<uint8_t*>(yellow Pixels.get()), gfx::Rect(gfx::Point(), outerSize), gfx::Rect(gfx::Point(), outer Size), gfx::Vector2d());
128 resourceProvider()->upload(resourceCyan, reinterpret_cast<uint8_t*>(cyanPixe ls.get()), gfx::Rect(gfx::Point(), innerSize), gfx::Rect(gfx::Point(), innerSize ), gfx::Vector2d()); 128 resourceProvider()->upload(resourceCyan, reinterpret_cast<uint8_t*>(cyanPixe ls.get()), gfx::Rect(gfx::Point(), innerSize), gfx::Rect(gfx::Point(), innerSize ), gfx::Vector2d());
129 129
130 IntRect rect = IntRect(IntPoint(), deviceViewportSize()); 130 gfx::Rect rect = gfx::Rect(gfx::Point(), deviceViewportSize());
131 131
132 scoped_ptr<SharedQuadState> sharedQuadState = SharedQuadState::create(WebTra nsformationMatrix(), outerRect, outerRect, 1.0, true); 132 scoped_ptr<SharedQuadState> sharedQuadState = SharedQuadState::create(WebTra nsformationMatrix(), outerRect, outerRect, 1.0, true);
133 RenderPass::Id rootRenderPassId = RenderPass::Id(1, 1); 133 RenderPass::Id rootRenderPassId = RenderPass::Id(1, 1);
134 scoped_ptr<TestRenderPass> rootRenderPass = TestRenderPass::create(rootRende rPassId, IntRect(IntPoint(), deviceViewportSize()), WebTransformationMatrix()); 134 scoped_ptr<TestRenderPass> rootRenderPass = TestRenderPass::create(rootRende rPassId, gfx::Rect(gfx::Point(), deviceViewportSize()), WebTransformationMatrix( ));
135 scoped_ptr<DrawQuad> outerQuad = TileDrawQuad::create(sharedQuadState.get(), outerRect, outerRect, resourceYellow, IntPoint(), outerSize, 0, false, false, f alse, false, false).PassAs<DrawQuad>(); 135 scoped_ptr<DrawQuad> outerQuad = TileDrawQuad::create(sharedQuadState.get(), outerRect, outerRect, resourceYellow, gfx::Vector2d(), outerSize, 0, false, fal se, false, false, false).PassAs<DrawQuad>();
136 scoped_ptr<DrawQuad> innerQuad = TileDrawQuad::create(sharedQuadState.get(), innerRect, innerRect, resourceCyan, IntPoint(), innerSize, 0, false, false, fal se, false, false).PassAs<DrawQuad>(); 136 scoped_ptr<DrawQuad> innerQuad = TileDrawQuad::create(sharedQuadState.get(), innerRect, innerRect, resourceCyan, gfx::Vector2d(), innerSize, 0, false, false , false, false, false).PassAs<DrawQuad>();
137 rootRenderPass->appendQuad(innerQuad.Pass()); 137 rootRenderPass->appendQuad(innerQuad.Pass());
138 rootRenderPass->appendQuad(outerQuad.Pass()); 138 rootRenderPass->appendQuad(outerQuad.Pass());
139 139
140 RenderPassList list; 140 RenderPassList list;
141 RenderPassIdHashMap hashmap; 141 RenderPassIdHashMap hashmap;
142 list.push_back(rootRenderPass.get()); 142 list.push_back(rootRenderPass.get());
143 hashmap.add(rootRenderPassId, rootRenderPass.PassAs<RenderPass>()); 143 hashmap.add(rootRenderPassId, rootRenderPass.PassAs<RenderPass>());
144 renderer()->drawFrame(list, hashmap); 144 renderer()->drawFrame(list, hashmap);
145 145
146 scoped_array<SkColor> pixels(new SkColor[deviceViewportSize().width() * devi ceViewportSize().height()]); 146 scoped_array<SkColor> pixels(new SkColor[deviceViewportSize().width() * devi ceViewportSize().height()]);
147 renderer()->getFramebufferPixels(pixels.get(), outerRect); 147 renderer()->getFramebufferPixels(pixels.get(), outerRect);
148 148
149 EXPECT_EQ(SK_ColorYELLOW, pixels[0]); 149 EXPECT_EQ(SK_ColorYELLOW, pixels[0]);
150 EXPECT_EQ(SK_ColorYELLOW, pixels[outerPixels - 1]); 150 EXPECT_EQ(SK_ColorYELLOW, pixels[outerPixels - 1]);
151 EXPECT_EQ(SK_ColorCYAN, pixels[outerSize.width() + 1]); 151 EXPECT_EQ(SK_ColorCYAN, pixels[outerSize.width() + 1]);
152 EXPECT_EQ(SK_ColorCYAN, pixels[outerPixels - outerSize.width() - 2]); 152 EXPECT_EQ(SK_ColorCYAN, pixels[outerPixels - outerSize.width() - 2]);
153 } 153 }
154 154
155 } // namespace 155 } // namespace
OLDNEW
« no previous file with comments | « cc/software_renderer.cc ('k') | cc/stubs/float_point_3d.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698