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

Unified Diff: content/browser/renderer_host/compositor_impl_android.cc

Issue 143803004: android: Migrate old content readback to use async readback (and delegated renderer) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebased Created 6 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/compositor_impl_android.cc
diff --git a/content/browser/renderer_host/compositor_impl_android.cc b/content/browser/renderer_host/compositor_impl_android.cc
index 0b4eb580ea3a8710a5f78866a0825e3be81b0d50..eb2f37f6af21731f82acfe7994316e9f4447f542 100644
--- a/content/browser/renderer_host/compositor_impl_android.cc
+++ b/content/browser/renderer_host/compositor_impl_android.cc
@@ -11,6 +11,7 @@
#include "base/android/jni_android.h"
#include "base/android/scoped_java_ref.h"
#include "base/bind.h"
+#include "base/callback_helpers.h"
#include "base/command_line.h"
#include "base/lazy_instance.h"
#include "base/logging.h"
@@ -25,6 +26,7 @@
#include "cc/resources/scoped_ui_resource.h"
#include "cc/resources/ui_resource_bitmap.h"
#include "cc/trees/layer_tree_host.h"
+#include "content/browser/android/transient_ui_resource.h"
#include "content/browser/gpu/browser_gpu_channel_host_factory.h"
#include "content/browser/gpu/gpu_surface_tracker.h"
#include "content/common/gpu/client/command_buffer_proxy_impl.h"
@@ -270,9 +272,22 @@ cc::UIResourceId CompositorImpl::GenerateUIResource(
const cc::UIResourceBitmap& bitmap) {
if (!host_)
return 0;
- scoped_ptr<cc::ScopedUIResource> ui_resource =
- cc::ScopedUIResource::Create(host_.get(), bitmap);
- cc::UIResourceId id = ui_resource->id();
+ scoped_ptr<cc::UIResourceClient> ui_resource;
+ cc::UIResourceId id = 0;
+ if (bitmap.GetFormat() == cc::UIResourceBitmap::RGBA8) {
+ scoped_ptr<cc::ScopedUIResource> scoped =
no sievers 2014/01/28 20:47:22 nit: |scoped| -> |resource|
powei 2014/01/29 13:53:17 Done.
+ cc::ScopedUIResource::Create(host_.get(), bitmap);
+ id = scoped->id();
+ ui_resource.reset(scoped.release());
+ } else if (bitmap.GetFormat() == cc::UIResourceBitmap::ETC1) {
+ scoped_ptr<TransientUIResource> transient =
+ TransientUIResource::Create(host_.get(), bitmap);
+ id = transient->id();
+ ui_resource.reset(transient.release());
+ } else {
+ NOTREACHED();
no sievers 2014/01/28 20:47:22 return 0;
powei 2014/01/29 13:53:17 Done.
+ }
+
ui_resource_map_.set(id, ui_resource.Pass());
return id;
}
@@ -283,75 +298,6 @@ void CompositorImpl::DeleteUIResource(cc::UIResourceId resource_id) {
ui_resource_map_.erase(it);
}
-GLuint CompositorImpl::GenerateTexture(gfx::JavaBitmap& bitmap) {
- unsigned int texture_id = BuildBasicTexture();
- gpu::gles2::GLES2Interface* gl =
- ImageTransportFactoryAndroid::GetInstance()->GetContextGL();
- if (texture_id == 0u)
- return 0u;
- GLenum format = GetGLFormatForBitmap(bitmap);
- GLenum type = GetGLTypeForBitmap(bitmap);
-
- gl->TexImage2D(GL_TEXTURE_2D,
- 0,
- format,
- bitmap.size().width(),
- bitmap.size().height(),
- 0,
- format,
- type,
- bitmap.pixels());
- gl->ShallowFlushCHROMIUM();
- return texture_id;
-}
-
-GLuint CompositorImpl::GenerateCompressedTexture(gfx::Size& size,
- int data_size,
- void* data) {
- unsigned int texture_id = BuildBasicTexture();
- gpu::gles2::GLES2Interface* gl =
- ImageTransportFactoryAndroid::GetInstance()->GetContextGL();
- if (texture_id == 0u)
- return 0u;
- gl->CompressedTexImage2D(GL_TEXTURE_2D,
- 0,
- GL_ETC1_RGB8_OES,
- size.width(),
- size.height(),
- 0,
- data_size,
- data);
- gl->ShallowFlushCHROMIUM();
- return texture_id;
-}
-
-void CompositorImpl::DeleteTexture(GLuint texture_id) {
- gpu::gles2::GLES2Interface* gl =
- ImageTransportFactoryAndroid::GetInstance()->GetContextGL();
- gl->DeleteTextures(1, &texture_id);
- gl->ShallowFlushCHROMIUM();
-}
-
-bool CompositorImpl::CopyTextureToBitmap(GLuint texture_id,
- gfx::JavaBitmap& bitmap) {
- return CopyTextureToBitmap(texture_id, gfx::Rect(bitmap.size()), bitmap);
-}
-
-bool CompositorImpl::CopyTextureToBitmap(GLuint texture_id,
- const gfx::Rect& sub_rect,
- gfx::JavaBitmap& bitmap) {
- // The sub_rect should match the bitmap size.
- DCHECK(bitmap.size() == sub_rect.size());
- if (bitmap.size() != sub_rect.size() || texture_id == 0) return false;
-
- GLHelper* helper = ImageTransportFactoryAndroid::GetInstance()->GetGLHelper();
- helper->ReadbackTextureSync(texture_id,
- sub_rect,
- static_cast<unsigned char*> (bitmap.pixels()),
- SkBitmap::kARGB_8888_Config);
- return true;
-}
-
static scoped_ptr<WebGraphicsContext3DCommandBufferImpl>
CreateGpuProcessViewContext(
const blink::WebGraphicsContext3D::Attributes attributes,

Powered by Google App Engine
This is Rietveld 408576698