obligaron
9a14edfcd9
Add OptionEntries for Hardware Cursor
4 years ago
Gleb Mazovetskiy
9bc9bb6d33
Fix demomode file comments
4 years ago
Gleb Mazovetskiy
1f2d67f98b
Fix demomode line endings
4 years ago
Gleb Mazovetskiy
076b0c0c05
Overhaul tests
...
1. Adds a `libdevilution_so` target when tests are enabled.
2. Each test file is now a separate binary target linked against `libdevilutionx_so` (can now run tests in parallel).
3. Tests are now defined in a separate `test/CMakeLists.txt` file.
4. Building the tests is now controlled by the standard `BUILD_TESTING` option (defined by CTest).
5. Tests are now built by default.
6. On CI, test errors are now reported.
Also:
* `.clang-format`: Enable SortIncludes in tests
* `path_test.cpp`: Fix -Wsign-compare
4 years ago
obligaron
5e2ad66e64
Add OptionEntry Resolution
4 years ago
Gleb Mazovetskiy
0f924528ba
macOS/iOS: Add resources to the bundle
4 years ago
obligaron
2e5a488d5f
Add OptionEntry for graphics
4 years ago
Gleb Mazovetskiy
1de202cfe0
DrawString: Fix IsCJK definition
...
Fix IsCJK to include Hiragana, Katakana, Bopomofo, etc.
4 years ago
Gleb Mazovetskiy
48ddb2ea06
DrawString: Fix line height for tall codepoints
4 years ago
obligaron
6273f700fa
Add some Graphic Settings to Settingsmenu ( #3617 )
4 years ago
Gleb Mazovetskiy
1425bec3e4
Add missing GetLineWidth declaration to header
4 years ago
Gleb Mazovetskiy
bffe7dd071
`DrawStringWithColors`: Fix `{}` support
4 years ago
Gleb Mazovetskiy
c57644970f
Move `UiFlags` and `UiPanels` into their own files
...
The first breaks circular dependency between `DiabloUI` and `text_render`.
The latter one moves `UiPanels` to a more appropriate place.
4 years ago
Gleb Mazovetskiy
af168fd8df
Add `DrawStringWithColors`
...
A way to color parts of the string differently while keeping the color
information out of the string itself.
This is an alternative to #3546 .
4 years ago
Gleb Mazovetskiy
7e1fea6f76
clang-format all files in {Source,test}/
...
Also includes a few manual tweaks to comments and newlines for better results.
Co-authored-by: Anders Jenbo <anders@jenbo.dk>
4 years ago
Anders Jenbo
9ea6d9c9d1
Tweak Hangul font width
4 years ago
Anders Jenbo
a6f17fe072
Adjust width of CJK and Hangul fonts
4 years ago
Gleb Mazovetskiy
fa90679416
game_assets.* -> assets.*
4 years ago
Gleb Mazovetskiy
720d210d95
utils/mpq* -> mpq/*
4 years ago
Anders Jenbo
5e97bfa1e8
Adjust to new CJK font width
4 years ago
Gleb Mazovetskiy
f45270e9ab
`RenderString`: Fix width calculation after \n
...
Fixes #3456
4 years ago
Gleb Mazovetskiy
bc9031ad54
WordWrapString: Fix state after starting a new line
...
After starting a new line, we restart the processing from the line break
position, so we need to set `nextCodepoint` correctly.
Fixes #3449
4 years ago
Gleb Mazovetskiy
e3dc241c2f
Correctly handle ZWSP in WordWrapString
4 years ago
Gleb Mazovetskiy
40b1dc7a12
WordWrap: Require whitespace to break after Latin punctuation
...
This fixes cases such as `github.com`.
As we now require a space after Latin punctuation, we can remove
the list of Latin punctuation symbols and break on the space itself.
We still disallow linebreaks between consecutive fullwidth punctuation
symbols.
4 years ago
Gleb Mazovetskiy
e1dc7df3a5
Fix crash in `WordWrapString`
...
Fixes #3433
4 years ago
Gleb Mazovetskiy
8e5bc0597a
Don't line-break in the middle of a punct sequence
...
Also removes a redundant copy of the input string.
Fixes #3420
4 years ago
Gleb Mazovetskiy
e9a9daa794
DrawString: Stop allocating
...
Switch to a state-machine UTF-8 decoder from the branchless one.
This allows us to avoid copying the string on every `DrawString` call.
4 years ago
Gleb Mazovetskiy
3d308983a8
Migrate to libmpq
...
libmpq is a much simpler alternative to StormLib for reading MPQ archives.
We use our own fork of libmpq: https://github.com/diasurgical/libmpq
Impact:
* DevilutionX is now a lot more portable. Unlike StormLib, libmpq only
needs platform-specific code for Windows.
* Locks around file access **removed** (instead we duplicate the file descriptor for streamed audio only).
* RAM usage is **300 KiB** lower than StormLib.
* Stripped release linux_x86_64 binary is **32 KiB** smaller.
* Amiga build now hangs instead of crashing.
4 years ago
Gleb Mazovetskiy
9dd0474a52
DrawArt: Fix bounds check ( #3395 )
...
The bounds checks were performed against the global screen dimensions
instead of the output buffer dimensions.
Also includes some minor cleanup of DrawArt.
Fixes #3388
4 years ago
Gleb Mazovetskiy
117695489b
DrawArt: Fix bounds check ( #3395 )
...
The bounds checks were performed against the global screen dimensions
instead of the output buffer dimensions.
Also includes some minor cleanup of DrawArt.
Fixes #3388
4 years ago
qndel
5a35e0640b
shorter & better MeasureSolidHorizontalBounds
4 years ago
Anders Jenbo
9cee65da6c
Correct calculation for KerningFitSpacing
4 years ago
Anders Jenbo
b227afc4c4
Do not render text past first encoding error
...
Continuing past the error allows for CTD attacks using special crafted
invalid UTF-8 with a multiby indicator at the end the string
4 years ago
Anders Jenbo
11e37e972a
Port essential parts to use SDL abstraction for file access
4 years ago
Gleb Mazovetskiy
dec45920eb
Text rendering: Support Zero-width space
...
Zero-width space is a non-printing character that indicates a word
boundary.
https://en.wikipedia.org/wiki/Zero-width_space
4 years ago
Anders Jenbo
5b3abbd315
Correct dialog font full width
4 years ago
Anders Jenbo
b3546e3254
Load full width kerning programmatically
4 years ago
Anders Jenbo
f022a341b0
Avoid crashing from missing fonts
4 years ago
Andrew James
949206424e
Enable clang-tidy in Visual Studio projects ( #3101 )
4 years ago
ephphatha
b15e08fc3f
Deduplicate logic in GetAnimationProgress
4 years ago
obligaron
f7efb72314
Fix LoadFileInMem std::array overload
4 years ago
Gleb Mazovetskiy
f4404e1452
WordWrapString: Also break on `,` U+FF0C (FULLWIDTH COMMA)
5 years ago
Gleb Mazovetskiy
ff9affa513
Fix a couple of noisy MSVC warnings
5 years ago
Gleb Mazovetskiy
0c694edaba
WordWrapString: Wrap on punctuation
...
Useful for Chinese and Japanese, which do not have spaces between words,
nor whitespace after punctuation.
5 years ago
Anders Jenbo
4dd8b121ec
Replace TTF with PCX font
5 years ago
Anders Jenbo
d0f70d5468
Correct loading of unicode fonts past row 09
5 years ago
Anders Jenbo
704a04ae4d
Add support for Unicode fonts
5 years ago
Alex
6df826eb02
Fix compiler warnings
5 years ago
Anders Jenbo
7771a08d03
Translatable mainpanel
5 years ago
Gleb Mazovetskiy
4e1ad7ab65
LoadFile: Avoid opening the file twice
...
Previously we were passing the path to `GetFileSize`, which resulted in
opening and closing the file twice.
5 years ago