summaryrefslogtreecommitdiff
path: root/scene/resources/font.cpp
AgeCommit message (Collapse)Author
2022-01-17Merge pull request #54794 from bruvzg/runtime_bmfont_parserRémi Verschelde
2022-01-09[TextServer] Improve ligature cursor handling.bruvzg
Fix mid-grapheme hit test. Fix OpenType features property handling, add default features override option. Enable mid-grapheme cursor by default.
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-12-09Add a double-precision editor build to CIAaron Franke
2021-12-09align to horizontal_alignment, valign to vertical_alignment, relatedNathan Franke
2021-11-23Rename `remove()` to `remove_at()` when removing by indexLightning_A
2021-11-20Expose `FontData::{set,get}_fixed_size` methodsDanil Alexeev
2021-11-09Move BMFont parser code from importer to the FontData to allow loading ↵bruvzg
bitmap fonts in the runtime (without importing).
2021-10-31Add functions for getting name and font style from dynamic and bitmap fonts.bruvzg
Add font selection toolbar editor plugin.
2021-10-25Ignore empty Font resources as theme override.bruvzg
Add range hint to font_size properties. Remove excessive `base_size` Font property.
2021-10-09Fix missing argument names in bindingsRémi Verschelde
While at it, tweak some boolean setters to use `p_enabled` for the bool. Also renames `draw_minimap()` to `set_draw_minimap()`.
2021-10-01Implement TextServer GDExtension interface, remove TextServer GDNative ↵bruvzg
interface.
2021-10-01[FontData] Fixes saving copy of the font source data, if it was created from ↵bruvzg
built-in font.
2021-09-22Fill variation coordinates dictionary with default values when FontData is ↵bruvzg
set/added.
2021-09-20Add FontData cache index check, remove excessive loop.bruvzg
2021-08-27Makes FontData importable resource.bruvzg
Adds multi-channel SDF font texture generation and rendering support. Adds per-font oversampling support. Adds FontData import plugins (for dynamic fonts, BMFonts and monospaced image fonts), font texture cache pre-generation and loading. Adds BMFont binary format and outline support.
2021-06-19Rename `instance()`->`instantiate()` when it's a verbLightning_A
2021-02-24Merge pull request #46045 from bruvzg/text_server_bmp_createRémi Verschelde
[TextServer] Restores bitmap font dynamic construction functions.
2021-02-15Fix font `draw_*string` crash with empty data.bruvzg
2021-02-15[Text Server] Restores bitmap font dynamic construction functions.bruvzg
2021-02-15[TextServer] Restore character and space extra spacing support.bruvzg
2021-02-11Improve resource load cachereduz
-Added a new method in Resource: reset_state , used for reloading the same resource from disk -Added a new cache mode "replace" in ResourceLoader, which reuses existing loaded sub-resources but resets their data from disk (or replaces them if they chaged type) -Because the correct sub-resource paths are always loaded now, this fixes bugs with subresource folding or subresource ordering when saving.
2021-02-10Removed _change_notifyreduz
-For inspector refresh, the inspector now detects if a property change by polling a few times per second and then does update the control if so. This process is very cheap. -For property list refresh, a new signal (property_list_changed) was added to Object. _change_notify() is replaced by notify_property_list_changed() -Changed all objects using the old method to the signal, or just deleted the calls to _change_notify(<property>) since they are unnecesary now.
2021-01-01Update copyright statements to 2021Rémi Verschelde
Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
2020-12-28Rename empty() to is_empty()Marcel Admiraal
2020-12-18Font: Fix typo in DynamicFontData compat codeRémi Verschelde
Fixes #44494.
2020-12-13[Complex Text Layouts] Add variable fonts support.bruvzg
2020-12-09Merge pull request #43931 from bruvzg/ctl_comp_fontRémi Verschelde
[Complex Text Layouts] Add compatibility for legacy Font resources.
2020-12-06[Complex Text Layouts] Adds missing Font::SPACING_* to the Label, LineEdit, ↵bruvzg
TextEdit, TextLine and TextParagraph. Fixes oversized editor control height (default editor spacing is negative) and control size changing when text is set.
2020-12-03[Complex Text Layouts] Add compatibility for legacy Font resources.bruvzg
2020-11-26[Complex Text Layouts] Refactor Font class, default themes and controls to ↵bruvzg
use Text Server interface. Implement interface mirroring. Add TextLine and TextParagraph classes. Handle UTF-16 input on macOS and Windows.
2020-10-24Refactored 2D shader and lighting systemreduz
-Removed normal/specular properties from nodes -Create CanvasTexture, which can contain normal/specular channels -Refactored, optimized and simplified 2D shaders -Use atlas for light textures. -Use a shadow atlas for shadow textures. -Use both items aboves to make light rendering stateless (faster). -Reorganized uniform sets for more efficiency.
2020-10-18Refactor MethodBind to use variadic templatesreduz
Removed make_binders and the old style generated binders.
2020-09-03[Complex Test Layouts] Change `String` to use UTF-32 encoding on all platforms.bruvzg
2020-05-27Expose `get_char_size()` from Font instead of BitmapFontMaganty Rushyendra
`get_char_size()` is a public virtual function defined in the `Font` class. Implementations exist for both `BitmapFont` and `Dynamic Font`. However, it was only exposed to the GDScript API through the Bitmap Font, and not for Dynamic Font. This commit exposes the function through `Font` instead. Fixes #23967
2020-05-14Style: Enforce braces around if blocks and loopsRémi Verschelde
Using clang-tidy's `readability-braces-around-statements`. https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2020-05-14Style: Enforce separation line between function definitionsRémi Verschelde
I couldn't find a tool that enforces it, so I went the manual route: ``` find -name "thirdparty" -prune \ -o -name "*.cpp" -o -name "*.h" -o -name "*.m" -o -name "*.mm" \ -o -name "*.glsl" > files perl -0777 -pi -e 's/\n}\n([^#])/\n}\n\n\1/g' $(cat files) misc/scripts/fix_style.sh -c ``` This adds a newline after all `}` on the first column, unless they are followed by `#` (typically `#endif`). This leads to having lots of places with two lines between function/class definitions, but clang-format then fixes it as we enforce max one line of separation. This doesn't fix potential occurrences of function definitions which are indented (e.g. for a helper class defined in a .cpp), but it's better than nothing. Also can't be made to run easily on CI/hooks so we'll have to be careful with new code. Part of #33027.
2020-05-14Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocksRémi Verschelde
Which means that reduz' beloved style which we all became used to will now be changed automatically to remove the first empty line. This makes us lean closer to 1TBS (the one true brace style) instead of hybridating it with some Allman-inspired spacing. There's still the case of braces around single-statement blocks that needs to be addressed (but clang-format can't help with that, but clang-tidy may if we agree about it). Part of #33027.
2020-04-29Use underline position and thickness value in font filevolzhs
2020-04-20Exposed RenderingDevice to script APIJuan Linietsky
Also added an easier way to load native GLSL shaders. Extras: Had to fix no-cache for subresources in resource loader, it was not properly working, making shaders not properly reload. Note: The precommit hooks are broken because they don't seem to support enums from one class being used in another. Feel free to fix this after merging this PR.
2020-04-02Replace NULL with nullptrlupoDharkael
2020-03-27Renaming of servers for coherency.Juan Linietsky
VisualServer -> RenderingServer PhysicsServer -> PhysicsServer3D Physics2DServer -> PhysicsServer2D NavigationServer -> NavigationServer3D Navigation2DServer -> NavigationServer2D Also renamed corresponding files.
2020-02-28Removed interactive loader, added proper thread loading.Juan Linietsky
2020-02-25Variant: Added 64-bit packed arrays, renamed Variant::REAL to FLOAT.Juan Linietsky
- Renames PackedIntArray to PackedInt32Array. - Renames PackedFloatArray to PackedFloat32Array. - Adds PackedInt64Array and PackedFloat64Array. - Renames Variant::REAL to Variant::FLOAT for consistency. Packed arrays are for storing large amount of data and creating stuff like meshes, buffers. textures, etc. Forcing them to be 64 is a huge waste of memory. That said, many users requested the ability to have 64 bits packed arrays for their games, so this is just an optional added type. For Variant, the float datatype is always 64 bits, and exposed as `float`. We still have `real_t` which is the datatype that can change from 32 to 64 bits depending on a compile flag (not entirely working right now, but that's the idea). It affects math related datatypes and code only. Neither Variant nor PackedArray make use of real_t, which is only intended for math precision, so the term is removed from there to keep only float.
2020-02-18PoolVector is gone, replaced by VectorJuan Linietsky
Typed `PoolTypeArray` types are now renamed `PackedTypeArray` and are sugar for `Vector<Type>`.
2020-02-15Changed logic and optimized ObjectID in ObjectDB and Variant, removed RefPtr.Juan Linietsky
2020-02-11A lot of progress with canvas rendering, still far from working.Juan Linietsky
2020-02-11Texture refactorJuan Linietsky
-Texture renamed to Texture2D -TextureLayered as base now inherits 2Darray, cubemap and cubemap array -Removed all references to flags in textures (they will go in the shader) -Texture3D gone for now (will come back later done properly) -Create base rasterizer for RenderDevice, RasterizerRD
2020-01-21Allow greater values for DynamicFont size propertyRémi Verschelde
See https://github.com/godotengine/godot/issues/22581#issuecomment-576836691. Not using `or_greater` as there *is* a max size value that the current implementation can accept. If using e.g. size 6000 with FiraSans-Regular.ttf, errors are printed due to failing asserts on a glyph size that should be within 4096x4096 px.
2020-01-01Update copyright statements to 2020Rémi Verschelde
Happy new year to the wonderful Godot community! We're starting a new decade with a well-established, non-profit, free and open source game engine, and tons of further improvements in the pipeline from hundreds of contributors. Godot will keep getting better, and we're looking forward to all the games that the community will keep developing and releasing with it.