OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 <stddef.h> | 5 #include <stddef.h> |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
| 8 #include <vector> |
8 | 9 |
9 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
10 #include "cc/base/region.h" | 11 #include "cc/base/region.h" |
11 #include "cc/output/ca_layer_overlay.h" | 12 #include "cc/output/ca_layer_overlay.h" |
12 #include "cc/output/compositor_frame.h" | |
13 #include "cc/output/compositor_frame_metadata.h" | |
14 #include "cc/output/filter_operation.h" | 13 #include "cc/output/filter_operation.h" |
15 #include "cc/output/gl_renderer.h" | 14 #include "cc/output/gl_renderer.h" |
16 #include "cc/output/output_surface.h" | 15 #include "cc/output/output_surface.h" |
17 #include "cc/output/output_surface_client.h" | 16 #include "cc/output/output_surface_client.h" |
| 17 #include "cc/output/output_surface_frame.h" |
18 #include "cc/output/overlay_candidate_validator.h" | 18 #include "cc/output/overlay_candidate_validator.h" |
19 #include "cc/output/overlay_processor.h" | 19 #include "cc/output/overlay_processor.h" |
20 #include "cc/output/overlay_strategy_fullscreen.h" | 20 #include "cc/output/overlay_strategy_fullscreen.h" |
21 #include "cc/output/overlay_strategy_single_on_top.h" | 21 #include "cc/output/overlay_strategy_single_on_top.h" |
22 #include "cc/output/overlay_strategy_underlay.h" | 22 #include "cc/output/overlay_strategy_underlay.h" |
23 #include "cc/quads/render_pass.h" | 23 #include "cc/quads/render_pass.h" |
24 #include "cc/quads/render_pass_draw_quad.h" | 24 #include "cc/quads/render_pass_draw_quad.h" |
25 #include "cc/quads/solid_color_draw_quad.h" | 25 #include "cc/quads/solid_color_draw_quad.h" |
26 #include "cc/quads/stream_video_draw_quad.h" | 26 #include "cc/quads/stream_video_draw_quad.h" |
27 #include "cc/quads/texture_draw_quad.h" | 27 #include "cc/quads/texture_draw_quad.h" |
28 #include "cc/resources/resource_provider.h" | 28 #include "cc/resources/resource_provider.h" |
29 #include "cc/resources/texture_mailbox.h" | 29 #include "cc/resources/texture_mailbox.h" |
30 #include "cc/test/fake_output_surface_client.h" | 30 #include "cc/test/fake_output_surface_client.h" |
31 #include "cc/test/fake_resource_provider.h" | 31 #include "cc/test/fake_resource_provider.h" |
32 #include "cc/test/geometry_test_utils.h" | 32 #include "cc/test/geometry_test_utils.h" |
33 #include "cc/test/test_context_provider.h" | 33 #include "cc/test/test_context_provider.h" |
34 #include "cc/test/test_shared_bitmap_manager.h" | 34 #include "cc/test/test_shared_bitmap_manager.h" |
35 #include "cc/test/test_web_graphics_context_3d.h" | 35 #include "cc/test/test_web_graphics_context_3d.h" |
36 #include "testing/gmock/include/gmock/gmock.h" | 36 #include "testing/gmock/include/gmock/gmock.h" |
37 #include "testing/gtest/include/gtest/gtest.h" | 37 #include "testing/gtest/include/gtest/gtest.h" |
| 38 #include "ui/events/latency_info.h" |
38 #include "ui/gfx/geometry/rect_conversions.h" | 39 #include "ui/gfx/geometry/rect_conversions.h" |
39 | 40 |
40 using testing::_; | 41 using testing::_; |
41 using testing::Mock; | 42 using testing::Mock; |
42 | 43 |
43 namespace cc { | 44 namespace cc { |
44 namespace { | 45 namespace { |
45 | 46 |
46 const gfx::Size kDisplaySize(256, 256); | 47 const gfx::Size kDisplaySize(256, 256); |
47 const gfx::Rect kOverlayRect(0, 0, 256, 256); | 48 const gfx::Rect kOverlayRect(0, 0, 256, 256); |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
159 // OutputSurface implementation. | 160 // OutputSurface implementation. |
160 void EnsureBackbuffer() override {} | 161 void EnsureBackbuffer() override {} |
161 void DiscardBackbuffer() override {} | 162 void DiscardBackbuffer() override {} |
162 void BindFramebuffer() override { | 163 void BindFramebuffer() override { |
163 bind_framebuffer_count_ += 1; | 164 bind_framebuffer_count_ += 1; |
164 } | 165 } |
165 uint32_t GetFramebufferCopyTextureFormat() override { | 166 uint32_t GetFramebufferCopyTextureFormat() override { |
166 // TestContextProvider has no real framebuffer, just use RGB. | 167 // TestContextProvider has no real framebuffer, just use RGB. |
167 return GL_RGB; | 168 return GL_RGB; |
168 } | 169 } |
169 void SwapBuffers(CompositorFrame frame) override { | 170 void SwapBuffers(OutputSurfaceFrame frame) override {} |
170 } | |
171 bool HasExternalStencilTest() const override { return false; } | 171 bool HasExternalStencilTest() const override { return false; } |
172 void ApplyExternalStencil() override {} | 172 void ApplyExternalStencil() override {} |
173 OverlayCandidateValidator* GetOverlayCandidateValidator() const override { | 173 OverlayCandidateValidator* GetOverlayCandidateValidator() const override { |
174 return overlay_candidate_validator_.get(); | 174 return overlay_candidate_validator_.get(); |
175 } | 175 } |
176 bool IsDisplayedAsOverlayPlane() const override { | 176 bool IsDisplayedAsOverlayPlane() const override { |
177 return is_displayed_as_overlay_plane_; | 177 return is_displayed_as_overlay_plane_; |
178 } | 178 } |
179 unsigned GetOverlayTextureId() const override { return 10000; } | 179 unsigned GetOverlayTextureId() const override { return 10000; } |
180 void set_is_displayed_as_overlay_plane(bool value) { | 180 void set_is_displayed_as_overlay_plane(bool value) { |
(...skipping 1147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1328 &settings_, output_surface_.get(), resource_provider_.get()); | 1328 &settings_, output_surface_.get(), resource_provider_.get()); |
1329 renderer_->Initialize(); | 1329 renderer_->Initialize(); |
1330 renderer_->SetVisible(true); | 1330 renderer_->SetVisible(true); |
1331 } | 1331 } |
1332 | 1332 |
1333 void DrawFrame(RenderPassList* pass_list, const gfx::Rect& viewport_rect) { | 1333 void DrawFrame(RenderPassList* pass_list, const gfx::Rect& viewport_rect) { |
1334 renderer_->DrawFrame(pass_list, 1.f, gfx::ColorSpace(), viewport_rect, | 1334 renderer_->DrawFrame(pass_list, 1.f, gfx::ColorSpace(), viewport_rect, |
1335 viewport_rect); | 1335 viewport_rect); |
1336 } | 1336 } |
1337 void SwapBuffers() { | 1337 void SwapBuffers() { |
1338 renderer_->SwapBuffers(CompositorFrameMetadata()); | 1338 renderer_->SwapBuffers(std::vector<ui::LatencyInfo>()); |
1339 output_surface_->OnSwapBuffersComplete(); | 1339 output_surface_->OnSwapBuffersComplete(); |
1340 renderer_->SwapBuffersComplete(); | 1340 renderer_->SwapBuffersComplete(); |
1341 } | 1341 } |
1342 void SwapBuffersWithoutComplete() { | 1342 void SwapBuffersWithoutComplete() { |
1343 renderer_->SwapBuffers(CompositorFrameMetadata()); | 1343 renderer_->SwapBuffers(std::vector<ui::LatencyInfo>()); |
1344 } | 1344 } |
1345 void SwapBuffersComplete() { | 1345 void SwapBuffersComplete() { |
1346 output_surface_->OnSwapBuffersComplete(); | 1346 output_surface_->OnSwapBuffersComplete(); |
1347 renderer_->SwapBuffersComplete(); | 1347 renderer_->SwapBuffersComplete(); |
1348 } | 1348 } |
1349 void ReturnResourceInUseQuery(ResourceId id) { | 1349 void ReturnResourceInUseQuery(ResourceId id) { |
1350 ResourceProvider::ScopedReadLockGL lock(resource_provider_.get(), id); | 1350 ResourceProvider::ScopedReadLockGL lock(resource_provider_.get(), id); |
1351 gpu::TextureInUseResponse response; | 1351 gpu::TextureInUseResponse response; |
1352 response.texture = lock.texture_id(); | 1352 response.texture = lock.texture_id(); |
1353 response.in_use = false; | 1353 response.in_use = false; |
(...skipping 545 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1899 gfx::Size(), filters_, gfx::Vector2dF(1, 1), gfx::PointF(), | 1899 gfx::Size(), filters_, gfx::Vector2dF(1, 1), gfx::PointF(), |
1900 background_filters_); | 1900 background_filters_); |
1901 } | 1901 } |
1902 | 1902 |
1903 ProcessForOverlays(); | 1903 ProcessForOverlays(); |
1904 EXPECT_EQ(0U, ca_layer_list_.size()); | 1904 EXPECT_EQ(0U, ca_layer_list_.size()); |
1905 } | 1905 } |
1906 | 1906 |
1907 } // namespace | 1907 } // namespace |
1908 } // namespace cc | 1908 } // namespace cc |
OLD | NEW |