Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-2pick
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
MyCard
ygopro-2pick
Commits
785f6328
Commit
785f6328
authored
Dec 10, 2016
by
mercury233
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
revert
parent
ee7a3285
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
445 additions
and
121 deletions
+445
-121
appveyor.yml
appveyor.yml
+1
-1
premake/irrlicht/irrlicht.patch
premake/irrlicht/irrlicht.patch
+442
-118
premake5.lua
premake5.lua
+2
-2
No files found.
appveyor.yml
View file @
785f6328
...
@@ -33,7 +33,7 @@ install:
...
@@ -33,7 +33,7 @@ install:
-
xcopy /E premake\* .
-
xcopy /E premake\* .
# patch irrlicht
# patch irrlicht
-
patch -p
1
< irrlicht\irrlicht.patch
-
patch -p
0
< irrlicht\irrlicht.patch
# premake
# premake
-
premake5 vs2015
-
premake5 vs2015
...
...
premake/irrlicht/irrlicht.patch
View file @
785f6328
diff --git a/irrlicht/include/IOSOperator.h b/irrlicht/include/IOSOperator.h
diff -ur --strip-trailing-cr irrlicht/include/IOSOperator.h irrlicht-fixed/include/IOSOperator.h
index b5c6236..b2e864a 100644
--- irrlicht/include/IOSOperator.h 2012-11-03 10:08:34.000000000 +0000
--- a/irrlicht/include/IOSOperator.h
+++ irrlicht-fixed/include/IOSOperator.h 2015-06-14 17:32:58.000000000 +0000
+++ b/irrlicht/include/IOSOperator.h
@@ -26,11 +26,11 @@
@@ -26,11 +26,11 @@
public:
}
}
//! Copies text to the clipboard
//! Copies text to the clipboard
...
@@ -16,26 +15,24 @@ index b5c6236..b2e864a 100644
...
@@ -16,26 +15,24 @@ index b5c6236..b2e864a 100644
//! Get the processor speed in megahertz
//! Get the processor speed in megahertz
/** \param MHz The integer variable to store the speed in.
/** \param MHz The integer variable to store the speed in.
diff --git a/irrlicht/include/IrrCompileConfig.h b/irrlicht/include/IrrCompileConfig.h
diff -ur --strip-trailing-cr irrlicht/include/irrTypes.h irrlicht-fixed/include/irrTypes.h
index c2c5d12..7c44f0c 100644
--- irrlicht/include/irrTypes.h 2012-11-03 10:08:34.000000000 +0000
--- a/irrlicht/include/IrrCompileConfig.h
+++ irrlicht-fixed/include/irrTypes.h 2015-06-14 17:32:58.000000000 +0000
+++ b/irrlicht/include/IrrCompileConfig.h
@@ -48,7 +48,9 @@
@@ -233,7 +233,9 @@
you will not be able to use anything provided by the GUI Environment, including
typedef signed short s16;
disable this feature, the engine behave as before (ansi). This is currently only supported
for Windows based systems. You also have to set #define UNICODE for this to compile.
*/
-//#define _IRR_WCHAR_FILESYSTEM
+#if defined(_IRR_WINDOWS_) && (defined(_UNICODE) || defined(UNICODE))
+#define _IRR_WCHAR_FILESYSTEM
+#endif
#ifdef NO_IRR_WCHAR_FILESYSTEM
#undef _IRR_WCHAR_FILESYSTEM
#endif
#endif
diff --git a/irrlicht/include/Keycodes.h b/irrlicht/include/Keycodes.h
index e56eca1..57ab312 100644
-
--- a/irrlicht/include/Keycodes.h
+//! 16 bit character variable.
+++ b/irrlicht/include/Keycodes.h
+/** This is a typedef for wchar_t, it ensures portability of the engine. */
@@ -89,7 +89,7 @@
namespace irr
+typedef wchar_t c16;
//! 32 bit unsigned variable.
/** This is a typedef for unsigned int, it ensures portability of the engine. */
diff -ur --strip-trailing-cr irrlicht/include/Keycodes.h irrlicht-fixed/include/Keycodes.h
--- irrlicht/include/Keycodes.h 2012-11-03 10:08:32.000000000 +0000
+++ irrlicht-fixed/include/Keycodes.h 2015-06-14 17:32:58.000000000 +0000
@@ -89,7 +89,7 @@
KEY_KEY_X = 0x58, // X key
KEY_KEY_X = 0x58, // X key
KEY_KEY_Y = 0x59, // Y key
KEY_KEY_Y = 0x59, // Y key
KEY_KEY_Z = 0x5A, // Z key
KEY_KEY_Z = 0x5A, // Z key
...
@@ -44,26 +41,49 @@ index e56eca1..57ab312 100644
...
@@ -44,26 +41,49 @@ index e56eca1..57ab312 100644
KEY_RWIN = 0x5C, // Right Windows key (Natural keyboard)
KEY_RWIN = 0x5C, // Right Windows key (Natural keyboard)
KEY_APPS = 0x5D, // Applications key (Natural keyboard)
KEY_APPS = 0x5D, // Applications key (Natural keyboard)
KEY_SLEEP = 0x5F, // Computer Sleep key
KEY_SLEEP = 0x5F, // Computer Sleep key
diff --git a/irrlicht/include/irrTypes.h b/irrlicht/include/irrTypes.h
diff -ur --strip-trailing-cr irrlicht/src/CD3D9ShaderMaterialRenderer.cpp irrlicht-fixed/src/CD3D9ShaderMaterialRenderer.cpp
index cfeaf84..a656631 100644
--- irrlicht/src/CD3D9ShaderMaterialRenderer.cpp 2012-11-03 10:08:10.000000000 +0000
--- a/irrlicht/include/irrTypes.h
+++ irrlicht-fixed/src/CD3D9ShaderMaterialRenderer.cpp 2015-06-14 17:32:58.000000000 +0000
+++ b/irrlicht/include/irrTypes.h
@@ -329,7 +329,7 @@
@@ -48,7 +48,9 @@
typedef __int16 s16;
strDllName += (int)D3DX_SDK_VERSION;
typedef signed short s16;
strDllName += ".dll";
#endif
-
-
HMODULE hMod = LoadLibrary(strDllName.c_str());
+
//! 16 bit character variable.
+
HMODULE hMod = LoadLibraryA(strDllName.c_str());
+/** This is a typedef for wchar_t, it ensures portability of the engine. */
if (hMod)
+typedef wchar_t c16
;
pFn = (AssembleShaderFunction)GetProcAddress(hMod, "D3DXAssembleShader")
;
//! 32 bit unsigned variable.
@@ -389,7 +389,7 @@
/** This is a typedef for unsigned int, it ensures portability of the engine. */
strDllName += (int)D3DX_SDK_VERSION;
diff --git a/irrlicht/src/CGUIEditBox.cpp b/irrlicht/src/CGUIEditBox.cpp
strDllName += ".dll";
index f33b5a2..8375444 100644
--- a/irrlicht/src/CGUIEditBox.cpp
- HMODULE hMod = LoadLibrary(strDllName.c_str());
+++ b/irrlicht/src/CGUIEditBox.cpp
+ HMODULE hMod = LoadLibraryA(strDllName.c_str());
@@ -287,7 +287,7 @@
bool CGUIEditBox::processKey(const SEvent& event)
if (hMod)
pFn = (AssembleShaderFromFileFunction)GetProcAddress(hMod, "D3DXAssembleShaderFromFileA");
@@ -450,7 +450,7 @@
strDllName += (int)D3DX_SDK_VERSION;
strDllName += ".dll";
- HMODULE hMod = LoadLibrary(strDllName.c_str());
+ HMODULE hMod = LoadLibraryA(strDllName.c_str());
if (hMod)
pFn = (D3DXCompileShaderFunction)GetProcAddress(hMod, "D3DXCompileShader");
@@ -510,7 +510,7 @@
strDllName += (int)D3DX_SDK_VERSION;
strDllName += ".dll";
- HMODULE hMod = LoadLibrary(strDllName.c_str());
+ HMODULE hMod = LoadLibraryA(strDllName.c_str());
if (hMod)
pFn = (D3DXCompileShaderFromFileFunction)GetProcAddress(hMod, "D3DXCompileShaderFromFileA");
diff -ur --strip-trailing-cr irrlicht/src/CGUIEditBox.cpp irrlicht-fixed/src/CGUIEditBox.cpp
--- irrlicht/src/CGUIEditBox.cpp 2012-11-03 10:08:16.000000000 +0000
+++ irrlicht-fixed/src/CGUIEditBox.cpp 2015-06-14 17:32:58.000000000 +0000
@@ -286,7 +286,7 @@
const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd;
const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd;
const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin;
const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin;
...
@@ -72,7 +92,7 @@ index f33b5a2..8375444 100644
...
@@ -72,7 +92,7 @@ index f33b5a2..8375444 100644
s = Text.subString(realmbgn, realmend - realmbgn).c_str();
s = Text.subString(realmbgn, realmend - realmbgn).c_str();
Operator->copyToClipboard(s.c_str());
Operator->copyToClipboard(s.c_str());
}
}
@@ -
300,7 +300,7 @@
bool CGUIEditBox::processKey(const SEvent& event)
@@ -
299,7 +299,7 @@
const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin;
const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin;
// copy
// copy
...
@@ -81,7 +101,7 @@ index f33b5a2..8375444 100644
...
@@ -81,7 +101,7 @@ index f33b5a2..8375444 100644
sc = Text.subString(realmbgn, realmend - realmbgn).c_str();
sc = Text.subString(realmbgn, realmend - realmbgn).c_str();
Operator->copyToClipboard(sc.c_str());
Operator->copyToClipboard(sc.c_str());
@@ -3
30,16 +330,10 @@
bool CGUIEditBox::processKey(const SEvent& event)
@@ -3
29,7 +329,7 @@
const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin;
const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin;
// add new character
// add new character
...
@@ -89,22 +109,11 @@ index f33b5a2..8375444 100644
...
@@ -89,22 +109,11 @@ index f33b5a2..8375444 100644
+ const c16* p = Operator->getTextFromClipboard();
+ const c16* p = Operator->getTextFromClipboard();
if (p)
if (p)
{
{
- // TODO: we should have such a function in core::string
- size_t lenOld = strlen(p);
- wchar_t *ws = new wchar_t[lenOld + 1];
- size_t len = mbstowcs(ws,p,lenOld);
- ws[len] = 0;
- irr::core::stringw widep(ws);
- delete[] ws;
+ irr::core::stringw widep(p);
if (MarkBegin == MarkEnd)
if (MarkBegin == MarkEnd)
{
diff -ur --strip-trailing-cr irrlicht/src/CIrrDeviceWin32.cpp irrlicht-fixed/src/CIrrDeviceWin32.cpp
diff --git a/irrlicht/src/CIrrDeviceWin32.cpp b/irrlicht/src/CIrrDeviceWin32.cpp
--- irrlicht/src/CIrrDeviceWin32.cpp 2012-11-05 07:14:12.000000000 +0000
index f96c178..a766a40 100644
+++ irrlicht-fixed/src/CIrrDeviceWin32.cpp 2015-06-14 17:32:58.000000000 +0000
--- a/irrlicht/src/CIrrDeviceWin32.cpp
@@ -16,14 +16,16 @@
+++ b/irrlicht/src/CIrrDeviceWin32.cpp
@@ -20,6 +20,8 @@
#include "COSOperator.h"
#include "COSOperator.h"
#include "dimension2d.h"
#include "dimension2d.h"
#include "IGUISpriteBank.h"
#include "IGUISpriteBank.h"
...
@@ -113,34 +122,16 @@ index f96c178..a766a40 100644
...
@@ -113,34 +122,16 @@ index f96c178..a766a40 100644
#include <winuser.h>
#include <winuser.h>
#if defined(_IRR_COMPILE_WITH_JOYSTICK_EVENTS_)
#if defined(_IRR_COMPILE_WITH_JOYSTICK_EVENTS_)
#ifdef _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
#ifdef _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
@@ -749,6 +751,26 @@
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
#define DIRECTINPUT_VERSION 0x0800
return 0;
+#define INITGUID
}
#include <dinput.h>
#ifdef _MSC_VER
+ {
#pragma comment(lib, "dinput8.lib")
+ dev = getDeviceFromHWnd(hWnd);
-#pragma comment(lib, "dxguid.lib")
+ if (dev)
#endif
+ {
#else
+ irr::gui::IGUIElement* ele = dev->getGUIEnvironment()->getFocus();
#ifdef _MSC_VER
+ if (!ele || (ele->getType() != irr::gui::EGUIET_EDIT_BOX) || !ele->isEnabled())
@@ -900,8 +902,36 @@
+ {
+ HIMC hIMC = ::ImmGetContext(hWnd);
+ if (hIMC)
+ {
+ ::ImmNotifyIME(hIMC, NI_COMPOSITIONSTR, CPS_COMPLETE, 0);
+ ::ImmReleaseContext(hWnd, hIMC);
+ }
+ ::ImmAssociateContextEx(hWnd, NULL, 0);
+ }
+ else
+ ::ImmAssociateContextEx(hWnd, NULL, IACE_DEFAULT);
+ }
+ }
+
switch (message)
{
case WM_PAINT:
@@ -904,6 +926,35 @@
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
KEYBOARD_INPUT_HKL = GetKeyboardLayout(0);
KEYBOARD_INPUT_HKL = GetKeyboardLayout(0);
KEYBOARD_INPUT_CODEPAGE = LocaleIdToCodepage( LOWORD(KEYBOARD_INPUT_HKL) );
KEYBOARD_INPUT_CODEPAGE = LocaleIdToCodepage( LOWORD(KEYBOARD_INPUT_HKL) );
return 0;
return 0;
...
@@ -149,19 +140,18 @@ index f96c178..a766a40 100644
...
@@ -149,19 +140,18 @@ index f96c178..a766a40 100644
+ {
+ {
+ dev = getDeviceFromHWnd(hWnd);
+ dev = getDeviceFromHWnd(hWnd);
+ irr::gui::IGUIElement* ele = dev->getGUIEnvironment()->getFocus();
+ irr::gui::IGUIElement* ele = dev->getGUIEnvironment()->getFocus();
+ if
(!ele)
+ if(!ele)
+ break;
+ break;
+ irr::core::position2di pos = ele->getAbsolutePosition().UpperLeftCorner;
+ irr::core::position2di pos = ele->getAbsolutePosition().UpperLeftCorner;
+ HIMC hIMC = ::ImmGetContext(hWnd);
+ HIMC hIMC = ::ImmGetContext(hWnd);
+ COMPOSITIONFORM CompForm;
+ COMPOSITIONFORM CompForm;
+ CompForm.dwStyle = CFS_
POINT
;
+ CompForm.dwStyle = CFS_
CANDIDATEPOS
;
+ CompForm.ptCurrentPos.x = pos.X;
+ CompForm.ptCurrentPos.x = pos.X;
+ CompForm.ptCurrentPos.y = pos.Y + ele->getAbsolutePosition().getHeight();
+ CompForm.ptCurrentPos.y = pos.Y + ele->getAbsolutePosition().getHeight();
+ ::ImmSetCompositionWindow(hIMC, &CompForm);
+ ::ImmSetCompositionWindow(hIMC, &CompForm);
+ ::ImmReleaseContext(hWnd, hIMC);
+ ::ImmReleaseContext(hWnd, hIMC);
+ }
+ }
+ break;
+ break;
+
+ case WM_IME_CHAR:
+ case WM_IME_CHAR:
+ event.EventType = irr::EET_KEY_INPUT_EVENT;
+ event.EventType = irr::EET_KEY_INPUT_EVENT;
+ event.KeyInput.PressedDown = true;
+ event.KeyInput.PressedDown = true;
...
@@ -174,13 +164,318 @@ index f96c178..a766a40 100644
...
@@ -174,13 +164,318 @@ index f96c178..a766a40 100644
+ dev->postEventFromUser(event);
+ dev->postEventFromUser(event);
+ return 0;
+ return 0;
}
}
return DefWindowProc(hWnd, message, wParam, lParam);
- return DefWindowProc(hWnd, message, wParam, lParam);
+ return DefWindowProcW(hWnd, message, wParam, lParam);
}
@@ -931,15 +961,15 @@
memset(&DesktopMode, 0, sizeof(DesktopMode));
DesktopMode.dmSize = sizeof(DesktopMode);
- EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &DesktopMode);
+ EnumDisplaySettingsW(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)
{
- const fschar_t* ClassName = __TEXT("CIrrDeviceWin32");
+ const wchar_t* ClassName = L"CIrrDeviceWin32";
// Register Class
- WNDCLASSEX wcex;
+ WNDCLASSEXW wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = WndProc;
@@ -954,9 +984,9 @@
wcex.hIconSm = 0;
// if there is an icon, load it
- wcex.hIcon = (HICON)LoadImage(hInstance, __TEXT("irrlicht.ico"), IMAGE_ICON, 0,0, LR_LOADFROMFILE);
+ wcex.hIcon = (HICON)LoadImageW(hInstance, L"irrlicht.ico", IMAGE_ICON, 0,0, LR_LOADFROMFILE);
- RegisterClassEx(&wcex);
+ RegisterClassExW(&wcex);
// calculate client size
@@ -992,7 +1022,7 @@
// create window
- HWnd = CreateWindow( ClassName, __TEXT(""), style, windowLeft, windowTop,
+ HWnd = CreateWindowW( ClassName, L"", style, windowLeft, windowTop,
realWidth, realHeight, NULL, NULL, hInstance, NULL);
CreationParams.WindowId = HWnd;
// CreationParams.WindowSize.Width = realWidth;
@@ -1297,15 +1327,15 @@
void CIrrDeviceWin32::closeDevice()
{
MSG msg;
- PeekMessage(&msg, NULL, WM_QUIT, WM_QUIT, PM_REMOVE);
+ PeekMessageW(&msg, NULL, WM_QUIT, WM_QUIT, PM_REMOVE);
PostQuitMessage(0);
- PeekMessage(&msg, NULL, WM_QUIT, WM_QUIT, PM_REMOVE);
+ PeekMessageW(&msg, NULL, WM_QUIT, WM_QUIT, PM_REMOVE);
if (!ExternalWindow)
{
DestroyWindow(HWnd);
- const fschar_t* ClassName = __TEXT("CIrrDeviceWin32");
+ const wchar_t* ClassName = L"CIrrDeviceWin32";
HINSTANCE hInstance = GetModuleHandle(0);
- UnregisterClass(ClassName, hInstance);
+ UnregisterClassW(ClassName, hInstance);
}
Close=true;
}
}
diff --git a/irrlicht/src/COSOperator.cpp b/irrlicht/src/COSOperator.cpp
@@ -1351,7 +1381,7 @@
index 90e644d..1856c04 100644
{
--- a/irrlicht/src/COSOperator.cpp
if (ChangedToFullScreen)
+++ b/irrlicht/src/COSOperator.cpp
{
@@ -52,9 +52,9 @@
const core::stringc& COSOperator::getOperatingSystemVersion() const
- return (ChangeDisplaySettings(&DesktopMode,0)==DISP_CHANGE_SUCCESSFUL);
+ return (ChangeDisplaySettingsW(&DesktopMode,0)==DISP_CHANGE_SUCCESSFUL);
}
else
return true;
@@ -1478,18 +1508,18 @@
void CIrrDeviceWin32::getWindowsVersion(core::stringc& out)
{
- OSVERSIONINFOEX osvi;
+ OSVERSIONINFOEXW osvi;
PGPI pGPI;
BOOL bOsVersionInfoEx;
- ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
- osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
+ ZeroMemory(&osvi, sizeof(OSVERSIONINFOEXW));
+ osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEXW);
- bOsVersionInfoEx = GetVersionEx((OSVERSIONINFO*) &osvi);
+ bOsVersionInfoEx = GetVersionExW((OSVERSIONINFOW*) &osvi);
if (!bOsVersionInfoEx)
{
- osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
- if (! GetVersionEx((OSVERSIONINFO *) &osvi))
+ osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOW);
+ if (! GetVersionExW((OSVERSIONINFOW *) &osvi))
return;
}
@@ -1528,7 +1558,7 @@
if (osvi.dwMajorVersion == 6)
{
DWORD dwType;
- pGPI = (PGPI)GetProcAddress(GetModuleHandle(TEXT("kernel32.dll")), "GetProductInfo");
+ pGPI = (PGPI)GetProcAddress(GetModuleHandleW(L"kernel32.dll"), "GetProductInfo");
pGPI(osvi.dwMajorVersion, osvi.dwMinorVersion, 0, 0, &dwType);
switch (dwType)
@@ -1594,21 +1624,21 @@
else
{
HKEY hKey;
- char szProductType[80];
+ wchar_t szProductType[80];
DWORD dwBufLen;
- RegOpenKeyEx( HKEY_LOCAL_MACHINE,
- __TEXT("SYSTEM\\CurrentControlSet\\Control\\ProductOptions"),
+ RegOpenKeyExW( HKEY_LOCAL_MACHINE,
+ L"SYSTEM\\CurrentControlSet\\Control\\ProductOptions",
0, KEY_QUERY_VALUE, &hKey );
- RegQueryValueEx( hKey, __TEXT("ProductType"), NULL, NULL,
+ RegQueryValueExW( hKey, L"ProductType", NULL, NULL,
(LPBYTE) szProductType, &dwBufLen);
RegCloseKey( hKey );
- if (_strcmpi( "WINNT", szProductType) == 0 )
+ if (lstrcmpiW( L"WINNT", szProductType) == 0 )
out.append("Professional ");
- if (_strcmpi( "LANMANNT", szProductType) == 0)
+ if (lstrcmpiW( L"LANMANNT", szProductType) == 0)
out.append("Server ");
- if (_strcmpi( "SERVERNT", szProductType) == 0)
+ if (lstrcmpiW( L"SERVERNT", szProductType) == 0)
out.append("Advanced Server ");
}
@@ -1679,7 +1709,7 @@
else
style = WS_THICKFRAME | WS_SYSMENU | WS_CAPTION | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_MINIMIZEBOX | WS_MAXIMIZEBOX;
- if (!SetWindowLongPtr(HWnd, GWL_STYLE, style))
+ if (!SetWindowLongPtrW(HWnd, GWL_STYLE, style))
os::Printer::log("Could not change window style.");
RECT clientSize;
@@ -1791,15 +1821,15 @@
{
MSG msg;
- while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
+ while (PeekMessageW(&msg, NULL, 0, 0, PM_REMOVE))
{
// No message translation because we don't use WM_CHAR and it would conflict with our
// deadkey handling.
-
+ TranslateMessage(&msg);
if (ExternalWindow && msg.hwnd == HWnd)
WndProc(HWnd, msg.message, msg.wParam, msg.lParam);
else
- DispatchMessage(&msg);
+ DispatchMessageW(&msg);
if (msg.message == WM_QUIT)
Close = true;
@@ -1811,9 +1841,9 @@
void CIrrDeviceWin32::clearSystemMessages()
{
MSG msg;
- while (PeekMessage(&msg, NULL, WM_KEYFIRST, WM_KEYLAST, PM_REMOVE))
+ while (PeekMessageW(&msg, NULL, WM_KEYFIRST, WM_KEYLAST, PM_REMOVE))
{}
- while (PeekMessage(&msg, NULL, WM_MOUSEFIRST, WM_MOUSELAST, PM_REMOVE))
+ while (PeekMessageW(&msg, NULL, WM_MOUSEFIRST, WM_MOUSELAST, PM_REMOVE))
{}
}
@@ -1821,12 +1851,12 @@
void CIrrDeviceWin32::ReportLastWinApiError()
{
// (based on code from ovidiucucu from http://www.codeguru.com/forum/showthread.php?t=318721)
- LPCTSTR pszCaption = __TEXT("Windows SDK Error Report");
+ LPCWSTR pszCaption = L"Windows SDK Error Report";
DWORD dwError = GetLastError();
if(NOERROR == dwError)
{
- MessageBox(NULL, __TEXT("No error"), pszCaption, MB_OK);
+ MessageBoxW(NULL, L"No error", pszCaption, MB_OK);
}
else
{
@@ -1835,21 +1865,21 @@
FORMAT_MESSAGE_FROM_SYSTEM;
LPVOID pTextBuffer = NULL;
- DWORD dwCount = FormatMessage(dwFormatControl,
+ DWORD dwCount = FormatMessageW(dwFormatControl,
NULL,
dwError,
0,
- (LPTSTR) &pTextBuffer,
+ (LPWSTR)&pTextBuffer,
0,
NULL);
if(0 != dwCount)
{
- MessageBox(NULL, (LPCTSTR)pTextBuffer, pszCaption, MB_OK|MB_ICONERROR);
+ MessageBoxW(NULL, (LPCWSTR)pTextBuffer, pszCaption, MB_OK|MB_ICONERROR);
LocalFree(pTextBuffer);
}
else
{
- MessageBox(NULL, __TEXT("Unknown error"), pszCaption, MB_OK|MB_ICONERROR);
+ MessageBoxW(NULL, L"Unknown error", pszCaption, MB_OK|MB_ICONERROR);
}
}
}
diff -ur --strip-trailing-cr irrlicht/src/CIrrDeviceWin32.h irrlicht-fixed/src/CIrrDeviceWin32.h
--- irrlicht/src/CIrrDeviceWin32.h 2012-11-05 07:14:12.000000000 +0000
+++ irrlicht-fixed/src/CIrrDeviceWin32.h 2015-06-14 17:32:58.000000000 +0000
@@ -395,7 +395,7 @@
bool Resized;
bool ExternalWindow;
CCursorControl* Win32CursorControl;
- DEVMODE DesktopMode;
+ DEVMODEW DesktopMode;
SJoystickWin32Control* JoyControl;
};
diff -ur --strip-trailing-cr irrlicht/src/COpenGLDriver.cpp irrlicht-fixed/src/COpenGLDriver.cpp
--- irrlicht/src/COpenGLDriver.cpp 2012-11-03 10:08:08.000000000 +0000
+++ irrlicht-fixed/src/COpenGLDriver.cpp 2015-06-14 17:32:58.000000000 +0000
@@ -85,11 +85,11 @@
bool COpenGLDriver::initDriver(CIrrDeviceWin32* device)
{
// Create a window to test antialiasing support
- const fschar_t* ClassName = __TEXT("GLCIrrDeviceWin32");
+ const wchar_t* ClassName = L"GLCIrrDeviceWin32";
HINSTANCE lhInstance = GetModuleHandle(0);
// Register Class
- WNDCLASSEX wcex;
+ WNDCLASSEXW wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = (WNDPROC)DefWindowProc;
@@ -103,7 +103,7 @@
wcex.lpszClassName = ClassName;
wcex.hIconSm = 0;
wcex.hIcon = 0;
- RegisterClassEx(&wcex);
+ RegisterClassExW(&wcex);
RECT clientSize;
clientSize.top = 0;
@@ -123,13 +123,13 @@
const s32 windowLeft = (GetSystemMetrics(SM_CXSCREEN) - realWidth) / 2;
const s32 windowTop = (GetSystemMetrics(SM_CYSCREEN) - realHeight) / 2;
- HWND temporary_wnd=CreateWindow(ClassName, __TEXT(""), style, windowLeft,
+ HWND temporary_wnd=CreateWindowW(ClassName, L"", style, windowLeft,
windowTop, realWidth, realHeight, NULL, NULL, lhInstance, NULL);
if (!temporary_wnd)
{
os::Printer::log("Cannot create a temporary window.", ELL_ERROR);
- UnregisterClass(ClassName, lhInstance);
+ UnregisterClassW(ClassName, lhInstance);
return false;
}
@@ -201,7 +201,7 @@
os::Printer::log("Cannot create a GL device context", "No suitable format for temporary window.", ELL_ERROR);
ReleaseDC(temporary_wnd, HDc);
DestroyWindow(temporary_wnd);
- UnregisterClass(ClassName, lhInstance);
+ UnregisterClassW(ClassName, lhInstance);
return false;
}
@@ -218,7 +218,7 @@
os::Printer::log("Cannot create a temporary GL rendering context.", ELL_ERROR);
ReleaseDC(temporary_wnd, HDc);
DestroyWindow(temporary_wnd);
- UnregisterClass(ClassName, lhInstance);
+ UnregisterClassW(ClassName, lhInstance);
return false;
}
@@ -234,7 +234,7 @@
wglDeleteContext(hrc);
ReleaseDC(temporary_wnd, HDc);
DestroyWindow(temporary_wnd);
- UnregisterClass(ClassName, lhInstance);
+ UnregisterClassW(ClassName, lhInstance);
return false;
}
@@ -340,7 +340,7 @@
wglDeleteContext(hrc);
ReleaseDC(temporary_wnd, HDc);
DestroyWindow(temporary_wnd);
- UnregisterClass(ClassName, lhInstance);
+ UnregisterClassW(ClassName, lhInstance);
// get hdc
HDc=GetDC(Window);
diff -ur --strip-trailing-cr irrlicht/src/COSOperator.cpp irrlicht-fixed/src/COSOperator.cpp
--- irrlicht/src/COSOperator.cpp 2012-11-03 10:07:52.000000000 +0000
+++ irrlicht-fixed/src/COSOperator.cpp 2015-06-14 17:32:58.000000000 +0000
@@ -52,11 +52,8 @@
//! copies text to the clipboard
//! copies text to the clipboard
...
@@ -188,32 +483,41 @@ index 90e644d..1856c04 100644
...
@@ -188,32 +483,41 @@ index 90e644d..1856c04 100644
+void COSOperator::copyToClipboard(const c16* text) const
+void COSOperator::copyToClipboard(const c16* text) const
{
{
- if (strlen(text)==0)
- if (strlen(text)==0)
+ if (wcslen(text)==0)
- return;
return;
-
// Windows version
// Windows version
@@ -66,15 +66,15 @@
void COSOperator::copyToClipboard(const c8* text) const
#if defined(_IRR_XBOX_PLATFORM_)
#elif defined(_IRR_WINDOWS_API_)
@@ -66,6 +63,19 @@
EmptyClipboard();
EmptyClipboard();
HGLOBAL clipbuffer;
HGLOBAL clipbuffer;
- char * buffer;
+
+#if defined(_UNICODE)
+ wchar_t * utext = (wchar_t *)text;
+ wchar_t * buffer;
+ wchar_t * buffer;
+
- clipbuffer = GlobalAlloc(GMEM_DDESHARE, strlen(text)+1);
+ clipbuffer = GlobalAlloc(GMEM_DDESHARE, sizeof(wchar_t) * (wcslen(utext)+1));
- buffer = (char*)GlobalLock(clipbuffer);
+ clipbuffer = GlobalAlloc(GMEM_DDESHARE, sizeof(wchar_t) * (wcslen(text) + 1));
+ buffer = (wchar_t*)GlobalLock(clipbuffer);
+ buffer = (wchar_t*)GlobalLock(clipbuffer);
+
+ wcscpy(buffer, utext);
+
+ GlobalUnlock(clipbuffer);
+ SetClipboardData(CF_UNICODETEXT, clipbuffer);
+#else
char * buffer;
- strcpy(buffer, text
);
clipbuffer = GlobalAlloc(GMEM_DDESHARE, strlen(text)+1
);
+ wcscpy(buffer, text);
@@ -75,6 +85,8 @@
GlobalUnlock(clipbuffer);
GlobalUnlock(clipbuffer);
- SetClipboardData(CF_TEXT, clipbuffer);
SetClipboardData(CF_TEXT, clipbuffer);
+ SetClipboardData(CF_UNICODETEXT, clipbuffer);
+#endif
+
CloseClipboard();
CloseClipboard();
// MacOSX version
// MacOSX version
@@ -93,7 +
93,7 @@
void COSOperator::copyToClipboard(const c8* text) const
@@ -93,7 +
105,7 @@
//! gets text from the clipboard
//! gets text from the clipboard
//! \return Returns 0 if no string is in there.
//! \return Returns 0 if no string is in there.
...
@@ -222,25 +526,27 @@ index 90e644d..1856c04 100644
...
@@ -222,25 +526,27 @@ index 90e644d..1856c04 100644
{
{
#if defined(_IRR_XBOX_PLATFORM_)
#if defined(_IRR_XBOX_PLATFORM_)
return 0;
return 0;
@@ -101,10 +1
01,10 @@
const c8* COSOperator::getTextFromClipboard() const
@@ -101,10 +1
13,14 @@
if (!OpenClipboard(NULL))
if (!OpenClipboard(NULL))
return 0;
return 0;
- char * buffer = 0;
- char * buffer = 0;
+ wchar_t * buffer = 0;
+ wchar_t * buffer = 0;
- HANDLE hData = GetClipboardData( CF_TEXT );
+#ifdef _UNICODE
- buffer = (char*)GlobalLock( hData );
+ HANDLE hData = GetClipboardData( CF_UNICODETEXT );
+ HANDLE hData = GetClipboardData( CF_UNICODETEXT );
+#else
HANDLE hData = GetClipboardData( CF_TEXT );
- buffer = (char*)GlobalLock( hData );
+#endif
+ buffer = (wchar_t*)GlobalLock( hData );
+ buffer = (wchar_t*)GlobalLock( hData );
GlobalUnlock( hData );
GlobalUnlock( hData );
CloseClipboard();
CloseClipboard();
return buffer;
return buffer;
diff --git a/irrlicht/src/COSOperator.h b/irrlicht/src/COSOperator.h
diff -ur --strip-trailing-cr irrlicht/src/COSOperator.h irrlicht-fixed/src/COSOperator.h
index 3f633da..c0712df 100644
--- irrlicht/src/COSOperator.h 2012-11-03 10:08:00.000000000 +0000
--- a/irrlicht/src/COSOperator.h
+++ irrlicht-fixed/src/COSOperator.h 2015-06-14 17:32:58.000000000 +0000
+++ b/irrlicht/src/COSOperator.h
@@ -27,11 +27,11 @@
@@ -27,11 +27,11 @@
public:
virtual const core::stringc& getOperatingSystemVersion() const;
virtual const core::stringc& getOperatingSystemVersion() const;
//! copies text to the clipboard
//! copies text to the clipboard
...
@@ -254,3 +560,21 @@ index 3f633da..c0712df 100644
...
@@ -254,3 +560,21 @@ index 3f633da..c0712df 100644
//! gets the processor speed in megahertz
//! gets the processor speed in megahertz
//! \param Mhz:
//! \param Mhz:
diff -ur --strip-trailing-cr irrlicht/src/CGUIEditBox.cpp irrlicht-fixed/src/CGUIEditBox.cpp
--- irrlicht/src/CGUIEditBox.cpp 2016-09-15 18:12:49.532839000 +0000
+++ irrlicht-fixed/src/CGUIEditBox.cpp 2016-09-15 18:13:37.101559800 +0000
@@ -333,13 +333,7 @@
const c16* p = Operator->getTextFromClipboard();
if (p)
{
- // TODO: we should have such a function in core::string
- size_t lenOld = strlen(p);
- wchar_t *ws = new wchar_t[lenOld + 1];
- size_t len = mbstowcs(ws,p,lenOld);
- ws[len] = 0;
- irr::core::stringw widep(ws);
- delete[] ws;
+ irr::core::stringw widep(p);
if (MarkBegin == MarkEnd)
{
premake5.lua
View file @
785f6328
...
@@ -28,7 +28,7 @@ solution "ygo"
...
@@ -28,7 +28,7 @@ solution "ygo"
targetdir
"bin/release"
targetdir
"bin/release"
configuration
"Debug"
configuration
"Debug"
flags
"Symbols
"
symbols
"On
"
defines
"_DEBUG"
defines
"_DEBUG"
targetdir
"bin/debug"
targetdir
"bin/debug"
...
@@ -37,7 +37,7 @@ solution "ygo"
...
@@ -37,7 +37,7 @@ solution "ygo"
disablewarnings
{
"4244"
,
"4267"
,
"4838"
,
"4577"
,
"4819"
,
"4018"
,
"4996"
,
"4477"
}
disablewarnings
{
"4244"
,
"4267"
,
"4838"
,
"4577"
,
"4819"
,
"4018"
,
"4996"
,
"4477"
}
configuration
{
"Release"
,
"not vs*"
}
configuration
{
"Release"
,
"not vs*"
}
flags
"Symbols
"
symbols
"On
"
defines
"NDEBUG"
defines
"NDEBUG"
buildoptions
"-march=native"
buildoptions
"-march=native"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment