Index: cc/resources/resource_provider.cc |
diff --git a/cc/resources/resource_provider.cc b/cc/resources/resource_provider.cc |
index 4c7c9dae8aedbca3ac221362f45a60ad9f90daa3..71c0ab168a8f84cd6538d8f4ea304cdd1c566433 100644 |
--- a/cc/resources/resource_provider.cc |
+++ b/cc/resources/resource_provider.cc |
@@ -393,12 +393,13 @@ scoped_ptr<ResourceProvider> ResourceProvider::Create( |
int highp_threshold_min, |
bool use_rgba_4444_texture_format, |
size_t id_allocation_chunk_size, |
- bool use_persistent_map_for_gpu_memory_buffers) { |
+ bool use_persistent_map_for_gpu_memory_buffers, |
+ const std::vector<unsigned>& use_image_texture_targets) { |
scoped_ptr<ResourceProvider> resource_provider(new ResourceProvider( |
output_surface, shared_bitmap_manager, gpu_memory_buffer_manager, |
blocking_main_thread_task_runner, highp_threshold_min, |
use_rgba_4444_texture_format, id_allocation_chunk_size, |
- use_persistent_map_for_gpu_memory_buffers)); |
+ use_persistent_map_for_gpu_memory_buffers, use_image_texture_targets)); |
resource_provider->Initialize(); |
return resource_provider; |
} |
@@ -1081,7 +1082,8 @@ ResourceProvider::ResourceProvider( |
int highp_threshold_min, |
bool use_rgba_4444_texture_format, |
size_t id_allocation_chunk_size, |
- bool use_persistent_map_for_gpu_memory_buffers) |
+ bool use_persistent_map_for_gpu_memory_buffers, |
+ const std::vector<unsigned>& use_image_texture_targets) |
: output_surface_(output_surface), |
shared_bitmap_manager_(shared_bitmap_manager), |
gpu_memory_buffer_manager_(gpu_memory_buffer_manager), |
@@ -1103,7 +1105,8 @@ ResourceProvider::ResourceProvider( |
id_allocation_chunk_size_(id_allocation_chunk_size), |
use_sync_query_(false), |
use_persistent_map_for_gpu_memory_buffers_( |
- use_persistent_map_for_gpu_memory_buffers) { |
+ use_persistent_map_for_gpu_memory_buffers), |
+ use_image_texture_targets_(use_image_texture_targets) { |
DCHECK(output_surface_->HasClient()); |
DCHECK(id_allocation_chunk_size_); |
} |
@@ -1934,6 +1937,13 @@ GLint ResourceProvider::GetActiveTextureUnit(GLES2Interface* gl) { |
return active_unit; |
} |
+GLenum ResourceProvider::GetImageTextureTarget(ResourceFormat format) { |
+ gfx::GpuMemoryBuffer::Format buffer_format = ToGpuMemoryBufferFormat(format); |
+ DCHECK_GT(use_image_texture_targets_.size(), |
+ static_cast<size_t>(buffer_format)); |
+ return use_image_texture_targets_[buffer_format]; |
+} |
+ |
void ResourceProvider::ValidateResource(ResourceId id) const { |
DCHECK(thread_checker_.CalledOnValidThread()); |
DCHECK(id); |