Commit Graph

974 Commits

Author SHA1 Message Date
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
Lars Müller 4acbd59162
Support absent scene node names (#14330)
Contains a hack to support IrrlichtMT revision 14 for now (until we release revision 15)
2024-02-18 11:39:16 +01:00
sfan5 6ca214fefc
Introduce `std::string_view` into wider use (#14368) 2024-02-17 15:35:33 +01:00
sfan5 2b97fead9e Fix some potential iterator invalidation issues 2024-02-16 12:34:40 +01:00
cx384 9ac6d330b4
Fix minimap textures overwrite (#14349) 2024-02-15 21:52:41 +01:00
DS 4843890c56
Inline g/setPixel in imageCleanTransparent (#14323) 2024-02-15 19:38:23 +01:00
lhofhansl c81e0b7433
Allow shaders with disabled post processing pipeline (#14338)
- Allow disabling of the post processing pipeline while leaving shaders enabled
- Also disable post processing on Android by default
2024-02-15 08:25:33 -08:00
paradust7 e2ccd14c05
Allow using VBOs for meshes all the way down to 4 vertices (#14366)
This may improve performance substantially if there are many meshes with "few" vertices that would otherwise be retransmitted to the GPU every frame. In testing, this does not seem to decrease performance, even if as few as 4 vertices are used (e.g. particles).
2024-02-12 23:20:48 +01:00
David Heidelberg eb52a149a0
Enable IPO/LTO by default except for debug builds (#14198)
Test case:

```
$ cmake . -DRUN_IN_PLACE=TRUE -DCMAKE_BUILD_TYPE=Release -DBUILD_SERVER=TRUE -DENABLE_TOUCH=FALSE

         minetest minetestserver
W/o LTO:      13M           7.3M
W/  LTO:      11M           5.9M
difference:   15%            19%
```

Also fixes various compiler warnings resulting from compilation using LTO.

---------

Signed-off-by: David Heidelberg <david@ixit.cz>
2024-02-09 00:01:12 +01:00
cx384 adaa4cc2f3
Move hard coded minimap to builtin (#14071) 2024-02-07 20:13:23 +01:00
sfan5 93381014a0 Bypass media transfer in single player 2024-02-04 21:23:05 +01:00
techno-sam 176e674a51
Add wear bar color API (#13328)
---------

Co-authored-by: Muhammad Rifqi Priyo Susanto <muhammadrifqipriyosusanto@gmail.com>
Co-authored-by: Lars Müller <34514239+appgurueu@users.noreply.github.com>
Co-authored-by: grorp <gregor.parzefall@posteo.de>
2024-02-02 21:21:00 +01:00
Lars Mueller 40bf88ac74 Performance: Limit blitting work to overlapping area 2024-01-28 13:01:54 +01:00
sfan5 ffec698d3e Change how [combine parameters are checked
the old checks were too strict
2024-01-28 13:01:54 +01:00
grorp fbec168e91
Only pause rendering if the Android activity is stopped (#14211) 2024-01-27 14:37:00 +01:00
sfan5 5dbc1d4c08 Move some files to src/server/ 2024-01-27 10:33:32 +01:00
sfan5 397682a5b0 Clean up client and server command sending / tables 2024-01-27 10:33:32 +01:00
sfan5 4158759265 Move mtevent.h to src/client/ 2024-01-26 22:10:36 +01:00
sfan5 8927e7caf6 Handle some edge cases in tile images 2024-01-26 22:10:36 +01:00