chromium/third_party/skia/src/ports/fontations/src/skpath_bridge.h

// Copyright 2023 Google LLC
// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
#ifndef SkPathBridge_DEFINED
#define SkPathBridge_DEFINED

#include <cstddef>
#include <cstdint>

namespace fontations_ffi {

/** C++ pure virtual interface type, exposed to Rust side to be able to write
 * from Skrifa path output functions to an SkPath type to capture and convert a
 * glyph path. */
class PathWrapper {};

/** C++ pure virtual interface type, exposed to Rust side to be able to write
 * out variation design parameters to the caller-side allocated
 * SkFontParameters::Variation::Axis. A direct cast or mapping between a shared
 * C++/Rust struct and a Skia side struct is not possible because the
 * hidden-axis flag is private on SkFontParameters::Variation::Axis.  */
class AxisWrapper {};

struct ColorStop;
struct BridgeColorStops;
struct Transform;
struct FillLinearParams;
struct FillRadialParams;
struct FillSweepParams;

/** C++ pure virtual interface, exposed to Rust side for receiving COLRv0/COLRv1 drawing callback
 * matching Skrifa's ColorPainter trait. */
class ColorPainterWrapper {};

}  // namespace fontations_ffi

#endif