Files
coven/module.jai
2024-10-13 00:54:26 +02:00

113 lines
2.1 KiB
Plaintext

EDITOR :: true;
DEBUG :: true;
#if EDITOR {
//#load "../editor/scene_editor.jai";
//#load "../ui/new_ui/new_ui.jai";
#load "editor/editor.jai";
editor: Editor;
}
Engine_Mode :: enum {
PLAYING;
EDITING;
}
mode: Engine_Mode;
window: *Window;
renderer: *Renderer;
input : Input_State;
current_scene: *Scene;
camera_buffer : Buffer_Handle;
screen_data_buffer : Buffer_Handle;
directional_light_buffer : Buffer_Handle;
time: float;
dt: float;
quit: bool;
frame_index : u64 = 0;
coven_init :: (window_title: string, window_width: u32, window_height: u32, fullscreen: bool) {
window = create_window(window_title, window_width, window_height, fullscreen);
renderer = create_renderer(window);
renderer.vsync = true;
init_input();
init_audio_system();
init_console();
ui_init();
}
coven_run :: (game_update_proc: (float)) {
time = xx seconds_since_init();
while !quit {
//reset_temporary_storage();
frame_index += 1;
update_input();
// @Incomplete
if key_pressed(.SHIFT) && key_down(.ESCAPE) {
quit = true;
}
now : float = xx seconds_since_init();
dt = now - time;
time = now;
update_fps_counter(dt);
update_console();
ui_begin();
game_update_proc(min(0.4, dt));
ui_end();
update_audio(dt);
render();
}
SDL_DestroyWindow(window);
SDL_Quit();
}
#load "input/input.jai";
#load "networking/networking.jai";
#load "renderer/renderer.jai";
#load "windowing/window.jai";
#load "physics/physics.jai";
#load "core/string_helpers.jai";
#load "core/math.jai";
#load "core/ray.jai";
#load "animation/animator.jai";
#load "core/entity.jai";
#load "core/parray.jai";
#load "core/scene.jai";
#load "core/transform.jai";
#load "core/camera.jai";
#load "core/console.jai";
#load "audio/audio.jai";
#load "core/fps.jai";
#scope_export
#import "Bucket_Array";
#import "Basic";
#import "String";
#import "System";
#import "Flat_Pool";
#import "Hash_Table";
File :: #import "File";
#import "File_Watcher";
#import "File_Utilities";