godot/modules/text_server_adv/text_server_adv.cpp

/**************************************************************************/
/*  text_server_adv.cpp                                                   */
/**************************************************************************/
/*                         This file is part of:                          */
/*                             GODOT ENGINE                               */
/*                        https://godotengine.org                         */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur.                  */
/*                                                                        */
/* Permission is hereby granted, free of charge, to any person obtaining  */
/* a copy of this software and associated documentation files (the        */
/* "Software"), to deal in the Software without restriction, including    */
/* without limitation the rights to use, copy, modify, merge, publish,    */
/* distribute, sublicense, and/or sell copies of the Software, and to     */
/* permit persons to whom the Software is furnished to do so, subject to  */
/* the following conditions:                                              */
/*                                                                        */
/* The above copyright notice and this permission notice shall be         */
/* included in all copies or substantial portions of the Software.        */
/*                                                                        */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,        */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF     */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY   */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,   */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE      */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                 */
/**************************************************************************/

#include "text_server_adv.h"

#ifdef GDEXTENSION
// Headers for building as GDExtension plug-in.

#include <godot_cpp/classes/file_access.hpp>
#include <godot_cpp/classes/os.hpp>
#include <godot_cpp/classes/project_settings.hpp>
#include <godot_cpp/classes/rendering_server.hpp>
#include <godot_cpp/classes/translation_server.hpp>
#include <godot_cpp/core/error_macros.hpp>

using namespace godot;

#define GLOBAL_GET

#elif defined(GODOT_MODULE)
// Headers for building as built-in module.

#include "core/config/project_settings.h"
#include "core/error/error_macros.h"
#include "core/object/worker_thread_pool.h"
#include "core/string/print_string.h"
#include "core/string/translation_server.h"
#include "scene/resources/image_texture.h"

#include "modules/modules_enabled.gen.h" // For freetype, msdfgen, svg.

#endif

// Built-in ICU data.

#ifdef ICU_STATIC_DATA
#include "icudata.gen.h"
#endif

// Thirdparty headers.

#ifdef MODULE_MSDFGEN_ENABLED
#ifdef _MSC_VER
#pragma warning(disable : 4458)
#endif
#include <core/ShapeDistanceFinder.h>
#include <core/contour-combiners.h>
#include <core/edge-selectors.h>
#include <msdfgen.h>
#ifdef _MSC_VER
#pragma warning(default : 4458)
#endif
#endif

#ifdef MODULE_SVG_ENABLED
#ifdef MODULE_FREETYPE_ENABLED
#include "thorvg_svg_in_ot.h"
#endif
#endif

/*************************************************************************/
/*  bmp_font_t HarfBuzz Bitmap font interface                            */
/*************************************************************************/

hb_font_funcs_t *TextServerAdvanced::funcs =;

TextServerAdvanced::bmp_font_t *TextServerAdvanced::_bmp_font_create(TextServerAdvanced::FontForSizeAdvanced *p_face, bool p_unref) {}

void TextServerAdvanced::_bmp_font_destroy(void *p_data) {}

hb_bool_t TextServerAdvanced::_bmp_get_nominal_glyph(hb_font_t *p_font, void *p_font_data, hb_codepoint_t p_unicode, hb_codepoint_t *r_glyph, void *p_user_data) {}

hb_position_t TextServerAdvanced::_bmp_get_glyph_h_advance(hb_font_t *p_font, void *p_font_data, hb_codepoint_t p_glyph, void *p_user_data) {}

hb_position_t TextServerAdvanced::_bmp_get_glyph_v_advance(hb_font_t *p_font, void *p_font_data, hb_codepoint_t p_glyph, void *p_user_data) {}

hb_position_t TextServerAdvanced::_bmp_get_glyph_h_kerning(hb_font_t *p_font, void *p_font_data, hb_codepoint_t p_left_glyph, hb_codepoint_t p_right_glyph, void *p_user_data) {}

hb_bool_t TextServerAdvanced::_bmp_get_glyph_v_origin(hb_font_t *p_font, void *p_font_data, hb_codepoint_t p_glyph, hb_position_t *r_x, hb_position_t *r_y, void *p_user_data) {}

hb_bool_t TextServerAdvanced::_bmp_get_glyph_extents(hb_font_t *p_font, void *p_font_data, hb_codepoint_t p_glyph, hb_glyph_extents_t *r_extents, void *p_user_data) {}

