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
2 changes: 0 additions & 2 deletions gn/core.gni
Original file line number Diff line number Diff line change
Expand Up @@ -913,8 +913,6 @@ skia_core_sources += [
"$_src/c/sk_surface.cpp",
"$_src/c/sk_svg.cpp",
"$_src/c/sk_textblob.cpp",
"$_src/c/sk_default_fontmgr.cpp",
"$_src/c/sk_default_fontmgr.h",
"$_src/c/sk_typeface.cpp",
"$_src/c/sk_types_priv.h",
"$_src/c/sk_vertices.cpp",
Expand Down
1 change: 0 additions & 1 deletion include/c/sk_font.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ SK_C_PLUS_PLUS_BEGIN_GUARD

// sk_font_t

SK_C_API sk_font_t* sk_font_new(void);
SK_C_API sk_font_t* sk_font_new_with_values(sk_typeface_t* typeface, float size, float scaleX, float skewX);
SK_C_API void sk_font_delete(sk_font_t* font);
SK_C_API bool sk_font_is_force_auto_hinting(const sk_font_t* font);
Expand Down
8 changes: 1 addition & 7 deletions include/c/sk_typeface.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,7 @@ SK_C_API int sk_typeface_get_font_weight(const sk_typeface_t* typeface);
SK_C_API int sk_typeface_get_font_width(const sk_typeface_t* typeface);
SK_C_API sk_font_style_slant_t sk_typeface_get_font_slant(const sk_typeface_t* typeface);
SK_C_API bool sk_typeface_is_fixed_pitch(const sk_typeface_t* typeface);
SK_C_API sk_typeface_t* sk_typeface_create_default(void);
SK_C_API sk_typeface_t* sk_typeface_ref_default(void);
SK_C_API sk_typeface_t* sk_typeface_create_from_name(const char* familyName, const sk_fontstyle_t* style);
SK_C_API sk_typeface_t* sk_typeface_create_from_file(const char* path, int index);
SK_C_API sk_typeface_t* sk_typeface_create_from_stream(sk_stream_asset_t* stream, int index);
SK_C_API sk_typeface_t* sk_typeface_create_from_data(sk_data_t* data, int index);
SK_C_API sk_typeface_t* sk_typeface_create_empty(void);
SK_C_API void sk_typeface_unichars_to_glyphs(const sk_typeface_t* typeface, const int32_t unichars[], int count, uint16_t glyphs[]);
SK_C_API uint16_t sk_typeface_unichar_to_glyph(const sk_typeface_t* typeface, const int32_t unichar);
SK_C_API int sk_typeface_count_glyphs(const sk_typeface_t* typeface);
Expand All @@ -47,7 +42,6 @@ SK_C_API sk_stream_asset_t* sk_typeface_open_stream(const sk_typeface_t* typefac
// font manager

SK_C_API sk_fontmgr_t* sk_fontmgr_create_default(void);
SK_C_API sk_fontmgr_t* sk_fontmgr_ref_default(void);
SK_C_API void sk_fontmgr_unref(sk_fontmgr_t*);
SK_C_API int sk_fontmgr_count_families(sk_fontmgr_t*);
SK_C_API void sk_fontmgr_get_family_name(sk_fontmgr_t*, int index, sk_string_t* familyName);
Expand Down
3 changes: 1 addition & 2 deletions include/xamarin/SkCompatPaint.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,12 @@ enum class SkFilterQuality

class SkCompatPaint : public SkPaint {
public:
SkCompatPaint();
SkCompatPaint(const SkCompatPaint& paint);
SkCompatPaint(const SkFont* font);
~SkCompatPaint();

public:
void reset();
void reset(const SkFont* font);

SkFont* makeFont();

Expand Down
3 changes: 1 addition & 2 deletions include/xamarin/sk_compatpaint.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,10 @@ SK_C_PLUS_PLUS_BEGIN_GUARD

typedef struct sk_compatpaint_t sk_compatpaint_t;

SK_X_API sk_compatpaint_t* sk_compatpaint_new(void);
SK_X_API sk_compatpaint_t* sk_compatpaint_new_with_font(const sk_font_t* font);
SK_X_API void sk_compatpaint_delete(sk_compatpaint_t* paint);
SK_X_API sk_compatpaint_t* sk_compatpaint_clone(const sk_compatpaint_t* paint);
SK_X_API void sk_compatpaint_reset(sk_compatpaint_t* paint);
SK_X_API void sk_compatpaint_reset(sk_compatpaint_t* paint, const sk_font_t* font);
SK_X_API sk_font_t* sk_compatpaint_make_font(sk_compatpaint_t* paint);
SK_X_API sk_font_t* sk_compatpaint_get_font(sk_compatpaint_t* paint);
SK_X_API void sk_compatpaint_set_text_align(sk_compatpaint_t* paint, sk_text_align_t align);
Expand Down
52 changes: 0 additions & 52 deletions src/c/sk_default_fontmgr.cpp

This file was deleted.

27 changes: 0 additions & 27 deletions src/c/sk_default_fontmgr.h

This file was deleted.

10 changes: 1 addition & 9 deletions src/c/sk_font.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,11 @@
#include "include/c/sk_font.h"

#include "src/c/sk_types_priv.h"
#include "src/c/sk_default_fontmgr.h"

// sk_font_t

sk_font_t* sk_font_new(void) {
return ToFont(new SkFont(sk_get_default_typeface()));
}

sk_font_t* sk_font_new_with_values(sk_typeface_t* typeface, float size, float scaleX, float skewX) {
sk_sp<SkTypeface> tf = typeface
? sk_ref_sp(AsTypeface(typeface))
: sk_get_default_typeface();
return ToFont(new SkFont(std::move(tf), size, scaleX, skewX));
return ToFont(new SkFont(sk_ref_sp(AsTypeface(typeface)), size, scaleX, skewX));
}

void sk_font_delete(sk_font_t* font) {
Expand Down
67 changes: 34 additions & 33 deletions src/c/sk_typeface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,28 @@

#include <memory>

// Platform-specific font manager includes (m132: SkFontMgr::MakeDefault removed)
#if defined(__EMSCRIPTEN__)
#include "include/ports/SkFontMgr_data.h"
struct SkEmbeddedResource { const uint8_t* data; size_t size; };
struct SkEmbeddedResourceHeader { const SkEmbeddedResource* entries; int count; };
extern "C" const SkEmbeddedResourceHeader SK_EMBEDDED_FONTS;
extern sk_sp<SkFontMgr> SkFontMgr_New_Custom_Embedded(const SkEmbeddedResourceHeader*);
#elif defined(SK_BUILD_FOR_ANDROID)
#include "include/ports/SkFontMgr_android.h"
#elif defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
#include "include/ports/SkFontMgr_mac_ct.h"
#elif defined(SK_BUILD_FOR_WIN)
#include "include/ports/SkTypeface_win.h"
#elif defined(SK_FONTMGR_FONTCONFIG_AVAILABLE)
#include "include/ports/SkFontMgr_fontconfig.h"
#else
#include "include/ports/SkFontMgr_empty.h"
#endif

#include "include/c/sk_typeface.h"

#include "src/c/sk_types_priv.h"
#include "src/c/sk_default_fontmgr.h"

// typeface

Expand Down Expand Up @@ -46,32 +64,8 @@ bool sk_typeface_is_fixed_pitch(const sk_typeface_t* typeface) {
return AsTypeface(typeface)->isFixedPitch();
}

sk_typeface_t* sk_typeface_create_default(void) {
return ToTypeface(sk_get_default_typeface().release());
}

sk_typeface_t* sk_typeface_ref_default(void) {
// Cache a default typeface to preserve the singleton behavior of the old RefDefault()
static sk_sp<SkTypeface> defaultTf = sk_get_default_typeface();
defaultTf->ref();
return ToTypeface(defaultTf.get());
}

sk_typeface_t* sk_typeface_create_from_name(const char* familyName, const sk_fontstyle_t* style) {
return ToTypeface(sk_get_default_fontmgr()->legacyMakeTypeface(familyName, *AsFontStyle(style)).release());
}

sk_typeface_t* sk_typeface_create_from_file(const char* path, int index) {
return ToTypeface(sk_get_default_fontmgr()->makeFromFile(path, index).release());
}

sk_typeface_t* sk_typeface_create_from_stream(sk_stream_asset_t* stream, int index) {
std::unique_ptr<SkStreamAsset> skstream(AsStreamAsset(stream));
return ToTypeface(sk_get_default_fontmgr()->makeFromStream(std::move(skstream), index).release());
}

sk_typeface_t* sk_typeface_create_from_data(sk_data_t* data, int index) {
return ToTypeface(sk_get_default_fontmgr()->makeFromData(sk_ref_sp(AsData(data)), index).release());
sk_typeface_t* sk_typeface_create_empty(void) {
return ToTypeface(SkTypeface::MakeEmpty().release());
}

void sk_typeface_unichars_to_glyphs(const sk_typeface_t* typeface, const int32_t unichars[], int count, uint16_t glyphs[]) {
Expand Down Expand Up @@ -134,12 +128,19 @@ sk_stream_asset_t* sk_typeface_open_stream(const sk_typeface_t* typeface, int* t
// font manager

sk_fontmgr_t* sk_fontmgr_create_default(void) {
return ToFontMgr(sk_create_default_fontmgr().release());
}

sk_fontmgr_t* sk_fontmgr_ref_default(void) {
sk_sp<SkFontMgr> mgr = sk_get_default_fontmgr();
return ToFontMgr(mgr.release());
#if defined(__EMSCRIPTEN__)
return ToFontMgr(SkFontMgr_New_Custom_Embedded(&SK_EMBEDDED_FONTS).release());
#elif defined(SK_BUILD_FOR_ANDROID)
return ToFontMgr(SkFontMgr_New_Android(nullptr).release());
#elif defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
return ToFontMgr(SkFontMgr_New_CoreText(nullptr).release());
#elif defined(SK_BUILD_FOR_WIN)
return ToFontMgr(SkFontMgr_New_DirectWrite().release());
#elif defined(SK_FONTMGR_FONTCONFIG_AVAILABLE)
return ToFontMgr(SkFontMgr_New_FontConfig(nullptr).release());
#else
return ToFontMgr(SkFontMgr_New_Custom_Empty().release());
#endif
}

void sk_fontmgr_unref(sk_fontmgr_t* fontmgr) {
Expand Down
16 changes: 2 additions & 14 deletions src/xamarin/SkCompatPaint.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,6 @@
#include "include/core/SkFont.h"
#include "include/utils/SkTextUtils.h"
#include "include/xamarin/SkCompatPaint.h"
#include "src/c/sk_default_fontmgr.h"

SkCompatPaint::SkCompatPaint()
: fFont(SkFont(sk_get_default_typeface()))
, fTextAlign(SkTextUtils::Align::kLeft_Align)
, fTextEncoding(SkTextEncoding::kUTF8)
, fFilterQuality(SkFilterQuality::None)
, fLcdRenderText(false)
{
fFont.setLinearMetrics(true);
fFont.setEdging(SkFont::Edging::kAlias);
}

SkCompatPaint::SkCompatPaint(const SkCompatPaint& paint) = default;

Expand All @@ -37,8 +25,8 @@ SkCompatPaint::SkCompatPaint(const SkFont* font)

SkCompatPaint::~SkCompatPaint() = default;

void SkCompatPaint::reset() {
*this = SkCompatPaint();
void SkCompatPaint::reset(const SkFont* font) {
*this = SkCompatPaint(font);
}

SkFont* SkCompatPaint::makeFont() {
Expand Down
4 changes: 2 additions & 2 deletions src/xamarin/SkiaKeeper.c
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ void** KeepSkiaCSymbols (void)
(void*)sk_data_new_empty,
(void*)sk_document_unref,
(void*)sk_drawable_unref,
(void*)sk_font_new,
(void*)sk_font_new_with_values,
(void*)sk_image_ref,
(void*)sk_imagefilter_unref,
(void*)sk_maskfilter_ref,
Expand Down Expand Up @@ -103,7 +103,7 @@ void** KeepSkiaCSymbols (void)
(void*)skresources_resource_provider_ref,

// Xamarin
(void*)sk_compatpaint_new,
(void*)sk_compatpaint_new_with_font,
(void*)sk_managedstream_new,
(void*)sk_manageddrawable_new,
(void*)sk_managedtracememorydump_new,
Expand Down
8 changes: 2 additions & 6 deletions src/xamarin/sk_compatpaint.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,6 @@ static inline sk_compatpaint_t* ToCompatPaint(SkCompatPaint* c) {
}


sk_compatpaint_t* sk_compatpaint_new(void) {
return ToCompatPaint(new SkCompatPaint());
}

sk_compatpaint_t* sk_compatpaint_new_with_font(const sk_font_t* font) {
return ToCompatPaint(new SkCompatPaint(AsFont(font)));
}
Expand All @@ -39,8 +35,8 @@ sk_compatpaint_t* sk_compatpaint_clone(const sk_compatpaint_t* paint) {
return ToCompatPaint(new SkCompatPaint(*AsCompatPaint(paint)));
}

void sk_compatpaint_reset(sk_compatpaint_t* paint) {
AsCompatPaint(paint)->reset();
void sk_compatpaint_reset(sk_compatpaint_t* paint, const sk_font_t* font) {
AsCompatPaint(paint)->reset(AsFont(font));
}

sk_font_t* sk_compatpaint_make_font(sk_compatpaint_t* paint) {
Expand Down
Loading