Skip to content

Commit

Permalink
Restore Irrlicht 1.9 support
Browse files Browse the repository at this point in the history
  • Loading branch information
sfan5 committed Mar 9, 2021
1 parent 13b50f5 commit 3579dd2
Show file tree
Hide file tree
Showing 8 changed files with 56 additions and 14 deletions.
6 changes: 6 additions & 0 deletions misc/Info.plist
Expand Up @@ -8,7 +8,13 @@
<string>minetest</string>
<key>CFBundleIconFile</key>
<string>minetest-icon.icns</string>
<key>CFBundleName</key>
<string>Minetest</string>
<key>CFBundleDisplayName</key>
<string>Minetest</string>
<key>CFBundleIdentifier</key>
<string>net.minetest.minetest</string>
<key>NSHighResolutionCapable</key>
<false/>
</dict>
</plist>
4 changes: 4 additions & 0 deletions src/client/render/interlaced.cpp
Expand Up @@ -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) {
Expand Down
2 changes: 2 additions & 0 deletions src/client/renderingengine.cpp
Expand Up @@ -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<HWND>(exposedData.D3D8.HWnd);
break;
#endif
case video::EDT_DIRECT3D9:
hWnd = reinterpret_cast<HWND>(exposedData.D3D9.HWnd);
break;
Expand Down
5 changes: 3 additions & 2 deletions src/client/sky.cpp
Expand Up @@ -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;
Expand Down
7 changes: 7 additions & 0 deletions src/gui/guiButton.cpp
Expand Up @@ -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;
Expand Down
35 changes: 23 additions & 12 deletions src/gui/guiButton.h
Expand Up @@ -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:
Expand Down Expand Up @@ -97,22 +103,27 @@ class GUIButton : public gui::IGUIButton
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<s32>& sourceRect=core::rect<s32>(0,0,0,0));
const core::rect<s32>& sourceRect=core::rect<s32>(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;
Expand Down Expand Up @@ -141,7 +152,7 @@ class GUIButton : public gui::IGUIButton
*/
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 {
Expand All @@ -150,16 +161,16 @@ class GUIButton : public gui::IGUIButton
#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,
Expand Down Expand Up @@ -199,13 +210,13 @@ class GUIButton : public gui::IGUIButton
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;
}
Expand Down
6 changes: 6 additions & 0 deletions src/irrlicht_changes/static_text.cpp
Expand Up @@ -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.
Expand Down
5 changes: 5 additions & 0 deletions src/irrlicht_changes/static_text.h
Expand Up @@ -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);
Expand Down

0 comments on commit 3579dd2

Please sign in to comment.