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 #include <vector> | 10 #include <vector> |
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
415 } | 415 } |
416 CHECK(output_surface_->BindToClient(&output_surface_client_)); | 416 CHECK(output_surface_->BindToClient(&output_surface_client_)); |
417 CHECK(child_output_surface_->BindToClient(&child_output_surface_client_)); | 417 CHECK(child_output_surface_->BindToClient(&child_output_surface_client_)); |
418 | 418 |
419 shared_bitmap_manager_.reset(new TestSharedBitmapManager); | 419 shared_bitmap_manager_.reset(new TestSharedBitmapManager); |
420 gpu_memory_buffer_manager_.reset(new TestGpuMemoryBufferManager); | 420 gpu_memory_buffer_manager_.reset(new TestGpuMemoryBufferManager); |
421 | 421 |
422 resource_provider_ = ResourceProvider::Create( | 422 resource_provider_ = ResourceProvider::Create( |
423 output_surface_.get(), shared_bitmap_manager_.get(), | 423 output_surface_.get(), shared_bitmap_manager_.get(), |
424 gpu_memory_buffer_manager_.get(), main_thread_task_runner_.get(), 0, | 424 gpu_memory_buffer_manager_.get(), main_thread_task_runner_.get(), 0, |
425 false, 1, use_image_texture_targets_); | 425 false, 1, false, use_image_texture_targets_); |
426 child_resource_provider_ = ResourceProvider::Create( | 426 child_resource_provider_ = ResourceProvider::Create( |
427 child_output_surface_.get(), shared_bitmap_manager_.get(), | 427 child_output_surface_.get(), shared_bitmap_manager_.get(), |
428 gpu_memory_buffer_manager_.get(), main_thread_task_runner_.get(), 0, | 428 gpu_memory_buffer_manager_.get(), main_thread_task_runner_.get(), 0, |
429 false, 1, use_image_texture_targets_); | 429 false, 1, false, use_image_texture_targets_); |
430 } | 430 } |
431 | 431 |
432 ResourceProviderTest() : ResourceProviderTest(true) {} | 432 ResourceProviderTest() : ResourceProviderTest(true) {} |
433 | 433 |
434 static void CollectResources(ReturnedResourceArray* array, | 434 static void CollectResources(ReturnedResourceArray* array, |
435 const ReturnedResourceArray& returned, | 435 const ReturnedResourceArray& returned, |
436 BlockingTaskRunner* main_thread_task_runner) { | 436 BlockingTaskRunner* main_thread_task_runner) { |
437 array->insert(array->end(), returned.begin(), returned.end()); | 437 array->insert(array->end(), returned.begin(), returned.end()); |
438 } | 438 } |
439 | 439 |
(...skipping 931 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1371 scoped_ptr<ResourceProviderContext> child_context_owned( | 1371 scoped_ptr<ResourceProviderContext> child_context_owned( |
1372 ResourceProviderContext::Create(shared_data_.get())); | 1372 ResourceProviderContext::Create(shared_data_.get())); |
1373 | 1373 |
1374 FakeOutputSurfaceClient child_output_surface_client; | 1374 FakeOutputSurfaceClient child_output_surface_client; |
1375 scoped_ptr<OutputSurface> child_output_surface( | 1375 scoped_ptr<OutputSurface> child_output_surface( |
1376 FakeOutputSurface::Create3d(child_context_owned.Pass())); | 1376 FakeOutputSurface::Create3d(child_context_owned.Pass())); |
1377 CHECK(child_output_surface->BindToClient(&child_output_surface_client)); | 1377 CHECK(child_output_surface->BindToClient(&child_output_surface_client)); |
1378 | 1378 |
1379 scoped_ptr<ResourceProvider> child_resource_provider(ResourceProvider::Create( | 1379 scoped_ptr<ResourceProvider> child_resource_provider(ResourceProvider::Create( |
1380 child_output_surface.get(), shared_bitmap_manager_.get(), | 1380 child_output_surface.get(), shared_bitmap_manager_.get(), |
1381 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, | 1381 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false, |
1382 use_image_texture_targets_)); | 1382 use_image_texture_targets_)); |
1383 | 1383 |
1384 gfx::Size size(1, 1); | 1384 gfx::Size size(1, 1); |
1385 ResourceFormat format = RGBA_8888; | 1385 ResourceFormat format = RGBA_8888; |
1386 size_t pixel_size = TextureSizeBytes(size, format); | 1386 size_t pixel_size = TextureSizeBytes(size, format); |
1387 ASSERT_EQ(4U, pixel_size); | 1387 ASSERT_EQ(4U, pixel_size); |
1388 | 1388 |
1389 ResourceId id1 = child_resource_provider->CreateResource( | 1389 ResourceId id1 = child_resource_provider->CreateResource( |
1390 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 1390 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
1391 uint8_t data1[4] = { 1, 2, 3, 4 }; | 1391 uint8_t data1[4] = { 1, 2, 3, 4 }; |
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1856 FakeOutputSurfaceClient child_output_surface_client; | 1856 FakeOutputSurfaceClient child_output_surface_client; |
1857 scoped_ptr<OutputSurface> child_output_surface( | 1857 scoped_ptr<OutputSurface> child_output_surface( |
1858 FakeOutputSurface::Create3d(child_context_owned.Pass())); | 1858 FakeOutputSurface::Create3d(child_context_owned.Pass())); |
1859 CHECK(child_output_surface->BindToClient(&child_output_surface_client)); | 1859 CHECK(child_output_surface->BindToClient(&child_output_surface_client)); |
1860 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 1860 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
1861 new TestSharedBitmapManager()); | 1861 new TestSharedBitmapManager()); |
1862 | 1862 |
1863 scoped_ptr<ResourceProvider> child_resource_provider( | 1863 scoped_ptr<ResourceProvider> child_resource_provider( |
1864 ResourceProvider::Create(child_output_surface.get(), | 1864 ResourceProvider::Create(child_output_surface.get(), |
1865 shared_bitmap_manager.get(), NULL, NULL, 0, | 1865 shared_bitmap_manager.get(), NULL, NULL, 0, |
1866 false, 1, use_image_texture_targets_)); | 1866 false, 1, false, use_image_texture_targets_)); |
1867 | 1867 |
1868 scoped_ptr<TextureStateTrackingContext> parent_context_owned( | 1868 scoped_ptr<TextureStateTrackingContext> parent_context_owned( |
1869 new TextureStateTrackingContext); | 1869 new TextureStateTrackingContext); |
1870 TextureStateTrackingContext* parent_context = parent_context_owned.get(); | 1870 TextureStateTrackingContext* parent_context = parent_context_owned.get(); |
1871 | 1871 |
1872 FakeOutputSurfaceClient parent_output_surface_client; | 1872 FakeOutputSurfaceClient parent_output_surface_client; |
1873 scoped_ptr<OutputSurface> parent_output_surface( | 1873 scoped_ptr<OutputSurface> parent_output_surface( |
1874 FakeOutputSurface::Create3d(parent_context_owned.Pass())); | 1874 FakeOutputSurface::Create3d(parent_context_owned.Pass())); |
1875 CHECK(parent_output_surface->BindToClient(&parent_output_surface_client)); | 1875 CHECK(parent_output_surface->BindToClient(&parent_output_surface_client)); |
1876 | 1876 |
1877 scoped_ptr<ResourceProvider> parent_resource_provider( | 1877 scoped_ptr<ResourceProvider> parent_resource_provider( |
1878 ResourceProvider::Create(parent_output_surface.get(), | 1878 ResourceProvider::Create(parent_output_surface.get(), |
1879 shared_bitmap_manager.get(), NULL, NULL, 0, | 1879 shared_bitmap_manager.get(), NULL, NULL, 0, |
1880 false, 1, use_image_texture_targets_)); | 1880 false, 1, false, use_image_texture_targets_)); |
1881 | 1881 |
1882 gfx::Size size(1, 1); | 1882 gfx::Size size(1, 1); |
1883 ResourceFormat format = RGBA_8888; | 1883 ResourceFormat format = RGBA_8888; |
1884 int child_texture_id = 1; | 1884 int child_texture_id = 1; |
1885 int parent_texture_id = 2; | 1885 int parent_texture_id = 2; |
1886 | 1886 |
1887 size_t pixel_size = TextureSizeBytes(size, format); | 1887 size_t pixel_size = TextureSizeBytes(size, format); |
1888 ASSERT_EQ(4U, pixel_size); | 1888 ASSERT_EQ(4U, pixel_size); |
1889 | 1889 |
1890 ResourceId id = child_resource_provider->CreateResource( | 1890 ResourceId id = child_resource_provider->CreateResource( |
(...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2502 new TextureStateTrackingContext); | 2502 new TextureStateTrackingContext); |
2503 TextureStateTrackingContext* context = context_owned.get(); | 2503 TextureStateTrackingContext* context = context_owned.get(); |
2504 | 2504 |
2505 FakeOutputSurfaceClient output_surface_client; | 2505 FakeOutputSurfaceClient output_surface_client; |
2506 scoped_ptr<OutputSurface> output_surface( | 2506 scoped_ptr<OutputSurface> output_surface( |
2507 FakeOutputSurface::Create3d(context_owned.Pass())); | 2507 FakeOutputSurface::Create3d(context_owned.Pass())); |
2508 CHECK(output_surface->BindToClient(&output_surface_client)); | 2508 CHECK(output_surface->BindToClient(&output_surface_client)); |
2509 | 2509 |
2510 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 2510 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
2511 output_surface.get(), shared_bitmap_manager_.get(), | 2511 output_surface.get(), shared_bitmap_manager_.get(), |
2512 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, | 2512 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false, |
2513 use_image_texture_targets_)); | 2513 use_image_texture_targets_)); |
2514 | 2514 |
2515 gfx::Size size(1, 1); | 2515 gfx::Size size(1, 1); |
2516 ResourceFormat format = RGBA_8888; | 2516 ResourceFormat format = RGBA_8888; |
2517 int texture_id = 1; | 2517 int texture_id = 1; |
2518 | 2518 |
2519 ResourceId id = resource_provider->CreateResource( | 2519 ResourceId id = resource_provider->CreateResource( |
2520 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 2520 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
2521 | 2521 |
2522 // Check that the texture gets created with the right sampler settings. | 2522 // Check that the texture gets created with the right sampler settings. |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2585 new TextureStateTrackingContext); | 2585 new TextureStateTrackingContext); |
2586 TextureStateTrackingContext* context = context_owned.get(); | 2586 TextureStateTrackingContext* context = context_owned.get(); |
2587 | 2587 |
2588 FakeOutputSurfaceClient output_surface_client; | 2588 FakeOutputSurfaceClient output_surface_client; |
2589 scoped_ptr<OutputSurface> output_surface( | 2589 scoped_ptr<OutputSurface> output_surface( |
2590 FakeOutputSurface::Create3d(context_owned.Pass())); | 2590 FakeOutputSurface::Create3d(context_owned.Pass())); |
2591 CHECK(output_surface->BindToClient(&output_surface_client)); | 2591 CHECK(output_surface->BindToClient(&output_surface_client)); |
2592 | 2592 |
2593 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 2593 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
2594 output_surface.get(), shared_bitmap_manager_.get(), | 2594 output_surface.get(), shared_bitmap_manager_.get(), |
2595 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, | 2595 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false, |
2596 use_image_texture_targets_)); | 2596 use_image_texture_targets_)); |
2597 | 2597 |
2598 gfx::Size size(1, 1); | 2598 gfx::Size size(1, 1); |
2599 ResourceFormat format = RGBA_8888; | 2599 ResourceFormat format = RGBA_8888; |
2600 int texture_id = 1; | 2600 int texture_id = 1; |
2601 | 2601 |
2602 // Check that the texture gets created with the right sampler settings. | 2602 // Check that the texture gets created with the right sampler settings. |
2603 ResourceId id = resource_provider->CreateManagedResource( | 2603 ResourceId id = resource_provider->CreateManagedResource( |
2604 size, GL_TEXTURE_2D, GL_CLAMP_TO_EDGE, | 2604 size, GL_TEXTURE_2D, GL_CLAMP_TO_EDGE, |
2605 ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 2605 ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
(...skipping 27 matching lines...) Expand all Loading... |
2633 new TextureStateTrackingContext); | 2633 new TextureStateTrackingContext); |
2634 TextureStateTrackingContext* context = context_owned.get(); | 2634 TextureStateTrackingContext* context = context_owned.get(); |
2635 | 2635 |
2636 FakeOutputSurfaceClient output_surface_client; | 2636 FakeOutputSurfaceClient output_surface_client; |
2637 scoped_ptr<OutputSurface> output_surface( | 2637 scoped_ptr<OutputSurface> output_surface( |
2638 FakeOutputSurface::Create3d(context_owned.Pass())); | 2638 FakeOutputSurface::Create3d(context_owned.Pass())); |
2639 CHECK(output_surface->BindToClient(&output_surface_client)); | 2639 CHECK(output_surface->BindToClient(&output_surface_client)); |
2640 | 2640 |
2641 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 2641 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
2642 output_surface.get(), shared_bitmap_manager_.get(), | 2642 output_surface.get(), shared_bitmap_manager_.get(), |
2643 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, | 2643 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false, |
2644 use_image_texture_targets_)); | 2644 use_image_texture_targets_)); |
2645 | 2645 |
2646 gfx::Size size(1, 1); | 2646 gfx::Size size(1, 1); |
2647 ResourceFormat format = RGBA_8888; | 2647 ResourceFormat format = RGBA_8888; |
2648 GLenum texture_pool = GL_TEXTURE_POOL_UNMANAGED_CHROMIUM; | 2648 GLenum texture_pool = GL_TEXTURE_POOL_UNMANAGED_CHROMIUM; |
2649 | 2649 |
2650 for (int texture_id = 1; texture_id <= 2; ++texture_id) { | 2650 for (int texture_id = 1; texture_id <= 2; ++texture_id) { |
2651 GLint wrap_mode = texture_id == 1 ? GL_CLAMP_TO_EDGE : GL_REPEAT; | 2651 GLint wrap_mode = texture_id == 1 ? GL_CLAMP_TO_EDGE : GL_REPEAT; |
2652 // Check that the texture gets created with the right sampler settings. | 2652 // Check that the texture gets created with the right sampler settings. |
2653 ResourceId id = resource_provider->CreateGLTexture( | 2653 ResourceId id = resource_provider->CreateGLTexture( |
(...skipping 30 matching lines...) Expand all Loading... |
2684 context->set_support_texture_storage(true); | 2684 context->set_support_texture_storage(true); |
2685 context->set_support_texture_usage(true); | 2685 context->set_support_texture_usage(true); |
2686 | 2686 |
2687 FakeOutputSurfaceClient output_surface_client; | 2687 FakeOutputSurfaceClient output_surface_client; |
2688 scoped_ptr<OutputSurface> output_surface( | 2688 scoped_ptr<OutputSurface> output_surface( |
2689 FakeOutputSurface::Create3d(context_owned.Pass())); | 2689 FakeOutputSurface::Create3d(context_owned.Pass())); |
2690 CHECK(output_surface->BindToClient(&output_surface_client)); | 2690 CHECK(output_surface->BindToClient(&output_surface_client)); |
2691 | 2691 |
2692 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 2692 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
2693 output_surface.get(), shared_bitmap_manager_.get(), | 2693 output_surface.get(), shared_bitmap_manager_.get(), |
2694 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, | 2694 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false, |
2695 use_image_texture_targets_)); | 2695 use_image_texture_targets_)); |
2696 | 2696 |
2697 gfx::Size size(1, 1); | 2697 gfx::Size size(1, 1); |
2698 ResourceFormat format = RGBA_8888; | 2698 ResourceFormat format = RGBA_8888; |
2699 GLenum texture_pool = GL_TEXTURE_POOL_UNMANAGED_CHROMIUM; | 2699 GLenum texture_pool = GL_TEXTURE_POOL_UNMANAGED_CHROMIUM; |
2700 | 2700 |
2701 const ResourceProvider::TextureHint hints[4] = { | 2701 const ResourceProvider::TextureHint hints[4] = { |
2702 ResourceProvider::TEXTURE_HINT_DEFAULT, | 2702 ResourceProvider::TEXTURE_HINT_DEFAULT, |
2703 ResourceProvider::TEXTURE_HINT_IMMUTABLE, | 2703 ResourceProvider::TEXTURE_HINT_IMMUTABLE, |
2704 ResourceProvider::TEXTURE_HINT_FRAMEBUFFER, | 2704 ResourceProvider::TEXTURE_HINT_FRAMEBUFFER, |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2750 | 2750 |
2751 FakeOutputSurfaceClient output_surface_client; | 2751 FakeOutputSurfaceClient output_surface_client; |
2752 scoped_ptr<OutputSurface> output_surface( | 2752 scoped_ptr<OutputSurface> output_surface( |
2753 FakeOutputSurface::CreateSoftware(make_scoped_ptr( | 2753 FakeOutputSurface::CreateSoftware(make_scoped_ptr( |
2754 new SoftwareOutputDevice))); | 2754 new SoftwareOutputDevice))); |
2755 CHECK(output_surface->BindToClient(&output_surface_client)); | 2755 CHECK(output_surface->BindToClient(&output_surface_client)); |
2756 | 2756 |
2757 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 2757 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
2758 output_surface.get(), shared_bitmap_manager_.get(), | 2758 output_surface.get(), shared_bitmap_manager_.get(), |
2759 gpu_memory_buffer_manager_.get(), main_thread_task_runner_.get(), 0, | 2759 gpu_memory_buffer_manager_.get(), main_thread_task_runner_.get(), 0, |
2760 false, 1, use_image_texture_targets_)); | 2760 false, 1, false, use_image_texture_targets_)); |
2761 | 2761 |
2762 uint32 release_sync_point = 0; | 2762 uint32 release_sync_point = 0; |
2763 bool lost_resource = false; | 2763 bool lost_resource = false; |
2764 BlockingTaskRunner* main_thread_task_runner = NULL; | 2764 BlockingTaskRunner* main_thread_task_runner = NULL; |
2765 scoped_ptr<SingleReleaseCallbackImpl> callback = | 2765 scoped_ptr<SingleReleaseCallbackImpl> callback = |
2766 SingleReleaseCallbackImpl::Create(base::Bind(&ReleaseCallback, | 2766 SingleReleaseCallbackImpl::Create(base::Bind(&ReleaseCallback, |
2767 &release_sync_point, | 2767 &release_sync_point, |
2768 &lost_resource, | 2768 &lost_resource, |
2769 &main_thread_task_runner)); | 2769 &main_thread_task_runner)); |
2770 TextureMailbox mailbox(shared_bitmap.get(), size); | 2770 TextureMailbox mailbox(shared_bitmap.get(), size); |
(...skipping 28 matching lines...) Expand all Loading... |
2799 new TextureStateTrackingContext); | 2799 new TextureStateTrackingContext); |
2800 TextureStateTrackingContext* context = context_owned.get(); | 2800 TextureStateTrackingContext* context = context_owned.get(); |
2801 | 2801 |
2802 FakeOutputSurfaceClient output_surface_client; | 2802 FakeOutputSurfaceClient output_surface_client; |
2803 scoped_ptr<OutputSurface> output_surface( | 2803 scoped_ptr<OutputSurface> output_surface( |
2804 FakeOutputSurface::Create3d(context_owned.Pass())); | 2804 FakeOutputSurface::Create3d(context_owned.Pass())); |
2805 CHECK(output_surface->BindToClient(&output_surface_client)); | 2805 CHECK(output_surface->BindToClient(&output_surface_client)); |
2806 | 2806 |
2807 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 2807 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
2808 output_surface.get(), shared_bitmap_manager, gpu_memory_buffer_manager, | 2808 output_surface.get(), shared_bitmap_manager, gpu_memory_buffer_manager, |
2809 main_thread_task_runner, 0, false, 1, use_image_texture_targets_)); | 2809 main_thread_task_runner, 0, false, 1, false, |
| 2810 use_image_texture_targets_)); |
2810 | 2811 |
2811 unsigned texture_id = 1; | 2812 unsigned texture_id = 1; |
2812 uint32 sync_point = 30; | 2813 uint32 sync_point = 30; |
2813 unsigned target = GL_TEXTURE_2D; | 2814 unsigned target = GL_TEXTURE_2D; |
2814 | 2815 |
2815 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); | 2816 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); |
2816 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); | 2817 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); |
2817 EXPECT_CALL(*context, insertSyncPoint()).Times(0); | 2818 EXPECT_CALL(*context, insertSyncPoint()).Times(0); |
2818 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); | 2819 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); |
2819 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); | 2820 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2942 new TextureStateTrackingContext); | 2943 new TextureStateTrackingContext); |
2943 TextureStateTrackingContext* context = context_owned.get(); | 2944 TextureStateTrackingContext* context = context_owned.get(); |
2944 | 2945 |
2945 FakeOutputSurfaceClient output_surface_client; | 2946 FakeOutputSurfaceClient output_surface_client; |
2946 scoped_ptr<OutputSurface> output_surface( | 2947 scoped_ptr<OutputSurface> output_surface( |
2947 FakeOutputSurface::Create3d(context_owned.Pass())); | 2948 FakeOutputSurface::Create3d(context_owned.Pass())); |
2948 CHECK(output_surface->BindToClient(&output_surface_client)); | 2949 CHECK(output_surface->BindToClient(&output_surface_client)); |
2949 | 2950 |
2950 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 2951 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
2951 output_surface.get(), shared_bitmap_manager_.get(), | 2952 output_surface.get(), shared_bitmap_manager_.get(), |
2952 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, | 2953 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false, |
2953 use_image_texture_targets_)); | 2954 use_image_texture_targets_)); |
2954 | 2955 |
2955 uint32 sync_point = 30; | 2956 uint32 sync_point = 30; |
2956 unsigned target = GL_TEXTURE_EXTERNAL_OES; | 2957 unsigned target = GL_TEXTURE_EXTERNAL_OES; |
2957 | 2958 |
2958 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); | 2959 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); |
2959 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); | 2960 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); |
2960 EXPECT_CALL(*context, insertSyncPoint()).Times(0); | 2961 EXPECT_CALL(*context, insertSyncPoint()).Times(0); |
2961 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); | 2962 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); |
2962 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); | 2963 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3012 new TextureStateTrackingContext); | 3013 new TextureStateTrackingContext); |
3013 TextureStateTrackingContext* context = context_owned.get(); | 3014 TextureStateTrackingContext* context = context_owned.get(); |
3014 | 3015 |
3015 FakeOutputSurfaceClient output_surface_client; | 3016 FakeOutputSurfaceClient output_surface_client; |
3016 scoped_ptr<OutputSurface> output_surface( | 3017 scoped_ptr<OutputSurface> output_surface( |
3017 FakeOutputSurface::Create3d(context_owned.Pass())); | 3018 FakeOutputSurface::Create3d(context_owned.Pass())); |
3018 CHECK(output_surface->BindToClient(&output_surface_client)); | 3019 CHECK(output_surface->BindToClient(&output_surface_client)); |
3019 | 3020 |
3020 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3021 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
3021 output_surface.get(), shared_bitmap_manager_.get(), | 3022 output_surface.get(), shared_bitmap_manager_.get(), |
3022 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, | 3023 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false, |
3023 use_image_texture_targets_)); | 3024 use_image_texture_targets_)); |
3024 | 3025 |
3025 uint32 sync_point = 30; | 3026 uint32 sync_point = 30; |
3026 unsigned target = GL_TEXTURE_2D; | 3027 unsigned target = GL_TEXTURE_2D; |
3027 | 3028 |
3028 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); | 3029 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); |
3029 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); | 3030 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); |
3030 EXPECT_CALL(*context, insertSyncPoint()).Times(0); | 3031 EXPECT_CALL(*context, insertSyncPoint()).Times(0); |
3031 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); | 3032 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); |
3032 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); | 3033 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3066 new TextureStateTrackingContext); | 3067 new TextureStateTrackingContext); |
3067 TextureStateTrackingContext* context = context_owned.get(); | 3068 TextureStateTrackingContext* context = context_owned.get(); |
3068 | 3069 |
3069 FakeOutputSurfaceClient output_surface_client; | 3070 FakeOutputSurfaceClient output_surface_client; |
3070 scoped_ptr<OutputSurface> output_surface( | 3071 scoped_ptr<OutputSurface> output_surface( |
3071 FakeOutputSurface::Create3d(context_owned.Pass())); | 3072 FakeOutputSurface::Create3d(context_owned.Pass())); |
3072 CHECK(output_surface->BindToClient(&output_surface_client)); | 3073 CHECK(output_surface->BindToClient(&output_surface_client)); |
3073 | 3074 |
3074 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3075 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
3075 output_surface.get(), shared_bitmap_manager_.get(), | 3076 output_surface.get(), shared_bitmap_manager_.get(), |
3076 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, | 3077 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false, |
3077 use_image_texture_targets_)); | 3078 use_image_texture_targets_)); |
3078 | 3079 |
3079 uint32 sync_point = 0; | 3080 uint32 sync_point = 0; |
3080 unsigned target = GL_TEXTURE_2D; | 3081 unsigned target = GL_TEXTURE_2D; |
3081 | 3082 |
3082 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); | 3083 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); |
3083 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); | 3084 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); |
3084 EXPECT_CALL(*context, insertSyncPoint()).Times(0); | 3085 EXPECT_CALL(*context, insertSyncPoint()).Times(0); |
3085 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); | 3086 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); |
3086 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); | 3087 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3187 new StrictMock<AllocationTrackingContext3D>); | 3188 new StrictMock<AllocationTrackingContext3D>); |
3188 AllocationTrackingContext3D* context = context_owned.get(); | 3189 AllocationTrackingContext3D* context = context_owned.get(); |
3189 | 3190 |
3190 FakeOutputSurfaceClient output_surface_client; | 3191 FakeOutputSurfaceClient output_surface_client; |
3191 scoped_ptr<OutputSurface> output_surface( | 3192 scoped_ptr<OutputSurface> output_surface( |
3192 FakeOutputSurface::Create3d(context_owned.Pass())); | 3193 FakeOutputSurface::Create3d(context_owned.Pass())); |
3193 CHECK(output_surface->BindToClient(&output_surface_client)); | 3194 CHECK(output_surface->BindToClient(&output_surface_client)); |
3194 | 3195 |
3195 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3196 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
3196 output_surface.get(), shared_bitmap_manager_.get(), | 3197 output_surface.get(), shared_bitmap_manager_.get(), |
3197 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, | 3198 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false, |
3198 use_image_texture_targets_)); | 3199 use_image_texture_targets_)); |
3199 | 3200 |
3200 gfx::Size size(2, 2); | 3201 gfx::Size size(2, 2); |
3201 gfx::Vector2d offset(0, 0); | 3202 gfx::Vector2d offset(0, 0); |
3202 ResourceFormat format = RGBA_8888; | 3203 ResourceFormat format = RGBA_8888; |
3203 ResourceId id = 0; | 3204 ResourceId id = 0; |
3204 uint8_t pixels[16] = { 0 }; | 3205 uint8_t pixels[16] = { 0 }; |
3205 int texture_id = 123; | 3206 int texture_id = 123; |
3206 | 3207 |
3207 // Lazy allocation. Don't allocate when creating the resource. | 3208 // Lazy allocation. Don't allocate when creating the resource. |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3262 context->set_support_texture_storage(true); | 3263 context->set_support_texture_storage(true); |
3263 context->set_support_texture_usage(true); | 3264 context->set_support_texture_usage(true); |
3264 | 3265 |
3265 FakeOutputSurfaceClient output_surface_client; | 3266 FakeOutputSurfaceClient output_surface_client; |
3266 scoped_ptr<OutputSurface> output_surface( | 3267 scoped_ptr<OutputSurface> output_surface( |
3267 FakeOutputSurface::Create3d(context_owned.Pass())); | 3268 FakeOutputSurface::Create3d(context_owned.Pass())); |
3268 CHECK(output_surface->BindToClient(&output_surface_client)); | 3269 CHECK(output_surface->BindToClient(&output_surface_client)); |
3269 | 3270 |
3270 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3271 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
3271 output_surface.get(), shared_bitmap_manager_.get(), | 3272 output_surface.get(), shared_bitmap_manager_.get(), |
3272 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, | 3273 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false, |
3273 use_image_texture_targets_)); | 3274 use_image_texture_targets_)); |
3274 | 3275 |
3275 gfx::Size size(2, 2); | 3276 gfx::Size size(2, 2); |
3276 | 3277 |
3277 const ResourceFormat formats[2] = {RGBA_8888, BGRA_8888}; | 3278 const ResourceFormat formats[2] = {RGBA_8888, BGRA_8888}; |
3278 const ResourceProvider::TextureHint hints[4] = { | 3279 const ResourceProvider::TextureHint hints[4] = { |
3279 ResourceProvider::TEXTURE_HINT_DEFAULT, | 3280 ResourceProvider::TEXTURE_HINT_DEFAULT, |
3280 ResourceProvider::TEXTURE_HINT_IMMUTABLE, | 3281 ResourceProvider::TEXTURE_HINT_IMMUTABLE, |
3281 ResourceProvider::TEXTURE_HINT_FRAMEBUFFER, | 3282 ResourceProvider::TEXTURE_HINT_FRAMEBUFFER, |
3282 ResourceProvider::TEXTURE_HINT_IMMUTABLE_FRAMEBUFFER, | 3283 ResourceProvider::TEXTURE_HINT_IMMUTABLE_FRAMEBUFFER, |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3318 context->set_support_texture_storage(true); | 3319 context->set_support_texture_storage(true); |
3319 context->set_support_texture_usage(true); | 3320 context->set_support_texture_usage(true); |
3320 | 3321 |
3321 FakeOutputSurfaceClient output_surface_client; | 3322 FakeOutputSurfaceClient output_surface_client; |
3322 scoped_ptr<OutputSurface> output_surface( | 3323 scoped_ptr<OutputSurface> output_surface( |
3323 FakeOutputSurface::Create3d(context_owned.Pass())); | 3324 FakeOutputSurface::Create3d(context_owned.Pass())); |
3324 CHECK(output_surface->BindToClient(&output_surface_client)); | 3325 CHECK(output_surface->BindToClient(&output_surface_client)); |
3325 | 3326 |
3326 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3327 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
3327 output_surface.get(), shared_bitmap_manager_.get(), | 3328 output_surface.get(), shared_bitmap_manager_.get(), |
3328 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, | 3329 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false, |
3329 use_image_texture_targets_)); | 3330 use_image_texture_targets_)); |
3330 | 3331 |
3331 gfx::Size size(2, 2); | 3332 gfx::Size size(2, 2); |
3332 const ResourceFormat formats[2] = {RGBA_8888, BGRA_8888}; | 3333 const ResourceFormat formats[2] = {RGBA_8888, BGRA_8888}; |
3333 | 3334 |
3334 const ResourceProvider::TextureHint hints[4] = { | 3335 const ResourceProvider::TextureHint hints[4] = { |
3335 ResourceProvider::TEXTURE_HINT_DEFAULT, | 3336 ResourceProvider::TEXTURE_HINT_DEFAULT, |
3336 ResourceProvider::TEXTURE_HINT_IMMUTABLE, | 3337 ResourceProvider::TEXTURE_HINT_IMMUTABLE, |
3337 ResourceProvider::TEXTURE_HINT_FRAMEBUFFER, | 3338 ResourceProvider::TEXTURE_HINT_FRAMEBUFFER, |
3338 ResourceProvider::TEXTURE_HINT_IMMUTABLE_FRAMEBUFFER, | 3339 ResourceProvider::TEXTURE_HINT_IMMUTABLE_FRAMEBUFFER, |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3373 FakeOutputSurface::Create3d(context_owned.Pass())); | 3374 FakeOutputSurface::Create3d(context_owned.Pass())); |
3374 CHECK(output_surface->BindToClient(&output_surface_client)); | 3375 CHECK(output_surface->BindToClient(&output_surface_client)); |
3375 | 3376 |
3376 gfx::Size size(2, 2); | 3377 gfx::Size size(2, 2); |
3377 ResourceFormat format = RGBA_8888; | 3378 ResourceFormat format = RGBA_8888; |
3378 ResourceId id = 0; | 3379 ResourceId id = 0; |
3379 int texture_id = 123; | 3380 int texture_id = 123; |
3380 | 3381 |
3381 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3382 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
3382 output_surface.get(), shared_bitmap_manager_.get(), | 3383 output_surface.get(), shared_bitmap_manager_.get(), |
3383 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, | 3384 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false, |
3384 use_image_texture_targets_)); | 3385 use_image_texture_targets_)); |
3385 | 3386 |
3386 id = resource_provider->CreateResource( | 3387 id = resource_provider->CreateResource( |
3387 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 3388 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
3388 resource_provider->AcquirePixelBuffer(id); | 3389 resource_provider->AcquirePixelBuffer(id); |
3389 | 3390 |
3390 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); | 3391 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); |
3391 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); | 3392 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); |
3392 EXPECT_CALL(*context, asyncTexImage2DCHROMIUM(_, _, _, 2, 2, _, _, _, _)) | 3393 EXPECT_CALL(*context, asyncTexImage2DCHROMIUM(_, _, _, 2, 2, _, _, _, _)) |
3393 .Times(1); | 3394 .Times(1); |
(...skipping 22 matching lines...) Expand all Loading... |
3416 FakeOutputSurface::Create3d(context_owned.Pass())); | 3417 FakeOutputSurface::Create3d(context_owned.Pass())); |
3417 CHECK(output_surface->BindToClient(&output_surface_client)); | 3418 CHECK(output_surface->BindToClient(&output_surface_client)); |
3418 | 3419 |
3419 gfx::Size size(2, 2); | 3420 gfx::Size size(2, 2); |
3420 ResourceFormat format = RGBA_8888; | 3421 ResourceFormat format = RGBA_8888; |
3421 ResourceId id = 0; | 3422 ResourceId id = 0; |
3422 int texture_id = 123; | 3423 int texture_id = 123; |
3423 | 3424 |
3424 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3425 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
3425 output_surface.get(), shared_bitmap_manager_.get(), | 3426 output_surface.get(), shared_bitmap_manager_.get(), |
3426 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, | 3427 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false, |
3427 use_image_texture_targets_)); | 3428 use_image_texture_targets_)); |
3428 | 3429 |
3429 id = resource_provider->CreateResource( | 3430 id = resource_provider->CreateResource( |
3430 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 3431 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
3431 resource_provider->AcquirePixelBuffer(id); | 3432 resource_provider->AcquirePixelBuffer(id); |
3432 | 3433 |
3433 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); | 3434 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); |
3434 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); | 3435 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); |
3435 EXPECT_CALL(*context, asyncTexImage2DCHROMIUM(_, _, _, 2, 2, _, _, _, _)) | 3436 EXPECT_CALL(*context, asyncTexImage2DCHROMIUM(_, _, _, 2, 2, _, _, _, _)) |
3436 .Times(1); | 3437 .Times(1); |
(...skipping 22 matching lines...) Expand all Loading... |
3459 FakeOutputSurface::Create3d(context_owned.Pass())); | 3460 FakeOutputSurface::Create3d(context_owned.Pass())); |
3460 CHECK(output_surface->BindToClient(&output_surface_client)); | 3461 CHECK(output_surface->BindToClient(&output_surface_client)); |
3461 | 3462 |
3462 gfx::Size size(2, 2); | 3463 gfx::Size size(2, 2); |
3463 ResourceFormat format = RGBA_8888; | 3464 ResourceFormat format = RGBA_8888; |
3464 ResourceId id = 0; | 3465 ResourceId id = 0; |
3465 int texture_id = 123; | 3466 int texture_id = 123; |
3466 | 3467 |
3467 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3468 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
3468 output_surface.get(), shared_bitmap_manager_.get(), | 3469 output_surface.get(), shared_bitmap_manager_.get(), |
3469 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, | 3470 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false, |
3470 use_image_texture_targets_)); | 3471 use_image_texture_targets_)); |
3471 | 3472 |
3472 EXPECT_CALL(*context, NextTextureId()).WillRepeatedly(Return(texture_id)); | 3473 EXPECT_CALL(*context, NextTextureId()).WillRepeatedly(Return(texture_id)); |
3473 | 3474 |
3474 id = resource_provider->CreateResource( | 3475 id = resource_provider->CreateResource( |
3475 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 3476 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
3476 context->loseContextCHROMIUM(GL_GUILTY_CONTEXT_RESET_ARB, | 3477 context->loseContextCHROMIUM(GL_GUILTY_CONTEXT_RESET_ARB, |
3477 GL_INNOCENT_CONTEXT_RESET_ARB); | 3478 GL_INNOCENT_CONTEXT_RESET_ARB); |
3478 | 3479 |
3479 resource_provider->AcquirePixelBuffer(id); | 3480 resource_provider->AcquirePixelBuffer(id); |
(...skipping 20 matching lines...) Expand all Loading... |
3500 const int kWidth = 2; | 3501 const int kWidth = 2; |
3501 const int kHeight = 2; | 3502 const int kHeight = 2; |
3502 gfx::Size size(kWidth, kHeight); | 3503 gfx::Size size(kWidth, kHeight); |
3503 ResourceFormat format = RGBA_8888; | 3504 ResourceFormat format = RGBA_8888; |
3504 ResourceId id = 0; | 3505 ResourceId id = 0; |
3505 const unsigned kTextureId = 123u; | 3506 const unsigned kTextureId = 123u; |
3506 const unsigned kImageId = 234u; | 3507 const unsigned kImageId = 234u; |
3507 | 3508 |
3508 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3509 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
3509 output_surface.get(), shared_bitmap_manager_.get(), | 3510 output_surface.get(), shared_bitmap_manager_.get(), |
3510 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, | 3511 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false, |
3511 use_image_texture_targets_)); | 3512 use_image_texture_targets_)); |
3512 | 3513 |
3513 id = resource_provider->CreateResource( | 3514 id = resource_provider->CreateResource( |
3514 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 3515 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
3515 | 3516 |
3516 EXPECT_CALL(*context, NextTextureId()) | 3517 EXPECT_CALL(*context, NextTextureId()) |
3517 .WillOnce(Return(kTextureId)) | 3518 .WillOnce(Return(kTextureId)) |
3518 .RetiresOnSaturation(); | 3519 .RetiresOnSaturation(); |
3519 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, kTextureId)) | 3520 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, kTextureId)) |
3520 .Times(1) | 3521 .Times(1) |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3561 ResourceProvider::ScopedSamplerGL lock_gl( | 3562 ResourceProvider::ScopedSamplerGL lock_gl( |
3562 resource_provider.get(), id, GL_TEXTURE_2D, GL_LINEAR); | 3563 resource_provider.get(), id, GL_TEXTURE_2D, GL_LINEAR); |
3563 EXPECT_EQ(kTextureId, lock_gl.texture_id()); | 3564 EXPECT_EQ(kTextureId, lock_gl.texture_id()); |
3564 } | 3565 } |
3565 | 3566 |
3566 EXPECT_CALL(*context, destroyImageCHROMIUM(kImageId)) | 3567 EXPECT_CALL(*context, destroyImageCHROMIUM(kImageId)) |
3567 .Times(1) | 3568 .Times(1) |
3568 .RetiresOnSaturation(); | 3569 .RetiresOnSaturation(); |
3569 } | 3570 } |
3570 | 3571 |
| 3572 TEST_P(ResourceProviderTest, CopyResource_GLTexture) { |
| 3573 if (GetParam() != ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) |
| 3574 return; |
| 3575 scoped_ptr<AllocationTrackingContext3D> context_owned( |
| 3576 new StrictMock<AllocationTrackingContext3D>); |
| 3577 AllocationTrackingContext3D* context = context_owned.get(); |
| 3578 context_owned->set_support_sync_query(true); |
| 3579 |
| 3580 FakeOutputSurfaceClient output_surface_client; |
| 3581 scoped_ptr<OutputSurface> output_surface( |
| 3582 FakeOutputSurface::Create3d(context_owned.Pass())); |
| 3583 ASSERT_TRUE(output_surface->BindToClient(&output_surface_client)); |
| 3584 |
| 3585 const int kWidth = 2; |
| 3586 const int kHeight = 2; |
| 3587 gfx::Size size(kWidth, kHeight); |
| 3588 ResourceFormat format = RGBA_8888; |
| 3589 ResourceId source_id = 0; |
| 3590 ResourceId dest_id = 0; |
| 3591 const unsigned kSourceTextureId = 123u; |
| 3592 const unsigned kDestTextureId = 321u; |
| 3593 const unsigned kImageId = 234u; |
| 3594 |
| 3595 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
| 3596 output_surface.get(), shared_bitmap_manager_.get(), |
| 3597 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false, |
| 3598 std::vector<unsigned>(static_cast<size_t>(gfx::BufferFormat::LAST) + 1, |
| 3599 GL_TEXTURE_2D))); |
| 3600 |
| 3601 source_id = resource_provider->CreateResource( |
| 3602 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
| 3603 |
| 3604 EXPECT_CALL(*context, NextTextureId()) |
| 3605 .WillOnce(Return(kSourceTextureId)) |
| 3606 .RetiresOnSaturation(); |
| 3607 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, kSourceTextureId)) |
| 3608 .Times(1) |
| 3609 .RetiresOnSaturation(); |
| 3610 EXPECT_CALL(*context, createImageCHROMIUM(_, kWidth, kHeight, GL_RGBA)) |
| 3611 .WillOnce(Return(kImageId)) |
| 3612 .RetiresOnSaturation(); |
| 3613 { |
| 3614 ResourceProvider::ScopedWriteLockGpuMemoryBuffer lock( |
| 3615 resource_provider.get(), source_id); |
| 3616 EXPECT_TRUE(lock.GetGpuMemoryBuffer()); |
| 3617 } |
| 3618 Mock::VerifyAndClearExpectations(context); |
| 3619 |
| 3620 dest_id = resource_provider->CreateResource( |
| 3621 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
| 3622 |
| 3623 EXPECT_CALL(*context, NextTextureId()) |
| 3624 .WillOnce(Return(kDestTextureId)) |
| 3625 .RetiresOnSaturation(); |
| 3626 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, kDestTextureId)) |
| 3627 .Times(2) |
| 3628 .RetiresOnSaturation(); |
| 3629 EXPECT_CALL(*context, texImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 0, GL_RGBA, |
| 3630 GL_UNSIGNED_BYTE, nullptr)) |
| 3631 .Times(1) |
| 3632 .RetiresOnSaturation(); |
| 3633 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, kSourceTextureId)) |
| 3634 .Times(1) |
| 3635 .RetiresOnSaturation(); |
| 3636 EXPECT_CALL(*context, bindTexImage2DCHROMIUM(GL_TEXTURE_2D, kImageId)) |
| 3637 .Times(1) |
| 3638 .RetiresOnSaturation(); |
| 3639 resource_provider->CopyResource(source_id, dest_id, gfx::Rect(size)); |
| 3640 Mock::VerifyAndClearExpectations(context); |
| 3641 |
| 3642 EXPECT_CALL(*context, destroyImageCHROMIUM(kImageId)) |
| 3643 .Times(1) |
| 3644 .RetiresOnSaturation(); |
| 3645 EXPECT_CALL(*context, RetireTextureId(kSourceTextureId)) |
| 3646 .Times(1) |
| 3647 .RetiresOnSaturation(); |
| 3648 EXPECT_CALL(*context, RetireTextureId(kDestTextureId)) |
| 3649 .Times(1) |
| 3650 .RetiresOnSaturation(); |
| 3651 resource_provider->DeleteResource(source_id); |
| 3652 resource_provider->DeleteResource(dest_id); |
| 3653 } |
| 3654 |
3571 TEST_P(ResourceProviderTest, CompressedTextureETC1Allocate) { | 3655 TEST_P(ResourceProviderTest, CompressedTextureETC1Allocate) { |
3572 if (GetParam() != ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) | 3656 if (GetParam() != ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) |
3573 return; | 3657 return; |
3574 | 3658 |
3575 scoped_ptr<AllocationTrackingContext3D> context_owned( | 3659 scoped_ptr<AllocationTrackingContext3D> context_owned( |
3576 new AllocationTrackingContext3D); | 3660 new AllocationTrackingContext3D); |
3577 AllocationTrackingContext3D* context = context_owned.get(); | 3661 AllocationTrackingContext3D* context = context_owned.get(); |
3578 context_owned->set_support_compressed_texture_etc1(true); | 3662 context_owned->set_support_compressed_texture_etc1(true); |
3579 | 3663 |
3580 FakeOutputSurfaceClient output_surface_client; | 3664 FakeOutputSurfaceClient output_surface_client; |
3581 scoped_ptr<OutputSurface> output_surface( | 3665 scoped_ptr<OutputSurface> output_surface( |
3582 FakeOutputSurface::Create3d(context_owned.Pass())); | 3666 FakeOutputSurface::Create3d(context_owned.Pass())); |
3583 CHECK(output_surface->BindToClient(&output_surface_client)); | 3667 CHECK(output_surface->BindToClient(&output_surface_client)); |
3584 | 3668 |
3585 gfx::Size size(4, 4); | 3669 gfx::Size size(4, 4); |
3586 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3670 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
3587 output_surface.get(), shared_bitmap_manager_.get(), | 3671 output_surface.get(), shared_bitmap_manager_.get(), |
3588 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, | 3672 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false, |
3589 use_image_texture_targets_)); | 3673 use_image_texture_targets_)); |
3590 int texture_id = 123; | 3674 int texture_id = 123; |
3591 | 3675 |
3592 ResourceId id = resource_provider->CreateResource( | 3676 ResourceId id = resource_provider->CreateResource( |
3593 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, ETC1); | 3677 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, ETC1); |
3594 EXPECT_NE(0u, id); | 3678 EXPECT_NE(0u, id); |
3595 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); | 3679 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); |
3596 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); | 3680 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); |
3597 resource_provider->AllocateForTesting(id); | 3681 resource_provider->AllocateForTesting(id); |
3598 | 3682 |
(...skipping 11 matching lines...) Expand all Loading... |
3610 context_owned->set_support_compressed_texture_etc1(true); | 3694 context_owned->set_support_compressed_texture_etc1(true); |
3611 | 3695 |
3612 FakeOutputSurfaceClient output_surface_client; | 3696 FakeOutputSurfaceClient output_surface_client; |
3613 scoped_ptr<OutputSurface> output_surface( | 3697 scoped_ptr<OutputSurface> output_surface( |
3614 FakeOutputSurface::Create3d(context_owned.Pass())); | 3698 FakeOutputSurface::Create3d(context_owned.Pass())); |
3615 CHECK(output_surface->BindToClient(&output_surface_client)); | 3699 CHECK(output_surface->BindToClient(&output_surface_client)); |
3616 | 3700 |
3617 gfx::Size size(4, 4); | 3701 gfx::Size size(4, 4); |
3618 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3702 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
3619 output_surface.get(), shared_bitmap_manager_.get(), | 3703 output_surface.get(), shared_bitmap_manager_.get(), |
3620 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, | 3704 gpu_memory_buffer_manager_.get(), NULL, 0, false, 1, false, |
3621 use_image_texture_targets_)); | 3705 use_image_texture_targets_)); |
3622 int texture_id = 123; | 3706 int texture_id = 123; |
3623 uint8_t pixels[8]; | 3707 uint8_t pixels[8]; |
3624 | 3708 |
3625 ResourceId id = resource_provider->CreateResource( | 3709 ResourceId id = resource_provider->CreateResource( |
3626 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, ETC1); | 3710 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, ETC1); |
3627 EXPECT_NE(0u, id); | 3711 EXPECT_NE(0u, id); |
3628 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); | 3712 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); |
3629 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(3); | 3713 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(3); |
3630 EXPECT_CALL(*context, | 3714 EXPECT_CALL(*context, |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3667 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 3751 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
3668 new TestSharedBitmapManager()); | 3752 new TestSharedBitmapManager()); |
3669 | 3753 |
3670 gfx::Size size(1, 1); | 3754 gfx::Size size(1, 1); |
3671 ResourceFormat format = RGBA_8888; | 3755 ResourceFormat format = RGBA_8888; |
3672 | 3756 |
3673 { | 3757 { |
3674 size_t kTextureAllocationChunkSize = 1; | 3758 size_t kTextureAllocationChunkSize = 1; |
3675 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3759 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
3676 output_surface.get(), shared_bitmap_manager.get(), NULL, NULL, 0, false, | 3760 output_surface.get(), shared_bitmap_manager.get(), NULL, NULL, 0, false, |
3677 kTextureAllocationChunkSize, | 3761 kTextureAllocationChunkSize, false, |
3678 ResourceProviderTest::use_image_texture_targets())); | 3762 ResourceProviderTest::use_image_texture_targets())); |
3679 | 3763 |
3680 ResourceId id = resource_provider->CreateResource( | 3764 ResourceId id = resource_provider->CreateResource( |
3681 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, | 3765 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, |
3682 format); | 3766 format); |
3683 resource_provider->AllocateForTesting(id); | 3767 resource_provider->AllocateForTesting(id); |
3684 Mock::VerifyAndClearExpectations(context); | 3768 Mock::VerifyAndClearExpectations(context); |
3685 | 3769 |
3686 DCHECK_EQ(2u, context->PeekTextureId()); | 3770 DCHECK_EQ(2u, context->PeekTextureId()); |
3687 resource_provider->DeleteResource(id); | 3771 resource_provider->DeleteResource(id); |
3688 } | 3772 } |
3689 | 3773 |
3690 { | 3774 { |
3691 size_t kTextureAllocationChunkSize = 8; | 3775 size_t kTextureAllocationChunkSize = 8; |
3692 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3776 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( |
3693 output_surface.get(), shared_bitmap_manager.get(), NULL, NULL, 0, false, | 3777 output_surface.get(), shared_bitmap_manager.get(), NULL, NULL, 0, false, |
3694 kTextureAllocationChunkSize, | 3778 kTextureAllocationChunkSize, false, |
3695 ResourceProviderTest::use_image_texture_targets())); | 3779 ResourceProviderTest::use_image_texture_targets())); |
3696 | 3780 |
3697 ResourceId id = resource_provider->CreateResource( | 3781 ResourceId id = resource_provider->CreateResource( |
3698 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, | 3782 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, |
3699 format); | 3783 format); |
3700 resource_provider->AllocateForTesting(id); | 3784 resource_provider->AllocateForTesting(id); |
3701 Mock::VerifyAndClearExpectations(context); | 3785 Mock::VerifyAndClearExpectations(context); |
3702 | 3786 |
3703 DCHECK_EQ(10u, context->PeekTextureId()); | 3787 DCHECK_EQ(10u, context->PeekTextureId()); |
3704 resource_provider->DeleteResource(id); | 3788 resource_provider->DeleteResource(id); |
3705 } | 3789 } |
3706 } | 3790 } |
3707 | 3791 |
3708 } // namespace | 3792 } // namespace |
3709 } // namespace cc | 3793 } // namespace cc |
OLD | NEW |