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 <deque> | 8 #include <deque> |
9 #include <set> | 9 #include <set> |
10 #include <string> | 10 #include <string> |
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
289 | 289 |
290 DISALLOW_COPY_AND_ASSIGN(ScopedReadLockSoftware); | 290 DISALLOW_COPY_AND_ASSIGN(ScopedReadLockSoftware); |
291 }; | 291 }; |
292 | 292 |
293 class CC_EXPORT ScopedWriteLockSoftware { | 293 class CC_EXPORT ScopedWriteLockSoftware { |
294 public: | 294 public: |
295 ScopedWriteLockSoftware(ResourceProvider* resource_provider, | 295 ScopedWriteLockSoftware(ResourceProvider* resource_provider, |
296 ResourceProvider::ResourceId resource_id); | 296 ResourceProvider::ResourceId resource_id); |
297 ~ScopedWriteLockSoftware(); | 297 ~ScopedWriteLockSoftware(); |
298 | 298 |
299 SkCanvas* sk_canvas() { return sk_canvas_.get(); } | 299 SkBitmap& sk_bitmap() { return sk_bitmap_; } |
300 bool valid() const { return !!sk_bitmap_.getPixels(); } | 300 bool valid() const { return !!sk_bitmap_.getPixels(); } |
301 | 301 |
302 private: | 302 private: |
303 ResourceProvider* resource_provider_; | 303 ResourceProvider* resource_provider_; |
304 ResourceProvider::Resource* resource_; | 304 ResourceProvider::Resource* resource_; |
305 SkBitmap sk_bitmap_; | 305 SkBitmap sk_bitmap_; |
306 scoped_ptr<SkCanvas> sk_canvas_; | |
307 base::ThreadChecker thread_checker_; | 306 base::ThreadChecker thread_checker_; |
308 | 307 |
309 DISALLOW_COPY_AND_ASSIGN(ScopedWriteLockSoftware); | 308 DISALLOW_COPY_AND_ASSIGN(ScopedWriteLockSoftware); |
310 }; | 309 }; |
311 | 310 |
312 class CC_EXPORT ScopedWriteLockGpuMemoryBuffer { | 311 class CC_EXPORT ScopedWriteLockGpuMemoryBuffer { |
313 public: | 312 public: |
314 ScopedWriteLockGpuMemoryBuffer(ResourceProvider* resource_provider, | 313 ScopedWriteLockGpuMemoryBuffer(ResourceProvider* resource_provider, |
315 ResourceProvider::ResourceId resource_id); | 314 ResourceProvider::ResourceId resource_id); |
316 ~ScopedWriteLockGpuMemoryBuffer(); | 315 ~ScopedWriteLockGpuMemoryBuffer(); |
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
592 scoped_ptr<IdAllocator> texture_id_allocator_; | 591 scoped_ptr<IdAllocator> texture_id_allocator_; |
593 scoped_ptr<IdAllocator> buffer_id_allocator_; | 592 scoped_ptr<IdAllocator> buffer_id_allocator_; |
594 | 593 |
595 bool use_sync_query_; | 594 bool use_sync_query_; |
596 // Fence used for CopyResource if CHROMIUM_sync_query is not supported. | 595 // Fence used for CopyResource if CHROMIUM_sync_query is not supported. |
597 scoped_refptr<SynchronousFence> synchronous_fence_; | 596 scoped_refptr<SynchronousFence> synchronous_fence_; |
598 | 597 |
599 DISALLOW_COPY_AND_ASSIGN(ResourceProvider); | 598 DISALLOW_COPY_AND_ASSIGN(ResourceProvider); |
600 }; | 599 }; |
601 | 600 |
602 | |
603 // TODO(epenner): Move these format conversions to resource_format.h | 601 // TODO(epenner): Move these format conversions to resource_format.h |
604 // once that builds on mac (npapi.h currently #includes OpenGL.h). | 602 // once that builds on mac (npapi.h currently #includes OpenGL.h). |
605 inline unsigned BitsPerPixel(ResourceFormat format) { | 603 inline unsigned BitsPerPixel(ResourceFormat format) { |
606 DCHECK_LE(format, RESOURCE_FORMAT_MAX); | 604 switch (format) { |
607 static const unsigned format_bits_per_pixel[RESOURCE_FORMAT_MAX + 1] = { | 605 case BGRA_8888: |
608 32, // RGBA_8888 | 606 case RGBA_8888: |
609 16, // RGBA_4444 | 607 return 32; |
610 32, // BGRA_8888 | 608 case RGBA_4444: |
611 8, // ALPHA_8 | 609 case RGB_565: |
612 8, // LUMINANCE_8 | 610 return 16; |
613 16, // RGB_565, | 611 case ALPHA_8: |
614 4 // ETC1 | 612 case LUMINANCE_8: |
615 }; | 613 return 8; |
616 return format_bits_per_pixel[format]; | 614 case ETC1: |
| 615 return 4; |
| 616 } |
| 617 NOTREACHED(); |
| 618 return 0; |
617 } | 619 } |
618 | 620 |
619 inline GLenum GLDataType(ResourceFormat format) { | 621 inline GLenum GLDataType(ResourceFormat format) { |
620 DCHECK_LE(format, RESOURCE_FORMAT_MAX); | 622 DCHECK_LE(format, RESOURCE_FORMAT_MAX); |
621 static const unsigned format_gl_data_type[RESOURCE_FORMAT_MAX + 1] = { | 623 static const unsigned format_gl_data_type[RESOURCE_FORMAT_MAX + 1] = { |
622 GL_UNSIGNED_BYTE, // RGBA_8888 | 624 GL_UNSIGNED_BYTE, // RGBA_8888 |
623 GL_UNSIGNED_SHORT_4_4_4_4, // RGBA_4444 | 625 GL_UNSIGNED_SHORT_4_4_4_4, // RGBA_4444 |
624 GL_UNSIGNED_BYTE, // BGRA_8888 | 626 GL_UNSIGNED_BYTE, // BGRA_8888 |
625 GL_UNSIGNED_BYTE, // ALPHA_8 | 627 GL_UNSIGNED_BYTE, // ALPHA_8 |
626 GL_UNSIGNED_BYTE, // LUMINANCE_8 | 628 GL_UNSIGNED_BYTE, // LUMINANCE_8 |
(...skipping 17 matching lines...) Expand all Loading... |
644 return format_gl_data_format[format]; | 646 return format_gl_data_format[format]; |
645 } | 647 } |
646 | 648 |
647 inline GLenum GLInternalFormat(ResourceFormat format) { | 649 inline GLenum GLInternalFormat(ResourceFormat format) { |
648 return GLDataFormat(format); | 650 return GLDataFormat(format); |
649 } | 651 } |
650 | 652 |
651 } // namespace cc | 653 } // namespace cc |
652 | 654 |
653 #endif // CC_RESOURCES_RESOURCE_PROVIDER_H_ | 655 #endif // CC_RESOURCES_RESOURCE_PROVIDER_H_ |
OLD | NEW |