Revert "Revert "Mark wrapped textures imported into SkImages as "read only".""
This reverts commit ff4ccaa9fcfbcf29c476eda973febf4b2d6dc974.
Bug: skia:8509
Change-Id: If4a059d6e6e412ec1d6be2c70663d59c362e91d2
Reviewed-on: https://skia-review.googlesource.com/c/175249
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
diff --git a/include/gpu/GrSurface.h b/include/gpu/GrSurface.h
index bcd854f..3211a1e 100644
--- a/include/gpu/GrSurface.h
+++ b/include/gpu/GrSurface.h
@@ -65,6 +65,12 @@
static size_t ComputeSize(GrPixelConfig config, int width, int height, int colorSamplesPerPixel,
GrMipMapped, bool useNextPow2 = false);
+ /**
+ * The pixel values of this surface cannot be modified (e.g. doesn't support write pixels or
+ * MIP map level regen).
+ */
+ bool readOnly() const { return fSurfaceFlags & GrInternalSurfaceFlags::kReadOnly; }
+
protected:
void setHasMixedSamples() {
SkASSERT(this->asRenderTarget());
@@ -88,6 +94,11 @@
return fSurfaceFlags & GrInternalSurfaceFlags::kGLRTFBOIDIs0;
}
+ void setReadOnly() {
+ SkASSERT(!this->asRenderTarget());
+ fSurfaceFlags |= GrInternalSurfaceFlags::kReadOnly;
+ }
+
// Methods made available via GrSurfacePriv
bool hasPendingRead() const;
bool hasPendingWrite() const;