From 241c11fb24953935119546e122a99bd0a4b3e4a1 Mon Sep 17 00:00:00 2001 From: Aaron Robinson Date: Tue, 4 Mar 2003 07:05:25 +0000 Subject: [PATCH] D3D render window now uses Cxbx icon --- Cxbx.dsp | 8 +++- Cxbx.vcproj | 2 +- CxbxKrnl.dsp | 16 ++++++- Resource/Cxbx.ico | Bin 4286 -> 3262 bytes Resource/Cxbx.rc | 4 +- Resource/CxbxDll.rc | 72 +++++++++++++++++++++++++++++ Resource/{resource.h => ResCxbx.h} | 2 +- Resource/ResCxbxDll.h | 16 +++++++ Source/Win32/Cxbx/Wnd.cpp | 6 ++- Source/Win32/Cxbx/WndAbout.cpp | 2 +- Source/Win32/Cxbx/WndMain.cpp | 2 +- Source/Win32/CxbxKrnl/EmuXD3D.cpp | 8 +++- 12 files changed, 124 insertions(+), 14 deletions(-) create mode 100644 Resource/CxbxDll.rc rename Resource/{resource.h => ResCxbx.h} (97%) create mode 100644 Resource/ResCxbxDll.h diff --git a/Cxbx.dsp b/Cxbx.dsp index da2f7e273..9e9a7d514 100644 --- a/Cxbx.dsp +++ b/Cxbx.dsp @@ -43,7 +43,7 @@ RSC=rc.exe # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "Include" /I "Include/Win32/" /I "Include/Win32/Cxbxkrnl" /I "Include/Win32/Cxbx" /I "Resource" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "Include" /I "Include/Win32/" /I "Include/Win32/Cxbxkrnl" /I "Include/Win32/Cxbx" /I "Resource" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FR /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x409 /d "NDEBUG" @@ -145,6 +145,10 @@ SOURCE=.\Include\Cxbx.h # End Source File # Begin Source File +SOURCE=.\Resource\CxbxRes.h +# End Source File +# Begin Source File + SOURCE=.\Include\Win32\Cxbx\EmuExe.h # End Source File # Begin Source File @@ -161,7 +165,7 @@ SOURCE=.\Include\Win32\Cxbx\Prolog.h # End Source File # Begin Source File -SOURCE=.\Resource\resource.h +SOURCE=.\Resource\ResCxbx.h # End Source File # Begin Source File diff --git a/Cxbx.vcproj b/Cxbx.vcproj index 60f2fa8c3..68762c1aa 100644 --- a/Cxbx.vcproj +++ b/Cxbx.vcproj @@ -196,7 +196,7 @@ upxCxbx.bat RelativePath=".\Include\Core\Xbe.h"> + RelativePath=".\Resource\CxbxRes.h"> ppb+>5=lr%$R0xSk`M&MqF@!ZRx2)}7OUVsI^a_3 z4vN*$S`pO2rKT)87O09Cl|5_*ktLuY5VF8L#v_L_I6a-2Kj-D#oL}xc@AG}{-uL_7 z69BM)KAxVyKaa~c0N@0z=0f2KMK}}|fD7~u0BO*<|I-73Kv-H@VQg$L7#nL0#?s0P zfq?(-wSd83&d$y_Jf6;Caw9|{IVg@+L@rPY8pc{5|a|;g- z2SJ&D%VCAmn2b;^pCguoiul-=rHdCOFO6HiR2CmcW3ilFJ~a4`>Nq+&(r7g0f@m?H zPw<%YnUAlNRN}O0oonVkkMA;kjvpap>|<`*EMNQO!j)gdCVwG|k0p{w7!2l*2)NIl z&0?{XQHqdx0j{22maCVcZ=Sb(Q8c5u;MwZ$$CWnN8Bsjq6l&ZdO!wx!+L zgq}8qu66Z5XV9-IW?JfkrHi8y6IeX1y`9~^lW=o$V=|d?5cK!-woZ(OKgdBp{>kp? zU6;BF@75Q@*Nsx0cGcVN)PCLWf!-@a1NVmCZ_>3#=vo6bRh0cZU&c zsS=)^p25Mv(Ml!J+s}G=G_3Rp@NS+Gr>o89p}nZew4UMAzn3Q$a{rBoGS) zl1O(CkI9b!RfbBX$|EJ-^8#SsCBq9gBkvuvesp6-ZTTE+LvZ(NQGajz(BS%!ku0Mj z-()B<8_G7Kf9m zwoxpLOUcN*ZOD>r>!&|^JTLWbtEKkoUoARZqC-ztIskc7OJhAKU0`Mkuf zv65C(LD6cILqlH~jC%~m(;Y?r0ZcSBAU)KqfY1i=3ivG94F0Id-daGZqx%y%G>~IEyF~MiDm|`~1A&dwd z7Qjy@Ag*mkmE>5eiySo1JUZGEyW1D2OZbiI4I`!uvpIWobf@n1lFBK$?&EXOKD#K`!-XtFy3G46o*S&FT*Vt()5!EU?VK|c*ER%y1d>)@C2xHr`1Ay&B z_#qJ@cLnnLZggp`WtD20<{9(|0lKa*Z4;@!iu~eX=<^3LuUiw0qp`yV*^oZ`{UEWg zcTT6)p|!@Ut_=R3sKM0y1iaJywz-v$900#xow`y~VA)_Ow72IRq+x zKtR9*A6h_iN|}5vjsVErfW(==H-Yd>0petQ@SP0D!h^6ohiyvFqs#IfD(_;dRF>*u zXm_BWsZf=L=wC0RO0toK8Hn3y@a^$f_c<~UoLrm_Dv+EwQY>Kc97tFoeipFY6-W() zALLN4Zn3?v#^!3O&%Lba_l~)ip0mAw4q18*Rho+`&OxeIR?(- z&={ahhQr||-~5L)nM_tjMTL^6m{4!)Bu|@_Ua-x0AdO`6y)v|52cz)M9tAsn3J*Hm z+zZQ3LlmSVuI)hl^bO)-3gSXCkeg)7B~kovN~IFA;;C>bo>d^nlCj30JpxTwV`kCn3%*gXbi{PkjzM9SxjR+K9+7EabXx{D1nBUSOPoFwna4e7n=pG=Mwk?Yl1Doj^IFWdDC9R{T&x6d{(NCTIzIg04r;j`c($J^u#womhgH!0zQwa3`=FJi^P( zh6ch2M#39}NrY*HcVB>g9#5FbL(G8=DP09(M)J&ml~B zv35H3>>lj9?4GRrEC*}9mm90UfWW%Xlfc?QL{i@$fBd5j8{NQyvb>!F>3sq7(019#!MOyW7-%<S#j7(ICc$uSzD@bF53K#=i@?f-PhW6+>ca=EQF4Ai%FutY|=}#(< zTw9K5jgJxfb3SB?=3^xJC52>=tCVnbaA0HePn)~DyN66BD=`@i2=MZOZAL1%Kjp&e z{P%FUcpR>`&cUbrDnt+NKwn#lsZVP#zo8aO8|$#Uxe+H?o?~up6%t8~z|u>IT=@}9 zX`_&wo(6GrbW@+c{Z#)?052~ui?Fb;t*K@+L_YqoosGiPuDF-%1htdDmSqv_} z2H~SJ$ZH>BTthvwni`PZ+JtWj*E`x#)7^<(EsdB}_Xw$V_YrWP)-RrqM57Ld*GC~( z7<`_5VgD)_{QUeRdV`@UHhcv7s-j_$_aS&kSA&0c4;-%j2=}|i2zYo8(%MHbG(5%B z=I2=5){3v&TXDFf73VtIP)sr$Zfn7Yre}Dsz8bpP3V7c*2VweHsI>`D>yqH%={faf zezLoTSS;RbO47lH;*In9WN`E5!Scig*#3GD{ce)(l_dzPc>qmA9nzYcFuSb{*~GWM zvmFIp?I@(asH=ne4(x4h!RlvqnE0d$lDaau=6#E>C@~TZIz$d1Ug+ZD!k**5w}5~E zSFKiiJ2pZL`xH4Wc20)n-UYBcl>^(0Kfv?KY4}v!gt)#Irss{A+|q`H?H$-moJWZB zY91gYnj7R)9&438_|_oNi|pRGWEuMaeu1PFz~Sv~osQt8`94f!S_1k4)Z z&m9NL{r}^)DL#q5_pU)wbr&X*L4NN#>ED9I9bMQ!_TNpmKT6nI{}4+l=5xvKUv_q4 zNlP=PP@E)GSHkzvZP@&4AKd)?5FZzd=;-L&p8PVoY>75b1*aGhn00D!x1@u&FAMxr zxv(xSfK%yZcs{H^Mokq)7N0`=onp*s>%^L_F64A~nTRocXg9*+A*E% zl=`e5V$$FJ{&iT99{nQ2p^TD3tyUlD$*)dG$cdNA;h-Y@*T#bTFmbr_AX?!w!`?miQ?r6 zd>)p;>0UATH-ChqN)CB=B$9Nxf}Z>dnuPCEQF7R;g2AkmfSa8R%YV#*<U`Azsfu7tX_2I-~6h`V13O&Q5jQGySuO0kY|acX-vGFv-gYHmYJLjwXRSKVpO zp|l9R>-lg_gbT?lD7grJaXz>Oxo{2_LM@Xc zK0bbTPkxI3k^00Wc!voQwA2Wj4?`&r)ZlM_3yz0Y!lqy=EYBZ-1KB}(HV+f&9+*Rm%nKAa;Ss1ZxA_8~LM8Dnhz&*4A4kx~Zs2~U8tEb>rb{&F>+i8p$-? zY&2nLkPwW?9ZW`lFdu|~yH*X}rZj{dTLb6AAA@sj9qdl;Aieg&spvQaB#SlWHhWH3 zUCsxe?nw`;-6 zTLRwRxnQ%R-C?wG^7>!SZf`ZtZ_LVInBEn=&N$H3R7ef$5^+zVvKW}-1Gmmm& zQ8?_rFe55&A)*hjf@j`G@FjaV9a;_!oz=X&#dKya1n>I~z@zx#eKQ%%_Dt9-!x8Bp z1T)nYbjN1BlK91-zrQ~xS}I+Wnw)}AVJMuGL5N;rLUMKnlp8ZJ>bt*V%z?!)9$bvT zU9%x1n|M;s{8v&8;FeICj5vPbdF=WV)SJoaqWuiKS zuTUy?nv;_e5fTm;X#kXq$6~?$l~{V@Q@nR@1>QNh9MWx*Al@+rvYqdOSse?`S`|3! z6ktA6z+yoh`a}gGVrVc-RJT(-d4c@PepmFWQ9U4_IQb$qB?WTwo9j>?3`i0|o;4b8 zZk>ZU`@K^SO^M1O@4148}a7Z8Z(P|C4{ zL>Nq_T3L)Ni{kAMwN4L;Uj3w)bd8IPo1@q1&Kh-wMvXEaGO~#@QVdDh2#CXmBTf+i5uMSFbZ$q}T{$%=DQOv#p6 diff --git a/Resource/Cxbx.rc b/Resource/Cxbx.rc index 2058fe1c1..27dd2d55e 100644 --- a/Resource/Cxbx.rc +++ b/Resource/Cxbx.rc @@ -1,6 +1,6 @@ //Microsoft Developer Studio generated resource script. // -#include "resource.h" +#include "ResCxbx.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// @@ -38,7 +38,7 @@ IDI_CXBX ICON DISCARDABLE "Cxbx.ico" 1 TEXTINCLUDE DISCARDABLE BEGIN - "resource.h\0" + "CxbxRes.h\0" END 2 TEXTINCLUDE DISCARDABLE diff --git a/Resource/CxbxDll.rc b/Resource/CxbxDll.rc new file mode 100644 index 000000000..dc72cb7b4 --- /dev/null +++ b/Resource/CxbxDll.rc @@ -0,0 +1,72 @@ +//Microsoft Developer Studio generated resource script. +// +#include "ResCxbxDll.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.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 DISCARDABLE +BEGIN + "ResCxbxDll.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_CXBX ICON DISCARDABLE "Cxbx.ico" +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/Resource/resource.h b/Resource/ResCxbx.h similarity index 97% rename from Resource/resource.h rename to Resource/ResCxbx.h index ee2d06935..4d3ade995 100644 --- a/Resource/resource.h +++ b/Resource/ResCxbx.h @@ -34,7 +34,7 @@ // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 110 +#define _APS_NEXT_RESOURCE_VALUE 111 #define _APS_NEXT_COMMAND_VALUE 40041 #define _APS_NEXT_CONTROL_VALUE 1000 #define _APS_NEXT_SYMED_VALUE 103 diff --git a/Resource/ResCxbxDll.h b/Resource/ResCxbxDll.h new file mode 100644 index 000000000..58e811340 --- /dev/null +++ b/Resource/ResCxbxDll.h @@ -0,0 +1,16 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by CxbxDll.rc +// +#define IDI_CXBX 101 + +// 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 1000 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/Source/Win32/Cxbx/Wnd.cpp b/Source/Win32/Cxbx/Wnd.cpp index ce7c1125d..fba4e0b40 100644 --- a/Source/Win32/Cxbx/Wnd.cpp +++ b/Source/Win32/Cxbx/Wnd.cpp @@ -34,7 +34,7 @@ #include "Cxbx.h" #include "Wnd.h" -#include "resource.h" +#include "ResCxbx.h" // ****************************************************************** // * constructor @@ -71,6 +71,8 @@ bool Wnd::ProcessMessages() // initialize window if(!m_initialized) { + HMODULE hCxbxDll = GetModuleHandle("Cxbx.dll"); + m_initialized = true; WNDCLASS wnd_class; @@ -79,7 +81,7 @@ bool Wnd::ProcessMessages() wnd_class.lpszClassName = m_classname; wnd_class.lpfnWndProc = WndProcForward; wnd_class.style = m_clsstyle; - wnd_class.hIcon = LoadIcon(m_hInstance, MAKEINTRESOURCE(IDI_CXBX)); + wnd_class.hIcon = LoadIcon(hCxbxDll, MAKEINTRESOURCE(IDI_CXBX)); wnd_class.hCursor = LoadCursor(NULL, IDC_ARROW); wnd_class.lpszMenuName = NULL; wnd_class.cbClsExtra = 0; diff --git a/Source/Win32/Cxbx/WndAbout.cpp b/Source/Win32/Cxbx/WndAbout.cpp index 42ac7cf28..e02a14de9 100644 --- a/Source/Win32/Cxbx/WndAbout.cpp +++ b/Source/Win32/Cxbx/WndAbout.cpp @@ -34,7 +34,7 @@ #include "Cxbx.h" #include "WndAbout.h" -#include "resource.h" +#include "ResCxbx.h" // ****************************************************************** // * constructor diff --git a/Source/Win32/Cxbx/WndMain.cpp b/Source/Win32/Cxbx/WndMain.cpp index 050df9c3c..277267022 100644 --- a/Source/Win32/Cxbx/WndMain.cpp +++ b/Source/Win32/Cxbx/WndMain.cpp @@ -35,7 +35,7 @@ #include "EmuExe.h" #include "WndMain.h" #include "WndAbout.h" -#include "resource.h" +#include "ResCxbx.h" #include diff --git a/Source/Win32/CxbxKrnl/EmuXD3D.cpp b/Source/Win32/CxbxKrnl/EmuXD3D.cpp index 371068938..826bb0a0a 100644 --- a/Source/Win32/CxbxKrnl/EmuXD3D.cpp +++ b/Source/Win32/CxbxKrnl/EmuXD3D.cpp @@ -40,6 +40,8 @@ namespace win32 #include } +#include "ResCxbxDll.h" + using namespace win32; // ****************************************************************** @@ -67,7 +69,7 @@ VOID xboxkrnl::EmuXInitD3D() _beginthread(EmuXRenderWindow, 0, NULL); while(g_EmuXWindow == NULL) - Sleep(10); + Sleep(100); } // ****************************************************************** @@ -88,13 +90,15 @@ void EmuXRenderWindow(PVOID) // * register window class // ****************************************************************** { + HMODULE hCxbxDll = GetModuleHandle("Cxbx.dll"); + WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, EmuXMsgProc, 0, 0, GetModuleHandle(NULL), - NULL, LoadCursor(NULL, IDC_ARROW), (HBRUSH)(COLOR_APPWORKSPACE + 1), NULL, + LoadIcon(hCxbxDll, MAKEINTRESOURCE(IDI_CXBX)), LoadCursor(NULL, IDC_ARROW), (HBRUSH)(COLOR_APPWORKSPACE + 1), NULL, "CxbxRender", NULL };