Files
odin-iso-test/src2/gfx.odin
T
2026-08-03 21:11:00 +03:00

56 lines
937 B
Odin

package main
import rl "vendor:raylib"
Graphics :: union {
GfxNone,
GfxCircle,
GfxRect,
GfxRing,
GfxCircleLines,
GfxTexture,
}
GfxNone :: struct {}
GfxCircle :: struct {
pos: rl.Vector2,
radius: f32,
color: rl.Color,
}
GfxRect :: struct {
pos: rl.Vector2,
size: rl.Vector2,
color: rl.Color,
}
GfxRing :: struct {
pos: rl.Vector2,
inner_radius: f32,
outer_radius: f32,
color: rl.Color,
}
GfxCircleLines :: struct {
pos: rl.Vector2,
radius: f32,
color: rl.Color,
}
GfxTexture :: struct {
}
gfx_draw :: proc(pos: rl.Vector2, g: Graphics) {
#partial switch v in g {
case GfxCircle:
rl.DrawCircleV(pos + v.pos, v.radius, v.color)
case GfxRect:
rl.DrawRectangleV(pos - v.size / 2 + v.pos, v.size, v.color)
case GfxRing:
rl.DrawRing(pos + v.pos, v.inner_radius, v.outer_radius, 0, 360, 0, v.color)
case GfxCircleLines:
rl.DrawCircleLinesV(pos + v.pos, v.radius, v.color)
}
}