• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2025 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 
8 #ifndef PrecompileEffectFactories_DEFINED
9 #define PrecompileEffectFactories_DEFINED
10 
11 #include "include/core/SkRefCnt.h"
12 
13 class SkBlender;
14 class SkColorFilter;
15 class SkRuntimeEffect;
16 class SkShader;
17 
18 namespace skgpu::graphite {
19     class PrecompileBlender;
20     class PrecompileColorFilter;
21     class PrecompileShader;
22 }
23 
24 namespace skiatest::graphite {
25 
26 // These factory functions returns a normal-API/precompile-API pair that represent the same
27 // effect.
28 namespace PrecompileFactories {
29     using BlenderPair = std::pair<sk_sp<SkBlender>,
30                                   sk_sp<skgpu::graphite::PrecompileBlender>>;
31     using ColorFilterPair = std::pair<sk_sp<SkColorFilter>,
32                                       sk_sp<skgpu::graphite::PrecompileColorFilter>>;
33     using ShaderPair = std::pair<sk_sp<SkShader>,
34                                  sk_sp<skgpu::graphite::PrecompileShader>>;
35 
36     const char* GetAnnulusShaderCode();
37     SkRuntimeEffect* GetAnnulusShaderEffect();
38     ShaderPair CreateAnnulusRuntimeShader();
39 
40     SkRuntimeEffect* GetSrcBlenderEffect();
41     BlenderPair CreateSrcRuntimeBlender();
42     SkRuntimeEffect* GetDstBlenderEffect();
43     BlenderPair CreateDstRuntimeBlender();
44     SkRuntimeEffect* GetComboBlenderEffect();
45     BlenderPair CreateComboRuntimeBlender();
46 
47     SkRuntimeEffect* GetDoubleColorFilterEffect();
48     ColorFilterPair CreateDoubleRuntimeColorFilter();
49     SkRuntimeEffect* GetHalfColorFilterEffect();
50     ColorFilterPair CreateHalfRuntimeColorFilter();
51     SkRuntimeEffect* GetComboColorFilterEffect();
52     ColorFilterPair CreateComboRuntimeColorFilter();
53 
54 } // namespace PrecompileFactories
55 
56 } // namespace skiatest::graphite
57 
58 #endif // PrecompileEffectFactories_DEFINED
59