#include "include/core/SkBlendMode.h"
#include "include/core/SkCanvas.h"
#include "include/core/SkM44.h"
#include "include/core/SkMatrix.h"
#include "include/core/SkPaint.h"
#include "include/core/SkRect.h"
#include "include/core/SkRefCnt.h"
#include "include/core/SkScalar.h"
#include "include/core/SkShader.h"
#include "include/core/SkString.h"
#include "include/effects/SkRuntimeEffect.h"
#include "include/private/base/SkAssert.h"
#include "include/private/base/SkFloatingPoint.h"
#include "include/private/base/SkTPin.h"
#include "modules/skottie/src/Adapter.h"
#include "modules/skottie/src/SkottiePriv.h"
#include "modules/skottie/src/SkottieValue.h"
#include "modules/skottie/src/effects/Effects.h"
#include "modules/sksg/include/SkSGNode.h"
#include "modules/sksg/include/SkSGRenderNode.h"
#include "src/base/SkRandom.h"
#include <algorithm>
#include <array>
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <tuple>
#include <utility>
#include <vector>
struct SkPoint;
namespace skjson {
class ArrayValue;
}
namespace sksg {
class InvalidationController;
}
namespace skottie::internal {
namespace {
static constexpr char gNoiseEffectSkSL[] = …;
static constexpr char gFilterNearestSkSL[] = …;
static constexpr char gFilterLinearSkSL[] = …;
static constexpr char gFilterSoftLinearSkSL[] = …;
static constexpr char gFractalBasicSkSL[] = …;
static constexpr char gFractalTurbulentBasicSkSL[] = …;
static constexpr char gFractalTurbulentSmoothSkSL[] = …;
static constexpr char gFractalTurbulentSharpSkSL[] = …;
enum class NoiseFilter { … };
enum class NoiseFractal { … };
sk_sp<SkRuntimeEffect> make_noise_effect(unsigned loops, const char* filter, const char* fractal) { … }
sk_sp<SkRuntimeEffect> noise_effect(float octaves, NoiseFilter filter, NoiseFractal fractal) { … }
class FractalNoiseNode final : public sksg::CustomRenderNode { … };
class FractalNoiseAdapter final : public DiscardableAdapterBase<FractalNoiseAdapter,
FractalNoiseNode> { … };
}
sk_sp<sksg::RenderNode> EffectBuilder::attachFractalNoiseEffect(
const skjson::ArrayValue& jprops, sk_sp<sksg::RenderNode> layer) const { … }
}