Working example
This commit is contained in:
44
main.odin
Normal file
44
main.odin
Normal 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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user