| OLD | NEW | 
|    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/gl_renderer.h" |    5 #include "cc/gl_renderer.h" | 
|    6  |    6  | 
|    7 #include "cc/draw_quad.h" |    7 #include "cc/draw_quad.h" | 
|    8 #include "cc/prioritized_resource_manager.h" |    8 #include "cc/prioritized_resource_manager.h" | 
|    9 #include "cc/resource_provider.h" |    9 #include "cc/resource_provider.h" | 
|   10 #include "cc/test/fake_impl_proxy.h" |   10 #include "cc/test/fake_impl_proxy.h" | 
|   11 #include "cc/test/fake_layer_tree_host_impl.h" |   11 #include "cc/test/fake_layer_tree_host_impl.h" | 
|   12 #include "cc/test/fake_web_compositor_output_surface.h" |   12 #include "cc/test/fake_output_surface.h" | 
|   13 #include "cc/test/fake_web_graphics_context_3d.h" |   13 #include "cc/test/fake_web_graphics_context_3d.h" | 
|   14 #include "cc/test/render_pass_test_common.h" |   14 #include "cc/test/render_pass_test_common.h" | 
|   15 #include "testing/gmock/include/gmock/gmock.h" |   15 #include "testing/gmock/include/gmock/gmock.h" | 
|   16 #include "testing/gtest/include/gtest/gtest.h" |   16 #include "testing/gtest/include/gtest/gtest.h" | 
|   17 #include "third_party/khronos/GLES2/gl2.h" |   17 #include "third_party/khronos/GLES2/gl2.h" | 
|   18 #include "ui/gfx/transform.h" |   18 #include "ui/gfx/transform.h" | 
|   19  |   19  | 
|   20 using namespace WebKit; |   20 using namespace WebKit; | 
|   21 using namespace WebKitTests; |   21 using namespace WebKitTests; | 
|   22  |   22  | 
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  116     using GLRenderer::drawQuad; |  116     using GLRenderer::drawQuad; | 
|  117     using GLRenderer::beginDrawingFrame; |  117     using GLRenderer::beginDrawingFrame; | 
|  118     using GLRenderer::finishDrawingQuadList; |  118     using GLRenderer::finishDrawingQuadList; | 
|  119 }; |  119 }; | 
|  120  |  120  | 
|  121 class GLRendererTest : public testing::Test { |  121 class GLRendererTest : public testing::Test { | 
|  122 protected: |  122 protected: | 
|  123     GLRendererTest() |  123     GLRendererTest() | 
|  124         : m_suggestHaveBackbufferYes(1, true) |  124         : m_suggestHaveBackbufferYes(1, true) | 
|  125         , m_suggestHaveBackbufferNo(1, false) |  125         , m_suggestHaveBackbufferNo(1, false) | 
|  126         , m_context(FakeWebCompositorOutputSurface::create(scoped_ptr<WebKit::We
     bGraphicsContext3D>(new FrameCountingMemoryAllocationSettingContext()))) |  126         , m_context(FakeOutputSurface::Create3d(scoped_ptr<WebKit::WebGraphicsCo
     ntext3D>(new FrameCountingMemoryAllocationSettingContext()))) | 
|  127         , m_resourceProvider(ResourceProvider::create(m_context.get())) |  127         , m_resourceProvider(ResourceProvider::create(m_context.get())) | 
|  128         , m_renderer(&m_mockClient, m_resourceProvider.get()) |  128         , m_renderer(&m_mockClient, m_resourceProvider.get()) | 
|  129     { |  129     { | 
|  130     } |  130     } | 
|  131  |  131  | 
|  132     virtual void SetUp() |  132     virtual void SetUp() | 
|  133     { |  133     { | 
|  134         m_renderer.initialize(); |  134         m_renderer.initialize(); | 
|  135     } |  135     } | 
|  136  |  136  | 
|  137     void swapBuffers() |  137     void swapBuffers() | 
|  138     { |  138     { | 
|  139         m_renderer.swapBuffers(); |  139         m_renderer.swapBuffers(); | 
|  140     } |  140     } | 
|  141  |  141  | 
|  142     FrameCountingMemoryAllocationSettingContext* context() { return static_cast<
     FrameCountingMemoryAllocationSettingContext*>(m_context->context3D()); } |  142     FrameCountingMemoryAllocationSettingContext* context() { return static_cast<
     FrameCountingMemoryAllocationSettingContext*>(m_context->Context3D()); } | 
|  143  |  143  | 
|  144     WebGraphicsMemoryAllocation m_suggestHaveBackbufferYes; |  144     WebGraphicsMemoryAllocation m_suggestHaveBackbufferYes; | 
|  145     WebGraphicsMemoryAllocation m_suggestHaveBackbufferNo; |  145     WebGraphicsMemoryAllocation m_suggestHaveBackbufferNo; | 
|  146  |  146  | 
|  147     scoped_ptr<OutputSurface> m_context; |  147     scoped_ptr<OutputSurface> m_context; | 
|  148     FakeRendererClient m_mockClient; |  148     FakeRendererClient m_mockClient; | 
|  149     scoped_ptr<ResourceProvider> m_resourceProvider; |  149     scoped_ptr<ResourceProvider> m_resourceProvider; | 
|  150     FakeRendererGL m_renderer; |  150     FakeRendererGL m_renderer; | 
|  151 }; |  151 }; | 
|  152  |  152  | 
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  298     virtual WGC3Dint getUniformLocation(WebGLId program, const WGC3Dchar* name) 
     { ADD_FAILURE(); return 0; } |  298     virtual WGC3Dint getUniformLocation(WebGLId program, const WGC3Dchar* name) 
     { ADD_FAILURE(); return 0; } | 
