Files
Juliet/Juliet/julietapp/julietapp_core.h
T

54 lines
1.4 KiB
C

#pragma once
// =============================================================================
// Core Types
typedef uint64 JA_ID;
// =============================================================================
// States Types
typedef struct JA_WindowState JA_WindowState;
struct JA_WindowState
{
JA_WindowState* order_next;
JA_WindowState* order_previous;
JA_WindowState* hash_next;
JA_WindowState* hash_previous;
JA_ID id;
WM_Window plat_handle;
};
typedef struct JA_State JA_State;
struct JA_State
{
// Base
Arena* arena;
bool32 quit;
// Windows
JA_WindowState* first_window_state;
JA_WindowState* last_window_state;
JA_WindowState* window_state_last_accessed;
JA_ID window_state_last_accessed_id;
JA_ID window_state_gen_id;
};
// =============================================================================
// Globals
read_only global JA_WindowState ja_nil_window_state = { &ja_nil_window_state, &ja_nil_window_state };
global JA_State* ja_state = 0;
// =============================================================================
// Top level Functions
internal void ja_init();
internal void ja_frame();
internal void ja_shutdown();
// =============================================================================
// Window Functions
internal JA_WindowState* ja_window_state_from_id(JA_ID id);