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

Side by Side Diff: android_webview/native/aw_contents.cc

Issue 414503004: android: Use hw acceleration in android_webview_shell (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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 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 #include "android_webview/native/aw_contents.h" 5 #include "android_webview/native/aw_contents.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "android_webview/browser/aw_browser_context.h" 9 #include "android_webview/browser/aw_browser_context.h"
10 #include "android_webview/browser/aw_browser_main_parts.h" 10 #include "android_webview/browser/aw_browser_main_parts.h"
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 // static 334 // static
335 jint GetNativeInstanceCount(JNIEnv* env, jclass) { 335 jint GetNativeInstanceCount(JNIEnv* env, jclass) {
336 return base::subtle::NoBarrier_Load(&g_instance_count); 336 return base::subtle::NoBarrier_Load(&g_instance_count);
337 } 337 }
338 338
339 jlong AwContents::GetAwDrawGLViewContext(JNIEnv* env, jobject obj) { 339 jlong AwContents::GetAwDrawGLViewContext(JNIEnv* env, jobject obj) {
340 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 340 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
341 return reinterpret_cast<intptr_t>(this); 341 return reinterpret_cast<intptr_t>(this);
342 } 342 }
343 343
344 void AwContents::DrawGLForTesting(JNIEnv* env,
345 jobject obj,
346 jint width,
347 jint height) {
348 AwDrawGLInfo draw_info;
349 draw_info.mode = AwDrawGLInfo::kModeDraw;
no sievers 2014/07/22 20:53:18 So I think since the SurfaceView never moves (when
350 draw_info.is_layer = true;
351 draw_info.width = width;
352 draw_info.height = height;
353 draw_info.clip_left = 0;
354 draw_info.clip_top = 0;
355 draw_info.clip_bottom = height;
356 draw_info.clip_right = width;
357 draw_info.transform[0] = 1.0;
358 draw_info.transform[1] = 0.0;
359 draw_info.transform[2] = 0.0;
360 draw_info.transform[3] = 0.0;
361
362 draw_info.transform[4] = 0.0;
363 draw_info.transform[5] = 1.0;
364 draw_info.transform[6] = 0.0;
365 draw_info.transform[7] = 0.0;
366
367 draw_info.transform[8] = 0.0;
368 draw_info.transform[9] = 0.0;
369 draw_info.transform[10] = 1.0;
370 draw_info.transform[11] = 0.0;
371
372 draw_info.transform[12] = 0.0;
373 draw_info.transform[13] = 0.0;
374 draw_info.transform[14] = 0.0;
375 draw_info.transform[15] = 1.0;
376 DrawGL(&draw_info);
377 }
378
344 void AwContents::DrawGL(AwDrawGLInfo* draw_info) { 379 void AwContents::DrawGL(AwDrawGLInfo* draw_info) {
345 { 380 {
346 GLViewRendererManager* manager = GLViewRendererManager::GetInstance(); 381 GLViewRendererManager* manager = GLViewRendererManager::GetInstance();
347 base::AutoLock lock(render_thread_lock_); 382 base::AutoLock lock(render_thread_lock_);
348 if (renderer_manager_key_ != manager->NullKey()) { 383 if (renderer_manager_key_ != manager->NullKey()) {
349 manager->DidDrawGL(renderer_manager_key_); 384 manager->DidDrawGL(renderer_manager_key_);
350 } 385 }
351 } 386 }
352 387
353 ScopedAppGLStateRestore state_restore( 388 ScopedAppGLStateRestore state_restore(
(...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after
840 } 875 }
841 } 876 }
842 } 877 }
843 878
844 void AwContents::OnAttachedToWindow(JNIEnv* env, jobject obj, int w, int h) { 879 void AwContents::OnAttachedToWindow(JNIEnv* env, jobject obj, int w, int h) {
845 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 880 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
846 browser_view_renderer_.OnAttachedToWindow(w, h); 881 browser_view_renderer_.OnAttachedToWindow(w, h);
847 } 882 }
848 883
849 void AwContents::InitializeHardwareDrawIfNeeded() { 884 void AwContents::InitializeHardwareDrawIfNeeded() {
885 LOG(INFO) << "AwContents::InitializeHardwareDrawIfNeeded";
850 GLViewRendererManager* manager = GLViewRendererManager::GetInstance(); 886 GLViewRendererManager* manager = GLViewRendererManager::GetInstance();
851 887
852 base::AutoLock lock(render_thread_lock_); 888 base::AutoLock lock(render_thread_lock_);
853 if (renderer_manager_key_ == manager->NullKey()) { 889 if (renderer_manager_key_ == manager->NullKey()) {
854 renderer_manager_key_ = manager->PushBack(&shared_renderer_state_); 890 renderer_manager_key_ = manager->PushBack(&shared_renderer_state_);
855 DeferredGpuCommandService::SetInstance(); 891 DeferredGpuCommandService::SetInstance();
856 } 892 }
857 } 893 }
858 894
859 void AwContents::OnDetachedFromWindow(JNIEnv* env, jobject obj) { 895 void AwContents::OnDetachedFromWindow(JNIEnv* env, jobject obj) {
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
1144 } 1180 }
1145 1181
1146 browser_view_renderer_.TrimMemory(level, visible); 1182 browser_view_renderer_.TrimMemory(level, visible);
1147 } 1183 }
1148 1184
1149 void SetShouldDownloadFavicons(JNIEnv* env, jclass jclazz) { 1185 void SetShouldDownloadFavicons(JNIEnv* env, jclass jclazz) {
1150 g_should_download_favicons = true; 1186 g_should_download_favicons = true;
1151 } 1187 }
1152 1188
1153 } // namespace android_webview 1189 } // namespace android_webview
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698