sdl3.c3l/test/lettuce.c3
2025-05-20 21:43:18 +02:00

64 lines
1.5 KiB
Plaintext

import std::io;
import sdl3::sdl;
fn int main() {
sdl::init(sdl::INIT_VIDEO);
Window* win = sdl::create_window("SDL3 Image", 640, 480, 0);
if (win == null) {
io::eprintfn("SDL_CreateWindow Error: %s", sdl::get_error());
sdl::quit();
return 1;
}
Renderer* ren = sdl::create_renderer(win, null);
if (ren == null) {
io::eprintfn("SDL_CreateRenderer Error: %s", sdl::get_error());
sdl::destroy_window(win);
sdl::quit();
return 1;
}
Surface* bmp = sdl::load_bmp("lettuce.bmp");
if (bmp == null) {
io::eprintfn("SDL_LoadBMP Error: %s", sdl::get_error());
sdl::destroy_renderer(ren);
sdl::destroy_window(win);
sdl::quit();
return 1;
}
Texture* tex = sdl::create_texture_from_surface(ren, bmp);
sdl::destroy_surface(bmp);
if (tex == null) {
io::eprintfn("SDL_CreateTextureFromSurface Error: %s", sdl::get_error());
sdl::destroy_renderer(ren);
sdl::destroy_window(win);
sdl::quit();
return 1;
}
Event e;
bool quit = false;
while (!quit) {
while (sdl::poll_event(&e)) {
if (e.type == sdl::EVENT_QUIT) {
quit = true;
}
}
sdl::render_clear(ren);
sdl::render_texture(ren, tex, null, null);
sdl::render_present(ren);
}
sdl::destroy_texture(tex);
sdl::destroy_renderer(ren);
sdl::destroy_window(win);
sdl::quit();
return 0;
}