| 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 403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 414 } | 414 } |
| 415 CHECK(output_surface_->BindToClient(&output_surface_client_)); | 415 CHECK(output_surface_->BindToClient(&output_surface_client_)); |
| 416 CHECK(child_output_surface_->BindToClient(&child_output_surface_client_)); | 416 CHECK(child_output_surface_->BindToClient(&child_output_surface_client_)); |
| 417 | 417 |
| 418 shared_bitmap_manager_.reset(new TestSharedBitmapManager); | 418 shared_bitmap_manager_.reset(new TestSharedBitmapManager); |
| 419 gpu_memory_buffer_manager_.reset(new TestGpuMemoryBufferManager); | 419 gpu_memory_buffer_manager_.reset(new TestGpuMemoryBufferManager); |
| 420 | 420 |
| 421 resource_provider_ = ResourceProvider::Create( | 421 resource_provider_ = ResourceProvider::Create( |
| 422 output_surface_.get(), shared_bitmap_manager_.get(), | 422 output_surface_.get(), shared_bitmap_manager_.get(), |
| 423 gpu_memory_buffer_manager_.get(), main_thread_task_runner_.get(), 0, | 423 gpu_memory_buffer_manager_.get(), main_thread_task_runner_.get(), 0, |
| 424 false, 1); | 424 false, 1, false); |
| 425 child_resource_provider_ = ResourceProvider::Create( | 425 child_resource_provider_ = ResourceProvider::Create( |
| 426 child_output_surface_.get(), shared_bitmap_manager_.get(), | 426 child_output_surface_.get(), shared_bitmap_manager_.get(), |
| 427 gpu_memory_buffer_manager_.get(), main_thread_task_runner_.get(), 0, | 427 gpu_memory_buffer_manager_.get(), main_thread_task_runner_.get(), 0, |
| 428 false, 1); | 428 false, 1, false); |
| 429 } | 429 } |
| 430 | 430 |
| 431 ResourceProviderTest() : ResourceProviderTest(true) {} | 431 ResourceProviderTest() : ResourceProviderTest(true) {} |
| 432 | 432 |
| 433 static void CollectResources(ReturnedResourceArray* array, | 433 static void CollectResources(ReturnedResourceArray* array, |
| 434 const ReturnedResourceArray& returned, | 434 const ReturnedResourceArray& returned, |
| 435 BlockingTaskRunner* main_thread_task_runner) { | 435 BlockingTaskRunner* main_thread_task_runner) { |
| 436 array->insert(array->end(), returned.begin(), returned.end()); | 436 array->insert(array->end(), returned.begin(), returned.end()); |
| 437 } | 437 } |
| 438 | 438 |
| (...skipping 921 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1360 scoped_ptr<ResourceProviderContext> child_context_owned( | 1360 scoped_ptr<ResourceProviderContext> child_context_owned( |
| 1361 ResourceProviderContext::Create(shared_data_.get())); | 1361 ResourceProviderContext::Create(shared_data_.get())); |
| 1362 | 1362 |
| 1363 FakeOutputSurfaceClient child_output_surface_client; | 1363 FakeOutputSurfaceClient child_output_surface_client; |
| 1364 scoped_ptr<OutputSurface> child_output_surface( | 1364 scoped_ptr<OutputSurface> child_output_surface( |
| 1365 FakeOutputSurface::Create3d(child_context_owned.Pass())); | 1365 FakeOutputSurface::Create3d(child_context_owned.Pass())); |
| 1366 CHECK(child_output_surface->BindToClient(&child_output_surface_client)); | 1366 CHECK(child_output_surface->BindToClient(&child_output_surface_client)); |
| 1367 | 1367 |
| 1368 scoped_ptr<ResourceProvider> child_resource_provider(ResourceProvider::Create( | 1368 scoped_ptr<ResourceProvider> child_resource_provider(ResourceProvider::Create( |
| 1369 child_output_surface.get(), shared_bitmap_manager_.get(), | 1369 child_output_surface.get(), shared_bitmap_manager_.get(), |
| 1370 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1)); | 1370 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false)); |
| 1371 | 1371 |
| 1372 gfx::Size size(1, 1); | 1372 gfx::Size size(1, 1); |
| 1373 ResourceFormat format = RGBA_8888; | 1373 ResourceFormat format = RGBA_8888; |
| 1374 size_t pixel_size = TextureSizeBytes(size, format); | 1374 size_t pixel_size = TextureSizeBytes(size, format); |
| 1375 ASSERT_EQ(4U, pixel_size); | 1375 ASSERT_EQ(4U, pixel_size); |
| 1376 | 1376 |
| 1377 ResourceId id1 = child_resource_provider->CreateResource( | 1377 ResourceId id1 = child_resource_provider->CreateResource( |
| 1378 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 1378 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
| 1379 uint8_t data1[4] = { 1, 2, 3, 4 }; | 1379 uint8_t data1[4] = { 1, 2, 3, 4 }; |
| 1380 child_resource_provider->CopyToResource(id1, data1, size); | 1380 child_resource_provider->CopyToResource(id1, data1, size); |
| (...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1844 FakeOutputSurfaceClient child_output_surface_client; | 1844 FakeOutputSurfaceClient child_output_surface_client; |
| 1845 scoped_ptr<OutputSurface> child_output_surface( | 1845 scoped_ptr<OutputSurface> child_output_surface( |
| 1846 FakeOutputSurface::Create3d(child_context_owned.Pass())); | 1846 FakeOutputSurface::Create3d(child_context_owned.Pass())); |
| 1847 CHECK(child_output_surface->BindToClient(&child_output_surface_client)); | 1847 CHECK(child_output_surface->BindToClient(&child_output_surface_client)); |
| 1848 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 1848 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
| 1849 new TestSharedBitmapManager()); | 1849 new TestSharedBitmapManager()); |
| 1850 | 1850 |
| 1851 scoped_ptr<ResourceProvider> child_resource_provider( | 1851 scoped_ptr<ResourceProvider> child_resource_provider( |
| 1852 ResourceProvider::Create(child_output_surface.get(), | 1852 ResourceProvider::Create(child_output_surface.get(), |
| 1853 shared_bitmap_manager.get(), NULL, NULL, 0, | 1853 shared_bitmap_manager.get(), NULL, NULL, 0, |
| 1854 false, 1)); | 1854 false, 1, false)); |
| 1855 | 1855 |
| 1856 scoped_ptr<TextureStateTrackingContext> parent_context_owned( | 1856 scoped_ptr<TextureStateTrackingContext> parent_context_owned( |
| 1857 new TextureStateTrackingContext); | 1857 new TextureStateTrackingContext); |
| 1858 TextureStateTrackingContext* parent_context = parent_context_owned.get(); | 1858 TextureStateTrackingContext* parent_context = parent_context_owned.get(); |
| 1859 | 1859 |
| 1860 FakeOutputSurfaceClient parent_output_surface_client; | 1860 FakeOutputSurfaceClient parent_output_surface_client; |
| 1861 scoped_ptr<OutputSurface> parent_output_surface( | 1861 scoped_ptr<OutputSurface> parent_output_surface( |
| 1862 FakeOutputSurface::Create3d(parent_context_owned.Pass())); | 1862 FakeOutputSurface::Create3d(parent_context_owned.Pass())); |
| 1863 CHECK(parent_output_surface->BindToClient(&parent_output_surface_client)); | 1863 CHECK(parent_output_surface->BindToClient(&parent_output_surface_client)); |
| 1864 | 1864 |
| 1865 scoped_ptr<ResourceProvider> parent_resource_provider( | 1865 scoped_ptr<ResourceProvider> parent_resource_provider( |
| 1866 ResourceProvider::Create(parent_output_surface.get(), | 1866 ResourceProvider::Create(parent_output_surface.get(), |
| 1867 shared_bitmap_manager.get(), NULL, NULL, 0, | 1867 shared_bitmap_manager.get(), NULL, NULL, 0, |
| 1868 false, 1)); | 1868 false, 1, false)); |
| 1869 | 1869 |
| 1870 gfx::Size size(1, 1); | 1870 gfx::Size size(1, 1); |
| 1871 ResourceFormat format = RGBA_8888; | 1871 ResourceFormat format = RGBA_8888; |
| 1872 int child_texture_id = 1; | 1872 int child_texture_id = 1; |
| 1873 int parent_texture_id = 2; | 1873 int parent_texture_id = 2; |
| 1874 | 1874 |
| 1875 size_t pixel_size = TextureSizeBytes(size, format); | 1875 size_t pixel_size = TextureSizeBytes(size, format); |
| 1876 ASSERT_EQ(4U, pixel_size); | 1876 ASSERT_EQ(4U, pixel_size); |
| 1877 | 1877 |
| 1878 ResourceId id = child_resource_provider->CreateResource( | 1878 ResourceId id = child_resource_provider->CreateResource( |
| (...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2490 new TextureStateTrackingContext); | 2490 new TextureStateTrackingContext); |
| 2491 TextureStateTrackingContext* context = context_owned.get(); | 2491 TextureStateTrackingContext* context = context_owned.get(); |
| 2492 | 2492 |
| 2493 FakeOutputSurfaceClient output_surface_client; | 2493 FakeOutputSurfaceClient output_surface_client; |
| 2494 scoped_ptr<OutputSurface> output_surface( | 2494 scoped_ptr<OutputSurface> output_surface( |
| 2495 FakeOutputSurface::Create3d(context_owned.Pass())); | 2495 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 2496 CHECK(output_surface->BindToClient(&output_surface_client)); | 2496 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 2497 | 2497 |
| 2498 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 2498 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 2499 output_surface.get(), shared_bitmap_manager_.get(), | 2499 output_surface.get(), shared_bitmap_manager_.get(), |
| 2500 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1)); | 2500 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false)); |
| 2501 | 2501 |
| 2502 gfx::Size size(1, 1); | 2502 gfx::Size size(1, 1); |
| 2503 ResourceFormat format = RGBA_8888; | 2503 ResourceFormat format = RGBA_8888; |
| 2504 int texture_id = 1; | 2504 int texture_id = 1; |
| 2505 | 2505 |
| 2506 ResourceId id = resource_provider->CreateResource( | 2506 ResourceId id = resource_provider->CreateResource( |
| 2507 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 2507 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
| 2508 | 2508 |
| 2509 // Check that the texture gets created with the right sampler settings. | 2509 // Check that the texture gets created with the right sampler settings. |
| 2510 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)) | 2510 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)) |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2572 new TextureStateTrackingContext); | 2572 new TextureStateTrackingContext); |
| 2573 TextureStateTrackingContext* context = context_owned.get(); | 2573 TextureStateTrackingContext* context = context_owned.get(); |
| 2574 | 2574 |
| 2575 FakeOutputSurfaceClient output_surface_client; | 2575 FakeOutputSurfaceClient output_surface_client; |
| 2576 scoped_ptr<OutputSurface> output_surface( | 2576 scoped_ptr<OutputSurface> output_surface( |
| 2577 FakeOutputSurface::Create3d(context_owned.Pass())); | 2577 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 2578 CHECK(output_surface->BindToClient(&output_surface_client)); | 2578 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 2579 | 2579 |
| 2580 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 2580 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 2581 output_surface.get(), shared_bitmap_manager_.get(), | 2581 output_surface.get(), shared_bitmap_manager_.get(), |
| 2582 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1)); | 2582 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false)); |
| 2583 | 2583 |
| 2584 gfx::Size size(1, 1); | 2584 gfx::Size size(1, 1); |
| 2585 ResourceFormat format = RGBA_8888; | 2585 ResourceFormat format = RGBA_8888; |
| 2586 int texture_id = 1; | 2586 int texture_id = 1; |
| 2587 | 2587 |
| 2588 // Check that the texture gets created with the right sampler settings. | 2588 // Check that the texture gets created with the right sampler settings. |
| 2589 ResourceId id = resource_provider->CreateManagedResource( | 2589 ResourceId id = resource_provider->CreateManagedResource( |
| 2590 size, GL_TEXTURE_2D, GL_CLAMP_TO_EDGE, | 2590 size, GL_TEXTURE_2D, GL_CLAMP_TO_EDGE, |
| 2591 ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 2591 ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
| 2592 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)); | 2592 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 2619 new TextureStateTrackingContext); | 2619 new TextureStateTrackingContext); |
| 2620 TextureStateTrackingContext* context = context_owned.get(); | 2620 TextureStateTrackingContext* context = context_owned.get(); |
| 2621 | 2621 |
| 2622 FakeOutputSurfaceClient output_surface_client; | 2622 FakeOutputSurfaceClient output_surface_client; |
| 2623 scoped_ptr<OutputSurface> output_surface( | 2623 scoped_ptr<OutputSurface> output_surface( |
| 2624 FakeOutputSurface::Create3d(context_owned.Pass())); | 2624 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 2625 CHECK(output_surface->BindToClient(&output_surface_client)); | 2625 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 2626 | 2626 |
| 2627 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 2627 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 2628 output_surface.get(), shared_bitmap_manager_.get(), | 2628 output_surface.get(), shared_bitmap_manager_.get(), |
| 2629 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1)); | 2629 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false)); |
| 2630 | 2630 |
| 2631 gfx::Size size(1, 1); | 2631 gfx::Size size(1, 1); |
| 2632 ResourceFormat format = RGBA_8888; | 2632 ResourceFormat format = RGBA_8888; |
| 2633 GLenum texture_pool = GL_TEXTURE_POOL_UNMANAGED_CHROMIUM; | 2633 GLenum texture_pool = GL_TEXTURE_POOL_UNMANAGED_CHROMIUM; |
| 2634 | 2634 |
| 2635 for (int texture_id = 1; texture_id <= 2; ++texture_id) { | 2635 for (int texture_id = 1; texture_id <= 2; ++texture_id) { |
| 2636 GLint wrap_mode = texture_id == 1 ? GL_CLAMP_TO_EDGE : GL_REPEAT; | 2636 GLint wrap_mode = texture_id == 1 ? GL_CLAMP_TO_EDGE : GL_REPEAT; |
| 2637 // Check that the texture gets created with the right sampler settings. | 2637 // Check that the texture gets created with the right sampler settings. |
| 2638 ResourceId id = resource_provider->CreateGLTexture( | 2638 ResourceId id = resource_provider->CreateGLTexture( |
| 2639 size, GL_TEXTURE_2D, texture_pool, wrap_mode, | 2639 size, GL_TEXTURE_2D, texture_pool, wrap_mode, |
| (...skipping 29 matching lines...) Expand all Loading... |
| 2669 context->set_support_texture_storage(true); | 2669 context->set_support_texture_storage(true); |
| 2670 context->set_support_texture_usage(true); | 2670 context->set_support_texture_usage(true); |
| 2671 | 2671 |
| 2672 FakeOutputSurfaceClient output_surface_client; | 2672 FakeOutputSurfaceClient output_surface_client; |
| 2673 scoped_ptr<OutputSurface> output_surface( | 2673 scoped_ptr<OutputSurface> output_surface( |
| 2674 FakeOutputSurface::Create3d(context_owned.Pass())); | 2674 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 2675 CHECK(output_surface->BindToClient(&output_surface_client)); | 2675 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 2676 | 2676 |
| 2677 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 2677 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 2678 output_surface.get(), shared_bitmap_manager_.get(), | 2678 output_surface.get(), shared_bitmap_manager_.get(), |
| 2679 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1)); | 2679 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false)); |
| 2680 | 2680 |
| 2681 gfx::Size size(1, 1); | 2681 gfx::Size size(1, 1); |
| 2682 ResourceFormat format = RGBA_8888; | 2682 ResourceFormat format = RGBA_8888; |
| 2683 GLenum texture_pool = GL_TEXTURE_POOL_UNMANAGED_CHROMIUM; | 2683 GLenum texture_pool = GL_TEXTURE_POOL_UNMANAGED_CHROMIUM; |
| 2684 | 2684 |
| 2685 const ResourceProvider::TextureHint hints[4] = { | 2685 const ResourceProvider::TextureHint hints[4] = { |
| 2686 ResourceProvider::TEXTURE_HINT_DEFAULT, | 2686 ResourceProvider::TEXTURE_HINT_DEFAULT, |
| 2687 ResourceProvider::TEXTURE_HINT_IMMUTABLE, | 2687 ResourceProvider::TEXTURE_HINT_IMMUTABLE, |
| 2688 ResourceProvider::TEXTURE_HINT_FRAMEBUFFER, | 2688 ResourceProvider::TEXTURE_HINT_FRAMEBUFFER, |
| 2689 ResourceProvider::TEXTURE_HINT_IMMUTABLE_FRAMEBUFFER, | 2689 ResourceProvider::TEXTURE_HINT_IMMUTABLE_FRAMEBUFFER, |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2734 | 2734 |
| 2735 FakeOutputSurfaceClient output_surface_client; | 2735 FakeOutputSurfaceClient output_surface_client; |
| 2736 scoped_ptr<OutputSurface> output_surface( | 2736 scoped_ptr<OutputSurface> output_surface( |
| 2737 FakeOutputSurface::CreateSoftware(make_scoped_ptr( | 2737 FakeOutputSurface::CreateSoftware(make_scoped_ptr( |
| 2738 new SoftwareOutputDevice))); | 2738 new SoftwareOutputDevice))); |
| 2739 CHECK(output_surface->BindToClient(&output_surface_client)); | 2739 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 2740 | 2740 |
| 2741 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 2741 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 2742 output_surface.get(), shared_bitmap_manager_.get(), | 2742 output_surface.get(), shared_bitmap_manager_.get(), |
| 2743 gpu_memory_buffer_manager_.get(), main_thread_task_runner_.get(), 0, | 2743 gpu_memory_buffer_manager_.get(), main_thread_task_runner_.get(), 0, |
| 2744 false, 1)); | 2744 false, 1, false)); |
| 2745 | 2745 |
| 2746 uint32 release_sync_point = 0; | 2746 uint32 release_sync_point = 0; |
| 2747 bool lost_resource = false; | 2747 bool lost_resource = false; |
| 2748 BlockingTaskRunner* main_thread_task_runner = NULL; | 2748 BlockingTaskRunner* main_thread_task_runner = NULL; |
| 2749 scoped_ptr<SingleReleaseCallbackImpl> callback = | 2749 scoped_ptr<SingleReleaseCallbackImpl> callback = |
| 2750 SingleReleaseCallbackImpl::Create(base::Bind(&ReleaseCallback, | 2750 SingleReleaseCallbackImpl::Create(base::Bind(&ReleaseCallback, |
| 2751 &release_sync_point, | 2751 &release_sync_point, |
| 2752 &lost_resource, | 2752 &lost_resource, |
| 2753 &main_thread_task_runner)); | 2753 &main_thread_task_runner)); |
| 2754 TextureMailbox mailbox(shared_bitmap.get(), size); | 2754 TextureMailbox mailbox(shared_bitmap.get(), size); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 2783 new TextureStateTrackingContext); | 2783 new TextureStateTrackingContext); |
| 2784 TextureStateTrackingContext* context = context_owned.get(); | 2784 TextureStateTrackingContext* context = context_owned.get(); |
| 2785 | 2785 |
| 2786 FakeOutputSurfaceClient output_surface_client; | 2786 FakeOutputSurfaceClient output_surface_client; |
| 2787 scoped_ptr<OutputSurface> output_surface( | 2787 scoped_ptr<OutputSurface> output_surface( |
| 2788 FakeOutputSurface::Create3d(context_owned.Pass())); | 2788 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 2789 CHECK(output_surface->BindToClient(&output_surface_client)); | 2789 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 2790 | 2790 |
| 2791 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 2791 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 2792 output_surface.get(), shared_bitmap_manager, gpu_memory_buffer_manager, | 2792 output_surface.get(), shared_bitmap_manager, gpu_memory_buffer_manager, |
| 2793 main_thread_task_runner, 0, false, 1)); | 2793 main_thread_task_runner, 0, false, 1, false)); |
| 2794 | 2794 |
| 2795 unsigned texture_id = 1; | 2795 unsigned texture_id = 1; |
| 2796 uint32 sync_point = 30; | 2796 uint32 sync_point = 30; |
| 2797 unsigned target = GL_TEXTURE_2D; | 2797 unsigned target = GL_TEXTURE_2D; |
| 2798 | 2798 |
| 2799 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); | 2799 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); |
| 2800 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); | 2800 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); |
| 2801 EXPECT_CALL(*context, insertSyncPoint()).Times(0); | 2801 EXPECT_CALL(*context, insertSyncPoint()).Times(0); |
| 2802 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); | 2802 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); |
| 2803 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); | 2803 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2926 new TextureStateTrackingContext); | 2926 new TextureStateTrackingContext); |
| 2927 TextureStateTrackingContext* context = context_owned.get(); | 2927 TextureStateTrackingContext* context = context_owned.get(); |
| 2928 | 2928 |
| 2929 FakeOutputSurfaceClient output_surface_client; | 2929 FakeOutputSurfaceClient output_surface_client; |
| 2930 scoped_ptr<OutputSurface> output_surface( | 2930 scoped_ptr<OutputSurface> output_surface( |
| 2931 FakeOutputSurface::Create3d(context_owned.Pass())); | 2931 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 2932 CHECK(output_surface->BindToClient(&output_surface_client)); | 2932 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 2933 | 2933 |
| 2934 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 2934 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 2935 output_surface.get(), shared_bitmap_manager_.get(), | 2935 output_surface.get(), shared_bitmap_manager_.get(), |
| 2936 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1)); | 2936 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false)); |
| 2937 | 2937 |
| 2938 uint32 sync_point = 30; | 2938 uint32 sync_point = 30; |
| 2939 unsigned target = GL_TEXTURE_EXTERNAL_OES; | 2939 unsigned target = GL_TEXTURE_EXTERNAL_OES; |
| 2940 | 2940 |
| 2941 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); | 2941 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); |
| 2942 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); | 2942 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); |
| 2943 EXPECT_CALL(*context, insertSyncPoint()).Times(0); | 2943 EXPECT_CALL(*context, insertSyncPoint()).Times(0); |
| 2944 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); | 2944 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); |
| 2945 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); | 2945 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); |
| 2946 | 2946 |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2995 new TextureStateTrackingContext); | 2995 new TextureStateTrackingContext); |
| 2996 TextureStateTrackingContext* context = context_owned.get(); | 2996 TextureStateTrackingContext* context = context_owned.get(); |
| 2997 | 2997 |
| 2998 FakeOutputSurfaceClient output_surface_client; | 2998 FakeOutputSurfaceClient output_surface_client; |
| 2999 scoped_ptr<OutputSurface> output_surface( | 2999 scoped_ptr<OutputSurface> output_surface( |
| 3000 FakeOutputSurface::Create3d(context_owned.Pass())); | 3000 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 3001 CHECK(output_surface->BindToClient(&output_surface_client)); | 3001 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3002 | 3002 |
| 3003 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3003 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3004 output_surface.get(), shared_bitmap_manager_.get(), | 3004 output_surface.get(), shared_bitmap_manager_.get(), |
| 3005 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1)); | 3005 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false)); |
| 3006 | 3006 |
| 3007 uint32 sync_point = 30; | 3007 uint32 sync_point = 30; |
| 3008 unsigned target = GL_TEXTURE_2D; | 3008 unsigned target = GL_TEXTURE_2D; |
| 3009 | 3009 |
| 3010 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); | 3010 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); |
| 3011 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); | 3011 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); |
| 3012 EXPECT_CALL(*context, insertSyncPoint()).Times(0); | 3012 EXPECT_CALL(*context, insertSyncPoint()).Times(0); |
| 3013 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); | 3013 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); |
| 3014 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); | 3014 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); |
| 3015 | 3015 |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3048 new TextureStateTrackingContext); | 3048 new TextureStateTrackingContext); |
| 3049 TextureStateTrackingContext* context = context_owned.get(); | 3049 TextureStateTrackingContext* context = context_owned.get(); |
| 3050 | 3050 |
| 3051 FakeOutputSurfaceClient output_surface_client; | 3051 FakeOutputSurfaceClient output_surface_client; |
| 3052 scoped_ptr<OutputSurface> output_surface( | 3052 scoped_ptr<OutputSurface> output_surface( |
| 3053 FakeOutputSurface::Create3d(context_owned.Pass())); | 3053 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 3054 CHECK(output_surface->BindToClient(&output_surface_client)); | 3054 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3055 | 3055 |
| 3056 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3056 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3057 output_surface.get(), shared_bitmap_manager_.get(), | 3057 output_surface.get(), shared_bitmap_manager_.get(), |
| 3058 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1)); | 3058 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false)); |
| 3059 | 3059 |
| 3060 uint32 sync_point = 0; | 3060 uint32 sync_point = 0; |
| 3061 unsigned target = GL_TEXTURE_2D; | 3061 unsigned target = GL_TEXTURE_2D; |
| 3062 | 3062 |
| 3063 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); | 3063 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); |
| 3064 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); | 3064 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); |
| 3065 EXPECT_CALL(*context, insertSyncPoint()).Times(0); | 3065 EXPECT_CALL(*context, insertSyncPoint()).Times(0); |
| 3066 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); | 3066 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); |
| 3067 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); | 3067 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); |
| 3068 | 3068 |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3168 new StrictMock<AllocationTrackingContext3D>); | 3168 new StrictMock<AllocationTrackingContext3D>); |
| 3169 AllocationTrackingContext3D* context = context_owned.get(); | 3169 AllocationTrackingContext3D* context = context_owned.get(); |
| 3170 | 3170 |
| 3171 FakeOutputSurfaceClient output_surface_client; | 3171 FakeOutputSurfaceClient output_surface_client; |
| 3172 scoped_ptr<OutputSurface> output_surface( | 3172 scoped_ptr<OutputSurface> output_surface( |
| 3173 FakeOutputSurface::Create3d(context_owned.Pass())); | 3173 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 3174 CHECK(output_surface->BindToClient(&output_surface_client)); | 3174 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3175 | 3175 |
| 3176 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3176 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3177 output_surface.get(), shared_bitmap_manager_.get(), | 3177 output_surface.get(), shared_bitmap_manager_.get(), |
| 3178 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1)); | 3178 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false)); |
| 3179 | 3179 |
| 3180 gfx::Size size(2, 2); | 3180 gfx::Size size(2, 2); |
| 3181 gfx::Vector2d offset(0, 0); | 3181 gfx::Vector2d offset(0, 0); |
| 3182 ResourceFormat format = RGBA_8888; | 3182 ResourceFormat format = RGBA_8888; |
| 3183 ResourceId id = 0; | 3183 ResourceId id = 0; |
| 3184 uint8_t pixels[16] = { 0 }; | 3184 uint8_t pixels[16] = { 0 }; |
| 3185 int texture_id = 123; | 3185 int texture_id = 123; |
| 3186 | 3186 |
| 3187 // Lazy allocation. Don't allocate when creating the resource. | 3187 // Lazy allocation. Don't allocate when creating the resource. |
| 3188 id = resource_provider->CreateResource( | 3188 id = resource_provider->CreateResource( |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3242 context->set_support_texture_storage(true); | 3242 context->set_support_texture_storage(true); |
| 3243 context->set_support_texture_usage(true); | 3243 context->set_support_texture_usage(true); |
| 3244 | 3244 |
| 3245 FakeOutputSurfaceClient output_surface_client; | 3245 FakeOutputSurfaceClient output_surface_client; |
| 3246 scoped_ptr<OutputSurface> output_surface( | 3246 scoped_ptr<OutputSurface> output_surface( |
| 3247 FakeOutputSurface::Create3d(context_owned.Pass())); | 3247 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 3248 CHECK(output_surface->BindToClient(&output_surface_client)); | 3248 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3249 | 3249 |
| 3250 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3250 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3251 output_surface.get(), shared_bitmap_manager_.get(), | 3251 output_surface.get(), shared_bitmap_manager_.get(), |
| 3252 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1)); | 3252 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false)); |
| 3253 | 3253 |
| 3254 gfx::Size size(2, 2); | 3254 gfx::Size size(2, 2); |
| 3255 | 3255 |
| 3256 const ResourceFormat formats[2] = {RGBA_8888, BGRA_8888}; | 3256 const ResourceFormat formats[2] = {RGBA_8888, BGRA_8888}; |
| 3257 const ResourceProvider::TextureHint hints[4] = { | 3257 const ResourceProvider::TextureHint hints[4] = { |
| 3258 ResourceProvider::TEXTURE_HINT_DEFAULT, | 3258 ResourceProvider::TEXTURE_HINT_DEFAULT, |
| 3259 ResourceProvider::TEXTURE_HINT_IMMUTABLE, | 3259 ResourceProvider::TEXTURE_HINT_IMMUTABLE, |
| 3260 ResourceProvider::TEXTURE_HINT_FRAMEBUFFER, | 3260 ResourceProvider::TEXTURE_HINT_FRAMEBUFFER, |
| 3261 ResourceProvider::TEXTURE_HINT_IMMUTABLE_FRAMEBUFFER, | 3261 ResourceProvider::TEXTURE_HINT_IMMUTABLE_FRAMEBUFFER, |
| 3262 }; | 3262 }; |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3297 context->set_support_texture_storage(true); | 3297 context->set_support_texture_storage(true); |
| 3298 context->set_support_texture_usage(true); | 3298 context->set_support_texture_usage(true); |
| 3299 | 3299 |
| 3300 FakeOutputSurfaceClient output_surface_client; | 3300 FakeOutputSurfaceClient output_surface_client; |
| 3301 scoped_ptr<OutputSurface> output_surface( | 3301 scoped_ptr<OutputSurface> output_surface( |
| 3302 FakeOutputSurface::Create3d(context_owned.Pass())); | 3302 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 3303 CHECK(output_surface->BindToClient(&output_surface_client)); | 3303 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3304 | 3304 |
| 3305 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3305 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3306 output_surface.get(), shared_bitmap_manager_.get(), | 3306 output_surface.get(), shared_bitmap_manager_.get(), |
| 3307 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1)); | 3307 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false)); |
| 3308 | 3308 |
| 3309 gfx::Size size(2, 2); | 3309 gfx::Size size(2, 2); |
| 3310 const ResourceFormat formats[2] = {RGBA_8888, BGRA_8888}; | 3310 const ResourceFormat formats[2] = {RGBA_8888, BGRA_8888}; |
| 3311 | 3311 |
| 3312 const ResourceProvider::TextureHint hints[4] = { | 3312 const ResourceProvider::TextureHint hints[4] = { |
| 3313 ResourceProvider::TEXTURE_HINT_DEFAULT, | 3313 ResourceProvider::TEXTURE_HINT_DEFAULT, |
| 3314 ResourceProvider::TEXTURE_HINT_IMMUTABLE, | 3314 ResourceProvider::TEXTURE_HINT_IMMUTABLE, |
| 3315 ResourceProvider::TEXTURE_HINT_FRAMEBUFFER, | 3315 ResourceProvider::TEXTURE_HINT_FRAMEBUFFER, |
| 3316 ResourceProvider::TEXTURE_HINT_IMMUTABLE_FRAMEBUFFER, | 3316 ResourceProvider::TEXTURE_HINT_IMMUTABLE_FRAMEBUFFER, |
| 3317 }; | 3317 }; |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3351 FakeOutputSurface::Create3d(context_owned.Pass())); | 3351 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 3352 CHECK(output_surface->BindToClient(&output_surface_client)); | 3352 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3353 | 3353 |
| 3354 gfx::Size size(2, 2); | 3354 gfx::Size size(2, 2); |
| 3355 ResourceFormat format = RGBA_8888; | 3355 ResourceFormat format = RGBA_8888; |
| 3356 ResourceId id = 0; | 3356 ResourceId id = 0; |
| 3357 int texture_id = 123; | 3357 int texture_id = 123; |
| 3358 | 3358 |
| 3359 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3359 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3360 output_surface.get(), shared_bitmap_manager_.get(), | 3360 output_surface.get(), shared_bitmap_manager_.get(), |
| 3361 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1)); | 3361 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false)); |
| 3362 | 3362 |
| 3363 id = resource_provider->CreateResource( | 3363 id = resource_provider->CreateResource( |
| 3364 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 3364 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
| 3365 resource_provider->AcquirePixelBuffer(id); | 3365 resource_provider->AcquirePixelBuffer(id); |
| 3366 | 3366 |
| 3367 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); | 3367 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); |
| 3368 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); | 3368 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); |
| 3369 EXPECT_CALL(*context, asyncTexImage2DCHROMIUM(_, _, _, 2, 2, _, _, _, _)) | 3369 EXPECT_CALL(*context, asyncTexImage2DCHROMIUM(_, _, _, 2, 2, _, _, _, _)) |
| 3370 .Times(1); | 3370 .Times(1); |
| 3371 resource_provider->BeginSetPixels(id); | 3371 resource_provider->BeginSetPixels(id); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 3393 FakeOutputSurface::Create3d(context_owned.Pass())); | 3393 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 3394 CHECK(output_surface->BindToClient(&output_surface_client)); | 3394 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3395 | 3395 |
| 3396 gfx::Size size(2, 2); | 3396 gfx::Size size(2, 2); |
| 3397 ResourceFormat format = RGBA_8888; | 3397 ResourceFormat format = RGBA_8888; |
| 3398 ResourceId id = 0; | 3398 ResourceId id = 0; |
| 3399 int texture_id = 123; | 3399 int texture_id = 123; |
| 3400 | 3400 |
| 3401 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3401 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3402 output_surface.get(), shared_bitmap_manager_.get(), | 3402 output_surface.get(), shared_bitmap_manager_.get(), |
| 3403 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1)); | 3403 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false)); |
| 3404 | 3404 |
| 3405 id = resource_provider->CreateResource( | 3405 id = resource_provider->CreateResource( |
| 3406 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 3406 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
| 3407 resource_provider->AcquirePixelBuffer(id); | 3407 resource_provider->AcquirePixelBuffer(id); |
| 3408 | 3408 |
| 3409 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); | 3409 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); |
| 3410 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); | 3410 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); |
| 3411 EXPECT_CALL(*context, asyncTexImage2DCHROMIUM(_, _, _, 2, 2, _, _, _, _)) | 3411 EXPECT_CALL(*context, asyncTexImage2DCHROMIUM(_, _, _, 2, 2, _, _, _, _)) |
| 3412 .Times(1); | 3412 .Times(1); |
| 3413 resource_provider->BeginSetPixels(id); | 3413 resource_provider->BeginSetPixels(id); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 3435 FakeOutputSurface::Create3d(context_owned.Pass())); | 3435 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 3436 CHECK(output_surface->BindToClient(&output_surface_client)); | 3436 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3437 | 3437 |
| 3438 gfx::Size size(2, 2); | 3438 gfx::Size size(2, 2); |
| 3439 ResourceFormat format = RGBA_8888; | 3439 ResourceFormat format = RGBA_8888; |
| 3440 ResourceId id = 0; | 3440 ResourceId id = 0; |
| 3441 int texture_id = 123; | 3441 int texture_id = 123; |
| 3442 | 3442 |
| 3443 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3443 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3444 output_surface.get(), shared_bitmap_manager_.get(), | 3444 output_surface.get(), shared_bitmap_manager_.get(), |
| 3445 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1)); | 3445 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false)); |
| 3446 | 3446 |
| 3447 EXPECT_CALL(*context, NextTextureId()).WillRepeatedly(Return(texture_id)); | 3447 EXPECT_CALL(*context, NextTextureId()).WillRepeatedly(Return(texture_id)); |
| 3448 | 3448 |
| 3449 id = resource_provider->CreateResource( | 3449 id = resource_provider->CreateResource( |
| 3450 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 3450 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
| 3451 context->loseContextCHROMIUM(GL_GUILTY_CONTEXT_RESET_ARB, | 3451 context->loseContextCHROMIUM(GL_GUILTY_CONTEXT_RESET_ARB, |
| 3452 GL_INNOCENT_CONTEXT_RESET_ARB); | 3452 GL_INNOCENT_CONTEXT_RESET_ARB); |
| 3453 | 3453 |
| 3454 resource_provider->AcquirePixelBuffer(id); | 3454 resource_provider->AcquirePixelBuffer(id); |
| 3455 int stride; | 3455 int stride; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 3475 const int kWidth = 2; | 3475 const int kWidth = 2; |
| 3476 const int kHeight = 2; | 3476 const int kHeight = 2; |
| 3477 gfx::Size size(kWidth, kHeight); | 3477 gfx::Size size(kWidth, kHeight); |
| 3478 ResourceFormat format = RGBA_8888; | 3478 ResourceFormat format = RGBA_8888; |
| 3479 ResourceId id = 0; | 3479 ResourceId id = 0; |
| 3480 const unsigned kTextureId = 123u; | 3480 const unsigned kTextureId = 123u; |
| 3481 const unsigned kImageId = 234u; | 3481 const unsigned kImageId = 234u; |
| 3482 | 3482 |
| 3483 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3483 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3484 output_surface.get(), shared_bitmap_manager_.get(), | 3484 output_surface.get(), shared_bitmap_manager_.get(), |
| 3485 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1)); | 3485 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false)); |
| 3486 | 3486 |
| 3487 id = resource_provider->CreateResource( | 3487 id = resource_provider->CreateResource( |
| 3488 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 3488 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
| 3489 | 3489 |
| 3490 EXPECT_CALL(*context, NextTextureId()) | 3490 EXPECT_CALL(*context, NextTextureId()) |
| 3491 .WillOnce(Return(kTextureId)) | 3491 .WillOnce(Return(kTextureId)) |
| 3492 .RetiresOnSaturation(); | 3492 .RetiresOnSaturation(); |
| 3493 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, kTextureId)) | 3493 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, kTextureId)) |
| 3494 .Times(1) | 3494 .Times(1) |
| 3495 .RetiresOnSaturation(); | 3495 .RetiresOnSaturation(); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3535 ResourceProvider::ScopedSamplerGL lock_gl( | 3535 ResourceProvider::ScopedSamplerGL lock_gl( |
| 3536 resource_provider.get(), id, GL_TEXTURE_2D, GL_LINEAR); | 3536 resource_provider.get(), id, GL_TEXTURE_2D, GL_LINEAR); |
| 3537 EXPECT_EQ(kTextureId, lock_gl.texture_id()); | 3537 EXPECT_EQ(kTextureId, lock_gl.texture_id()); |
| 3538 } | 3538 } |
| 3539 | 3539 |
| 3540 EXPECT_CALL(*context, destroyImageCHROMIUM(kImageId)) | 3540 EXPECT_CALL(*context, destroyImageCHROMIUM(kImageId)) |
| 3541 .Times(1) | 3541 .Times(1) |
| 3542 .RetiresOnSaturation(); | 3542 .RetiresOnSaturation(); |
| 3543 } | 3543 } |
| 3544 | 3544 |
| 3545 TEST_P(ResourceProviderTest, CopyResource_GLTexture) { |
| 3546 if (GetParam() != ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) |
| 3547 return; |
| 3548 scoped_ptr<AllocationTrackingContext3D> context_owned( |
| 3549 new StrictMock<AllocationTrackingContext3D>); |
| 3550 AllocationTrackingContext3D* context = context_owned.get(); |
| 3551 context_owned->set_support_sync_query(true); |
| 3552 |
| 3553 FakeOutputSurfaceClient output_surface_client; |
| 3554 scoped_ptr<OutputSurface> output_surface( |
| 3555 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 3556 ASSERT_TRUE(output_surface->BindToClient(&output_surface_client)); |
| 3557 |
| 3558 const int kWidth = 2; |
| 3559 const int kHeight = 2; |
| 3560 gfx::Size size(kWidth, kHeight); |
| 3561 ResourceFormat format = RGBA_8888; |
| 3562 ResourceId source_id = 0; |
| 3563 ResourceId dest_id = 0; |
| 3564 const unsigned kSourceTextureId = 123u; |
| 3565 const unsigned kDestTextureId = 321u; |
| 3566 const unsigned kImageId = 234u; |
| 3567 |
| 3568 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3569 output_surface.get(), shared_bitmap_manager_.get(), |
| 3570 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false)); |
| 3571 |
| 3572 source_id = resource_provider->CreateResource( |
| 3573 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
| 3574 |
| 3575 EXPECT_CALL(*context, NextTextureId()) |
| 3576 .WillOnce(Return(kSourceTextureId)) |
| 3577 .RetiresOnSaturation(); |
| 3578 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, kSourceTextureId)) |
| 3579 .Times(1) |
| 3580 .RetiresOnSaturation(); |
| 3581 EXPECT_CALL(*context, createImageCHROMIUM(_, kWidth, kHeight, GL_RGBA)) |
| 3582 .WillOnce(Return(kImageId)) |
| 3583 .RetiresOnSaturation(); |
| 3584 { |
| 3585 ResourceProvider::ScopedWriteLockGpuMemoryBuffer lock( |
| 3586 resource_provider.get(), source_id); |
| 3587 EXPECT_TRUE(lock.GetGpuMemoryBuffer()); |
| 3588 } |
| 3589 Mock::VerifyAndClearExpectations(context); |
| 3590 |
| 3591 dest_id = resource_provider->CreateResource( |
| 3592 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
| 3593 |
| 3594 EXPECT_CALL(*context, NextTextureId()) |
| 3595 .WillOnce(Return(kDestTextureId)) |
| 3596 .RetiresOnSaturation(); |
| 3597 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, kDestTextureId)) |
| 3598 .Times(2) |
| 3599 .RetiresOnSaturation(); |
| 3600 EXPECT_CALL(*context, texImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 0, GL_RGBA, |
| 3601 GL_UNSIGNED_BYTE, nullptr)) |
| 3602 .Times(1) |
| 3603 .RetiresOnSaturation(); |
| 3604 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, kSourceTextureId)) |
| 3605 .Times(1) |
| 3606 .RetiresOnSaturation(); |
| 3607 EXPECT_CALL(*context, bindTexImage2DCHROMIUM(GL_TEXTURE_2D, kImageId)) |
| 3608 .Times(1) |
| 3609 .RetiresOnSaturation(); |
| 3610 resource_provider->CopyResource(source_id, dest_id, gfx::Rect(size)); |
| 3611 Mock::VerifyAndClearExpectations(context); |
| 3612 |
| 3613 EXPECT_CALL(*context, destroyImageCHROMIUM(kImageId)) |
| 3614 .Times(1) |
| 3615 .RetiresOnSaturation(); |
| 3616 EXPECT_CALL(*context, RetireTextureId(kSourceTextureId)) |
| 3617 .Times(1) |
| 3618 .RetiresOnSaturation(); |
| 3619 EXPECT_CALL(*context, RetireTextureId(kDestTextureId)) |
| 3620 .Times(1) |
| 3621 .RetiresOnSaturation(); |
| 3622 resource_provider->DeleteResource(source_id); |
| 3623 resource_provider->DeleteResource(dest_id); |
| 3624 } |
| 3625 |
| 3545 TEST_P(ResourceProviderTest, CompressedTextureETC1Allocate) { | 3626 TEST_P(ResourceProviderTest, CompressedTextureETC1Allocate) { |
| 3546 if (GetParam() != ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) | 3627 if (GetParam() != ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) |
| 3547 return; | 3628 return; |
| 3548 | 3629 |
| 3549 scoped_ptr<AllocationTrackingContext3D> context_owned( | 3630 scoped_ptr<AllocationTrackingContext3D> context_owned( |
| 3550 new AllocationTrackingContext3D); | 3631 new AllocationTrackingContext3D); |
| 3551 AllocationTrackingContext3D* context = context_owned.get(); | 3632 AllocationTrackingContext3D* context = context_owned.get(); |
| 3552 context_owned->set_support_compressed_texture_etc1(true); | 3633 context_owned->set_support_compressed_texture_etc1(true); |
| 3553 | 3634 |
| 3554 FakeOutputSurfaceClient output_surface_client; | 3635 FakeOutputSurfaceClient output_surface_client; |
| 3555 scoped_ptr<OutputSurface> output_surface( | 3636 scoped_ptr<OutputSurface> output_surface( |
| 3556 FakeOutputSurface::Create3d(context_owned.Pass())); | 3637 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 3557 CHECK(output_surface->BindToClient(&output_surface_client)); | 3638 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3558 | 3639 |
| 3559 gfx::Size size(4, 4); | 3640 gfx::Size size(4, 4); |
| 3560 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3641 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3561 output_surface.get(), shared_bitmap_manager_.get(), | 3642 output_surface.get(), shared_bitmap_manager_.get(), |
| 3562 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1)); | 3643 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false)); |
| 3563 int texture_id = 123; | 3644 int texture_id = 123; |
| 3564 | 3645 |
| 3565 ResourceId id = resource_provider->CreateResource( | 3646 ResourceId id = resource_provider->CreateResource( |
| 3566 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, ETC1); | 3647 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, ETC1); |
| 3567 EXPECT_NE(0u, id); | 3648 EXPECT_NE(0u, id); |
| 3568 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); | 3649 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); |
| 3569 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); | 3650 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); |
| 3570 resource_provider->AllocateForTesting(id); | 3651 resource_provider->AllocateForTesting(id); |
| 3571 | 3652 |
| 3572 EXPECT_CALL(*context, RetireTextureId(texture_id)).Times(1); | 3653 EXPECT_CALL(*context, RetireTextureId(texture_id)).Times(1); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 3583 context_owned->set_support_compressed_texture_etc1(true); | 3664 context_owned->set_support_compressed_texture_etc1(true); |
| 3584 | 3665 |
| 3585 FakeOutputSurfaceClient output_surface_client; | 3666 FakeOutputSurfaceClient output_surface_client; |
| 3586 scoped_ptr<OutputSurface> output_surface( | 3667 scoped_ptr<OutputSurface> output_surface( |
| 3587 FakeOutputSurface::Create3d(context_owned.Pass())); | 3668 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 3588 CHECK(output_surface->BindToClient(&output_surface_client)); | 3669 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3589 | 3670 |
| 3590 gfx::Size size(4, 4); | 3671 gfx::Size size(4, 4); |
| 3591 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3672 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3592 output_surface.get(), shared_bitmap_manager_.get(), | 3673 output_surface.get(), shared_bitmap_manager_.get(), |
| 3593 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1)); | 3674 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false)); |
| 3594 int texture_id = 123; | 3675 int texture_id = 123; |
| 3595 uint8_t pixels[8]; | 3676 uint8_t pixels[8]; |
| 3596 | 3677 |
| 3597 ResourceId id = resource_provider->CreateResource( | 3678 ResourceId id = resource_provider->CreateResource( |
| 3598 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, ETC1); | 3679 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, ETC1); |
| 3599 EXPECT_NE(0u, id); | 3680 EXPECT_NE(0u, id); |
| 3600 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); | 3681 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); |
| 3601 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(3); | 3682 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(3); |
| 3602 EXPECT_CALL(*context, | 3683 EXPECT_CALL(*context, |
| 3603 compressedTexImage2D( | 3684 compressedTexImage2D( |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3639 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 3720 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
| 3640 new TestSharedBitmapManager()); | 3721 new TestSharedBitmapManager()); |
| 3641 | 3722 |
| 3642 gfx::Size size(1, 1); | 3723 gfx::Size size(1, 1); |
| 3643 ResourceFormat format = RGBA_8888; | 3724 ResourceFormat format = RGBA_8888; |
| 3644 | 3725 |
| 3645 { | 3726 { |
| 3646 size_t kTextureAllocationChunkSize = 1; | 3727 size_t kTextureAllocationChunkSize = 1; |
| 3647 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3728 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3648 output_surface.get(), shared_bitmap_manager.get(), NULL, NULL, 0, false, | 3729 output_surface.get(), shared_bitmap_manager.get(), NULL, NULL, 0, false, |
| 3649 kTextureAllocationChunkSize)); | 3730 kTextureAllocationChunkSize, false)); |
| 3650 | 3731 |
| 3651 ResourceId id = resource_provider->CreateResource( | 3732 ResourceId id = resource_provider->CreateResource( |
| 3652 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, | 3733 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, |
| 3653 format); | 3734 format); |
| 3654 resource_provider->AllocateForTesting(id); | 3735 resource_provider->AllocateForTesting(id); |
| 3655 Mock::VerifyAndClearExpectations(context); | 3736 Mock::VerifyAndClearExpectations(context); |
| 3656 | 3737 |
| 3657 DCHECK_EQ(2u, context->PeekTextureId()); | 3738 DCHECK_EQ(2u, context->PeekTextureId()); |
| 3658 resource_provider->DeleteResource(id); | 3739 resource_provider->DeleteResource(id); |
| 3659 } | 3740 } |
| 3660 | 3741 |
| 3661 { | 3742 { |
| 3662 size_t kTextureAllocationChunkSize = 8; | 3743 size_t kTextureAllocationChunkSize = 8; |
| 3663 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3744 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3664 output_surface.get(), shared_bitmap_manager.get(), NULL, NULL, 0, false, | 3745 output_surface.get(), shared_bitmap_manager.get(), NULL, NULL, 0, false, |
| 3665 kTextureAllocationChunkSize)); | 3746 kTextureAllocationChunkSize, false)); |
| 3666 | 3747 |
| 3667 ResourceId id = resource_provider->CreateResource( | 3748 ResourceId id = resource_provider->CreateResource( |
| 3668 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, | 3749 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, |
| 3669 format); | 3750 format); |
| 3670 resource_provider->AllocateForTesting(id); | 3751 resource_provider->AllocateForTesting(id); |
| 3671 Mock::VerifyAndClearExpectations(context); | 3752 Mock::VerifyAndClearExpectations(context); |
| 3672 | 3753 |
| 3673 DCHECK_EQ(10u, context->PeekTextureId()); | 3754 DCHECK_EQ(10u, context->PeekTextureId()); |
| 3674 resource_provider->DeleteResource(id); | 3755 resource_provider->DeleteResource(id); |
| 3675 } | 3756 } |
| 3676 } | 3757 } |
| 3677 | 3758 |
| 3678 } // namespace | 3759 } // namespace |
| 3679 } // namespace cc | 3760 } // namespace cc |
| OLD | NEW |