aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsfan5 <sfan5@live.de>2023-03-05 15:10:44 +0100
committersfan5 <sfan5@live.de>2023-04-08 20:19:35 +0200
commit9d736e8b8baeeacad9cfa94edd18adfcaf000029 (patch)
tree6799a199edaeb82481edea6f101dc744b4507e9f
parentc26e122485a7180edf434c0c1211713ff377d6d7 (diff)
downloadminetest-9d736e8b8baeeacad9cfa94edd18adfcaf000029.tar.xz
Drop ENABLE_GLES option
ENABLE_GLES predates forking Irrlicht. Its primary use was to distinguish Irrlicht-ogles from upstream version as Minetest could be compiled with either. That's not necessary anymore and gets in the way sometimes.
-rw-r--r--README.md1
-rw-r--r--android/native/jni/Android.mk1
-rw-r--r--builtin/settingtypes.txt6
-rw-r--r--src/CMakeLists.txt4
-rw-r--r--src/client/camera.cpp6
-rw-r--r--src/client/guiscalingfilter.cpp2
-rw-r--r--src/client/renderingengine.cpp9
-rw-r--r--src/client/shader.cpp39
-rw-r--r--src/client/tile.cpp9
-rw-r--r--src/client/tile.h8
-rw-r--r--src/cmake_config.h.in1
-rw-r--r--src/defaultsettings.cpp3
-rw-r--r--src/gui/guiEngine.cpp24
-rw-r--r--src/gui/guiEngine.h4
14 files changed, 34 insertions, 83 deletions
diff --git a/README.md b/README.md
index e3b752f9e..62d97c846 100644
--- a/README.md
+++ b/README.md
@@ -256,7 +256,6 @@ General options and their default values:
ENABLE_CURL=ON - Build with cURL; Enables use of online mod repo, public serverlist and remote media fetching via http
ENABLE_CURSES=ON - Build with (n)curses; Enables a server side terminal (command line option: --terminal)
ENABLE_GETTEXT=ON - Build with Gettext; Allows using translations
- ENABLE_GLES=OFF - Enable extra support code for OpenGL ES (requires support by IrrlichtMt)
ENABLE_LEVELDB=ON - Build with LevelDB; Enables use of LevelDB map backend
ENABLE_POSTGRESQL=ON - Build with libpq; Enables use of PostgreSQL map backend (PostgreSQL 9.5 or greater recommended)
ENABLE_REDIS=ON - Build with libhiredis; Enables use of Redis map backend
diff --git a/android/native/jni/Android.mk b/android/native/jni/Android.mk
index b2a8b3d6a..474dbd50c 100644
--- a/android/native/jni/Android.mk
+++ b/android/native/jni/Android.mk
@@ -103,7 +103,6 @@ LOCAL_MODULE := Minetest
LOCAL_CFLAGS += \
-DJSONCPP_NO_LOCALE_SUPPORT \
-DHAVE_TOUCHSCREENGUI \
- -DENABLE_GLES=1 \
-DUSE_CURL=1 \
-DUSE_SOUND=1 \
-DUSE_LEVELDB=0 \
diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt
index 9d4de64d9..58168fa25 100644
--- a/builtin/settingtypes.txt
+++ b/builtin/settingtypes.txt
@@ -230,12 +230,6 @@ fall_bobbing_amount (Fall bobbing factor) float 0.03 0.0 100.0
[**Camera]
-# Camera 'near clipping plane' distance in nodes, between 0 and 0.25
-# Only works on GLES platforms. Most users will not need to change this.
-# Increasing can reduce artifacting on weaker GPUs.
-# 0.1 = Default, 0.25 = Good value for weaker tablets.
-near_plane (Near plane) float 0.1 0 0.25
-
# Field of view in degrees.
fov (Field of view) int 72 45 160
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index afe008395..a00690b28 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -109,10 +109,6 @@ if(BUILD_CLIENT AND ENABLE_SOUND)
endif()
endif()
-# TODO: this should be removed one day, we can enable it unconditionally
-option(ENABLE_GLES "Enable extra support code for OpenGL ES" FALSE)
-mark_as_advanced(ENABLE_GLES)
-
option(ENABLE_TOUCH "Enable Touchscreen support" FALSE)
if(ENABLE_TOUCH)
add_definitions(-DHAVE_TOUCHSCREENGUI)
diff --git a/src/client/camera.cpp b/src/client/camera.cpp
index 13ca7aa5c..dce94495b 100644
--- a/src/client/camera.cpp
+++ b/src/client/camera.cpp
@@ -599,13 +599,7 @@ void Camera::updateViewingRange()
{
f32 viewing_range = g_settings->getFloat("viewing_range");
- // Ignore near_plane setting on all other platforms to prevent abuse
-#if ENABLE_GLES
- m_cameranode->setNearValue(rangelim(
- g_settings->getFloat("near_plane"), 0.0f, 0.25f) * BS);
-#else
m_cameranode->setNearValue(0.1f * BS);
-#endif
m_draw_control.wanted_range = std::fmin(adjustDist(viewing_range, getFovMax()), 4000);
if (m_draw_control.range_all) {
diff --git a/src/client/guiscalingfilter.cpp b/src/client/guiscalingfilter.cpp
index 42508259f..fda525e3f 100644
--- a/src/client/guiscalingfilter.cpp
+++ b/src/client/guiscalingfilter.cpp
@@ -119,7 +119,6 @@ video::ITexture *guiScalingResizeCached(video::IVideoDriver *driver,
(u32)destrect.getHeight()));
imageScaleNNAA(srcimg, srcrect, destimg);
-#if ENABLE_GLES
// Some platforms are picky about textures being powers of 2, so expand
// the image dimensions to the next power of 2, if necessary.
if (!driver->queryFeature(video::EVDF_TEXTURE_NPOT)) {
@@ -131,7 +130,6 @@ video::ITexture *guiScalingResizeCached(video::IVideoDriver *driver,
destimg->drop();
destimg = po2img;
}
-#endif
// Convert the scaled image back into a texture.
scaled = driver->addTexture(scalename, destimg);
diff --git a/src/client/renderingengine.cpp b/src/client/renderingengine.cpp
index 1392b5567..74151423f 100644
--- a/src/client/renderingengine.cpp
+++ b/src/client/renderingengine.cpp
@@ -34,6 +34,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "render/factory.h"
#include "inputhandler.h"
#include "gettext.h"
+#include "filesys.h"
#include "../gui/guiSkin.h"
#if !defined(_WIN32) && !defined(__APPLE__) && !defined(__ANDROID__) && \
@@ -51,10 +52,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <winuser.h>
#endif
-#if ENABLE_GLES
-#include "filesys.h"
-#endif
-
RenderingEngine *RenderingEngine::s_singleton = nullptr;
const float RenderingEngine::BASE_BLOOM_STRENGTH = 1.0f;
@@ -136,12 +133,10 @@ RenderingEngine::RenderingEngine(IEventReceiver *receiver)
#ifdef __ANDROID__
params.PrivateData = porting::app_global;
#endif
-#if ENABLE_GLES
// there is no standardized path for these on desktop
std::string rel_path = std::string("client") + DIR_DELIM
+ "shaders" + DIR_DELIM + "Irrlicht";
params.OGLES2ShaderPath = (porting::path_share + DIR_DELIM + rel_path + DIR_DELIM).c_str();
-#endif
m_device = createDeviceEx(params);
driver = m_device->getVideoDriver();
@@ -289,10 +284,8 @@ static bool getWindowHandle(irr::video::IVideoDriver *driver, HWND &hWnd)
const video::SExposedVideoData exposedData = driver->getExposedVideoData();
switch (driver->getDriverType()) {
-#if ENABLE_GLES
case video::EDT_OGLES1:
case video::EDT_OGLES2:
-#endif
case video::EDT_OPENGL:
hWnd = reinterpret_cast<HWND>(exposedData.OpenGLWin32.HWnd);
break;
diff --git a/src/client/shader.cpp b/src/client/shader.cpp
index ccecb22c3..ce662b41d 100644
--- a/src/client/shader.cpp
+++ b/src/client/shader.cpp
@@ -229,14 +229,12 @@ class MainShaderConstantSetter : public IShaderConstantSetter
CachedVertexShaderSetting<f32> m_perspective_zbias_vertex;
CachedPixelShaderSetting<f32> m_perspective_zbias_pixel;
-#if ENABLE_GLES
// Modelview matrix
CachedVertexShaderSetting<float, 16> m_world_view;
// Texture matrix
CachedVertexShaderSetting<float, 16> m_texture;
// Normal matrix
CachedVertexShaderSetting<float, 9> m_normal;
-#endif
public:
MainShaderConstantSetter() :
@@ -256,11 +254,9 @@ public:
, m_perspective_bias1_pixel("xyPerspectiveBias1")
, m_perspective_zbias_vertex("zPerspectiveBias")
, m_perspective_zbias_pixel("zPerspectiveBias")
-#if ENABLE_GLES
, m_world_view("mWorldView")
, m_texture("mTexture")
, m_normal("mNormal")
-#endif
{}
~MainShaderConstantSetter() = default;
@@ -283,21 +279,21 @@ public:
worldViewProj *= worldView;
m_world_view_proj.set(*reinterpret_cast<float(*)[16]>(worldViewProj.pointer()), services);
-#if ENABLE_GLES
- core::matrix4 texture = driver->getTransform(video::ETS_TEXTURE_0);
- m_world_view.set(*reinterpret_cast<float(*)[16]>(worldView.pointer()), services);
- m_texture.set(*reinterpret_cast<float(*)[16]>(texture.pointer()), services);
-
- core::matrix4 normal;
- worldView.getTransposed(normal);
- sanity_check(normal.makeInverse());
- float m[9] = {
- normal[0], normal[1], normal[2],
- normal[4], normal[5], normal[6],
- normal[8], normal[9], normal[10],
- };
- m_normal.set(m, services);
-#endif
+ if (driver->getDriverType() == video::EDT_OGLES2) {
+ core::matrix4 texture = driver->getTransform(video::ETS_TEXTURE_0);
+ m_world_view.set(*reinterpret_cast<float(*)[16]>(worldView.pointer()), services);
+ m_texture.set(*reinterpret_cast<float(*)[16]>(texture.pointer()), services);
+
+ core::matrix4 normal;
+ worldView.getTransposed(normal);
+ sanity_check(normal.makeInverse());
+ float m[9] = {
+ normal[0], normal[1], normal[2],
+ normal[4], normal[5], normal[6],
+ normal[8], normal[9], normal[10],
+ };
+ m_normal.set(m, services);
+ }
// Set uniforms for Shadow shader
if (ShadowRenderer *shadow = RenderingEngine::get_shadow_renderer()) {
@@ -628,10 +624,7 @@ ShaderInfo ShaderSource::generateShader(const std::string &name,
video::IGPUProgrammingServices *gpu = driver->getGPUProgrammingServices();
// Create shaders header
- bool use_gles = false;
-#if ENABLE_GLES
- use_gles = driver->getDriverType() == video::EDT_OGLES2;
-#endif
+ bool use_gles = driver->getDriverType() == video::EDT_OGLES2;
std::stringstream shaders_header;
shaders_header
<< std::noboolalpha
diff --git a/src/client/tile.cpp b/src/client/tile.cpp
index 14fc316e7..8421465c4 100644
--- a/src/client/tile.cpp
+++ b/src/client/tile.cpp
@@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <algorithm>
#include <ICameraSceneNode.h>
+#include <IVideoDriver.h>
#include "util/string.h"
#include "util/container.h"
#include "util/thread.h"
@@ -617,9 +618,7 @@ u32 TextureSource::generateTexture(const std::string &name)
video::ITexture *tex = NULL;
if (img != NULL) {
-#if ENABLE_GLES
img = Align2Npot2(img, driver);
-#endif
// Create texture from resulting image
tex = driver->addTexture(name.c_str(), img);
guiScalingCache(io::path(name.c_str()), driver, img);
@@ -819,9 +818,7 @@ void TextureSource::rebuildTexture(video::IVideoDriver *driver, TextureInfo &ti)
// shouldn't really need to be done, but can't hurt
std::set<std::string> source_image_names;
video::IImage *img = generateImage(ti.name, source_image_names);
-#if ENABLE_GLES
img = Align2Npot2(img, driver);
-#endif
// Create texture from resulting image
video::ITexture *t = NULL;
if (img) {
@@ -1055,8 +1052,6 @@ video::IImage* TextureSource::generateImage(const std::string &name, std::set<st
return baseimg;
}
-#if ENABLE_GLES
-
/**
* Check and align image to npot2 if required by hardware
* @param image image to check for npot2 alignment
@@ -1094,8 +1089,6 @@ video::IImage *Align2Npot2(video::IImage *image,
return targetimage;
}
-#endif
-
static std::string unescape_string(const std::string &str, const char esc = '\\')
{
std::string out;
diff --git a/src/client/tile.h b/src/client/tile.h
index c60418d12..0597d093e 100644
--- a/src/client/tile.h
+++ b/src/client/tile.h
@@ -28,14 +28,12 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "util/numeric.h"
#include "config.h"
-#if ENABLE_GLES
-#include <IVideoDriver.h>
-#endif
-
class IGameDef;
struct TileSpec;
struct TileDef;
+namespace irr { namespace video { class IVideoDriver; } }
+
typedef std::vector<video::SColor> Palette;
/*
@@ -133,9 +131,7 @@ public:
IWritableTextureSource *createTextureSource();
-#if ENABLE_GLES
video::IImage *Align2Npot2(video::IImage *image, video::IVideoDriver *driver);
-#endif
enum MaterialType{
TILE_MATERIAL_BASIC,
diff --git a/src/cmake_config.h.in b/src/cmake_config.h.in
index 17b70e268..19fb6d4a1 100644
--- a/src/cmake_config.h.in
+++ b/src/cmake_config.h.in
@@ -28,7 +28,6 @@
#cmakedefine01 USE_SPATIAL
#cmakedefine01 USE_SYSTEM_GMP
#cmakedefine01 USE_REDIS
-#cmakedefine01 ENABLE_GLES
#cmakedefine01 HAVE_ENDIAN_H
#cmakedefine01 CURSES_HAVE_CURSES_H
#cmakedefine01 CURSES_HAVE_NCURSES_H
diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp
index ed9363a72..f7a32ee2e 100644
--- a/src/defaultsettings.cpp
+++ b/src/defaultsettings.cpp
@@ -186,9 +186,6 @@ void set_default_settings()
settings->setDefault("fps_max_unfocused", "20");
settings->setDefault("viewing_range", "190");
settings->setDefault("client_mesh_chunk", "1");
-#if ENABLE_GLES
- settings->setDefault("near_plane", "0.1");
-#endif
settings->setDefault("screen_w", "1024");
settings->setDefault("screen_h", "600");
settings->setDefault("autosave_screensize", "true");
diff --git a/src/gui/guiEngine.cpp b/src/gui/guiEngine.cpp
index 54157c792..941ebe754 100644
--- a/src/gui/guiEngine.cpp
+++ b/src/gui/guiEngine.cpp
@@ -38,10 +38,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "client/fontengine.h"
#include "client/guiscalingfilter.h"
#include "irrlicht_changes/static_text.h"
-
-#if ENABLE_GLES
#include "client/tile.h"
-#endif
/******************************************************************************/
@@ -59,11 +56,15 @@ void TextDestGuiEngine::gotText(const std::wstring &text)
/******************************************************************************/
MenuTextureSource::~MenuTextureSource()
{
- for (const std::string &texture_to_delete : m_to_delete) {
- const char *tname = texture_to_delete.c_str();
- video::ITexture *texture = m_driver->getTexture(tname);
- m_driver->removeTexture(texture);
+ u32 before = m_driver->getTextureCount();
+
+ for (const auto &it: m_to_delete) {
+ m_driver->removeTexture(it);
}
+ m_to_delete.clear();
+
+ infostream << "~MenuTextureSource() before cleanup: "<< before
+ << " after: " << m_driver->getTextureCount() << std::endl;
}
/******************************************************************************/
@@ -75,7 +76,7 @@ video::ITexture *MenuTextureSource::getTexture(const std::string &name, u32 *id)
if (name.empty())
return NULL;
-#if ENABLE_GLES
+ // return if already loaded
video::ITexture *retval = m_driver->findTexture(name.c_str());
if (retval)
return retval;
@@ -86,12 +87,11 @@ video::ITexture *MenuTextureSource::getTexture(const std::string &name, u32 *id)
image = Align2Npot2(image, m_driver);
retval = m_driver->addTexture(name.c_str(), image);
- m_to_delete.insert(name);
image->drop();
+
+ if (retval)
+ m_to_delete.push_back(retval);
return retval;
-#else
- return m_driver->getTexture(name.c_str());
-#endif
}
/******************************************************************************/
diff --git a/src/gui/guiEngine.h b/src/gui/guiEngine.h
index 2f182ca81..a95bb3085 100644
--- a/src/gui/guiEngine.h
+++ b/src/gui/guiEngine.h
@@ -111,8 +111,8 @@ public:
private:
/** driver to get textures from */
video::IVideoDriver *m_driver = nullptr;
- /** set of texture names to delete */
- std::set<std::string> m_to_delete;
+ /** set of textures to delete */
+ std::vector<video::ITexture*> m_to_delete;
};
/** GUIEngine specific implementation of OnDemandSoundFetcher */