Commit Graph

826 Commits

Author SHA1 Message Date
Hans Goudey
7fa5fc02b7 Cleanup: Move BLF headers to C++ 2024-01-31 14:04:56 -05:00
Brecht Van Lommel
e0ff7731e0 Core: make BKE_appdir functions thread safe, using optional<string>
The static variables can cause the wrong path to be used, for example
when asset indexing in a thread affects loading toolbar icons.

Fix #117416: toolbar icon randomly missing

Pull Request: https://projects.blender.org/blender/blender/pulls/117419
2024-01-23 18:38:15 +01:00
Harley Acheson
a4a8683788 UI: Increased Overlay Text Contrast
Increased contrast of light text on any background by increasing the
effectiveness of the dark shadow.

Pull Request: https://projects.blender.org/blender/blender/pulls/117351
2024-01-22 21:57:55 +01:00
Hans Goudey
0618de49ad Cleanup: Replace MIN/MAX macros with C++ functions
Use `std::min` and `std::max` instead. Though keep MIN2 and MAX2
just for C code that hasn't been moved to C++ yet.

Pull Request: https://projects.blender.org/blender/blender/pulls/117384
2024-01-22 15:58:18 +01:00
Bastien Montagne
d8d44a62f7 Cleanup: Move BKE_appdir.h to full Cpp header BKE_appdir.hh. 2024-01-21 19:42:13 +01:00
Aras Pranckevicius
a705259b4b Cleanup: move imbuf .h files to .hh 2024-01-19 20:29:38 +01:00
Hans Goudey
21407901f8 Cleanup: Various clang tidy changes 2024-01-19 12:08:48 -05:00
Campbell Barton
ae29c8d950 Fix font sub-pixel AA impacting character spacing when AA is disabled 2024-01-17 18:36:54 +11:00
Brecht Van Lommel
d377ef2543 Clang Format: bump to version 17
Along with the 4.1 libraries upgrade, we are bumping the clang-format
version from 8-12 to 17. This affects quite a few files.

If not already the case, you may consider pointing your IDE to the
clang-format binary bundled with the Blender precompiled libraries.
2024-01-03 13:38:14 +01:00
Campbell Barton
950334a02c Cleanup: remove duplicate null check in blf_search_by_mem_name 2023-12-17 16:43:18 +11:00
Campbell Barton
4d965615fc Cleanup: various C++ changes (use ELEM & string copy macros) 2023-12-17 16:25:10 +11:00
Campbell Barton
7346727cfc Fix #116215: Sequencer crashes unlinking packed text
[0] caused a regression looking up fonts by filepath.

[0]: d770fd5ac4
2023-12-15 20:13:40 +11:00
Harley Acheson
8c6898c04d Fix #116135: Ensure blf_font_width_to_rstrlen always works
If the string is shorter than the cut-off length, ensure we always
exit cleanly when we iterate to the very start of the string.

Pull Request: https://projects.blender.org/blender/blender/pulls/116208
2023-12-14 23:19:08 +01:00
Campbell Barton
ff47eb3e37 Cleanup: minor style tweaks, surround ELEM by parenthesis 2023-12-10 17:12:53 +11:00
Harley Acheson
76bf43f44d Fix #115938: BLF Handle Negative Left-Side Bearings
Our glyph bounds clipping test will fail for the first character of a
string if that character has negative left-side bearing. This is not
usual but can happen in some designs for lowercase "j" to have the tail
hook under the preceding character.

Pull Request: https://projects.blender.org/blender/blender/pulls/115965
2023-12-09 01:52:45 +01:00
Jeroen Bakker
65e58fe574 CMake: Fix Compiling Shader Builder on macOS
Due to changes in the build environment shader_builder wasn't able to
compile on macOs. This patch reverts several recent changes to CMake files.

* dbb2844ed9
* 94817f64b9
* 1b6cd937ff

The idea is that in the near future shader_builder will run on the buildbot as
part of any regular build to ensure that changes to the CMake doesn't break
shader_builder and we only detect it after a few days.

Pull Request: https://projects.blender.org/blender/blender/pulls/115929
2023-12-08 15:47:14 +01:00
Campbell Barton
497600e49e Cleanup: spelling in comments, strings 2023-12-07 12:45:27 +11:00
Brecht Van Lommel
e06561a27a Build: replace Blender specific DEBUG by standard NDEBUG
NDEBUG is part of the C standard and disables asserts. Only this will
now be used to decide if asserts are enabled.

