Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
third_party
skia
src
shaders
SkRuntimeShader.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 SkRuntimeShader_DEFINED
8
#define SkRuntimeShader_DEFINED
9
10
#include "
include/core/SkData.h
"
11
#include "
include/core/SkFlattenable.h
"
12
#include "
include/core/SkRefCnt.h
"
13
#include "
include/core/SkSpan.h
"
14
#include "
include/effects/SkRuntimeEffect.h
"
15
#include "
include/private/base/SkDebug.h
"
16
#include "
src/core/SkRuntimeEffectPriv.h
"
17
#include "
src/shaders/SkShaderBase.h
"
18
#include "
src/sksl/tracing/SkSLDebugTracePriv.h
"
19
20
#include <vector>
21
22
class
SkColorSpace
;
23
class
SkReadBuffer
;
24
class
SkWriteBuffer
;
25
struct
SkIPoint
;
26
struct
SkStageRec
;
27
28
using
UniformsCallback
=
SkRuntimeEffectPriv::UniformsCallback
;
29
30
class
SkRuntimeShader
:
public
SkShaderBase
{
31
public
:
32
SkRuntimeShader
(
sk_sp<SkRuntimeEffect>
effect
,
33
sk_sp<SkSL::DebugTracePriv>
debugTrace,
34
sk_sp<const SkData>
uniforms,
35
SkSpan<const SkRuntimeEffect::ChildPtr>
children
);
36
37
SkRuntimeShader
(
sk_sp<SkRuntimeEffect>
effect
,
38
sk_sp<SkSL::DebugTracePriv>
debugTrace,
39
UniformsCallback
uniformsCallback,
40
SkSpan<const SkRuntimeEffect::ChildPtr>
children
);
41
42
SkRuntimeEffect::TracedShader
makeTracedClone
(
const
SkIPoint
& coord);
43
44
bool
isOpaque
()
const override
{
return
fEffect->alwaysOpaque(); }
45
46
ShaderType
type
()
const override
{
return
ShaderType::kRuntime; }
47
48
bool
appendStages
(
const
SkStageRec
& rec,
const
SkShaders::MatrixRec
& mRec)
const override
;
49
50
void
flatten
(
SkWriteBuffer
&
buffer
)
const override
;
51
52
SkRuntimeEffect
*
asRuntimeEffect
()
const override
{
return
fEffect.
get
(); }
53
54
sk_sp<SkRuntimeEffect>
effect
()
const
{
return
fEffect; }
55
SkSpan<const SkRuntimeEffect::ChildPtr>
children
()
const
{
return
fChildren; }
56
57
sk_sp<const SkData>
uniformData
(
const
SkColorSpace
* dstCS)
const
;
58
59
SK_FLATTENABLE_HOOKS
(
SkRuntimeShader
)
60
61
private
:
62
enum
Flags
{
63
kHasLegacyLocalMatrix_Flag = 1 << 1,
64
};
65
66
sk_sp<SkRuntimeEffect>
fEffect;
67
sk_sp<SkSL::DebugTracePriv>
fDebugTrace;
68
sk_sp<const SkData>
fUniformData;
69
UniformsCallback
fUniformsCallback;
70
std::vector<SkRuntimeEffect::ChildPtr> fChildren;
71
};
72
73
#endif
Flags
Flags
Definition
HairlinePathBench.cpp:16
SkData.h
SkDebug.h
SkFlattenable.h
SK_FLATTENABLE_HOOKS
#define SK_FLATTENABLE_HOOKS(type)
Definition
SkFlattenable.h:108
SkRefCnt.h
SkRuntimeEffectPriv.h
SkRuntimeEffect.h
UniformsCallback
SkRuntimeEffectPriv::UniformsCallback UniformsCallback
Definition
SkRuntimeShader.h:28
SkSLDebugTracePriv.h
SkShaderBase.h
SkSpan.h
SkColorSpace
Definition
SkColorSpace.h:107
SkReadBuffer
Definition
SkReadBuffer.h:52
SkRuntimeEffectPriv::UniformsCallback
std::function< sk_sp< const SkData >(const UniformsCallbackContext &)> UniformsCallback
Definition
SkRuntimeEffectPriv.h:61
SkRuntimeEffect
Definition
SkRuntimeEffect.h:59
SkRuntimeShader
Definition
SkRuntimeShader.h:30
SkRuntimeShader::appendStages
bool appendStages(const SkStageRec &rec, const SkShaders::MatrixRec &mRec) const override
Definition
SkRuntimeShader.cpp:79
SkRuntimeShader::isOpaque
bool isOpaque() const override
Definition
SkRuntimeShader.h:44
SkRuntimeShader::makeTracedClone
SkRuntimeEffect::TracedShader makeTracedClone(const SkIPoint &coord)
Definition
SkRuntimeShader.cpp:70
SkRuntimeShader::children
SkSpan< const SkRuntimeEffect::ChildPtr > children() const
Definition
SkRuntimeShader.h:55
SkRuntimeShader::uniformData
sk_sp< const SkData > uniformData(const SkColorSpace *dstCS) const
Definition
SkRuntimeShader.cpp:109
SkRuntimeShader::flatten
void flatten(SkWriteBuffer &buffer) const override
Definition
SkRuntimeShader.cpp:103
SkRuntimeShader::effect
sk_sp< SkRuntimeEffect > effect() const
Definition
SkRuntimeShader.h:54
SkRuntimeShader::type
ShaderType type() const override
Definition
SkRuntimeShader.h:46
SkRuntimeShader::asRuntimeEffect
SkRuntimeEffect * asRuntimeEffect() const override
Definition
SkRuntimeShader.h:52
SkShaderBase
Definition
SkShaderBase.h:186
SkShaderBase::ShaderType
ShaderType
Definition
SkShaderBase.h:199
SkShaders::MatrixRec
Definition
SkShaderBase.h:57
SkSpan
Definition
SkSpan_impl.h:65
SkWriteBuffer
Definition
SkWriteBuffer.h:41
sk_sp
Definition
SkRefCnt.h:220
sk_sp::get
T * get() const
Definition
SkRefCnt.h:303
buffer
static const uint8_t buffer[]
Definition
fl_pixel_buffer_texture_test.cc:44
SkIPoint
Definition
SkPoint_impl.h:28
SkRuntimeEffect::TracedShader
Definition
SkRuntimeEffect.h:240
SkStageRec
Definition
SkEffectPriv.h:20
Generated on Fri Apr 26 2024 06:17:28 for Flutter Engine by
1.9.8