From 123144c93bfc77883c8fb517828b47bbe13b8671 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Mon, 21 Apr 2025 11:09:56 +0200 Subject: Initial commit --- raylib/raylib.ha | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 raylib/raylib.ha (limited to 'raylib/raylib.ha') diff --git a/raylib/raylib.ha b/raylib/raylib.ha new file mode 100644 index 0000000..65c1b51 --- /dev/null +++ b/raylib/raylib.ha @@ -0,0 +1,52 @@ +use types::c; + +export const MOUSE_BUTTON_LEFT = 0; +export const MOUSE_BUTTON_RIGHT = 1; +export const FLAG_WINDOW_RESIZABLE: uint = 4; + +export const KEY_N = 78; + +export type color = struct { + r: u8, + g: u8, + b: u8, + a: u8 +}; + +export type vector2 = struct { + x: f32, + y: f32 +}; + +export @symbol("WindowShouldClose") fn window_should_close() bool; +export @symbol("BeginDrawing") fn begin_drawing() void; +export @symbol("EndDrawing") fn end_drawing() void; +export @symbol("ClearBackground") fn clear_background(color) void; +export @symbol("DrawRectangleV") fn draw_rectangle_v(vector2, vector2, color) void; +export @symbol("IsMouseButtonPressed") fn is_mouse_button_pressed(int) bool; +export @symbol("GetMousePosition") fn get_mouse_position() vector2; +export @symbol("GetScreenHeight") fn get_screen_height() int; +export @symbol("GetScreenWidth") fn get_screen_width() int; +export @symbol("SetConfigFlags") fn set_config_flags(uint) void; +export @symbol("IsKeyPressed") fn is_key_pressed(int) bool; + +@symbol("InitWindow") fn InitWindow(int, int, *c::char) void; +export fn init_window(width: int, height: int, title: str) void = { + let c_title = c::fromstr(title)!; + defer free(c_title); + InitWindow(width, height, c_title); +}; + +@symbol("DrawText") fn DrawText(*c::char, int, int, int, color) void; +export fn draw_text(text: str, x: int, y: int, sz: int, c: color) void = { + let c_str = c::fromstr(text)!; + defer free(c_str); + DrawText(c_str, x, y, sz, c); +}; + +@symbol("MeasureText") fn MeasureText(*c::char, int) int; +export fn measure_text(text: str, sz: int) int = { + let c_str = c::fromstr(text)!; + defer free(c_str); + return MeasureText(c_str, sz); +}; -- cgit v1.3