Chromium Code Reviews

Side by Side Diff: examples/ui/png_viewer/png_viewer.cc

Issue 2011713003: Roll skia to 8cc209111876b7c78b5ec577c9221d8ed5e21024 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
« no previous file with comments | « examples/ui/pdf_viewer/pdf_viewer.cc ('k') | mojo/skia/ganesh_context.h » ('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 2014 The Chromium Authors. All rights reserved. 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 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 <string> 5 #include <string>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "mojo/application/application_runner_chromium.h" 10 #include "mojo/application/application_runner_chromium.h"
(...skipping 12 matching lines...)
23 23
24 namespace { 24 namespace {
25 constexpr uint32_t kContentImageResourceId = 1; 25 constexpr uint32_t kContentImageResourceId = 1;
26 constexpr uint32_t kRootNodeId = mojo::gfx::composition::kSceneRootNodeId; 26 constexpr uint32_t kRootNodeId = mojo::gfx::composition::kSceneRootNodeId;
27 } // namespace 27 } // namespace
28 28
29 class PNGView : public mojo::ui::GaneshView { 29 class PNGView : public mojo::ui::GaneshView {
30 public: 30 public:
31 PNGView(mojo::InterfaceHandle<mojo::ApplicationConnector> app_connector, 31 PNGView(mojo::InterfaceHandle<mojo::ApplicationConnector> app_connector,
32 mojo::InterfaceRequest<mojo::ui::ViewOwner> view_owner_request, 32 mojo::InterfaceRequest<mojo::ui::ViewOwner> view_owner_request,
33 const skia::RefPtr<SkImage>& image) 33 const sk_sp<SkImage>& image)
34 : GaneshView(app_connector.Pass(), 34 : GaneshView(app_connector.Pass(),
35 view_owner_request.Pass(), 35 view_owner_request.Pass(),
36 "PNGViewer"), 36 "PNGViewer"),
37 image_(image) { 37 image_(image) {
38 DCHECK(image_); 38 DCHECK(image_);
39 } 39 }
40 40
41 ~PNGView() override {} 41 ~PNGView() override {}
42 42
43 private: 43 private:
(...skipping 53 matching lines...)
97 } else { 97 } else {
98 w = image_->width() * size.height / image_->height(); 98 w = image_->width() * size.height / image_->height();
99 h = size.height; 99 h = size.height;
100 } 100 }
101 canvas->drawImageRect( 101 canvas->drawImageRect(
102 image_.get(), SkRect::MakeWH(image_->width(), image_->height()), 102 image_.get(), SkRect::MakeWH(image_->width(), image_->height()),
103 SkRect::MakeXYWH((size.width - w) / 2, (size.height - h) / 2, w, h), 103 SkRect::MakeXYWH((size.width - w) / 2, (size.height - h) / 2, w, h),
104 nullptr); 104 nullptr);
105 } 105 }
106 106
107 skia::RefPtr<SkImage> image_; 107 sk_sp<SkImage> image_;
108 108
109 DISALLOW_COPY_AND_ASSIGN(PNGView); 109 DISALLOW_COPY_AND_ASSIGN(PNGView);
110 }; 110 };
111 111
112 class PNGContentViewProviderApp : public mojo::ui::ViewProviderApp { 112 class PNGContentViewProviderApp : public mojo::ui::ViewProviderApp {
113 public: 113 public:
114 PNGContentViewProviderApp(skia::RefPtr<SkImage> image) : image_(image) { 114 PNGContentViewProviderApp(sk_sp<SkImage> image) : image_(image) {
115 DCHECK(image_); 115 DCHECK(image_);
116 } 116 }
117 117
118 ~PNGContentViewProviderApp() override {} 118 ~PNGContentViewProviderApp() override {}
119 119
120 void CreateView( 120 void CreateView(
121 const std::string& connection_url, 121 const std::string& connection_url,
122 mojo::InterfaceRequest<mojo::ui::ViewOwner> view_owner_request, 122 mojo::InterfaceRequest<mojo::ui::ViewOwner> view_owner_request,
123 mojo::InterfaceRequest<mojo::ServiceProvider> services) override { 123 mojo::InterfaceRequest<mojo::ServiceProvider> services) override {
124 new PNGView(mojo::CreateApplicationConnector(app_impl()->shell()), 124 new PNGView(mojo::CreateApplicationConnector(app_impl()->shell()),
125 view_owner_request.Pass(), image_); 125 view_owner_request.Pass(), image_);
126 } 126 }
127 127
128 private: 128 private:
129 skia::RefPtr<SkImage> image_; 129 sk_sp<SkImage> image_;
130 130
131 DISALLOW_COPY_AND_ASSIGN(PNGContentViewProviderApp); 131 DISALLOW_COPY_AND_ASSIGN(PNGContentViewProviderApp);
132 }; 132 };
133 133
134 class PNGContentViewerApp : public mojo::ui::ContentViewerApp { 134 class PNGContentViewerApp : public mojo::ui::ContentViewerApp {
135 public: 135 public:
136 PNGContentViewerApp() {} 136 PNGContentViewerApp() {}
137 137
138 ~PNGContentViewerApp() override {} 138 ~PNGContentViewerApp() override {}
139 139
140 mojo::ui::ViewProviderApp* LoadContent( 140 mojo::ui::ViewProviderApp* LoadContent(
141 const std::string& content_handler_url, 141 const std::string& content_handler_url,
142 mojo::URLResponsePtr response) override { 142 mojo::URLResponsePtr response) override {
143 std::string data; 143 std::string data;
144 mojo::common::BlockingCopyToString(response->body.Pass(), &data); 144 mojo::common::BlockingCopyToString(response->body.Pass(), &data);
145 SkBitmap bitmap; 145 SkBitmap bitmap;
146 if (!::gfx::PNGCodec::Decode( 146 if (!::gfx::PNGCodec::Decode(
147 reinterpret_cast<const unsigned char*>(data.data()), data.length(), 147 reinterpret_cast<const unsigned char*>(data.data()), data.length(),
148 &bitmap) || 148 &bitmap) ||
149 bitmap.empty()) { 149 bitmap.empty()) {
150 LOG(ERROR) << "Could not decode PNG."; 150 LOG(ERROR) << "Could not decode PNG.";
151 return nullptr; 151 return nullptr;
152 } 152 }
153 153
154 return new PNGContentViewProviderApp( 154 return new PNGContentViewProviderApp(SkImage::MakeFromBitmap(bitmap));
155 skia::AdoptRef(SkImage::NewFromBitmap(bitmap)));
156 } 155 }
157 156
158 private: 157 private:
159 DISALLOW_COPY_AND_ASSIGN(PNGContentViewerApp); 158 DISALLOW_COPY_AND_ASSIGN(PNGContentViewerApp);
160 }; 159 };
161 160
162 } // namespace examples 161 } // namespace examples
163 162
164 MojoResult MojoMain(MojoHandle application_request) { 163 MojoResult MojoMain(MojoHandle application_request) {
165 mojo::ApplicationRunnerChromium runner(new examples::PNGContentViewerApp()); 164 mojo::ApplicationRunnerChromium runner(new examples::PNGContentViewerApp());
166 return runner.Run(application_request); 165 return runner.Run(application_request);
167 } 166 }
OLDNEW
« no previous file with comments | « examples/ui/pdf_viewer/pdf_viewer.cc ('k') | mojo/skia/ganesh_context.h » ('j') | no next file with comments »

Powered by Google App Engine