17
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-10-17 19:09:25 +02:00
Commit Graph

66 Commits

Author SHA1 Message Date
jerrrrycho
7c0f81fb30 refactor(sonar): rely on class template argument deduction (cpp:S6012)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 16:37:55 +02:00
jerrrrycho
89583b2569 refactor(sonar): declare loop counters in the for statement (cpp:S5955)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 16:34:28 +02:00
jerrrrycho
24425d222f refactor(sonar): access static members through the class (cpp:S2209)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 16:24:59 +02:00
jerrrrycho
51337cb1b7 refactor(sonar): use std::ranges algorithms and std::erase(_if) (cpp:S6197)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 16:24:06 +02:00
jerrrrycho
03652a5934 refactor(sonar): use range-based loops and ranges algorithms (cpp:S5566)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 16:13:12 +02:00
jerrrrycho
b6349b76e3 refactor(sonar): use structured bindings for pair access (cpp:S6005)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 16:06:32 +02:00
jerrrrycho
9c7043d013 refactor(sonar): remove unused variables, captures and private fields (cpp:S1481, cpp:S1068)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 16:03:19 +02:00
jerrrrycho
5a806223e7 refactor(sonar): document intentionally empty functions (cpp:S1186)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:56:34 +02:00
jerrrrycho
41e802eb7a refactor(sonar): remove redundant parentheses (cpp:S1110)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:55:46 +02:00
jerrrrycho
8f89dcefcd refactor(sonar): use auto where the type is spelled out on the right (cpp:S5827)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:52:25 +02:00
jerrrrycho
95bc9bd511 refactor(sonar): use try_emplace for map insertion (cpp:S6030)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:51:29 +02:00
jerrrrycho
9b89a5d887 refactor(sonar): scope single-use variables in if init-statements (cpp:S6004)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:44:18 +02:00
jerrrrycho
f8104bd0dd refactor(sonar): merge collapsible nested if statements (cpp:S1066)
Comments that preceded the inner if are kept above the merged statement.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:39:11 +02:00
jerrrrycho
3198cabc78 refactor(sonar): declare non-mutating member functions const (cpp:S5817)
Virtual functions are left untouched so overrides keep matching.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:26:48 +02:00
jerrrrycho
8c23c1fe2b refactor(sonar): make narrowing conversions explicit (cpp:S5276)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:16:28 +02:00
jerrrrycho
7b3109061e refactor(sonar): use =default for trivial special members (cpp:S3490)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:05:45 +02:00
jerrrrycho
3d7a06f425 refactor(sonar): prefer using over typedef (cpp:S5416)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:05:42 +02:00
jerrrrycho
65ded920d2 refactor(sonar): remove empty statements, one declaration per statement (cpp:S1116, cpp:S1659)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:03:30 +02:00
jerrrrycho
8ce68e3d41 refactor(sonar): use override instead of redundant virtual (cpp:S3471)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 14:55:56 +02:00
jerrrrycho
79bd0c8e91 fix(sonar): addressing reliability/security issues (#202) 2026-10-04 20:00:13 +02:00
pawelw
51521a135a Text displays: accept characters above 127, in windows-1250 or utf-8 (#198)
* Text displays: accept characters above 127, in windows-1250 or utf-8

A text display (sub-model of type "text") looks up the sub-model of each character
in a 256 entry table, and indexed it with a plain char. With char being signed, any
character above 127 gave a negative index: reading the text went outside the table,
and so did filling the table if a character sub-model had such a name. In effect the
displays could only show ASCII, and a text with national characters could crash.

The lookup is now keyed by unicode code point. Both the displayed text and the names
of the character sub-models are decoded as utf-8 if they are valid utf-8, and as
windows-1250 otherwise, so legacy (ansi) sceneries and models work next to utf-8
ones, and the two can be mixed. A short ansi text can be valid utf-8 by accident
(two upper case accented letters in a row will do); when both readings are possible
the one which finds more of its characters in the model is used.

The rest is unchanged: the first character of the text still isn't displayed, the
characters are still drawn in the translucent pass only. A missing text pointer no
longer gets dereferenced.

* Text displays: prepare the characters once for each text

The sequence of character sub-models was cached for the last text only, so
displays of several instances drawn in turn decoded their texts again on
every draw. It is now kept for each text the display shows; the texts of the
instances don't change, so a draw costs a single lookup.

Also the comments added in the renderers are now in English.

* Text displays: move the text decoding to utilities

utf8_to_utf32() and win1250_to_utf32(), with the windows-1250 table, now sit
next to win1250_to_utf8(). The existing function maps only the Polish letters
and passes other bytes above 127 through, so it can't serve the displays.

* Text displays: address the SonarCloud findings

std::array instead of the C-style arrays, the utf-8 sequence length worked
out in a function of its own instead of nested conditional operators,
std::byte for the bit operations, std::ranges::count_if and contains().
The character loop of the renderers moved to Render_Alpha_text(), which
takes the nesting back to the limit, and the static pasText is accessed
through the class.
2026-10-03 12:05:32 +02:00
jerrrrycho
06fc3915f4 fix(renderer): guard replacable skin lookup and light colour access (#200) 2026-10-02 21:19:16 +02:00
09e02a75a7 Merge pull request #195 from MaSzyna-EU07/fix/instancing
Improve instancing rendering speed
2026-10-01 20:18:19 +02:00
jerrrrycho
06078ddab9 fix: other sonar sast fixes (#193) 2026-10-01 13:30:25 +02:00
d670c4b116 perf(instancing): skip models without shadow casters in shadow passes 2026-10-01 12:57:33 +02:00
2130d175e9 perf(instancing): cache instance rotation and group lod bands linearly 2026-10-01 12:43:07 +02:00
20f536f05e fix(instancing): keep batches correct after load-time classification 2026-10-01 11:51:41 +02:00
jerrrrycho
f05b58b0e9 Revert "fix: yet other sonar sast fixes"
This reverts commit 403a6d1f9f.
2026-10-01 08:01:23 +02:00
jerrrrycho
403a6d1f9f fix: yet other sonar sast fixes 2026-10-01 07:58:28 +02:00
b67bbb19e6 Merge pull request #188 from MaSzyna-EU07/feat/dynobj-seasonal-models
seasonal model variants for vehicle exterior model
2026-09-28 21:21:49 +02:00
jerrrrycho
176427f96b refactor: sonar c++20 changes (#185) 2026-09-28 21:08:15 +02:00
551f6dbc3b seasonal model variants for vehicle exterior model 2026-09-28 20:49:18 +02:00
jerrrrycho
8fbb482350 feat(materials): texture randomization for loads
* feat(materials): texture randomization for loads
2026-09-27 00:09:16 +02:00
Sebastian Krzyszkowiak
c58d218fe7 opengl33renderer: Don't render stars with strong fog (#134)
Stars aren't currently affected by fog. Band-aid it and don't render them
at all when fog is stronger than 500m.
2026-07-15 21:48:27 +02:00
Sebastian Krzyszkowiak
fdc9ea7099 opengl33renderer: Brighten up the clouds
With tonemapping, clouds need to stand out above 1.0 to reach proper
white levels.

Note that this should get disabled if tonemapping isn't used, in case
it's made properly configurable in the future.
2026-06-30 05:42:55 +02:00
Sebastian Krzyszkowiak
f2a7cc4f98 opengl33renderer: Adjust sun intensity based on overcast 2026-06-30 01:56:39 +02:00
5a39ed5193 ImGuizmo System OpenGL 2026-06-17 01:19:59 +02:00
1aac9b4e76 Merge pull request #111 from MaSzyna-EU07/opengl-instancing
Some rendering improvements
2026-06-16 23:09:12 +02:00
c0abea1473 Merge pull request #109 from docentYT/fix-compilation-warnings
Fix compilation warnings
2026-06-16 11:14:25 +02:00
426ee0baac use textureGather for shadow PCF 2026-05-26 22:08:06 +02:00
26c11ddca9 Improve sleeper LOD calculation 2026-05-24 15:22:44 +02:00
64a65b81ea Sleeper culling + Cell-level distance pre-cull 2026-05-23 20:36:41 +02:00
aff225c95f Global frame buckets 2026-05-23 19:28:29 +02:00
1be56de0fa Add sleepermodel optional parameter for tracks 2026-05-19 22:10:47 +02:00
docentYT
2bb8a64877 Specify auto as reference where possible 2026-05-12 19:16:33 +02:00
docentYT
81eadbef73 Do not use temp variable when it is not needed 2026-05-12 18:19:11 +02:00
docentYT
e95e00a2e2 Use texture id casting recommended by ImGui wiki 2026-05-12 18:04:50 +02:00
docentYT
bcb9e644fb Replace probably wrong == with = 2026-05-12 00:04:08 +02:00
3419666070 scale/endscale/localscale per node model 2026-05-10 13:12:49 +02:00
587077629f Enable instancing 2026-05-09 23:29:20 +02:00