| Index: skia/sgl/SkColorFilter.cpp
|
| ===================================================================
|
| --- skia/sgl/SkColorFilter.cpp (revision 16859)
|
| +++ skia/sgl/SkColorFilter.cpp (working copy)
|
| @@ -1,108 +0,0 @@
|
| -/* libs/graphics/sgl/SkColorFilter.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 "SkColorFilter.h"
|
| -#include "SkShader.h"
|
| -
|
| -void SkColorFilter::filterSpan16(const uint16_t s[], int count, uint16_t d[])
|
| -{
|
| - SkASSERT(this->getFlags() & SkColorFilter::kHasFilter16_Flag);
|
| - SkASSERT(!"missing implementation of SkColorFilter::filterSpan16");
|
| -
|
| - if (d != s)
|
| - memcpy(d, s, count * sizeof(uint16_t));
|
| -}
|
| -
|
| -//////////////////////////////////////////////////////////////////////////////
|
| -
|
| -SkFilterShader::SkFilterShader(SkShader* shader, SkColorFilter* filter)
|
| -{
|
| - fShader = shader; shader->ref();
|
| - fFilter = filter; filter->ref();
|
| -}
|
| -
|
| -SkFilterShader::SkFilterShader(SkFlattenableReadBuffer& buffer) :
|
| - INHERITED(buffer)
|
| -{
|
| - fShader = static_cast<SkShader*>(buffer.readFlattenable());
|
| - fFilter = static_cast<SkColorFilter*>(buffer.readFlattenable());
|
| -}
|
| -
|
| -SkFilterShader::~SkFilterShader()
|
| -{
|
| - fFilter->unref();
|
| - fShader->unref();
|
| -}
|
| -
|
| -void SkFilterShader::beginSession()
|
| -{
|
| - this->INHERITED::beginSession();
|
| - fShader->beginSession();
|
| -}
|
| -
|
| -void SkFilterShader::endSession()
|
| -{
|
| - fShader->endSession();
|
| - this->INHERITED::endSession();
|
| -}
|
| -
|
| -void SkFilterShader::flatten(SkFlattenableWriteBuffer& buffer)
|
| -{
|
| - this->INHERITED::flatten(buffer);
|
| - buffer.writeFlattenable(fShader);
|
| - buffer.writeFlattenable(fFilter);
|
| -}
|
| -
|
| -uint32_t SkFilterShader::getFlags()
|
| -{
|
| - uint32_t shaderF = fShader->getFlags();
|
| - uint32_t filterF = fFilter->getFlags();
|
| -
|
| - // if the filter doesn't support 16bit, clear the matching bit in the shader
|
| - if (!(filterF & SkColorFilter::kHasFilter16_Flag))
|
| - shaderF &= ~SkShader::kHasSpan16_Flag;
|
| -
|
| - // if the filter might change alpha, clear the opaque flag in the shader
|
| - if (!(filterF & SkColorFilter::kAlphaUnchanged_Flag))
|
| - shaderF &= ~(SkShader::kOpaqueAlpha_Flag | SkShader::kHasSpan16_Flag);
|
| -
|
| - return shaderF;
|
| -}
|
| -
|
| -bool SkFilterShader::setContext(const SkBitmap& device,
|
| - const SkPaint& paint,
|
| - const SkMatrix& matrix)
|
| -{
|
| - return this->INHERITED::setContext(device, paint, matrix) &&
|
| - fShader->setContext(device, paint, matrix);
|
| -}
|
| -
|
| -void SkFilterShader::shadeSpan(int x, int y, SkPMColor result[], int count)
|
| -{
|
| - fShader->shadeSpan(x, y, result, count);
|
| - fFilter->filterSpan(result, count, result);
|
| -}
|
| -
|
| -void SkFilterShader::shadeSpan16(int x, int y, uint16_t result[], int count)
|
| -{
|
| - SkASSERT(fShader->getFlags() & SkShader::kHasSpan16_Flag);
|
| - SkASSERT(fFilter->getFlags() & SkColorFilter::kHasFilter16_Flag);
|
| -
|
| - fShader->shadeSpan16(x, y, result, count);
|
| - fFilter->filterSpan16(result, count, result);
|
| -}
|
| -
|
|
|