Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(100)

Side by Side Diff: cc/resources/resource_provider.h

Issue 1251693003: cc: Fix the format of GpuMemoryBuffer for SurfaceTexture (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move the targets to ResourceProvider and fix the nits Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 }; 78 };
79 79
80 static scoped_ptr<ResourceProvider> Create( 80 static scoped_ptr<ResourceProvider> Create(
81 OutputSurface* output_surface, 81 OutputSurface* output_surface,
82 SharedBitmapManager* shared_bitmap_manager, 82 SharedBitmapManager* shared_bitmap_manager,
83 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, 83 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
84 BlockingTaskRunner* blocking_main_thread_task_runner, 84 BlockingTaskRunner* blocking_main_thread_task_runner,
85 int highp_threshold_min, 85 int highp_threshold_min,
86 bool use_rgba_4444_texture_format, 86 bool use_rgba_4444_texture_format,
87 size_t id_allocation_chunk_size, 87 size_t id_allocation_chunk_size,
88 bool use_persistent_map_for_gpu_memory_buffers); 88 bool use_persistent_map_for_gpu_memory_buffers,
89 std::vector<unsigned> use_image_texture_targets);
reveman 2015/07/28 08:58:26 nit: const std::vector<unsigned>&
89 virtual ~ResourceProvider(); 90 virtual ~ResourceProvider();
90 91
91 void DidLoseOutputSurface() { lost_output_surface_ = true; } 92 void DidLoseOutputSurface() { lost_output_surface_ = true; }
92 93
93 int max_texture_size() const { return max_texture_size_; } 94 int max_texture_size() const { return max_texture_size_; }
94 ResourceFormat memory_efficient_texture_format() const { 95 ResourceFormat memory_efficient_texture_format() const {
95 return use_rgba_4444_texture_format_ ? RGBA_4444 : best_texture_format_; 96 return use_rgba_4444_texture_format_ ? RGBA_4444 : best_texture_format_;
96 } 97 }
97 ResourceFormat best_texture_format() const { return best_texture_format_; } 98 ResourceFormat best_texture_format() const { return best_texture_format_; }
98 ResourceFormat best_render_buffer_format() const { 99 ResourceFormat best_render_buffer_format() const {
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 void WaitSyncPointIfNeeded(ResourceId id); 431 void WaitSyncPointIfNeeded(ResourceId id);
431 432
432 void WaitReadLockIfNeeded(ResourceId id); 433 void WaitReadLockIfNeeded(ResourceId id);
433 434
434 static GLint GetActiveTextureUnit(gpu::gles2::GLES2Interface* gl); 435 static GLint GetActiveTextureUnit(gpu::gles2::GLES2Interface* gl);
435 436
436 OutputSurface* output_surface() { return output_surface_; } 437 OutputSurface* output_surface() { return output_surface_; }
437 438
438 void ValidateResource(ResourceId id) const; 439 void ValidateResource(ResourceId id) const;
439 440
441 GLenum GetImageTextureTarget(ResourceFormat format);
442
440 protected: 443 protected:
441 ResourceProvider(OutputSurface* output_surface, 444 ResourceProvider(OutputSurface* output_surface,
442 SharedBitmapManager* shared_bitmap_manager, 445 SharedBitmapManager* shared_bitmap_manager,
443 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, 446 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
444 BlockingTaskRunner* blocking_main_thread_task_runner, 447 BlockingTaskRunner* blocking_main_thread_task_runner,
445 int highp_threshold_min, 448 int highp_threshold_min,
446 bool use_rgba_4444_texture_format, 449 bool use_rgba_4444_texture_format,
447 size_t id_allocation_chunk_size, 450 size_t id_allocation_chunk_size,
448 bool use_persistent_map_for_gpu_memory_buffers); 451 bool use_persistent_map_for_gpu_memory_buffers,
452 std::vector<unsigned> use_image_texture_targets);
reveman 2015/07/28 08:58:26 nit: const std::vector<unsigned>&
449 void Initialize(); 453 void Initialize();
450 454
451 private: 455 private:
452 struct Resource { 456 struct Resource {
453 enum Origin { INTERNAL, EXTERNAL, DELEGATED }; 457 enum Origin { INTERNAL, EXTERNAL, DELEGATED };
454 458
455 ~Resource(); 459 ~Resource();
456 Resource(unsigned texture_id, 460 Resource(unsigned texture_id,
457 const gfx::Size& size, 461 const gfx::Size& size,
458 Origin origin, 462 Origin origin,
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
594 598
595 scoped_refptr<Fence> current_read_lock_fence_; 599 scoped_refptr<Fence> current_read_lock_fence_;
596 bool use_rgba_4444_texture_format_; 600 bool use_rgba_4444_texture_format_;
597 601
598 const size_t id_allocation_chunk_size_; 602 const size_t id_allocation_chunk_size_;
599 scoped_ptr<IdAllocator> texture_id_allocator_; 603 scoped_ptr<IdAllocator> texture_id_allocator_;
600 scoped_ptr<IdAllocator> buffer_id_allocator_; 604 scoped_ptr<IdAllocator> buffer_id_allocator_;
601 605
602 bool use_sync_query_; 606 bool use_sync_query_;
603 bool use_persistent_map_for_gpu_memory_buffers_; 607 bool use_persistent_map_for_gpu_memory_buffers_;
608 std::vector<unsigned> use_image_texture_targets_;
604 // Fence used for CopyResource if CHROMIUM_sync_query is not supported. 609 // Fence used for CopyResource if CHROMIUM_sync_query is not supported.
605 scoped_refptr<SynchronousFence> synchronous_fence_; 610 scoped_refptr<SynchronousFence> synchronous_fence_;
606 611
607 DISALLOW_COPY_AND_ASSIGN(ResourceProvider); 612 DISALLOW_COPY_AND_ASSIGN(ResourceProvider);
608 }; 613 };
609 614
610 // TODO(epenner): Move these format conversions to resource_format.h 615 // TODO(epenner): Move these format conversions to resource_format.h
611 // once that builds on mac (npapi.h currently #includes OpenGL.h). 616 // once that builds on mac (npapi.h currently #includes OpenGL.h).
612 inline int BitsPerPixel(ResourceFormat format) { 617 inline int BitsPerPixel(ResourceFormat format) {
613 switch (format) { 618 switch (format) {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
658 return format_gl_data_format[format]; 663 return format_gl_data_format[format];
659 } 664 }
660 665
661 inline GLenum GLInternalFormat(ResourceFormat format) { 666 inline GLenum GLInternalFormat(ResourceFormat format) {
662 return GLDataFormat(format); 667 return GLDataFormat(format);
663 } 668 }
664 669
665 } // namespace cc 670 } // namespace cc
666 671
667 #endif // CC_RESOURCES_RESOURCE_PROVIDER_H_ 672 #endif // CC_RESOURCES_RESOURCE_PROVIDER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698