blob: 7d45447f4d69b3c702f6831e962725c5d25f27ff [file] [log] [blame]
/*
* 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<SkBlender>,
sk_sp<skgpu::graphite::PrecompileBlender>>;
using ColorFilterPair = std::pair<sk_sp<SkColorFilter>,
sk_sp<skgpu::graphite::PrecompileColorFilter>>;
using ShaderPair = std::pair<sk_sp<SkShader>,
sk_sp<skgpu::graphite::PrecompileShader>>;
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