Irrlicht 1.9 support

This commit is contained in:
sfan5 2016-12-24 14:26:03 +01:00
parent b16252dcae
commit 084cdea686
6 changed files with 20 additions and 2 deletions

@ -125,6 +125,10 @@ namespace gui
bool flgmip = driver->getTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS); bool flgmip = driver->getTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS);
driver->setTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS, false); driver->setTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS, false);
#if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR > 8
bool flgcpy = driver->getTextureCreationFlag(video::ETCF_ALLOW_MEMORY_COPY);
driver->setTextureCreationFlag(video::ETCF_ALLOW_MEMORY_COPY, true);
#endif
// Set the texture color format. // Set the texture color format.
switch (pixel_mode) switch (pixel_mode)
@ -140,6 +144,9 @@ namespace gui
// Restore our texture creation flags. // Restore our texture creation flags.
driver->setTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS, flgmip); driver->setTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS, flgmip);
#if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR > 8
driver->setTextureCreationFlag(video::ETCF_ALLOW_MEMORY_COPY, flgcpy);
#endif
return texture ? true : false; return texture ? true : false;
} }

@ -938,7 +938,7 @@ video::ITexture* TextureSource::generateTextureFromMesh(
smgr->drop(); smgr->drop();
// Unset render target // Unset render target
driver->setRenderTarget(0, false, true, 0); driver->setRenderTarget(0, false, true, video::SColor(0,0,0,0));
if (params.delete_texture_on_shutdown) if (params.delete_texture_on_shutdown)
m_texture_trash.push_back(rtt); m_texture_trash.push_back(rtt);

@ -383,6 +383,10 @@ void draw_pageflip_3d_mode(Camera& camera, bool show_hud,
bool draw_wield_tool, Client& client, gui::IGUIEnvironment* guienv, bool draw_wield_tool, Client& client, gui::IGUIEnvironment* guienv,
video::SColor skycolor) video::SColor skycolor)
{ {
#if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR > 8
errorstream << "Pageflip 3D mode is not supported"
<< " with your Irrlicht version!" << std::endl;
#else
/* preserve old setup*/ /* preserve old setup*/
irr::core::vector3df oldPosition = camera.getCameraNode()->getPosition(); irr::core::vector3df oldPosition = camera.getCameraNode()->getPosition();
irr::core::vector3df oldTarget = camera.getCameraNode()->getTarget(); irr::core::vector3df oldTarget = camera.getCameraNode()->getTarget();
@ -451,6 +455,7 @@ void draw_pageflip_3d_mode(Camera& camera, bool show_hud,
camera.getCameraNode()->setPosition(oldPosition); camera.getCameraNode()->setPosition(oldPosition);
camera.getCameraNode()->setTarget(oldTarget); camera.getCameraNode()->setTarget(oldTarget);
#endif
} }
void draw_plain(Camera &camera, bool show_hud, Hud &hud, void draw_plain(Camera &camera, bool show_hud, Hud &hud,

@ -2071,9 +2071,11 @@ void Game::run()
void Game::shutdown() void Game::shutdown()
{ {
#if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR <= 8
if (g_settings->get("3d_mode") == "pageflip") { if (g_settings->get("3d_mode") == "pageflip") {
driver->setRenderTarget(irr::video::ERT_STEREO_BOTH_BUFFERS); driver->setRenderTarget(irr::video::ERT_STEREO_BOTH_BUFFERS);
} }
#endif
showOverlayMessage(wgettext("Shutting down..."), 0, 0, false); showOverlayMessage(wgettext("Shutting down..."), 0, 0, false);

@ -630,7 +630,7 @@ bool GUIChatConsole::OnEvent(const SEvent& event)
} }
else if(event.KeyInput.Char != 0 && !event.KeyInput.Control) else if(event.KeyInput.Char != 0 && !event.KeyInput.Control)
{ {
#if (defined(__linux__)) #if defined(__linux__) && (IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR < 9)
wchar_t wc = L'_'; wchar_t wc = L'_';
mbtowc( &wc, (char *) &event.KeyInput.Char, sizeof(event.KeyInput.Char) ); mbtowc( &wc, (char *) &event.KeyInput.Char, sizeof(event.KeyInput.Char) );
prompt.input(wc); prompt.input(wc);

@ -20,6 +20,10 @@
#if USE_FREETYPE #if USE_FREETYPE
#include "cguittfont/xCGUITTFont.h" #include "cguittfont/xCGUITTFont.h"
#endif #endif
#ifndef _IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX
// newer Irrlicht versions no longer have this
#define _IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX
#endif
#include "util/string.h" #include "util/string.h"