OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/raster/raster_buffer_provider.h" | 5 #include "cc/raster/raster_buffer_provider.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
155 base::ThreadTaskRunnerHandle::Get().get(), | 155 base::ThreadTaskRunnerHandle::Get().get(), |
156 base::Bind(&RasterBufferProviderTest::AllTileTasksFinished, | 156 base::Bind(&RasterBufferProviderTest::AllTileTasksFinished, |
157 base::Unretained(this))), | 157 base::Unretained(this))), |
158 timeout_seconds_(5), | 158 timeout_seconds_(5), |
159 timed_out_(false) {} | 159 timed_out_(false) {} |
160 | 160 |
161 // Overridden from testing::Test: | 161 // Overridden from testing::Test: |
162 void SetUp() override { | 162 void SetUp() override { |
163 switch (GetParam()) { | 163 switch (GetParam()) { |
164 case RASTER_BUFFER_PROVIDER_TYPE_ZERO_COPY: | 164 case RASTER_BUFFER_PROVIDER_TYPE_ZERO_COPY: |
165 Create3dOutputSurfaceAndResourceProvider(); | 165 Create3dResourceProvider(); |
166 raster_buffer_provider_ = ZeroCopyRasterBufferProvider::Create( | 166 raster_buffer_provider_ = ZeroCopyRasterBufferProvider::Create( |
167 resource_provider_.get(), PlatformColor::BestTextureFormat()); | 167 resource_provider_.get(), PlatformColor::BestTextureFormat()); |
168 break; | 168 break; |
169 case RASTER_BUFFER_PROVIDER_TYPE_ONE_COPY: | 169 case RASTER_BUFFER_PROVIDER_TYPE_ONE_COPY: |
170 Create3dOutputSurfaceAndResourceProvider(); | 170 Create3dResourceProvider(); |
171 raster_buffer_provider_ = base::MakeUnique<OneCopyRasterBufferProvider>( | 171 raster_buffer_provider_ = base::MakeUnique<OneCopyRasterBufferProvider>( |
172 base::ThreadTaskRunnerHandle::Get().get(), context_provider_.get(), | 172 base::ThreadTaskRunnerHandle::Get().get(), context_provider_.get(), |
173 worker_context_provider_.get(), resource_provider_.get(), | 173 worker_context_provider_.get(), resource_provider_.get(), |
174 kMaxBytesPerCopyOperation, false, kMaxStagingBuffers, | 174 kMaxBytesPerCopyOperation, false, kMaxStagingBuffers, |
175 PlatformColor::BestTextureFormat(), false); | 175 PlatformColor::BestTextureFormat(), false); |
176 break; | 176 break; |
177 case RASTER_BUFFER_PROVIDER_TYPE_GPU: | 177 case RASTER_BUFFER_PROVIDER_TYPE_GPU: |
178 Create3dOutputSurfaceAndResourceProvider(); | 178 Create3dResourceProvider(); |
179 raster_buffer_provider_ = base::MakeUnique<GpuRasterBufferProvider>( | 179 raster_buffer_provider_ = base::MakeUnique<GpuRasterBufferProvider>( |
180 context_provider_.get(), worker_context_provider_.get(), | 180 context_provider_.get(), worker_context_provider_.get(), |
181 resource_provider_.get(), false, 0, false); | 181 resource_provider_.get(), false, 0, false); |
182 break; | 182 break; |
183 case RASTER_BUFFER_PROVIDER_TYPE_BITMAP: | 183 case RASTER_BUFFER_PROVIDER_TYPE_BITMAP: |
184 CreateSoftwareOutputSurfaceAndResourceProvider(); | 184 CreateSoftwareResourceProvider(); |
185 raster_buffer_provider_ = | 185 raster_buffer_provider_ = |
186 BitmapRasterBufferProvider::Create(resource_provider_.get()); | 186 BitmapRasterBufferProvider::Create(resource_provider_.get()); |
187 break; | 187 break; |
188 } | 188 } |
189 | 189 |
190 DCHECK(raster_buffer_provider_); | 190 DCHECK(raster_buffer_provider_); |
191 | 191 |
192 tile_task_manager_ = TileTaskManagerImpl::Create(&task_graph_runner_); | 192 tile_task_manager_ = TileTaskManagerImpl::Create(&task_graph_runner_); |
193 } | 193 } |
194 | 194 |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 unsigned id, | 272 unsigned id, |
273 bool was_canceled) override { | 273 bool was_canceled) override { |
274 raster_buffer_provider_->ReleaseBufferForRaster(std::move(raster_buffer)); | 274 raster_buffer_provider_->ReleaseBufferForRaster(std::move(raster_buffer)); |
275 RasterTaskResult result; | 275 RasterTaskResult result; |
276 result.id = id; | 276 result.id = id; |
277 result.canceled = was_canceled; | 277 result.canceled = was_canceled; |
278 completed_tasks_.push_back(result); | 278 completed_tasks_.push_back(result); |
279 } | 279 } |
280 | 280 |
281 private: | 281 private: |
282 void Create3dOutputSurfaceAndResourceProvider() { | 282 void Create3dResourceProvider() { |
283 output_surface_ = FakeOutputSurface::Create3d(context_provider_, | |
284 worker_context_provider_); | |
285 CHECK(output_surface_->BindToClient(&output_surface_client_)); | |
286 TestWebGraphicsContext3D* context3d = context_provider_->TestContext3d(); | 283 TestWebGraphicsContext3D* context3d = context_provider_->TestContext3d(); |
287 context3d->set_support_sync_query(true); | 284 context3d->set_support_sync_query(true); |
288 resource_provider_ = FakeResourceProvider::Create( | 285 resource_provider_ = FakeResourceProvider::Create( |
289 output_surface_.get(), nullptr, &gpu_memory_buffer_manager_); | 286 context_provider_.get(), &shared_bitmap_manager_, |
| 287 &gpu_memory_buffer_manager_); |
290 } | 288 } |
291 | 289 |
292 void CreateSoftwareOutputSurfaceAndResourceProvider() { | 290 void CreateSoftwareResourceProvider() { |
293 output_surface_ = FakeOutputSurface::CreateSoftware( | |
294 base::WrapUnique(new SoftwareOutputDevice)); | |
295 CHECK(output_surface_->BindToClient(&output_surface_client_)); | |
296 resource_provider_ = FakeResourceProvider::Create( | 291 resource_provider_ = FakeResourceProvider::Create( |
297 output_surface_.get(), &shared_bitmap_manager_, nullptr); | 292 nullptr, &shared_bitmap_manager_, &gpu_memory_buffer_manager_); |
298 } | 293 } |
299 | 294 |
300 void OnTimeout() { | 295 void OnTimeout() { |
301 timed_out_ = true; | 296 timed_out_ = true; |
302 base::MessageLoop::current()->QuitWhenIdle(); | 297 base::MessageLoop::current()->QuitWhenIdle(); |
303 } | 298 } |
304 | 299 |
305 protected: | 300 protected: |
306 scoped_refptr<TestContextProvider> context_provider_; | 301 scoped_refptr<TestContextProvider> context_provider_; |
307 scoped_refptr<TestContextProvider> worker_context_provider_; | 302 scoped_refptr<TestContextProvider> worker_context_provider_; |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
390 | 385 |
391 INSTANTIATE_TEST_CASE_P(RasterBufferProviderTests, | 386 INSTANTIATE_TEST_CASE_P(RasterBufferProviderTests, |
392 RasterBufferProviderTest, | 387 RasterBufferProviderTest, |
393 ::testing::Values(RASTER_BUFFER_PROVIDER_TYPE_ZERO_COPY, | 388 ::testing::Values(RASTER_BUFFER_PROVIDER_TYPE_ZERO_COPY, |
394 RASTER_BUFFER_PROVIDER_TYPE_ONE_COPY, | 389 RASTER_BUFFER_PROVIDER_TYPE_ONE_COPY, |
395 RASTER_BUFFER_PROVIDER_TYPE_GPU, | 390 RASTER_BUFFER_PROVIDER_TYPE_GPU, |
396 RASTER_BUFFER_PROVIDER_TYPE_BITMAP)); | 391 RASTER_BUFFER_PROVIDER_TYPE_BITMAP)); |
397 | 392 |
398 } // namespace | 393 } // namespace |
399 } // namespace cc | 394 } // namespace cc |
OLD | NEW |