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

Side by Side Diff: android_webview/browser/in_process_view_renderer.cc

Issue 22796028: Updating Chromium to Skia SkBaseDevice/SkBitmapDevice split (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added TODOs 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
« no previous file with comments | « no previous file | cc/layers/picture_layer_impl_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/browser/in_process_view_renderer.h" 5 #include "android_webview/browser/in_process_view_renderer.h"
6 6
7 #include <android/bitmap.h> 7 #include <android/bitmap.h>
8 8
9 #include "android_webview/browser/aw_gl_surface.h" 9 #include "android_webview/browser/aw_gl_surface.h"
10 #include "android_webview/browser/scoped_app_gl_state_restore.h" 10 #include "android_webview/browser/scoped_app_gl_state_restore.h"
11 #include "android_webview/common/aw_switches.h" 11 #include "android_webview/common/aw_switches.h"
12 #include "android_webview/public/browser/draw_gl.h" 12 #include "android_webview/public/browser/draw_gl.h"
13 #include "android_webview/public/browser/draw_sw.h" 13 #include "android_webview/public/browser/draw_sw.h"
14 #include "base/android/jni_android.h" 14 #include "base/android/jni_android.h"
15 #include "base/auto_reset.h" 15 #include "base/auto_reset.h"
16 #include "base/command_line.h" 16 #include "base/command_line.h"
17 #include "base/debug/trace_event.h" 17 #include "base/debug/trace_event.h"
18 #include "base/lazy_instance.h" 18 #include "base/lazy_instance.h"
19 #include "base/logging.h" 19 #include "base/logging.h"
20 #include "base/strings/stringprintf.h" 20 #include "base/strings/stringprintf.h"
21 #include "content/public/browser/android/synchronous_compositor.h" 21 #include "content/public/browser/android/synchronous_compositor.h"
22 #include "content/public/browser/browser_thread.h" 22 #include "content/public/browser/browser_thread.h"
23 #include "content/public/browser/web_contents.h" 23 #include "content/public/browser/web_contents.h"
24 #include "gpu/command_buffer/service/in_process_command_buffer.h" 24 #include "gpu/command_buffer/service/in_process_command_buffer.h"
25 #include "third_party/skia/include/core/SkBitmap.h" 25 #include "third_party/skia/include/core/SkBitmap.h"
26 #include "third_party/skia/include/core/SkBitmapDevice.h"
26 #include "third_party/skia/include/core/SkCanvas.h" 27 #include "third_party/skia/include/core/SkCanvas.h"
27 #include "third_party/skia/include/core/SkDevice.h"
28 #include "third_party/skia/include/core/SkGraphics.h" 28 #include "third_party/skia/include/core/SkGraphics.h"
29 #include "third_party/skia/include/core/SkPicture.h" 29 #include "third_party/skia/include/core/SkPicture.h"
30 #include "ui/gfx/skia_util.h" 30 #include "ui/gfx/skia_util.h"
31 #include "ui/gfx/transform.h" 31 #include "ui/gfx/transform.h"
32 #include "ui/gfx/vector2d_conversions.h" 32 #include "ui/gfx/vector2d_conversions.h"
33 #include "ui/gfx/vector2d_f.h" 33 #include "ui/gfx/vector2d_f.h"
34 34
35 using base::android::AttachCurrentThread; 35 using base::android::AttachCurrentThread;
36 using base::android::JavaRef; 36 using base::android::JavaRef;
37 using base::android::ScopedJavaLocalRef; 37 using base::android::ScopedJavaLocalRef;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 84
85 bool succeeded; 85 bool succeeded;
86 { 86 {
87 SkBitmap bitmap; 87 SkBitmap bitmap;
88 bitmap.setConfig(SkBitmap::kARGB_8888_Config, 88 bitmap.setConfig(SkBitmap::kARGB_8888_Config,
89 bitmap_info.width, 89 bitmap_info.width,
90 bitmap_info.height, 90 bitmap_info.height,
91 bitmap_info.stride); 91 bitmap_info.stride);
92 bitmap.setPixels(pixels); 92 bitmap.setPixels(pixels);
93 93
94 SkDevice device(bitmap); 94 SkBitmapDevice device(bitmap);
95 SkCanvas canvas(&device); 95 SkCanvas canvas(&device);
96 canvas.translate(-scroll_x, -scroll_y); 96 canvas.translate(-scroll_x, -scroll_y);
97 succeeded = renderer.Run(&canvas); 97 succeeded = renderer.Run(&canvas);
98 } 98 }
99 99
100 if (AndroidBitmap_unlockPixels(env, jbitmap.obj()) < 0) { 100 if (AndroidBitmap_unlockPixels(env, jbitmap.obj()) < 0) {
101 LOG(ERROR) << "Error unlocking java bitmap pixels."; 101 LOG(ERROR) << "Error unlocking java bitmap pixels.";
102 return false; 102 return false;
103 } 103 }
104 104
(...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 return true; 498 return true;
499 } 499 }
500 500
501 // Draw in a SkCanvas built over the pixel information. 501 // Draw in a SkCanvas built over the pixel information.
502 SkBitmap bitmap; 502 SkBitmap bitmap;
503 bitmap.setConfig(config, 503 bitmap.setConfig(config,
504 pixels->width, 504 pixels->width,
505 pixels->height, 505 pixels->height,
506 pixels->row_bytes); 506 pixels->row_bytes);
507 bitmap.setPixels(pixels->pixels); 507 bitmap.setPixels(pixels->pixels);
508 SkDevice device(bitmap); 508 SkBitmapDevice device(bitmap);
509 SkCanvas canvas(&device); 509 SkCanvas canvas(&device);
510 canvas.setMatrix(matrix); 510 canvas.setMatrix(matrix);
511 511
512 if (pixels->clip_rect_count) { 512 if (pixels->clip_rect_count) {
513 SkRegion clip; 513 SkRegion clip;
514 for (int i = 0; i < pixels->clip_rect_count; ++i) { 514 for (int i = 0; i < pixels->clip_rect_count; ++i) {
515 clip.op(SkIRect::MakeXYWH(pixels->clip_rects[i + 0], 515 clip.op(SkIRect::MakeXYWH(pixels->clip_rects[i + 0],
516 pixels->clip_rects[i + 1], 516 pixels->clip_rects[i + 1],
517 pixels->clip_rects[i + 2], 517 pixels->clip_rects[i + 2],
518 pixels->clip_rects[i + 3]), 518 pixels->clip_rects[i + 3]),
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
795 void InProcessViewRenderer::FallbackTickFired() { 795 void InProcessViewRenderer::FallbackTickFired() {
796 TRACE_EVENT1("android_webview", 796 TRACE_EVENT1("android_webview",
797 "InProcessViewRenderer::FallbackTickFired", 797 "InProcessViewRenderer::FallbackTickFired",
798 "compositor_needs_continuous_invalidate_", 798 "compositor_needs_continuous_invalidate_",
799 compositor_needs_continuous_invalidate_); 799 compositor_needs_continuous_invalidate_);
800 800
801 // This should only be called if OnDraw or DrawGL did not come in time, which 801 // This should only be called if OnDraw or DrawGL did not come in time, which
802 // means block_invalidates_ must still be true. 802 // means block_invalidates_ must still be true.
803 DCHECK(block_invalidates_); 803 DCHECK(block_invalidates_);
804 if (compositor_needs_continuous_invalidate_ && compositor_) { 804 if (compositor_needs_continuous_invalidate_ && compositor_) {
805 SkDevice device(SkBitmap::kARGB_8888_Config, 1, 1); 805 SkBitmapDevice device(SkBitmap::kARGB_8888_Config, 1, 1);
806 SkCanvas canvas(&device); 806 SkCanvas canvas(&device);
807 block_invalidates_ = true; 807 block_invalidates_ = true;
808 CompositeSW(&canvas); 808 CompositeSW(&canvas);
809 } 809 }
810 block_invalidates_ = false; 810 block_invalidates_ = false;
811 EnsureContinuousInvalidation(NULL, false); 811 EnsureContinuousInvalidation(NULL, false);
812 } 812 }
813 813
814 bool InProcessViewRenderer::CompositeSW(SkCanvas* canvas) { 814 bool InProcessViewRenderer::CompositeSW(SkCanvas* canvas) {
815 DCHECK(compositor_); 815 DCHECK(compositor_);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
852 base::StringAppendF(&str, 852 base::StringAppendF(&str,
853 "surface width height: [%d %d] ", 853 "surface width height: [%d %d] ",
854 draw_info->width, 854 draw_info->width,
855 draw_info->height); 855 draw_info->height);
856 base::StringAppendF(&str, "is_layer: %d ", draw_info->is_layer); 856 base::StringAppendF(&str, "is_layer: %d ", draw_info->is_layer);
857 } 857 }
858 return str; 858 return str;
859 } 859 }
860 860
861 } // namespace android_webview 861 } // namespace android_webview
OLDNEW
« no previous file with comments | « no previous file | cc/layers/picture_layer_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698