Files
bluflame/hgplus/revision15-8k/src/intro/framework/window.h
2026-04-18 22:31:51 +02:00

91 lines
2.1 KiB
C

#pragma once
#ifndef SCREENWIDTH
#define SCREENWIDTH 1280
#endif
#ifndef SCREENHEIGHT
#define SCREENHEIGHT 720
#endif
#ifndef WINDOWED
#define WINDOWED FALSE
#endif
#pragma bss_seg(".windowbss")
static float windowWidth = SCREENWIDTH;
static float windowHeight = SCREENHEIGHT;
static HWND windowHandle;
#pragma data_seg(".aspectRatio")
static float aspectRatio = (float)SCREENWIDTH / (float)SCREENHEIGHT;
#ifdef VIDEO
#define windowTitle "Intro (rendering to video)"
#endif
#ifdef RELEASE
#define windowTitle "Intro (release)"
#endif
#ifdef SHADERDEBUG
#define windowTitle "Intro (shader debug)"
#endif
#ifdef AUTHORING
#define windowTitle "Intro (authoring)"
#endif
#ifndef windowTitle
#define windowTitle "Intro (unknown configuration)"
#endif
#ifndef COMPRESS
#undef WINDOWED
#define WINDOWED TRUE
#endif
#pragma code_seg(".windowInit")
INLINE void WindowInit()
{
Log("WindowInit");
#ifdef RELEASE
windowHandle = CreateWindowExA(0, (LPCSTR)0x0000C019, 0, WS_OVERLAPPEDWINDOW | WS_VISIBLE, 0, 0, windowWidth + 16, windowHeight + 39, 0, 0, 0, 0);
ShowCursor(false);
#else
WNDCLASSEX wndclass;
wndclass.cbSize = sizeof(wndclass);
wndclass.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
wndclass.lpfnWndProc = (WNDPROC)DefWindowProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = NULL;
wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = "IntroWindowClass";
wndclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
RegisterClassEx(&wndclass);
#ifndef AUTHORING
windowHandle = CreateWindowExA(0,
wndclass.lpszClassName,
windowTitle,
WS_EX_APPWINDOW,
GetSystemMetrics(SM_CXSCREEN) - windowWidth - 16,
0,
windowWidth + 16,
windowHeight + 39,
NULL,
NULL,
GetModuleHandle(NULL),
NULL
);
ShowWindow(windowHandle, SW_NORMAL);
SetWindowPos(windowHandle, 0, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
#else
windowHandle = CreateWindowExA(0, wndclass.lpszClassName, windowTitle, 0, 0, 0, SCREENWIDTH + 16, SCREENHEIGHT + 39, 0, 0, GetModuleHandle(NULL), 0);
#endif
#endif
}