Fixed a bad reference

This commit is contained in:
Synthasmagoria 2026-07-24 12:57:44 +02:00
commit a2a70a0f33
6 changed files with 43 additions and 12 deletions

View file

@ -159,8 +159,8 @@ UiButton_AddMat4CallbackData :: struct {
}
program_add_mat4 :: proc(data: rawptr) {
data := cast(^UiButton_AddMat3CallbackData)data
field_pool_add_mat3(&data.program.matrix_field_pool, data.mat)
data := cast(^UiButton_AddMat4CallbackData)data
field_pool_add_mat4(&data.program.matrix_field_pool, data.mat)
}
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_build_ui :: proc() -> []UiElement {
matrix_add_button_callback_data := UiButton_AddMat2CallbackData {
program = &program,
mat = mat2{0, 1, 2, 3},
program_add_matrix_button_data :: proc(label: cstring, matrix_type: MatrixType, allocator := context.temp_allocator) -> UiElementData_Button {
callback: UiElementCallback_Button
callback_data: rawptr
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_dropdown_size_top_bar := v2{96.0, 32.0}
ui_start(&program.ui_state)
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_button(ui_button_size_top_bar, {label = "#11#"})
ui_same_line()