|  299     virtual void getVertexAttribfv(WGC3Duint index, WGC3Denum pname, WGC3Dfloat*
      value) { ADD_FAILURE(); } |  299     virtual void getVertexAttribfv(WGC3Duint index, WGC3Denum pname, WGC3Dfloat*
      value) { ADD_FAILURE(); } | 
|  300     virtual void getVertexAttribiv(WGC3Duint index, WGC3Denum pname, WGC3Dint* v
     alue) { ADD_FAILURE(); } |  300     virtual void getVertexAttribiv(WGC3Duint index, WGC3Denum pname, WGC3Dint* v
     alue) { ADD_FAILURE(); } | 
|  301     virtual WGC3Dsizeiptr getVertexAttribOffset(WGC3Duint index, WGC3Denum pname
     ) { ADD_FAILURE(); return 0; } |  301     virtual WGC3Dsizeiptr getVertexAttribOffset(WGC3Duint index, WGC3Denum pname
     ) { ADD_FAILURE(); return 0; } | 
|  302 }; |  302 }; | 
|  303  |  303  | 
|  304 // This test isn't using the same fixture as GLRendererTest, and you can't mix T
     EST() and TEST_F() with the same name, hence LRC2. |  304 // This test isn't using the same fixture as GLRendererTest, and you can't mix T
     EST() and TEST_F() with the same name, hence LRC2. | 
