Index: cc/trees/layer_tree_host_impl.cc |
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc |
index 6f267cc51b0417ac65f35299e15a4be158db4da9..9485c72ee1369bae2ceffb45c9b02876400d6a35 100644 |
--- a/cc/trees/layer_tree_host_impl.cc |
+++ b/cc/trees/layer_tree_host_impl.cc |
@@ -56,6 +56,7 @@ |
#include "cc/trees/quad_culler.h" |
#include "cc/trees/single_thread_proxy.h" |
#include "cc/trees/tree_synchronizer.h" |
+#include "gpu/GLES2/gl2extchromium.h" |
#include "ui/gfx/frame_time.h" |
#include "ui/gfx/size_conversions.h" |
#include "ui/gfx/vector2d_conversions.h" |
@@ -103,6 +104,22 @@ size_t GetMaxRasterTasksUsageBytes(cc::ContextProvider* context_provider) { |
return GetMaxTransferBufferUsageBytes(context_provider); |
} |
+GLenum GetMapImageTextureTarget(cc::ContextProvider* context_provider) { |
+ if (!context_provider) |
+ return GL_TEXTURE_2D; |
+ |
+ // TODO(reveman): Determine if GL_TEXTURE_EXTERNAL_OES works well on |
+ // Android before we enable this. crbug.com/322780 |
+#if !defined(OS_ANDROID) |
+ if (context_provider->ContextCapabilities().egl_image_external) |
+ return GL_TEXTURE_EXTERNAL_OES; |
+ if (context_provider->ContextCapabilities().texture_rectangle) |
+ return GL_TEXTURE_RECTANGLE_ARB; |
+#endif |
+ |
+ return GL_TEXTURE_2D; |
+} |
+ |
} // namespace |
namespace cc { |
@@ -1660,7 +1677,8 @@ void LayerTreeHostImpl::CreateAndSetTileManager( |
rendering_stats_instrumentation_, |
using_map_image, |
GetMaxTransferBufferUsageBytes(context_provider), |
- GetMaxRasterTasksUsageBytes(context_provider)); |
+ GetMaxRasterTasksUsageBytes(context_provider), |
+ GetMapImageTextureTarget(context_provider)); |
UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy()); |
need_to_update_visible_tiles_before_draw_ = false; |