Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(16)

Side by Side Diff: src/core/SkBitmapProcState.h

Issue 507483002: retool image cache to be generic cache (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: rebase + add comment in unlock Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/core/SkBitmapCache.cpp ('k') | src/core/SkBitmapProcState.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2007 The Android Open Source Project 3 * Copyright 2007 The Android Open Source Project
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 9
10 #ifndef SkBitmapProcState_DEFINED 10 #ifndef SkBitmapProcState_DEFINED
11 #define SkBitmapProcState_DEFINED 11 #define SkBitmapProcState_DEFINED
12 12
13 #include "SkBitmap.h" 13 #include "SkBitmap.h"
14 #include "SkBitmapFilter.h" 14 #include "SkBitmapFilter.h"
15 #include "SkMatrix.h" 15 #include "SkMatrix.h"
16 #include "SkMipMap.h"
16 #include "SkPaint.h" 17 #include "SkPaint.h"
17 #include "SkScaledImageCache.h" 18 #include "SkScaledImageCache.h"
18 19
19 #define FractionalInt_IS_64BIT 20 #define FractionalInt_IS_64BIT
20 21
21 #ifdef FractionalInt_IS_64BIT 22 #ifdef FractionalInt_IS_64BIT
22 typedef SkFixed48 SkFractionalInt; 23 typedef SkFixed48 SkFractionalInt;
23 #define SkScalarToFractionalInt(x) SkScalarToFixed48(x) 24 #define SkScalarToFractionalInt(x) SkScalarToFixed48(x)
24 #define SkFractionalIntToFixed(x) SkFixed48ToFixed(x) 25 #define SkFractionalIntToFixed(x) SkFixed48ToFixed(x)
25 #define SkFixedToFractionalInt(x) SkFixedToFixed48(x) 26 #define SkFixedToFractionalInt(x) SkFixedToFixed48(x)
26 #define SkFractionalIntToInt(x) SkFixed48ToInt(x) 27 #define SkFractionalIntToInt(x) SkFixed48ToInt(x)
27 #else 28 #else
28 typedef SkFixed SkFractionalInt; 29 typedef SkFixed SkFractionalInt;
29 #define SkScalarToFractionalInt(x) SkScalarToFixed(x) 30 #define SkScalarToFractionalInt(x) SkScalarToFixed(x)
30 #define SkFractionalIntToFixed(x) (x) 31 #define SkFractionalIntToFixed(x) (x)
31 #define SkFixedToFractionalInt(x) (x) 32 #define SkFixedToFractionalInt(x) (x)
32 #define SkFractionalIntToInt(x) ((x) >> 16) 33 #define SkFractionalIntToInt(x) ((x) >> 16)
33 #endif 34 #endif
34 35
35 class SkPaint; 36 class SkPaint;
36 37
37 struct SkBitmapProcState { 38 struct SkBitmapProcState {
38 39
39 SkBitmapProcState(): fScaledCacheID(NULL), fBitmapFilter(NULL) {} 40 SkBitmapProcState() : fBitmapFilter(NULL) {}
40 ~SkBitmapProcState(); 41 ~SkBitmapProcState();
41 42
42 typedef void (*ShaderProc32)(const SkBitmapProcState&, int x, int y, 43 typedef void (*ShaderProc32)(const SkBitmapProcState&, int x, int y,
43 SkPMColor[], int count); 44 SkPMColor[], int count);
44 45
45 typedef void (*ShaderProc16)(const SkBitmapProcState&, int x, int y, 46 typedef void (*ShaderProc16)(const SkBitmapProcState&, int x, int y,
46 uint16_t[], int count); 47 uint16_t[], int count);
47 48
48 typedef void (*MatrixProc)(const SkBitmapProcState&, 49 typedef void (*MatrixProc)(const SkBitmapProcState&,
49 uint32_t bitmapXY[], 50 uint32_t bitmapXY[],
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 ShaderProc32 fShaderProc32; // chooseProcs 136 ShaderProc32 fShaderProc32; // chooseProcs
136 ShaderProc16 fShaderProc16; // chooseProcs 137 ShaderProc16 fShaderProc16; // chooseProcs
137 // These are used if the shaderproc is NULL 138 // These are used if the shaderproc is NULL
138 MatrixProc fMatrixProc; // chooseProcs 139 MatrixProc fMatrixProc; // chooseProcs
139 SampleProc32 fSampleProc32; // chooseProcs 140 SampleProc32 fSampleProc32; // chooseProcs
140 SampleProc16 fSampleProc16; // chooseProcs 141 SampleProc16 fSampleProc16; // chooseProcs
141 142
142 SkBitmap fOrigBitmap; // CONSTRUCTOR 143 SkBitmap fOrigBitmap; // CONSTRUCTOR
143 SkBitmap fScaledBitmap; // chooseProcs 144 SkBitmap fScaledBitmap; // chooseProcs
144 145
145 SkScaledImageCache::ID* fScaledCacheID; 146 SkAutoTUnref<const SkMipMap> fCurrMip;
147 // SkScaledImageCache::ID fScaledCacheID;
146 148
147 MatrixProc chooseMatrixProc(bool trivial_matrix); 149 MatrixProc chooseMatrixProc(bool trivial_matrix);
148 bool chooseProcs(const SkMatrix& inv, const SkPaint&); 150 bool chooseProcs(const SkMatrix& inv, const SkPaint&);
149 ShaderProc32 chooseShaderProc32(); 151 ShaderProc32 chooseShaderProc32();
150 152
151 // returns false if we did not try to scale the image. In that case, we 153 // returns false if we did not try to scale the image. In that case, we
152 // will need to "lock" its pixels some other way. 154 // will need to "lock" its pixels some other way.
153 bool possiblyScaleImage(); 155 bool possiblyScaleImage();
154 156
155 // returns false if we failed to "lock" the pixels at all. Typically this 157 // returns false if we failed to "lock" the pixels at all. Typically this
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 void S32_D16_filter_DX(const SkBitmapProcState& s, 218 void S32_D16_filter_DX(const SkBitmapProcState& s,
217 const uint32_t* xy, int count, uint16_t* colors); 219 const uint32_t* xy, int count, uint16_t* colors);
218 220
219 void highQualityFilter32(const SkBitmapProcState &s, int x, int y, 221 void highQualityFilter32(const SkBitmapProcState &s, int x, int y,
220 SkPMColor *SK_RESTRICT colors, int count); 222 SkPMColor *SK_RESTRICT colors, int count);
221 void highQualityFilter16(const SkBitmapProcState &s, int x, int y, 223 void highQualityFilter16(const SkBitmapProcState &s, int x, int y,
222 uint16_t *SK_RESTRICT colors, int count); 224 uint16_t *SK_RESTRICT colors, int count);
223 225
224 226
225 #endif 227 #endif
OLDNEW
« no previous file with comments | « src/core/SkBitmapCache.cpp ('k') | src/core/SkBitmapProcState.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698