hb_bool_t TextServerAdvanced::_bmp_get_font_h_extents(hb_font_t *p_font, void *p_font_data, hb_font_extents_t *r_metrics, void *p_user_data) {}

void TextServerAdvanced::_bmp_create_font_funcs() {}

void TextServerAdvanced::_bmp_free_font_funcs() {}

void TextServerAdvanced::_bmp_font_set_funcs(hb_font_t *p_font, TextServerAdvanced::FontForSizeAdvanced *p_face, bool p_unref) {}

hb_font_t *TextServerAdvanced::_bmp_font_create(TextServerAdvanced::FontForSizeAdvanced *p_face, hb_destroy_func_t p_destroy) {}

/*************************************************************************/
/*  Character properties.                                                */
/*************************************************************************/

_FORCE_INLINE_ bool is_ain(char32_t p_chr) {}

_FORCE_INLINE_ bool is_alef(char32_t p_chr) {}

_FORCE_INLINE_ bool is_beh(char32_t p_chr) {}

_FORCE_INLINE_ bool is_dal(char32_t p_chr) {}

_FORCE_INLINE_ bool is_feh(char32_t p_chr) {}

_FORCE_INLINE_ bool is_gaf(char32_t p_chr) {}

_FORCE_INLINE_ bool is_heh(char32_t p_chr) {}

_FORCE_INLINE_ bool is_kaf(char32_t p_chr) {}

_FORCE_INLINE_ bool is_lam(char32_t p_chr) {}

_FORCE_INLINE_ bool is_qaf(char32_t p_chr) {}

_FORCE_INLINE_ bool is_reh(char32_t p_chr) {}

_FORCE_INLINE_ bool is_seen_sad(char32_t p_chr) {}

_FORCE_INLINE_ bool is_tah(char32_t p_chr) {}

_FORCE_INLINE_ bool is_teh_marbuta(char32_t p_chr) {}

_FORCE_INLINE_ bool is_yeh(char32_t p_chr) {}

_FORCE_INLINE_ bool is_waw(char32_t p_chr) {}

_FORCE_INLINE_ bool is_transparent(char32_t p_chr) {}

_FORCE_INLINE_ bool is_ligature(char32_t p_chr, char32_t p_nchr) {}

_FORCE_INLINE_ bool is_connected_to_prev(char32_t p_chr, char32_t p_pchr) {}

/*************************************************************************/

bool TextServerAdvanced::icu_data_loaded =;
PackedByteArray TextServerAdvanced::icu_data;

bool TextServerAdvanced::_has_feature(Feature p_feature) const {}

String TextServerAdvanced::_get_name() const {}

int64_t TextServerAdvanced::_get_features() const {}

void TextServerAdvanced::_free_rid(const RID &p_rid) {}

bool TextServerAdvanced::_has(const RID &p_rid) {}

bool TextServerAdvanced::_load_support_data(const String &p_filename) {}

String TextServerAdvanced::_get_support_data_filename() const {}

String TextServerAdvanced::_get_support_data_info() const {}

bool TextServerAdvanced::_save_support_data(const String &p_filename) const {}

bool TextServerAdvanced::_is_locale_right_to_left(const String &p_locale) const {}

_FORCE_INLINE_ void TextServerAdvanced::_insert_feature(const StringName &p_name, int32_t p_tag, Variant::Type p_vtype, bool p_hidden) {}

void TextServerAdvanced::_insert_feature_sets() {}

int64_t TextServerAdvanced::_name_to_tag(const String &p_name) const {}

Variant::Type TextServerAdvanced::_get_tag_type(int64_t p_tag) const {}

bool TextServerAdvanced::_get_tag_hidden(int64_t p_tag) const {}

String TextServerAdvanced::_tag_to_name(int64_t p_tag) const {}

/*************************************************************************/
/* Font Glyph Rendering                                                  */
/*************************************************************************/

_FORCE_INLINE_ TextServerAdvanced::FontTexturePosition TextServerAdvanced::find_texture_pos_for_glyph(FontForSizeAdvanced *p_data, int p_color_size, Image::Format p_image_format, int p_width, int p_height, bool p_msdf) const {}

#ifdef MODULE_MSDFGEN_ENABLED

struct MSContext {};

class DistancePixelConversion {};

struct MSDFThreadData {};

static msdfgen::Point2 ft_point2(const FT_Vector &vector) {}

static int ft_move_to(const FT_Vector *to, void *user) {}

static int ft_line_to(const FT_Vector *to, void *user) {}

static int ft_conic_to(const FT_Vector *control, const FT_Vector *to, void *user) {}

static int ft_cubic_to(const FT_Vector *control1, const FT_Vector *control2, const FT_Vector *to, void *user) {}

void TextServerAdvanced::_generateMTSDF_threaded(void *p_td, uint32_t p_y) {}

_FORCE_INLINE_ TextServerAdvanced::FontGlyph TextServerAdvanced::rasterize_msdf(FontAdvanced *p_font_data, FontForSizeAdvanced *p_data, int p_pixel_range, int p_rect_margin, FT_Outline *p_outline, const Vector2 &p_advance) const {}
#endif

#ifdef MODULE_FREETYPE_ENABLED
_FORCE_INLINE_ TextServerAdvanced::FontGlyph TextServerAdvanced::rasterize_bitmap(FontForSizeAdvanced *p_data, int p_rect_margin, FT_Bitmap p_bitmap, int p_yofs, int p_xofs, const Vector2 &p_advance, bool p_bgra) const {}
#endif

/*************************************************************************/
/* Font Cache                                                            */
/*************************************************************************/

_FORCE_INLINE_ bool TextServerAdvanced::_ensure_glyph(FontAdvanced *p_font_data, const Vector2i &p_size, int32_t p_glyph, FontGlyph &r_glyph) const {}

_FORCE_INLINE_ bool TextServerAdvanced::_ensure_cache_for_size(FontAdvanced *p_font_data, const Vector2i &p_size, FontForSizeAdvanced *&r_cache_for_size) const {}

_FORCE_INLINE_ void TextServerAdvanced::_font_clear_cache(FontAdvanced *p_font_data) {}

hb_font_t *TextServerAdvanced::_font_get_hb_handle(const RID &p_font_rid, int64_t p_size) const {}

RID TextServerAdvanced::_create_font() {}

RID TextServerAdvanced::_create_font_linked_variation(const RID &p_font_rid) {}

void TextServerAdvanced::_font_set_data(const RID &p_font_rid, const PackedByteArray &p_data) {}

void TextServerAdvanced::_font_set_data_ptr(const RID &p_font_rid, const uint8_t *p_data_ptr, int64_t p_data_size) {}

void TextServerAdvanced::_font_set_face_index(const RID &p_font_rid, int64_t p_face_index) {}

int64_t TextServerAdvanced::_font_get_face_index(const RID &p_font_rid) const {}

