Commit Graph

992 Commits

Author SHA1 Message Date
sfan5 fe17ab20df Refactor profiler and related classes 2024-04-19 13:12:19 +02:00
grorp f2b5c35fa2
TouchScreenGUI dehardcoding refactor (#14472) 2024-04-17 15:59:52 +02:00
sfan5 7a6ca85081 Expose OpenGL debugging as a normal setting 2024-04-15 17:48:33 +02:00
Wuzzy 9f263319ca
Fix 4dir nodebox sometimes not rendering face (#14533) 2024-04-14 11:57:13 +02:00
Gregor Parzefall 07fdf7158d Migrate the Android port to SDL2 2024-04-08 20:15:37 +02:00
DS e12db0c182
Sounds: Queue more than two buffers if pitch is high (#14515)
Pitch changes playback speed. So always enqueuing 2 buffers did not suffice
(and it was unnecessary complicated).
2024-04-07 22:06:34 +02:00
DS 1d673ce075
Print filenames in irrlicht png warnings (#14525)
Makes warnings like this more informative:
`WARNING[Main]: Irrlicht: PNG warning: iCCP: known incorrect sRGB profile`
2024-04-07 22:06:13 +02:00
grorp 9bee6d899b Fix invisible crosshair with effective HUD scaling < 1 2024-04-06 12:10:12 +02:00
Gregor Parzefall fd8e02195e Fix local server startup and shutdown blocking the main thread
Co-authored-by: sfan5 <sfan5@live.de>
2024-04-05 13:00:21 +02:00
Gregor Parzefall b2982a6f14 Fix all cached media being loaded at once on the main thread 2024-04-05 13:00:21 +02:00
sfan5 a9a0f1e129
Fix GLES shader precision issues (#14516) 2024-04-05 13:00:10 +02:00
sfan5 f8bff346f4
Batched rendering of particles (#14489)
Co-authored-by: x2048 <codeforsmile@gmail.com>
Co-authored-by: Desour <ds.desour@proton.me>
2024-04-03 13:56:49 +02:00
sfan5 57a737c417 Improve logging of driver probing 2024-04-03 13:56:27 +02:00
Gregor Parzefall 517f1602aa Re-add "long tap to punch" as a client-side setting 2024-03-30 11:40:50 +01:00
grorp 6e3246c5fd
Limit crosshair scaling to integer multiples to avoid distortion (#14501) 2024-03-30 11:07:36 +01:00
cx384 673d2499e8 Refactor texturepaths.cpp and SourceImageCache 2024-03-30 11:06:44 +01:00
cx384 6ac053bbaa Extract image generation/cache from texturesource.cpp 2024-03-30 11:06:44 +01:00
Elias Åström bb6782ca58
Add repeat_dig_time setting (#14295) 2024-03-30 11:05:58 +01:00
sfan5 d53ef90a73 Remove Irrlicht versioning 2024-03-27 20:55:48 +01:00
rubenwardy 24cc33e704
Add button_url[] and hypertext element to allow mods to open web pages (#13825)
Fixes #12500
2024-03-24 17:19:23 +00:00
sfan5 5727d74d37 Avoid including client headers on server builds 2024-03-20 16:37:32 +01:00
sfan5 bc4ab8b99e General code refactoring/improvements in server, treegen and connection 2024-03-20 16:37:32 +01:00
HybridDog cda112493a
Faster blit_with_alpha() (#14448)
* Add test nodes for alpha compositing and the fill texture modifier

Texture test nodes can be helpful to test if `blit_with_alpha` works correctly.

The alpha compositing test node covers different cases where pixel colors are mixed with each other.
The test currently fails because `blitPixel` does not work correctly if a semi-transparent color
is drawn on top of another semi-transparent color.
The test nodes for the fill texture modifier show if the size and position arguments of the modifier work correctly.
They do not cover special cases such as very large or negative position or size values.

* Faster blit_with_alpha()

The `blit_with_alpha` function has a noticeable effect on the time it takes to join a game.

To reduce the join times, I replace the `blit_with_alpha` function with a new one:
* It does not uses floating-point numbers.
* It directly operates on the raw pixel data instead of using the comparatively
  slow `setPixel` and `getPixel` functions from Irrlicht.
  Only ECF_A8R8G8B8 base images are supported now.
  If the top image does not have the ECF_A8R8G8B8 color format, it is converted;
  I assume that this happens rarely.
* There are case distinctions for fully opaque, fully transparent and semi-transparent pixels.
  This empirically increases the performance since the mixing between two semi-transparent happens rarely.
* The new function no longer has the `src_pos` argument since it was always the zero vector.
* The function is only documented once where it is declared.

For backwards compatibility, `blit_with_alpha` still mixes colors without gamma correction.
`blit_with_alpha` nonetheless behaves slightly different than before:
If a semi-transparent pixel is drawn on top of another semi-transparent pixel,
the color is mixed in a way which we can consider to be more correct now.
2024-03-19 19:56:47 +01:00
cx384 234b01a8c2
Item meta pointing range (#14347) 2024-03-17 15:55:38 +01:00
Gregor Parzefall 4f84b01356 Touchscreen: Fix virtual joystick sometimes going backwards
This fixes a regression introduced by 34286d77c7 / #14075.
2024-03-17 15:00:37 +01:00
grorp c8b615acc9
Remove excessive touchscreengui.h includes (#14466) 2024-03-17 14:59:50 +01:00
SmallJoker 02a893d613 Client: fix failing assert on empty texture name 2024-03-10 10:50:04 +01:00
Lars Müller bf52d1e624
Fix attached sounds stopping if objects are removed serverside (#14436)
Restores backwards compatibility for death sounds or other sounds that are not supposed to be "cut off" abruptly.

---------

Co-authored-by: sfan5 <sfan5@live.de>
Co-authored-by: grorp <gregor.parzefall@posteo.de>
2024-03-06 20:36:02 +01:00
sfan5 badd42789a Move PlayerSettings class to client code 2024-03-06 18:03:57 +01:00
sfan5 9b97147637 Fix assertion failure in clientlauncher.cpp 2024-03-03 19:11:37 +01:00
cx384 879f7e9f03 Refactor tile.cpp/h parts except texturesource.cpp 2024-03-03 15:52:05 +01:00
cx384 aaf77025b6 Split up tile.cpp/h 2024-03-03 15:52:05 +01:00
sfan5 bb7f57b095 VBO-related optimizations and improvements (#14395) 2024-02-29 17:20:57 +01:00
sfan5 d85c842ce9 Refactor fog shader to reuse Irrlicht values 2024-02-29 17:20:50 +01:00
sfan5 dce166dc93 Support deleting shader materials 2024-02-29 17:20:50 +01:00
sfan5 13a0e5fb4a Share FpsControl code between game and menu 2024-02-29 17:20:50 +01:00
sfan5 0c3a4cc7b9 Improve ergonomics of CachedShaderSetting 2024-02-29 17:20:49 +01:00
sfan5 e9ab5bc223 Factor shadow constants out of MainShaderConstantSetter 2024-02-29 17:20:49 +01:00
sfan5 5da18d34ba Properly warn that shader queue is unimplemented 2024-02-29 17:20:49 +01:00
sfan5 09d542dfe0 Drop enable_vbo setting
Consistently applying this setting requires some code work,
because Irrlicht does not provide a global toggle.
At the same time I don't see any reason for someone to disable this.
2024-02-29 17:20:49 +01:00
sfan5 5280863300 Set VBO hints in more places 2024-02-29 17:20:49 +01:00
sfan5 fbec378869 Fix more type promotion mistakes
Someone of these are probably actual bugs and gcc totally doesn't care to warn about them, wtf?
This issue seems to be new with the IrrlichtMt update.
2024-02-26 22:07:40 +01:00
sfan5 9fcd7f2dc0 Fix clang-tidy type promotion errors 2024-02-26 20:47:47 +01:00
sfan5 5d8a22066c
Change how max_lag is calculated and reported (#14378)
-Change how max_lag is calculated and reported

- Cap singleplayer step at 60Hz

- Clarify dedicated_server_step
2024-02-26 20:46:57 +01:00
sfence 63a9853811
Remove attached sounds when the active object is removed (#14341) 2024-02-25 22:10:39 +00:00
sfan5 492aab20fe Fix compiler warnings 2024-02-24 12:39:12 +01:00
numzero bf2098c07f Decouple MeshMakeData from Client 2024-02-22 15:45:17 +00:00
numzero 2f35b121a4 Const correctness 2024-02-22 15:45:17 +00:00
David Heidelberg 34286d77c7
Allow toggling touchscreen mode at runtime (#14075)
Signed-off-by: David Heidelberg <david@ixit.cz>
Co-authored-by: Gregor Parzefall <gregor.parzefall@posteo.de>
2024-02-22 15:44:49 +00:00
sfan5 e3cc26cb7c
Irrlicht support changes (#14383) 2024-02-19 21:14:47 +01:00