diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core/SkBitmapProcShader.cpp | 20 | ||||
-rw-r--r-- | src/core/SkBitmapProcShader.h | 24 | ||||
-rw-r--r-- | src/core/SkShader.cpp | 24 | ||||
-rw-r--r-- | src/effects/SkGradientShader.cpp | 31 |
4 files changed, 49 insertions, 50 deletions
diff --git a/src/core/SkBitmapProcShader.cpp b/src/core/SkBitmapProcShader.cpp index 1eaa46d4d9..a16e96a03b 100644 --- a/src/core/SkBitmapProcShader.cpp +++ b/src/core/SkBitmapProcShader.cpp @@ -44,10 +44,10 @@ void SkBitmapProcShader::endSession() { this->INHERITED::endSession(); } -SkShader::BitmapType SkBitmapProcShader::asABitmap(SkBitmap* texture, - SkMatrix* texM, +SkShader::BitmapType SkBitmapProcShader::asABitmap(SkBitmap* texture, + SkMatrix* texM, TileMode xy[], - SkScalar* twoPointRadialParams) { + SkScalar* twoPointRadialParams) const { if (texture) { *texture = fRawBitmap; } @@ -95,7 +95,7 @@ bool SkBitmapProcShader::setContext(const SkBitmap& device, const SkBitmap& bitmap = *fState.fBitmap; bool bitmapIsOpaque = bitmap.isOpaque(); - + // update fFlags uint32_t flags = 0; if (bitmapIsOpaque && (255 == this->getPaintAlpha())) { @@ -182,7 +182,7 @@ void SkBitmapProcShader::shadeSpan(int x, int y, SkPMColor dstC[], int count) { } #endif sproc(state, buffer, n, dstC); - + if ((count -= n) == 0) { break; } @@ -198,7 +198,7 @@ void SkBitmapProcShader::shadeSpan16(int x, int y, uint16_t dstC[], int count) { state.fShaderProc16(state, x, y, dstC, count); return; } - + uint32_t buffer[BUF_MAX]; SkBitmapProcState::MatrixProc mproc = state.fMatrixProc; SkBitmapProcState::SampleProc16 sproc = state.fSampleProc16; @@ -215,7 +215,7 @@ void SkBitmapProcShader::shadeSpan16(int x, int y, uint16_t dstC[], int count) { } mproc(state, buffer, n, x, y); sproc(state, buffer, n, dstC); - + if ((count -= n) == 0) { break; } @@ -287,7 +287,7 @@ bool SkBitmapProcShader::toDumpString(SkString* str) const { str->printf("BitmapShader: [%d %d %d", fRawBitmap.width(), fRawBitmap.height(), fRawBitmap.bytesPerPixel()); - + // add the pixelref SkPixelRef* pr = fRawBitmap.pixelRef(); if (pr) { @@ -296,7 +296,7 @@ bool SkBitmapProcShader::toDumpString(SkString* str) const { str->appendf(" \"%s\"", uri); } } - + // add the (optional) matrix { SkMatrix m; @@ -306,7 +306,7 @@ bool SkBitmapProcShader::toDumpString(SkString* str) const { str->appendf(" %s", info.c_str()); } } - + str->appendf(" [%s %s]]", gTileModeName[fState.fTileModeX], gTileModeName[fState.fTileModeY]); diff --git a/src/core/SkBitmapProcShader.h b/src/core/SkBitmapProcShader.h index 88598fc1fb..bd19b751d9 100644 --- a/src/core/SkBitmapProcShader.h +++ b/src/core/SkBitmapProcShader.h @@ -2,16 +2,16 @@ ** ** Copyright 2006, The Android Open Source Project ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at ** -** http://www.apache.org/licenses/LICENSE-2.0 +** http://www.apache.org/licenses/LICENSE-2.0 ** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and ** limitations under the License. */ @@ -32,12 +32,12 @@ public: virtual void shadeSpan16(int x, int y, uint16_t dstC[], int count); virtual void beginSession(); virtual void endSession(); - virtual BitmapType asABitmap(SkBitmap*, SkMatrix*, TileMode*, - SkScalar* twoPointRadialParams); + virtual BitmapType asABitmap(SkBitmap*, SkMatrix*, TileMode*, + SkScalar* twoPointRadialParams) const; static bool CanDo(const SkBitmap&, TileMode tx, TileMode ty); - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { + static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { return SkNEW_ARGS(SkBitmapProcShader, (buffer)); } @@ -53,7 +53,7 @@ protected: SkBitmapProcState fState; uint32_t fFlags; -private: +private: typedef SkShader INHERITED; }; diff --git a/src/core/SkShader.cpp b/src/core/SkShader.cpp index 6798bec888..015389ebd1 100644 --- a/src/core/SkShader.cpp +++ b/src/core/SkShader.cpp @@ -2,16 +2,16 @@ ** ** Copyright 2006, The Android Open Source Project ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at ** -** http://www.apache.org/licenses/LICENSE-2.0 +** http://www.apache.org/licenses/LICENSE-2.0 ** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and ** limitations under the License. */ @@ -120,7 +120,7 @@ void SkShader::shadeSpan16(int x, int y, uint16_t span16[], int count) { } #define kTempColorQuadCount 6 // balance between speed (larger) and saving stack-space -#define kTempColorCount (kTempColorQuadCount << 2) +#define kTempColorCount (kTempColorQuadCount << 2) #ifdef SK_CPU_BENDIAN #define SkU32BitShiftToByteOffset(shift) (3 - ((shift) >> 3)) @@ -198,7 +198,7 @@ SkShader::MatrixClass SkShader::ComputeMatrixClass(const SkMatrix& mat) { ////////////////////////////////////////////////////////////////////////////// SkShader::BitmapType SkShader::asABitmap(SkBitmap*, SkMatrix*, - TileMode*, SkScalar*) { + TileMode*, SkScalar*) const { return kNone_BitmapType; } @@ -311,7 +311,7 @@ void SkColorShader::shadeSpanAlpha(int x, int y, uint8_t alpha[], int count) { // if we had a asAColor method, that would be more efficient... SkShader::BitmapType SkColorShader::asABitmap(SkBitmap* bitmap, SkMatrix* matrix, - TileMode modes[], + TileMode modes[], SkScalar* twoPointRadialParams) { // we cache the pixelref, since its generateID is used in the texture cache if (NULL == fAsABitmapPixelRef) { @@ -320,7 +320,7 @@ SkShader::BitmapType SkColorShader::asABitmap(SkBitmap* bitmap, SkMatrix* matrix fAsABitmapPixelRef = new SkMallocPixelRef(storage, sizeof(SkPMColor), NULL); } - + if (bitmap) { bitmap->setConfig(SkBitmap::kARGB_8888_Config, 1, 1); bitmap->setPixelRef(fAsABitmapPixelRef); diff --git a/src/effects/SkGradientShader.cpp b/src/effects/SkGradientShader.cpp index 41b97cc4c3..34522122ab 100644 --- a/src/effects/SkGradientShader.cpp +++ b/src/effects/SkGradientShader.cpp @@ -123,12 +123,10 @@ protected: kCache32Count = 1 << kCache32Bits }; virtual void flatten(SkFlattenableWriteBuffer& ); - const uint16_t* getCache16(); - const SkPMColor* getCache32(); + const uint16_t* getCache16() const; + const SkPMColor* getCache32() const; - SkMallocPixelRef* fCache32PixelRef; - - void commonAsABitmap(SkBitmap*); + void commonAsABitmap(SkBitmap*) const; void commonAsAGradient(GradientInfo*) const; private: @@ -140,10 +138,11 @@ private: SkColor fStorage[(kStorageSize + 3) >> 2]; SkColor* fOrigColors; - uint16_t* fCache16; // working ptr. If this is NULL, we need to recompute the cache values - SkPMColor* fCache32; // working ptr. If this is NULL, we need to recompute the cache values + mutable uint16_t* fCache16; // working ptr. If this is NULL, we need to recompute the cache values + mutable SkPMColor* fCache32; // working ptr. If this is NULL, we need to recompute the cache values - uint16_t* fCache16Storage; // storage for fCache16, allocated on demand + mutable uint16_t* fCache16Storage; // storage for fCache16, allocated on demand + mutable SkMallocPixelRef* fCache32PixelRef; unsigned fCacheAlpha; // the alpha value we used when we computed the cache. larger than 8bits so we can store uninitialized value static void Build16bitCache(uint16_t[], SkColor c0, SkColor c1, int count); @@ -536,7 +535,7 @@ static inline U16CPU bitsTo16(unsigned x, const unsigned bits) { return 0; } -const uint16_t* Gradient_Shader::getCache16() { +const uint16_t* Gradient_Shader::getCache16() const { if (fCache16 == NULL) { // double the count for dither entries const int entryCount = kCache16Count * 2; @@ -579,7 +578,7 @@ const uint16_t* Gradient_Shader::getCache16() { return fCache16; } -const SkPMColor* Gradient_Shader::getCache32() { +const SkPMColor* Gradient_Shader::getCache32() const { if (fCache32 == NULL) { // double the count for dither entries const int entryCount = kCache32Count * 2; @@ -636,7 +635,7 @@ const SkPMColor* Gradient_Shader::getCache32() { * colors and positions. Note: we don't try to flatten the fMapper, so if one * is present, we skip the cache for now. */ -void Gradient_Shader::commonAsABitmap(SkBitmap* bitmap) { +void Gradient_Shader::commonAsABitmap(SkBitmap* bitmap) const { // don't have a way to put the mapper into our cache-key yet if (fMapper) { // force our cahce32pixelref to be built @@ -741,7 +740,7 @@ public: virtual void shadeSpan(int x, int y, SkPMColor dstC[], int count); virtual void shadeSpan16(int x, int y, uint16_t dstC[], int count); virtual BitmapType asABitmap(SkBitmap*, SkMatrix*, - TileMode*, SkScalar* twoPointRadialParams); + TileMode*, SkScalar* twoPointRadialParams) const; virtual GradientType asAGradient(GradientInfo* info) const; static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { @@ -875,7 +874,7 @@ void Linear_Gradient::shadeSpan(int x, int y, SkPMColor dstC[], int count) SkShader::BitmapType Linear_Gradient::asABitmap(SkBitmap* bitmap, SkMatrix* matrix, TileMode xy[], - SkScalar* twoPointRadialParams) { + SkScalar* twoPointRadialParams) const { if (bitmap) { this->commonAsABitmap(bitmap); } @@ -1236,7 +1235,7 @@ public: virtual BitmapType asABitmap(SkBitmap* bitmap, SkMatrix* matrix, TileMode* xy, - SkScalar* twoPointRadialParams) { + SkScalar* twoPointRadialParams) const { if (bitmap) { this->commonAsABitmap(bitmap); } @@ -1388,7 +1387,7 @@ public: virtual BitmapType asABitmap(SkBitmap* bitmap, SkMatrix* matrix, TileMode* xy, - SkScalar* twoPointRadialParams) { + SkScalar* twoPointRadialParams) const { if (bitmap) { this->commonAsABitmap(bitmap); } @@ -1604,7 +1603,7 @@ public: virtual BitmapType asABitmap(SkBitmap* bitmap, SkMatrix* matrix, TileMode* xy, - SkScalar* twoPointRadialParams) { + SkScalar* twoPointRadialParams) const { if (bitmap) { this->commonAsABitmap(bitmap); } |