62 lines
1.2 KiB
Odin
62 lines
1.2 KiB
Odin
package main
|
|
|
|
import "core:fmt"
|
|
import sdl "vendor:sdl3"
|
|
|
|
main :: proc() {
|
|
if !sdl.Init({.VIDEO}) {
|
|
fmt.eprintfln("SDL_Init failed: %s", sdl.GetError())
|
|
return
|
|
}
|
|
defer sdl.Quit()
|
|
|
|
window: ^sdl.Window
|
|
renderer: ^sdl.Renderer
|
|
|
|
if !sdl.CreateWindowAndRenderer("toad", 800, 600, {}, &window, &renderer) {
|
|
fmt.eprintfln("CreateWindowAndRenderer failed: %s", sdl.GetError())
|
|
return
|
|
}
|
|
|
|
defer sdl.DestroyRenderer(renderer)
|
|
defer sdl.DestroyWindow(window)
|
|
|
|
surface := sdl.LoadPNG("assets_baked/characters/toad/toad.atlas.png")
|
|
if surface == nil {
|
|
fmt.eprintfln("LoadPNG failed: %s", sdl.GetError())
|
|
return
|
|
}
|
|
defer sdl.DestroySurface(surface)
|
|
|
|
texture := sdl.CreateTextureFromSurface(renderer, surface)
|
|
if texture == nil {
|
|
fmt.eprintfln("CreateTextureFromSurface failed: %s", sdl.GetError())
|
|
return
|
|
}
|
|
defer sdl.DestroyTexture(texture)
|
|
|
|
sdl.SetTextureScaleMode(texture, .NEAREST)
|
|
|
|
running := true
|
|
|
|
for running {
|
|
event: sdl.Event
|
|
for sdl.PollEvent(&event) {
|
|
if event.type == .QUIT {
|
|
running = false
|
|
}
|
|
}
|
|
|
|
sdl.SetRenderDrawColor(renderer, 30, 30, 40, 255)
|
|
sdl.RenderClear(renderer)
|
|
dst := sdl.FRect {
|
|
x = 0,
|
|
y = 0,
|
|
w = 400,
|
|
h = 400,
|
|
}
|
|
sdl.RenderTexture(renderer, texture, nil, &dst)
|
|
sdl.RenderPresent(renderer)
|
|
}
|
|
}
|