[Bitmap fonts] Add support for scaling.
This commit is contained in:
parent
37ee293be8
commit
9a1e0e4aef
17 changed files with 341 additions and 8 deletions
|
|
@ -95,6 +95,9 @@ void TextServerExtension::_bind_methods() {
|
|||
GDVIRTUAL_BIND(_font_set_fixed_size, "font_rid", "fixed_size");
|
||||
GDVIRTUAL_BIND(_font_get_fixed_size, "font_rid");
|
||||
|
||||
GDVIRTUAL_BIND(_font_set_fixed_size_scale_mode, "font_rid", "fixed_size_scale_mode");
|
||||
GDVIRTUAL_BIND(_font_get_fixed_size_scale_mode, "font_rid");
|
||||
|
||||
GDVIRTUAL_BIND(_font_set_allow_system_fallback, "font_rid", "allow_system_fallback");
|
||||
GDVIRTUAL_BIND(_font_is_allow_system_fallback, "font_rid");
|
||||
|
||||
|
|
@ -559,6 +562,16 @@ int64_t TextServerExtension::font_get_fixed_size(const RID &p_font_rid) const {
|
|||
return ret;
|
||||
}
|
||||
|
||||
void TextServerExtension::font_set_fixed_size_scale_mode(const RID &p_font_rid, TextServer::FixedSizeScaleMode p_fixed_size_scale_mode) {
|
||||
GDVIRTUAL_CALL(_font_set_fixed_size_scale_mode, p_font_rid, p_fixed_size_scale_mode);
|
||||
}
|
||||
|
||||
TextServer::FixedSizeScaleMode TextServerExtension::font_get_fixed_size_scale_mode(const RID &p_font_rid) const {
|
||||
FixedSizeScaleMode ret = FIXED_SIZE_SCALE_DISABLE;
|
||||
GDVIRTUAL_CALL(_font_get_fixed_size_scale_mode, p_font_rid, ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
void TextServerExtension::font_set_allow_system_fallback(const RID &p_font_rid, bool p_allow_system_fallback) {
|
||||
GDVIRTUAL_CALL(_font_set_allow_system_fallback, p_font_rid, p_allow_system_fallback);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -153,6 +153,11 @@ public:
|
|||
GDVIRTUAL2(_font_set_fixed_size, RID, int64_t);
|
||||
GDVIRTUAL1RC(int64_t, _font_get_fixed_size, RID);
|
||||
|
||||
virtual void font_set_fixed_size_scale_mode(const RID &p_font_rid, FixedSizeScaleMode p_fixed_size_scale) override;
|
||||
virtual FixedSizeScaleMode font_get_fixed_size_scale_mode(const RID &p_font_rid) const override;
|
||||
GDVIRTUAL2(_font_set_fixed_size_scale_mode, RID, FixedSizeScaleMode);
|
||||
GDVIRTUAL1RC(FixedSizeScaleMode, _font_get_fixed_size_scale_mode, RID);
|
||||
|
||||
virtual void font_set_subpixel_positioning(const RID &p_font_rid, SubpixelPositioning p_subpixel) override;
|
||||
virtual SubpixelPositioning font_get_subpixel_positioning(const RID &p_font_rid) const override;
|
||||
GDVIRTUAL2(_font_set_subpixel_positioning, RID, SubpixelPositioning);
|
||||
|
|
|
|||
|
|
@ -249,6 +249,9 @@ void TextServer::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("font_set_fixed_size", "font_rid", "fixed_size"), &TextServer::font_set_fixed_size);
|
||||
ClassDB::bind_method(D_METHOD("font_get_fixed_size", "font_rid"), &TextServer::font_get_fixed_size);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("font_set_fixed_size_scale_mode", "font_rid", "fixed_size_scale_mode"), &TextServer::font_set_fixed_size_scale_mode);
|
||||
ClassDB::bind_method(D_METHOD("font_get_fixed_size_scale_mode", "font_rid"), &TextServer::font_get_fixed_size_scale_mode);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("font_set_allow_system_fallback", "font_rid", "allow_system_fallback"), &TextServer::font_set_allow_system_fallback);
|
||||
ClassDB::bind_method(D_METHOD("font_is_allow_system_fallback", "font_rid"), &TextServer::font_is_allow_system_fallback);
|
||||
|
||||
|
|
@ -619,6 +622,11 @@ void TextServer::_bind_methods() {
|
|||
BIND_ENUM_CONSTANT(STRUCTURED_TEXT_LIST);
|
||||
BIND_ENUM_CONSTANT(STRUCTURED_TEXT_GDSCRIPT);
|
||||
BIND_ENUM_CONSTANT(STRUCTURED_TEXT_CUSTOM);
|
||||
|
||||
/* Fixed size scale mode */
|
||||
BIND_ENUM_CONSTANT(FIXED_SIZE_SCALE_DISABLE);
|
||||
BIND_ENUM_CONSTANT(FIXED_SIZE_SCALE_INTEGER_ONLY);
|
||||
BIND_ENUM_CONSTANT(FIXED_SIZE_SCALE_ENABLED);
|
||||
}
|
||||
|
||||
Vector2 TextServer::get_hex_code_box_size(int64_t p_size, int64_t p_index) const {
|
||||
|
|
|
|||
|
|
@ -207,6 +207,12 @@ public:
|
|||
STRUCTURED_TEXT_CUSTOM
|
||||
};
|
||||
|
||||
enum FixedSizeScaleMode {
|
||||
FIXED_SIZE_SCALE_DISABLE,
|
||||
FIXED_SIZE_SCALE_INTEGER_ONLY,
|
||||
FIXED_SIZE_SCALE_ENABLED,
|
||||
};
|
||||
|
||||
void _draw_hex_code_box_number(const RID &p_canvas, int64_t p_size, const Vector2 &p_pos, uint8_t p_index, const Color &p_color) const;
|
||||
|
||||
protected:
|
||||
|
|
@ -281,6 +287,9 @@ public:
|
|||
virtual void font_set_fixed_size(const RID &p_font_rid, int64_t p_fixed_size) = 0;
|
||||
virtual int64_t font_get_fixed_size(const RID &p_font_rid) const = 0;
|
||||
|
||||
virtual void font_set_fixed_size_scale_mode(const RID &p_font_rid, FixedSizeScaleMode p_fixed_size_scale) = 0;
|
||||
virtual FixedSizeScaleMode font_get_fixed_size_scale_mode(const RID &p_font_rid) const = 0;
|
||||
|
||||
virtual void font_set_allow_system_fallback(const RID &p_font_rid, bool p_allow_system_fallback) = 0;
|
||||
virtual bool font_is_allow_system_fallback(const RID &p_font_rid) const = 0;
|
||||
|
||||
|
|
@ -620,6 +629,7 @@ VARIANT_BITFIELD_CAST(TextServer::FontStyle);
|
|||
VARIANT_ENUM_CAST(TextServer::StructuredTextParser);
|
||||
VARIANT_ENUM_CAST(TextServer::FontAntialiasing);
|
||||
VARIANT_ENUM_CAST(TextServer::FontLCDSubpixelLayout);
|
||||
VARIANT_ENUM_CAST(TextServer::FixedSizeScaleMode);
|
||||
|
||||
GDVIRTUAL_NATIVE_PTR(Glyph);
|
||||
GDVIRTUAL_NATIVE_PTR(CaretInfo);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue