mirror of
https://github.com/minetest/minetest.git
synced 2024-11-30 03:23:45 +01:00
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.
This commit is contained in:
parent
c26e122485
commit
9d736e8b8b
@ -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_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_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_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_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_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
|
ENABLE_REDIS=ON - Build with libhiredis; Enables use of Redis map backend
|
||||||
|
@ -103,7 +103,6 @@ LOCAL_MODULE := Minetest
|
|||||||
LOCAL_CFLAGS += \
|
LOCAL_CFLAGS += \
|
||||||
-DJSONCPP_NO_LOCALE_SUPPORT \
|
-DJSONCPP_NO_LOCALE_SUPPORT \
|
||||||
-DHAVE_TOUCHSCREENGUI \
|
-DHAVE_TOUCHSCREENGUI \
|
||||||
-DENABLE_GLES=1 \
|
|
||||||
-DUSE_CURL=1 \
|
-DUSE_CURL=1 \
|
||||||
-DUSE_SOUND=1 \
|
-DUSE_SOUND=1 \
|
||||||
-DUSE_LEVELDB=0 \
|
-DUSE_LEVELDB=0 \
|
||||||
|
@ -230,12 +230,6 @@ fall_bobbing_amount (Fall bobbing factor) float 0.03 0.0 100.0
|
|||||||
|
|
||||||
[**Camera]
|
[**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.
|
# Field of view in degrees.
|
||||||
fov (Field of view) int 72 45 160
|
fov (Field of view) int 72 45 160
|
||||||
|
|
||||||
|
@ -109,10 +109,6 @@ if(BUILD_CLIENT AND ENABLE_SOUND)
|
|||||||
endif()
|
endif()
|
||||||
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)
|
option(ENABLE_TOUCH "Enable Touchscreen support" FALSE)
|
||||||
if(ENABLE_TOUCH)
|
if(ENABLE_TOUCH)
|
||||||
add_definitions(-DHAVE_TOUCHSCREENGUI)
|
add_definitions(-DHAVE_TOUCHSCREENGUI)
|
||||||
|
@ -599,13 +599,7 @@ void Camera::updateViewingRange()
|
|||||||
{
|
{
|
||||||
f32 viewing_range = g_settings->getFloat("viewing_range");
|
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);
|
m_cameranode->setNearValue(0.1f * BS);
|
||||||
#endif
|
|
||||||
|
|
||||||
m_draw_control.wanted_range = std::fmin(adjustDist(viewing_range, getFovMax()), 4000);
|
m_draw_control.wanted_range = std::fmin(adjustDist(viewing_range, getFovMax()), 4000);
|
||||||
if (m_draw_control.range_all) {
|
if (m_draw_control.range_all) {
|
||||||
|
@ -119,7 +119,6 @@ video::ITexture *guiScalingResizeCached(video::IVideoDriver *driver,
|
|||||||
(u32)destrect.getHeight()));
|
(u32)destrect.getHeight()));
|
||||||
imageScaleNNAA(srcimg, srcrect, destimg);
|
imageScaleNNAA(srcimg, srcrect, destimg);
|
||||||
|
|
||||||
#if ENABLE_GLES
|
|
||||||
// Some platforms are picky about textures being powers of 2, so expand
|
// Some platforms are picky about textures being powers of 2, so expand
|
||||||
// the image dimensions to the next power of 2, if necessary.
|
// the image dimensions to the next power of 2, if necessary.
|
||||||
if (!driver->queryFeature(video::EVDF_TEXTURE_NPOT)) {
|
if (!driver->queryFeature(video::EVDF_TEXTURE_NPOT)) {
|
||||||
@ -131,7 +130,6 @@ video::ITexture *guiScalingResizeCached(video::IVideoDriver *driver,
|
|||||||
destimg->drop();
|
destimg->drop();
|
||||||
destimg = po2img;
|
destimg = po2img;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
// Convert the scaled image back into a texture.
|
// Convert the scaled image back into a texture.
|
||||||
scaled = driver->addTexture(scalename, destimg);
|
scaled = driver->addTexture(scalename, destimg);
|
||||||
|
@ -34,6 +34,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||||||
#include "render/factory.h"
|
#include "render/factory.h"
|
||||||
#include "inputhandler.h"
|
#include "inputhandler.h"
|
||||||
#include "gettext.h"
|
#include "gettext.h"
|
||||||
|
#include "filesys.h"
|
||||||
#include "../gui/guiSkin.h"
|
#include "../gui/guiSkin.h"
|
||||||
|
|
||||||
#if !defined(_WIN32) && !defined(__APPLE__) && !defined(__ANDROID__) && \
|
#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>
|
#include <winuser.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLE_GLES
|
|
||||||
#include "filesys.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
RenderingEngine *RenderingEngine::s_singleton = nullptr;
|
RenderingEngine *RenderingEngine::s_singleton = nullptr;
|
||||||
const float RenderingEngine::BASE_BLOOM_STRENGTH = 1.0f;
|
const float RenderingEngine::BASE_BLOOM_STRENGTH = 1.0f;
|
||||||
|
|
||||||
@ -136,12 +133,10 @@ RenderingEngine::RenderingEngine(IEventReceiver *receiver)
|
|||||||
#ifdef __ANDROID__
|
#ifdef __ANDROID__
|
||||||
params.PrivateData = porting::app_global;
|
params.PrivateData = porting::app_global;
|
||||||
#endif
|
#endif
|
||||||
#if ENABLE_GLES
|
|
||||||
// there is no standardized path for these on desktop
|
// there is no standardized path for these on desktop
|
||||||
std::string rel_path = std::string("client") + DIR_DELIM
|
std::string rel_path = std::string("client") + DIR_DELIM
|
||||||
+ "shaders" + DIR_DELIM + "Irrlicht";
|
+ "shaders" + DIR_DELIM + "Irrlicht";
|
||||||
params.OGLES2ShaderPath = (porting::path_share + DIR_DELIM + rel_path + DIR_DELIM).c_str();
|
params.OGLES2ShaderPath = (porting::path_share + DIR_DELIM + rel_path + DIR_DELIM).c_str();
|
||||||
#endif
|
|
||||||
|
|
||||||
m_device = createDeviceEx(params);
|
m_device = createDeviceEx(params);
|
||||||
driver = m_device->getVideoDriver();
|
driver = m_device->getVideoDriver();
|
||||||
@ -289,10 +284,8 @@ static bool getWindowHandle(irr::video::IVideoDriver *driver, HWND &hWnd)
|
|||||||
const video::SExposedVideoData exposedData = driver->getExposedVideoData();
|
const video::SExposedVideoData exposedData = driver->getExposedVideoData();
|
||||||
|
|
||||||
switch (driver->getDriverType()) {
|
switch (driver->getDriverType()) {
|
||||||
#if ENABLE_GLES
|
|
||||||
case video::EDT_OGLES1:
|
case video::EDT_OGLES1:
|
||||||
case video::EDT_OGLES2:
|
case video::EDT_OGLES2:
|
||||||
#endif
|
|
||||||
case video::EDT_OPENGL:
|
case video::EDT_OPENGL:
|
||||||
hWnd = reinterpret_cast<HWND>(exposedData.OpenGLWin32.HWnd);
|
hWnd = reinterpret_cast<HWND>(exposedData.OpenGLWin32.HWnd);
|
||||||
break;
|
break;
|
||||||
|
@ -229,14 +229,12 @@ class MainShaderConstantSetter : public IShaderConstantSetter
|
|||||||
CachedVertexShaderSetting<f32> m_perspective_zbias_vertex;
|
CachedVertexShaderSetting<f32> m_perspective_zbias_vertex;
|
||||||
CachedPixelShaderSetting<f32> m_perspective_zbias_pixel;
|
CachedPixelShaderSetting<f32> m_perspective_zbias_pixel;
|
||||||
|
|
||||||
#if ENABLE_GLES
|
|
||||||
// Modelview matrix
|
// Modelview matrix
|
||||||
CachedVertexShaderSetting<float, 16> m_world_view;
|
CachedVertexShaderSetting<float, 16> m_world_view;
|
||||||
// Texture matrix
|
// Texture matrix
|
||||||
CachedVertexShaderSetting<float, 16> m_texture;
|
CachedVertexShaderSetting<float, 16> m_texture;
|
||||||
// Normal matrix
|
// Normal matrix
|
||||||
CachedVertexShaderSetting<float, 9> m_normal;
|
CachedVertexShaderSetting<float, 9> m_normal;
|
||||||
#endif
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
MainShaderConstantSetter() :
|
MainShaderConstantSetter() :
|
||||||
@ -256,11 +254,9 @@ public:
|
|||||||
, m_perspective_bias1_pixel("xyPerspectiveBias1")
|
, m_perspective_bias1_pixel("xyPerspectiveBias1")
|
||||||
, m_perspective_zbias_vertex("zPerspectiveBias")
|
, m_perspective_zbias_vertex("zPerspectiveBias")
|
||||||
, m_perspective_zbias_pixel("zPerspectiveBias")
|
, m_perspective_zbias_pixel("zPerspectiveBias")
|
||||||
#if ENABLE_GLES
|
|
||||||
, m_world_view("mWorldView")
|
, m_world_view("mWorldView")
|
||||||
, m_texture("mTexture")
|
, m_texture("mTexture")
|
||||||
, m_normal("mNormal")
|
, m_normal("mNormal")
|
||||||
#endif
|
|
||||||
{}
|
{}
|
||||||
~MainShaderConstantSetter() = default;
|
~MainShaderConstantSetter() = default;
|
||||||
|
|
||||||
@ -283,21 +279,21 @@ public:
|
|||||||
worldViewProj *= worldView;
|
worldViewProj *= worldView;
|
||||||
m_world_view_proj.set(*reinterpret_cast<float(*)[16]>(worldViewProj.pointer()), services);
|
m_world_view_proj.set(*reinterpret_cast<float(*)[16]>(worldViewProj.pointer()), services);
|
||||||
|
|
||||||
#if ENABLE_GLES
|
if (driver->getDriverType() == video::EDT_OGLES2) {
|
||||||
core::matrix4 texture = driver->getTransform(video::ETS_TEXTURE_0);
|
core::matrix4 texture = driver->getTransform(video::ETS_TEXTURE_0);
|
||||||
m_world_view.set(*reinterpret_cast<float(*)[16]>(worldView.pointer()), services);
|
m_world_view.set(*reinterpret_cast<float(*)[16]>(worldView.pointer()), services);
|
||||||
m_texture.set(*reinterpret_cast<float(*)[16]>(texture.pointer()), services);
|
m_texture.set(*reinterpret_cast<float(*)[16]>(texture.pointer()), services);
|
||||||
|
|
||||||
core::matrix4 normal;
|
core::matrix4 normal;
|
||||||
worldView.getTransposed(normal);
|
worldView.getTransposed(normal);
|
||||||
sanity_check(normal.makeInverse());
|
sanity_check(normal.makeInverse());
|
||||||
float m[9] = {
|
float m[9] = {
|
||||||
normal[0], normal[1], normal[2],
|
normal[0], normal[1], normal[2],
|
||||||
normal[4], normal[5], normal[6],
|
normal[4], normal[5], normal[6],
|
||||||
normal[8], normal[9], normal[10],
|
normal[8], normal[9], normal[10],
|
||||||
};
|
};
|
||||||
m_normal.set(m, services);
|
m_normal.set(m, services);
|
||||||
#endif
|
}
|
||||||
|
|
||||||
// Set uniforms for Shadow shader
|
// Set uniforms for Shadow shader
|
||||||
if (ShadowRenderer *shadow = RenderingEngine::get_shadow_renderer()) {
|
if (ShadowRenderer *shadow = RenderingEngine::get_shadow_renderer()) {
|
||||||
@ -628,10 +624,7 @@ ShaderInfo ShaderSource::generateShader(const std::string &name,
|
|||||||
video::IGPUProgrammingServices *gpu = driver->getGPUProgrammingServices();
|
video::IGPUProgrammingServices *gpu = driver->getGPUProgrammingServices();
|
||||||
|
|
||||||
// Create shaders header
|
// Create shaders header
|
||||||
bool use_gles = false;
|
bool use_gles = driver->getDriverType() == video::EDT_OGLES2;
|
||||||
#if ENABLE_GLES
|
|
||||||
use_gles = driver->getDriverType() == video::EDT_OGLES2;
|
|
||||||
#endif
|
|
||||||
std::stringstream shaders_header;
|
std::stringstream shaders_header;
|
||||||
shaders_header
|
shaders_header
|
||||||
<< std::noboolalpha
|
<< std::noboolalpha
|
||||||
|
@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <ICameraSceneNode.h>
|
#include <ICameraSceneNode.h>
|
||||||
|
#include <IVideoDriver.h>
|
||||||
#include "util/string.h"
|
#include "util/string.h"
|
||||||
#include "util/container.h"
|
#include "util/container.h"
|
||||||
#include "util/thread.h"
|
#include "util/thread.h"
|
||||||
@ -617,9 +618,7 @@ u32 TextureSource::generateTexture(const std::string &name)
|
|||||||
video::ITexture *tex = NULL;
|
video::ITexture *tex = NULL;
|
||||||
|
|
||||||
if (img != NULL) {
|
if (img != NULL) {
|
||||||
#if ENABLE_GLES
|
|
||||||
img = Align2Npot2(img, driver);
|
img = Align2Npot2(img, driver);
|
||||||
#endif
|
|
||||||
// Create texture from resulting image
|
// Create texture from resulting image
|
||||||
tex = driver->addTexture(name.c_str(), img);
|
tex = driver->addTexture(name.c_str(), img);
|
||||||
guiScalingCache(io::path(name.c_str()), driver, 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
|
// shouldn't really need to be done, but can't hurt
|
||||||
std::set<std::string> source_image_names;
|
std::set<std::string> source_image_names;
|
||||||
video::IImage *img = generateImage(ti.name, source_image_names);
|
video::IImage *img = generateImage(ti.name, source_image_names);
|
||||||
#if ENABLE_GLES
|
|
||||||
img = Align2Npot2(img, driver);
|
img = Align2Npot2(img, driver);
|
||||||
#endif
|
|
||||||
// Create texture from resulting image
|
// Create texture from resulting image
|
||||||
video::ITexture *t = NULL;
|
video::ITexture *t = NULL;
|
||||||
if (img) {
|
if (img) {
|
||||||
@ -1055,8 +1052,6 @@ video::IImage* TextureSource::generateImage(const std::string &name, std::set<st
|
|||||||
return baseimg;
|
return baseimg;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ENABLE_GLES
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check and align image to npot2 if required by hardware
|
* Check and align image to npot2 if required by hardware
|
||||||
* @param image image to check for npot2 alignment
|
* @param image image to check for npot2 alignment
|
||||||
@ -1094,8 +1089,6 @@ video::IImage *Align2Npot2(video::IImage *image,
|
|||||||
return targetimage;
|
return targetimage;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static std::string unescape_string(const std::string &str, const char esc = '\\')
|
static std::string unescape_string(const std::string &str, const char esc = '\\')
|
||||||
{
|
{
|
||||||
std::string out;
|
std::string out;
|
||||||
|
@ -28,14 +28,12 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||||||
#include "util/numeric.h"
|
#include "util/numeric.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#if ENABLE_GLES
|
|
||||||
#include <IVideoDriver.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
class IGameDef;
|
class IGameDef;
|
||||||
struct TileSpec;
|
struct TileSpec;
|
||||||
struct TileDef;
|
struct TileDef;
|
||||||
|
|
||||||
|
namespace irr { namespace video { class IVideoDriver; } }
|
||||||
|
|
||||||
typedef std::vector<video::SColor> Palette;
|
typedef std::vector<video::SColor> Palette;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -133,9 +131,7 @@ public:
|
|||||||
|
|
||||||
IWritableTextureSource *createTextureSource();
|
IWritableTextureSource *createTextureSource();
|
||||||
|
|
||||||
#if ENABLE_GLES
|
|
||||||
video::IImage *Align2Npot2(video::IImage *image, video::IVideoDriver *driver);
|
video::IImage *Align2Npot2(video::IImage *image, video::IVideoDriver *driver);
|
||||||
#endif
|
|
||||||
|
|
||||||
enum MaterialType{
|
enum MaterialType{
|
||||||
TILE_MATERIAL_BASIC,
|
TILE_MATERIAL_BASIC,
|
||||||
|
@ -28,7 +28,6 @@
|
|||||||
#cmakedefine01 USE_SPATIAL
|
#cmakedefine01 USE_SPATIAL
|
||||||
#cmakedefine01 USE_SYSTEM_GMP
|
#cmakedefine01 USE_SYSTEM_GMP
|
||||||
#cmakedefine01 USE_REDIS
|
#cmakedefine01 USE_REDIS
|
||||||
#cmakedefine01 ENABLE_GLES
|
|
||||||
#cmakedefine01 HAVE_ENDIAN_H
|
#cmakedefine01 HAVE_ENDIAN_H
|
||||||
#cmakedefine01 CURSES_HAVE_CURSES_H
|
#cmakedefine01 CURSES_HAVE_CURSES_H
|
||||||
#cmakedefine01 CURSES_HAVE_NCURSES_H
|
#cmakedefine01 CURSES_HAVE_NCURSES_H
|
||||||
|
@ -186,9 +186,6 @@ void set_default_settings()
|
|||||||
settings->setDefault("fps_max_unfocused", "20");
|
settings->setDefault("fps_max_unfocused", "20");
|
||||||
settings->setDefault("viewing_range", "190");
|
settings->setDefault("viewing_range", "190");
|
||||||
settings->setDefault("client_mesh_chunk", "1");
|
settings->setDefault("client_mesh_chunk", "1");
|
||||||
#if ENABLE_GLES
|
|
||||||
settings->setDefault("near_plane", "0.1");
|
|
||||||
#endif
|
|
||||||
settings->setDefault("screen_w", "1024");
|
settings->setDefault("screen_w", "1024");
|
||||||
settings->setDefault("screen_h", "600");
|
settings->setDefault("screen_h", "600");
|
||||||
settings->setDefault("autosave_screensize", "true");
|
settings->setDefault("autosave_screensize", "true");
|
||||||
|
@ -38,10 +38,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||||||
#include "client/fontengine.h"
|
#include "client/fontengine.h"
|
||||||
#include "client/guiscalingfilter.h"
|
#include "client/guiscalingfilter.h"
|
||||||
#include "irrlicht_changes/static_text.h"
|
#include "irrlicht_changes/static_text.h"
|
||||||
|
|
||||||
#if ENABLE_GLES
|
|
||||||
#include "client/tile.h"
|
#include "client/tile.h"
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
@ -59,11 +56,15 @@ void TextDestGuiEngine::gotText(const std::wstring &text)
|
|||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
MenuTextureSource::~MenuTextureSource()
|
MenuTextureSource::~MenuTextureSource()
|
||||||
{
|
{
|
||||||
for (const std::string &texture_to_delete : m_to_delete) {
|
u32 before = m_driver->getTextureCount();
|
||||||
const char *tname = texture_to_delete.c_str();
|
|
||||||
video::ITexture *texture = m_driver->getTexture(tname);
|
for (const auto &it: m_to_delete) {
|
||||||
m_driver->removeTexture(texture);
|
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())
|
if (name.empty())
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
#if ENABLE_GLES
|
// return if already loaded
|
||||||
video::ITexture *retval = m_driver->findTexture(name.c_str());
|
video::ITexture *retval = m_driver->findTexture(name.c_str());
|
||||||
if (retval)
|
if (retval)
|
||||||
return retval;
|
return retval;
|
||||||
@ -86,12 +87,11 @@ video::ITexture *MenuTextureSource::getTexture(const std::string &name, u32 *id)
|
|||||||
|
|
||||||
image = Align2Npot2(image, m_driver);
|
image = Align2Npot2(image, m_driver);
|
||||||
retval = m_driver->addTexture(name.c_str(), image);
|
retval = m_driver->addTexture(name.c_str(), image);
|
||||||
m_to_delete.insert(name);
|
|
||||||
image->drop();
|
image->drop();
|
||||||
|
|
||||||
|
if (retval)
|
||||||
|
m_to_delete.push_back(retval);
|
||||||
return retval;
|
return retval;
|
||||||
#else
|
|
||||||
return m_driver->getTexture(name.c_str());
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
@ -111,8 +111,8 @@ public:
|
|||||||
private:
|
private:
|
||||||
/** driver to get textures from */
|
/** driver to get textures from */
|
||||||
video::IVideoDriver *m_driver = nullptr;
|
video::IVideoDriver *m_driver = nullptr;
|
||||||
/** set of texture names to delete */
|
/** set of textures to delete */
|
||||||
std::set<std::string> m_to_delete;
|
std::vector<video::ITexture*> m_to_delete;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** GUIEngine specific implementation of OnDemandSoundFetcher */
|
/** GUIEngine specific implementation of OnDemandSoundFetcher */
|
||||||
|
Loading…
Reference in New Issue
Block a user