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

Side by Side Diff: content/browser/renderer_host/render_widget_host_view_android.cc

Issue 23648014: cc: Move TextureMailbox::ReleaseCallback to SingleReleaseCallback. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: releasecallback: SingleReleaseCallback Created 7 years, 3 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 #include "content/browser/renderer_host/render_widget_host_view_android.h" 5 #include "content/browser/renderer_host/render_widget_host_view_android.h"
6 6
7 #include <android/bitmap.h> 7 #include <android/bitmap.h>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/callback_helpers.h" 11 #include "base/callback_helpers.h"
12 #include "base/command_line.h" 12 #include "base/command_line.h"
13 #include "base/logging.h" 13 #include "base/logging.h"
14 #include "base/message_loop/message_loop.h" 14 #include "base/message_loop/message_loop.h"
15 #include "base/strings/utf_string_conversions.h" 15 #include "base/strings/utf_string_conversions.h"
16 #include "base/threading/worker_pool.h" 16 #include "base/threading/worker_pool.h"
17 #include "cc/layers/delegated_renderer_layer.h" 17 #include "cc/layers/delegated_renderer_layer.h"
18 #include "cc/layers/layer.h" 18 #include "cc/layers/layer.h"
19 #include "cc/layers/texture_layer.h" 19 #include "cc/layers/texture_layer.h"
20 #include "cc/output/compositor_frame.h" 20 #include "cc/output/compositor_frame.h"
21 #include "cc/output/compositor_frame_ack.h" 21 #include "cc/output/compositor_frame_ack.h"
22 #include "cc/output/copy_output_request.h" 22 #include "cc/output/copy_output_request.h"
23 #include "cc/output/copy_output_result.h" 23 #include "cc/output/copy_output_result.h"
24 #include "cc/resources/single_release_callback.h"
24 #include "cc/trees/layer_tree_host.h" 25 #include "cc/trees/layer_tree_host.h"
25 #include "content/browser/accessibility/browser_accessibility_manager_android.h" 26 #include "content/browser/accessibility/browser_accessibility_manager_android.h"
26 #include "content/browser/android/content_view_core_impl.h" 27 #include "content/browser/android/content_view_core_impl.h"
27 #include "content/browser/android/in_process/synchronous_compositor_impl.h" 28 #include "content/browser/android/in_process/synchronous_compositor_impl.h"
28 #include "content/browser/android/overscroll_glow.h" 29 #include "content/browser/android/overscroll_glow.h"
29 #include "content/browser/gpu/gpu_surface_tracker.h" 30 #include "content/browser/gpu/gpu_surface_tracker.h"
30 #include "content/browser/renderer_host/compositor_impl_android.h" 31 #include "content/browser/renderer_host/compositor_impl_android.h"
31 #include "content/browser/renderer_host/dip_util.h" 32 #include "content/browser/renderer_host/dip_util.h"
32 #include "content/browser/renderer_host/generic_touch_gesture_android.h" 33 #include "content/browser/renderer_host/generic_touch_gesture_android.h"
33 #include "content/browser/renderer_host/image_transport_factory_android.h" 34 #include "content/browser/renderer_host/image_transport_factory_android.h"
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 route_id, output_surface_id, renderer_host_id, ack); 84 route_id, output_surface_id, renderer_host_id, ack);
84 } 85 }
85 86
86 // Sends an acknowledgement to the renderer of a processed IME event. 87 // Sends an acknowledgement to the renderer of a processed IME event.
87 void SendImeEventAck(RenderWidgetHostImpl* host) { 88 void SendImeEventAck(RenderWidgetHostImpl* host) {
88 host->Send(new ViewMsg_ImeEventAck(host->GetRoutingID())); 89 host->Send(new ViewMsg_ImeEventAck(host->GetRoutingID()));
89 } 90 }
90 91
91 void CopyFromCompositingSurfaceFinished( 92 void CopyFromCompositingSurfaceFinished(
92 const base::Callback<void(bool, const SkBitmap&)>& callback, 93 const base::Callback<void(bool, const SkBitmap&)>& callback,
93 const cc::TextureMailbox::ReleaseCallback& release_callback, 94 scoped_ptr<cc::SingleReleaseCallback> release_callback,
94 scoped_ptr<SkBitmap> bitmap, 95 scoped_ptr<SkBitmap> bitmap,
95 scoped_ptr<SkAutoLockPixels> bitmap_pixels_lock, 96 scoped_ptr<SkAutoLockPixels> bitmap_pixels_lock,
96 bool result) { 97 bool result) {
97 bitmap_pixels_lock.reset(); 98 bitmap_pixels_lock.reset();
98 release_callback.Run(0, false); 99 release_callback->Run(0, false);
99 callback.Run(result, *bitmap); 100 callback.Run(result, *bitmap);
100 } 101 }
101 102
102 } // anonymous namespace 103 } // anonymous namespace
103 104
104 RenderWidgetHostViewAndroid::RenderWidgetHostViewAndroid( 105 RenderWidgetHostViewAndroid::RenderWidgetHostViewAndroid(
105 RenderWidgetHostImpl* widget_host, 106 RenderWidgetHostImpl* widget_host,
106 ContentViewCoreImpl* content_view_core) 107 ContentViewCoreImpl* content_view_core)
107 : host_(widget_host), 108 : host_(widget_host),
108 needs_begin_frame_(false), 109 needs_begin_frame_(false),
(...skipping 1083 matching lines...) Expand 10 before | Expand all | Expand 10 after
1192 void RenderWidgetHostViewAndroid::DidCommitFrameData() { 1193 void RenderWidgetHostViewAndroid::DidCommitFrameData() {
1193 RunAckCallbacks(); 1194 RunAckCallbacks();
1194 } 1195 }
1195 1196
1196 WebKit::WebGraphicsContext3D* RenderWidgetHostViewAndroid::Context3d() { 1197 WebKit::WebGraphicsContext3D* RenderWidgetHostViewAndroid::Context3d() {
1197 return ImageTransportFactoryAndroid::GetInstance()->GetContext3D(); 1198 return ImageTransportFactoryAndroid::GetInstance()->GetContext3D();
1198 } 1199 }
1199 1200
1200 bool RenderWidgetHostViewAndroid::PrepareTextureMailbox( 1201 bool RenderWidgetHostViewAndroid::PrepareTextureMailbox(
1201 cc::TextureMailbox* mailbox, 1202 cc::TextureMailbox* mailbox,
1203 scoped_ptr<cc::SingleReleaseCallback>* release_callback,
1202 bool use_shared_memory) { 1204 bool use_shared_memory) {
1203 return false; 1205 return false;
1204 } 1206 }
1205 1207
1206 void RenderWidgetHostViewAndroid::OnLostResources() { 1208 void RenderWidgetHostViewAndroid::OnLostResources() {
1207 if (texture_layer_) 1209 if (texture_layer_)
1208 texture_layer_->SetIsDrawable(false); 1210 texture_layer_->SetIsDrawable(false);
1209 texture_id_in_layer_ = 0; 1211 texture_id_in_layer_ = 0;
1210 RunAckCallbacks(); 1212 RunAckCallbacks();
1211 } 1213 }
(...skipping 20 matching lines...) Expand all
1232 ImageTransportFactoryAndroid* factory = 1234 ImageTransportFactoryAndroid* factory =
1233 ImageTransportFactoryAndroid::GetInstance(); 1235 ImageTransportFactoryAndroid::GetInstance();
1234 GLHelper* gl_helper = factory->GetGLHelper(); 1236 GLHelper* gl_helper = factory->GetGLHelper();
1235 if (!gl_helper) 1237 if (!gl_helper)
1236 return; 1238 return;
1237 1239
1238 scoped_ptr<SkAutoLockPixels> bitmap_pixels_lock( 1240 scoped_ptr<SkAutoLockPixels> bitmap_pixels_lock(
1239 new SkAutoLockPixels(*bitmap)); 1241 new SkAutoLockPixels(*bitmap));
1240 uint8* pixels = static_cast<uint8*>(bitmap->getPixels()); 1242 uint8* pixels = static_cast<uint8*>(bitmap->getPixels());
1241 1243
1242 scoped_ptr<cc::TextureMailbox> texture_mailbox = result->TakeTexture(); 1244 cc::TextureMailbox texture_mailbox;
1243 DCHECK(texture_mailbox->IsTexture()); 1245 scoped_ptr<cc::SingleReleaseCallback> release_callback;
1244 if (!texture_mailbox->IsTexture()) 1246 result->TakeTexture(&texture_mailbox, &release_callback);
1247 DCHECK(texture_mailbox.IsTexture());
1248 if (!texture_mailbox.IsTexture())
1245 return; 1249 return;
1246 1250
1247 ignore_result(scoped_callback_runner.Release()); 1251 ignore_result(scoped_callback_runner.Release());
1248 1252
1249 gl_helper->CropScaleReadbackAndCleanMailbox( 1253 gl_helper->CropScaleReadbackAndCleanMailbox(
1250 texture_mailbox->name(), 1254 texture_mailbox.name(),
1251 texture_mailbox->sync_point(), 1255 texture_mailbox.sync_point(),
1252 result->size(), 1256 result->size(),
1253 gfx::Rect(result->size()), 1257 gfx::Rect(result->size()),
1254 dst_size_in_pixel, 1258 dst_size_in_pixel,
1255 pixels, 1259 pixels,
1256 base::Bind(&CopyFromCompositingSurfaceFinished, 1260 base::Bind(&CopyFromCompositingSurfaceFinished,
1257 callback, 1261 callback,
1258 texture_mailbox->callback(), 1262 base::Passed(&release_callback),
1259 base::Passed(&bitmap), 1263 base::Passed(&bitmap),
1260 base::Passed(&bitmap_pixels_lock))); 1264 base::Passed(&bitmap_pixels_lock)));
1261 } 1265 }
1262 1266
1263 // static 1267 // static
1264 void RenderWidgetHostViewAndroid::PrepareBitmapCopyOutputResult( 1268 void RenderWidgetHostViewAndroid::PrepareBitmapCopyOutputResult(
1265 const gfx::Size& dst_size_in_pixel, 1269 const gfx::Size& dst_size_in_pixel,
1266 const base::Callback<void(bool, const SkBitmap&)>& callback, 1270 const base::Callback<void(bool, const SkBitmap&)>& callback,
1267 scoped_ptr<cc::CopyOutputResult> result) { 1271 scoped_ptr<cc::CopyOutputResult> result) {
1268 DCHECK(result->HasBitmap()); 1272 DCHECK(result->HasBitmap());
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1303 // RenderWidgetHostView, public: 1307 // RenderWidgetHostView, public:
1304 1308
1305 // static 1309 // static
1306 RenderWidgetHostView* 1310 RenderWidgetHostView*
1307 RenderWidgetHostView::CreateViewForWidget(RenderWidgetHost* widget) { 1311 RenderWidgetHostView::CreateViewForWidget(RenderWidgetHost* widget) {
1308 RenderWidgetHostImpl* rwhi = RenderWidgetHostImpl::From(widget); 1312 RenderWidgetHostImpl* rwhi = RenderWidgetHostImpl::From(widget);
1309 return new RenderWidgetHostViewAndroid(rwhi, NULL); 1313 return new RenderWidgetHostViewAndroid(rwhi, NULL);
1310 } 1314 }
1311 1315
1312 } // namespace content 1316 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698