Fixed a bad reference
This commit is contained in:
parent
0545282292
commit
a2a70a0f33
6 changed files with 43 additions and 12 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -2,3 +2,4 @@ build
|
||||||
cscope.out
|
cscope.out
|
||||||
cscope.in.out
|
cscope.in.out
|
||||||
cscope.po.out
|
cscope.po.out
|
||||||
|
transformation_visualizer
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,6 @@
|
||||||
|
|
||||||
OUT_DIR="build/desktop"
|
OUT_DIR="build/desktop"
|
||||||
mkdir -p $OUT_DIR
|
mkdir -p $OUT_DIR
|
||||||
odin build . -strict-style -out:$OUT_DIR/game_desktop.bin -no-bounds-check -disable-assert -o:size -extra-linker-flags:"-Wl,--gc-sections,-s"
|
odin build . -out:$OUT_DIR/game -no-bounds-check -disable-assert -o:size -extra-linker-flags:"-Wl,--gc-sections,-s"
|
||||||
cp -R ./assets/ ./$OUT_DIR/
|
cp -R ./assets/ ./$OUT_DIR/
|
||||||
echo "Desktop build created in ${OUT_DIR}"
|
echo "Desktop build created in ${OUT_DIR}"
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,13 @@
|
||||||
package adb_pool
|
package adb_pool
|
||||||
|
|
||||||
Pool :: struct($T: typeid) {
|
Pool :: struct($T: typeid) {
|
||||||
pool: []T,
|
pool: []T,
|
||||||
usage, capacity: int,
|
usage: int,
|
||||||
}
|
}
|
||||||
|
|
||||||
init :: proc(pool: ^Pool($T), capacity: int, allocator := context.allocator) {
|
init :: proc(pool: ^Pool($T), capacity: int, allocator := context.allocator) {
|
||||||
pool.pool = make([]T, capacity, allocator)
|
pool.pool = make([]T, capacity, allocator)
|
||||||
pool.usage = 0
|
pool.usage = 0
|
||||||
pool.capacity = capacity
|
|
||||||
}
|
}
|
||||||
|
|
||||||
elems_available :: proc(pool: ^Pool($T), capacity: int) -> bool {
|
elems_available :: proc(pool: ^Pool($T), capacity: int) -> bool {
|
||||||
|
|
@ -16,7 +15,9 @@ elems_available :: proc(pool: ^Pool($T), capacity: int) -> bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
get :: proc(pool: ^Pool($T), count: int) -> []T {
|
get :: proc(pool: ^Pool($T), count: int) -> []T {
|
||||||
elements := pool.pool[pool.usage:pool.usage + count]
|
range_to := pool.usage + count
|
||||||
|
assert(range_to <= len(pool.pool), "pool.get count reaches outside preallocated size")
|
||||||
|
elements := pool.pool[pool.usage:]
|
||||||
pool.usage += count
|
pool.usage += count
|
||||||
return elements
|
return elements
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,9 @@ main :: proc() {
|
||||||
// os.set_working_directory(exe_dir)
|
// os.set_working_directory(exe_dir)
|
||||||
rl.ChangeDirectory(rl.GetApplicationDirectory())
|
rl.ChangeDirectory(rl.GetApplicationDirectory())
|
||||||
back.register_segfault_handler()
|
back.register_segfault_handler()
|
||||||
|
context.assertion_failure_proc = back.assertion_failure_proc
|
||||||
|
register_illegal_instruction_handler()
|
||||||
|
|
||||||
context.logger = log.create_console_logger()
|
context.logger = log.create_console_logger()
|
||||||
|
|
||||||
init()
|
init()
|
||||||
|
|
|
||||||
35
program.odin
35
program.odin
|
|
@ -159,8 +159,8 @@ UiButton_AddMat4CallbackData :: struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
program_add_mat4 :: proc(data: rawptr) {
|
program_add_mat4 :: proc(data: rawptr) {
|
||||||
data := cast(^UiButton_AddMat3CallbackData)data
|
data := cast(^UiButton_AddMat4CallbackData)data
|
||||||
field_pool_add_mat3(&data.program.matrix_field_pool, data.mat)
|
field_pool_add_mat4(&data.program.matrix_field_pool, data.mat)
|
||||||
}
|
}
|
||||||
|
|
||||||
field_pool_add_mat4 :: proc(pool: ^FieldPool(f32), m: mat4) {
|
field_pool_add_mat4 :: proc(pool: ^FieldPool(f32), m: mat4) {
|
||||||
|
|
@ -224,17 +224,38 @@ program_matrix_mode_dropdown_callback :: proc(previous, current: i32, data: rawp
|
||||||
program_set_message_state(program, .ChangeMatrixTypeClearData)
|
program_set_message_state(program, .ChangeMatrixTypeClearData)
|
||||||
}
|
}
|
||||||
|
|
||||||
program_build_ui :: proc() -> []UiElement {
|
program_add_matrix_button_data :: proc(label: cstring, matrix_type: MatrixType, allocator := context.temp_allocator) -> UiElementData_Button {
|
||||||
matrix_add_button_callback_data := UiButton_AddMat2CallbackData {
|
callback: UiElementCallback_Button
|
||||||
program = &program,
|
callback_data: rawptr
|
||||||
mat = mat2{0, 1, 2, 3},
|
switch program.matrix_mode_actual {
|
||||||
|
case .Mat2:
|
||||||
|
callback = program_add_mat2
|
||||||
|
data := new(UiButton_AddMat2CallbackData, context.temp_allocator)
|
||||||
|
data^ = {program = &program, mat = mat2{0, 1, 2, 3}}
|
||||||
|
callback_data = cast(rawptr)data
|
||||||
|
case .Mat3:
|
||||||
|
callback = program_add_mat3
|
||||||
|
data := new(UiButton_AddMat3CallbackData, context.temp_allocator)
|
||||||
|
data^ = {program = &program, mat = mat3{0, 1, 2, 3, 4, 5, 6, 7, 8}}
|
||||||
|
callback_data = cast(rawptr)data
|
||||||
|
case .Mat4:
|
||||||
|
callback = program_add_mat4
|
||||||
|
data := new(UiButton_AddMat4CallbackData, context.temp_allocator)
|
||||||
|
data^ = {program = &program, mat = mat4{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}}
|
||||||
|
callback_data = cast(rawptr)data
|
||||||
}
|
}
|
||||||
|
return {label = label, callback = callback, callback_data = callback_data}
|
||||||
|
}
|
||||||
|
|
||||||
|
program_build_ui :: proc() -> []UiElement {
|
||||||
|
|
||||||
|
|
||||||
ui_button_size_top_bar := v2{32.0, 32.0}
|
ui_button_size_top_bar := v2{32.0, 32.0}
|
||||||
ui_dropdown_size_top_bar := v2{96.0, 32.0}
|
ui_dropdown_size_top_bar := v2{96.0, 32.0}
|
||||||
ui_start(&program.ui_state)
|
ui_start(&program.ui_state)
|
||||||
ui_container_begin({label = ""})
|
ui_container_begin({label = ""})
|
||||||
ui_button(ui_button_size_top_bar, {label = "#10#", callback = program_add_mat2, callback_data = cast(rawptr)&matrix_add_button_callback_data})
|
matrix_add_data := program_add_matrix_button_data("#10#", program.matrix_mode_actual, context.temp_allocator)
|
||||||
|
ui_button(ui_button_size_top_bar, matrix_add_data)
|
||||||
ui_same_line()
|
ui_same_line()
|
||||||
ui_button(ui_button_size_top_bar, {label = "#11#"})
|
ui_button(ui_button_size_top_bar, {label = "#11#"})
|
||||||
ui_same_line()
|
ui_same_line()
|
||||||
|
|
|
||||||
5
signal_handler.odin
Normal file
5
signal_handler.odin
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
register_illegal_instruction_handler :: proc() {
|
||||||
|
_register_illegal_instruction_handler()
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue