Index: src/gpu/GrSWMaskHelper.h |
diff --git a/src/gpu/GrSWMaskHelper.h b/src/gpu/GrSWMaskHelper.h |
index 4c06786280a4b11087ef669fbd56072dc27d384d..a62a2735b9114802521c2c0e628b6af717d509af 100644 |
--- a/src/gpu/GrSWMaskHelper.h |
+++ b/src/gpu/GrSWMaskHelper.h |
@@ -42,9 +42,16 @@ class GrDrawTarget; |
class GrSWMaskHelper : SkNoncopyable { |
public: |
GrSWMaskHelper(GrContext* context) |
- : fContext(context), fCompressMask(false) { |
+ : fContext(context) |
+ , fCompressionMode(kNone_CompressionMode) |
+ , fCompressedBuffer(NULL) { |
} |
+ ~GrSWMaskHelper() { |
+ sk_free(fCompressedBuffer); |
+ } |
+ |
+ |
// set up the internal state in preparation for draws. Since many masks |
// may be accumulated in the helper during creation, "resultBounds" |
// allows the caller to specify the region of interest - to limit the |
@@ -94,7 +101,6 @@ public: |
GrDrawTarget* target, |
const SkIRect& rect); |
-protected: |
private: |
GrContext* fContext; |
SkMatrix fMatrix; |
@@ -102,12 +108,22 @@ private: |
SkDraw fDraw; |
SkRasterClip fRasterClip; |
- // This flag says whether or not we should compress the mask. If |
- // it is true, then fCompressedFormat is always valid. |
- bool fCompressMask; |
+ // This enum says whether or not we should compress the mask: |
+ // kNone_CompressionMode: compression is not supported on this device. |
+ // kCompress_CompressionMode: compress the bitmap before it gets sent to the gpu |
+ // kBlitter_CompressionMode: write to the bitmap using a special compressed blitter. |
+ enum CompressionMode { |
+ kNone_CompressionMode, |
+ kCompress_CompressionMode, |
+ kBlitter_CompressionMode, |
+ } fCompressionMode; |
+ |
+ // This is the buffer into which we store our compressed data. This buffer is |
+ // only allocated (non-null) if fCompressionMode is kBlitter_CompressionMode |
robertphillips
2014/08/07 13:55:06
Can we use an SkAutoMalloc for this?
krajcevski
2014/08/07 14:48:12
Done.
|
+ void* fCompressedBuffer; |
// This is the desired format within which to compress the |
- // texture. This value is only valid if fCompressMask is true. |
+ // texture. This value is only valid if fCompressionMode is not kNone_CompressionMode. |
SkTextureCompressor::Format fCompressedFormat; |
// Actually sends the texture data to the GPU. This is called from |