1/*
2 * Copyright 2006 The Android Open Source Project
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#include "SkColorFilter.h"
9
10#include "SkFlattenableBuffers.h"
11#include "SkShader.h"
12#include "SkUnPreMultiply.h"
13#include "SkString.h"
14
15SK_DEFINE_INST_COUNT(SkColorFilter)
16
17bool SkColorFilter::asColorMode(SkColor* color, SkXfermode::Mode* mode) const {
18    return false;
19}
20
21bool SkColorFilter::asColorMatrix(SkScalar matrix[20]) const {
22    return false;
23}
24
25bool SkColorFilter::asComponentTable(SkBitmap*) const {
26    return false;
27}
28
29void SkColorFilter::filterSpan16(const uint16_t s[], int count, uint16_t d[]) const {
30    SkASSERT(this->getFlags() & SkColorFilter::kHasFilter16_Flag);
31    SkDEBUGFAIL("missing implementation of SkColorFilter::filterSpan16");
32
33    if (d != s) {
34        memcpy(d, s, count * sizeof(uint16_t));
35    }
36}
37
38SkColor SkColorFilter::filterColor(SkColor c) const {
39    SkPMColor dst, src = SkPreMultiplyColor(c);
40    this->filterSpan(&src, 1, &dst);
41    return SkUnPreMultiply::PMColorToColor(dst);
42}
43
44GrEffectRef* SkColorFilter::asNewEffect(GrContext*) const {
45    return NULL;
46}
47