|
@@ -133,16 +133,16 @@ static HICON createIcon(const GLFWimage* image,
|
|
|
|
|
|
if (!color)
|
|
if (!color)
|
|
{
|
|
{
|
|
- _glfwInputError(GLFW_PLATFORM_ERROR,
|
|
|
|
- "Win32: Failed to create RGBA bitmap");
|
|
|
|
|
|
+ _glfwInputErrorWin32(GLFW_PLATFORM_ERROR,
|
|
|
|
+ "Win32: Failed to create RGBA bitmap");
|
|
return NULL;
|
|
return NULL;
|
|
}
|
|
}
|
|
|
|
|
|
mask = CreateBitmap(image->width, image->height, 1, 1, NULL);
|
|
mask = CreateBitmap(image->width, image->height, 1, 1, NULL);
|
|
if (!mask)
|
|
if (!mask)
|
|
{
|
|
{
|
|
- _glfwInputError(GLFW_PLATFORM_ERROR,
|
|
|
|
- "Win32: Failed to create mask bitmap");
|
|
|
|
|
|
+ _glfwInputErrorWin32(GLFW_PLATFORM_ERROR,
|
|
|
|
+ "Win32: Failed to create mask bitmap");
|
|
DeleteObject(color);
|
|
DeleteObject(color);
|
|
return NULL;
|
|
return NULL;
|
|
}
|
|
}
|
|
@@ -172,9 +172,15 @@ static HICON createIcon(const GLFWimage* image,
|
|
if (!handle)
|
|
if (!handle)
|
|
{
|
|
{
|
|
if (icon)
|
|
if (icon)
|
|
- _glfwInputError(GLFW_PLATFORM_ERROR, "Win32: Failed to create icon");
|
|
|
|
|
|
+ {
|
|
|
|
+ _glfwInputErrorWin32(GLFW_PLATFORM_ERROR,
|
|
|
|
+ "Win32: Failed to create icon");
|
|
|
|
+ }
|
|
else
|
|
else
|
|
- _glfwInputError(GLFW_PLATFORM_ERROR, "Win32: Failed to create cursor");
|
|
|
|
|
|
+ {
|
|
|
|
+ _glfwInputErrorWin32(GLFW_PLATFORM_ERROR,
|
|
|
|
+ "Win32: Failed to create cursor");
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
return handle;
|
|
return handle;
|
|
@@ -906,11 +912,7 @@ static int createNativeWindow(_GLFWwindow* window,
|
|
|
|
|
|
wideTitle = _glfwCreateWideStringFromUTF8Win32(wndconfig->title);
|
|
wideTitle = _glfwCreateWideStringFromUTF8Win32(wndconfig->title);
|
|
if (!wideTitle)
|
|
if (!wideTitle)
|
|
- {
|
|
|
|
- _glfwInputError(GLFW_PLATFORM_ERROR,
|
|
|
|
- "Win32: Failed to convert window title to UTF-16");
|
|
|
|
return GLFW_FALSE;
|
|
return GLFW_FALSE;
|
|
- }
|
|
|
|
|
|
|
|
window->win32.handle = CreateWindowExW(exStyle,
|
|
window->win32.handle = CreateWindowExW(exStyle,
|
|
_GLFW_WNDCLASSNAME,
|
|
_GLFW_WNDCLASSNAME,
|
|
@@ -927,7 +929,8 @@ static int createNativeWindow(_GLFWwindow* window,
|
|
|
|
|
|
if (!window->win32.handle)
|
|
if (!window->win32.handle)
|
|
{
|
|
{
|
|
- _glfwInputError(GLFW_PLATFORM_ERROR, "Win32: Failed to create window");
|
|
|
|
|
|
+ _glfwInputErrorWin32(GLFW_PLATFORM_ERROR,
|
|
|
|
+ "Win32: Failed to create window");
|
|
return GLFW_FALSE;
|
|
return GLFW_FALSE;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -981,8 +984,8 @@ GLFWbool _glfwRegisterWindowClassWin32(void)
|
|
|
|
|
|
if (!RegisterClassExW(&wc))
|
|
if (!RegisterClassExW(&wc))
|
|
{
|
|
{
|
|
- _glfwInputError(GLFW_PLATFORM_ERROR,
|
|
|
|
- "Win32: Failed to register window class");
|
|
|
|
|
|
+ _glfwInputErrorWin32(GLFW_PLATFORM_ERROR,
|
|
|
|
+ "Win32: Failed to register window class");
|
|
return GLFW_FALSE;
|
|
return GLFW_FALSE;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1069,11 +1072,7 @@ void _glfwPlatformSetWindowTitle(_GLFWwindow* window, const char* title)
|
|
{
|
|
{
|
|
WCHAR* wideTitle = _glfwCreateWideStringFromUTF8Win32(title);
|
|
WCHAR* wideTitle = _glfwCreateWideStringFromUTF8Win32(title);
|
|
if (!wideTitle)
|
|
if (!wideTitle)
|
|
- {
|
|
|
|
- _glfwInputError(GLFW_PLATFORM_ERROR,
|
|
|
|
- "Win32: Failed to convert window title to UTF-16");
|
|
|
|
return;
|
|
return;
|
|
- }
|
|
|
|
|
|
|
|
SetWindowTextW(window->win32.handle, wideTitle);
|
|
SetWindowTextW(window->win32.handle, wideTitle);
|
|
free(wideTitle);
|
|
free(wideTitle);
|
|
@@ -1568,8 +1567,8 @@ int _glfwPlatformCreateStandardCursor(_GLFWcursor* cursor, int shape)
|
|
CopyCursor(LoadCursorW(NULL, translateCursorShape(shape)));
|
|
CopyCursor(LoadCursorW(NULL, translateCursorShape(shape)));
|
|
if (!cursor->win32.handle)
|
|
if (!cursor->win32.handle)
|
|
{
|
|
{
|
|
- _glfwInputError(GLFW_PLATFORM_ERROR,
|
|
|
|
- "Win32: Failed to create standard cursor");
|
|
|
|
|
|
+ _glfwInputErrorWin32(GLFW_PLATFORM_ERROR,
|
|
|
|
+ "Win32: Failed to create standard cursor");
|
|
return GLFW_FALSE;
|
|
return GLFW_FALSE;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1596,26 +1595,22 @@ void _glfwPlatformSetClipboardString(_GLFWwindow* window, const char* string)
|
|
|
|
|
|
characterCount = MultiByteToWideChar(CP_UTF8, 0, string, -1, NULL, 0);
|
|
characterCount = MultiByteToWideChar(CP_UTF8, 0, string, -1, NULL, 0);
|
|
if (!characterCount)
|
|
if (!characterCount)
|
|
- {
|
|
|
|
- _glfwInputError(GLFW_PLATFORM_ERROR,
|
|
|
|
- "Win32: Failed to convert clipboard string to UTF-16");
|
|
|
|
return;
|
|
return;
|
|
- }
|
|
|
|
|
|
|
|
object = GlobalAlloc(GMEM_MOVEABLE, characterCount * sizeof(WCHAR));
|
|
object = GlobalAlloc(GMEM_MOVEABLE, characterCount * sizeof(WCHAR));
|
|
if (!object)
|
|
if (!object)
|
|
{
|
|
{
|
|
- _glfwInputError(GLFW_PLATFORM_ERROR,
|
|
|
|
- "Win32: Failed to allocate global handle for clipboard");
|
|
|
|
|
|
+ _glfwInputErrorWin32(GLFW_PLATFORM_ERROR,
|
|
|
|
+ "Win32: Failed to allocate global handle for clipboard");
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
buffer = GlobalLock(object);
|
|
buffer = GlobalLock(object);
|
|
if (!buffer)
|
|
if (!buffer)
|
|
{
|
|
{
|
|
|
|
+ _glfwInputErrorWin32(GLFW_PLATFORM_ERROR,
|
|
|
|
+ "Win32: Failed to lock global handle");
|
|
GlobalFree(object);
|
|
GlobalFree(object);
|
|
-
|
|
|
|
- _glfwInputError(GLFW_PLATFORM_ERROR, "Win32: Failed to lock global handle");
|
|
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1624,9 +1619,9 @@ void _glfwPlatformSetClipboardString(_GLFWwindow* window, const char* string)
|
|
|
|
|
|
if (!OpenClipboard(_glfw.win32.helperWindowHandle))
|
|
if (!OpenClipboard(_glfw.win32.helperWindowHandle))
|
|
{
|
|
{
|
|
|
|
+ _glfwInputErrorWin32(GLFW_PLATFORM_ERROR,
|
|
|
|
+ "Win32: Failed to open clipboard");
|
|
GlobalFree(object);
|
|
GlobalFree(object);
|
|
-
|
|
|
|
- _glfwInputError(GLFW_PLATFORM_ERROR, "Win32: Failed to open clipboard");
|
|
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1642,43 +1637,35 @@ const char* _glfwPlatformGetClipboardString(_GLFWwindow* window)
|
|
|
|
|
|
if (!OpenClipboard(_glfw.win32.helperWindowHandle))
|
|
if (!OpenClipboard(_glfw.win32.helperWindowHandle))
|
|
{
|
|
{
|
|
- _glfwInputError(GLFW_PLATFORM_ERROR, "Win32: Failed to open clipboard");
|
|
|
|
|
|
+ _glfwInputErrorWin32(GLFW_PLATFORM_ERROR,
|
|
|
|
+ "Win32: Failed to open clipboard");
|
|
return NULL;
|
|
return NULL;
|
|
}
|
|
}
|
|
|
|
|
|
object = GetClipboardData(CF_UNICODETEXT);
|
|
object = GetClipboardData(CF_UNICODETEXT);
|
|
if (!object)
|
|
if (!object)
|
|
{
|
|
{
|
|
|
|
+ _glfwInputErrorWin32(GLFW_FORMAT_UNAVAILABLE,
|
|
|
|
+ "Win32: Failed to convert clipboard to string");
|
|
CloseClipboard();
|
|
CloseClipboard();
|
|
-
|
|
|
|
- _glfwInputError(GLFW_FORMAT_UNAVAILABLE,
|
|
|
|
- "Win32: Failed to convert clipboard to string");
|
|
|
|
return NULL;
|
|
return NULL;
|
|
}
|
|
}
|
|
|
|
|
|
buffer = GlobalLock(object);
|
|
buffer = GlobalLock(object);
|
|
if (!buffer)
|
|
if (!buffer)
|
|
{
|
|
{
|
|
|
|
+ _glfwInputErrorWin32(GLFW_PLATFORM_ERROR,
|
|
|
|
+ "Win32: Failed to lock global handle");
|
|
CloseClipboard();
|
|
CloseClipboard();
|
|
-
|
|
|
|
- _glfwInputError(GLFW_PLATFORM_ERROR, "Win32: Failed to lock global handle");
|
|
|
|
return NULL;
|
|
return NULL;
|
|
}
|
|
}
|
|
|
|
|
|
free(_glfw.win32.clipboardString);
|
|
free(_glfw.win32.clipboardString);
|
|
- _glfw.win32.clipboardString =
|
|
|
|
- _glfwCreateUTF8FromWideStringWin32(buffer);
|
|
|
|
|
|
+ _glfw.win32.clipboardString = _glfwCreateUTF8FromWideStringWin32(buffer);
|
|
|
|
|
|
GlobalUnlock(object);
|
|
GlobalUnlock(object);
|
|
CloseClipboard();
|
|
CloseClipboard();
|
|
|
|
|
|
- if (!_glfw.win32.clipboardString)
|
|
|
|
- {
|
|
|
|
- _glfwInputError(GLFW_PLATFORM_ERROR,
|
|
|
|
- "Win32: Failed to convert wide string to UTF-8");
|
|
|
|
- return NULL;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
return _glfw.win32.clipboardString;
|
|
return _glfw.win32.clipboardString;
|
|
}
|
|
}
|
|
|
|
|