package features_test import "core:fmt" import win "../window" // 4x4 red RGBA icon for testing (tiny but valid) make_test_icon :: proc(r, g, b: u8, size: u32) -> win.Icon { n := int(size * size * 4) rgba := make([]u8, n) for i := 0; i < n; i += 4 { rgba[i + 0] = r rgba[i + 1] = g rgba[i + 2] = b rgba[i + 3] = 255 } return win.Icon{rgba = rgba, width = size, height = size} } // 16x16 green crosshair cursor make_test_cursor :: proc() -> win.Cursor_Image { size : u32 = 16 n := int(size * size * 4) rgba := make([]u8, n) for y in 0.. win.Control_Flow { #partial switch e in event { case win.Window_Event_Data: #partial switch we in e.event { case win.Close_Requested: win.exit(loop) case win.Key_Input: if we.state == .Pressed { fmt.printfln("Key: %v repeat=%v mods=%v", we.key, we.repeat, we.modifiers) if we.key == .Escape { win.exit(loop) } } case win.Resized: fmt.printfln("Resized: %dx%d", we.size.width, we.size.height) case win.Scale_Factor_Changed: fmt.printfln("Scale factor changed: %.2f new_size: %dx%d", we.scale_factor, we.new_size.width, we.new_size.height) case win.Focused: fmt.println("Focused") case win.Unfocused: fmt.println("Unfocused") } case win.New_Events: if e.cause == .Init { fmt.println("Event loop initialized — close window or press Escape to exit") } } return win.Wait{} }) fmt.println("Done.") }