From 2c3bf1f92aec1407b85666b62089c979fa5361a0 Mon Sep 17 00:00:00 2001 From: San Jacobs Date: Thu, 4 Sep 2025 01:59:45 +0200 Subject: Big progress. Growing, positioning and rendering now. --- src/tafl.odin | 262 ---------------------------------------------------------- 1 file changed, 262 deletions(-) delete mode 100644 src/tafl.odin (limited to 'src/tafl.odin') diff --git a/src/tafl.odin b/src/tafl.odin deleted file mode 100644 index a582858..0000000 --- a/src/tafl.odin +++ /dev/null @@ -1,262 +0,0 @@ -package tafl - -import "core:fmt" -//import "core:math" -import rl "vendor:raylib" - -tafl_elements : [4096]Tafl -tafl_elements_count : int - -tafl_stack : [4096]int -tafl_stack_depth : int - -child_buffer : [4096]int -child_buffer_len : int - -temp_child_buffer : [4096]int -temp_child_buffer_len : int // May be inferred by child count, and not be needed - -main :: proc() { - - { - tafl(color={.1,.1,.1,1}) - - { - tafl(color={.1,.1,.1,1}) - - { - tafl(color={.1,.1,.1,1}) - - { - tafl(color={.1,.1,.1,1}) - } - { - tafl(color={.1,.1,.1,1}) - } - { - tafl(color={.1,.1,.1,1}) - } - } - - { - tafl(color={.1,.1,.1,1}) - } - } - - { - tafl(color={.1,.1,.1,1}) - } - { - tafl(color={.1,.1,.1,1}) - { - tafl(color={.1,.1,.1,1}) - } - { - tafl(color={.1,.1,.1,1}) - } - } - { - tafl(color={.1,.1,.1,1}) - } - } -} - - - -@(deferred_out=__tafl_close) -tafl :: proc( - /*width : int = 0, - height : int = 0, - x : int = 0, - y : int = 0,*/ - sizing_width : Sizing_Dimension = {.FIT, 0, 0}, - sizing_height : Sizing_Dimension = {.FIT, 0, 0}, - layout : Layout = .LEFT_TO_RIGHT, - padding : Sides = {0,0,0,0}, - child_gap : int = 0, - color : Color = {1,1,0,1}, - ) -> ^Tafl{ - - parent_ptr : ^Tafl = nil - if tafl_stack_depth > 0 { - parent_ptr = &tafl_elements[tafl_stack[tafl_stack_depth-1]] - } - - tafl_elements[tafl_elements_count] = { - /*width = width, - height = height, - x = x, - y = y,*/ - sizing = {sizing_width, sizing_height}, - layout = layout, - padding = padding, - child_gap = child_gap, - - parent = parent_ptr, - } - this_tafl : ^Tafl = &tafl_elements[tafl_elements_count] - - tafl_stack[tafl_stack_depth] = tafl_elements_count - this_tafl.own_index = tafl_elements_count - this_tafl.own_depth = tafl_stack_depth - this_tafl.children.index = temp_child_buffer_len - - indent(this_tafl.own_depth) - fmt.printfln("+ Opened tafl {}", this_tafl.own_index) - - tafl_elements_count += 1 - tafl_stack_depth += 1 - - return this_tafl -} - - -__tafl_close :: proc(tafl : ^Tafl) { - - parent := tafl.parent - if parent != nil { - - tafl.width += tafl.padding.left + tafl.padding.right - tafl.height += tafl.padding.top + tafl.padding.bottom - - // Not entirely sure yet, because Nic's video doesn't say you need this - // max(), but I have a feeling that childless tafls will cause negative - // total_child_gaps, which would be bad. - // - // ALSO: Wtf? Why are we basing this off of the tafls number of siblings? - // I do not understand this. - total_child_gap := max(parent.children.len - 1, 0) * parent.child_gap - - switch parent.layout { - case .LEFT_TO_RIGHT: - tafl.width += total_child_gap - parent.width += tafl.width - parent.height = max(tafl.height, parent.height) - case .TOP_TO_BOTTOM: - tafl.height += total_child_gap - parent.height += tafl.height - parent.width = max(tafl.width, parent.width) - } - - } - - for i in 0..