2 * Copyright 2007 The Android Open Source Project
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
8 #ifndef SkColorMatrixFilter_DEFINED
9 #define SkColorMatrixFilter_DEFINED
11 #include "SkColorFilter.h"
12 #include "SkColorMatrix.h"
14 class SK_API SkColorMatrixFilter : public SkColorFilter {
16 explicit SkColorMatrixFilter(const SkColorMatrix&);
17 SkColorMatrixFilter(const SkScalar array[20]);
19 // overrides from SkColorFilter
20 virtual void filterSpan(const SkPMColor src[], int count, SkPMColor[]) const SK_OVERRIDE;
21 virtual void filterSpan16(const uint16_t src[], int count, uint16_t[]) const SK_OVERRIDE;
22 virtual uint32_t getFlags() const SK_OVERRIDE;
23 virtual bool asColorMatrix(SkScalar matrix[20]) const SK_OVERRIDE;
25 virtual GrEffectRef* asNewEffect(GrContext*) const SK_OVERRIDE;
33 SkDEVCODE(virtual void toString(SkString* str) const SK_OVERRIDE;)
35 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkColorMatrixFilter)
38 SkColorMatrixFilter(SkReadBuffer& buffer);
39 virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE;
42 SkColorMatrix fMatrix;
44 typedef void (*Proc)(const State&, unsigned r, unsigned g, unsigned b,
45 unsigned a, int32_t result[4]);
51 void initState(const SkScalar array[20]);
53 typedef SkColorFilter INHERITED;