| Index: cc/resources/resource_provider_unittest.cc
|
| diff --git a/cc/resources/resource_provider_unittest.cc b/cc/resources/resource_provider_unittest.cc
|
| index 63b6e992c41ef155a334b1e1d6e26621f4ff4cc3..1e778b7546390c4b9eb35ff7d49b86ff33a8fa7f 100644
|
| --- a/cc/resources/resource_provider_unittest.cc
|
| +++ b/cc/resources/resource_provider_unittest.cc
|
| @@ -18,6 +18,7 @@
|
| #include "cc/resources/single_release_callback.h"
|
| #include "cc/test/fake_output_surface.h"
|
| #include "cc/test/fake_output_surface_client.h"
|
| +#include "cc/test/test_shared_bitmap_manager.h"
|
| #include "cc/test/test_texture.h"
|
| #include "cc/test/test_web_graphics_context_3d.h"
|
| #include "gpu/GLES2/gl2extchromium.h"
|
| @@ -331,55 +332,6 @@ class ResourceProviderContext : public TestWebGraphicsContext3D {
|
| PendingProduceTextureList pending_produce_textures_;
|
| };
|
|
|
| -void FreeSharedBitmap(SharedBitmap* shared_bitmap) {
|
| - delete shared_bitmap->memory();
|
| -}
|
| -
|
| -void IgnoreSharedBitmap(SharedBitmap* shared_bitmap) {}
|
| -
|
| -class TestSharedBitmapManager : public SharedBitmapManager {
|
| - public:
|
| - TestSharedBitmapManager() : count_(0) {}
|
| - virtual ~TestSharedBitmapManager() {}
|
| -
|
| - virtual scoped_ptr<SharedBitmap> AllocateSharedBitmap(const gfx::Size& size)
|
| - OVERRIDE {
|
| - scoped_ptr<base::SharedMemory> memory(new base::SharedMemory);
|
| - memory->CreateAndMapAnonymous(size.GetArea() * 4);
|
| - int8 name[GL_MAILBOX_SIZE_CHROMIUM] = {0};
|
| - name[0] = count_++;
|
| - SharedBitmapId id;
|
| - id.SetName(name);
|
| - bitmap_map_[id] = memory.get();
|
| - return scoped_ptr<SharedBitmap>(
|
| - new SharedBitmap(memory.release(), id, base::Bind(&FreeSharedBitmap)));
|
| - }
|
| -
|
| - virtual scoped_ptr<SharedBitmap> GetSharedBitmapFromId(
|
| - const gfx::Size&,
|
| - const SharedBitmapId& id) OVERRIDE {
|
| - if (bitmap_map_.find(id) == bitmap_map_.end())
|
| - return scoped_ptr<SharedBitmap>();
|
| - return scoped_ptr<SharedBitmap>(
|
| - new SharedBitmap(bitmap_map_[id], id, base::Bind(&IgnoreSharedBitmap)));
|
| - }
|
| -
|
| - virtual scoped_ptr<SharedBitmap> GetBitmapForSharedMemory(
|
| - base::SharedMemory* memory) OVERRIDE {
|
| - int8 name[GL_MAILBOX_SIZE_CHROMIUM] = {0};
|
| - name[0] = count_++;
|
| - SharedBitmapId id;
|
| - id.SetName(name);
|
| - bitmap_map_[id] = memory;
|
| - return scoped_ptr<SharedBitmap>(
|
| - new SharedBitmap(memory, id, base::Bind(&IgnoreSharedBitmap)));
|
| - }
|
| -
|
| - private:
|
| - int count_;
|
| - std::map<SharedBitmapId, base::SharedMemory*> bitmap_map_;
|
| -};
|
| -
|
| void GetResourcePixels(ResourceProvider* resource_provider,
|
| ResourceProviderContext* context,
|
| ResourceProvider::ResourceId id,
|
| @@ -1158,12 +1110,8 @@ TEST_P(ResourceProviderTest, TransferGLToSoftware) {
|
| child_context_owned.PassAs<TestWebGraphicsContext3D>()));
|
| CHECK(child_output_surface->BindToClient(&child_output_surface_client));
|
|
|
| - scoped_ptr<ResourceProvider> child_resource_provider(
|
| - ResourceProvider::Create(child_output_surface.get(),
|
| - NULL,
|
| - 0,
|
| - false,
|
| - 1));
|
| + scoped_ptr<ResourceProvider> child_resource_provider(ResourceProvider::Create(
|
| + child_output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
|
|
|
| gfx::Size size(1, 1);
|
| ResourceFormat format = RGBA_8888;
|
| @@ -1635,10 +1583,12 @@ class ResourceProviderTestTextureFilters : public ResourceProviderTest {
|
| scoped_ptr<OutputSurface> child_output_surface(FakeOutputSurface::Create3d(
|
| child_context_owned.PassAs<TestWebGraphicsContext3D>()));
|
| CHECK(child_output_surface->BindToClient(&child_output_surface_client));
|
| + scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
|
| + new TestSharedBitmapManager());
|
|
|
| scoped_ptr<ResourceProvider> child_resource_provider(
|
| ResourceProvider::Create(child_output_surface.get(),
|
| - NULL,
|
| + shared_bitmap_manager.get(),
|
| 0,
|
| false,
|
| 1));
|
| @@ -1654,7 +1604,7 @@ class ResourceProviderTestTextureFilters : public ResourceProviderTest {
|
|
|
| scoped_ptr<ResourceProvider> parent_resource_provider(
|
| ResourceProvider::Create(parent_output_surface.get(),
|
| - NULL,
|
| + shared_bitmap_manager.get(),
|
| 0,
|
| false,
|
| 1));
|
| @@ -2264,8 +2214,8 @@ TEST_P(ResourceProviderTest, ScopedSampler) {
|
| context_owned.PassAs<TestWebGraphicsContext3D>()));
|
| CHECK(output_surface->BindToClient(&output_surface_client));
|
|
|
| - scoped_ptr<ResourceProvider> resource_provider(
|
| - ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1));
|
| + scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
|
| + output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
|
|
|
| gfx::Size size(1, 1);
|
| ResourceFormat format = RGBA_8888;
|
| @@ -2345,8 +2295,8 @@ TEST_P(ResourceProviderTest, ManagedResource) {
|
| context_owned.PassAs<TestWebGraphicsContext3D>()));
|
| CHECK(output_surface->BindToClient(&output_surface_client));
|
|
|
| - scoped_ptr<ResourceProvider> resource_provider(
|
| - ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1));
|
| + scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
|
| + output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
|
|
|
| gfx::Size size(1, 1);
|
| ResourceFormat format = RGBA_8888;
|
| @@ -2394,8 +2344,8 @@ TEST_P(ResourceProviderTest, TextureWrapMode) {
|
| context_owned.PassAs<TestWebGraphicsContext3D>()));
|
| CHECK(output_surface->BindToClient(&output_surface_client));
|
|
|
| - scoped_ptr<ResourceProvider> resource_provider(
|
| - ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1));
|
| + scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
|
| + output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
|
|
|
| gfx::Size size(1, 1);
|
| ResourceFormat format = RGBA_8888;
|
| @@ -2448,8 +2398,8 @@ TEST_P(ResourceProviderTest, TextureMailbox_SharedMemory) {
|
| new SoftwareOutputDevice)));
|
| CHECK(output_surface->BindToClient(&output_surface_client));
|
|
|
| - scoped_ptr<ResourceProvider> resource_provider(
|
| - ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1));
|
| + scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
|
| + output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
|
|
|
| scoped_ptr<SingleReleaseCallback> callback = SingleReleaseCallback::Create(
|
| base::Bind(&EmptyReleaseCallback));
|
| @@ -2483,8 +2433,8 @@ TEST_P(ResourceProviderTest, TextureMailbox_GLTexture2D) {
|
| context_owned.PassAs<TestWebGraphicsContext3D>()));
|
| CHECK(output_surface->BindToClient(&output_surface_client));
|
|
|
| - scoped_ptr<ResourceProvider> resource_provider(
|
| - ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1));
|
| + scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
|
| + output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
|
|
|
| unsigned texture_id = 1;
|
| uint32 sync_point = 30;
|
| @@ -2547,8 +2497,8 @@ TEST_P(ResourceProviderTest, TextureMailbox_GLTextureExternalOES) {
|
| context_owned.PassAs<TestWebGraphicsContext3D>()));
|
| CHECK(output_surface->BindToClient(&output_surface_client));
|
|
|
| - scoped_ptr<ResourceProvider> resource_provider(
|
| - ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1));
|
| + scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
|
| + output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
|
|
|
| unsigned texture_id = 1;
|
| uint32 sync_point = 30;
|
| @@ -2685,8 +2635,8 @@ TEST_P(ResourceProviderTest, TextureAllocation) {
|
| context_owned.PassAs<TestWebGraphicsContext3D>()));
|
| CHECK(output_surface->BindToClient(&output_surface_client));
|
|
|
| - scoped_ptr<ResourceProvider> resource_provider(
|
| - ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1));
|
| + scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
|
| + output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
|
|
|
| gfx::Size size(2, 2);
|
| gfx::Vector2d offset(0, 0);
|
| @@ -2758,8 +2708,8 @@ TEST_P(ResourceProviderTest, TextureAllocationStorageUsageAny) {
|
| context_owned.PassAs<TestWebGraphicsContext3D>()));
|
| CHECK(output_surface->BindToClient(&output_surface_client));
|
|
|
| - scoped_ptr<ResourceProvider> resource_provider(
|
| - ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1));
|
| + scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
|
| + output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
|
|
|
| gfx::Size size(2, 2);
|
| ResourceFormat format = RGBA_8888;
|
| @@ -2795,8 +2745,8 @@ TEST_P(ResourceProviderTest, TextureAllocationStorageUsageFramebuffer) {
|
| context_owned.PassAs<TestWebGraphicsContext3D>()));
|
| CHECK(output_surface->BindToClient(&output_surface_client));
|
|
|
| - scoped_ptr<ResourceProvider> resource_provider(
|
| - ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1));
|
| + scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
|
| + output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
|
|
|
| gfx::Size size(2, 2);
|
| ResourceFormat format = RGBA_8888;
|
| @@ -2838,8 +2788,8 @@ TEST_P(ResourceProviderTest, PixelBuffer_GLTexture) {
|
| ResourceProvider::ResourceId id = 0;
|
| int texture_id = 123;
|
|
|
| - scoped_ptr<ResourceProvider> resource_provider(
|
| - ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1));
|
| + scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
|
| + output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
|
|
|
| id = resource_provider->CreateResource(
|
| size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
|
| @@ -2875,8 +2825,8 @@ TEST_P(ResourceProviderTest, PixelBuffer_Bitmap) {
|
| ResourceProvider::ResourceId id = 0;
|
| const uint32_t kBadBeef = 0xbadbeef;
|
|
|
| - scoped_ptr<ResourceProvider> resource_provider(
|
| - ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1));
|
| + scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
|
| + output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
|
|
|
| id = resource_provider->CreateResource(
|
| size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
|
| @@ -2924,8 +2874,8 @@ TEST_P(ResourceProviderTest, ForcingAsyncUploadToComplete) {
|
| ResourceProvider::ResourceId id = 0;
|
| int texture_id = 123;
|
|
|
| - scoped_ptr<ResourceProvider> resource_provider(
|
| - ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1));
|
| + scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
|
| + output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
|
|
|
| id = resource_provider->CreateResource(
|
| size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
|
| @@ -2965,8 +2915,8 @@ TEST_P(ResourceProviderTest, PixelBufferLostContext) {
|
| ResourceProvider::ResourceId id = 0;
|
| int texture_id = 123;
|
|
|
| - scoped_ptr<ResourceProvider> resource_provider(
|
| - ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1));
|
| + scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
|
| + output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
|
|
|
| EXPECT_CALL(*context, NextTextureId()).WillRepeatedly(Return(texture_id));
|
|
|
| @@ -3004,8 +2954,8 @@ TEST_P(ResourceProviderTest, Image_GLTexture) {
|
| const unsigned kTextureId = 123u;
|
| const unsigned kImageId = 234u;
|
|
|
| - scoped_ptr<ResourceProvider> resource_provider(
|
| - ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1));
|
| + scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
|
| + output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
|
|
|
| id = resource_provider->CreateResource(
|
| size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
|
| @@ -3096,8 +3046,8 @@ TEST_P(ResourceProviderTest, Image_Bitmap) {
|
| ResourceProvider::ResourceId id = 0;
|
| const uint32_t kBadBeef = 0xbadbeef;
|
|
|
| - scoped_ptr<ResourceProvider> resource_provider(
|
| - ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1));
|
| + scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
|
| + output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
|
|
|
| id = resource_provider->CreateResource(
|
| size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
|
| @@ -3145,8 +3095,10 @@ TEST(ResourceProviderTest, BasicInitializeGLSoftware) {
|
| FakeOutputSurface::CreateDeferredGL(
|
| scoped_ptr<SoftwareOutputDevice>(new SoftwareOutputDevice)));
|
| EXPECT_TRUE(output_surface->BindToClient(&client));
|
| - scoped_ptr<ResourceProvider> resource_provider(
|
| - ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1));
|
| + scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
|
| + new TestSharedBitmapManager());
|
| + scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
|
| + output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
|
|
|
| CheckCreateResource(ResourceProvider::Bitmap, resource_provider.get(), NULL);
|
|
|
| @@ -3263,6 +3215,8 @@ TEST(ResourceProviderTest, TextureAllocationChunkSize) {
|
| scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
|
| context_owned.PassAs<TestWebGraphicsContext3D>()));
|
| CHECK(output_surface->BindToClient(&output_surface_client));
|
| + scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
|
| + new TestSharedBitmapManager());
|
|
|
| gfx::Size size(1, 1);
|
| ResourceFormat format = RGBA_8888;
|
| @@ -3271,7 +3225,7 @@ TEST(ResourceProviderTest, TextureAllocationChunkSize) {
|
| size_t kTextureAllocationChunkSize = 1;
|
| scoped_ptr<ResourceProvider> resource_provider(
|
| ResourceProvider::Create(output_surface.get(),
|
| - NULL,
|
| + shared_bitmap_manager.get(),
|
| 0,
|
| false,
|
| kTextureAllocationChunkSize));
|
| @@ -3289,7 +3243,7 @@ TEST(ResourceProviderTest, TextureAllocationChunkSize) {
|
| size_t kTextureAllocationChunkSize = 8;
|
| scoped_ptr<ResourceProvider> resource_provider(
|
| ResourceProvider::Create(output_surface.get(),
|
| - NULL,
|
| + shared_bitmap_manager.get(),
|
| 0,
|
| false,
|
| kTextureAllocationChunkSize));
|
|
|