Working example

This commit is contained in:
2025-12-15 12:37:50 -05:00
commit 4ff4b04f06
165 changed files with 94256 additions and 0 deletions

44
main.odin Normal file
View File

@@ -0,0 +1,44 @@
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)
}
}