Chromium Code Reviews| 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 |