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
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>
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>
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`.
The irrString implementation doesn't allow constructing a string with a
size that would exceed a u32, so it should be safe to narrow the size of
the underlying STL container back to a u32.
This fixes 5 narrowing cast warnings from Visual Studio 17 2022.