|  305 TEST(GLRendererTest2, initializationDoesNotMakeSynchronousCalls) |  305 TEST(GLRendererTest2, initializationDoesNotMakeSynchronousCalls) | 
|  306 { |  306 { | 
|  307     FakeRendererClient mockClient; |  307     FakeRendererClient mockClient; | 
|  308     scoped_ptr<OutputSurface> context(FakeWebCompositorOutputSurface::create(sco
     ped_ptr<WebKit::WebGraphicsContext3D>(new ForbidSynchronousCallContext))); |  308     scoped_ptr<OutputSurface> context(FakeOutputSurface::Create3d(scoped_ptr<Web
     Kit::WebGraphicsContext3D>(new ForbidSynchronousCallContext))); | 
|  309     scoped_ptr<ResourceProvider> resourceProvider(ResourceProvider::create(conte
     xt.get())); |  309     scoped_ptr<ResourceProvider> resourceProvider(ResourceProvider::create(conte
     xt.get())); | 
|  310     FakeRendererGL renderer(&mockClient, resourceProvider.get()); |  310     FakeRendererGL renderer(&mockClient, resourceProvider.get()); | 
|  311  |  311  | 
|  312     EXPECT_TRUE(renderer.initialize()); |  312     EXPECT_TRUE(renderer.initialize()); | 
|  313 } |  313 } | 
|  314  |  314  | 
|  315 class LoseContextOnFirstGetContext : public FakeWebGraphicsContext3D { |  315 class LoseContextOnFirstGetContext : public FakeWebGraphicsContext3D { | 
|  316 public: |  316 public: | 
|  317     LoseContextOnFirstGetContext() |  317     LoseContextOnFirstGetContext() | 
|  318         : m_contextLost(false) |  318         : m_contextLost(false) | 
| (...skipping 22 matching lines...) Expand all  Loading... | 
|  341         return m_contextLost ? 1 : 0; |  341         return m_contextLost ? 1 : 0; | 
|  342     } |  342     } | 
|  343  |  343  | 
|  344 private: |  344 private: | 
|  345     bool m_contextLost; |  345     bool m_contextLost; | 
|  346 }; |  346 }; | 
|  347  |  347  | 
|  348 TEST(GLRendererTest2, initializationWithQuicklyLostContextDoesNotAssert) |  348 TEST(GLRendererTest2, initializationWithQuicklyLostContextDoesNotAssert) | 
|  349 { |  349 { | 
|  350     FakeRendererClient mockClient; |  350     FakeRendererClient mockClient; | 
|  351     scoped_ptr<OutputSurface> context(FakeWebCompositorOutputSurface::create(sco
     ped_ptr<WebKit::WebGraphicsContext3D>(new LoseContextOnFirstGetContext))); |  351     scoped_ptr<OutputSurface> context(FakeOutputSurface::Create3d(scoped_ptr<Web
     Kit::WebGraphicsContext3D>(new LoseContextOnFirstGetContext))); | 
|  352     scoped_ptr<ResourceProvider> resourceProvider(ResourceProvider::create(conte
     xt.get())); |  352     scoped_ptr<ResourceProvider> resourceProvider(ResourceProvider::create(conte
     xt.get())); | 
|  353     FakeRendererGL renderer(&mockClient, resourceProvider.get()); |  353     FakeRendererGL renderer(&mockClient, resourceProvider.get()); | 
|  354  |  354  | 
|  355     renderer.initialize(); |  355     renderer.initialize(); | 
|  356 } |  356 } | 
|  357  |  357  | 
|  358 class ContextThatDoesNotSupportMemoryManagmentExtensions : public FakeWebGraphic
     sContext3D { |  358 class ContextThatDoesNotSupportMemoryManagmentExtensions : public FakeWebGraphic
     sContext3D { | 
|  359 public: |  359 public: | 
|  360     ContextThatDoesNotSupportMemoryManagmentExtensions() { } |  360     ContextThatDoesNotSupportMemoryManagmentExtensions() { } | 
|  361  |  361  | 
|  362     // WebGraphicsContext3D methods. |  362     // WebGraphicsContext3D methods. | 
|  363  |  363  | 
|  364     // This method would normally do a glSwapBuffers under the hood. |  364     // This method would normally do a glSwapBuffers under the hood. | 
|  365     virtual void prepareTexture() { } |  365     virtual void prepareTexture() { } | 
|  366     virtual void setMemoryAllocationChangedCallbackCHROMIUM(WebGraphicsMemoryAll
     ocationChangedCallbackCHROMIUM* callback) { } |  366     virtual void setMemoryAllocationChangedCallbackCHROMIUM(WebGraphicsMemoryAll
     ocationChangedCallbackCHROMIUM* callback) { } | 
|  367     virtual WebString getString(WebKit::WGC3Denum name) { return WebString(); } |  367     virtual WebString getString(WebKit::WGC3Denum name) { return WebString(); } | 
|  368 }; |  368 }; | 
|  369  |  369  | 
|  370 TEST(GLRendererTest2, initializationWithoutGpuMemoryManagerExtensionSupportShoul
     dDefaultToNonZeroAllocation) |  370 TEST(GLRendererTest2, initializationWithoutGpuMemoryManagerExtensionSupportShoul
     dDefaultToNonZeroAllocation) | 
