Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
SkWorkingFormatColorFilter.h
Go to the documentation of this file.
1/*
2 * Copyright 2023 Google LLC
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#ifndef SkWorkingFormatColorFilter_DEFINED
8#define SkWorkingFormatColorFilter_DEFINED
9
14#include "modules/skcms/skcms.h"
16
17class SkColorSpace;
18class SkReadBuffer;
19class SkWriteBuffer;
20enum SkAlphaType : int;
21struct SkStageRec;
22
24public:
26 const skcms_TransferFunction* tf,
27 const skcms_Matrix3x3* gamut,
28 const SkAlphaType* at);
29
31
32 SkColorFilterBase::Type type() const override {
33 return SkColorFilterBase::Type::kWorkingFormat;
34 }
35
36 bool appendStages(const SkStageRec& rec, bool shaderIsOpaque) const override;
37
39 SkColorSpace* rawDstCS) const override;
40
41 bool onIsAlphaUnchanged() const override;
42
43 sk_sp<SkColorFilter> child() const { return fChild; }
44
45private:
46 friend void ::SkRegisterWorkingFormatColorFilterFlattenable();
48
49 void flatten(SkWriteBuffer& buffer) const override;
50
53 bool fUseDstTF = true;
54 skcms_Matrix3x3 fGamut;
55 bool fUseDstGamut = true;
56 SkAlphaType fAT;
57 bool fUseDstAT = true;
58};
59
60#endif
SkAlphaType
Definition SkAlphaType.h:26
#define SK_FLATTENABLE_HOOKS(type)
Type::kYUV Type::kRGBA() int(0.7 *637)
void flatten(SkWriteBuffer &buffer) const override
SkPMColor4f onFilterColor4f(const SkPMColor4f &origColor, SkColorSpace *rawDstCS) const override
sk_sp< SkColorFilter > child() const
SkColorFilterBase::Type type() const override
bool appendStages(const SkStageRec &rec, bool shaderIsOpaque) const override
sk_sp< SkColorSpace > workingFormat(const sk_sp< SkColorSpace > &dstCS, SkAlphaType *at) const
static const uint8_t buffer[]