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 #ifndef CC_RESOURCES_RESOURCE_PROVIDER_H_ | 5 #ifndef CC_RESOURCES_RESOURCE_PROVIDER_H_ |
6 #define CC_RESOURCES_RESOURCE_PROVIDER_H_ | 6 #define CC_RESOURCES_RESOURCE_PROVIDER_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
102 void Initialize(); | 102 void Initialize(); |
103 | 103 |
104 void DidLoseOutputSurface() { lost_output_surface_ = true; } | 104 void DidLoseOutputSurface() { lost_output_surface_ = true; } |
105 | 105 |
106 int max_texture_size() const { return max_texture_size_; } | 106 int max_texture_size() const { return max_texture_size_; } |
107 ResourceFormat best_texture_format() const { return best_texture_format_; } | 107 ResourceFormat best_texture_format() const { return best_texture_format_; } |
108 ResourceFormat best_render_buffer_format() const { | 108 ResourceFormat best_render_buffer_format() const { |
109 return best_render_buffer_format_; | 109 return best_render_buffer_format_; |
110 } | 110 } |
111 ResourceFormat YuvResourceFormat(int bits) const; | 111 ResourceFormat YuvResourceFormat(int bits) const; |
| 112 ResourceFormat Y16ResourceFormat() const; |
112 bool use_sync_query() const { return use_sync_query_; } | 113 bool use_sync_query() const { return use_sync_query_; } |
113 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager() { | 114 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager() { |
114 return gpu_memory_buffer_manager_; | 115 return gpu_memory_buffer_manager_; |
115 } | 116 } |
116 size_t num_resources() const { return resources_.size(); } | 117 size_t num_resources() const { return resources_.size(); } |
117 | 118 |
118 bool IsResourceFormatSupported(ResourceFormat format) const; | 119 bool IsResourceFormatSupported(ResourceFormat format) const; |
119 | 120 |
120 // Checks whether a resource is in use by a consumer. | 121 // Checks whether a resource is in use by a consumer. |
121 bool InUseByConsumer(ResourceId id); | 122 bool InUseByConsumer(ResourceId id); |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 // that they only use GL locks on GL resources, etc, and this is enforced | 219 // that they only use GL locks on GL resources, etc, and this is enforced |
219 // by assertions. | 220 // by assertions. |
220 class CC_EXPORT ScopedReadLockGL { | 221 class CC_EXPORT ScopedReadLockGL { |
221 public: | 222 public: |
222 ScopedReadLockGL(ResourceProvider* resource_provider, | 223 ScopedReadLockGL(ResourceProvider* resource_provider, |
223 ResourceId resource_id); | 224 ResourceId resource_id); |
224 ~ScopedReadLockGL(); | 225 ~ScopedReadLockGL(); |
225 | 226 |
226 unsigned texture_id() const { return texture_id_; } | 227 unsigned texture_id() const { return texture_id_; } |
227 GLenum target() const { return target_; } | 228 GLenum target() const { return target_; } |
| 229 ResourceFormat format() const { return format_; } |
228 const gfx::Size& size() const { return size_; } | 230 const gfx::Size& size() const { return size_; } |
229 const gfx::ColorSpace& color_space() const { return color_space_; } | 231 const gfx::ColorSpace& color_space() const { return color_space_; } |
230 | 232 |
231 private: | 233 private: |
232 ResourceProvider* resource_provider_; | 234 ResourceProvider* resource_provider_; |
233 ResourceId resource_id_; | 235 ResourceId resource_id_; |
234 unsigned texture_id_; | 236 unsigned texture_id_; |
235 GLenum target_; | 237 GLenum target_; |
| 238 ResourceFormat format_; |
236 gfx::Size size_; | 239 gfx::Size size_; |
237 gfx::ColorSpace color_space_; | 240 gfx::ColorSpace color_space_; |
238 | 241 |
239 DISALLOW_COPY_AND_ASSIGN(ScopedReadLockGL); | 242 DISALLOW_COPY_AND_ASSIGN(ScopedReadLockGL); |
240 }; | 243 }; |
241 | 244 |
242 class CC_EXPORT ScopedSamplerGL { | 245 class CC_EXPORT ScopedSamplerGL { |
243 public: | 246 public: |
244 ScopedSamplerGL(ResourceProvider* resource_provider, | 247 ScopedSamplerGL(ResourceProvider* resource_provider, |
245 ResourceId resource_id, | 248 ResourceId resource_id, |
246 GLenum filter); | 249 GLenum filter); |
247 ScopedSamplerGL(ResourceProvider* resource_provider, | 250 ScopedSamplerGL(ResourceProvider* resource_provider, |
248 ResourceId resource_id, | 251 ResourceId resource_id, |
249 GLenum unit, | 252 GLenum unit, |
250 GLenum filter); | 253 GLenum filter); |
251 ~ScopedSamplerGL(); | 254 ~ScopedSamplerGL(); |
252 | 255 |
253 unsigned texture_id() const { return resource_lock_.texture_id(); } | 256 unsigned texture_id() const { return resource_lock_.texture_id(); } |
254 GLenum target() const { return target_; } | 257 GLenum target() const { return target_; } |
| 258 ResourceFormat format() const { return resource_lock_.format(); } |
255 const gfx::ColorSpace& color_space() const { | 259 const gfx::ColorSpace& color_space() const { |
256 return resource_lock_.color_space(); | 260 return resource_lock_.color_space(); |
257 } | 261 } |
258 | 262 |
259 private: | 263 private: |
260 ScopedReadLockGL resource_lock_; | 264 ScopedReadLockGL resource_lock_; |
261 GLenum unit_; | 265 GLenum unit_; |
262 GLenum target_; | 266 GLenum target_; |
263 | 267 |
264 DISALLOW_COPY_AND_ASSIGN(ScopedSamplerGL); | 268 DISALLOW_COPY_AND_ASSIGN(ScopedSamplerGL); |
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
692 | 696 |
693 const bool delegated_sync_points_required_; | 697 const bool delegated_sync_points_required_; |
694 | 698 |
695 ResourceType default_resource_type_; | 699 ResourceType default_resource_type_; |
696 bool use_texture_storage_ext_; | 700 bool use_texture_storage_ext_; |
697 bool use_texture_format_bgra_; | 701 bool use_texture_format_bgra_; |
698 bool use_texture_usage_hint_; | 702 bool use_texture_usage_hint_; |
699 bool use_compressed_texture_etc1_; | 703 bool use_compressed_texture_etc1_; |
700 ResourceFormat yuv_resource_format_; | 704 ResourceFormat yuv_resource_format_; |
701 ResourceFormat yuv_highbit_resource_format_; | 705 ResourceFormat yuv_highbit_resource_format_; |
| 706 ResourceFormat y16_resource_format_; |
702 int max_texture_size_; | 707 int max_texture_size_; |
703 ResourceFormat best_texture_format_; | 708 ResourceFormat best_texture_format_; |
704 ResourceFormat best_render_buffer_format_; | 709 ResourceFormat best_render_buffer_format_; |
705 | 710 |
706 base::ThreadChecker thread_checker_; | 711 base::ThreadChecker thread_checker_; |
707 | 712 |
708 scoped_refptr<Fence> current_read_lock_fence_; | 713 scoped_refptr<Fence> current_read_lock_fence_; |
709 | 714 |
710 const size_t id_allocation_chunk_size_; | 715 const size_t id_allocation_chunk_size_; |
711 std::unique_ptr<IdAllocator> texture_id_allocator_; | 716 std::unique_ptr<IdAllocator> texture_id_allocator_; |
712 std::unique_ptr<IdAllocator> buffer_id_allocator_; | 717 std::unique_ptr<IdAllocator> buffer_id_allocator_; |
713 | 718 |
714 bool use_sync_query_; | 719 bool use_sync_query_; |
715 BufferToTextureTargetMap buffer_to_texture_target_map_; | 720 BufferToTextureTargetMap buffer_to_texture_target_map_; |
716 | 721 |
717 // A process-unique ID used for disambiguating memory dumps from different | 722 // A process-unique ID used for disambiguating memory dumps from different |
718 // resource providers. | 723 // resource providers. |
719 int tracing_id_; | 724 int tracing_id_; |
720 | 725 |
721 DISALLOW_COPY_AND_ASSIGN(ResourceProvider); | 726 DISALLOW_COPY_AND_ASSIGN(ResourceProvider); |
722 }; | 727 }; |
723 | 728 |
724 } // namespace cc | 729 } // namespace cc |
725 | 730 |
726 #endif // CC_RESOURCES_RESOURCE_PROVIDER_H_ | 731 #endif // CC_RESOURCES_RESOURCE_PROVIDER_H_ |
OLD | NEW |