/* * Copyright 2025 Google LLC * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef PrecompileEffectFactories_DEFINED #define PrecompileEffectFactories_DEFINED #include "include/core/SkRefCnt.h" class SkBlender; class SkColorFilter; class SkRuntimeEffect; class SkShader; namespace skgpu::graphite { class PrecompileBlender; class PrecompileColorFilter; class PrecompileShader; } namespace skiatest::graphite { // These factory functions returns a normal-API/precompile-API pair that represent the same // effect. namespace PrecompileFactories { using BlenderPair = std::pair, sk_sp>; using ColorFilterPair = std::pair, sk_sp>; using ShaderPair = std::pair, sk_sp>; const char* GetAnnulusShaderCode(); SkRuntimeEffect* GetAnnulusShaderEffect(); ShaderPair CreateAnnulusRuntimeShader(); SkRuntimeEffect* GetSrcBlenderEffect(); BlenderPair CreateSrcRuntimeBlender(); SkRuntimeEffect* GetDstBlenderEffect(); BlenderPair CreateDstRuntimeBlender(); SkRuntimeEffect* GetComboBlenderEffect(); BlenderPair CreateComboRuntimeBlender(); SkRuntimeEffect* GetDoubleColorFilterEffect(); ColorFilterPair CreateDoubleRuntimeColorFilter(); SkRuntimeEffect* GetHalfColorFilterEffect(); ColorFilterPair CreateHalfRuntimeColorFilter(); SkRuntimeEffect* GetComboColorFilterEffect(); ColorFilterPair CreateComboRuntimeColorFilter(); } // namespace PrecompileFactories } // namespace skiatest::graphite #endif // PrecompileEffectFactories_DEFINED