Chromium Code Reviews| Index: src/core/SkBitmapProcState.h |
| diff --git a/src/core/SkBitmapProcState.h b/src/core/SkBitmapProcState.h |
| index 5c6a4152fc285dd9c92fedc65f8e727f8bb920dc..4caec19d3634dff290511695f6de2414ac632aea 100644 |
| --- a/src/core/SkBitmapProcState.h |
| +++ b/src/core/SkBitmapProcState.h |
| @@ -33,11 +33,8 @@ |
| class SkPaint; |
| struct SkBitmapProcState { |
| - |
| + |
| SkBitmapProcState(): fBitmapFilter(NULL) {} |
|
robertphillips
2013/07/12 19:42:31
We don't need:
~SkBitmapProcState() {
this->e
humper
2013/07/12 21:12:03
Cleaned up. It's not right to call endcontext, bu
|
| - ~SkBitmapProcState() { |
| - SkDELETE(fBitmapFilter); |
| - } |
| typedef void (*ShaderProc32)(const SkBitmapProcState&, int x, int y, |
| SkPMColor[], int count); |
| @@ -65,7 +62,7 @@ struct SkBitmapProcState { |
| typedef U16CPU (*IntTileProc)(int value, int count); // returns 0..count-1 |
| const SkBitmap* fBitmap; // chooseProcs - orig or mip |
|
reed1
2013/07/12 18:33:24
orig or scaled
humper
2013/07/12 21:12:03
Done.
|
| - const SkMatrix* fInvMatrix; // chooseProcs |
| + SkMatrix fInvMatrix; // chooseProcs |
| SkMatrix::MapXYProc fInvProc; // chooseProcs |
| SkFractionalInt fInvSxFractionalInt; |
| @@ -86,7 +83,18 @@ struct SkBitmapProcState { |
| uint8_t fInvType; // chooseProcs |
| uint8_t fTileModeX; // CONSTRUCTOR |
| uint8_t fTileModeY; // CONSTRUCTOR |
| - SkBool8 fDoFilter; // chooseProcs |
| + |
| + enum { |
| + kNone_BitmapFilter, |
| + kBilerp_BitmapFilter, |
| + kHQ_BitmapFilter |
| + } fFilterQuality; // chooseProcs |
| + |
| + /** The shader will let us know when we can release some of our resources |
| + * like scaled bitmaps. |
| + */ |
| + |
| + void endContext(); |
| /** Platforms implement this, and can optionally overwrite only the |
| following fields: |
| @@ -140,18 +148,18 @@ private: |
| SampleProc32 fSampleProc32; // chooseProcs |
| SampleProc16 fSampleProc16; // chooseProcs |
| - SkMatrix fUnitInvMatrix; // chooseProcs |
| SkBitmap fOrigBitmap; // CONSTRUCTOR |
| - SkBitmap fMipBitmap; |
| + SkBitmap fScaledBitmap; // chooseProcs |
| MatrixProc chooseMatrixProc(bool trivial_matrix); |
| bool chooseProcs(const SkMatrix& inv, const SkPaint&); |
| ShaderProc32 chooseShaderProc32(); |
| + |
| + void possiblyScaleImage(); |
| - void buildFilterCoefficients(SkFixed dst[4], float t) const; |
| SkBitmapFilter *fBitmapFilter; |
| - ShaderProc32 chooseBitmapFilterProc(const SkPaint &paint); |
| + ShaderProc32 chooseBitmapFilterProc(); |
| // Return false if we failed to setup for fast translate (e.g. overflow) |
| bool setupForTranslate(); |