DEBUG was a Blender specific define, that has now been removed.

_DEBUG is a Visual Studio define for builds in Debug configuration.
Blender defines this for all platforms. This is still used in a few
places in the draw code, and in external libraries Bullet and Mantaflow.

Pull Request: https://projects.blender.org/blender/blender/pulls/115774
2023-12-06 16:05:14 +01:00
Harley Acheson
c8d1bb5902 BLF: Rename Text Shader Depth to Component Len
Rename text shader glyph "depth" to "glyph_comp_len", as requested
by Clément Foucault.

Pull Request: https://projects.blender.org/blender/blender/pulls/115640
2023-12-01 02:07:57 +01:00
Harley Acheson
5d330ddb1f BLF: Support All Render and Bitmap Formats
Add support for all of FreeType's various render formats and output
bitmap formats.

Pull Request: https://projects.blender.org/blender/blender/pulls/115452
2023-11-30 22:17:30 +01:00
Campbell Barton
27c660707d Cleanup: spelling in comments, variables 2023-11-27 09:54:36 +11:00
Ray Molenkamp
1b6cd937ff Cleanup: CMake: Modernize bf_imbuf dependencies
Pretty straightforward

- Remove any bf_imbuf paths from INC
- Add a dependency though LIB when missing

context: https://devtalk.blender.org/t/cmake-cleanup/30260

Pull Request: https://projects.blender.org/blender/blender/pulls/115425
2023-11-25 23:37:24 +01:00
Ray Molenkamp
ae25298774 Cleanup: CMake: Modernize bf_blenfont dependencies
Pretty straightforward

- Remove any bf_blenfont paths from INC
- Add a dependency though LIB when missing

context: https://devtalk.blender.org/t/cmake-cleanup/30260

Pull Request: https://projects.blender.org/blender/blender/pulls/115365
2023-11-24 18:29:09 +01:00
Harley Acheson
604ee2d036 VFont: Use BLF for font & glyph loading
Load VFont curves using BLF API rather than local FreeType calls.

Pull Request: https://projects.blender.org/blender/blender/pulls/110187
2023-11-23 18:12:04 +01:00
Harley Acheson
3f5654b491 Fix #114080: Add Khmer Font
Add Noto Sans Khmer (variable) font, needed for new translation.
2023-11-13 17:38:03 +01:00
Campbell Barton
611930e5a8 Cleanup: use std::min/max instead of MIN2/MAX2 macros 2023-11-07 16:33:19 +11:00
Campbell Barton
79840a9ec6 Cleanup: early returns in BLF, use full scentences 2023-11-07 11:31:01 +11:00
Campbell Barton
c8c2343b4b Cleanup: spelling in comments 2023-10-23 10:09:05 +11:00
Harley Acheson
b53111e935 BLF: Improved Cached Fallback Font Setup
Changes to FontBLF initialization so that the cached fallback fonts,
which remain faceless until needed, get all required setup.
Otherwise they are not kerned and we also don't get metrics from them.

Pull Request: https://projects.blender.org/blender/blender/pulls/114018
2023-10-22 03:54:57 +02:00
Harley Acheson
0bde01eab5 UI: Configurable UI Font Weight
Allows selecting different font weights in Text Styles

Pull Request: https://projects.blender.org/blender/blender/pulls/112454
2023-10-21 00:28:28 +02:00
Campbell Barton
2e0b844b36 Cleanup: spelling in comments 2023-10-14 13:53:00 +11:00
Harley Acheson
83705a87cb FontBLF: Store Sizes, Styles, and Other Metrics
When loading a font, gather metrics and other information that can help
use it more correctly. Default weight and slant, X-height, cap height,
locations for underline, strike-through, subscripts, etc. Family and
style flags, etc.

Pull Request: https://projects.blender.org/blender/blender/pulls/113432
2023-10-14 02:43:48 +02:00
Harley Acheson
2d5c762645 Merge branch 'blender-v4.0-release' 2023-10-13 13:32:28 -07:00
Harley Acheson
d625feadd8 Fix #113689: Improved BLF_width_to_strlen Measurement
BLF_width_to_strlen measures text with reduced accuracy with Hinting or
subpixel anti-aliasing enabled. blf_font_width_to_strlen_glyph_process
does not take into account these changes when iterating through glyphs.

