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

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

Issue 2443003004: cc: Make OutputSurface::BindToClient pure virtual and not return bool (Closed)
Patch Set: bindtoclient-pure-virtual: rebase Created 4 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
« no previous file with comments | « cc/output/output_surface_unittest.cc ('k') | cc/output/software_renderer_unittest.cc » ('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 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 #include <vector>
9 9
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 149
150 class OverlayOutputSurface : public OutputSurface { 150 class OverlayOutputSurface : public OutputSurface {
151 public: 151 public:
152 explicit OverlayOutputSurface( 152 explicit OverlayOutputSurface(
153 scoped_refptr<TestContextProvider> context_provider) 153 scoped_refptr<TestContextProvider> context_provider)
154 : OutputSurface(std::move(context_provider)) { 154 : OutputSurface(std::move(context_provider)) {
155 is_displayed_as_overlay_plane_ = true; 155 is_displayed_as_overlay_plane_ = true;
156 } 156 }
157 157
158 // OutputSurface implementation. 158 // OutputSurface implementation.
159 void BindToClient(OutputSurfaceClient* client) override {}
159 void EnsureBackbuffer() override {} 160 void EnsureBackbuffer() override {}
160 void DiscardBackbuffer() override {} 161 void DiscardBackbuffer() override {}
161 void BindFramebuffer() override { 162 void BindFramebuffer() override {
162 bind_framebuffer_count_ += 1; 163 bind_framebuffer_count_ += 1;
163 } 164 }
164 void Reshape(const gfx::Size& size, 165 void Reshape(const gfx::Size& size,
165 float device_scale_factor, 166 float device_scale_factor,
166 const gfx::ColorSpace& color_space, 167 const gfx::ColorSpace& color_space,
167 bool has_alpha) override {} 168 bool has_alpha) override {}
168 void SwapBuffers(OutputSurfaceFrame frame) override {} 169 void SwapBuffers(OutputSurfaceFrame frame) override {}
169 uint32_t GetFramebufferCopyTextureFormat() override { 170 uint32_t GetFramebufferCopyTextureFormat() override {
170 // TestContextProvider has no real framebuffer, just use RGB. 171 // TestContextProvider has no real framebuffer, just use RGB.
171 return GL_RGB; 172 return GL_RGB;
172 } 173 }
173 bool HasExternalStencilTest() const override { return false; } 174 bool HasExternalStencilTest() const override { return false; }
174 void ApplyExternalStencil() override {} 175 void ApplyExternalStencil() override {}
175 OverlayCandidateValidator* GetOverlayCandidateValidator() const override { 176 OverlayCandidateValidator* GetOverlayCandidateValidator() const override {
176 return overlay_candidate_validator_.get(); 177 return overlay_candidate_validator_.get();
177 } 178 }
178 bool IsDisplayedAsOverlayPlane() const override { 179 bool IsDisplayedAsOverlayPlane() const override {
179 return is_displayed_as_overlay_plane_; 180 return is_displayed_as_overlay_plane_;
180 } 181 }
181 unsigned GetOverlayTextureId() const override { return 10000; } 182 unsigned GetOverlayTextureId() const override { return 10000; }
182 bool SurfaceIsSuspendForRecycle() const override { return false; } 183 bool SurfaceIsSuspendForRecycle() const override { return false; }
183 184
184 void OnSwapBuffersComplete() { client_->DidReceiveSwapBuffersAck(); }
185
186 void set_is_displayed_as_overlay_plane(bool value) { 185 void set_is_displayed_as_overlay_plane(bool value) {
187 is_displayed_as_overlay_plane_ = value; 186 is_displayed_as_overlay_plane_ = value;
188 } 187 }
189 188
190 void SetOverlayCandidateValidator(OverlayCandidateValidator* validator) { 189 void SetOverlayCandidateValidator(OverlayCandidateValidator* validator) {
191 overlay_candidate_validator_.reset(validator); 190 overlay_candidate_validator_.reset(validator);
192 } 191 }
193 192
194 unsigned bind_framebuffer_count() const { return bind_framebuffer_count_; } 193 unsigned bind_framebuffer_count() const { return bind_framebuffer_count_; }
195 194
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 act_iter->shared_quad_state->quad_layer_bounds.ToString()); 344 act_iter->shared_quad_state->quad_layer_bounds.ToString());
346 } 345 }
347 } 346 }
348 } 347 }
349 348
350 template <typename OverlayCandidateValidatorType> 349 template <typename OverlayCandidateValidatorType>
351 class OverlayTest : public testing::Test { 350 class OverlayTest : public testing::Test {
352 protected: 351 protected:
353 void SetUp() override { 352 void SetUp() override {
354 provider_ = TestContextProvider::Create(); 353 provider_ = TestContextProvider::Create();
354 provider_->BindToCurrentThread();
355 output_surface_.reset(new OverlayOutputSurface(provider_)); 355 output_surface_.reset(new OverlayOutputSurface(provider_));
356 EXPECT_TRUE(output_surface_->BindToClient(&client_)); 356 output_surface_->BindToClient(&client_);
357 output_surface_->SetOverlayCandidateValidator( 357 output_surface_->SetOverlayCandidateValidator(
358 new OverlayCandidateValidatorType); 358 new OverlayCandidateValidatorType);
359 359
360 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); 360 shared_bitmap_manager_.reset(new TestSharedBitmapManager());
361 resource_provider_ = FakeResourceProvider::Create( 361 resource_provider_ = FakeResourceProvider::Create(
362 provider_.get(), shared_bitmap_manager_.get()); 362 provider_.get(), shared_bitmap_manager_.get());
363 363
364 overlay_processor_.reset(new OverlayProcessor(output_surface_.get())); 364 overlay_processor_.reset(new OverlayProcessor(output_surface_.get()));
365 overlay_processor_->Initialize(); 365 overlay_processor_->Initialize();
366 } 366 }
(...skipping 16 matching lines...) Expand all
383 scoped_refptr<TestContextProvider> provider = TestContextProvider::Create(); 383 scoped_refptr<TestContextProvider> provider = TestContextProvider::Create();
384 OverlayOutputSurface output_surface(provider); 384 OverlayOutputSurface output_surface(provider);
385 EXPECT_EQ(NULL, output_surface.GetOverlayCandidateValidator()); 385 EXPECT_EQ(NULL, output_surface.GetOverlayCandidateValidator());
386 386
387 output_surface.SetOverlayCandidateValidator(new SingleOverlayValidator); 387 output_surface.SetOverlayCandidateValidator(new SingleOverlayValidator);
388 EXPECT_TRUE(output_surface.GetOverlayCandidateValidator() != NULL); 388 EXPECT_TRUE(output_surface.GetOverlayCandidateValidator() != NULL);
389 } 389 }
390 390
391 TEST(OverlayTest, OverlaysProcessorHasStrategy) { 391 TEST(OverlayTest, OverlaysProcessorHasStrategy) {
392 scoped_refptr<TestContextProvider> provider = TestContextProvider::Create(); 392 scoped_refptr<TestContextProvider> provider = TestContextProvider::Create();
393 provider->BindToCurrentThread();
393 OverlayOutputSurface output_surface(provider); 394 OverlayOutputSurface output_surface(provider);
394 FakeOutputSurfaceClient client; 395 FakeOutputSurfaceClient client;
395 EXPECT_TRUE(output_surface.BindToClient(&client)); 396 output_surface.BindToClient(&client);
396 output_surface.SetOverlayCandidateValidator(new SingleOverlayValidator); 397 output_surface.SetOverlayCandidateValidator(new SingleOverlayValidator);
397 398
398 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 399 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
399 new TestSharedBitmapManager()); 400 new TestSharedBitmapManager());
400 std::unique_ptr<ResourceProvider> resource_provider = 401 std::unique_ptr<ResourceProvider> resource_provider =
401 FakeResourceProvider::Create(provider.get(), shared_bitmap_manager.get()); 402 FakeResourceProvider::Create(provider.get(), shared_bitmap_manager.get());
402 403
403 std::unique_ptr<DefaultOverlayProcessor> overlay_processor( 404 std::unique_ptr<DefaultOverlayProcessor> overlay_processor(
404 new DefaultOverlayProcessor(&output_surface)); 405 new DefaultOverlayProcessor(&output_surface));
405 overlay_processor->Initialize(); 406 overlay_processor->Initialize();
(...skipping 898 matching lines...) Expand 10 before | Expand all | Expand 10 after
1304 gfx::OverlayTransform plane_transform, 1305 gfx::OverlayTransform plane_transform,
1305 unsigned overlay_texture_id, 1306 unsigned overlay_texture_id,
1306 const gfx::Rect& display_bounds, 1307 const gfx::Rect& display_bounds,
1307 const gfx::RectF& uv_rect)); 1308 const gfx::RectF& uv_rect));
1308 }; 1309 };
1309 1310
1310 class GLRendererWithOverlaysTest : public testing::Test { 1311 class GLRendererWithOverlaysTest : public testing::Test {
1311 protected: 1312 protected:
1312 GLRendererWithOverlaysTest() { 1313 GLRendererWithOverlaysTest() {
1313 provider_ = TestContextProvider::Create(); 1314 provider_ = TestContextProvider::Create();
1315 provider_->BindToCurrentThread();
1314 output_surface_.reset(new OverlayOutputSurface(provider_)); 1316 output_surface_.reset(new OverlayOutputSurface(provider_));
1315 CHECK(output_surface_->BindToClient(&output_surface_client_)); 1317 output_surface_->BindToClient(&output_surface_client_);
1316 resource_provider_ = FakeResourceProvider::Create(provider_.get(), nullptr); 1318 resource_provider_ = FakeResourceProvider::Create(provider_.get(), nullptr);
1317 1319
1318 provider_->support()->SetScheduleOverlayPlaneCallback(base::Bind( 1320 provider_->support()->SetScheduleOverlayPlaneCallback(base::Bind(
1319 &MockOverlayScheduler::Schedule, base::Unretained(&scheduler_))); 1321 &MockOverlayScheduler::Schedule, base::Unretained(&scheduler_)));
1320 } 1322 }
1321 1323
1322 void Init(bool use_validator) { 1324 void Init(bool use_validator) {
1323 if (use_validator) 1325 if (use_validator)
1324 output_surface_->SetOverlayCandidateValidator(new SingleOverlayValidator); 1326 output_surface_->SetOverlayCandidateValidator(new SingleOverlayValidator);
1325 1327
1326 renderer_ = base::MakeUnique<OverlayInfoRendererGL>( 1328 renderer_ = base::MakeUnique<OverlayInfoRendererGL>(
1327 &settings_, output_surface_.get(), resource_provider_.get()); 1329 &settings_, output_surface_.get(), resource_provider_.get());
1328 renderer_->Initialize(); 1330 renderer_->Initialize();
1329 renderer_->SetVisible(true); 1331 renderer_->SetVisible(true);
1330 } 1332 }
1331 1333
1332 void DrawFrame(RenderPassList* pass_list, const gfx::Size& viewport_size) { 1334 void DrawFrame(RenderPassList* pass_list, const gfx::Size& viewport_size) {
1333 renderer_->DrawFrame(pass_list, 1.f, gfx::ColorSpace(), viewport_size); 1335 renderer_->DrawFrame(pass_list, 1.f, gfx::ColorSpace(), viewport_size);
1334 } 1336 }
1335 void SwapBuffers() { 1337 void SwapBuffers() {
1336 renderer_->SwapBuffers(std::vector<ui::LatencyInfo>()); 1338 renderer_->SwapBuffers(std::vector<ui::LatencyInfo>());
1337 output_surface_->OnSwapBuffersComplete();
1338 renderer_->SwapBuffersComplete(); 1339 renderer_->SwapBuffersComplete();
1339 } 1340 }
1340 void SwapBuffersWithoutComplete() { 1341 void SwapBuffersWithoutComplete() {
1341 renderer_->SwapBuffers(std::vector<ui::LatencyInfo>()); 1342 renderer_->SwapBuffers(std::vector<ui::LatencyInfo>());
1342 } 1343 }
1343 void SwapBuffersComplete() { 1344 void SwapBuffersComplete() {
1344 output_surface_->OnSwapBuffersComplete();
1345 renderer_->SwapBuffersComplete(); 1345 renderer_->SwapBuffersComplete();
1346 } 1346 }
1347 void ReturnResourceInUseQuery(ResourceId id) { 1347 void ReturnResourceInUseQuery(ResourceId id) {
1348 ResourceProvider::ScopedReadLockGL lock(resource_provider_.get(), id); 1348 ResourceProvider::ScopedReadLockGL lock(resource_provider_.get(), id);
1349 gpu::TextureInUseResponse response; 1349 gpu::TextureInUseResponse response;
1350 response.texture = lock.texture_id(); 1350 response.texture = lock.texture_id();
1351 response.in_use = false; 1351 response.in_use = false;
1352 gpu::TextureInUseResponses responses; 1352 gpu::TextureInUseResponses responses;
1353 responses.push_back(response); 1353 responses.push_back(response);
1354 renderer_->DidReceiveTextureInUseResponses(responses); 1354 renderer_->DidReceiveTextureInUseResponses(responses);
(...skipping 542 matching lines...) Expand 10 before | Expand all | Expand 10 after
1897 gfx::Size(), filters_, gfx::Vector2dF(1, 1), gfx::PointF(), 1897 gfx::Size(), filters_, gfx::Vector2dF(1, 1), gfx::PointF(),
1898 background_filters_); 1898 background_filters_);
1899 } 1899 }
1900 1900
1901 ProcessForOverlays(); 1901 ProcessForOverlays();
1902 EXPECT_EQ(0U, ca_layer_list_.size()); 1902 EXPECT_EQ(0U, ca_layer_list_.size());
1903 } 1903 }
1904 1904
1905 } // namespace 1905 } // namespace
1906 } // namespace cc 1906 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/output_surface_unittest.cc ('k') | cc/output/software_renderer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698