|  371 { |  371 { | 
|  372     FakeRendererClient mockClient; |  372     FakeRendererClient mockClient; | 
|  373     scoped_ptr<OutputSurface> outputSurface(FakeWebCompositorOutputSurface::crea
     te(scoped_ptr<WebKit::WebGraphicsContext3D>(new ContextThatDoesNotSupportMemoryM
     anagmentExtensions))); |  373     scoped_ptr<OutputSurface> outputSurface(FakeOutputSurface::Create3d(scoped_p
     tr<WebKit::WebGraphicsContext3D>(new ContextThatDoesNotSupportMemoryManagmentExt
     ensions))); | 
|  374     scoped_ptr<ResourceProvider> resourceProvider(ResourceProvider::create(outpu
     tSurface.get())); |  374     scoped_ptr<ResourceProvider> resourceProvider(ResourceProvider::create(outpu
     tSurface.get())); | 
|  375     FakeRendererGL renderer(&mockClient, resourceProvider.get()); |  375     FakeRendererGL renderer(&mockClient, resourceProvider.get()); | 
|  376  |  376  | 
|  377     renderer.initialize(); |  377     renderer.initialize(); | 
|  378  |  378  | 
|  379     EXPECT_GT(mockClient.memoryAllocationLimitBytes(), 0ul); |  379     EXPECT_GT(mockClient.memoryAllocationLimitBytes(), 0ul); | 
|  380 } |  380 } | 
|  381  |  381  | 
|  382 class ClearCountingContext : public FakeWebGraphicsContext3D { |  382 class ClearCountingContext : public FakeWebGraphicsContext3D { | 
|  383 public: |  383 public: | 
|  384     ClearCountingContext() : m_clear(0) { } |  384     ClearCountingContext() : m_clear(0) { } | 
|  385  |  385  | 
|  386     virtual void clear(WGC3Dbitfield) |  386     virtual void clear(WGC3Dbitfield) | 
|  387     { |  387     { | 
|  388         m_clear++; |  388         m_clear++; | 
|  389     } |  389     } | 
|  390  |  390  | 
|  391     int clearCount() const { return m_clear; } |  391     int clearCount() const { return m_clear; } | 
|  392  |  392  | 
|  393 private: |  393 private: | 
|  394     int m_clear; |  394     int m_clear; | 
|  395 }; |  395 }; | 
|  396  |  396  | 
|  397 TEST(GLRendererTest2, opaqueBackground) |  397 TEST(GLRendererTest2, opaqueBackground) | 
|  398 { |  398 { | 
|  399     FakeRendererClient mockClient; |  399     FakeRendererClient mockClient; | 
|  400     scoped_ptr<OutputSurface> outputSurface(FakeWebCompositorOutputSurface::crea
     te(scoped_ptr<WebKit::WebGraphicsContext3D>(new ClearCountingContext))); |  400     scoped_ptr<OutputSurface> outputSurface(FakeOutputSurface::Create3d(scoped_p
     tr<WebKit::WebGraphicsContext3D>(new ClearCountingContext))); | 
|  401     ClearCountingContext* context = static_cast<ClearCountingContext*>(outputSur
     face->context3D()); |  401     ClearCountingContext* context = static_cast<ClearCountingContext*>(outputSur
     face->Context3D()); | 
|  402     scoped_ptr<ResourceProvider> resourceProvider(ResourceProvider::create(outpu
     tSurface.get())); |  402     scoped_ptr<ResourceProvider> resourceProvider(ResourceProvider::create(outpu
     tSurface.get())); | 
|  403     FakeRendererGL renderer(&mockClient, resourceProvider.get()); |  403     FakeRendererGL renderer(&mockClient, resourceProvider.get()); | 
|  404  |  404  | 
|  405     mockClient.rootRenderPass()->has_transparent_background = false; |  405     mockClient.rootRenderPass()->has_transparent_background = false; | 
|  406  |  406  | 
|  407     EXPECT_TRUE(renderer.initialize()); |  407     EXPECT_TRUE(renderer.initialize()); | 
|  408  |  408  | 
|  409     renderer.drawFrame(mockClient.renderPassesInDrawOrder(), mockClient.renderPa
     sses()); |  409     renderer.drawFrame(mockClient.renderPassesInDrawOrder(), mockClient.renderPa
     sses()); | 
|  410  |  410  | 
|  411     // On DEBUG builds, render passes with opaque background clear to blue to |  411     // On DEBUG builds, render passes with opaque background clear to blue to | 
|  412     // easily see regions that were not drawn on the screen. |  412     // easily see regions that were not drawn on the screen. | 
|  413 #ifdef NDEBUG |  413 #ifdef NDEBUG | 
|  414     EXPECT_EQ(0, context->clearCount()); |  414     EXPECT_EQ(0, context->clearCount()); | 
|  415 #else |  415 #else | 
|  416     EXPECT_EQ(1, context->clearCount()); |  416     EXPECT_EQ(1, context->clearCount()); | 
|  417 #endif |  417 #endif | 
|  418 } |  418 } | 
|  419  |  419  | 
|  420 TEST(GLRendererTest2, transparentBackground) |  420 TEST(GLRendererTest2, transparentBackground) | 
|  421 { |  421 { | 
|  422     FakeRendererClient mockClient; |  422     FakeRendererClient mockClient; | 
|  423     scoped_ptr<OutputSurface> outputSurface(FakeWebCompositorOutputSurface::crea
     te(scoped_ptr<WebKit::WebGraphicsContext3D>(new ClearCountingContext))); |  423     scoped_ptr<OutputSurface> outputSurface(FakeOutputSurface::Create3d(scoped_p
     tr<WebKit::WebGraphicsContext3D>(new ClearCountingContext))); | 
|  424     ClearCountingContext* context = static_cast<ClearCountingContext*>(outputSur
     face->context3D()); |  424     ClearCountingContext* context = static_cast<ClearCountingContext*>(outputSur
     face->Context3D()); | 
|  425     scoped_ptr<ResourceProvider> resourceProvider(ResourceProvider::create(outpu
     tSurface.get())); |  425     scoped_ptr<ResourceProvider> resourceProvider(ResourceProvider::create(outpu
     tSurface.get())); | 
|  426     FakeRendererGL renderer(&mockClient, resourceProvider.get()); |  426     FakeRendererGL renderer(&mockClient, resourceProvider.get()); | 
|  427  |  427  | 
|  428     mockClient.rootRenderPass()->has_transparent_background = true; |  428     mockClient.rootRenderPass()->has_transparent_background = true; | 
|  429  |  429  | 
|  430     EXPECT_TRUE(renderer.initialize()); |  430     EXPECT_TRUE(renderer.initialize()); | 
|  431  |  431  | 
|  432     renderer.drawFrame(mockClient.renderPassesInDrawOrder(), mockClient.renderPa
     sses()); |  432     renderer.drawFrame(mockClient.renderPassesInDrawOrder(), mockClient.renderPa
     sses()); | 
|  433  |  433  | 
|  434     EXPECT_EQ(1, context->clearCount()); |  434     EXPECT_EQ(1, context->clearCount()); | 
| (...skipping 29 matching lines...) Expand all  Loading... | 
|  464     // Methods added for test. |  464     // Methods added for test. | 
|  465     void setLastCallWasSetVisibilityPointer(bool* lastCallWasSetVisibility) { m_
     lastCallWasSetVisibility = lastCallWasSetVisibility; } |  465     void setLastCallWasSetVisibilityPointer(bool* lastCallWasSetVisibility) { m_
     lastCallWasSetVisibility = lastCallWasSetVisibility; } | 
|  466  |  466  | 
|  467 private: |  467 private: | 
|  468     bool* m_lastCallWasSetVisibility; |  468     bool* m_lastCallWasSetVisibility; | 
|  469 }; |  469 }; | 
|  470  |  470  | 
|  471 TEST(GLRendererTest2, visibilityChangeIsLastCall) |  471 TEST(GLRendererTest2, visibilityChangeIsLastCall) | 
|  472 { |  472 { | 
|  473     FakeRendererClient mockClient; |  473     FakeRendererClient mockClient; | 
|  474     scoped_ptr<OutputSurface> outputSurface(FakeWebCompositorOutputSurface::crea
     te(scoped_ptr<WebKit::WebGraphicsContext3D>(new VisibilityChangeIsLastCallTracki
     ngContext))); |  474     scoped_ptr<OutputSurface> outputSurface(FakeOutputSurface::Create3d(scoped_p
     tr<WebKit::WebGraphicsContext3D>(new VisibilityChangeIsLastCallTrackingContext))
     ); | 
|  475     VisibilityChangeIsLastCallTrackingContext* context = static_cast<VisibilityC
     hangeIsLastCallTrackingContext*>(outputSurface->context3D()); |  475     VisibilityChangeIsLastCallTrackingContext* context = static_cast<VisibilityC
     hangeIsLastCallTrackingContext*>(outputSurface->Context3D()); | 
|  476     scoped_ptr<ResourceProvider> resourceProvider(ResourceProvider::create(outpu
     tSurface.get())); |  476     scoped_ptr<ResourceProvider> resourceProvider(ResourceProvider::create(outpu
     tSurface.get())); | 
|  477     FakeRendererGL renderer(&mockClient, resourceProvider.get()); |  477     FakeRendererGL renderer(&mockClient, resourceProvider.get()); | 
|  478  |  478  | 
|  479     EXPECT_TRUE(renderer.initialize()); |  479     EXPECT_TRUE(renderer.initialize()); | 
|  480  |  480  | 
|  481     bool lastCallWasSetVisiblity = false; |  481     bool lastCallWasSetVisiblity = false; | 
|  482     // Ensure that the call to setVisibilityCHROMIUM is the last call issue to t
     he GPU |  482     // Ensure that the call to setVisibilityCHROMIUM is the last call issue to t
     he GPU | 
|  483     // process, after glFlush is called, and after the RendererClient's enforceM
     anagedMemoryPolicy |  483     // process, after glFlush is called, and after the RendererClient's enforceM
     anagedMemoryPolicy | 
|  484     // is called. Plumb this tracking between both the RenderClient and the Cont
     ext by giving |  484     // is called. Plumb this tracking between both the RenderClient and the Cont
     ext by giving | 
|  485     // them both a pointer to a variable on the stack. |  485     // them both a pointer to a variable on the stack. | 
| (...skipping 30 matching lines...) Expand all  Loading... | 
|  516  |  516  | 
|  517     WGC3Denum activeTexture() const { return m_activeTexture; } |  517     WGC3Denum activeTexture() const { return m_activeTexture; } | 
|  518  |  518  | 
|  519 private: |  519 private: | 
|  520     WGC3Denum m_activeTexture; |  520     WGC3Denum m_activeTexture; | 
|  521 }; |  521 }; | 
|  522  |  522  | 
|  523 TEST(GLRendererTest2, activeTextureState) |  523 TEST(GLRendererTest2, activeTextureState) | 
|  524 { |  524 { | 
|  525     FakeRendererClient fakeClient; |  525     FakeRendererClient fakeClient; | 
|  526     scoped_ptr<OutputSurface> outputSurface(FakeWebCompositorOutputSurface::crea
     te(scoped_ptr<WebKit::WebGraphicsContext3D>(new TextureStateTrackingContext))); |  526     scoped_ptr<OutputSurface> outputSurface(FakeOutputSurface::Create3d(scoped_p
     tr<WebKit::WebGraphicsContext3D>(new TextureStateTrackingContext))); | 
|  527     TextureStateTrackingContext* context = static_cast<TextureStateTrackingConte
     xt*>(outputSurface->context3D()); |  527     TextureStateTrackingContext* context = static_cast<TextureStateTrackingConte
     xt*>(outputSurface->Context3D()); | 
|  528     scoped_ptr<ResourceProvider> resourceProvider(ResourceProvider::create(outpu
     tSurface.get())); |  528     scoped_ptr<ResourceProvider> resourceProvider(ResourceProvider::create(outpu
     tSurface.get())); | 
|  529     FakeRendererGL renderer(&fakeClient, resourceProvider.get()); |  529     FakeRendererGL renderer(&fakeClient, resourceProvider.get()); | 
|  530  |  530  | 
|  531     // During initialization we are allowed to set any texture parameters. |  531     // During initialization we are allowed to set any texture parameters. | 
|  532     EXPECT_CALL(*context, texParameteri(_, _, _)).Times(AnyNumber()); |  532     EXPECT_CALL(*context, texParameteri(_, _, _)).Times(AnyNumber()); | 
|  533     EXPECT_TRUE(renderer.initialize()); |  533     EXPECT_TRUE(renderer.initialize()); | 
|  534  |  534  | 
|  535     cc::RenderPass::Id id(1, 1); |  535     cc::RenderPass::Id id(1, 1); | 
|  536     scoped_ptr<TestRenderPass> pass = TestRenderPass::Create(); |  536     scoped_ptr<TestRenderPass> pass = TestRenderPass::Create(); | 
|  537     pass->SetNew(id, gfx::Rect(0, 0, 100, 100), gfx::Rect(0, 0, 100, 100), gfx::
     Transform()); |  537     pass->SetNew(id, gfx::Rect(0, 0, 100, 100), gfx::Rect(0, 0, 100, 100), gfx::
     Transform()); | 
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  573          it != pass->quad_list.backToFrontEnd(); ++it) { |  573          it != pass->quad_list.backToFrontEnd(); ++it) { | 
|  574         renderer.drawQuad(drawingFrame, *it); |  574         renderer.drawQuad(drawingFrame, *it); | 
|  575     } |  575     } | 
|  576     renderer.finishDrawingQuadList(); |  576     renderer.finishDrawingQuadList(); | 
|  577     EXPECT_EQ(context->activeTexture(), GL_TEXTURE0); |  577     EXPECT_EQ(context->activeTexture(), GL_TEXTURE0); | 
|  578     Mock::VerifyAndClearExpectations(context); |  578     Mock::VerifyAndClearExpectations(context); | 
|  579 } |  579 } | 
|  580  |  580  | 
|  581 }  // namespace |  581 }  // namespace | 
|  582 }  // namespace cc |  582 }  // namespace cc | 
| OLD | NEW |