| 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 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 #include "third_party/khronos/GLES2/gl2.h" | 27 #include "third_party/khronos/GLES2/gl2.h" |
| 28 #include "third_party/khronos/GLES2/gl2ext.h" | 28 #include "third_party/khronos/GLES2/gl2ext.h" |
| 29 #include "ui/gfx/rect.h" | 29 #include "ui/gfx/rect.h" |
| 30 | 30 |
| 31 using testing::Mock; | 31 using testing::Mock; |
| 32 using testing::NiceMock; | 32 using testing::NiceMock; |
| 33 using testing::Return; | 33 using testing::Return; |
| 34 using testing::SetArgPointee; | 34 using testing::SetArgPointee; |
| 35 using testing::StrictMock; | 35 using testing::StrictMock; |
| 36 using testing::_; | 36 using testing::_; |
| 37 using WebKit::WGC3Dbyte; | 37 using blink::WGC3Dbyte; |
| 38 using WebKit::WGC3Denum; | 38 using blink::WGC3Denum; |
| 39 using WebKit::WGC3Dint; | 39 using blink::WGC3Dint; |
| 40 using WebKit::WGC3Dsizei; | 40 using blink::WGC3Dsizei; |
| 41 using WebKit::WGC3Duint; | 41 using blink::WGC3Duint; |
| 42 using WebKit::WebGLId; | 42 using blink::WebGLId; |
| 43 | 43 |
| 44 namespace cc { | 44 namespace cc { |
| 45 namespace { | 45 namespace { |
| 46 | 46 |
| 47 static void EmptyReleaseCallback(unsigned sync_point, bool lost_resource) {} | 47 static void EmptyReleaseCallback(unsigned sync_point, bool lost_resource) {} |
| 48 | 48 |
| 49 static void SharedMemoryReleaseCallback(scoped_ptr<base::SharedMemory> memory, | 49 static void SharedMemoryReleaseCallback(scoped_ptr<base::SharedMemory> memory, |
| 50 unsigned sync_point, | 50 unsigned sync_point, |
| 51 bool lost_resource) {} | 51 bool lost_resource) {} |
| 52 | 52 |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 void(WGC3Denum target, WGC3Denum pname, WGC3Dint param)); | 88 void(WGC3Denum target, WGC3Denum pname, WGC3Dint param)); |
| 89 MOCK_METHOD1(waitSyncPoint, void(unsigned sync_point)); | 89 MOCK_METHOD1(waitSyncPoint, void(unsigned sync_point)); |
| 90 MOCK_METHOD0(insertSyncPoint, unsigned(void)); | 90 MOCK_METHOD0(insertSyncPoint, unsigned(void)); |
| 91 MOCK_METHOD2(produceTextureCHROMIUM, void(WGC3Denum target, | 91 MOCK_METHOD2(produceTextureCHROMIUM, void(WGC3Denum target, |
| 92 const WGC3Dbyte* mailbox)); | 92 const WGC3Dbyte* mailbox)); |
| 93 MOCK_METHOD2(consumeTextureCHROMIUM, void(WGC3Denum target, | 93 MOCK_METHOD2(consumeTextureCHROMIUM, void(WGC3Denum target, |
| 94 const WGC3Dbyte* mailbox)); | 94 const WGC3Dbyte* mailbox)); |
| 95 | 95 |
| 96 // Force all textures to be consecutive numbers starting at "1", | 96 // Force all textures to be consecutive numbers starting at "1", |
| 97 // so we easily can test for them. | 97 // so we easily can test for them. |
| 98 virtual WebKit::WebGLId NextTextureId() OVERRIDE { | 98 virtual blink::WebGLId NextTextureId() OVERRIDE { |
| 99 base::AutoLock lock(namespace_->lock); | 99 base::AutoLock lock(namespace_->lock); |
| 100 return namespace_->next_texture_id++; | 100 return namespace_->next_texture_id++; |
| 101 } | 101 } |
| 102 virtual void RetireTextureId(WebKit::WebGLId) OVERRIDE { | 102 virtual void RetireTextureId(blink::WebGLId) OVERRIDE { |
| 103 } | 103 } |
| 104 }; | 104 }; |
| 105 | 105 |
| 106 // Shared data between multiple ResourceProviderContext. This contains mailbox | 106 // Shared data between multiple ResourceProviderContext. This contains mailbox |
| 107 // contents as well as information about sync points. | 107 // contents as well as information about sync points. |
| 108 class ContextSharedData { | 108 class ContextSharedData { |
| 109 public: | 109 public: |
| 110 static scoped_ptr<ContextSharedData> Create() { | 110 static scoped_ptr<ContextSharedData> Create() { |
| 111 return make_scoped_ptr(new ContextSharedData()); | 111 return make_scoped_ptr(new ContextSharedData()); |
| 112 } | 112 } |
| (...skipping 2824 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2937 resource_provider->DeleteResource(id); | 2937 resource_provider->DeleteResource(id); |
| 2938 } | 2938 } |
| 2939 | 2939 |
| 2940 INSTANTIATE_TEST_CASE_P( | 2940 INSTANTIATE_TEST_CASE_P( |
| 2941 ResourceProviderTests, | 2941 ResourceProviderTests, |
| 2942 ResourceProviderTest, | 2942 ResourceProviderTest, |
| 2943 ::testing::Values(ResourceProvider::GLTexture, ResourceProvider::Bitmap)); | 2943 ::testing::Values(ResourceProvider::GLTexture, ResourceProvider::Bitmap)); |
| 2944 | 2944 |
| 2945 class TextureIdAllocationTrackingContext : public TestWebGraphicsContext3D { | 2945 class TextureIdAllocationTrackingContext : public TestWebGraphicsContext3D { |
| 2946 public: | 2946 public: |
| 2947 virtual WebKit::WebGLId NextTextureId() OVERRIDE { | 2947 virtual blink::WebGLId NextTextureId() OVERRIDE { |
| 2948 base::AutoLock lock(namespace_->lock); | 2948 base::AutoLock lock(namespace_->lock); |
| 2949 return namespace_->next_texture_id++; | 2949 return namespace_->next_texture_id++; |
| 2950 } | 2950 } |
| 2951 virtual void RetireTextureId(WebKit::WebGLId) OVERRIDE { | 2951 virtual void RetireTextureId(blink::WebGLId) OVERRIDE { |
| 2952 } | 2952 } |
| 2953 WebKit::WebGLId PeekTextureId() { | 2953 blink::WebGLId PeekTextureId() { |
| 2954 base::AutoLock lock(namespace_->lock); | 2954 base::AutoLock lock(namespace_->lock); |
| 2955 return namespace_->next_texture_id; | 2955 return namespace_->next_texture_id; |
| 2956 } | 2956 } |
| 2957 }; | 2957 }; |
| 2958 | 2958 |
| 2959 TEST(ResourceProviderTest, TextureAllocationChunkSize) { | 2959 TEST(ResourceProviderTest, TextureAllocationChunkSize) { |
| 2960 scoped_ptr<TextureIdAllocationTrackingContext> context_owned( | 2960 scoped_ptr<TextureIdAllocationTrackingContext> context_owned( |
| 2961 new TextureIdAllocationTrackingContext); | 2961 new TextureIdAllocationTrackingContext); |
| 2962 TextureIdAllocationTrackingContext* context = context_owned.get(); | 2962 TextureIdAllocationTrackingContext* context = context_owned.get(); |
| 2963 | 2963 |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3001 resource_provider->AllocateForTesting(id); | 3001 resource_provider->AllocateForTesting(id); |
| 3002 Mock::VerifyAndClearExpectations(context); | 3002 Mock::VerifyAndClearExpectations(context); |
| 3003 | 3003 |
| 3004 DCHECK_EQ(10u, context->PeekTextureId()); | 3004 DCHECK_EQ(10u, context->PeekTextureId()); |
| 3005 resource_provider->DeleteResource(id); | 3005 resource_provider->DeleteResource(id); |
| 3006 } | 3006 } |
| 3007 } | 3007 } |
| 3008 | 3008 |
| 3009 } // namespace | 3009 } // namespace |
| 3010 } // namespace cc | 3010 } // namespace cc |
| OLD | NEW |