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 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 literal 2172 zcmezWPoF`bp_-wZ!H>b8A)dj7!IdF^!Ii-e%<^M!X7FTiWe8@dWvFG~W#D1}sa9a{ zWyoYmW+-CFXDDXKXGmixVNhTQW5{GEW+-JyWXNGqU~p#8X3%C(U`S_3WyoVlWhi1u zWGG=sWk_LAV8~?1V@PJmVJKxtVMt|AU`S)gWXNGiWza*iA(WvQsyd0Gk^y2P$Q+QZ ziC`PU!RDkej^@Cih3^pBPHb|cWgC~OvgEK=sgD*oQgC~PCgFk~G zg8~WA2y8kwQ(eH}7RnIB;K<;|;LhOB5CjjwAchcd_=SMgcrrLL_%Qf0xWnx=WH4aB zZE`R}JcA=c07C#nJVOYBCqoE>4}&XQFMij9Og6^rW=94m27iW7h7d3vL8Q3~4ERm< z1-lt$GJZFr%YsZcA<4~#M7o-=$-xY+46Y0=M4E?iIewEtq2bC90ggL_9^zOalTC4k zh9@{JdouVjxH33{)1Dhc2tzmnNW_J~pCOzf7^h!ACY$3mIhes0oK}5snt|O9Ad@X{ znheQ*AQzJ7W=otV2Z2Mw5$t<6aA^3FkW-8p@Vgn5E62Ln=ctxV+70 zC}L0mm&@f03Jm!SNeo#GsSL>sB@D%2Ga=@IOjc&dWJrUSqzd4&2;|;S1{VfTaD4%a z%PLLs2_t5LnK2yLoh=mgDyu)=35D3^jtX^`uJ!R2BQgENCGLp(zmI46W+Nl%6hMhw`~B(i&9CWGo6 zUvRzx)vox=RbVh?Fk&!gFo(u5G42ML?#B?q5X9im;DguIkP_U01hXOW1Ih*XT@A_! ThT!@Ek`h35e+oDSVdDb;i!TQ2