| 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
|
|
|