Pull Request: https://projects.blender.org/blender/blender/pulls/113698
2023-10-13 22:31:08 +02:00
Harley Acheson
4320f1a217 Merge branch 'blender-v4.0-release' 2023-10-12 11:56:24 -07:00
Harley Acheson
1c4b2ad17f Fix #113352: UI: Round Pen When Subpixel AA is Off
Testing to see if rounding the advancing pen seems to give slightly
nicer spacing when subpixel anti-aliasing is turned off.

Pull Request: https://projects.blender.org/blender/blender/pulls/113399
2023-10-12 20:54:54 +02:00
Campbell Barton
4143c2324b Cleanup: replace OpenGL references with GPU in BLF 2023-10-12 16:10:01 +11:00
Campbell Barton
779239f5e1 Cleanup: spelling in comments 2023-10-03 11:16:55 +11:00
Harley Acheson
e196f0a874 Fix #113044: Reset Fonts When Loading New Files
Close user-loaded fonts when loading a new blend file so that the
global_font slots are not taken up by the old file's fonts.

Pull Request: https://projects.blender.org/blender/blender/pulls/113104
2023-10-03 01:21:03 +02:00
Harley Acheson
82bfc41d0c UI: Allow Separate Configuration of Subpixel Antialiasing
Separate user configuration of subpixel antialiasing from the hinting
options. For example, this allows turning this on while hinting is
"None", or off when hinting is "Full".

Pull Request: https://projects.blender.org/blender/blender/pulls/113027
2023-09-29 19:02:25 +02:00
Harley Acheson
7c636c1702 Fix #112736: Don't do Subpixel AA if not Antialised
There should be no Subpixel AA if the user has deselected
"Anti-Aliasing". Render target FT_LOAD_TARGET_MONO is strongly
hinted to pixel grid and shouldn't be messed with.

Pull Request: https://projects.blender.org/blender/blender/pulls/112759
2023-09-23 01:32:49 +02:00
Campbell Barton
a5cd497543 Console: add support for displaying tab-stops
Without this it was necessary to convert pasted text into spaces
for them to display properly.

Since tabs are a valid part of a string, it's incorrect to assume
tabs can always be expanded to spaces.

Pasted text and console output now display tabs properly,
the tab still uses spaces for indenting though.
2023-09-22 13:43:12 +10:00
Campbell Barton
31aa6fa073 Cleanup: various non-functional C++ changes 2023-09-22 10:52:40 +10:00
Harley Acheson
f58f6d0338 UI: Replace UI Font with Inter Regular v3.19
Replace default UI font DevaVuSans with Inter Regular v3.19

Pull Request: https://projects.blender.org/blender/blender/pulls/112603
2023-09-21 22:44:07 +02:00
Harley Acheson
a0b4ead737 BLF: Subpixel Positioning, Anti-aliasing, Hinting
Text output using subpixel positioning, subpixel anti-aliasing, and
typographically-correct hinting.

Pull Request: https://projects.blender.org/blender/blender/pulls/105441
2023-09-21 22:43:17 +02:00
Campbell Barton
e6ef1c36f0 Cleanup: use sized integer type for BLF tags
Also replace axis-codes in doc-strings with references to BLF defines
as the meaning of these terms wasn't clear.
2023-09-20 12:11:31 +10:00
Campbell Barton
731fc5d980 Cleanup: use strict flags for string utilities & cursor
Make type conversions explicit so it's clear when char/char32_t/uint
values are being mixed, also use int instead of size_t for cursor
functions because the cursor is an int - which caused many int/size_t
comparisons.
2023-09-20 12:11:30 +10:00
Harley Acheson
8cc91fac90 BLF: Embolden Correction & Comments
Slight corrections to embolden, mostly removing any vertical expansion
and better matching "wght" variable axis. Also improved comments for
all the glyph transform routines.

Pull Request: https://projects.blender.org/blender/blender/pulls/112592
2023-09-19 20:02:02 +02:00
Campbell Barton
209056b0e9 Cleanup: remove error checks on return value of safe utf8 functions
The safe functions never return an error value,
so checking for it makes no sense.
2023-09-18 15:11:45 +10:00
Campbell Barton
f952e9768d Cleanup: add "_safe(..)" suffix to BLI_str_utf8_as_unicode_step
This makes it clearer other "safe" functions should be used in
combination with the resulting offsets.

Also correct doc-string which wasn't updated from the "or_error()"
version of this function.
2023-09-18 15:07:09 +10:00