diff --git a/lib/irrlicht/changes.txt b/lib/irrlicht/changes.txt index fa4116c07..1cc68474a 100644 --- a/lib/irrlicht/changes.txt +++ b/lib/irrlicht/changes.txt @@ -1,5 +1,7 @@ Changes in 1.8 (??.11.2012) + - Let sphere mesh use full opaque color, just as all the other ones do + - Gcc on Win32 (MinGW) now also works with the _w file access functions when compiled with _IRR_WCHAR_FILESYSTEM. (thx @ alexzk for reporting compile troubles) - Fix a bunch of off-by one errors in irr::core::string in functions equals_substring_ignore_case, findFirst, findFirstChar, findNext, findLast, findLastChar, replace, remove and removeChars. diff --git a/lib/irrlicht/current_version b/lib/irrlicht/current_version index 28bb8fc33..b6b1b08b5 100644 --- a/lib/irrlicht/current_version +++ b/lib/irrlicht/current_version @@ -1 +1 @@ -4350 +4357 diff --git a/lib/irrlicht/include/IrrCompileConfig.h b/lib/irrlicht/include/IrrCompileConfig.h index a614f9408..15c81c230 100644 --- a/lib/irrlicht/include/IrrCompileConfig.h +++ b/lib/irrlicht/include/IrrCompileConfig.h @@ -11,8 +11,8 @@ #define IRRLICHT_VERSION_REVISION 0 // This flag will be defined only in SVN, the official release code will have // it undefined -#define IRRLICHT_VERSION_SVN -alpha -#define IRRLICHT_SDK_VERSION "1.8.0-alpha" +//#define IRRLICHT_VERSION_SVN -alpha +#define IRRLICHT_SDK_VERSION "1.8.0" #include // TODO: Although included elsewhere this is required at least for mingw diff --git a/lib/irrlicht/include/irrlicht.h b/lib/irrlicht/include/irrlicht.h index 1125eb407..74783cebe 100644 --- a/lib/irrlicht/include/irrlicht.h +++ b/lib/irrlicht/include/irrlicht.h @@ -187,7 +187,7 @@ #include "vector2d.h" #include "vector3d.h" -/*! \mainpage Irrlicht Engine 1.7 API documentation +/*! \mainpage Irrlicht Engine 1.8 API documentation * *
* diff --git a/lib/irrlicht/source/Irrlicht/CGeometryCreator.cpp b/lib/irrlicht/source/Irrlicht/CGeometryCreator.cpp index f4e87df24..c59283328 100644 --- a/lib/irrlicht/source/Irrlicht/CGeometryCreator.cpp +++ b/lib/irrlicht/source/Irrlicht/CGeometryCreator.cpp @@ -363,7 +363,7 @@ IMesh* CGeometryCreator::createSphereMesh(f32 radius, u32 polyCountX, u32 polyCo buffer->Indices.reallocate((polyCountX * polyCountY) * 6); - const video::SColor clr(100, 255,255,255); + const video::SColor clr(255, 255,255,255); u32 level = 0; diff --git a/lib/irrlicht/source/Irrlicht/CIrrDeviceWin32.cpp b/lib/irrlicht/source/Irrlicht/CIrrDeviceWin32.cpp index 98f57da1f..22c405ef9 100644 --- a/lib/irrlicht/source/Irrlicht/CIrrDeviceWin32.cpp +++ b/lib/irrlicht/source/Irrlicht/CIrrDeviceWin32.cpp @@ -854,23 +854,21 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) case WM_ACTIVATE: // we need to take care for screen changes, e.g. Alt-Tab dev = getDeviceFromHWnd(hWnd); - if (dev) + if (dev && dev->isFullscreen()) { if ((wParam&0xFF)==WA_INACTIVE) { - if (dev->isFullscreen()) - ShowWindow(hWnd,SW_MINIMIZE); - + // If losing focus we minimize the app to show other one + ShowWindow(hWnd,SW_MINIMIZE); + // and switch back to default resolution dev->switchToFullScreen(true); } else { - if (dev->isFullscreen()) - { - SetForegroundWindow(hWnd); - ShowWindow(hWnd, SW_RESTORE); - } - + // Otherwise we retore the fullscreen Irrlicht app + SetForegroundWindow(hWnd); + ShowWindow(hWnd, SW_RESTORE); + // and set the fullscreen resolution again dev->switchToFullScreen(); } } @@ -928,6 +926,13 @@ CIrrDeviceWin32::CIrrDeviceWin32(const SIrrlichtCreationParameters& params) // get handle to exe file HINSTANCE hInstance = GetModuleHandle(0); + // Store original desktop mode. + + memset(&DesktopMode, 0, sizeof(DesktopMode)); + DesktopMode.dmSize = sizeof(DesktopMode); + + EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &DesktopMode); + // create the window if we need to and we do not use the null device if (!CreationParams.WindowId && CreationParams.DriverType != video::EDT_NULL) { @@ -1342,22 +1347,23 @@ bool CIrrDeviceWin32::switchToFullScreen(bool reset) if (!CreationParams.Fullscreen) return true; - DEVMODE dm; - memset(&dm, 0, sizeof(dm)); - dm.dmSize = sizeof(dm); - // use default values from current setting - EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &dm); - if (reset) { if (ChangedToFullScreen) { - return (ChangeDisplaySettings(&dm,0)==DISP_CHANGE_SUCCESSFUL); + return (ChangeDisplaySettings(&DesktopMode,0)==DISP_CHANGE_SUCCESSFUL); } else return true; } + // use default values from current setting + + DEVMODE dm; + memset(&dm, 0, sizeof(dm)); + dm.dmSize = sizeof(dm); + + EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &dm); dm.dmPelsWidth = CreationParams.WindowSize.Width; dm.dmPelsHeight = CreationParams.WindowSize.Height; dm.dmBitsPerPel = CreationParams.Bits; diff --git a/lib/irrlicht/source/Irrlicht/CIrrDeviceWin32.h b/lib/irrlicht/source/Irrlicht/CIrrDeviceWin32.h index 2c1239bdd..16c5d5426 100644 --- a/lib/irrlicht/source/Irrlicht/CIrrDeviceWin32.h +++ b/lib/irrlicht/source/Irrlicht/CIrrDeviceWin32.h @@ -395,6 +395,7 @@ namespace irr bool Resized; bool ExternalWindow; CCursorControl* Win32CursorControl; + DEVMODE DesktopMode; SJoystickWin32Control* JoyControl; }; diff --git a/lib/irrlicht/source/Irrlicht/Makefile b/lib/irrlicht/source/Irrlicht/Makefile index 2054074f9..5a867e2a3 100644 --- a/lib/irrlicht/source/Irrlicht/Makefile +++ b/lib/irrlicht/source/Irrlicht/Makefile @@ -1,7 +1,7 @@ VERSION_MAJOR = 1 VERSION_MINOR = 8 -VERSION_RELEASE = 0-SVN -# Irrlicht Engine 1.8.0-SVN +VERSION_RELEASE = 0 +# Irrlicht Engine 1.8.0 # Makefile for Linux # # To use, just run: