Automatically close the attach debugger dialog.

BUG=15759123

Change-Id: I03e363eadf437527aae406107111e93bd3cc6e4e
Reviewed-on: https://swiftshader-review.googlesource.com/1304
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/GLES2/libEGL/libEGL.rc b/src/GLES2/libEGL/libEGL.rc
index d426063..2ca933e 100644
--- a/src/GLES2/libEGL/libEGL.rc
+++ b/src/GLES2/libEGL/libEGL.rc
@@ -1,102 +1,135 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include <windows.h>
-#include "../../common/Version.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE 
-BEGIN
-    "resource.h\0"
-END
-
-2 TEXTINCLUDE 
-BEGIN
-    "#include ""afxres.h""\r\n"
-    "#include ""../common/version.h""\0"
-END
-
-3 TEXTINCLUDE 
-BEGIN
-    "\r\n"
-    "\0"
-END
-
-#endif    // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Version
-//
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION MAJOR_VERSION,MINOR_VERSION,BUILD_VERSION,BUILD_REVISION
- PRODUCTVERSION MAJOR_VERSION,MINOR_VERSION,BUILD_VERSION,BUILD_REVISION
- FILEFLAGSMASK 0x17L
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x4L
- FILETYPE 0x2L
- FILESUBTYPE 0x0L
-BEGIN
-    BLOCK "StringFileInfo"
-    BEGIN
-        BLOCK "040904b0"
-        BEGIN
-            VALUE "FileDescription", "SwiftShader libEGL Dynamic Link Library"
-            VALUE "FileVersion", VERSION_STRING
-            VALUE "InternalName", "libEGL"
-            VALUE "LegalCopyright", "Copyright (C) 2012 TransGaming Inc."
-            VALUE "OriginalFilename", "libEGL.dll"
-            VALUE "PrivateBuild", VERSION_STRING
-            VALUE "ProductName", "SwiftShader libEGL Dynamic Link Library"
-            VALUE "ProductVersion", VERSION_STRING
-        END
-    END
-    BLOCK "VarFileInfo"
-    BEGIN
-        VALUE "Translation", 0x409, 1200
-    END
-END
-
-#endif    // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif    // not APSTUDIO_INVOKED
+// Microsoft Visual C++ generated resource script.

+//

+#include "resource.h"

+

+#define APSTUDIO_READONLY_SYMBOLS

+/////////////////////////////////////////////////////////////////////////////

+//

+// Generated from the TEXTINCLUDE 2 resource.

+//

+#include <windows.h>

+#include "../../common/Version.h"

+

+/////////////////////////////////////////////////////////////////////////////

+#undef APSTUDIO_READONLY_SYMBOLS

+

+/////////////////////////////////////////////////////////////////////////////

+// English (United States) resources

+

+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)

+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US

+#pragma code_page(1252)

+

+#ifdef APSTUDIO_INVOKED

+/////////////////////////////////////////////////////////////////////////////

+//

+// TEXTINCLUDE

+//

+

+1 TEXTINCLUDE 

+BEGIN

+    "resource.h\0"

+END

+

+2 TEXTINCLUDE 

+BEGIN

+    "#include ""afxres.h""\r\n"

+    "#include ""../common/version.h""\0"

+END

+

+3 TEXTINCLUDE 

+BEGIN

+    "\r\n"

+    "\0"

+END

+

+#endif    // APSTUDIO_INVOKED

+

+

+/////////////////////////////////////////////////////////////////////////////

+//

+// Version

+//

+

+VS_VERSION_INFO VERSIONINFO

+ FILEVERSION MAJOR_VERSION,MINOR_VERSION,BUILD_VERSION,BUILD_REVISION

+ PRODUCTVERSION MAJOR_VERSION,MINOR_VERSION,BUILD_VERSION,BUILD_REVISION

+ FILEFLAGSMASK 0x17L

+#ifdef _DEBUG

+ FILEFLAGS 0x1L

+#else

+ FILEFLAGS 0x0L

+#endif

+ FILEOS 0x4L

+ FILETYPE 0x2L

+ FILESUBTYPE 0x0L

+BEGIN

+    BLOCK "StringFileInfo"

+    BEGIN

+        BLOCK "040904b0"

+        BEGIN

+            VALUE "FileDescription", "SwiftShader libEGL Dynamic Link Library"

+            VALUE "FileVersion", VERSION_STRING

+            VALUE "InternalName", "libEGL"

+            VALUE "LegalCopyright", "Copyright (C) 2012 TransGaming Inc."

+            VALUE "OriginalFilename", "libEGL.dll"

+            VALUE "PrivateBuild", VERSION_STRING

+            VALUE "ProductName", "SwiftShader libEGL Dynamic Link Library"

+            VALUE "ProductVersion", VERSION_STRING

+        END

+    END

+    BLOCK "VarFileInfo"

+    BEGIN

+        VALUE "Translation", 0x409, 1200

+    END

+END

+

+

+/////////////////////////////////////////////////////////////////////////////

+//

+// Dialog

+//

+

+IDD_DIALOG1 DIALOGEX 0, 0, 129, 47

+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU

+CAPTION "Waiting for debugger"

+FONT 8, "MS Shell Dlg", 400, 0, 0x1

+BEGIN

+    PUSHBUTTON      "Cancel",IDCANCEL,72,26,50,14

+    LTEXT           "Attach a debugger or ESC to cancel",IDC_STATIC,7,7,115,8

+END

+

+

+/////////////////////////////////////////////////////////////////////////////

+//

+// DESIGNINFO

+//

+

+#ifdef APSTUDIO_INVOKED

+GUIDELINES DESIGNINFO

+BEGIN

+    IDD_DIALOG1, DIALOG

+    BEGIN

+        LEFTMARGIN, 7

+        RIGHTMARGIN, 122

+        TOPMARGIN, 7

+        BOTTOMMARGIN, 40

+    END

+END

+#endif    // APSTUDIO_INVOKED

+

+#endif    // English (United States) resources

+/////////////////////////////////////////////////////////////////////////////

+

+

+

+#ifndef APSTUDIO_INVOKED

+/////////////////////////////////////////////////////////////////////////////

+//

+// Generated from the TEXTINCLUDE 3 resource.

+//

+

+

+/////////////////////////////////////////////////////////////////////////////

+#endif    // not APSTUDIO_INVOKED

+

diff --git a/src/GLES2/libEGL/main.cpp b/src/GLES2/libEGL/main.cpp
index b142dda..aad1ab3 100644
--- a/src/GLES2/libEGL/main.cpp
+++ b/src/GLES2/libEGL/main.cpp
@@ -13,6 +13,7 @@
 

 #include "main.h"

 

+#include "resource.h"

 #include "Common/Thread.hpp"

 #include "Common/SharedLibrary.hpp"

 #include "common/debug.h"

@@ -126,12 +127,52 @@
 }

 

 #if defined(_WIN32)

+static INT_PTR CALLBACK DebuggerWaitDialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)

+{

+	RECT rect;

+

+    switch(uMsg)

+    {

+    case WM_INITDIALOG:

+		GetWindowRect(GetDesktopWindow(), &rect);

+		SetWindowPos(hwnd, HWND_TOP, rect.right / 2, rect.bottom / 2, 0, 0, SWP_NOSIZE);

+		SetTimer(hwnd, 1, 100, NULL);

+		return TRUE;

+    case WM_COMMAND:

+        if(LOWORD(wParam) == IDCANCEL)

+		{

+			EndDialog(hwnd, 0);

+		}

+        break;

+    case WM_TIMER:

+		if(IsDebuggerPresent())

+		{

+			EndDialog(hwnd, 0);

+		}

+    }

+

+    return FALSE;

+}

+

+static void WaitForDebugger(HINSTANCE instance)

+{

+    if(!IsDebuggerPresent())

+    {

+        HRSRC dialog = FindResource(instance, MAKEINTRESOURCE(IDD_DIALOG1), RT_DIALOG);

+		DLGTEMPLATE *dialogTemplate = (DLGTEMPLATE*)LoadResource(instance, dialog);

+		DialogBoxIndirect(instance, dialogTemplate, NULL, DebuggerWaitDialogProc);

+    }

+}

+

 extern "C" BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved)

 {

     switch(reason)

     {

     case DLL_PROCESS_ATTACH:

-	//	MessageBoxA(0, "Attach debugger now and press OK", "SwiftShader loaded", MB_OK);

+		if(false)

+		{

+			WaitForDebugger(instance);

+		}

         return eglAttachProcess();

         break;

     case DLL_THREAD_ATTACH:

diff --git a/src/GLES2/libEGL/resource.h b/src/GLES2/libEGL/resource.h
index 3921f4c..b60570a 100644
--- a/src/GLES2/libEGL/resource.h
+++ b/src/GLES2/libEGL/resource.h
@@ -1,14 +1,17 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by libEGL.rc
-
-// Next default values for new objects
-// 
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE        101
-#define _APS_NEXT_COMMAND_VALUE         40001
-#define _APS_NEXT_CONTROL_VALUE         1001
-#define _APS_NEXT_SYMED_VALUE           101
-#endif
-#endif
+//{{NO_DEPENDENCIES}}

+// Microsoft Visual C++ generated include file.

+// Used by libEGL.rc

+//

+#define IDD_DIALOG1                     101

+#define IDC_STATIC                      -1

+

+// Next default values for new objects

+// 

+#ifdef APSTUDIO_INVOKED

+#ifndef APSTUDIO_READONLY_SYMBOLS

+#define _APS_NEXT_RESOURCE_VALUE        102

+#define _APS_NEXT_COMMAND_VALUE         40001

+#define _APS_NEXT_CONTROL_VALUE         1001

+#define _APS_NEXT_SYMED_VALUE           101

+#endif

+#endif