package main import "core:fmt" import "core:math" import sdl "sdl3" main :: proc() { fmt.println("Hello world") _ = sdl.Init(sdl.INIT_VIDEO) window: ^sdl.Window renderer: ^sdl.Renderer sdl.CreateWindowAndRenderer("SDL3 with Odin", 800, 600, {.RESIZABLE}, &window, &renderer) sdl.SetRenderVSync(renderer, 1) running := true for running { e: sdl.Event for sdl.PollEvent(&e) { #partial switch e.type { case .QUIT: running = false } } now := f64(sdl.GetTicks()) / 1000.0 /* convert from milliseconds to seconds. */ /* choose the color for the frame we will draw. The sine wave trick makes it fade between colors smoothly. */ red := f32(0.5 + 0.5 * math.sin(now)) green := f32(0.5 + 0.5 * math.sin(now + math.PI * 2 / 3)) blue := f32(0.5 + 0.5 * math.sin(now + math.PI * 4 / 3)) sdl.SetRenderDrawColorFloat( renderer, red, green, blue, sdl.ALPHA_OPAQUE_FLOAT, ) /* new color, full alpha. */ // sdl.SetRenderDrawColor(renderer, 255, 0, 0, 255) sdl.RenderClear(renderer) sdl.RenderPresent(renderer) } }