int64_t TextServerAdvanced::_font_get_face_count(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_set_style(const RID &p_font_rid, BitField<FontStyle> p_style) {}

BitField<TextServer::FontStyle> TextServerAdvanced::_font_get_style(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_set_style_name(const RID &p_font_rid, const String &p_name) {}

String TextServerAdvanced::_font_get_style_name(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_set_weight(const RID &p_font_rid, int64_t p_weight) {}

int64_t TextServerAdvanced::_font_get_weight(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_set_stretch(const RID &p_font_rid, int64_t p_stretch) {}

int64_t TextServerAdvanced::_font_get_stretch(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_set_name(const RID &p_font_rid, const String &p_name) {}

String TextServerAdvanced::_font_get_name(const RID &p_font_rid) const {}

Dictionary TextServerAdvanced::_font_get_ot_name_strings(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_set_antialiasing(const RID &p_font_rid, TextServer::FontAntialiasing p_antialiasing) {}

TextServer::FontAntialiasing TextServerAdvanced::_font_get_antialiasing(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_set_disable_embedded_bitmaps(const RID &p_font_rid, bool p_disable_embedded_bitmaps) {}

bool TextServerAdvanced::_font_get_disable_embedded_bitmaps(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_set_generate_mipmaps(const RID &p_font_rid, bool p_generate_mipmaps) {}

bool TextServerAdvanced::_font_get_generate_mipmaps(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_set_multichannel_signed_distance_field(const RID &p_font_rid, bool p_msdf) {}

bool TextServerAdvanced::_font_is_multichannel_signed_distance_field(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_set_msdf_pixel_range(const RID &p_font_rid, int64_t p_msdf_pixel_range) {}

int64_t TextServerAdvanced::_font_get_msdf_pixel_range(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_set_msdf_size(const RID &p_font_rid, int64_t p_msdf_size) {}

int64_t TextServerAdvanced::_font_get_msdf_size(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_set_fixed_size(const RID &p_font_rid, int64_t p_fixed_size) {}

int64_t TextServerAdvanced::_font_get_fixed_size(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_set_fixed_size_scale_mode(const RID &p_font_rid, TextServer::FixedSizeScaleMode p_fixed_size_scale_mode) {}

TextServer::FixedSizeScaleMode TextServerAdvanced::_font_get_fixed_size_scale_mode(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_set_allow_system_fallback(const RID &p_font_rid, bool p_allow_system_fallback) {}

bool TextServerAdvanced::_font_is_allow_system_fallback(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_set_force_autohinter(const RID &p_font_rid, bool p_force_autohinter) {}

bool TextServerAdvanced::_font_is_force_autohinter(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_set_hinting(const RID &p_font_rid, TextServer::Hinting p_hinting) {}

TextServer::Hinting TextServerAdvanced::_font_get_hinting(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_set_subpixel_positioning(const RID &p_font_rid, TextServer::SubpixelPositioning p_subpixel) {}

TextServer::SubpixelPositioning TextServerAdvanced::_font_get_subpixel_positioning(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_set_embolden(const RID &p_font_rid, double p_strength) {}

double TextServerAdvanced::_font_get_embolden(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_set_spacing(const RID &p_font_rid, SpacingType p_spacing, int64_t p_value) {}

int64_t TextServerAdvanced::_font_get_spacing(const RID &p_font_rid, SpacingType p_spacing) const {}

void TextServerAdvanced::_font_set_baseline_offset(const RID &p_font_rid, double p_baseline_offset) {}

double TextServerAdvanced::_font_get_baseline_offset(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_set_transform(const RID &p_font_rid, const Transform2D &p_transform) {}

Transform2D TextServerAdvanced::_font_get_transform(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_set_variation_coordinates(const RID &p_font_rid, const Dictionary &p_variation_coordinates) {}

Dictionary TextServerAdvanced::_font_get_variation_coordinates(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_set_oversampling(const RID &p_font_rid, double p_oversampling) {}

double TextServerAdvanced::_font_get_oversampling(const RID &p_font_rid) const {}

TypedArray<Vector2i> TextServerAdvanced::_font_get_size_cache_list(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_clear_size_cache(const RID &p_font_rid) {}

void TextServerAdvanced::_font_remove_size_cache(const RID &p_font_rid, const Vector2i &p_size) {}

void TextServerAdvanced::_font_set_ascent(const RID &p_font_rid, int64_t p_size, double p_ascent) {}

double TextServerAdvanced::_font_get_ascent(const RID &p_font_rid, int64_t p_size) const {}

void TextServerAdvanced::_font_set_descent(const RID &p_font_rid, int64_t p_size, double p_descent) {}

double TextServerAdvanced::_font_get_descent(const RID &p_font_rid, int64_t p_size) const {}

void TextServerAdvanced::_font_set_underline_position(const RID &p_font_rid, int64_t p_size, double p_underline_position) {}

double TextServerAdvanced::_font_get_underline_position(const RID &p_font_rid, int64_t p_size) const {}

void TextServerAdvanced::_font_set_underline_thickness(const RID &p_font_rid, int64_t p_size, double p_underline_thickness) {}

double TextServerAdvanced::_font_get_underline_thickness(const RID &p_font_rid, int64_t p_size) const {}

void TextServerAdvanced::_font_set_scale(const RID &p_font_rid, int64_t p_size, double p_scale) {}

double TextServerAdvanced::_font_get_scale(const RID &p_font_rid, int64_t p_size) const {}

int64_t TextServerAdvanced::_font_get_texture_count(const RID &p_font_rid, const Vector2i &p_size) const {}

void TextServerAdvanced::_font_clear_textures(const RID &p_font_rid, const Vector2i &p_size) {}

void TextServerAdvanced::_font_remove_texture(const RID &p_font_rid, const Vector2i &p_size, int64_t p_texture_index) {}

void TextServerAdvanced::_font_set_texture_image(const RID &p_font_rid, const Vector2i &p_size, int64_t p_texture_index, const Ref<Image> &p_image) {}

Ref<Image> TextServerAdvanced::_font_get_texture_image(const RID &p_font_rid, const Vector2i &p_size, int64_t p_texture_index) const {}

void TextServerAdvanced::_font_set_texture_offsets(const RID &p_font_rid, const Vector2i &p_size, int64_t p_texture_index, const PackedInt32Array &p_offsets) {}

PackedInt32Array TextServerAdvanced::_font_get_texture_offsets(const RID &p_font_rid, const Vector2i &p_size, int64_t p_texture_index) const {}

PackedInt32Array TextServerAdvanced::_font_get_glyph_list(const RID &p_font_rid, const Vector2i &p_size) const {}

void TextServerAdvanced::_font_clear_glyphs(const RID &p_font_rid, const Vector2i &p_size) {}

void TextServerAdvanced::_font_remove_glyph(const RID &p_font_rid, const Vector2i &p_size, int64_t p_glyph) {}

double TextServerAdvanced::_get_extra_advance(RID p_font_rid, int p_font_size) const {}

Vector2 TextServerAdvanced::_font_get_glyph_advance(const RID &p_font_rid, int64_t p_size, int64_t p_glyph) const {}

void TextServerAdvanced::_font_set_glyph_advance(const RID &p_font_rid, int64_t p_size, int64_t p_glyph, const Vector2 &p_advance) {}

Vector2 TextServerAdvanced::_font_get_glyph_offset(const RID &p_font_rid, const Vector2i &p_size, int64_t p_glyph) const {}

void TextServerAdvanced::_font_set_glyph_offset(const RID &p_font_rid, const Vector2i &p_size, int64_t p_glyph, const Vector2 &p_offset) {}

Vector2 TextServerAdvanced::_font_get_glyph_size(const RID &p_font_rid, const Vector2i &p_size, int64_t p_glyph) const {}

void TextServerAdvanced::_font_set_glyph_size(const RID &p_font_rid, const Vector2i &p_size, int64_t p_glyph, const Vector2 &p_gl_size) {}

Rect2 TextServerAdvanced::_font_get_glyph_uv_rect(const RID &p_font_rid, const Vector2i &p_size, int64_t p_glyph) const {}

void TextServerAdvanced::_font_set_glyph_uv_rect(const RID &p_font_rid, const Vector2i &p_size, int64_t p_glyph, const Rect2 &p_uv_rect) {}

int64_t TextServerAdvanced::_font_get_glyph_texture_idx(const RID &p_font_rid, const Vector2i &p_size, int64_t p_glyph) const {}

void TextServerAdvanced::_font_set_glyph_texture_idx(const RID &p_font_rid, const Vector2i &p_size, int64_t p_glyph, int64_t p_texture_idx) {}

RID TextServerAdvanced::_font_get_glyph_texture_rid(const RID &p_font_rid, const Vector2i &p_size, int64_t p_glyph) const {}

Size2 TextServerAdvanced::_font_get_glyph_texture_size(const RID &p_font_rid, const Vector2i &p_size, int64_t p_glyph) const {}

Dictionary TextServerAdvanced::_font_get_glyph_contours(const RID &p_font_rid, int64_t p_size, int64_t p_index) const {}

TypedArray<Vector2i> TextServerAdvanced::_font_get_kerning_list(const RID &p_font_rid, int64_t p_size) const {}

void TextServerAdvanced::_font_clear_kerning_map(const RID &p_font_rid, int64_t p_size) {}

void TextServerAdvanced::_font_remove_kerning(const RID &p_font_rid, int64_t p_size, const Vector2i &p_glyph_pair) {}

void TextServerAdvanced::_font_set_kerning(const RID &p_font_rid, int64_t p_size, const Vector2i &p_glyph_pair, const Vector2 &p_kerning) {}

Vector2 TextServerAdvanced::_font_get_kerning(const RID &p_font_rid, int64_t p_size, const Vector2i &p_glyph_pair) const {}

int64_t TextServerAdvanced::_font_get_glyph_index(const RID &p_font_rid, int64_t p_size, int64_t p_char, int64_t p_variation_selector) const {}

int64_t TextServerAdvanced::_font_get_char_from_glyph_index(const RID &p_font_rid, int64_t p_size, int64_t p_glyph_index) const {}

bool TextServerAdvanced::_font_has_char(const RID &p_font_rid, int64_t p_char) const {}

String TextServerAdvanced::_font_get_supported_chars(const RID &p_font_rid) const {}

PackedInt32Array TextServerAdvanced::_font_get_supported_glyphs(const RID &p_font_rid) const {}

void TextServerAdvanced::_font_render_range(const RID &p_font_rid, const Vector2i &p_size, int64_t p_start, int64_t p_end) {}

void TextServerAdvanced::_font_render_glyph(const RID &p_font_rid, const Vector2i &p_size, int64_t p_index) {}

void TextServerAdvanced::_font_draw_glyph(const RID &p_font_rid, const RID &p_canvas, int64_t p_size, const Vector2 &p_pos, int64_t p_index, const Color &p_color) const {}

void TextServerAdvanced::_font_draw_glyph_outline(const RID &p_font_rid, const RID &p_canvas, int64_t p_size, int64_t p_outline_size, const Vector2 &p_pos, int64_t p_index, const Color &p_color) const {}

bool TextServerAdvanced::_font_is_language_supported(const RID &p_font_rid, const String &p_language) const {}

void TextServerAdvanced::_font_set_language_support_override(const RID &p_font_rid, const String &p_language, bool p_supported) {}

bool TextServerAdvanced::_font_get_language_support_override(const RID &p_font_rid, const String &p_language) {}

void TextServerAdvanced::_font_remove_language_support_override(const RID &p_font_rid, const String &p_language) {}

PackedStringArray TextServerAdvanced::_font_get_language_support_overrides(const RID &p_font_rid) {}

bool TextServerAdvanced::_font_is_script_supported(const RID &p_font_rid, const String &p_script) const {}

void TextServerAdvanced::_font_set_script_support_override(const RID &p_font_rid, const String &p_script, bool p_supported) {}

bool TextServerAdvanced::_font_get_script_support_override(const RID &p_font_rid, const String &p_script) {}

void TextServerAdvanced::_font_remove_script_support_override(const RID &p_font_rid, const String &p_script) {}

PackedStringArray TextServerAdvanced::_font_get_script_support_overrides(const RID &p_font_rid) {}

void TextServerAdvanced::_font_set_opentype_feature_overrides(const RID &p_font_rid, const Dictionary &p_overrides) {}

Dictionary TextServerAdvanced::_font_get_opentype_feature_overrides(const RID &p_font_rid) const {}

Dictionary TextServerAdvanced::_font_supported_feature_list(const RID &p_font_rid) const {}

Dictionary TextServerAdvanced::_font_supported_variation_list(const RID &p_font_rid) const {}

double TextServerAdvanced::_font_get_global_oversampling() const {}

void TextServerAdvanced::_font_set_global_oversampling(double p_oversampling) {}

/*************************************************************************/
/* Shaped text buffer interface                                          */
/*************************************************************************/

int64_t TextServerAdvanced::_convert_pos(const String &p_utf32, const Char16String &p_utf16, int64_t p_pos) const {}

int64_t TextServerAdvanced::_convert_pos(const ShapedTextDataAdvanced *p_sd, int64_t p_pos) const {}

int64_t TextServerAdvanced::_convert_pos_inv(const ShapedTextDataAdvanced *p_sd, int64_t p_pos) const {}

void TextServerAdvanced::invalidate(TextServerAdvanced::ShapedTextDataAdvanced *p_shaped, bool p_text) {}

void TextServerAdvanced::full_copy(ShapedTextDataAdvanced *p_shaped) {}

RID TextServerAdvanced::_create_shaped_text(TextServer::Direction p_direction, TextServer::Orientation p_orientation) {}

void TextServerAdvanced::_shaped_text_clear(const RID &p_shaped) {}

void TextServerAdvanced::_shaped_text_set_direction(const RID &p_shaped, TextServer::Direction p_direction) {}

TextServer::Direction TextServerAdvanced::_shaped_text_get_direction(const RID &p_shaped) const {}

TextServer::Direction TextServerAdvanced::_shaped_text_get_inferred_direction(const RID &p_shaped) const {}

void TextServerAdvanced::_shaped_text_set_custom_punctuation(const RID &p_shaped, const String &p_punct) {}

String TextServerAdvanced::_shaped_text_get_custom_punctuation(const RID &p_shaped) const {}

void TextServerAdvanced::_shaped_text_set_custom_ellipsis(const RID &p_shaped, int64_t p_char) {}

int64_t TextServerAdvanced::_shaped_text_get_custom_ellipsis(const RID &p_shaped) const {}

void TextServerAdvanced::_shaped_text_set_bidi_override(const RID &p_shaped, const Array &p_override) {}

void TextServerAdvanced::_shaped_text_set_orientation(const RID &p_shaped, TextServer::Orientation p_orientation) {}

void TextServerAdvanced::_shaped_text_set_preserve_invalid(const RID &p_shaped, bool p_enabled) {}

bool TextServerAdvanced::_shaped_text_get_preserve_invalid(const RID &p_shaped) const {}

void TextServerAdvanced::_shaped_text_set_preserve_control(const RID &p_shaped, bool p_enabled) {}

bool TextServerAdvanced::_shaped_text_get_preserve_control(const RID &p_shaped) const {}

void TextServerAdvanced::_shaped_text_set_spacing(const RID &p_shaped, SpacingType p_spacing, int64_t p_value) {}

int64_t TextServerAdvanced::_shaped_text_get_spacing(const RID &p_shaped, SpacingType p_spacing) const {}

TextServer::Orientation TextServerAdvanced::_shaped_text_get_orientation(const RID &p_shaped) const {}

int64_t TextServerAdvanced::_shaped_get_span_count(const RID &p_shaped) const {}

Variant TextServerAdvanced::_shaped_get_span_meta(const RID &p_shaped, int64_t p_index) const {}

void TextServerAdvanced::_shaped_set_span_update_font(const RID &p_shaped, int64_t p_index, const TypedArray<RID> &p_fonts, int64_t p_size, const Dictionary &p_opentype_features) {}

bool TextServerAdvanced::_shaped_text_add_string(const RID &p_shaped, const String &p_text, const TypedArray<RID> &p_fonts, int64_t p_size, const Dictionary &p_opentype_features, const String &p_language, const Variant &p_meta) {}

bool TextServerAdvanced::_shaped_text_add_object(const RID &p_shaped, const Variant &p_key, const Size2 &p_size, InlineAlignment p_inline_align, int64_t p_length, double p_baseline) {}

bool TextServerAdvanced::_shaped_text_resize_object(const RID &p_shaped, const Variant &p_key, const Size2 &p_size, InlineAlignment p_inline_align, double p_baseline) {}

void TextServerAdvanced::_realign(ShapedTextDataAdvanced *p_sd) const {}

RID TextServerAdvanced::_shaped_text_substr(const RID &p_shaped, int64_t p_start, int64_t p_length) const {}

bool TextServerAdvanced::_shape_substr(ShapedTextDataAdvanced *p_new_sd, const ShapedTextDataAdvanced *p_sd, int64_t p_start, int64_t p_length) const {}

RID TextServerAdvanced::_shaped_text_get_parent(const RID &p_shaped) const {}

double TextServerAdvanced::_shaped_text_fit_to_width(const RID &p_shaped, double p_width, BitField<TextServer::JustificationFlag> p_jst_flags) {}

double TextServerAdvanced::_shaped_text_tab_align(const RID &p_shaped, const PackedFloat32Array &p_tab_stops) {}

RID TextServerAdvanced::_find_sys_font_for_text(const RID &p_fdef, const String &p_script_code, const String &p_language, const String &p_text) {}

void TextServerAdvanced::_shaped_text_overrun_trim_to_width(const RID &p_shaped_line, double p_width, BitField<TextServer::TextOverrunFlag> p_trim_flags) {}

int64_t TextServerAdvanced::_shaped_text_get_trim_pos(const RID &p_shaped) const {}

int64_t TextServerAdvanced::_shaped_text_get_ellipsis_pos(const RID &p_shaped) const {}

const Glyph *TextServerAdvanced::_shaped_text_get_ellipsis_glyphs(const RID &p_shaped) const {}

int64_t TextServerAdvanced::_shaped_text_get_ellipsis_glyph_count(const RID &p_shaped) const {}

void TextServerAdvanced::_update_chars(ShapedTextDataAdvanced *p_sd) const {}

PackedInt32Array TextServerAdvanced::_shaped_text_get_character_breaks(const RID &p_shaped) const {}

bool TextServerAdvanced::_shaped_text_update_breaks(const RID &p_shaped) {}

_FORCE_INLINE_ int64_t _generate_kashida_justification_opportunies(const String &p_data, int64_t p_start, int64_t p_end) {}

bool TextServerAdvanced::_shaped_text_update_justification_ops(const RID &p_shaped) {}

Glyph TextServerAdvanced::_shape_single_glyph(ShapedTextDataAdvanced *p_sd, char32_t p_char, hb_script_t p_script, hb_direction_t p_direction, const RID &p_font, int64_t p_font_size) {}

_FORCE_INLINE_ void TextServerAdvanced::_add_featuers(const Dictionary &p_source, Vector<hb_feature_t> &r_ftrs) {}

void TextServerAdvanced::_shape_run(ShapedTextDataAdvanced *p_sd, int64_t p_start, int64_t p_end, hb_script_t p_script, hb_direction_t p_direction, TypedArray<RID> p_fonts, int64_t p_span, int64_t p_fb_index, int64_t p_prev_start, int64_t p_prev_end, RID p_prev_font) {}

bool TextServerAdvanced::_shaped_text_shape(const RID &p_shaped) {}

bool TextServerAdvanced::_shaped_text_is_ready(const RID &p_shaped) const {}

const Glyph *TextServerAdvanced::_shaped_text_get_glyphs(const RID &p_shaped) const {}

int64_t TextServerAdvanced::_shaped_text_get_glyph_count(const RID &p_shaped) const {}

const Glyph *TextServerAdvanced::_shaped_text_sort_logical(const RID &p_shaped) {}

Vector2i TextServerAdvanced::_shaped_text_get_range(const RID &p_shaped) const {}

Array TextServerAdvanced::_shaped_text_get_objects(const RID &p_shaped) const {}

Rect2 TextServerAdvanced::_shaped_text_get_object_rect(const RID &p_shaped, const Variant &p_key) const {}

Vector2i TextServerAdvanced::_shaped_text_get_object_range(const RID &p_shaped, const Variant &p_key) const {}

int64_t TextServerAdvanced::_shaped_text_get_object_glyph(const RID &p_shaped, const Variant &p_key) const {}

Size2 TextServerAdvanced::_shaped_text_get_size(const RID &p_shaped) const {}

double TextServerAdvanced::_shaped_text_get_ascent(const RID &p_shaped) const {}

double TextServerAdvanced::_shaped_text_get_descent(const RID &p_shaped) const {}

double TextServerAdvanced::_shaped_text_get_width(const RID &p_shaped) const {}

double TextServerAdvanced::_shaped_text_get_underline_position(const RID &p_shaped) const {}

double TextServerAdvanced::_shaped_text_get_underline_thickness(const RID &p_shaped) const {}

void TextServerAdvanced::_insert_num_systems_lang() {}

String TextServerAdvanced::_format_number(const String &p_string, const String &p_language) const {}

String TextServerAdvanced::_parse_number(const String &p_string, const String &p_language) const {}

String TextServerAdvanced::_percent_sign(const String &p_language) const {}

int64_t TextServerAdvanced::_is_confusable(const String &p_string, const PackedStringArray &p_dict) const {}

bool TextServerAdvanced::_spoof_check(const String &p_string) const {}

String TextServerAdvanced::_strip_diacritics(const String &p_string) const {}

String TextServerAdvanced::_string_to_upper(const String &p_string, const String &p_language) const {}

String TextServerAdvanced::_string_to_lower(const String &p_string, const String &p_language) const {}

String TextServerAdvanced::_string_to_title(const String &p_string, const String &p_language) const {}

PackedInt32Array TextServerAdvanced::_string_get_word_breaks(const String &p_string, const String &p_language, int64_t p_chars_per_line) const {}

PackedInt32Array TextServerAdvanced::_string_get_character_breaks(const String &p_string, const String &p_language) const {}

bool TextServerAdvanced::_is_valid_identifier(const String &p_string) const {}

bool TextServerAdvanced::_is_valid_letter(uint64_t p_unicode) const {}

void TextServerAdvanced::_update_settings() {}

TextServerAdvanced::TextServerAdvanced() {}

void TextServerAdvanced::_cleanup() {}

TextServerAdvanced::~TextServerAdvanced() {}