From 3579dd21867598ff30867ebd68b690c85ba14f9b Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sun, 17 May 2020 01:03:33 +0200 Subject: [PATCH] Restore Irrlicht 1.9 support --- misc/Info.plist | 6 +++++ src/client/render/interlaced.cpp | 4 ++++ src/client/renderingengine.cpp | 2 ++ src/client/sky.cpp | 5 ++-- src/gui/guiButton.cpp | 7 ++++++ src/gui/guiButton.h | 35 ++++++++++++++++++---------- src/irrlicht_changes/static_text.cpp | 6 +++++ src/irrlicht_changes/static_text.h | 5 ++++ 8 files changed, 56 insertions(+), 14 deletions(-) diff --git a/misc/Info.plist b/misc/Info.plist index 1498ee474..0491d2fc1 100644 --- a/misc/Info.plist +++ b/misc/Info.plist @@ -8,7 +8,13 @@ minetest CFBundleIconFile minetest-icon.icns + CFBundleName + Minetest + CFBundleDisplayName + Minetest CFBundleIdentifier net.minetest.minetest + NSHighResolutionCapable + diff --git a/src/client/render/interlaced.cpp b/src/client/render/interlaced.cpp index ce8e92f21..3f79a8eb5 100644 --- a/src/client/render/interlaced.cpp +++ b/src/client/render/interlaced.cpp @@ -35,7 +35,11 @@ void RenderingCoreInterlaced::initMaterial() IShaderSource *s = client->getShaderSource(); mat.UseMipMaps = false; mat.ZBuffer = false; +#if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR > 8 + mat.ZWriteEnable = video::EZW_OFF; +#else mat.ZWriteEnable = false; +#endif u32 shader = s->getShader("3d_interlaced_merge", TILE_MATERIAL_BASIC); mat.MaterialType = s->getShaderInfo(shader).material; for (int k = 0; k < 3; ++k) { diff --git a/src/client/renderingengine.cpp b/src/client/renderingengine.cpp index 99ff8c1ee..055a555ab 100644 --- a/src/client/renderingengine.cpp +++ b/src/client/renderingengine.cpp @@ -325,9 +325,11 @@ static bool getWindowHandle(irr::video::IVideoDriver *driver, HWND &hWnd) const video::SExposedVideoData exposedData = driver->getExposedVideoData(); switch (driver->getDriverType()) { +#if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR < 9 case video::EDT_DIRECT3D8: hWnd = reinterpret_cast(exposedData.D3D8.HWnd); break; +#endif case video::EDT_DIRECT3D9: hWnd = reinterpret_cast(exposedData.D3D9.HWnd); break; diff --git a/src/client/sky.cpp b/src/client/sky.cpp index 3a40321dd..caf695e7a 100644 --- a/src/client/sky.cpp +++ b/src/client/sky.cpp @@ -39,12 +39,13 @@ static video::SMaterial baseMaterial() { video::SMaterial mat; mat.Lighting = false; -#if ENABLE_GLES +#if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR > 8 mat.ZBuffer = video::ECFN_DISABLED; + mat.ZWriteEnable = video::EZW_OFF; #else + mat.ZWriteEnable = false; mat.ZBuffer = video::ECFN_NEVER; #endif - mat.ZWriteEnable = false; mat.AntiAliasing = 0; mat.TextureLayer[0].TextureWrapU = video::ETC_CLAMP_TO_EDGE; mat.TextureLayer[0].TextureWrapV = video::ETC_CLAMP_TO_EDGE; diff --git a/src/gui/guiButton.cpp b/src/gui/guiButton.cpp index b98e5de82..d6dbddf54 100644 --- a/src/gui/guiButton.cpp +++ b/src/gui/guiButton.cpp @@ -506,6 +506,13 @@ video::SColor GUIButton::getOverrideColor() const return OverrideColor; } +#if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR > 8 +video::SColor GUIButton::getActiveColor() const +{ + return video::SColor(0,0,0,0); // unused? +} +#endif + void GUIButton::enableOverrideColor(bool enable) { OverrideColorEnabled = enable; diff --git a/src/gui/guiButton.h b/src/gui/guiButton.h index 4e1b04aac..834405f51 100644 --- a/src/gui/guiButton.h +++ b/src/gui/guiButton.h @@ -69,6 +69,12 @@ using namespace irr; class ISimpleTextureSource; +#if (IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR <= 8) +#define OVERRIDE_19 +#else +#define OVERRIDE_19 override +#endif + class GUIButton : public gui::IGUIButton { public: @@ -97,22 +103,27 @@ public: virtual gui::IGUIFont* getActiveFont() const override; //! Sets another color for the button text. - virtual void setOverrideColor(video::SColor color); + virtual void setOverrideColor(video::SColor color) OVERRIDE_19; //! Gets the override color - virtual video::SColor getOverrideColor(void) const; + virtual video::SColor getOverrideColor(void) const OVERRIDE_19; + + #if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR > 8 + //! Gets the currently used text color + virtual video::SColor getActiveColor() const override; + #endif //! Sets if the button text should use the override color or the color in the gui skin. - virtual void enableOverrideColor(bool enable); + virtual void enableOverrideColor(bool enable) OVERRIDE_19; //! Checks if an override color is enabled - virtual bool isOverrideColorEnabled(void) const; + virtual bool isOverrideColorEnabled(void) const OVERRIDE_19; // PATCH //! Sets an image which should be displayed on the button when it is in the given state. virtual void setImage(gui::EGUI_BUTTON_IMAGE_STATE state, video::ITexture* image=nullptr, - const core::rect& sourceRect=core::rect(0,0,0,0)); + const core::rect& sourceRect=core::rect(0,0,0,0)) OVERRIDE_19; //! Sets an image which should be displayed on the button when it is in normal state. virtual void setImage(video::ITexture* image=nullptr) override; @@ -141,7 +152,7 @@ public: */ virtual void setSprite(gui::EGUI_BUTTON_STATE state, s32 index, video::SColor color=video::SColor(255,255,255,255), - bool loop=false, bool scale=false); + bool loop=false, bool scale=false) OVERRIDE_19; #if (IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR <= 8) void setSprite(gui::EGUI_BUTTON_STATE state, s32 index, video::SColor color, bool loop) override { @@ -150,16 +161,16 @@ public: #endif //! Get the sprite-index for the given state or -1 when no sprite is set - virtual s32 getSpriteIndex(gui::EGUI_BUTTON_STATE state) const; + virtual s32 getSpriteIndex(gui::EGUI_BUTTON_STATE state) const OVERRIDE_19; //! Get the sprite color for the given state. Color is only used when a sprite is set. - virtual video::SColor getSpriteColor(gui::EGUI_BUTTON_STATE state) const; + virtual video::SColor getSpriteColor(gui::EGUI_BUTTON_STATE state) const OVERRIDE_19; //! Returns if the sprite in the given state does loop - virtual bool getSpriteLoop(gui::EGUI_BUTTON_STATE state) const; + virtual bool getSpriteLoop(gui::EGUI_BUTTON_STATE state) const OVERRIDE_19; //! Returns if the sprite in the given state is scaled - virtual bool getSpriteScale(gui::EGUI_BUTTON_STATE state) const; + virtual bool getSpriteScale(gui::EGUI_BUTTON_STATE state) const OVERRIDE_19; //! Sets if the button should behave like a push button. Which means it //! can be in two states: Normal or Pressed. With a click on the button, @@ -199,13 +210,13 @@ public: virtual bool isScalingImage() const override; //! Get if the shift key was pressed in last EGET_BUTTON_CLICKED event - virtual bool getClickShiftState() const + virtual bool getClickShiftState() const OVERRIDE_19 { return ClickShiftState; } //! Get if the control key was pressed in last EGET_BUTTON_CLICKED event - virtual bool getClickControlState() const + virtual bool getClickControlState() const OVERRIDE_19 { return ClickControlState; } diff --git a/src/irrlicht_changes/static_text.cpp b/src/irrlicht_changes/static_text.cpp index bf61cd64e..a8cc33352 100644 --- a/src/irrlicht_changes/static_text.cpp +++ b/src/irrlicht_changes/static_text.cpp @@ -255,6 +255,12 @@ video::SColor StaticText::getOverrideColor() const return ColoredText.getDefaultColor(); } +#if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR > 8 +video::SColor StaticText::getActiveColor() const +{ + return getOverrideColor(); +} +#endif //! Sets if the static text should use the overide color or the //! color in the gui skin. diff --git a/src/irrlicht_changes/static_text.h b/src/irrlicht_changes/static_text.h index 1f111ea56..786129d57 100644 --- a/src/irrlicht_changes/static_text.h +++ b/src/irrlicht_changes/static_text.h @@ -140,6 +140,11 @@ namespace gui virtual video::SColor getOverrideColor() const; #endif + #if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR > 8 + //! Gets the currently used text color + virtual video::SColor getActiveColor() const; + #endif + //! Sets if the static text should use the overide color or the //! color in the gui skin. virtual void enableOverrideColor(bool enable);