[feat]: initial commit
This commit is contained in:
commit
7b48f34e94
24 changed files with 1354 additions and 0 deletions
72
source/main_release/main_release.odin
Normal file
72
source/main_release/main_release.odin
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
/*
|
||||
For making a release exe that does not use hot reload.
|
||||
*/
|
||||
|
||||
package main_release
|
||||
|
||||
import "core:log"
|
||||
import "core:os"
|
||||
import "core:path/filepath"
|
||||
import "core:mem"
|
||||
import game ".."
|
||||
|
||||
_ :: mem
|
||||
|
||||
USE_TRACKING_ALLOCATOR :: #config(USE_TRACKING_ALLOCATOR, false)
|
||||
|
||||
main :: proc() {
|
||||
// Set working dir to dir of executable.
|
||||
exe_path := os.args[0]
|
||||
exe_dir := filepath.dir(string(exe_path), context.temp_allocator)
|
||||
os.set_working_directory(exe_dir)
|
||||
|
||||
mode := os.Permissions { .Read_User, .Write_User, .Read_Group, .Read_Other }
|
||||
logh, logh_err := os.open("log.txt", {.Create, .Trunc, .Read, .Write}, mode)
|
||||
|
||||
if logh_err == os.ERROR_NONE {
|
||||
os.stdout = logh
|
||||
os.stderr = logh
|
||||
}
|
||||
|
||||
logger_alloc := context.allocator
|
||||
logger := logh_err == os.ERROR_NONE ? log.create_file_logger(logh, allocator = logger_alloc) : log.create_console_logger(allocator = logger_alloc)
|
||||
context.logger = logger
|
||||
|
||||
when USE_TRACKING_ALLOCATOR {
|
||||
default_allocator := context.allocator
|
||||
tracking_allocator: mem.Tracking_Allocator
|
||||
mem.tracking_allocator_init(&tracking_allocator, default_allocator)
|
||||
context.allocator = mem.tracking_allocator(&tracking_allocator)
|
||||
}
|
||||
|
||||
game.game_init_window()
|
||||
game.game_init()
|
||||
|
||||
for game.game_should_run() {
|
||||
game.game_update()
|
||||
}
|
||||
|
||||
free_all(context.temp_allocator)
|
||||
game.game_shutdown()
|
||||
game.game_shutdown_window()
|
||||
|
||||
when USE_TRACKING_ALLOCATOR {
|
||||
for _, value in tracking_allocator.allocation_map {
|
||||
log.errorf("%v: Leaked %v bytes\n", value.location, value.size)
|
||||
}
|
||||
|
||||
mem.tracking_allocator_destroy(&tracking_allocator)
|
||||
}
|
||||
|
||||
if logh_err == os.ERROR_NONE {
|
||||
log.destroy_file_logger(logger, logger_alloc)
|
||||
}
|
||||
}
|
||||
|
||||
// make game use good GPU on laptops etc
|
||||
|
||||
@(export)
|
||||
NvOptimusEnablement: u32 = 1
|
||||
|
||||
@(export)
|
||||
AmdPowerXpressRequestHighPerformance: i32 = 1
|
||||
Loading…
Add table
Add a link
Reference in a new issue