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 <limits> | 8 #include <limits> |
9 | 9 |
10 #include "base/containers/hash_tables.h" | 10 #include "base/containers/hash_tables.h" |
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
225 image_id(0), | 225 image_id(0), |
226 bound_image_id(0), | 226 bound_image_id(0), |
227 dirty_image(false), | 227 dirty_image(false), |
228 texture_pool(0), | 228 texture_pool(0), |
229 wrap_mode(0), | 229 wrap_mode(0), |
230 lost(false), | 230 lost(false), |
231 hint(TextureUsageAny), | 231 hint(TextureUsageAny), |
232 type(InvalidType), | 232 type(InvalidType), |
233 format(RGBA_8888), | 233 format(RGBA_8888), |
234 has_shared_bitmap_id(false), | 234 has_shared_bitmap_id(false), |
| 235 allow_overlay(false), |
235 shared_bitmap(NULL) {} | 236 shared_bitmap(NULL) {} |
236 | 237 |
237 ResourceProvider::Resource::~Resource() {} | 238 ResourceProvider::Resource::~Resource() {} |
238 | 239 |
239 ResourceProvider::Resource::Resource(GLuint texture_id, | 240 ResourceProvider::Resource::Resource(GLuint texture_id, |
240 const gfx::Size& size, | 241 const gfx::Size& size, |
241 Origin origin, | 242 Origin origin, |
242 GLenum target, | 243 GLenum target, |
243 GLenum filter, | 244 GLenum filter, |
244 GLenum texture_pool, | 245 GLenum texture_pool, |
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
603 Resource* resource = GetResource(id); | 604 Resource* resource = GetResource(id); |
604 return resource->lock_for_read_count > 0 || resource->exported_count > 0 || | 605 return resource->lock_for_read_count > 0 || resource->exported_count > 0 || |
605 resource->lost; | 606 resource->lost; |
606 } | 607 } |
607 | 608 |
608 bool ResourceProvider::IsLost(ResourceId id) { | 609 bool ResourceProvider::IsLost(ResourceId id) { |
609 Resource* resource = GetResource(id); | 610 Resource* resource = GetResource(id); |
610 return resource->lost; | 611 return resource->lost; |
611 } | 612 } |
612 | 613 |
| 614 bool ResourceProvider::AllowOverlay(ResourceId id) { |
| 615 Resource* resource = GetResource(id); |
| 616 return resource->allow_overlay; |
| 617 } |
| 618 |
613 ResourceProvider::ResourceId ResourceProvider::CreateResource( | 619 ResourceProvider::ResourceId ResourceProvider::CreateResource( |
614 const gfx::Size& size, | 620 const gfx::Size& size, |
615 GLint wrap_mode, | 621 GLint wrap_mode, |
616 TextureUsageHint hint, | 622 TextureUsageHint hint, |
617 ResourceFormat format) { | 623 ResourceFormat format) { |
618 DCHECK(!size.IsEmpty()); | 624 DCHECK(!size.IsEmpty()); |
619 switch (default_resource_type_) { | 625 switch (default_resource_type_) { |
620 case GLTexture: | 626 case GLTexture: |
621 return CreateGLTexture(size, | 627 return CreateGLTexture(size, |
622 GL_TEXTURE_2D, | 628 GL_TEXTURE_2D, |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
777 mailbox.shared_memory_size(), | 783 mailbox.shared_memory_size(), |
778 Resource::External, | 784 Resource::External, |
779 GL_LINEAR, | 785 GL_LINEAR, |
780 GL_CLAMP_TO_EDGE); | 786 GL_CLAMP_TO_EDGE); |
781 } | 787 } |
782 resource.allocated = true; | 788 resource.allocated = true; |
783 resource.mailbox = mailbox; | 789 resource.mailbox = mailbox; |
784 resource.release_callback = | 790 resource.release_callback = |
785 base::Bind(&SingleReleaseCallback::Run, | 791 base::Bind(&SingleReleaseCallback::Run, |
786 base::Owned(release_callback.release())); | 792 base::Owned(release_callback.release())); |
| 793 resource.allow_overlay = mailbox.allow_overlay(); |
787 return id; | 794 return id; |
788 } | 795 } |
789 | 796 |
790 void ResourceProvider::DeleteResource(ResourceId id) { | 797 void ResourceProvider::DeleteResource(ResourceId id) { |
791 DCHECK(thread_checker_.CalledOnValidThread()); | 798 DCHECK(thread_checker_.CalledOnValidThread()); |
792 ResourceMap::iterator it = resources_.find(id); | 799 ResourceMap::iterator it = resources_.find(id); |
793 CHECK(it != resources_.end()); | 800 CHECK(it != resources_.end()); |
794 Resource* resource = &it->second; | 801 Resource* resource = &it->second; |
795 DCHECK(!resource->lock_for_read_count); | 802 DCHECK(!resource->lock_for_read_count); |
796 DCHECK(!resource->marked_for_deletion); | 803 DCHECK(!resource->marked_for_deletion); |
(...skipping 1411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2208 ContextProvider* context_provider = output_surface_->context_provider(); | 2215 ContextProvider* context_provider = output_surface_->context_provider(); |
2209 return context_provider ? context_provider->ContextGL() : NULL; | 2216 return context_provider ? context_provider->ContextGL() : NULL; |
2210 } | 2217 } |
2211 | 2218 |
2212 class GrContext* ResourceProvider::GrContext() const { | 2219 class GrContext* ResourceProvider::GrContext() const { |
2213 ContextProvider* context_provider = output_surface_->context_provider(); | 2220 ContextProvider* context_provider = output_surface_->context_provider(); |
2214 return context_provider ? context_provider->GrContext() : NULL; | 2221 return context_provider ? context_provider->GrContext() : NULL; |
2215 } | 2222 } |
2216 | 2223 |
2217 } // namespace cc | 2224 } // namespace cc |
OLD | NEW |