| 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/resources/resource_provider.h" | 5 #include "cc/resources/resource_provider.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <map> | 8 #include <map> |
| 9 #include <set> | 9 #include <set> |
| 10 | 10 |
| (...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 409 case ResourceProvider::InvalidType: | 409 case ResourceProvider::InvalidType: |
| 410 NOTREACHED(); | 410 NOTREACHED(); |
| 411 break; | 411 break; |
| 412 } | 412 } |
| 413 CHECK(output_surface_->BindToClient(&output_surface_client_)); | 413 CHECK(output_surface_->BindToClient(&output_surface_client_)); |
| 414 CHECK(child_output_surface_->BindToClient(&child_output_surface_client_)); | 414 CHECK(child_output_surface_->BindToClient(&child_output_surface_client_)); |
| 415 | 415 |
| 416 shared_bitmap_manager_.reset(new TestSharedBitmapManager); | 416 shared_bitmap_manager_.reset(new TestSharedBitmapManager); |
| 417 gpu_memory_buffer_manager_.reset(new TestGpuMemoryBufferManager); | 417 gpu_memory_buffer_manager_.reset(new TestGpuMemoryBufferManager); |
| 418 | 418 |
| 419 resource_provider_ = | 419 resource_provider_ = ResourceProvider::Create( |
| 420 ResourceProvider::Create(output_surface_.get(), | 420 output_surface_.get(), shared_bitmap_manager_.get(), |
| 421 shared_bitmap_manager_.get(), | 421 gpu_memory_buffer_manager_.get(), main_thread_task_runner_.get(), 0, |
| 422 gpu_memory_buffer_manager_.get(), | 422 false, false, 1); |
| 423 main_thread_task_runner_.get(), | 423 child_resource_provider_ = ResourceProvider::Create( |
| 424 0, | 424 child_output_surface_.get(), shared_bitmap_manager_.get(), |
| 425 false, | 425 gpu_memory_buffer_manager_.get(), main_thread_task_runner_.get(), 0, |
| 426 1); | 426 false, false, 1); |
| 427 child_resource_provider_ = | |
| 428 ResourceProvider::Create(child_output_surface_.get(), | |
| 429 shared_bitmap_manager_.get(), | |
| 430 gpu_memory_buffer_manager_.get(), | |
| 431 main_thread_task_runner_.get(), | |
| 432 0, | |
| 433 false, | |
| 434 1); | |
| 435 } | 427 } |
| 436 | 428 |
| 437 static void CollectResources(ReturnedResourceArray* array, | 429 static void CollectResources(ReturnedResourceArray* array, |
| 438 const ReturnedResourceArray& returned, | 430 const ReturnedResourceArray& returned, |
| 439 BlockingTaskRunner* main_thread_task_runner) { | 431 BlockingTaskRunner* main_thread_task_runner) { |
| 440 array->insert(array->end(), returned.begin(), returned.end()); | 432 array->insert(array->end(), returned.begin(), returned.end()); |
| 441 } | 433 } |
| 442 | 434 |
| 443 static ReturnCallback GetReturnCallback(ReturnedResourceArray* array) { | 435 static ReturnCallback GetReturnCallback(ReturnedResourceArray* array) { |
| 444 return base::Bind(&ResourceProviderTest::CollectResources, array); | 436 return base::Bind(&ResourceProviderTest::CollectResources, array); |
| (...skipping 707 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1152 return; | 1144 return; |
| 1153 | 1145 |
| 1154 scoped_ptr<ResourceProviderContext> child_context_owned( | 1146 scoped_ptr<ResourceProviderContext> child_context_owned( |
| 1155 ResourceProviderContext::Create(shared_data_.get())); | 1147 ResourceProviderContext::Create(shared_data_.get())); |
| 1156 | 1148 |
| 1157 FakeOutputSurfaceClient child_output_surface_client; | 1149 FakeOutputSurfaceClient child_output_surface_client; |
| 1158 scoped_ptr<OutputSurface> child_output_surface( | 1150 scoped_ptr<OutputSurface> child_output_surface( |
| 1159 FakeOutputSurface::Create3d(child_context_owned.Pass())); | 1151 FakeOutputSurface::Create3d(child_context_owned.Pass())); |
| 1160 CHECK(child_output_surface->BindToClient(&child_output_surface_client)); | 1152 CHECK(child_output_surface->BindToClient(&child_output_surface_client)); |
| 1161 | 1153 |
| 1162 scoped_ptr<ResourceProvider> child_resource_provider( | 1154 scoped_ptr<ResourceProvider> child_resource_provider(ResourceProvider::Create( |
| 1163 ResourceProvider::Create(child_output_surface.get(), | 1155 child_output_surface.get(), shared_bitmap_manager_.get(), |
| 1164 shared_bitmap_manager_.get(), | 1156 gpu_memory_buffer_manager_.get(), NULL, 0, false, false, 1)); |
| 1165 gpu_memory_buffer_manager_.get(), | |
| 1166 NULL, | |
| 1167 0, | |
| 1168 false, | |
| 1169 1)); | |
| 1170 | 1157 |
| 1171 gfx::Size size(1, 1); | 1158 gfx::Size size(1, 1); |
| 1172 ResourceFormat format = RGBA_8888; | 1159 ResourceFormat format = RGBA_8888; |
| 1173 size_t pixel_size = TextureSizeBytes(size, format); | 1160 size_t pixel_size = TextureSizeBytes(size, format); |
| 1174 ASSERT_EQ(4U, pixel_size); | 1161 ASSERT_EQ(4U, pixel_size); |
| 1175 | 1162 |
| 1176 ResourceProvider::ResourceId id1 = child_resource_provider->CreateResource( | 1163 ResourceProvider::ResourceId id1 = child_resource_provider->CreateResource( |
| 1177 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); | 1164 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); |
| 1178 uint8_t data1[4] = { 1, 2, 3, 4 }; | 1165 uint8_t data1[4] = { 1, 2, 3, 4 }; |
| 1179 gfx::Rect rect(size); | 1166 gfx::Rect rect(size); |
| (...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1636 | 1623 |
| 1637 FakeOutputSurfaceClient child_output_surface_client; | 1624 FakeOutputSurfaceClient child_output_surface_client; |
| 1638 scoped_ptr<OutputSurface> child_output_surface( | 1625 scoped_ptr<OutputSurface> child_output_surface( |
| 1639 FakeOutputSurface::Create3d(child_context_owned.Pass())); | 1626 FakeOutputSurface::Create3d(child_context_owned.Pass())); |
| 1640 CHECK(child_output_surface->BindToClient(&child_output_surface_client)); | 1627 CHECK(child_output_surface->BindToClient(&child_output_surface_client)); |
| 1641 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 1628 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
| 1642 new TestSharedBitmapManager()); | 1629 new TestSharedBitmapManager()); |
| 1643 | 1630 |
| 1644 scoped_ptr<ResourceProvider> child_resource_provider( | 1631 scoped_ptr<ResourceProvider> child_resource_provider( |
| 1645 ResourceProvider::Create(child_output_surface.get(), | 1632 ResourceProvider::Create(child_output_surface.get(), |
| 1646 shared_bitmap_manager.get(), | 1633 shared_bitmap_manager.get(), NULL, NULL, 0, |
| 1647 NULL, | 1634 false, false, 1)); |
| 1648 NULL, | |
| 1649 0, | |
| 1650 false, | |
| 1651 1)); | |
| 1652 | 1635 |
| 1653 scoped_ptr<TextureStateTrackingContext> parent_context_owned( | 1636 scoped_ptr<TextureStateTrackingContext> parent_context_owned( |
| 1654 new TextureStateTrackingContext); | 1637 new TextureStateTrackingContext); |
| 1655 TextureStateTrackingContext* parent_context = parent_context_owned.get(); | 1638 TextureStateTrackingContext* parent_context = parent_context_owned.get(); |
| 1656 | 1639 |
| 1657 FakeOutputSurfaceClient parent_output_surface_client; | 1640 FakeOutputSurfaceClient parent_output_surface_client; |
| 1658 scoped_ptr<OutputSurface> parent_output_surface( | 1641 scoped_ptr<OutputSurface> parent_output_surface( |
| 1659 FakeOutputSurface::Create3d(parent_context_owned.Pass())); | 1642 FakeOutputSurface::Create3d(parent_context_owned.Pass())); |
| 1660 CHECK(parent_output_surface->BindToClient(&parent_output_surface_client)); | 1643 CHECK(parent_output_surface->BindToClient(&parent_output_surface_client)); |
| 1661 | 1644 |
| 1662 scoped_ptr<ResourceProvider> parent_resource_provider( | 1645 scoped_ptr<ResourceProvider> parent_resource_provider( |
| 1663 ResourceProvider::Create(parent_output_surface.get(), | 1646 ResourceProvider::Create(parent_output_surface.get(), |
| 1664 shared_bitmap_manager.get(), | 1647 shared_bitmap_manager.get(), NULL, NULL, 0, |
| 1665 NULL, | 1648 false, false, 1)); |
| 1666 NULL, | |
| 1667 0, | |
| 1668 false, | |
| 1669 1)); | |
| 1670 | 1649 |
| 1671 gfx::Size size(1, 1); | 1650 gfx::Size size(1, 1); |
| 1672 ResourceFormat format = RGBA_8888; | 1651 ResourceFormat format = RGBA_8888; |
| 1673 int child_texture_id = 1; | 1652 int child_texture_id = 1; |
| 1674 int parent_texture_id = 2; | 1653 int parent_texture_id = 2; |
| 1675 | 1654 |
| 1676 size_t pixel_size = TextureSizeBytes(size, format); | 1655 size_t pixel_size = TextureSizeBytes(size, format); |
| 1677 ASSERT_EQ(4U, pixel_size); | 1656 ASSERT_EQ(4U, pixel_size); |
| 1678 | 1657 |
| 1679 ResourceProvider::ResourceId id = child_resource_provider->CreateResource( | 1658 ResourceProvider::ResourceId id = child_resource_provider->CreateResource( |
| (...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2284 | 2263 |
| 2285 scoped_ptr<TextureStateTrackingContext> context_owned( | 2264 scoped_ptr<TextureStateTrackingContext> context_owned( |
| 2286 new TextureStateTrackingContext); | 2265 new TextureStateTrackingContext); |
| 2287 TextureStateTrackingContext* context = context_owned.get(); | 2266 TextureStateTrackingContext* context = context_owned.get(); |
| 2288 | 2267 |
| 2289 FakeOutputSurfaceClient output_surface_client; | 2268 FakeOutputSurfaceClient output_surface_client; |
| 2290 scoped_ptr<OutputSurface> output_surface( | 2269 scoped_ptr<OutputSurface> output_surface( |
| 2291 FakeOutputSurface::Create3d(context_owned.Pass())); | 2270 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 2292 CHECK(output_surface->BindToClient(&output_surface_client)); | 2271 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 2293 | 2272 |
| 2294 scoped_ptr<ResourceProvider> resource_provider( | 2273 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 2295 ResourceProvider::Create(output_surface.get(), | 2274 output_surface.get(), shared_bitmap_manager_.get(), |
| 2296 shared_bitmap_manager_.get(), | 2275 gpu_memory_buffer_manager_.get(), NULL, 0, false, false, 1)); |
| 2297 gpu_memory_buffer_manager_.get(), | |
| 2298 NULL, | |
| 2299 0, | |
| 2300 false, | |
| 2301 1)); | |
| 2302 | 2276 |
| 2303 gfx::Size size(1, 1); | 2277 gfx::Size size(1, 1); |
| 2304 ResourceFormat format = RGBA_8888; | 2278 ResourceFormat format = RGBA_8888; |
| 2305 int texture_id = 1; | 2279 int texture_id = 1; |
| 2306 | 2280 |
| 2307 ResourceProvider::ResourceId id = resource_provider->CreateResource( | 2281 ResourceProvider::ResourceId id = resource_provider->CreateResource( |
| 2308 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); | 2282 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); |
| 2309 | 2283 |
| 2310 // Check that the texture gets created with the right sampler settings. | 2284 // Check that the texture gets created with the right sampler settings. |
| 2311 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)) | 2285 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)) |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2371 | 2345 |
| 2372 scoped_ptr<TextureStateTrackingContext> context_owned( | 2346 scoped_ptr<TextureStateTrackingContext> context_owned( |
| 2373 new TextureStateTrackingContext); | 2347 new TextureStateTrackingContext); |
| 2374 TextureStateTrackingContext* context = context_owned.get(); | 2348 TextureStateTrackingContext* context = context_owned.get(); |
| 2375 | 2349 |
| 2376 FakeOutputSurfaceClient output_surface_client; | 2350 FakeOutputSurfaceClient output_surface_client; |
| 2377 scoped_ptr<OutputSurface> output_surface( | 2351 scoped_ptr<OutputSurface> output_surface( |
| 2378 FakeOutputSurface::Create3d(context_owned.Pass())); | 2352 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 2379 CHECK(output_surface->BindToClient(&output_surface_client)); | 2353 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 2380 | 2354 |
| 2381 scoped_ptr<ResourceProvider> resource_provider( | 2355 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 2382 ResourceProvider::Create(output_surface.get(), | 2356 output_surface.get(), shared_bitmap_manager_.get(), |
| 2383 shared_bitmap_manager_.get(), | 2357 gpu_memory_buffer_manager_.get(), NULL, 0, false, false, 1)); |
| 2384 gpu_memory_buffer_manager_.get(), | |
| 2385 NULL, | |
| 2386 0, | |
| 2387 false, | |
| 2388 1)); | |
| 2389 | 2358 |
| 2390 gfx::Size size(1, 1); | 2359 gfx::Size size(1, 1); |
| 2391 ResourceFormat format = RGBA_8888; | 2360 ResourceFormat format = RGBA_8888; |
| 2392 int texture_id = 1; | 2361 int texture_id = 1; |
| 2393 | 2362 |
| 2394 // Check that the texture gets created with the right sampler settings. | 2363 // Check that the texture gets created with the right sampler settings. |
| 2395 ResourceProvider::ResourceId id = resource_provider->CreateManagedResource( | 2364 ResourceProvider::ResourceId id = resource_provider->CreateManagedResource( |
| 2396 size, | 2365 size, |
| 2397 GL_TEXTURE_2D, | 2366 GL_TEXTURE_2D, |
| 2398 GL_CLAMP_TO_EDGE, | 2367 GL_CLAMP_TO_EDGE, |
| (...skipping 27 matching lines...) Expand all Loading... |
| 2426 | 2395 |
| 2427 scoped_ptr<TextureStateTrackingContext> context_owned( | 2396 scoped_ptr<TextureStateTrackingContext> context_owned( |
| 2428 new TextureStateTrackingContext); | 2397 new TextureStateTrackingContext); |
| 2429 TextureStateTrackingContext* context = context_owned.get(); | 2398 TextureStateTrackingContext* context = context_owned.get(); |
| 2430 | 2399 |
| 2431 FakeOutputSurfaceClient output_surface_client; | 2400 FakeOutputSurfaceClient output_surface_client; |
| 2432 scoped_ptr<OutputSurface> output_surface( | 2401 scoped_ptr<OutputSurface> output_surface( |
| 2433 FakeOutputSurface::Create3d(context_owned.Pass())); | 2402 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 2434 CHECK(output_surface->BindToClient(&output_surface_client)); | 2403 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 2435 | 2404 |
| 2436 scoped_ptr<ResourceProvider> resource_provider( | 2405 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 2437 ResourceProvider::Create(output_surface.get(), | 2406 output_surface.get(), shared_bitmap_manager_.get(), |
| 2438 shared_bitmap_manager_.get(), | 2407 gpu_memory_buffer_manager_.get(), NULL, 0, false, false, 1)); |
| 2439 gpu_memory_buffer_manager_.get(), | |
| 2440 NULL, | |
| 2441 0, | |
| 2442 false, | |
| 2443 1)); | |
| 2444 | 2408 |
| 2445 gfx::Size size(1, 1); | 2409 gfx::Size size(1, 1); |
| 2446 ResourceFormat format = RGBA_8888; | 2410 ResourceFormat format = RGBA_8888; |
| 2447 GLenum texture_pool = GL_TEXTURE_POOL_UNMANAGED_CHROMIUM; | 2411 GLenum texture_pool = GL_TEXTURE_POOL_UNMANAGED_CHROMIUM; |
| 2448 | 2412 |
| 2449 for (int texture_id = 1; texture_id <= 2; ++texture_id) { | 2413 for (int texture_id = 1; texture_id <= 2; ++texture_id) { |
| 2450 GLint wrap_mode = texture_id == 1 ? GL_CLAMP_TO_EDGE : GL_REPEAT; | 2414 GLint wrap_mode = texture_id == 1 ? GL_CLAMP_TO_EDGE : GL_REPEAT; |
| 2451 // Check that the texture gets created with the right sampler settings. | 2415 // Check that the texture gets created with the right sampler settings. |
| 2452 ResourceProvider::ResourceId id = resource_provider->CreateGLTexture( | 2416 ResourceProvider::ResourceId id = resource_provider->CreateGLTexture( |
| 2453 size, | 2417 size, |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2485 new TextureStateTrackingContext); | 2449 new TextureStateTrackingContext); |
| 2486 TextureStateTrackingContext* context = context_owned.get(); | 2450 TextureStateTrackingContext* context = context_owned.get(); |
| 2487 context->set_support_texture_storage(true); | 2451 context->set_support_texture_storage(true); |
| 2488 context->set_support_texture_usage(true); | 2452 context->set_support_texture_usage(true); |
| 2489 | 2453 |
| 2490 FakeOutputSurfaceClient output_surface_client; | 2454 FakeOutputSurfaceClient output_surface_client; |
| 2491 scoped_ptr<OutputSurface> output_surface( | 2455 scoped_ptr<OutputSurface> output_surface( |
| 2492 FakeOutputSurface::Create3d(context_owned.Pass())); | 2456 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 2493 CHECK(output_surface->BindToClient(&output_surface_client)); | 2457 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 2494 | 2458 |
| 2495 scoped_ptr<ResourceProvider> resource_provider( | 2459 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 2496 ResourceProvider::Create(output_surface.get(), | 2460 output_surface.get(), shared_bitmap_manager_.get(), |
| 2497 shared_bitmap_manager_.get(), | 2461 gpu_memory_buffer_manager_.get(), NULL, 0, false, false, 1)); |
| 2498 gpu_memory_buffer_manager_.get(), | |
| 2499 NULL, | |
| 2500 0, | |
| 2501 false, | |
| 2502 1)); | |
| 2503 | 2462 |
| 2504 gfx::Size size(1, 1); | 2463 gfx::Size size(1, 1); |
| 2505 ResourceFormat format = RGBA_8888; | 2464 ResourceFormat format = RGBA_8888; |
| 2506 GLenum texture_pool = GL_TEXTURE_POOL_UNMANAGED_CHROMIUM; | 2465 GLenum texture_pool = GL_TEXTURE_POOL_UNMANAGED_CHROMIUM; |
| 2507 | 2466 |
| 2508 const ResourceProvider::TextureHint hints[4] = { | 2467 const ResourceProvider::TextureHint hints[4] = { |
| 2509 ResourceProvider::TextureHintDefault, | 2468 ResourceProvider::TextureHintDefault, |
| 2510 ResourceProvider::TextureHintImmutable, | 2469 ResourceProvider::TextureHintImmutable, |
| 2511 ResourceProvider::TextureHintFramebuffer, | 2470 ResourceProvider::TextureHintFramebuffer, |
| 2512 ResourceProvider::TextureHintImmutableFramebuffer, | 2471 ResourceProvider::TextureHintImmutableFramebuffer, |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2558 const uint32_t kBadBeef = 0xbadbeef; | 2517 const uint32_t kBadBeef = 0xbadbeef; |
| 2559 scoped_ptr<base::SharedMemory> shared_memory( | 2518 scoped_ptr<base::SharedMemory> shared_memory( |
| 2560 CreateAndFillSharedMemory(size, kBadBeef)); | 2519 CreateAndFillSharedMemory(size, kBadBeef)); |
| 2561 | 2520 |
| 2562 FakeOutputSurfaceClient output_surface_client; | 2521 FakeOutputSurfaceClient output_surface_client; |
| 2563 scoped_ptr<OutputSurface> output_surface( | 2522 scoped_ptr<OutputSurface> output_surface( |
| 2564 FakeOutputSurface::CreateSoftware(make_scoped_ptr( | 2523 FakeOutputSurface::CreateSoftware(make_scoped_ptr( |
| 2565 new SoftwareOutputDevice))); | 2524 new SoftwareOutputDevice))); |
| 2566 CHECK(output_surface->BindToClient(&output_surface_client)); | 2525 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 2567 | 2526 |
| 2568 scoped_ptr<ResourceProvider> resource_provider( | 2527 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 2569 ResourceProvider::Create(output_surface.get(), | 2528 output_surface.get(), shared_bitmap_manager_.get(), |
| 2570 shared_bitmap_manager_.get(), | 2529 gpu_memory_buffer_manager_.get(), main_thread_task_runner_.get(), 0, |
| 2571 gpu_memory_buffer_manager_.get(), | 2530 false, false, 1)); |
| 2572 main_thread_task_runner_.get(), | |
| 2573 0, | |
| 2574 false, | |
| 2575 1)); | |
| 2576 | 2531 |
| 2577 uint32 release_sync_point = 0; | 2532 uint32 release_sync_point = 0; |
| 2578 bool lost_resource = false; | 2533 bool lost_resource = false; |
| 2579 BlockingTaskRunner* main_thread_task_runner = NULL; | 2534 BlockingTaskRunner* main_thread_task_runner = NULL; |
| 2580 scoped_ptr<SingleReleaseCallbackImpl> callback = | 2535 scoped_ptr<SingleReleaseCallbackImpl> callback = |
| 2581 SingleReleaseCallbackImpl::Create(base::Bind(&ReleaseCallback, | 2536 SingleReleaseCallbackImpl::Create(base::Bind(&ReleaseCallback, |
| 2582 &release_sync_point, | 2537 &release_sync_point, |
| 2583 &lost_resource, | 2538 &lost_resource, |
| 2584 &main_thread_task_runner)); | 2539 &main_thread_task_runner)); |
| 2585 TextureMailbox mailbox(shared_memory.get(), size); | 2540 TextureMailbox mailbox(shared_memory.get(), size); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 2613 GLenum sampler_filter) { | 2568 GLenum sampler_filter) { |
| 2614 scoped_ptr<TextureStateTrackingContext> context_owned( | 2569 scoped_ptr<TextureStateTrackingContext> context_owned( |
| 2615 new TextureStateTrackingContext); | 2570 new TextureStateTrackingContext); |
| 2616 TextureStateTrackingContext* context = context_owned.get(); | 2571 TextureStateTrackingContext* context = context_owned.get(); |
| 2617 | 2572 |
| 2618 FakeOutputSurfaceClient output_surface_client; | 2573 FakeOutputSurfaceClient output_surface_client; |
| 2619 scoped_ptr<OutputSurface> output_surface( | 2574 scoped_ptr<OutputSurface> output_surface( |
| 2620 FakeOutputSurface::Create3d(context_owned.Pass())); | 2575 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 2621 CHECK(output_surface->BindToClient(&output_surface_client)); | 2576 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 2622 | 2577 |
| 2623 scoped_ptr<ResourceProvider> resource_provider( | 2578 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 2624 ResourceProvider::Create(output_surface.get(), | 2579 output_surface.get(), shared_bitmap_manager, gpu_memory_buffer_manager, |
| 2625 shared_bitmap_manager, | 2580 main_thread_task_runner, 0, false, false, 1)); |
| 2626 gpu_memory_buffer_manager, | |
| 2627 main_thread_task_runner, | |
| 2628 0, | |
| 2629 false, | |
| 2630 1)); | |
| 2631 | 2581 |
| 2632 unsigned texture_id = 1; | 2582 unsigned texture_id = 1; |
| 2633 uint32 sync_point = 30; | 2583 uint32 sync_point = 30; |
| 2634 unsigned target = GL_TEXTURE_2D; | 2584 unsigned target = GL_TEXTURE_2D; |
| 2635 | 2585 |
| 2636 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); | 2586 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); |
| 2637 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); | 2587 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); |
| 2638 EXPECT_CALL(*context, insertSyncPoint()).Times(0); | 2588 EXPECT_CALL(*context, insertSyncPoint()).Times(0); |
| 2639 EXPECT_CALL(*context, produceTextureCHROMIUM(_, _)).Times(0); | 2589 EXPECT_CALL(*context, produceTextureCHROMIUM(_, _)).Times(0); |
| 2640 EXPECT_CALL(*context, consumeTextureCHROMIUM(_, _)).Times(0); | 2590 EXPECT_CALL(*context, consumeTextureCHROMIUM(_, _)).Times(0); |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2762 | 2712 |
| 2763 scoped_ptr<TextureStateTrackingContext> context_owned( | 2713 scoped_ptr<TextureStateTrackingContext> context_owned( |
| 2764 new TextureStateTrackingContext); | 2714 new TextureStateTrackingContext); |
| 2765 TextureStateTrackingContext* context = context_owned.get(); | 2715 TextureStateTrackingContext* context = context_owned.get(); |
| 2766 | 2716 |
| 2767 FakeOutputSurfaceClient output_surface_client; | 2717 FakeOutputSurfaceClient output_surface_client; |
| 2768 scoped_ptr<OutputSurface> output_surface( | 2718 scoped_ptr<OutputSurface> output_surface( |
| 2769 FakeOutputSurface::Create3d(context_owned.Pass())); | 2719 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 2770 CHECK(output_surface->BindToClient(&output_surface_client)); | 2720 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 2771 | 2721 |
| 2772 scoped_ptr<ResourceProvider> resource_provider( | 2722 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 2773 ResourceProvider::Create(output_surface.get(), | 2723 output_surface.get(), shared_bitmap_manager_.get(), |
| 2774 shared_bitmap_manager_.get(), | 2724 gpu_memory_buffer_manager_.get(), NULL, 0, false, false, 1)); |
| 2775 gpu_memory_buffer_manager_.get(), | |
| 2776 NULL, | |
| 2777 0, | |
| 2778 false, | |
| 2779 1)); | |
| 2780 | 2725 |
| 2781 unsigned texture_id = 1; | 2726 unsigned texture_id = 1; |
| 2782 uint32 sync_point = 30; | 2727 uint32 sync_point = 30; |
| 2783 unsigned target = GL_TEXTURE_EXTERNAL_OES; | 2728 unsigned target = GL_TEXTURE_EXTERNAL_OES; |
| 2784 | 2729 |
| 2785 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); | 2730 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); |
| 2786 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); | 2731 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); |
| 2787 EXPECT_CALL(*context, insertSyncPoint()).Times(0); | 2732 EXPECT_CALL(*context, insertSyncPoint()).Times(0); |
| 2788 EXPECT_CALL(*context, produceTextureCHROMIUM(_, _)).Times(0); | 2733 EXPECT_CALL(*context, produceTextureCHROMIUM(_, _)).Times(0); |
| 2789 EXPECT_CALL(*context, consumeTextureCHROMIUM(_, _)).Times(0); | 2734 EXPECT_CALL(*context, consumeTextureCHROMIUM(_, _)).Times(0); |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2837 | 2782 |
| 2838 scoped_ptr<TextureStateTrackingContext> context_owned( | 2783 scoped_ptr<TextureStateTrackingContext> context_owned( |
| 2839 new TextureStateTrackingContext); | 2784 new TextureStateTrackingContext); |
| 2840 TextureStateTrackingContext* context = context_owned.get(); | 2785 TextureStateTrackingContext* context = context_owned.get(); |
| 2841 | 2786 |
| 2842 FakeOutputSurfaceClient output_surface_client; | 2787 FakeOutputSurfaceClient output_surface_client; |
| 2843 scoped_ptr<OutputSurface> output_surface( | 2788 scoped_ptr<OutputSurface> output_surface( |
| 2844 FakeOutputSurface::Create3d(context_owned.Pass())); | 2789 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 2845 CHECK(output_surface->BindToClient(&output_surface_client)); | 2790 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 2846 | 2791 |
| 2847 scoped_ptr<ResourceProvider> resource_provider( | 2792 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 2848 ResourceProvider::Create(output_surface.get(), | 2793 output_surface.get(), shared_bitmap_manager_.get(), |
| 2849 shared_bitmap_manager_.get(), | 2794 gpu_memory_buffer_manager_.get(), NULL, 0, false, false, 1)); |
| 2850 gpu_memory_buffer_manager_.get(), | |
| 2851 NULL, | |
| 2852 0, | |
| 2853 false, | |
| 2854 1)); | |
| 2855 | 2795 |
| 2856 uint32 sync_point = 30; | 2796 uint32 sync_point = 30; |
| 2857 unsigned target = GL_TEXTURE_2D; | 2797 unsigned target = GL_TEXTURE_2D; |
| 2858 | 2798 |
| 2859 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); | 2799 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); |
| 2860 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); | 2800 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); |
| 2861 EXPECT_CALL(*context, insertSyncPoint()).Times(0); | 2801 EXPECT_CALL(*context, insertSyncPoint()).Times(0); |
| 2862 EXPECT_CALL(*context, produceTextureCHROMIUM(_, _)).Times(0); | 2802 EXPECT_CALL(*context, produceTextureCHROMIUM(_, _)).Times(0); |
| 2863 EXPECT_CALL(*context, consumeTextureCHROMIUM(_, _)).Times(0); | 2803 EXPECT_CALL(*context, consumeTextureCHROMIUM(_, _)).Times(0); |
| 2864 | 2804 |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2896 | 2836 |
| 2897 scoped_ptr<TextureStateTrackingContext> context_owned( | 2837 scoped_ptr<TextureStateTrackingContext> context_owned( |
| 2898 new TextureStateTrackingContext); | 2838 new TextureStateTrackingContext); |
| 2899 TextureStateTrackingContext* context = context_owned.get(); | 2839 TextureStateTrackingContext* context = context_owned.get(); |
| 2900 | 2840 |
| 2901 FakeOutputSurfaceClient output_surface_client; | 2841 FakeOutputSurfaceClient output_surface_client; |
| 2902 scoped_ptr<OutputSurface> output_surface( | 2842 scoped_ptr<OutputSurface> output_surface( |
| 2903 FakeOutputSurface::Create3d(context_owned.Pass())); | 2843 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 2904 CHECK(output_surface->BindToClient(&output_surface_client)); | 2844 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 2905 | 2845 |
| 2906 scoped_ptr<ResourceProvider> resource_provider( | 2846 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 2907 ResourceProvider::Create(output_surface.get(), | 2847 output_surface.get(), shared_bitmap_manager_.get(), |
| 2908 shared_bitmap_manager_.get(), | 2848 gpu_memory_buffer_manager_.get(), NULL, 0, false, false, 1)); |
| 2909 gpu_memory_buffer_manager_.get(), | |
| 2910 NULL, | |
| 2911 0, | |
| 2912 false, | |
| 2913 1)); | |
| 2914 | 2849 |
| 2915 uint32 sync_point = 0; | 2850 uint32 sync_point = 0; |
| 2916 unsigned target = GL_TEXTURE_2D; | 2851 unsigned target = GL_TEXTURE_2D; |
| 2917 | 2852 |
| 2918 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); | 2853 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); |
| 2919 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); | 2854 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); |
| 2920 EXPECT_CALL(*context, insertSyncPoint()).Times(0); | 2855 EXPECT_CALL(*context, insertSyncPoint()).Times(0); |
| 2921 EXPECT_CALL(*context, produceTextureCHROMIUM(_, _)).Times(0); | 2856 EXPECT_CALL(*context, produceTextureCHROMIUM(_, _)).Times(0); |
| 2922 EXPECT_CALL(*context, consumeTextureCHROMIUM(_, _)).Times(0); | 2857 EXPECT_CALL(*context, consumeTextureCHROMIUM(_, _)).Times(0); |
| 2923 | 2858 |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2987 MOCK_METHOD9(asyncTexSubImage2DCHROMIUM, | 2922 MOCK_METHOD9(asyncTexSubImage2DCHROMIUM, |
| 2988 void(GLenum target, | 2923 void(GLenum target, |
| 2989 GLint level, | 2924 GLint level, |
| 2990 GLint xoffset, | 2925 GLint xoffset, |
| 2991 GLint yoffset, | 2926 GLint yoffset, |
| 2992 GLsizei width, | 2927 GLsizei width, |
| 2993 GLsizei height, | 2928 GLsizei height, |
| 2994 GLenum format, | 2929 GLenum format, |
| 2995 GLenum type, | 2930 GLenum type, |
| 2996 const void* pixels)); | 2931 const void* pixels)); |
| 2932 MOCK_METHOD8(asyncCompressedTexImage2DCHROMIUM, |
| 2933 void(GLenum target, |
| 2934 GLint level, |
| 2935 GLint internalformat, |
| 2936 GLsizei width, |
| 2937 GLsizei height, |
| 2938 GLint border, |
| 2939 GLsizei imagesize, |
| 2940 const void* pixels)); |
| 2941 MOCK_METHOD9(asyncCompressedTexSubImage2DCHROMIUM, |
| 2942 void(GLenum target, |
| 2943 GLint level, |
| 2944 GLint xoffset, |
| 2945 GLint yoffset, |
| 2946 GLsizei width, |
| 2947 GLsizei height, |
| 2948 GLenum format, |
| 2949 GLsizei imagesize, |
| 2950 const void* pixels)); |
| 2997 MOCK_METHOD8(compressedTexImage2D, | 2951 MOCK_METHOD8(compressedTexImage2D, |
| 2998 void(GLenum target, | 2952 void(GLenum target, |
| 2999 GLint level, | 2953 GLint level, |
| 3000 GLenum internalformat, | 2954 GLenum internalformat, |
| 3001 GLsizei width, | 2955 GLsizei width, |
| 3002 GLsizei height, | 2956 GLsizei height, |
| 3003 GLint border, | 2957 GLint border, |
| 3004 GLsizei image_size, | 2958 GLsizei image_size, |
| 3005 const void* data)); | 2959 const void* data)); |
| 3006 MOCK_METHOD1(waitAsyncTexImage2DCHROMIUM, void(GLenum)); | 2960 MOCK_METHOD1(waitAsyncTexImage2DCHROMIUM, void(GLenum)); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 3022 return; | 2976 return; |
| 3023 scoped_ptr<AllocationTrackingContext3D> context_owned( | 2977 scoped_ptr<AllocationTrackingContext3D> context_owned( |
| 3024 new StrictMock<AllocationTrackingContext3D>); | 2978 new StrictMock<AllocationTrackingContext3D>); |
| 3025 AllocationTrackingContext3D* context = context_owned.get(); | 2979 AllocationTrackingContext3D* context = context_owned.get(); |
| 3026 | 2980 |
| 3027 FakeOutputSurfaceClient output_surface_client; | 2981 FakeOutputSurfaceClient output_surface_client; |
| 3028 scoped_ptr<OutputSurface> output_surface( | 2982 scoped_ptr<OutputSurface> output_surface( |
| 3029 FakeOutputSurface::Create3d(context_owned.Pass())); | 2983 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 3030 CHECK(output_surface->BindToClient(&output_surface_client)); | 2984 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3031 | 2985 |
| 3032 scoped_ptr<ResourceProvider> resource_provider( | 2986 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3033 ResourceProvider::Create(output_surface.get(), | 2987 output_surface.get(), shared_bitmap_manager_.get(), |
| 3034 shared_bitmap_manager_.get(), | 2988 gpu_memory_buffer_manager_.get(), NULL, 0, false, false, 1)); |
| 3035 gpu_memory_buffer_manager_.get(), | |
| 3036 NULL, | |
| 3037 0, | |
| 3038 false, | |
| 3039 1)); | |
| 3040 | 2989 |
| 3041 gfx::Size size(2, 2); | 2990 gfx::Size size(2, 2); |
| 3042 gfx::Vector2d offset(0, 0); | 2991 gfx::Vector2d offset(0, 0); |
| 3043 gfx::Rect rect(0, 0, 2, 2); | 2992 gfx::Rect rect(0, 0, 2, 2); |
| 3044 ResourceFormat format = RGBA_8888; | 2993 ResourceFormat format = RGBA_8888; |
| 3045 ResourceProvider::ResourceId id = 0; | 2994 ResourceProvider::ResourceId id = 0; |
| 3046 uint8_t pixels[16] = { 0 }; | 2995 uint8_t pixels[16] = { 0 }; |
| 3047 int texture_id = 123; | 2996 int texture_id = 123; |
| 3048 | 2997 |
| 3049 // Lazy allocation. Don't allocate when creating the resource. | 2998 // Lazy allocation. Don't allocate when creating the resource. |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3102 new StrictMock<AllocationTrackingContext3D>); | 3051 new StrictMock<AllocationTrackingContext3D>); |
| 3103 AllocationTrackingContext3D* context = context_owned.get(); | 3052 AllocationTrackingContext3D* context = context_owned.get(); |
| 3104 context->set_support_texture_storage(true); | 3053 context->set_support_texture_storage(true); |
| 3105 context->set_support_texture_usage(true); | 3054 context->set_support_texture_usage(true); |
| 3106 | 3055 |
| 3107 FakeOutputSurfaceClient output_surface_client; | 3056 FakeOutputSurfaceClient output_surface_client; |
| 3108 scoped_ptr<OutputSurface> output_surface( | 3057 scoped_ptr<OutputSurface> output_surface( |
| 3109 FakeOutputSurface::Create3d(context_owned.Pass())); | 3058 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 3110 CHECK(output_surface->BindToClient(&output_surface_client)); | 3059 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3111 | 3060 |
| 3112 scoped_ptr<ResourceProvider> resource_provider( | 3061 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3113 ResourceProvider::Create(output_surface.get(), | 3062 output_surface.get(), shared_bitmap_manager_.get(), |
| 3114 shared_bitmap_manager_.get(), | 3063 gpu_memory_buffer_manager_.get(), NULL, 0, false, false, 1)); |
| 3115 gpu_memory_buffer_manager_.get(), | |
| 3116 NULL, | |
| 3117 0, | |
| 3118 false, | |
| 3119 1)); | |
| 3120 | 3064 |
| 3121 gfx::Size size(2, 2); | 3065 gfx::Size size(2, 2); |
| 3122 | 3066 |
| 3123 const ResourceFormat formats[2] = {RGBA_8888, BGRA_8888}; | 3067 const ResourceFormat formats[2] = {RGBA_8888, BGRA_8888}; |
| 3124 const ResourceProvider::TextureHint hints[4] = { | 3068 const ResourceProvider::TextureHint hints[4] = { |
| 3125 ResourceProvider::TextureHintDefault, | 3069 ResourceProvider::TextureHintDefault, |
| 3126 ResourceProvider::TextureHintImmutable, | 3070 ResourceProvider::TextureHintImmutable, |
| 3127 ResourceProvider::TextureHintFramebuffer, | 3071 ResourceProvider::TextureHintFramebuffer, |
| 3128 ResourceProvider::TextureHintImmutableFramebuffer, | 3072 ResourceProvider::TextureHintImmutableFramebuffer, |
| 3129 }; | 3073 }; |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3162 AllocationTrackingContext3D* context = context_owned.get(); | 3106 AllocationTrackingContext3D* context = context_owned.get(); |
| 3163 context->set_support_texture_format_bgra8888(true); | 3107 context->set_support_texture_format_bgra8888(true); |
| 3164 context->set_support_texture_storage(true); | 3108 context->set_support_texture_storage(true); |
| 3165 context->set_support_texture_usage(true); | 3109 context->set_support_texture_usage(true); |
| 3166 | 3110 |
| 3167 FakeOutputSurfaceClient output_surface_client; | 3111 FakeOutputSurfaceClient output_surface_client; |
| 3168 scoped_ptr<OutputSurface> output_surface( | 3112 scoped_ptr<OutputSurface> output_surface( |
| 3169 FakeOutputSurface::Create3d(context_owned.Pass())); | 3113 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 3170 CHECK(output_surface->BindToClient(&output_surface_client)); | 3114 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3171 | 3115 |
| 3172 scoped_ptr<ResourceProvider> resource_provider( | 3116 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3173 ResourceProvider::Create(output_surface.get(), | 3117 output_surface.get(), shared_bitmap_manager_.get(), |
| 3174 shared_bitmap_manager_.get(), | 3118 gpu_memory_buffer_manager_.get(), NULL, 0, false, false, 1)); |
| 3175 gpu_memory_buffer_manager_.get(), | |
| 3176 NULL, | |
| 3177 0, | |
| 3178 false, | |
| 3179 1)); | |
| 3180 | 3119 |
| 3181 gfx::Size size(2, 2); | 3120 gfx::Size size(2, 2); |
| 3182 const ResourceFormat formats[2] = {RGBA_8888, BGRA_8888}; | 3121 const ResourceFormat formats[2] = {RGBA_8888, BGRA_8888}; |
| 3183 | 3122 |
| 3184 const ResourceProvider::TextureHint hints[4] = { | 3123 const ResourceProvider::TextureHint hints[4] = { |
| 3185 ResourceProvider::TextureHintDefault, | 3124 ResourceProvider::TextureHintDefault, |
| 3186 ResourceProvider::TextureHintImmutable, | 3125 ResourceProvider::TextureHintImmutable, |
| 3187 ResourceProvider::TextureHintFramebuffer, | 3126 ResourceProvider::TextureHintFramebuffer, |
| 3188 ResourceProvider::TextureHintImmutableFramebuffer, | 3127 ResourceProvider::TextureHintImmutableFramebuffer, |
| 3189 }; | 3128 }; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3221 FakeOutputSurfaceClient output_surface_client; | 3160 FakeOutputSurfaceClient output_surface_client; |
| 3222 scoped_ptr<OutputSurface> output_surface( | 3161 scoped_ptr<OutputSurface> output_surface( |
| 3223 FakeOutputSurface::Create3d(context_owned.Pass())); | 3162 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 3224 CHECK(output_surface->BindToClient(&output_surface_client)); | 3163 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3225 | 3164 |
| 3226 gfx::Size size(2, 2); | 3165 gfx::Size size(2, 2); |
| 3227 ResourceFormat format = RGBA_8888; | 3166 ResourceFormat format = RGBA_8888; |
| 3228 ResourceProvider::ResourceId id = 0; | 3167 ResourceProvider::ResourceId id = 0; |
| 3229 int texture_id = 123; | 3168 int texture_id = 123; |
| 3230 | 3169 |
| 3231 scoped_ptr<ResourceProvider> resource_provider( | 3170 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3232 ResourceProvider::Create(output_surface.get(), | 3171 output_surface.get(), shared_bitmap_manager_.get(), |
| 3233 shared_bitmap_manager_.get(), | 3172 gpu_memory_buffer_manager_.get(), NULL, 0, false, false, 1)); |
| 3234 gpu_memory_buffer_manager_.get(), | |
| 3235 NULL, | |
| 3236 0, | |
| 3237 false, | |
| 3238 1)); | |
| 3239 | 3173 |
| 3240 id = resource_provider->CreateResource( | 3174 id = resource_provider->CreateResource( |
| 3241 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); | 3175 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); |
| 3242 resource_provider->AcquirePixelBuffer(id); | 3176 resource_provider->AcquirePixelBuffer(id); |
| 3243 | 3177 |
| 3244 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); | 3178 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); |
| 3245 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); | 3179 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); |
| 3246 EXPECT_CALL(*context, asyncTexImage2DCHROMIUM(_, _, _, 2, 2, _, _, _, _)) | 3180 EXPECT_CALL(*context, asyncTexImage2DCHROMIUM(_, _, _, 2, 2, _, _, _, _)) |
| 3247 .Times(1); | 3181 .Times(1); |
| 3248 resource_provider->BeginSetPixels(id); | 3182 resource_provider->BeginSetPixels(id); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 3268 FakeOutputSurfaceClient output_surface_client; | 3202 FakeOutputSurfaceClient output_surface_client; |
| 3269 scoped_ptr<OutputSurface> output_surface( | 3203 scoped_ptr<OutputSurface> output_surface( |
| 3270 FakeOutputSurface::Create3d(context_owned.Pass())); | 3204 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 3271 CHECK(output_surface->BindToClient(&output_surface_client)); | 3205 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3272 | 3206 |
| 3273 gfx::Size size(2, 2); | 3207 gfx::Size size(2, 2); |
| 3274 ResourceFormat format = RGBA_8888; | 3208 ResourceFormat format = RGBA_8888; |
| 3275 ResourceProvider::ResourceId id = 0; | 3209 ResourceProvider::ResourceId id = 0; |
| 3276 int texture_id = 123; | 3210 int texture_id = 123; |
| 3277 | 3211 |
| 3278 scoped_ptr<ResourceProvider> resource_provider( | 3212 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3279 ResourceProvider::Create(output_surface.get(), | 3213 output_surface.get(), shared_bitmap_manager_.get(), |
| 3280 shared_bitmap_manager_.get(), | 3214 gpu_memory_buffer_manager_.get(), NULL, 0, false, false, 1)); |
| 3281 gpu_memory_buffer_manager_.get(), | |
| 3282 NULL, | |
| 3283 0, | |
| 3284 false, | |
| 3285 1)); | |
| 3286 | 3215 |
| 3287 id = resource_provider->CreateResource( | 3216 id = resource_provider->CreateResource( |
| 3288 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); | 3217 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); |
| 3289 resource_provider->AcquirePixelBuffer(id); | 3218 resource_provider->AcquirePixelBuffer(id); |
| 3290 | 3219 |
| 3291 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); | 3220 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); |
| 3292 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); | 3221 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); |
| 3293 EXPECT_CALL(*context, asyncTexImage2DCHROMIUM(_, _, _, 2, 2, _, _, _, _)) | 3222 EXPECT_CALL(*context, asyncTexImage2DCHROMIUM(_, _, _, 2, 2, _, _, _, _)) |
| 3294 .Times(1); | 3223 .Times(1); |
| 3295 resource_provider->BeginSetPixels(id); | 3224 resource_provider->BeginSetPixels(id); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 3315 FakeOutputSurfaceClient output_surface_client; | 3244 FakeOutputSurfaceClient output_surface_client; |
| 3316 scoped_ptr<OutputSurface> output_surface( | 3245 scoped_ptr<OutputSurface> output_surface( |
| 3317 FakeOutputSurface::Create3d(context_owned.Pass())); | 3246 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 3318 CHECK(output_surface->BindToClient(&output_surface_client)); | 3247 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3319 | 3248 |
| 3320 gfx::Size size(2, 2); | 3249 gfx::Size size(2, 2); |
| 3321 ResourceFormat format = RGBA_8888; | 3250 ResourceFormat format = RGBA_8888; |
| 3322 ResourceProvider::ResourceId id = 0; | 3251 ResourceProvider::ResourceId id = 0; |
| 3323 int texture_id = 123; | 3252 int texture_id = 123; |
| 3324 | 3253 |
| 3325 scoped_ptr<ResourceProvider> resource_provider( | 3254 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3326 ResourceProvider::Create(output_surface.get(), | 3255 output_surface.get(), shared_bitmap_manager_.get(), |
| 3327 shared_bitmap_manager_.get(), | 3256 gpu_memory_buffer_manager_.get(), NULL, 0, false, false, 1)); |
| 3328 gpu_memory_buffer_manager_.get(), | |
| 3329 NULL, | |
| 3330 0, | |
| 3331 false, | |
| 3332 1)); | |
| 3333 | 3257 |
| 3334 EXPECT_CALL(*context, NextTextureId()).WillRepeatedly(Return(texture_id)); | 3258 EXPECT_CALL(*context, NextTextureId()).WillRepeatedly(Return(texture_id)); |
| 3335 | 3259 |
| 3336 id = resource_provider->CreateResource( | 3260 id = resource_provider->CreateResource( |
| 3337 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); | 3261 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); |
| 3338 context->loseContextCHROMIUM(GL_GUILTY_CONTEXT_RESET_ARB, | 3262 context->loseContextCHROMIUM(GL_GUILTY_CONTEXT_RESET_ARB, |
| 3339 GL_INNOCENT_CONTEXT_RESET_ARB); | 3263 GL_INNOCENT_CONTEXT_RESET_ARB); |
| 3340 | 3264 |
| 3341 resource_provider->AcquirePixelBuffer(id); | 3265 resource_provider->AcquirePixelBuffer(id); |
| 3342 int stride; | 3266 int stride; |
| (...skipping 17 matching lines...) Expand all Loading... |
| 3360 CHECK(output_surface->BindToClient(&output_surface_client)); | 3284 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3361 | 3285 |
| 3362 const int kWidth = 2; | 3286 const int kWidth = 2; |
| 3363 const int kHeight = 2; | 3287 const int kHeight = 2; |
| 3364 gfx::Size size(kWidth, kHeight); | 3288 gfx::Size size(kWidth, kHeight); |
| 3365 ResourceFormat format = RGBA_8888; | 3289 ResourceFormat format = RGBA_8888; |
| 3366 ResourceProvider::ResourceId id = 0; | 3290 ResourceProvider::ResourceId id = 0; |
| 3367 const unsigned kTextureId = 123u; | 3291 const unsigned kTextureId = 123u; |
| 3368 const unsigned kImageId = 234u; | 3292 const unsigned kImageId = 234u; |
| 3369 | 3293 |
| 3370 scoped_ptr<ResourceProvider> resource_provider( | 3294 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3371 ResourceProvider::Create(output_surface.get(), | 3295 output_surface.get(), shared_bitmap_manager_.get(), |
| 3372 shared_bitmap_manager_.get(), | 3296 gpu_memory_buffer_manager_.get(), NULL, 0, false, false, 1)); |
| 3373 gpu_memory_buffer_manager_.get(), | |
| 3374 NULL, | |
| 3375 0, | |
| 3376 false, | |
| 3377 1)); | |
| 3378 | 3297 |
| 3379 id = resource_provider->CreateResource( | 3298 id = resource_provider->CreateResource( |
| 3380 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); | 3299 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); |
| 3381 | 3300 |
| 3382 EXPECT_CALL(*context, createImageCHROMIUM(_, kWidth, kHeight, GL_RGBA)) | 3301 EXPECT_CALL(*context, createImageCHROMIUM(_, kWidth, kHeight, GL_RGBA)) |
| 3383 .WillOnce(Return(kImageId)) | 3302 .WillOnce(Return(kImageId)) |
| 3384 .RetiresOnSaturation(); | 3303 .RetiresOnSaturation(); |
| 3385 { | 3304 { |
| 3386 ResourceProvider::ScopedWriteLockGpuMemoryBuffer lock( | 3305 ResourceProvider::ScopedWriteLockGpuMemoryBuffer lock( |
| 3387 resource_provider.get(), id); | 3306 resource_provider.get(), id); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3447 const int kWidth = 2; | 3366 const int kWidth = 2; |
| 3448 const int kHeight = 2; | 3367 const int kHeight = 2; |
| 3449 gfx::Size size(kWidth, kHeight); | 3368 gfx::Size size(kWidth, kHeight); |
| 3450 ResourceFormat format = RGBA_8888; | 3369 ResourceFormat format = RGBA_8888; |
| 3451 ResourceProvider::ResourceId source_id = 0; | 3370 ResourceProvider::ResourceId source_id = 0; |
| 3452 ResourceProvider::ResourceId dest_id = 0; | 3371 ResourceProvider::ResourceId dest_id = 0; |
| 3453 const unsigned kSourceTextureId = 123u; | 3372 const unsigned kSourceTextureId = 123u; |
| 3454 const unsigned kDestTextureId = 321u; | 3373 const unsigned kDestTextureId = 321u; |
| 3455 const unsigned kImageId = 234u; | 3374 const unsigned kImageId = 234u; |
| 3456 | 3375 |
| 3457 scoped_ptr<ResourceProvider> resource_provider( | 3376 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3458 ResourceProvider::Create(output_surface.get(), | 3377 output_surface.get(), shared_bitmap_manager_.get(), |
| 3459 shared_bitmap_manager_.get(), | 3378 gpu_memory_buffer_manager_.get(), NULL, 0, false, false, 1)); |
| 3460 gpu_memory_buffer_manager_.get(), | |
| 3461 NULL, | |
| 3462 0, | |
| 3463 false, | |
| 3464 1)); | |
| 3465 | 3379 |
| 3466 source_id = resource_provider->CreateResource( | 3380 source_id = resource_provider->CreateResource( |
| 3467 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); | 3381 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); |
| 3468 | 3382 |
| 3469 EXPECT_CALL(*context, createImageCHROMIUM(_, kWidth, kHeight, GL_RGBA)) | 3383 EXPECT_CALL(*context, createImageCHROMIUM(_, kWidth, kHeight, GL_RGBA)) |
| 3470 .WillOnce(Return(kImageId)) | 3384 .WillOnce(Return(kImageId)) |
| 3471 .RetiresOnSaturation(); | 3385 .RetiresOnSaturation(); |
| 3472 { | 3386 { |
| 3473 ResourceProvider::ScopedWriteLockGpuMemoryBuffer lock( | 3387 ResourceProvider::ScopedWriteLockGpuMemoryBuffer lock( |
| 3474 resource_provider.get(), source_id); | 3388 resource_provider.get(), source_id); |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3533 scoped_ptr<ContextSharedData> shared_data = ContextSharedData::Create(); | 3447 scoped_ptr<ContextSharedData> shared_data = ContextSharedData::Create(); |
| 3534 bool delegated_rendering = false; | 3448 bool delegated_rendering = false; |
| 3535 scoped_ptr<FakeOutputSurface> output_surface( | 3449 scoped_ptr<FakeOutputSurface> output_surface( |
| 3536 FakeOutputSurface::CreateDeferredGL( | 3450 FakeOutputSurface::CreateDeferredGL( |
| 3537 scoped_ptr<SoftwareOutputDevice>(new SoftwareOutputDevice), | 3451 scoped_ptr<SoftwareOutputDevice>(new SoftwareOutputDevice), |
| 3538 delegated_rendering)); | 3452 delegated_rendering)); |
| 3539 FakeOutputSurfaceClient client(output_surface.get()); | 3453 FakeOutputSurfaceClient client(output_surface.get()); |
| 3540 EXPECT_TRUE(output_surface->BindToClient(&client)); | 3454 EXPECT_TRUE(output_surface->BindToClient(&client)); |
| 3541 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 3455 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
| 3542 new TestSharedBitmapManager()); | 3456 new TestSharedBitmapManager()); |
| 3543 scoped_ptr<ResourceProvider> resource_provider( | 3457 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3544 ResourceProvider::Create(output_surface.get(), | 3458 output_surface.get(), shared_bitmap_manager.get(), NULL, NULL, 0, false, |
| 3545 shared_bitmap_manager.get(), | 3459 false, 1)); |
| 3546 NULL, | |
| 3547 NULL, | |
| 3548 0, | |
| 3549 false, | |
| 3550 1)); | |
| 3551 | 3460 |
| 3552 CheckCreateResource(ResourceProvider::Bitmap, resource_provider.get(), NULL); | 3461 CheckCreateResource(ResourceProvider::Bitmap, resource_provider.get(), NULL); |
| 3553 | 3462 |
| 3554 InitializeGLAndCheck(shared_data.get(), | 3463 InitializeGLAndCheck(shared_data.get(), |
| 3555 resource_provider.get(), | 3464 resource_provider.get(), |
| 3556 output_surface.get()); | 3465 output_surface.get()); |
| 3557 | 3466 |
| 3558 resource_provider->InitializeSoftware(); | 3467 resource_provider->InitializeSoftware(); |
| 3559 output_surface->ReleaseGL(); | 3468 output_surface->ReleaseGL(); |
| 3560 CheckCreateResource(ResourceProvider::Bitmap, resource_provider.get(), NULL); | 3469 CheckCreateResource(ResourceProvider::Bitmap, resource_provider.get(), NULL); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 3572 new AllocationTrackingContext3D); | 3481 new AllocationTrackingContext3D); |
| 3573 AllocationTrackingContext3D* context = context_owned.get(); | 3482 AllocationTrackingContext3D* context = context_owned.get(); |
| 3574 context_owned->set_support_compressed_texture_etc1(true); | 3483 context_owned->set_support_compressed_texture_etc1(true); |
| 3575 | 3484 |
| 3576 FakeOutputSurfaceClient output_surface_client; | 3485 FakeOutputSurfaceClient output_surface_client; |
| 3577 scoped_ptr<OutputSurface> output_surface( | 3486 scoped_ptr<OutputSurface> output_surface( |
| 3578 FakeOutputSurface::Create3d(context_owned.Pass())); | 3487 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 3579 CHECK(output_surface->BindToClient(&output_surface_client)); | 3488 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3580 | 3489 |
| 3581 gfx::Size size(4, 4); | 3490 gfx::Size size(4, 4); |
| 3582 scoped_ptr<ResourceProvider> resource_provider( | 3491 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3583 ResourceProvider::Create(output_surface.get(), | 3492 output_surface.get(), shared_bitmap_manager_.get(), |
| 3584 shared_bitmap_manager_.get(), | 3493 gpu_memory_buffer_manager_.get(), NULL, 0, false, false, 1)); |
| 3585 gpu_memory_buffer_manager_.get(), | |
| 3586 NULL, | |
| 3587 0, | |
| 3588 false, | |
| 3589 1)); | |
| 3590 int texture_id = 123; | 3494 int texture_id = 123; |
| 3591 | 3495 |
| 3592 ResourceProvider::ResourceId id = resource_provider->CreateResource( | 3496 ResourceProvider::ResourceId id = resource_provider->CreateResource( |
| 3593 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, ETC1); | 3497 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, ETC1); |
| 3594 EXPECT_NE(0u, id); | 3498 EXPECT_NE(0u, id); |
| 3595 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); | 3499 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); |
| 3596 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); | 3500 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); |
| 3597 resource_provider->AllocateForTesting(id); | 3501 resource_provider->AllocateForTesting(id); |
| 3598 | 3502 |
| 3599 EXPECT_CALL(*context, RetireTextureId(texture_id)).Times(1); | 3503 EXPECT_CALL(*context, RetireTextureId(texture_id)).Times(1); |
| 3600 resource_provider->DeleteResource(id); | 3504 resource_provider->DeleteResource(id); |
| 3601 } | 3505 } |
| 3602 | 3506 |
| 3603 TEST_P(ResourceProviderTest, CompressedTextureETC1SetPixels) { | 3507 TEST_P(ResourceProviderTest, CompressedTextureETC1SetPixels) { |
| 3604 if (GetParam() != ResourceProvider::GLTexture) | 3508 if (GetParam() != ResourceProvider::GLTexture) |
| 3605 return; | 3509 return; |
| 3606 | 3510 |
| 3607 scoped_ptr<AllocationTrackingContext3D> context_owned( | 3511 scoped_ptr<AllocationTrackingContext3D> context_owned( |
| 3608 new AllocationTrackingContext3D); | 3512 new AllocationTrackingContext3D); |
| 3609 AllocationTrackingContext3D* context = context_owned.get(); | 3513 AllocationTrackingContext3D* context = context_owned.get(); |
| 3610 context_owned->set_support_compressed_texture_etc1(true); | 3514 context_owned->set_support_compressed_texture_etc1(true); |
| 3611 | 3515 |
| 3612 FakeOutputSurfaceClient output_surface_client; | 3516 FakeOutputSurfaceClient output_surface_client; |
| 3613 scoped_ptr<OutputSurface> output_surface( | 3517 scoped_ptr<OutputSurface> output_surface( |
| 3614 FakeOutputSurface::Create3d(context_owned.Pass())); | 3518 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 3615 CHECK(output_surface->BindToClient(&output_surface_client)); | 3519 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3616 | 3520 |
| 3617 gfx::Size size(4, 4); | 3521 gfx::Size size(4, 4); |
| 3618 scoped_ptr<ResourceProvider> resource_provider( | 3522 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3619 ResourceProvider::Create(output_surface.get(), | 3523 output_surface.get(), shared_bitmap_manager_.get(), |
| 3620 shared_bitmap_manager_.get(), | 3524 gpu_memory_buffer_manager_.get(), NULL, 0, false, false, 1)); |
| 3621 gpu_memory_buffer_manager_.get(), | |
| 3622 NULL, | |
| 3623 0, | |
| 3624 false, | |
| 3625 1)); | |
| 3626 int texture_id = 123; | 3525 int texture_id = 123; |
| 3627 uint8_t pixels[8]; | 3526 uint8_t pixels[8]; |
| 3628 | 3527 |
| 3629 ResourceProvider::ResourceId id = resource_provider->CreateResource( | 3528 ResourceProvider::ResourceId id = resource_provider->CreateResource( |
| 3630 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, ETC1); | 3529 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, ETC1); |
| 3631 EXPECT_NE(0u, id); | 3530 EXPECT_NE(0u, id); |
| 3632 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); | 3531 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); |
| 3633 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(3); | 3532 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(3); |
| 3634 EXPECT_CALL(*context, | 3533 EXPECT_CALL(*context, |
| 3635 compressedTexImage2D( | 3534 compressedTexImage2D( |
| 3636 _, 0, _, size.width(), size.height(), _, _, _)).Times(1); | 3535 _, 0, _, size.width(), size.height(), _, _, _)).Times(1); |
| 3637 resource_provider->SetPixels( | 3536 resource_provider->SetPixels( |
| 3638 id, pixels, gfx::Rect(size), gfx::Rect(size), gfx::Vector2d(0, 0)); | 3537 id, pixels, gfx::Rect(size), gfx::Rect(size), gfx::Vector2d(0, 0)); |
| 3639 | 3538 |
| 3640 EXPECT_CALL(*context, RetireTextureId(texture_id)).Times(1); | 3539 EXPECT_CALL(*context, RetireTextureId(texture_id)).Times(1); |
| 3641 resource_provider->DeleteResource(id); | 3540 resource_provider->DeleteResource(id); |
| 3642 } | 3541 } |
| 3643 | 3542 |
| 3543 TEST_P(ResourceProviderTest, CompressedTextureAllocation) { |
| 3544 // Only for GL textures. |
| 3545 if (GetParam() != ResourceProvider::GLTexture) |
| 3546 return; |
| 3547 scoped_ptr<AllocationTrackingContext3D> context_owned( |
| 3548 new StrictMock<AllocationTrackingContext3D>); |
| 3549 AllocationTrackingContext3D* context = context_owned.get(); |
| 3550 context_owned->set_support_compressed_texture_atc(true); |
| 3551 context_owned->set_support_compressed_texture_dxt(true); |
| 3552 context_owned->set_support_compressed_texture_etc1(true); |
| 3553 |
| 3554 FakeOutputSurfaceClient output_surface_client; |
| 3555 scoped_ptr<OutputSurface> output_surface( |
| 3556 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 3557 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3558 |
| 3559 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3560 output_surface.get(), shared_bitmap_manager_.get(), |
| 3561 gpu_memory_buffer_manager_.get(), NULL, 0, false, true, 1)); |
| 3562 |
| 3563 gfx::Size size(4, 4); |
| 3564 ResourceProvider::ResourceId id = 0; |
| 3565 int texture_id = 123; |
| 3566 const ResourceFormat formats[5] = {ATC, ATC_IA, DXT1, DXT5, ETC1}; |
| 3567 |
| 3568 for (size_t i = 0; i < arraysize(formats); ++i) { |
| 3569 // Lazy allocation. Don't allocate when creating the resource. |
| 3570 id = resource_provider->CreateResource( |
| 3571 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, |
| 3572 formats[i]); |
| 3573 |
| 3574 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); |
| 3575 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(1); |
| 3576 resource_provider->CreateForTesting(id); |
| 3577 |
| 3578 EXPECT_CALL(*context, RetireTextureId(texture_id)).Times(1); |
| 3579 resource_provider->DeleteResource(id); |
| 3580 |
| 3581 Mock::VerifyAndClearExpectations(context); |
| 3582 |
| 3583 // Async version. |
| 3584 id = resource_provider->CreateResource( |
| 3585 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, |
| 3586 formats[i]); |
| 3587 resource_provider->AcquirePixelBuffer(id); |
| 3588 |
| 3589 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); |
| 3590 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); |
| 3591 EXPECT_CALL(*context, asyncCompressedTexImage2DCHROMIUM(_, _, _, 4, 4, _, _, |
| 3592 _)).Times(1); |
| 3593 resource_provider->BeginSetPixels(id); |
| 3594 ASSERT_TRUE(resource_provider->DidSetPixelsComplete(id)); |
| 3595 |
| 3596 resource_provider->ReleasePixelBuffer(id); |
| 3597 |
| 3598 EXPECT_CALL(*context, RetireTextureId(texture_id)).Times(1); |
| 3599 resource_provider->DeleteResource(id); |
| 3600 |
| 3601 Mock::VerifyAndClearExpectations(context); |
| 3602 } |
| 3603 } |
| 3604 |
| 3644 INSTANTIATE_TEST_CASE_P( | 3605 INSTANTIATE_TEST_CASE_P( |
| 3645 ResourceProviderTests, | 3606 ResourceProviderTests, |
| 3646 ResourceProviderTest, | 3607 ResourceProviderTest, |
| 3647 ::testing::Values(ResourceProvider::GLTexture, ResourceProvider::Bitmap)); | 3608 ::testing::Values(ResourceProvider::GLTexture, ResourceProvider::Bitmap)); |
| 3648 | 3609 |
| 3649 class TextureIdAllocationTrackingContext : public TestWebGraphicsContext3D { | 3610 class TextureIdAllocationTrackingContext : public TestWebGraphicsContext3D { |
| 3650 public: | 3611 public: |
| 3651 GLuint NextTextureId() override { | 3612 GLuint NextTextureId() override { |
| 3652 base::AutoLock lock(namespace_->lock); | 3613 base::AutoLock lock(namespace_->lock); |
| 3653 return namespace_->next_texture_id++; | 3614 return namespace_->next_texture_id++; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 3669 FakeOutputSurface::Create3d(context_owned.Pass())); | 3630 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 3670 CHECK(output_surface->BindToClient(&output_surface_client)); | 3631 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3671 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 3632 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
| 3672 new TestSharedBitmapManager()); | 3633 new TestSharedBitmapManager()); |
| 3673 | 3634 |
| 3674 gfx::Size size(1, 1); | 3635 gfx::Size size(1, 1); |
| 3675 ResourceFormat format = RGBA_8888; | 3636 ResourceFormat format = RGBA_8888; |
| 3676 | 3637 |
| 3677 { | 3638 { |
| 3678 size_t kTextureAllocationChunkSize = 1; | 3639 size_t kTextureAllocationChunkSize = 1; |
| 3679 scoped_ptr<ResourceProvider> resource_provider( | 3640 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3680 ResourceProvider::Create(output_surface.get(), | 3641 output_surface.get(), shared_bitmap_manager.get(), NULL, NULL, 0, false, |
| 3681 shared_bitmap_manager.get(), | 3642 false, kTextureAllocationChunkSize)); |
| 3682 NULL, | |
| 3683 NULL, | |
| 3684 0, | |
| 3685 false, | |
| 3686 kTextureAllocationChunkSize)); | |
| 3687 | 3643 |
| 3688 ResourceProvider::ResourceId id = resource_provider->CreateResource( | 3644 ResourceProvider::ResourceId id = resource_provider->CreateResource( |
| 3689 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); | 3645 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); |
| 3690 resource_provider->AllocateForTesting(id); | 3646 resource_provider->AllocateForTesting(id); |
| 3691 Mock::VerifyAndClearExpectations(context); | 3647 Mock::VerifyAndClearExpectations(context); |
| 3692 | 3648 |
| 3693 DCHECK_EQ(2u, context->PeekTextureId()); | 3649 DCHECK_EQ(2u, context->PeekTextureId()); |
| 3694 resource_provider->DeleteResource(id); | 3650 resource_provider->DeleteResource(id); |
| 3695 } | 3651 } |
| 3696 | 3652 |
| 3697 { | 3653 { |
| 3698 size_t kTextureAllocationChunkSize = 8; | 3654 size_t kTextureAllocationChunkSize = 8; |
| 3699 scoped_ptr<ResourceProvider> resource_provider( | 3655 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3700 ResourceProvider::Create(output_surface.get(), | 3656 output_surface.get(), shared_bitmap_manager.get(), NULL, NULL, 0, false, |
| 3701 shared_bitmap_manager.get(), | 3657 false, kTextureAllocationChunkSize)); |
| 3702 NULL, | |
| 3703 NULL, | |
| 3704 0, | |
| 3705 false, | |
| 3706 kTextureAllocationChunkSize)); | |
| 3707 | 3658 |
| 3708 ResourceProvider::ResourceId id = resource_provider->CreateResource( | 3659 ResourceProvider::ResourceId id = resource_provider->CreateResource( |
| 3709 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); | 3660 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); |
| 3710 resource_provider->AllocateForTesting(id); | 3661 resource_provider->AllocateForTesting(id); |
| 3711 Mock::VerifyAndClearExpectations(context); | 3662 Mock::VerifyAndClearExpectations(context); |
| 3712 | 3663 |
| 3713 DCHECK_EQ(10u, context->PeekTextureId()); | 3664 DCHECK_EQ(10u, context->PeekTextureId()); |
| 3714 resource_provider->DeleteResource(id); | 3665 resource_provider->DeleteResource(id); |
| 3715 } | 3666 } |
| 3716 } | 3667 } |
| 3717 | 3668 |
| 3718 } // namespace | 3669 } // namespace |
| 3719 } // namespace cc | 3670 } // namespace cc |
| OLD | NEW |