From 754303b327fe8cf24648f0be46750148a97c703f Mon Sep 17 00:00:00 2001 From: void_17 <61356189+void2012@users.noreply.github.com> Date: Sun, 1 Mar 2026 22:29:08 +0700 Subject: [PATCH] Fix compilation for Clang-cl (#10) 1. Converted `MinecraftWindows.rc` and `Resource.h` to UTF-8 from UTF-16(they didn't use any UTF-16 symbols anyway); 2. Added explicit signed->unsigned integer casts in `gdraw_d3d1x_shared.inl` for C++11 compatibility 3. Linked against `legacy_stdio_definitions.lib` to avoid undefined references to `_vsnprintf` llvm-link errors --- .../Iggy/gdraw/gdraw_d3d1x_shared.inl | 24 +++++++++--------- .../Windows64/Windows64_Minecraft.cpp | 14 ++++++---- Minecraft.Client/Xbox/MinecraftWindows.rc | Bin 8606 -> 4125 bytes Minecraft.Client/Xbox/Resource.h | Bin 2172 -> 1055 bytes 4 files changed, 21 insertions(+), 17 deletions(-) diff --git a/Minecraft.Client/Windows64/Iggy/gdraw/gdraw_d3d1x_shared.inl b/Minecraft.Client/Windows64/Iggy/gdraw/gdraw_d3d1x_shared.inl index 1ab1f13f..e827cd82 100644 --- a/Minecraft.Client/Windows64/Iggy/gdraw/gdraw_d3d1x_shared.inl +++ b/Minecraft.Client/Windows64/Iggy/gdraw/gdraw_d3d1x_shared.inl @@ -502,7 +502,7 @@ static GDrawTexture * RADLINK gdraw_MakeTextureEnd(GDraw_MakeTexture_ProcessingI } // actually create texture - D3D1X_(TEXTURE2D_DESC) desc = { w, h, nmips, 1, (DXGI_FORMAT) p->i3, { 1, 0 }, + D3D1X_(TEXTURE2D_DESC) desc = { static_cast(w), static_cast(h), static_cast(nmips), 1, static_cast(p->i3), { 1, 0 }, (p->i2 & GDRAW_MAKETEXTURE_FLAGS_updatable) ? D3D1X_(USAGE_DEFAULT) : D3D1X_(USAGE_IMMUTABLE), D3D1X_(BIND_SHADER_RESOURCE), 0, 0 }; @@ -541,7 +541,7 @@ static rrbool RADLINK gdraw_UpdateTextureBegin(GDrawTexture *t, void *unique_id, static void RADLINK gdraw_UpdateTextureRect(GDrawTexture *t, void * /*unique_id*/, S32 x, S32 y, S32 stride, S32 w, S32 h, U8 *samples, gdraw_texture_format /*format*/) { GDrawHandle *s = (GDrawHandle *) t; - D3D1X_(BOX) box = { x, y, 0, x+w, y+h, 1 }; + D3D1X_(BOX) box = { static_cast(x), static_cast(y), 0U, static_cast(x + w), static_cast(y + h), 1U }; gdraw->d3d_context->UpdateSubresource(s->handle.tex.d3d, 0, &box, samples, stride, 0); } @@ -586,8 +586,8 @@ static void RADLINK gdraw_SetAntialiasTexture(S32 width, U8 *rgba) safe_release(gdraw->aa_tex_view); safe_release(gdraw->aa_tex); - D3D1X_(TEXTURE2D_DESC) desc = { width, 1, 1, 1, DXGI_FORMAT_R8G8B8A8_UNORM, { 1, 0 }, D3D1X_(USAGE_IMMUTABLE), D3D1X_(BIND_SHADER_RESOURCE), 0, 0 }; - D3D1X_(SUBRESOURCE_DATA) data = { rgba, width*4, 0 }; + D3D1X_(TEXTURE2D_DESC) desc = { static_cast(width), 1U, 1U, 1U, DXGI_FORMAT_R8G8B8A8_UNORM, { 1, 0 }, D3D1X_(USAGE_IMMUTABLE), D3D1X_(BIND_SHADER_RESOURCE), 0U, 0U }; + D3D1X_(SUBRESOURCE_DATA) data = { rgba, static_cast(width) * 4U, 0U }; hr = gdraw->d3d_device->CreateTexture2D(&desc, &data, &gdraw->aa_tex); if (FAILED(hr)) { @@ -646,10 +646,10 @@ static GDrawVertexBuffer * RADLINK gdraw_MakeVertexBufferEnd(GDraw_MakeVertexBuf GDrawHandle *vb = (GDrawHandle *) p->p0; HRESULT hr; - D3D1X_(BUFFER_DESC) vbdesc = { p->vertex_data_length, D3D1X_(USAGE_IMMUTABLE), D3D1X_(BIND_VERTEX_BUFFER), 0, 0 }; + D3D1X_(BUFFER_DESC) vbdesc = { static_cast(p->vertex_data_length), D3D1X_(USAGE_IMMUTABLE), D3D1X_(BIND_VERTEX_BUFFER), 0U, 0U }; D3D1X_(SUBRESOURCE_DATA) vbdata = { p->vertex_data, 0, 0 }; - D3D1X_(BUFFER_DESC) ibdesc = { p->index_data_length, D3D1X_(USAGE_IMMUTABLE), D3D1X_(BIND_INDEX_BUFFER), 0, 0 }; + D3D1X_(BUFFER_DESC) ibdesc = { static_cast(p->index_data_length), D3D1X_(USAGE_IMMUTABLE), D3D1X_(BIND_INDEX_BUFFER), 0U, 0U }; D3D1X_(SUBRESOURCE_DATA) ibdata = { p->index_data, 0, 0 }; hr = gdraw->d3d_device->CreateBuffer(&vbdesc, &vbdata, &vb->handle.vbuf.verts); @@ -722,8 +722,8 @@ static GDrawHandle *get_color_rendertarget(GDrawStats *stats) return t; } - D3D1X_(TEXTURE2D_DESC) desc = { gdraw->frametex_width, gdraw->frametex_height, 1, 1, DXGI_FORMAT_R8G8B8A8_UNORM, { 1, 0 }, - D3D1X_(USAGE_DEFAULT), D3D1X_(BIND_SHADER_RESOURCE) | D3D1X_(BIND_RENDER_TARGET), 0, 0 }; + D3D1X_(TEXTURE2D_DESC) desc = { static_cast(gdraw->frametex_width), static_cast(gdraw->frametex_height), 1U, 1U, DXGI_FORMAT_R8G8B8A8_UNORM, { 1, 0 }, + D3D1X_(USAGE_DEFAULT), D3D1X_(BIND_SHADER_RESOURCE) | D3D1X_(BIND_RENDER_TARGET), 0U, 0U }; t->handle.tex.d3d = NULL; t->handle.tex.d3d_view = NULL; @@ -765,8 +765,8 @@ static ID3D1X(DepthStencilView) *get_rendertarget_depthbuffer(GDrawStats *stats) char *failed_call; assert(!gdraw->rt_depth_buffer); - D3D1X_(TEXTURE2D_DESC) desc = { gdraw->frametex_width, gdraw->frametex_height, 1, 1, DXGI_FORMAT_D24_UNORM_S8_UINT, { 1, 0 }, - D3D1X_(USAGE_DEFAULT), D3D1X_(BIND_DEPTH_STENCIL), 0, 0 }; + D3D1X_(TEXTURE2D_DESC) desc = { static_cast(gdraw->frametex_width), static_cast(gdraw->frametex_height), 1U, 1U, DXGI_FORMAT_D24_UNORM_S8_UINT, { 1, 0 }, + D3D1X_(USAGE_DEFAULT), D3D1X_(BIND_DEPTH_STENCIL), 0U, 0U }; HRESULT hr = gdraw->d3d_device->CreateTexture2D(&desc, NULL, &gdraw->rt_depth_buffer); failed_call = "CreateTexture2D"; @@ -2399,8 +2399,8 @@ GDrawTexture * RADLINK gdraw_D3D1X_(MakeTextureFromResource)(U8 *resource_file, mipmaps = texture->mipmaps; blk = 1; - D3D1X_(TEXTURE2D_DESC) desc = { width, height, mipmaps, 1, DXGI_FORMAT_UNKNOWN, { 1, 0 }, - D3D1X_(USAGE_IMMUTABLE), D3D1X_(BIND_SHADER_RESOURCE), 0, 0 }; + D3D1X_(TEXTURE2D_DESC) desc = { static_cast(width), static_cast(height), static_cast(mipmaps), 1U, DXGI_FORMAT_UNKNOWN, { 1, 0 }, + D3D1X_(USAGE_IMMUTABLE), D3D1X_(BIND_SHADER_RESOURCE), 0U, 0U }; switch (texture->format) { case IFT_FORMAT_rgba_8888 : size= 4; d3dfmt = DXGI_FORMAT_R8G8B8A8_UNORM; break; diff --git a/Minecraft.Client/Windows64/Windows64_Minecraft.cpp b/Minecraft.Client/Windows64/Windows64_Minecraft.cpp index 0cbfd90f..494e7423 100644 --- a/Minecraft.Client/Windows64/Windows64_Minecraft.cpp +++ b/Minecraft.Client/Windows64/Windows64_Minecraft.cpp @@ -39,6 +39,10 @@ #include "Xbox/resource.h" +#ifdef _MSC_VER +#pragma comment(lib, "legacy_stdio_definitions.lib") +#endif + HINSTANCE hMyInst; LRESULT CALLBACK DlgProc(HWND hWndDlg, UINT Msg, WPARAM wParam, LPARAM lParam); char chGlobalText[256]; @@ -181,11 +185,11 @@ void DefineActions(void) InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_CRAFTING, _360_JOY_BUTTON_X); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_RENDER_THIRD_PERSON, _360_JOY_BUTTON_RTHUMB); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_GAME_INFO, _360_JOY_BUTTON_BACK); - + InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_DPAD_LEFT, _360_JOY_BUTTON_DPAD_LEFT); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_DPAD_RIGHT, _360_JOY_BUTTON_DPAD_RIGHT); InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_DPAD_UP, _360_JOY_BUTTON_DPAD_UP); - InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_DPAD_DOWN, _360_JOY_BUTTON_DPAD_DOWN); + InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_DPAD_DOWN, _360_JOY_BUTTON_DPAD_DOWN); InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_A, _360_JOY_BUTTON_A); InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_B, _360_JOY_BUTTON_B); @@ -230,11 +234,11 @@ void DefineActions(void) InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_OTHER_STICK_DOWN, _360_JOY_BUTTON_RSTICK_DOWN); InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_OTHER_STICK_LEFT, _360_JOY_BUTTON_RSTICK_LEFT); InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_OTHER_STICK_RIGHT, _360_JOY_BUTTON_RSTICK_RIGHT); - + InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_DPAD_LEFT, _360_JOY_BUTTON_DPAD_LEFT); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_DPAD_RIGHT, _360_JOY_BUTTON_DPAD_RIGHT); InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_DPAD_UP, _360_JOY_BUTTON_DPAD_UP); - InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_DPAD_DOWN, _360_JOY_BUTTON_DPAD_DOWN); + InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_DPAD_DOWN, _360_JOY_BUTTON_DPAD_DOWN); } #if 0 @@ -806,7 +810,7 @@ int APIENTRY _tWinMain(_In_ HINSTANCE hInstance, app.loadMediaArchive(); RenderManager.Initialise(g_pd3dDevice, g_pSwapChain); - + app.loadStringTable(); ui.init(g_pd3dDevice,g_pImmediateContext,g_pRenderTargetView,g_pDepthStencilView,g_iScreenWidth,g_iScreenHeight); diff --git a/Minecraft.Client/Xbox/MinecraftWindows.rc b/Minecraft.Client/Xbox/MinecraftWindows.rc index 69ce53342a8082e38990ce84f3f91dd252357d8b..e4fd4960b8c69f5b27386422de5618a9bfa23346 100644 GIT binary patch literal 4125 zcmcIn?QY^a5dF_n%uS`L)#d_$F75uh3b6sJ`9QJL52+Gj!9b)mK}pzlr9S-H4ow0r zTUD33sYu55c;?KEecWn+6VB2kOBOlYgxO{qf%WYhEP2e+Y0l@6@+{e;GY;7-4cB?I z(P}kL!gv;K<{Y%w-sVbcG*0Gx5yl+MF=YWF-o(cy@?86VLhqfvXHzlvh)r73YQeBH zb&)2Ikgqr}e8-4u*#W}PDLvSlzKDgHm5s!`@vbqd`IJx7CC`8HR62FS<9WDv>)MDQ zgx%7y3X!KUo+nS4n!DLuYH!Yw(Ky*#?G5-xUQa-e<7E_PD>w_{Q05BFMapF7CE}UL ziEsh`6nQZ}GY5AfC#Vv6K8KeVsCP2cA5O3voHuOK9R}tQgM1O9p-t#W2O9M2 zf=NIdM|Vpm6`3Wm_?61lJ3NK?3ZmqRXE_iAzoyZK!#bMIgxiZS71BHb9%q}B!*sol z!r3$rlNiE6k$~iJ8pauj&n(Px9_Ju>r%?piZ}ItJgS z61O1@9(&_p4BF`+jJT#GRiEsa!wJI$+SIZnTA}UUOhyf}=Uxiwc7yFf`HPk{^ zI%p0By5gd)QM42&7PhsYjapdtE79m&>9RH`Ga0dT<3c{dn@(G0tu2qUT8dY758J}m z;fAM~+-{6!TdV83=qPnU-<3}3#P!BL7M{Pa*GksE({Q=U;mkURPTT12>+1A$L+VoV z5gv>KI_d|EsSQf=uH|^|TJQ9P3%&39_qJSJz&rH4V5}x#L|EM)>9>^WmmT>S-77f- z(}@`{Z$vHMv+ah;EpgzAh+?!KcjL0F!=>@HVaM|@2gaZC&qex8=y06#6mqFZ|JTqj z#h(K7O>ho_YZyHV?5D8RjURu5_Di;Xgee)i#2t95bOjN3mv;>Vg0L-)JqooM)uu1Q zuJ&3{^7=ORDwC=qvNmiyV2)r9#1+Y)`lZw-!%->j8W&{;^TuyS_dSux&a2$G{841A z+}fqG*9823Rv5kBXRPQIHp>c-{{kf6NWwNih3+vl0} zobAMR65!Mz%U*lEJ3Bk`%**cn`_Hy)izf}amyV2NC}Z3`nV{|*bz_;zjr8$VlAm#T zawoSkz&%3!1Z5X>Bb4kn#ajpO9==HJULMhAOMa9eFv_-;8>k)NZy&9@+SZ@zza@W& zudUg0L)-PVA88k*C4sc%Ov+M|6S-MMhc2|%3;Vm#sQq*;9%CkDokKHKgK5b5s;KBfGGBqY z_~_Hz`7IjDbg_PDAxGqH1NM`r!DVb>{b$M9dcfcSDC-Tyg6?) zmUk)WAFITi)QCqMD*kw&Rn*Mh7Yp zL-71x4^~XAQpbI@X~q@CB6gq!mEZBj9>P>sPr{v)0Z;R-arBq&?DE8H{@)GVI(zv0`w~a zVf6(gtABbpikkVIWzHd*4RvCEXgx7% z+*!$Nt%Hlwwk&)I4`BaU@?IXTMWC9Iu8x~Nsts(OhH)lcf4=;dtCM*>z(+7rQRXL_p|EC0HQ}Cn zSWy)8yC5IrKr2sAKC( z-0mM^<2C$aqnbTa^0ZO*+XUtPZ%?PCUFeSUHV;fo za_dB^NtS7O1mzshBxt?o>TQ?@x!k7!zr3UKP3LSMd`J8_J~@v-_1aXua*g7&zZ%CS z@bHM7i#rT=&;c{Dw~z;Obk4sZdkZ<+1(M01aTe!*>*ynm&&zu2z;@0d~M1vkT^B(?g+KZ*wa(c%n@iG4#nRS%f#+SjPx8NQ*Y~;y~S4+ z#wG2HmRdu!ZQ|Kf%-LU-yt&)e3-=n9+o9tg18tg_oLh4;MrDna6^)!vn9UJr_3{oaM=M`SHjHg?eMORq-r_sHHa_vc9C}He_v*NRO_py_ zo>ma;*>m3JDfnK1%+gzWDx-9ZOFu`s(kzWsBTey(rvy(K!|5k)=b3Yh&JL~+%dQaB zlKTR_>Us7Y$VbdeKT+^OBa04qYuq_QcAMv%J!Dg5j+{Kn@^uF@z6ZzikUZ}5ck%Pi zDYE#=()ivJHNNUNFXIPZlU4Klfol<-QqZbyu)^f-%&c8AUuJ~kc>q^&-0836STrLI zSHWEEwor1_*VaDfUz26pS}wVgOIji6FSn!V#vy%jpS_#y=qEi*HXfMmKL1>2y^%r; u*uARnH2kdR42?T0pL=di|CE1jZE{>sd5|k|n2q-V_AR*LT;{x;l>P&WedOT) diff --git a/Minecraft.Client/Xbox/Resource.h b/Minecraft.Client/Xbox/Resource.h index 554357262473e4eecfc5596d6df6adfdf4bf574b..c5c2988f4949944030c0c14ed624a7a53212aae3 100644 GIT binary patch literal 1055 zcmaKrO>f*F5QgvjE0A)Gl7&sHZI7&BBUA$`!25ARj*TlvmMz)drd5>xUc6OPyrS{N zXy%z$FT>1o`T8oPC3Hsxp(0^azr8J%OTg=*?}n}#!M+~Oc>|K$TkzeruFpqTg1Rl5 zbLl`;H|~Dov%yE7e)+oA6@6Zfhq^7hm*KuIe0p(Hy2@t&BZ=iFmPi4j-zp%9C7HtF zQL4$CGE^H&7*6HmREl88YKwO}YnVxCL>Iw_nJ(VQ%xvT_f_mMM<@UnHz>9}ZQC$?_ z5uCG{QWC)~p*hPfJu>ru_H*EYSX(cK^ngcGX`HY^ET2FE+Jm! zcZ9A;dNfv1Ei;u+yT@tv-X662*S|li6PrlRu^@94JgnC1n6h6fqhxwTBM4)#zY4t; P_A7;aw_RJ-)!*N52H^u} literal 2172 zcmbW2U2obj6o$|Br2U6Ty_{B{+tlqc<)cC)Sw%uwuTaa!#8efjly%dzzrO8x?Lr|U z1}ZCxePTa8IX>t0zrPi$*l${DUu<9vYuW`*>Uycwt<5O2KeX5Oin$ewEU~E#?cQcK z=b6|8wo7btTiCVTGOF7fT4djBY~q6U9a7aeP`^5i>-AL|Ixs!0i-MXb^bQRx_>)y^lj9Ji(AjS z7Q;M;++9VmYq^VG?&h?a(c$~~YTuewt(=^(D&{;cc;|SXv%0xj8}?n~cR`SCQWz@x0el=6hb`v`GH;Ts(AN=qxYE zw$HA1o>$xj)<_*=2vXnr_># zR9fC;cp^Qo(;x7Es)Qc>;yEaDw&&zFvhJM3)s=475H~`(PpHt-r!(HiZ-1lZc&#Xg g>8jG|0c?Lhs)8_A@u|_48Lzv4#0@-oI@8VZe~T{$>i_@%