Explicitly initialize COM library in main and opengl threads, hopefully fixing filedialog issues.
This commit is contained in:
@@ -417,6 +417,9 @@ WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpszArg, int nCmdShow)
|
||||
|
||||
SetCurrentProcessExplicitAppUserModelID(AppID);
|
||||
|
||||
/* Initialize the COM library for the main thread. */
|
||||
CoInitializeEx(NULL, COINIT_MULTITHREADED);
|
||||
|
||||
/* Check if Windows supports UTF-8 */
|
||||
if (GetACP() == CP_UTF8)
|
||||
acp_utf8 = 1;
|
||||
@@ -465,6 +468,9 @@ WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpszArg, int nCmdShow)
|
||||
/* Handle our GUI. */
|
||||
i = ui_init(nCmdShow);
|
||||
|
||||
/* Uninitialize COM before exit. */
|
||||
CoUninitialize();
|
||||
|
||||
free(argbuf);
|
||||
free(argv);
|
||||
return(i);
|
||||
|
@@ -468,6 +468,9 @@ static void __stdcall opengl_debugmsg_callback(GLenum source, GLenum type, GLuin
|
||||
*/
|
||||
static void opengl_main(void* param)
|
||||
{
|
||||
/* Initialize COM library for this thread before SDL does so. */
|
||||
CoInitializeEx(NULL, COINIT_MULTITHREADED);
|
||||
|
||||
SDL_InitSubSystem(SDL_INIT_VIDEO);
|
||||
|
||||
SDL_SetHint(SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH, "1"); /* Is this actually doing anything...? */
|
||||
@@ -788,6 +791,8 @@ static void opengl_main(void* param)
|
||||
SDL_DestroyWindow(window);
|
||||
|
||||
window = NULL;
|
||||
|
||||
CoUninitialize();
|
||||
}
|
||||
|
||||
static void opengl_blit(int x, int y, int y1, int y2, int w, int h)
|
||||
|
Reference in New Issue
Block a user