Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion include/c/sk_typeface.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,14 @@ typedef struct {
bool isHidden;
} sk_fontarguments_variation_axis_t;

typedef struct {
uint16_t index;
sk_color_t color;
} sk_fontarguments_palette_override_t;

SK_C_API int sk_typeface_get_variation_design_position(const sk_typeface_t* typeface, sk_fontarguments_variation_position_coordinate_t* coordinates, int coordinateCount);
SK_C_API int sk_typeface_get_variation_design_parameters(const sk_typeface_t* typeface, sk_fontarguments_variation_axis_t* parameters, int parameterCount);
SK_C_API sk_typeface_t* sk_typeface_clone_with_arguments(const sk_typeface_t* typeface, const sk_fontarguments_variation_position_coordinate_t* coordinates, int coordinateCount, int collectionIndex);
SK_C_API sk_typeface_t* sk_typeface_clone_with_arguments(const sk_typeface_t* typeface, const sk_fontarguments_variation_position_coordinate_t* coordinates, int coordinateCount, int collectionIndex, int paletteIndex, const sk_fontarguments_palette_override_t* paletteOverrides, int paletteOverrideCount);
Comment thread
mattleibow marked this conversation as resolved.


// font manager
Expand Down
1 change: 1 addition & 0 deletions src/c/sk_structs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ static_assert (sizeof (sk_runtimeeffect_uniform_t) == sizeof (SkRuntimeEffect::U
static_assert (sizeof (sk_runtimeeffect_child_t) == sizeof (SkRuntimeEffect::Child), ASSERT_MSG(SkRuntimeEffect::Child, sk_runtimeeffect_child_t));
static_assert (sizeof (sk_matrix44_t) == sizeof (SkM44), ASSERT_MSG(SkM44, sk_matrix44_t));
static_assert (sizeof (sk_fontarguments_variation_position_coordinate_t) == sizeof (SkFontArguments::VariationPosition::Coordinate), ASSERT_MSG(SkFontArguments::VariationPosition::Coordinate, sk_fontarguments_variation_position_coordinate_t));
static_assert (sizeof (sk_fontarguments_palette_override_t) == sizeof (SkFontArguments::Palette::Override), ASSERT_MSG(SkFontArguments::Palette::Override, sk_fontarguments_palette_override_t));

static_assert (sizeof (skottie_animation_builder_stats_t) == sizeof (skottie::Animation::Builder::Stats), ASSERT_MSG(skottie::Animation::Builder::Stats, skottie_animation_builder_stats_t));

Expand Down
4 changes: 2 additions & 2 deletions src/c/sk_typeface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -152,8 +152,8 @@ int sk_typeface_get_variation_design_parameters(const sk_typeface_t* typeface, s
return result;
}

sk_typeface_t* sk_typeface_clone_with_arguments(const sk_typeface_t* typeface, const sk_fontarguments_variation_position_coordinate_t* coordinates, int coordinateCount, int collectionIndex) {
auto args = AsSkFontArguments(coordinates, coordinateCount, collectionIndex);
sk_typeface_t* sk_typeface_clone_with_arguments(const sk_typeface_t* typeface, const sk_fontarguments_variation_position_coordinate_t* coordinates, int coordinateCount, int collectionIndex, int paletteIndex, const sk_fontarguments_palette_override_t* paletteOverrides, int paletteOverrideCount) {
auto args = AsSkFontArguments(coordinates, coordinateCount, collectionIndex, paletteIndex, paletteOverrides, paletteOverrideCount);
return ToTypeface(AsTypeface(typeface)->makeClone(args).release());
}

Expand Down
4 changes: 3 additions & 1 deletion src/c/sk_types_priv.h
Original file line number Diff line number Diff line change
Expand Up @@ -386,15 +386,17 @@ DEF_CLASS_MAP_WITH_NS(skresources, ExternalTrackAsset, skresources_external_trac
#include "include/core/SkFontParameters.h"

DEF_MAP(SkFontArguments::VariationPosition::Coordinate, sk_fontarguments_variation_position_coordinate_t, VariationPositionCoordinate)
DEF_MAP(SkFontArguments::Palette::Override, sk_fontarguments_palette_override_t, PaletteOverride)

static inline sk_fontarguments_variation_axis_t ToVariationAxis(const SkFontParameters::Variation::Axis& axis) {
return { axis.tag, axis.min, axis.def, axis.max, axis.isHidden() };
}

static inline SkFontArguments AsSkFontArguments(const sk_fontarguments_variation_position_coordinate_t* coordinates, int coordinateCount, int collectionIndex) {
static inline SkFontArguments AsSkFontArguments(const sk_fontarguments_variation_position_coordinate_t* coordinates, int coordinateCount, int collectionIndex, int paletteIndex, const sk_fontarguments_palette_override_t* paletteOverrides, int paletteOverrideCount) {
SkFontArguments args;
args.setCollectionIndex(collectionIndex);
args.setVariationDesignPosition({AsVariationPositionCoordinate(coordinates), coordinateCount});
args.setPalette({paletteIndex, AsPaletteOverride(paletteOverrides), paletteOverrideCount});
return args;
}

Expand Down
Loading