Make "priv" classes for GrTexure and GrSurface.
R=robertphillips@google.com, egdaniel@google.com, joshualitt@google.com
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/596053002
diff --git a/src/gpu/GrSurface.cpp b/src/gpu/GrSurface.cpp
index d15cbdf..37fd73f 100644
--- a/src/gpu/GrSurface.cpp
+++ b/src/gpu/GrSurface.cpp
@@ -6,6 +6,7 @@
*/
#include "GrSurface.h"
+#include "GrSurfacePriv.h"
#include "SkBitmap.h"
#include "SkGr.h"
@@ -20,14 +21,16 @@
return SkImageInfo::Make(this->width(), this->height(), colorType, kPremul_SkAlphaType);
}
+// TODO: This should probably be a non-member helper function. It might only be needed in
+// debug or developer builds.
bool GrSurface::savePixels(const char* filename) {
SkBitmap bm;
if (!bm.tryAllocPixels(SkImageInfo::MakeN32Premul(this->width(), this->height()))) {
return false;
}
- bool result = readPixels(0, 0, this->width(), this->height(), kSkia8888_GrPixelConfig,
- bm.getPixels());
+ bool result = this->readPixels(0, 0, this->width(), this->height(), kSkia8888_GrPixelConfig,
+ bm.getPixels());
if (!result) {
SkDebugf("------ failed to read pixels for %s\n", filename);
return false;
@@ -80,3 +83,14 @@
}
return false;
}
+
+bool GrSurface::isSameAs(const GrSurface* other) const {
+ const GrRenderTarget* thisRT = this->asRenderTarget();
+ if (thisRT) {
+ return thisRT == other->asRenderTarget();
+ } else {
+ const GrTexture* thisTex = this->asTexture();
+ SkASSERT(thisTex); // We must be one or the other
+ return thisTex == other->asTexture();
+ }
+}