Chromium Code Reviews| Index: src/gpu/GrSurface.cpp |
| diff --git a/src/gpu/GrSurface.cpp b/src/gpu/GrSurface.cpp |
| index 47d9959d26723a1e6adf5cd75cabfc59a7e7ef45..f83c72e72bb0c116f82c3fc22f200593990807fb 100644 |
| --- a/src/gpu/GrSurface.cpp |
| +++ b/src/gpu/GrSurface.cpp |
| @@ -7,4 +7,32 @@ |
| #include "GrSurface.h" |
| +#include "GrDrawState.h" |
| +#include "SkBitmap.h" |
| +#include "SkImageEncoder.h" |
| + |
| SK_DEFINE_INST_COUNT(GrSurface) |
| + |
| +bool GrSurface::savePixels(const char* filename) { |
| + SkBitmap bm; |
| + bm.setConfig(SkBitmap::kARGB_8888_Config, this->width(), this->height()); |
| + bm.allocPixels(); |
| + |
| + bool result = readPixels(0, 0, this->width(), this->height(), kSkia8888_GrPixelConfig, |
| + bm.getPixels()); |
| + if (!result) { |
| + SkDebugf("------ failed to read pixels for %s\n", filename); |
| + return false; |
| + } |
| + |
| + // remove any previous version of this file |
| + remove(filename); |
|
bsalomon
2013/09/30 17:39:04
is this cross-platform?
jvanverth1
2013/09/30 17:46:35
It's part of the C standard, so it should be.
|
| + |
| + if (!SkImageEncoder::EncodeFile(filename, bm, SkImageEncoder::kPNG_Type, 100)) { |
| + SkDebugf("------ failed to encode %s\n", filename); |
| + remove(filename); // remove any partial file |
| + return false; |
| + } |
| + |
| + return true; |
| +} |