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

Unified Diff: skia/sgl/SkShader.cpp

Issue 113827: Remove the remainder of the skia source code from the Chromium repo.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « skia/sgl/SkScan_Path.cpp ('k') | skia/sgl/SkSpriteBlitter.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: skia/sgl/SkShader.cpp
===================================================================
--- skia/sgl/SkShader.cpp (revision 16859)
+++ skia/sgl/SkShader.cpp (working copy)
@@ -1,284 +0,0 @@
-/* libs/graphics/sgl/SkShader.cpp
-**
-** 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
-**
-** 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
-** limitations under the License.
-*/
-
-#include "SkShader.h"
-#include "SkPaint.h"
-
-SkShader::SkShader() : fLocalMatrix(NULL) {
- SkDEBUGCODE(fInSession = false;)
-}
-
-SkShader::SkShader(SkFlattenableReadBuffer& buffer)
- : INHERITED(buffer), fLocalMatrix(NULL) {
- if (buffer.readBool()) {
- SkMatrix matrix;
- buffer.read(&matrix, sizeof(matrix));
- setLocalMatrix(matrix);
- }
- SkDEBUGCODE(fInSession = false;)
-}
-
-SkShader::~SkShader() {
- SkASSERT(!fInSession);
- sk_free(fLocalMatrix);
-}
-
-void SkShader::beginSession() {
- SkASSERT(!fInSession);
- SkDEBUGCODE(fInSession = true;)
-}
-
-void SkShader::endSession() {
- SkASSERT(fInSession);
- SkDEBUGCODE(fInSession = false;)
-}
-
-void SkShader::flatten(SkFlattenableWriteBuffer& buffer) {
- this->INHERITED::flatten(buffer);
- buffer.writeBool(fLocalMatrix != NULL);
- if (fLocalMatrix) {
- buffer.writeMul4(fLocalMatrix, sizeof(SkMatrix));
- }
-}
-
-bool SkShader::getLocalMatrix(SkMatrix* localM) const {
- if (fLocalMatrix) {
- if (localM) {
- *localM = *fLocalMatrix;
- }
- return true;
- } else {
- if (localM) {
- localM->reset();
- }
- return false;
- }
-}
-
-void SkShader::setLocalMatrix(const SkMatrix& localM) {
- if (localM.isIdentity()) {
- this->resetLocalMatrix();
- } else {
- if (fLocalMatrix == NULL) {
- fLocalMatrix = (SkMatrix*)sk_malloc_throw(sizeof(SkMatrix));
- }
- *fLocalMatrix = localM;
- }
-}
-
-void SkShader::resetLocalMatrix() {
- if (fLocalMatrix) {
- sk_free(fLocalMatrix);
- fLocalMatrix = NULL;
- }
-}
-
-bool SkShader::setContext(const SkBitmap& device,
- const SkPaint& paint,
- const SkMatrix& matrix) {
- const SkMatrix* m = &matrix;
- SkMatrix total;
-
- fDeviceConfig = SkToU8(device.getConfig());
- fPaintAlpha = paint.getAlpha();
- if (fLocalMatrix) {
- total.setConcat(matrix, *fLocalMatrix);
- m = &total;
- }
- if (m->invert(&fTotalInverse)) {
- fTotalInverseClass = (uint8_t)ComputeMatrixClass(fTotalInverse);
- return true;
- }
- return false;
-}
-
-#include "SkColorPriv.h"
-
-void SkShader::shadeSpan16(int x, int y, uint16_t span16[], int count) {
- SkASSERT(span16);
- SkASSERT(count > 0);
- SkASSERT(this->canCallShadeSpan16());
-
- // basically, if we get here, the subclass screwed up
- SkASSERT(!"kHasSpan16 flag is set, but shadeSpan16() not implemented");
-}
-
-#define kTempColorQuadCount 6 // balance between speed (larger) and saving stack-space
-#define kTempColorCount (kTempColorQuadCount << 2)
-
-#ifdef SK_CPU_BENDIAN
- #define SkU32BitShiftToByteOffset(shift) (3 - ((shift) >> 3))
-#else
- #define SkU32BitShiftToByteOffset(shift) ((shift) >> 3)
-#endif
-
-void SkShader::shadeSpanAlpha(int x, int y, uint8_t alpha[], int count) {
- SkASSERT(count > 0);
-
- SkPMColor colors[kTempColorCount];
-
- while ((count -= kTempColorCount) >= 0) {
- this->shadeSpan(x, y, colors, kTempColorCount);
- x += kTempColorCount;
-
- const uint8_t* srcA = (const uint8_t*)colors + SkU32BitShiftToByteOffset(SK_A32_SHIFT);
- int quads = kTempColorQuadCount;
- do {
- U8CPU a0 = srcA[0];
- U8CPU a1 = srcA[4];
- U8CPU a2 = srcA[8];
- U8CPU a3 = srcA[12];
- srcA += 4*4;
- *alpha++ = SkToU8(a0);
- *alpha++ = SkToU8(a1);
- *alpha++ = SkToU8(a2);
- *alpha++ = SkToU8(a3);
- } while (--quads != 0);
- }
- SkASSERT(count < 0);
- SkASSERT(count + kTempColorCount >= 0);
- if (count += kTempColorCount) {
- this->shadeSpan(x, y, colors, count);
-
- const uint8_t* srcA = (const uint8_t*)colors + SkU32BitShiftToByteOffset(SK_A32_SHIFT);
- do {
- *alpha++ = *srcA;
- srcA += 4;
- } while (--count != 0);
- }
-#if 0
- do {
- int n = count;
- if (n > kTempColorCount)
- n = kTempColorCount;
- SkASSERT(n > 0);
-
- this->shadeSpan(x, y, colors, n);
- x += n;
- count -= n;
-
- const uint8_t* srcA = (const uint8_t*)colors + SkU32BitShiftToByteOffset(SK_A32_SHIFT);
- do {
- *alpha++ = *srcA;
- srcA += 4;
- } while (--n != 0);
- } while (count > 0);
-#endif
-}
-
-SkShader::MatrixClass SkShader::ComputeMatrixClass(const SkMatrix& mat) {
- MatrixClass mc = kLinear_MatrixClass;
-
- if (mat.getType() & SkMatrix::kPerspective_Mask) {
- if (mat.fixedStepInX(0, NULL, NULL)) {
- mc = kFixedStepInX_MatrixClass;
- } else {
- mc = kPerspective_MatrixClass;
- }
- }
- return mc;
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-bool SkShader::asABitmap(SkBitmap*, SkMatrix*, TileMode*) {
- return false;
-}
-
-SkShader* SkShader::CreateBitmapShader(const SkBitmap& src,
- TileMode tmx, TileMode tmy) {
- return SkShader::CreateBitmapShader(src, tmx, tmy, NULL, 0);
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-#include "SkColorShader.h"
-#include "SkUtils.h"
-
-SkColorShader::SkColorShader(SkFlattenableReadBuffer& b) : INHERITED(b) {
- fInheritColor = b.readU8();
- if (fInheritColor) {
- return;
- }
- fColor = b.readU32();
-}
-
-void SkColorShader::flatten(SkFlattenableWriteBuffer& buffer) {
- this->INHERITED::flatten(buffer);
- buffer.write8(fInheritColor);
- if (fInheritColor) {
- return;
- }
- buffer.write32(fColor);
-}
-
-uint32_t SkColorShader::getFlags() {
- return (SkGetPackedA32(fPMColor) == 255 ? kOpaqueAlpha_Flag : 0) |
- kHasSpan16_Flag;
-}
-
-uint8_t SkColorShader::getSpan16Alpha() const {
- return SkGetPackedA32(fPMColor);
-}
-
-bool SkColorShader::setContext(const SkBitmap& device, const SkPaint& paint,
- const SkMatrix& matrix) {
- if (!this->INHERITED::setContext(device, paint, matrix)) {
- return false;
- }
-
- SkColor c;
- unsigned a;
-
- if (fInheritColor) {
- c = paint.getColor();
- a = SkColorGetA(c);
- } else {
- c = fColor;
- a = SkAlphaMul(SkColorGetA(c), SkAlpha255To256(paint.getAlpha()));
- }
-
- unsigned r = SkColorGetR(c);
- unsigned g = SkColorGetG(c);
- unsigned b = SkColorGetB(c);
-
- // we want this before we apply any alpha
- fColor16 = SkPack888ToRGB16(r, g, b);
-
- if (a != 255) {
- a = SkAlpha255To256(a);
- r = SkAlphaMul(r, a);
- g = SkAlphaMul(g, a);
- b = SkAlphaMul(b, a);
- }
- fPMColor = SkPackARGB32(a, r, g, b);
-
- return true;
-}
-
-void SkColorShader::shadeSpan(int x, int y, SkPMColor span[], int count) {
- sk_memset32(span, fPMColor, count);
-}
-
-void SkColorShader::shadeSpan16(int x, int y, uint16_t span[], int count) {
- sk_memset16(span, fColor16, count);
-}
-
-void SkColorShader::shadeSpanAlpha(int x, int y, uint8_t alpha[], int count) {
- memset(alpha, SkGetPackedA32(fPMColor), count);
-}
-
« no previous file with comments | « skia/sgl/SkScan_Path.cpp ('k') | skia/sgl/SkSpriteBlitter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698