Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
SkWorkingColorSpaceShader.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 SkWorkingColorSpaceShader_DEFINED
8#define SkWorkingColorSpaceShader_DEFINED
9
16
17#include <utility>
18
19class SkReadBuffer;
20class SkWriteBuffer;
21struct SkStageRec;
22
24public:
26 : fShader(std::move(shader)), fWorkingSpace(std::move(workingSpace)) {
27 SkASSERT(fWorkingSpace);
28 }
29
30 ShaderType type() const override { return ShaderType::kWorkingColorSpace; }
31
32 sk_sp<SkShader> shader() const { return fShader; }
33 sk_sp<SkColorSpace> workingSpace() const { return fWorkingSpace; }
34
35private:
36 bool appendStages(const SkStageRec& rec, const SkShaders::MatrixRec&) const override;
37
38 friend void ::SkRegisterWorkingColorSpaceShaderFlattenable();
40
41 void flatten(SkWriteBuffer& buffer) const override;
42
43 sk_sp<SkShader> fShader;
44 sk_sp<SkColorSpace> fWorkingSpace;
45};
46
47#endif
#define SkASSERT(cond)
Definition SkAssert.h:116
#define SK_FLATTENABLE_HOOKS(type)
void flatten(SkWriteBuffer &buffer) const override
sk_sp< SkShader > shader() const
ShaderType type() const override
sk_sp< SkColorSpace > workingSpace() const
SkWorkingColorSpaceShader(sk_sp< SkShader > shader, sk_sp< SkColorSpace > workingSpace)
bool appendStages(const SkStageRec &rec, const SkShaders::MatrixRec &) const override
static const uint8_t buffer[]
Definition ref_ptr.h:256