|
|
@@ -2,18 +2,20 @@ |
|
|
|
-- |
|
|
|
-- GNU General Public Licence (version 3 or later) |
|
|
|
|
|
|
|
with interfaces.c; |
|
|
|
use interfaces.c; |
|
|
|
with interfaces.c, system; |
|
|
|
use interfaces.c, system; |
|
|
|
|
|
|
|
package ray is |
|
|
|
|
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
|
|
|
|
|
type color_range is range 0 .. 2 ** 8 - 1; |
|
|
|
type logical is new boolean; |
|
|
|
type pointer is access all system.address; |
|
|
|
|
|
|
|
for logical'size use 32; |
|
|
|
for color_range'size use 8; |
|
|
|
type colour_range is range 0 .. 2 ** 8 - 1; |
|
|
|
type logical is new boolean; |
|
|
|
|
|
|
|
for logical'size use 32; |
|
|
|
for colour_range'size use 8; |
|
|
|
|
|
|
|
type trace_log_level is ( |
|
|
|
log_all, log_trace, log_debug, log_info, log_warning, log_error, |
|
|
@@ -25,76 +27,83 @@ package ray is |
|
|
|
mouse_button_back |
|
|
|
) with convention => c; |
|
|
|
|
|
|
|
type vessel is record x, y : float; end record with convention => c_pass_by_copy; |
|
|
|
type color is record r, g, b, a : color_range; end record with convention => c_pass_by_copy; |
|
|
|
type rectangle is record x ,y, width, height : float; end record with convention => c_pass_by_copy; |
|
|
|
type texture is record id : natural; width, height, mipmaps, format : integer; end record with convention => c_pass_by_copy; |
|
|
|
type font is record base, count, pad : integer; data : texture; r : access rectangle; non : access natural; end record with convention => c_pass_by_copy; |
|
|
|
type stream is record buffer, processor : access natural; rate, size, channels : natural; end record with convention => c_pass_by_copy; |
|
|
|
type sound is record data : stream; frame : natural; end record with convention => c_pass_by_copy; |
|
|
|
-- |
|
|
|
procedure open_window (width, height : integer; title : string) with import => true, convention => c, external_name => "InitWindow"; |
|
|
|
procedure close_window with import => true, convention => c, external_name => "CloseWindow"; |
|
|
|
-- |
|
|
|
type vector is record x, y : float; end record with convention => c_pass_by_copy; |
|
|
|
type colour is record r, g, b, a : colour_range; end record with convention => c_pass_by_copy; |
|
|
|
type rectangle is record x ,y, width, height : float; end record with convention => c_pass_by_copy; |
|
|
|
type texture is record id : natural; width, height, mipmaps, format : integer; end record with convention => c_pass_by_copy; |
|
|
|
type font is record base, count, pad : integer; data : texture; squares : pointer; glyphs : pointer; end record with convention => c_pass_by_copy; |
|
|
|
type stream is record buffer, processor : pointer; rate, size, channels : natural; end record with convention => c_pass_by_copy; |
|
|
|
type sound is record data : stream; frame : natural; end record with convention => c_pass_by_copy; |
|
|
|
|
|
|
|
no_texture : texture; |
|
|
|
no_font : font; |
|
|
|
no_sound : sound; |
|
|
|
|
|
|
|
procedure open_window (width, height : in integer; title : in string) with import => true, convention => c, external_name => "InitWindow"; |
|
|
|
procedure close_window with import => true, convention => c, external_name => "CloseWindow"; |
|
|
|
|
|
|
|
procedure open_audio_device with import => true, convention => c, external_name => "InitAudioDevice"; |
|
|
|
procedure close_audio_device with import => true, convention => c, external_name => "CloseAudioDevice"; |
|
|
|
-- |
|
|
|
procedure set_exit_key (key : integer) with import => true, convention => c, external_name => "SetExitKey"; |
|
|
|
function exit_key_is_pressed return logical with import => true, convention => c, external_name => "WindowShouldClose"; |
|
|
|
function get_key_pressed return integer with import => true, convention => c, external_name => "GetKeyPressed"; |
|
|
|
function mouse_button_is_pressed (button : mouse_button) return logical with import => true, convention => c, external_name => "IsMouseButtonPressed"; |
|
|
|
function mouse_button_is_released (button : mouse_button) return logical with import => true, convention => c, external_name => "IsMouseButtonReleased"; |
|
|
|
function get_mouse_x return integer with import => true, convention => c, external_name => "GetMouseX"; |
|
|
|
function get_mouse_y return integer with import => true, convention => c, external_name => "GetMouseY"; |
|
|
|
function get_mouse_vessel return vessel with import => true, convention => c, external_name => "GetMousePosition"; |
|
|
|
function get_screen_width return integer with import => true, convention => c, external_name => "GetScreenWidth"; |
|
|
|
function get_screen_height return integer with import => true, convention => c, external_name => "GetScreenHeight"; |
|
|
|
-- |
|
|
|
procedure clear_background (tint : color) with import => true, convention => c, external_name => "ClearBackground"; |
|
|
|
procedure begin_drawing with import => true, convention => c, external_name => "BeginDrawing"; |
|
|
|
procedure end_drawing with import => true, convention => c, external_name => "EndDrawing"; |
|
|
|
-- |
|
|
|
procedure set_target_fps (fps : integer) with import => true, convention => c, external_name => "SetTargetFPS"; |
|
|
|
function get_fps return integer with import => true, convention => c, external_name => "GetFPS"; |
|
|
|
procedure randomization (seed : natural) with import => true, convention => c, external_name => "SetRandomSeed"; |
|
|
|
function get_random (minimum, maximum : integer) return integer with import => true, convention => c, external_name => "GetRandomValue"; |
|
|
|
-- |
|
|
|
procedure take_screenshot (path : string := "screenshot.png") with import => true, convention => c, external_name => "TakeScreenshot"; |
|
|
|
-- |
|
|
|
procedure set_trace_log_level (level : trace_log_level) with import => true, convention => c, external_name => "SetTraceLogLevel"; |
|
|
|
-- |
|
|
|
function load_texture (path : string) return texture with import => true, convention => c, external_name => "LoadTexture"; |
|
|
|
function load_sound (path : string) return sound with import => true, convention => c, external_name => "LoadSound"; |
|
|
|
function load_font (path : string) return font with import => true, convention => c, external_name => "LoadFont"; |
|
|
|
-- |
|
|
|
procedure unload_texture (data : texture) with import => true, convention => c, external_name => "UnloadTexture"; |
|
|
|
procedure unload_sound (data : sound) with import => true, convention => c, external_name => "UnloadSound"; |
|
|
|
procedure unload_font (data : font) with import => true, convention => c, external_name => "UnloadFont"; |
|
|
|
-- |
|
|
|
procedure draw_line (x0, y0, x1, y1 : integer; tint : color) with import => true, convention => c, external_name => "DrawLine"; |
|
|
|
-- |
|
|
|
procedure draw_rectangle (x, y, width, height : integer; tint : color) with import => true, convention => c, external_name => "DrawRectangle"; |
|
|
|
-- |
|
|
|
procedure draw_image (data : texture; uv : rectangle; view : vessel; tint : color) with import => true, convention => c, external_name => "DrawTextureRec"; |
|
|
|
-- |
|
|
|
procedure draw_text (data : font; text : string; view : vessel; size, pad : float; tint : color) with import => true, convention => c, external_name => "DrawTextEx"; |
|
|
|
-- |
|
|
|
procedure play_sound (data : sound) with import => true, convention => c, external_name => "PlaySound"; |
|
|
|
procedure stop_sound (data : sound) with import => true, convention => c, external_name => "StopSound"; |
|
|
|
procedure pause_sound (data : sound) with import => true, convention => c, external_name => "PauseSound"; |
|
|
|
procedure resume_sound (data : sound) with import => true, convention => c, external_name => "ResumeSound"; |
|
|
|
|
|
|
|
procedure megadraw ( |
|
|
|
data : texture; |
|
|
|
uv : rectangle; |
|
|
|
view : rectangle; |
|
|
|
origin : vessel; |
|
|
|
rotate : float; |
|
|
|
tint : color |
|
|
|
) with |
|
|
|
import => true, |
|
|
|
convention => c, |
|
|
|
external_name => "DrawTexturePro"; |
|
|
|
|
|
|
|
procedure set_exit_key (key : in integer) with import => true, convention => c, external_name => "SetExitKey"; |
|
|
|
function exit_key_is_pressed return logical with import => true, convention => c, external_name => "WindowShouldClose"; |
|
|
|
function get_key_pressed return integer with import => true, convention => c, external_name => "GetKeyPressed"; |
|
|
|
function mouse_button_is_pressed (button : in mouse_button) return logical with import => true, convention => c, external_name => "IsMouseButtonPressed"; |
|
|
|
function mouse_button_is_released (button : in mouse_button) return logical with import => true, convention => c, external_name => "IsMouseButtonReleased"; |
|
|
|
function get_mouse_x return integer with import => true, convention => c, external_name => "GetMouseX"; |
|
|
|
function get_mouse_y return integer with import => true, convention => c, external_name => "GetMouseY"; |
|
|
|
function get_mouse_vector return vector with import => true, convention => c, external_name => "GetMousePosition"; |
|
|
|
function get_screen_width return integer with import => true, convention => c, external_name => "GetScreenWidth"; |
|
|
|
function get_screen_height return integer with import => true, convention => c, external_name => "GetScreenHeight"; |
|
|
|
|
|
|
|
procedure clear_background (tint : in colour) with import => true, convention => c, external_name => "ClearBackground"; |
|
|
|
procedure begin_drawing with import => true, convention => c, external_name => "BeginDrawing"; |
|
|
|
procedure end_drawing with import => true, convention => c, external_name => "EndDrawing"; |
|
|
|
|
|
|
|
procedure set_target_fps (fps : in integer) with import => true, convention => c, external_name => "SetTargetFPS"; |
|
|
|
function get_fps return integer with import => true, convention => c, external_name => "GetFPS"; |
|
|
|
procedure randomization (seed : in natural) with import => true, convention => c, external_name => "SetRandomSeed"; |
|
|
|
function get_random (minimum, maximum : in integer) return integer with import => true, convention => c, external_name => "GetRandomValue"; |
|
|
|
|
|
|
|
procedure take_screenshot (file_path : in string := "screenshot.png") with import => true, convention => c, external_name => "TakeScreenshot"; |
|
|
|
|
|
|
|
procedure set_trace_log_level (level : in trace_log_level) with import => true, convention => c, external_name => "SetTraceLogLevel"; |
|
|
|
|
|
|
|
function load_texture (file_path : in string) return texture with import => true, convention => c, external_name => "LoadTexture"; |
|
|
|
function load_sound (file_path : in string) return sound with import => true, convention => c, external_name => "LoadSound"; |
|
|
|
function load_font (file_path : in string) return font with import => true, convention => c, external_name => "LoadFont"; |
|
|
|
|
|
|
|
procedure unload_texture (data : in texture) with import => true, convention => c, external_name => "UnloadTexture"; |
|
|
|
procedure unload_sound (data : in sound) with import => true, convention => c, external_name => "UnloadSound"; |
|
|
|
procedure unload_font (data : in font) with import => true, convention => c, external_name => "UnloadFont"; |
|
|
|
|
|
|
|
procedure draw_line (x0, y0, x1, y1 : in integer; tint : in colour) with import => true, convention => c, external_name => "DrawLine"; |
|
|
|
procedure draw_rectangle (x, y, width, height : in integer; tint : in colour) with import => true, convention => c, external_name => "DrawRectangle"; |
|
|
|
|
|
|
|
procedure draw_text ( |
|
|
|
data : in font := no_font; |
|
|
|
text : in string := "--"; |
|
|
|
view : in vector := (0.0, 0.0); |
|
|
|
origin : in vector := (0.0, 0.0); |
|
|
|
rotate : in float := 0.0; |
|
|
|
scale : in float := 0.0; |
|
|
|
space : in float := 0.0; |
|
|
|
tint : in colour := (others => 255) |
|
|
|
) with import => true, convention => c, external_name => "DrawTextPro"; |
|
|
|
|
|
|
|
procedure draw_texture ( |
|
|
|
data : in texture := no_texture; |
|
|
|
uv : in rectangle := (others => 0.0); |
|
|
|
view : in rectangle := (others => 0.0); |
|
|
|
origin : in vector := (0.0, 0.0); |
|
|
|
rotate : in float := 0.0; |
|
|
|
tint : in colour := (others => 255) |
|
|
|
) with import => true, convention => c, external_name => "DrawTexturePro"; |
|
|
|
|
|
|
|
procedure play_sound (data : in sound) with import => true, convention => c, external_name => "PlaySound"; |
|
|
|
procedure stop_sound (data : in sound) with import => true, convention => c, external_name => "StopSound"; |
|
|
|
procedure pause_sound (data : in sound) with import => true, convention => c, external_name => "PauseSound"; |
|
|
|
procedure resume_sound (data : in sound) with import => true, convention => c, external_name => "ResumeSound"; |
|
|
|
|
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
|
|
|
|
|