Commit Graph

352 Commits

Author SHA1 Message Date
sfan5
89d0717779 Delete some dead code 2024-02-18 17:12:51 +01:00
sfan5
19819bd23a Reduce needless use of wchar / stringw 2024-02-18 17:12:51 +01:00
sfan5
2894d9ab03 Add debug output to GL shader loading 2024-02-18 17:12:51 +01:00
HybridDog
f91be59811 Remove support for GL_POINT_SMOOTH and GL_LINE_SMOOTH antialiasing
These antialiasing techniques have been removed in OpenGL 3.1, they were often executed by the CPU, and Minetest does not use them.
The OpenGL wiki recommends that we do not use this functionality in our program.
https://www.khronos.org/opengl/wiki/Multisampling#Smooth_antialiasing
2024-02-17 22:04:01 +01:00
sfan5
ad96fabe4a Remove mistaken code block from OGLES1 driver
Version can never be 200 here, this was probably mistakenly copy-pasted from the OpenGL driver.
2024-02-17 21:01:15 +01:00
sfan5
fe3e41e7ea Set minimum SDL version
It was determined that the touch/mouse hints only exist in this version.
Since it's from 2019 this should be a reasonable minimum.
2024-02-15 10:37:24 +01:00
sfan5
4478b1f1ec Remove old SDL Windows workaround
suggested by @waxtatect
2024-02-15 10:35:21 +01:00
sfan5
3992129735 Bind keypad enter on SDL
fixes https://github.com/minetest/minetest/issues/14170
2024-02-15 10:34:23 +01:00
Fatih Uzunoglu
0dab737d60 Do not use core::max_() with variable that can not be addressed
header struct is packed, and `core::max_()` takes the input as reference.
2024-02-12 16:31:10 +01:00
Fatih Uzunoglu
330150854b SDL: set default for ActiveIcon
getActiveIcon() may be called before ActiveIcon
is initialized, leading to undefined behavior.
2024-02-12 16:31:10 +01:00
y5nw
6779ac83f9
SDL: Improve handling of IMEs (#285)
* Set text input rectangle for IMEs
* Avoid unnecessarily "restarting" text input
2024-02-09 00:08:03 +01:00
Lars Müller
f1504093d1
Ensure that absent bone names work (#284) 2024-02-06 20:22:44 +01:00
SmallJoker
4299ee21d8
CMake: Move generator conditional expressions (#281) 2024-01-22 09:50:29 +01:00
grorp
66786d0059
Make IrrlichtDevice::isWindowVisible do what it says on the tin (#279) 2024-01-19 18:17:26 +01:00
David Heidelberg
9df2f0b944 Undefine SDL2 DirectFB video driver
1. we don't need it
2. it's dropped in SDL 3
3. it breaks compilation on Alpine and postmarketOS with SDL2 enabled
   (and the bug never going to get fixed on SDL2 side)

Signed-off-by: David Heidelberg <david@ixit.cz>
2024-01-18 23:28:45 +01:00
sfan5
c3571261ca Fix build with OpenGL ES 1 2024-01-17 17:55:19 +01:00
sfan5
b349266855 Enable SDL to compile on macOS 2024-01-17 11:00:40 +01:00
sfan5
ee2467d622 Remove some dead code 2024-01-16 23:59:46 +01:00
sfan5
88ca26c418 Define extpointer for SDL + OGLES2 2024-01-16 20:23:23 +01:00
sfan5
8f44270e4a Rip out compressed color formats 2024-01-16 20:23:23 +01:00
sfan5
f86b9b93e8 Fix crash when SDL context fails to create 2024-01-16 18:24:02 +01:00
Lars Mueller
a3ec3a88e8 Fix scene nodes not dropping meshes (memleak) 2024-01-13 18:13:04 +01:00
Gregor Parzefall
7df45b4cf3 SDL: Implement touchscreen support 2024-01-13 14:08:13 +01:00
sfan5
a2b6244f54 Fix build with older SDL2 2024-01-08 23:51:34 +01:00
David Heidelberg
73e62f8676 Keep RTTI for Minetest IPO/LTO
Minetest using RTTI, so we cannot apply the flag here
if we want to start using IPO/LTO.

If we keep `-fno-rtti` here, compiler loses part of informations and
cannot do efficient optimizations.

The benefit of using RTTI on Irrlicht disappears with IPO/LTO on whole binary.

Signed-off-by: David Heidelberg <david@ixit.cz>
2024-01-06 21:30:15 +01:00
HybridDog
fb4ee6ac93 Fix mip map size calculation for non-square textures
The size of a mip map is `max{floor(width / 2 ^ level), 1} x max{floor(height / 2 ^ level), 1}`,
where `width x height` is the size of the full-resolution image,
`level` is the integer mip map level
and the smallest mip map has `1 x 1` resolution.
If `regenerateMipMapLevels` is called with custom mip map data,
the mip map sizes are calculated in this function and separately in `uploadTexture`.
`uploadTexture` calculates a size by `floor(width / 2 ^ level) x floor(height / 2 ^ level)`.

To support non-square textures, after this change,
`uploadTexture` sets the mip map width or height to `1` if it is `0`.
2024-01-05 14:09:50 +01:00
Muhammad Rifqi Priyo Susanto
91e4129615
Windows: Return early if the clipboard data is not Unicode text 2024-01-04 21:24:50 +01:00
grorp
54b82aad26
Add IrrlichtDevice::isWindowVisible for Android 2024-01-04 16:48:35 +01:00
sfan5
03dd8b0336 Update vendored khrplatform.h 2023-12-19 22:56:31 +01:00
sfan5
6e6b4a6f3c Fix some minor issues with GL loader
fixes #258
2023-12-19 22:56:31 +01:00
sfan5
0110826ce9 Resync mt_opengl_loader.cpp with BindingGenerator.lua
also add a warning that you can't edit it by hand
2023-12-19 22:56:31 +01:00
Vitaliy
9a439a3646
Use SDL2 by default
Except on Android and macOS, for now
2023-12-17 18:46:08 +01:00
paradust7
bb7c06d32a Initialize X11 thread safety 2023-12-10 16:29:22 +01:00
Muhammad Rifqi Priyo Susanto
a2884e4000
Android: Make ALooper_pollAll call always non-blocking (#255) 2023-11-30 15:52:04 +01:00
numzero
85081d6fe0 Fix off-by-one error in the TGA RLE decompressor 2023-11-01 14:40:11 +01:00
numzero
a07cfc0f7a Require C++17 at the top level 2023-11-01 14:40:11 +01:00
sfan5
6fccc79270 Convert built-in font to PNG 2023-10-25 16:54:43 +02:00
Loic Blot
7cade6f27f cleanup: remove _IRR_COMPILE_ANDROID_ASSET_READER_ build flag
it's enabled inconditionally on android

also remove some _IRR_COMPILE_WITH_ANDROID_DEVICE_ which are useless because cmake is already properly configured
2023-10-22 12:19:14 +02:00
Loic Blot
ae63f1bf02 build: drop _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_
it's enabled inconditionally
2023-10-22 12:19:14 +02:00
cutealien
4a7d3de89a Merging r6555 through r6560 from branch releases/1.8 to trunk
- Fixing buffer overflow in tga loader

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6561 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-10-21 17:27:11 +02:00
cutealien
9813b460e1 Fix number overflows in TGA loader causing crashes
Image size calculation could overflow s32 in one place (but not others where it was done correct), which first lead to wrong amount of memory getting allocated for image data and later crash in the CColorConverter.
Thanks @sfan5 for his fuzzing tests @https://github.com/minetest/irrlicht/issues/236
and @erlehmann for passing them on: https://irrlicht.sourceforge.io/forum/viewtopic.php?t=52925
Also updating changes.txt with TGA loader changes from this and previous commits.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6535 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-10-15 13:54:39 +02:00
cutealien
565f14677c Fix crash caused by memory overwriting in TGA loader caused by bad RLE data
From sfan5's fuzzing test reported in Minetest here: https://github.com/minetest/irrlicht/issues/236
Was missing test if it writes beyond allocated memory which can be triggered by TGA's which lie in their RLE data.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6534 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-10-15 13:54:24 +02:00
cutealien
f53af0f2cf TGA images with palettes in 24 or 32 bit now create 32 bit images
Was creating 16-bit images for those before.
Could also support 24-bit images, but either we need another convert function or another palette for that (the 16 and 32 bit both work with 32 bit palettes, the 24 bit conversion function only with 24 bit palettes)

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6533 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-10-15 13:54:21 +02:00
cutealien
05ebc43222 Fix TGA's with bad palette colors reading from behind palette memory
TGA's can claim to use less palette colors than they later do.
We only support 8-bit palettes, so to make this safer lets just always allocate at least 256 bytes.
Thanks @erlehmann for report and testcase: https://irrlicht.sourceforge.io/forum/viewtopic.php?p=307191
Based on Minetest bug report: https://github.com/minetest/irrlicht/issues/236

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6532 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-10-15 13:54:16 +02:00
cutealien
c01de80583 Merging r6511 through r6520 from branch releases/1.8 to trunk
Note: Due to OSX always failing merge OSX it's rather applying a second patch
from Ryan Schmidt from bugreport #462 to trunk
(Not sure why svn merging always fails for OSX. Probably related to MacOSX files getting moved in the past. Was that done without svn move commands? I guess that can't be fixed anymore now)

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6521 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-10-15 13:49:54 +02:00
cutealien
627a3a5172 Spelling fixes
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6475 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-10-15 13:39:42 +02:00
cutealien
01e05f3c94 Fix recently broken scroll behaviour of listbox with moveOverSelect
This also fixes the combobox which users the listbox like that.
This got broken in [r6454] which had fixed the events send out by the listbox
Note: Still a bit strange behaviour when leaving the combobox at the bottom, but that was already that way in Irrlicht 1.8, so I've got to investigate that on it's own.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6463 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-10-15 13:38:24 +02:00
cutealien
b673a4b2bb Tiny spelling fixes
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6462 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-10-15 13:38:06 +02:00
cutealien
5e01152f56 Avoid warning in VS 2022
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6460 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-10-15 13:37:30 +02:00
cutealien
c2dd664fc6 CIrrDeviceWin32::yield() now uses Sleep(0) instead of Sleep(1).
We had changed that once before in the other direction in svn r421
Reason back then was "Sleep(0) doesn't allow any lower priority threads to execute"
But Microsoft changed the behaviour of Sleep(0) after Windows XP so that's no longer true.
And the costs of it is pretty high - due to this using a timer with a 15ms resolutions it meant not just giving up the thread but it also always waited for 15ms on Windows.
I also replaced a few sleep calls in examples for that reason with yield() calls.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6459 dfc29bdd-3216-0410-991c-e03cc46cb475
2023-10-15 13:37:26 +02:00