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

Unified Diff: tools/viewer/sk_app/RasterWindowContext.cpp

Issue 2041193004: Implement Raster Backend on Android Viewer App (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: line100 Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: tools/viewer/sk_app/RasterWindowContext.cpp
diff --git a/tools/viewer/sk_app/RasterWindowContext.cpp b/tools/viewer/sk_app/RasterWindowContext.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..5bb1d2da1fad420a7a41dbce7c3c5217f1d5a979
--- /dev/null
+++ b/tools/viewer/sk_app/RasterWindowContext.cpp
@@ -0,0 +1,37 @@
+
+/*
+ * Copyright 2016 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "RasterWindowContext.h"
+
+#include "SkSurface.h"
+
+namespace sk_app {
+
+sk_sp<SkSurface> RasterWindowContext::getBackbufferSurface() {
+ if (nullptr == fBackbufferSurface) {
+ fBackbufferSurface = SkSurface::MakeRaster(this->getImageInfo(), 0, nullptr);
+ }
+ return fBackbufferSurface;
+}
+
+// Somehow, I couldn't make this a field for reuse.
+// Weird things happen as soon as I declare a SkImageInfo field...
+SkImageInfo RasterWindowContext::getImageInfo() {
+ return SkImageInfo::Make(fWidth, fHeight,
+ fDisplayParams.fColorType,
+ kOpaque_SkAlphaType,
+ fDisplayParams.fProfileType);
+}
+
+void RasterWindowContext::swapBuffers() {
+ sk_sp<SkImage> image = fBackbufferSurface->makeImageSnapshot();
+ this->onSwapBuffers(image);
+ fBackbufferSurface.reset(nullptr);
+}
+
+} // namespace sk_app

Powered by Google App Engine
This is Rietveld 408576698