72 lines
1.5 KiB
C
72 lines
1.5 KiB
C
////////////////////////////////////////////////////////////
|
|
//~ Handle types
|
|
|
|
Struct(WND_Handle)
|
|
{
|
|
u64 v;
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////
|
|
//~ Cmd types
|
|
|
|
Enum(WND_CmdKind)
|
|
{
|
|
WND_CmdKind_None,
|
|
WND_CmdKind_SetMinimized,
|
|
WND_CmdKind_SetMaximized,
|
|
WND_CmdKind_SetFullscreen,
|
|
WND_CmdKind_SetForcedTop,
|
|
WND_CmdKind_Restore,
|
|
};
|
|
|
|
Struct(WND_Cmd)
|
|
{
|
|
WND_CmdKind kind;
|
|
String restore;
|
|
b32 v;
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////
|
|
//~ Frame types
|
|
|
|
Enum(WND_BackbufferSizeMode)
|
|
{
|
|
WND_BackbufferSizeMode_MatchWindow,
|
|
WND_BackbufferSizeMode_MatchMonitor,
|
|
};
|
|
|
|
Struct(WND_Frame)
|
|
{
|
|
WND_Handle window;
|
|
G_ResourceHandle backbuffer;
|
|
|
|
ControllerEventsArray controller_events;
|
|
|
|
Vec2I32 draw_size;
|
|
Vec2I32 monitor_size;
|
|
|
|
String restore;
|
|
b32 minimized;
|
|
b32 maximized;
|
|
b32 fullscreen;
|
|
b32 forced_top;
|
|
b32 has_focus;
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////
|
|
//~ @hookdecl Bootstrap
|
|
|
|
void WND_Bootstrap(void);
|
|
|
|
////////////////////////////////////////////////////////////
|
|
//~ @hookdecl Command
|
|
|
|
#define WND_PushCmd(frame, ...) WND_PushCmd_((frame), (WND_Cmd) { __VA_ARGS__ })
|
|
void WND_PushCmd_(WND_Frame frame, WND_Cmd desc);
|
|
|
|
////////////////////////////////////////////////////////////
|
|
//~ @hookdecl Frame
|
|
|
|
WND_Frame WND_BeginFrame(G_Format backbuffer_format, WND_BackbufferSizeMode backbuffer_size_mode);
|
|
void WND_EndFrame(WND_Frame frame, i32 vsync);
|