From f6fe330a762e3154e35217a9443e01c2f25303ef Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sat, 12 Apr 2025 07:53:14 +0900 Subject: [PATCH] add some windows-specific tool --- engine/engine.rc | 2 +- internal/goldfish.bmp | Bin 0 -> 49290 bytes {texture => internal}/goldfish.ico | Bin {texture => internal}/icon.ico | Bin {texture => internal}/icon.png | Bin src/engineinfo/main_console.c | 2 + src/engineinfo/main_windows.c | 137 ++++++++++++++++++++++++++++- src/nishbox.rc | 4 +- tool/format.sh | 2 +- 9 files changed, 141 insertions(+), 6 deletions(-) create mode 100644 internal/goldfish.bmp rename {texture => internal}/goldfish.ico (100%) rename {texture => internal}/icon.ico (100%) rename {texture => internal}/icon.png (100%) diff --git a/engine/engine.rc b/engine/engine.rc index 996da8d..3523ab7 100644 --- a/engine/engine.rc +++ b/engine/engine.rc @@ -1,6 +1,6 @@ #include -ENGINE ICON "../texture/goldfish.ico" +ENGINE ICON "../internal/goldfish.ico" VS_VERSION_INFO VERSIONINFO FILEVERSION 1,0,0,0 PRODUCTVERSION 1,0,0,0 diff --git a/internal/goldfish.bmp b/internal/goldfish.bmp new file mode 100644 index 0000000000000000000000000000000000000000..0d3586defc161378edf3edd9a61ec64a1ab22f6e GIT binary patch literal 49290 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 literal 0 HcmV?d00001 diff --git a/texture/goldfish.ico b/internal/goldfish.ico similarity index 100% rename from texture/goldfish.ico rename to internal/goldfish.ico diff --git a/texture/icon.ico b/internal/icon.ico similarity index 100% rename from texture/icon.ico rename to internal/icon.ico diff --git a/texture/icon.png b/internal/icon.png similarity index 100% rename from texture/icon.png rename to internal/icon.png diff --git a/src/engineinfo/main_console.c b/src/engineinfo/main_console.c index ee2f679..d703999 100644 --- a/src/engineinfo/main_console.c +++ b/src/engineinfo/main_console.c @@ -11,6 +11,8 @@ int main(int argc, char** argv) { gf_get_version(&ver); printf("GoldFish Engine version: %s\n", ver.full); + printf("Thread model: %s\n", ver.thread); + printf("Renderer: %s on %s\n", ver.driver, ver.backend); return 0; } diff --git a/src/engineinfo/main_windows.c b/src/engineinfo/main_windows.c index c751a7f..0220254 100644 --- a/src/engineinfo/main_windows.c +++ b/src/engineinfo/main_windows.c @@ -2,12 +2,143 @@ #include /* External library */ +#include /* Standard */ +#include -int main(int argc, char** argv) { - gf_version_t ver; - gf_get_version(&ver); +HINSTANCE hInst; +HFONT monospace; +gf_version_t ver; +char vertxt[512]; +void ShowBitmapSize(HWND hWnd, HDC hdc, const char* name, int x, int y, int w, int h) { + HBITMAP hBitmap = LoadBitmap(hInst, name); + BITMAP bmp; + HDC hmdc; + GetObject(hBitmap, sizeof(bmp), &bmp); + hmdc = CreateCompatibleDC(hdc); + SelectObject(hmdc, hBitmap); + if(w == 0 && h == 0) { + StretchBlt(hdc, x, y, bmp.bmWidth, bmp.bmHeight, hmdc, 0, 0, bmp.bmWidth, bmp.bmHeight, SRCCOPY); + } else { + StretchBlt(hdc, x, y, w, h, hmdc, 0, 0, bmp.bmWidth, bmp.bmHeight, SRCCOPY); + } + DeleteDC(hmdc); + DeleteObject(hBitmap); +} + +LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { + switch(msg) { + case WM_CLOSE: { + DestroyWindow(hWnd); + break; + } + case WM_DESTROY: { + PostQuitMessage(0); + break; + } + case WM_CREATE: { + monospace = (HFONT)GetStockObject(SYSTEM_FIXED_FONT); + break; + } + case WM_PAINT: { + HDC hdc; + PAINTSTRUCT ps; + RECT rc; + RECT tx; + int sz; + int width; + int height; + int padding; + + GetClientRect(hWnd, &rc); + width = rc.right - rc.left; + height = rc.bottom - rc.top; + sz = height * 4 / 5; + padding = height / 2 - sz / 2; + + hdc = BeginPaint(hWnd, &ps); + SelectObject(hdc, monospace); + ShowBitmapSize(hWnd, hdc, "GOLDFISH_BMP", padding, padding, sz, sz); + + tx.left = padding * 2 + sz; + tx.right = rc.right; + tx.top = padding; + tx.bottom = rc.bottom - padding * 2; + DrawText(hdc, vertxt, strlen(vertxt), &tx, DT_LEFT); + EndPaint(hWnd, &ps); + break; + } + default: { + return DefWindowProc(hWnd, msg, wp, lp); + } + } return 0; } + +BOOL InitApp(void) { + WNDCLASSEX wc; + wc.cbSize = sizeof(WNDCLASSEX); + wc.style = CS_HREDRAW | CS_VREDRAW; + wc.lpfnWndProc = WndProc; + wc.cbClsExtra = 0; + wc.cbWndExtra = 0; + wc.hInstance = hInst; + wc.hIcon = LoadIcon(hInst, "GOLDFISH"); + wc.hCursor = LoadCursor(NULL, IDC_ARROW); + wc.hbrBackground = GetSysColorBrush(COLOR_MENU); + wc.lpszMenuName = NULL; + wc.lpszClassName = "goldfish"; + wc.hIconSm = LoadIcon(hInst, "GOLDFISH"); + return RegisterClassEx(&wc); +} + +BOOL InitWindow(int nCmdShow) { + HWND hWnd; + RECT deskrc, rc; + HWND hDeskWnd = GetDesktopWindow(); + GetWindowRect(hDeskWnd, &deskrc); + hWnd = CreateWindow("goldfish", "GoldFish Engine Info", (WS_OVERLAPPEDWINDOW ^ WS_THICKFRAME) ^ WS_MAXIMIZEBOX, 0, 0, 500, 250, NULL, 0, hInst, NULL); + + if(!hWnd) { + return FALSE; + } + GetWindowRect(hWnd, &rc); + SetWindowPos(hWnd, HWND_TOP, (deskrc.right - (rc.right - rc.left)) / 2, (deskrc.bottom - (rc.bottom - rc.top)) / 2, rc.right - rc.left, rc.bottom - rc.top, SWP_SHOWWINDOW); + ShowWindow(hWnd, nCmdShow); + UpdateWindow(hWnd); + return TRUE; +} + +int WINAPI WinMain(HINSTANCE hCurInst, HINSTANCE hPrevInst, LPSTR lpsCmdLine, int nCmdShow) { + MSG msg; + BOOL bret; + + hInst = hCurInst; + + gf_get_version(&ver); + vertxt[0] = 0; + sprintf(vertxt + strlen(vertxt), "GoldFish Engine %s\n", ver.full); + sprintf(vertxt + strlen(vertxt), "Thread Model: %s\n", ver.thread); + sprintf(vertxt + strlen(vertxt), "Renderer : %s on %s\n", ver.driver, ver.backend); + + if(!InitApp()) { + return FALSE; + } + + if(!InitWindow(nCmdShow)) { + return FALSE; + } + + while((bret = GetMessage(&msg, NULL, 0, 0)) != 0) { + if(bret == -1) { + break; + } else { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + } + + return (int)msg.wParam; +} diff --git a/src/nishbox.rc b/src/nishbox.rc index 4619956..ca8d081 100644 --- a/src/nishbox.rc +++ b/src/nishbox.rc @@ -1,3 +1,5 @@ #include -NISHBOX ICON "../texture/icon.ico" +NISHBOX ICON "../internal/icon.ico" +GOLDFISH ICON "../internal/goldfish.ico" +GOLDFISH_BMP BITMAP "../internal/goldfish.bmp" diff --git a/tool/format.sh b/tool/format.sh index 7334c65..6fb59cb 100755 --- a/tool/format.sh +++ b/tool/format.sh @@ -1,2 +1,2 @@ #!/bin/sh -exec clang-format --verbose -i `find engine src -name "*.c" -or -name "*.h"` +exec clang-format --verbose -i `find engine src "(" -name "*.c" -or -name "*.h" ")" -and -not -path "engine/external/*"`