| 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/output/gl_renderer.h" | 5 #include "cc/output/gl_renderer.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <set> | 9 #include <set> |
| 10 | 10 |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 gpu::SyncToken other; | 57 gpu::SyncToken other; |
| 58 memcpy(&other, arg, sizeof(other)); | 58 memcpy(&other, arg, sizeof(other)); |
| 59 return other == sync_token; | 59 return other == sync_token; |
| 60 } | 60 } |
| 61 | 61 |
| 62 class GLRendererTest : public testing::Test { | 62 class GLRendererTest : public testing::Test { |
| 63 protected: | 63 protected: |
| 64 RenderPass* root_render_pass() { | 64 RenderPass* root_render_pass() { |
| 65 return render_passes_in_draw_order_.back().get(); | 65 return render_passes_in_draw_order_.back().get(); |
| 66 } | 66 } |
| 67 void DrawFrame(Renderer* renderer, const gfx::Rect& viewport_rect) { | 67 void DrawFrame(GLRenderer* renderer, const gfx::Rect& viewport_rect) { |
| 68 renderer->DrawFrame(&render_passes_in_draw_order_, 1.f, gfx::ColorSpace(), | 68 renderer->DrawFrame(&render_passes_in_draw_order_, 1.f, gfx::ColorSpace(), |
| 69 viewport_rect, viewport_rect); | 69 viewport_rect, viewport_rect); |
| 70 } | 70 } |
| 71 void DrawFrame(Renderer* renderer, | 71 void DrawFrame(GLRenderer* renderer, |
| 72 const gfx::Rect& viewport_rect, | 72 const gfx::Rect& viewport_rect, |
| 73 const gfx::Rect& clip_rect) { | 73 const gfx::Rect& clip_rect) { |
| 74 renderer->DrawFrame(&render_passes_in_draw_order_, 1.f, gfx::ColorSpace(), | 74 renderer->DrawFrame(&render_passes_in_draw_order_, 1.f, gfx::ColorSpace(), |
| 75 viewport_rect, clip_rect); | 75 viewport_rect, clip_rect); |
| 76 } | 76 } |
| 77 | 77 |
| 78 RenderPassList render_passes_in_draw_order_; | 78 RenderPassList render_passes_in_draw_order_; |
| 79 }; | 79 }; |
| 80 | 80 |
| 81 #define EXPECT_PROGRAM_VALID(program_binding) \ | 81 #define EXPECT_PROGRAM_VALID(program_binding) \ |
| (...skipping 2020 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2102 base::MakeUnique<GLRenderer>(&settings_, output_surface_.get(), | 2102 base::MakeUnique<GLRenderer>(&settings_, output_surface_.get(), |
| 2103 resource_provider_.get(), nullptr, 0); | 2103 resource_provider_.get(), nullptr, 0); |
| 2104 } | 2104 } |
| 2105 | 2105 |
| 2106 RendererSettings settings_; | 2106 RendererSettings settings_; |
| 2107 FakeOutputSurfaceClient output_surface_client_; | 2107 FakeOutputSurfaceClient output_surface_client_; |
| 2108 MockContextSupport* context_support_ptr_; | 2108 MockContextSupport* context_support_ptr_; |
| 2109 scoped_refptr<MockContextProvider> context_provider_; | 2109 scoped_refptr<MockContextProvider> context_provider_; |
| 2110 std::unique_ptr<OutputSurface> output_surface_; | 2110 std::unique_ptr<OutputSurface> output_surface_; |
| 2111 std::unique_ptr<ResourceProvider> resource_provider_; | 2111 std::unique_ptr<ResourceProvider> resource_provider_; |
| 2112 std::unique_ptr<Renderer> renderer_; | 2112 std::unique_ptr<GLRenderer> renderer_; |
| 2113 }; | 2113 }; |
| 2114 | 2114 |
| 2115 TEST_F(GLRendererWithMockContextTest, | 2115 TEST_F(GLRendererWithMockContextTest, |
| 2116 ContextPurgedWhenRendererBecomesInvisible) { | 2116 ContextPurgedWhenRendererBecomesInvisible) { |
| 2117 // Ensure our expectations run in order. | 2117 // Ensure our expectations run in order. |
| 2118 ::testing::InSequence s; | 2118 ::testing::InSequence s; |
| 2119 | 2119 |
| 2120 EXPECT_CALL(*context_support_ptr_, SetClientVisible(0, true)); | 2120 EXPECT_CALL(*context_support_ptr_, SetClientVisible(0, true)); |
| 2121 EXPECT_CALL(*context_support_ptr_, AnyClientsVisible()) | 2121 EXPECT_CALL(*context_support_ptr_, AnyClientsVisible()) |
| 2122 .WillOnce(Return(true)); | 2122 .WillOnce(Return(true)); |
| 2123 EXPECT_CALL(*context_support_ptr_, SetAggressivelyFreeResources(false)); | 2123 EXPECT_CALL(*context_support_ptr_, SetAggressivelyFreeResources(false)); |
| 2124 renderer_->SetVisible(true); | 2124 renderer_->SetVisible(true); |
| 2125 Mock::VerifyAndClearExpectations(context_support_ptr_); | 2125 Mock::VerifyAndClearExpectations(context_support_ptr_); |
| 2126 | 2126 |
| 2127 EXPECT_TRUE(renderer_->visible()); | |
| 2128 | |
| 2129 EXPECT_CALL(*context_support_ptr_, SetClientVisible(0, false)); | 2127 EXPECT_CALL(*context_support_ptr_, SetClientVisible(0, false)); |
| 2130 EXPECT_CALL(*context_support_ptr_, AnyClientsVisible()) | 2128 EXPECT_CALL(*context_support_ptr_, AnyClientsVisible()) |
| 2131 .WillOnce(Return(false)); | 2129 .WillOnce(Return(false)); |
| 2132 EXPECT_CALL(*context_provider_, DeleteCachedResources()); | 2130 EXPECT_CALL(*context_provider_, DeleteCachedResources()); |
| 2133 EXPECT_CALL(*context_support_ptr_, SetAggressivelyFreeResources(true)); | 2131 EXPECT_CALL(*context_support_ptr_, SetAggressivelyFreeResources(true)); |
| 2134 renderer_->SetVisible(false); | 2132 renderer_->SetVisible(false); |
| 2135 Mock::VerifyAndClearExpectations(context_support_ptr_); | 2133 Mock::VerifyAndClearExpectations(context_support_ptr_); |
| 2136 | |
| 2137 EXPECT_FALSE(renderer_->visible()); | |
| 2138 } | 2134 } |
| 2139 | 2135 |
| 2140 } // namespace | 2136 } // namespace |
| 2141 } // namespace cc | 2137 } // namespace cc |
| OLD | NEW |