aboutsummaryrefslogtreecommitdiff
path: root/cmd/demo/main.ha
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2021-12-09 14:36:32 +0100
committerDrew DeVault <sir@cmpwn.com>2021-12-09 14:36:32 +0100
commit07046a3b2c2d0b6a5dfaaab70e5ea71e8334df1b (patch)
treee134285c86f6052b9c19ae7755acafa0137e215b /cmd/demo/main.ha
parentAdd README.md (diff)
downloadhare-chip8-07046a3b2c2d0b6a5dfaaab70e5ea71e8334df1b.tar.gz
sdl2::image: initial commit
Some additional things which were needed to make this work were also added.
Diffstat (limited to '')
-rw-r--r--cmd/demo/main.ha24
1 files changed, 23 insertions, 1 deletions
diff --git a/cmd/demo/main.ha b/cmd/demo/main.ha
index 26025ce..35da638 100644
--- a/cmd/demo/main.ha
+++ b/cmd/demo/main.ha
@@ -2,11 +2,14 @@ use fmt;
use os;
use sdl2::{event_type, window_flags, renderer_flags};
use sdl2;
+use sdl2::image;
use strings;
export fn main() void = {
sdl2::init(sdl2::init_flags::VIDEO);
defer sdl2::quit();
+ image::init(image::init_flags::PNG);
+ defer image::quit();
const title = strings::to_c("Hare SDL2 demo");
defer free(title);
@@ -28,8 +31,27 @@ export fn main() void = {
};
defer sdl2::destroy_renderer(render);
- sdl2::set_render_draw_color(render, 255, 0, 0, 255);
+ const path = strings::to_c("cat.png");
+ defer free(path);
+ const texture = match (image::load_texture(render, path)) {
+ case let tex: *sdl2::texture =>
+ yield tex;
+ case null =>
+ fmt::fatal("sdl2::image::load_texture failed");
+ };
+ defer sdl2::destroy_texture(texture);
+
+ let width = 0, height = 0;
+ sdl2::query_texture(texture, null, null, &width, &height);
+
+ sdl2::set_render_draw_color(render, 50, 50, 50, 255);
sdl2::render_clear(render);
+ sdl2::render_copy(render, texture, null, &sdl2::rect {
+ x = 0,
+ y = 0,
+ w = width,
+ h = height,
+ });
sdl2::render_present(render);
let ev = sdl2::event { ... };