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

Side by Side Diff: content/browser/android/ui_resource_android_impl.cc

Issue 731133002: Upstream ResourceManager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Apply David's comments Created 6 years, 1 month 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
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/browser/android/ui_resource_android_impl.h"
6
7 #include "base/logging.h"
8 #include "content/public/browser/android/ui_resource_provider.h"
9
10 namespace content {
11
12 scoped_ptr<UIResourceAndroidImpl> UIResourceAndroidImpl::CreateFromJavaBitmap(
13 content::UIResourceProvider* provider,
14 jobject bitmap_object) {
15 if (!bitmap_object)
16 return make_scoped_ptr(new UIResourceAndroidImpl(provider, SkBitmap()));
17
18 const gfx::JavaBitmap java_bitmap_lock(bitmap_object);
19 return UIResourceAndroidImpl::CreateFromJavaBitmap(provider,
20 java_bitmap_lock);
21 }
22
23 scoped_ptr<UIResourceAndroidImpl> UIResourceAndroidImpl::CreateFromJavaBitmap(
24 content::UIResourceProvider* provider,
25 const gfx::JavaBitmap& java_bitmap) {
26 SkBitmap skbitmap = gfx::CreateSkBitmapFromJavaBitmap(java_bitmap);
27 skbitmap.setImmutable();
28
29 return make_scoped_ptr(new UIResourceAndroidImpl(provider, skbitmap));
30 }
31
32 UIResourceAndroidImpl::~UIResourceAndroidImpl() {
33 if (id_ && provider_)
34 provider_->DeleteUIResource(id_);
35 }
36
37 cc::UIResourceBitmap UIResourceAndroidImpl::GetBitmap(cc::UIResourceId uid,
38 bool resource_lost) {
39 DCHECK(!bitmap_.empty());
40 return cc::UIResourceBitmap(bitmap_);
41 }
42
43 cc::UIResourceId UIResourceAndroidImpl::id() {
44 if (id_)
45 return id_;
46 if (!provider_ || bitmap_.empty())
47 return 0;
48 id_ = provider_->CreateUIResource(this);
49 return id_;
50 }
51
52 void UIResourceAndroidImpl::UIResourceIsInvalid() {
53 id_ = 0;
54 }
55
56 UIResourceAndroidImpl::UIResourceAndroidImpl(
57 content::UIResourceProvider* provider,
58 const SkBitmap& skbitmap)
59 : provider_(provider), bitmap_(skbitmap), id_(0) {
60 }
61
62 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698