raylib 4.5.0.alpha1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +16 -0
  3. data/README.md +97 -0
  4. data/lib/raylib/core/callbacks.rb +19 -0
  5. data/lib/raylib/core/colors.rb +32 -0
  6. data/lib/raylib/core/enums.rb +694 -0
  7. data/lib/raylib/core/functions.rb +1552 -0
  8. data/lib/raylib/core/structs/audio_stream.rb +71 -0
  9. data/lib/raylib/core/structs/bone_info.rb +38 -0
  10. data/lib/raylib/core/structs/bounding_box.rb +38 -0
  11. data/lib/raylib/core/structs/camera2_d.rb +60 -0
  12. data/lib/raylib/core/structs/camera3_d.rb +74 -0
  13. data/lib/raylib/core/structs/color.rb +60 -0
  14. data/lib/raylib/core/structs/file_path_list.rb +51 -0
  15. data/lib/raylib/core/structs/font.rb +82 -0
  16. data/lib/raylib/core/structs/glyph_info.rb +71 -0
  17. data/lib/raylib/core/structs/image.rb +71 -0
  18. data/lib/raylib/core/structs/material.rb +49 -0
  19. data/lib/raylib/core/structs/material_map.rb +49 -0
  20. data/lib/raylib/core/structs/matrix.rb +192 -0
  21. data/lib/raylib/core/structs/mesh.rb +181 -0
  22. data/lib/raylib/core/structs/model.rb +115 -0
  23. data/lib/raylib/core/structs/model_animation.rb +60 -0
  24. data/lib/raylib/core/structs/music.rb +71 -0
  25. data/lib/raylib/core/structs/n_patch_info.rb +82 -0
  26. data/lib/raylib/core/structs/ray.rb +38 -0
  27. data/lib/raylib/core/structs/ray_collision.rb +60 -0
  28. data/lib/raylib/core/structs/rectangle.rb +60 -0
  29. data/lib/raylib/core/structs/render_texture.rb +52 -0
  30. data/lib/raylib/core/structs/shader.rb +38 -0
  31. data/lib/raylib/core/structs/sound.rb +38 -0
  32. data/lib/raylib/core/structs/texture.rb +77 -0
  33. data/lib/raylib/core/structs/transform.rb +49 -0
  34. data/lib/raylib/core/structs/vector2.rb +38 -0
  35. data/lib/raylib/core/structs/vector3.rb +49 -0
  36. data/lib/raylib/core/structs/vector4.rb +63 -0
  37. data/lib/raylib/core/structs/vr_device_info.rb +126 -0
  38. data/lib/raylib/core/structs/vr_stereo_config.rb +104 -0
  39. data/lib/raylib/core/structs/wave.rb +71 -0
  40. data/lib/raylib/core/structs.rb +32 -0
  41. data/lib/raylib/core.rb +5 -0
  42. data/lib/raylib/dsl.rb +2 -0
  43. data/lib/raylib/raymath/functions.rb +337 -0
  44. data/lib/raylib/raymath/structs/float16.rb +27 -0
  45. data/lib/raylib/raymath/structs/float3.rb +27 -0
  46. data/lib/raylib/raymath/structs.rb +2 -0
  47. data/lib/raylib/raymath.rb +2 -0
  48. data/lib/raylib/rlgl/callbacks.rb +4 -0
  49. data/lib/raylib/rlgl/enums.rb +270 -0
  50. data/lib/raylib/rlgl/functions.rb +448 -0
  51. data/lib/raylib/rlgl/structs/rl_draw_call.rb +60 -0
  52. data/lib/raylib/rlgl/structs/rl_render_batch.rb +82 -0
  53. data/lib/raylib/rlgl/structs/rl_vertex_buffer.rb +93 -0
  54. data/lib/raylib/rlgl/structs.rb +3 -0
  55. data/lib/raylib/rlgl.rb +4 -0
  56. data/lib/raylib/version.rb +5 -0
  57. data/lib/raylib.rb +12 -0
  58. metadata +162 -0
@@ -0,0 +1,1552 @@
1
+ module Raylib
2
+ # Initialize window and OpenGL context
3
+ attach_function :init_window, :InitWindow, [:int, :int, :pointer], :void
4
+
5
+ # Check if KEY_ESCAPE pressed or Close icon pressed
6
+ attach_function :window_should_close, :WindowShouldClose, [], :bool
7
+
8
+ # Close window and unload OpenGL context
9
+ attach_function :close_window, :CloseWindow, [], :void
10
+
11
+ # Check if window has been initialized successfully
12
+ attach_function :is_window_ready, :IsWindowReady, [], :bool
13
+
14
+ # Check if window is currently fullscreen
15
+ attach_function :is_window_fullscreen, :IsWindowFullscreen, [], :bool
16
+
17
+ # Check if window is currently hidden (only PLATFORM_DESKTOP)
18
+ attach_function :is_window_hidden, :IsWindowHidden, [], :bool
19
+
20
+ # Check if window is currently minimized (only PLATFORM_DESKTOP)
21
+ attach_function :is_window_minimized, :IsWindowMinimized, [], :bool
22
+
23
+ # Check if window is currently maximized (only PLATFORM_DESKTOP)
24
+ attach_function :is_window_maximized, :IsWindowMaximized, [], :bool
25
+
26
+ # Check if window is currently focused (only PLATFORM_DESKTOP)
27
+ attach_function :is_window_focused, :IsWindowFocused, [], :bool
28
+
29
+ # Check if window has been resized last frame
30
+ attach_function :is_window_resized, :IsWindowResized, [], :bool
31
+
32
+ # Check if one specific window flag is enabled
33
+ attach_function :is_window_state, :IsWindowState, [:uint], :bool
34
+
35
+ # Set window configuration state using flags (only PLATFORM_DESKTOP)
36
+ attach_function :set_window_state, :SetWindowState, [:uint], :void
37
+
38
+ # Clear window configuration state flags
39
+ attach_function :clear_window_state, :ClearWindowState, [:uint], :void
40
+
41
+ # Toggle window state: fullscreen/windowed (only PLATFORM_DESKTOP)
42
+ attach_function :toggle_fullscreen, :ToggleFullscreen, [], :void
43
+
44
+ # Set window state: maximized, if resizable (only PLATFORM_DESKTOP)
45
+ attach_function :maximize_window, :MaximizeWindow, [], :void
46
+
47
+ # Set window state: minimized, if resizable (only PLATFORM_DESKTOP)
48
+ attach_function :minimize_window, :MinimizeWindow, [], :void
49
+
50
+ # Set window state: not minimized/maximized (only PLATFORM_DESKTOP)
51
+ attach_function :restore_window, :RestoreWindow, [], :void
52
+
53
+ # Set icon for window (single image, RGBA 32bit, only PLATFORM_DESKTOP)
54
+ attach_function :set_window_icon, :SetWindowIcon, [Image.by_value], :void
55
+
56
+ # Set icon for window (multiple images, RGBA 32bit, only PLATFORM_DESKTOP)
57
+ attach_function :set_window_icons, :SetWindowIcons, [:pointer, :int], :void
58
+
59
+ # Set title for window (only PLATFORM_DESKTOP)
60
+ attach_function :set_window_title, :SetWindowTitle, [:pointer], :void
61
+
62
+ # Set window position on screen (only PLATFORM_DESKTOP)
63
+ attach_function :set_window_position, :SetWindowPosition, [:int, :int], :void
64
+
65
+ # Set monitor for the current window (fullscreen mode)
66
+ attach_function :set_window_monitor, :SetWindowMonitor, [:int], :void
67
+
68
+ # Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE)
69
+ attach_function :set_window_min_size, :SetWindowMinSize, [:int, :int], :void
70
+
71
+ # Set window dimensions
72
+ attach_function :set_window_size, :SetWindowSize, [:int, :int], :void
73
+
74
+ # Set window opacity [0.0f..1.0f] (only PLATFORM_DESKTOP)
75
+ attach_function :set_window_opacity, :SetWindowOpacity, [:float], :void
76
+
77
+ # Get native window handle
78
+ attach_function :get_window_handle, :GetWindowHandle, [], :pointer
79
+
80
+ # Get current screen width
81
+ attach_function :get_screen_width, :GetScreenWidth, [], :int
82
+
83
+ # Get current screen height
84
+ attach_function :get_screen_height, :GetScreenHeight, [], :int
85
+
86
+ # Get current render width (it considers HiDPI)
87
+ attach_function :get_render_width, :GetRenderWidth, [], :int
88
+
89
+ # Get current render height (it considers HiDPI)
90
+ attach_function :get_render_height, :GetRenderHeight, [], :int
91
+
92
+ # Get number of connected monitors
93
+ attach_function :get_monitor_count, :GetMonitorCount, [], :int
94
+
95
+ # Get current connected monitor
96
+ attach_function :get_current_monitor, :GetCurrentMonitor, [], :int
97
+
98
+ # Get specified monitor position
99
+ attach_function :get_monitor_position, :GetMonitorPosition, [:int], Vector2.by_value
100
+
101
+ # Get specified monitor width (current video mode used by monitor)
102
+ attach_function :get_monitor_width, :GetMonitorWidth, [:int], :int
103
+
104
+ # Get specified monitor height (current video mode used by monitor)
105
+ attach_function :get_monitor_height, :GetMonitorHeight, [:int], :int
106
+
107
+ # Get specified monitor physical width in millimetres
108
+ attach_function :get_monitor_physical_width, :GetMonitorPhysicalWidth, [:int], :int
109
+
110
+ # Get specified monitor physical height in millimetres
111
+ attach_function :get_monitor_physical_height, :GetMonitorPhysicalHeight, [:int], :int
112
+
113
+ # Get specified monitor refresh rate
114
+ attach_function :get_monitor_refresh_rate, :GetMonitorRefreshRate, [:int], :int
115
+
116
+ # Get window position XY on monitor
117
+ attach_function :get_window_position, :GetWindowPosition, [], Vector2.by_value
118
+
119
+ # Get window scale DPI factor
120
+ attach_function :get_window_scale_dpi, :GetWindowScaleDPI, [], Vector2.by_value
121
+
122
+ # Get the human-readable, UTF-8 encoded name of the primary monitor
123
+ attach_function :get_monitor_name, :GetMonitorName, [:int], :pointer
124
+
125
+ # Set clipboard text content
126
+ attach_function :set_clipboard_text, :SetClipboardText, [:pointer], :void
127
+
128
+ # Get clipboard text content
129
+ attach_function :get_clipboard_text, :GetClipboardText, [], :pointer
130
+
131
+ # Enable waiting for events on EndDrawing(), no automatic event polling
132
+ attach_function :enable_event_waiting, :EnableEventWaiting, [], :void
133
+
134
+ # Disable waiting for events on EndDrawing(), automatic events polling
135
+ attach_function :disable_event_waiting, :DisableEventWaiting, [], :void
136
+
137
+ # Swap back buffer with front buffer (screen drawing)
138
+ attach_function :swap_screen_buffer, :SwapScreenBuffer, [], :void
139
+
140
+ # Register all input events
141
+ attach_function :poll_input_events, :PollInputEvents, [], :void
142
+
143
+ # Wait for some time (halt program execution)
144
+ attach_function :wait_time, :WaitTime, [:double], :void
145
+
146
+ # Shows cursor
147
+ attach_function :show_cursor, :ShowCursor, [], :void
148
+
149
+ # Hides cursor
150
+ attach_function :hide_cursor, :HideCursor, [], :void
151
+
152
+ # Check if cursor is not visible
153
+ attach_function :is_cursor_hidden, :IsCursorHidden, [], :bool
154
+
155
+ # Enables cursor (unlock cursor)
156
+ attach_function :enable_cursor, :EnableCursor, [], :void
157
+
158
+ # Disables cursor (lock cursor)
159
+ attach_function :disable_cursor, :DisableCursor, [], :void
160
+
161
+ # Check if cursor is on the screen
162
+ attach_function :is_cursor_on_screen, :IsCursorOnScreen, [], :bool
163
+
164
+ # Set background color (framebuffer clear color)
165
+ attach_function :clear_background, :ClearBackground, [Color.by_value], :void
166
+
167
+ # Setup canvas (framebuffer) to start drawing
168
+ attach_function :begin_drawing, :BeginDrawing, [], :void
169
+
170
+ # End canvas drawing and swap buffers (double buffering)
171
+ attach_function :end_drawing, :EndDrawing, [], :void
172
+
173
+ # Begin 2D mode with custom camera (2D)
174
+ attach_function :begin_mode_2d, :BeginMode2D, [Camera2D.by_value], :void
175
+
176
+ # Ends 2D mode with custom camera
177
+ attach_function :end_mode_2d, :EndMode2D, [], :void
178
+
179
+ # Begin 3D mode with custom camera (3D)
180
+ attach_function :begin_mode_3d, :BeginMode3D, [Camera3D.by_value], :void
181
+
182
+ # Ends 3D mode and returns to default 2D orthographic mode
183
+ attach_function :end_mode_3d, :EndMode3D, [], :void
184
+
185
+ # Begin drawing to render texture
186
+ attach_function :begin_texture_mode, :BeginTextureMode, [RenderTexture2D.by_value], :void
187
+
188
+ # Ends drawing to render texture
189
+ attach_function :end_texture_mode, :EndTextureMode, [], :void
190
+
191
+ # Begin custom shader drawing
192
+ attach_function :begin_shader_mode, :BeginShaderMode, [Shader.by_value], :void
193
+
194
+ # End custom shader drawing (use default shader)
195
+ attach_function :end_shader_mode, :EndShaderMode, [], :void
196
+
197
+ # Begin blending mode (alpha, additive, multiplied, subtract, custom)
198
+ attach_function :begin_blend_mode, :BeginBlendMode, [:int], :void
199
+
200
+ # End blending mode (reset to default: alpha blending)
201
+ attach_function :end_blend_mode, :EndBlendMode, [], :void
202
+
203
+ # Begin scissor mode (define screen area for following drawing)
204
+ attach_function :begin_scissor_mode, :BeginScissorMode, [:int, :int, :int, :int], :void
205
+
206
+ # End scissor mode
207
+ attach_function :end_scissor_mode, :EndScissorMode, [], :void
208
+
209
+ # Begin stereo rendering (requires VR simulator)
210
+ attach_function :begin_vr_stereo_mode, :BeginVrStereoMode, [VrStereoConfig.by_value], :void
211
+
212
+ # End stereo rendering (requires VR simulator)
213
+ attach_function :end_vr_stereo_mode, :EndVrStereoMode, [], :void
214
+
215
+ # Load VR stereo config for VR simulator device parameters
216
+ attach_function :load_vr_stereo_config, :LoadVrStereoConfig, [VrDeviceInfo.by_value], VrStereoConfig.by_value
217
+
218
+ # Unload VR stereo config
219
+ attach_function :unload_vr_stereo_config, :UnloadVrStereoConfig, [VrStereoConfig.by_value], :void
220
+
221
+ # Load shader from files and bind default locations
222
+ attach_function :load_shader, :LoadShader, [:pointer, :pointer], Shader.by_value
223
+
224
+ # Load shader from code strings and bind default locations
225
+ attach_function :load_shader_from_memory, :LoadShaderFromMemory, [:pointer, :pointer], Shader.by_value
226
+
227
+ # Check if a shader is ready
228
+ attach_function :is_shader_ready, :IsShaderReady, [Shader.by_value], :bool
229
+
230
+ # Get shader uniform location
231
+ attach_function :get_shader_location, :GetShaderLocation, [Shader.by_value, :pointer], :int
232
+
233
+ # Get shader attribute location
234
+ attach_function :get_shader_location_attrib, :GetShaderLocationAttrib, [Shader.by_value, :pointer], :int
235
+
236
+ # Set shader uniform value
237
+ attach_function :set_shader_value, :SetShaderValue, [Shader.by_value, :int, :pointer, :int], :void
238
+
239
+ # Set shader uniform value vector
240
+ attach_function :set_shader_value_v, :SetShaderValueV, [Shader.by_value, :int, :pointer, :int, :int], :void
241
+
242
+ # Set shader uniform value (matrix 4x4)
243
+ attach_function :set_shader_value_matrix, :SetShaderValueMatrix, [Shader.by_value, :int, Matrix.by_value], :void
244
+
245
+ # Set shader uniform value for texture (sampler2d)
246
+ attach_function :set_shader_value_texture, :SetShaderValueTexture, [Shader.by_value, :int, Texture2D.by_value], :void
247
+
248
+ # Unload shader from GPU memory (VRAM)
249
+ attach_function :unload_shader, :UnloadShader, [Shader.by_value], :void
250
+
251
+ # Get a ray trace from mouse position
252
+ attach_function :get_mouse_ray, :GetMouseRay, [Vector2.by_value, Camera.by_value], Ray.by_value
253
+
254
+ # Get camera transform matrix (view matrix)
255
+ attach_function :get_camera_matrix, :GetCameraMatrix, [Camera.by_value], Matrix.by_value
256
+
257
+ # Get camera 2d transform matrix
258
+ attach_function :get_camera_matrix_2d, :GetCameraMatrix2D, [Camera2D.by_value], Matrix.by_value
259
+
260
+ # Get the screen space position for a 3d world space position
261
+ attach_function :get_world_to_screen, :GetWorldToScreen, [Vector3.by_value, Camera.by_value], Vector2.by_value
262
+
263
+ # Get the world space position for a 2d camera screen space position
264
+ attach_function :get_screen_to_world_2d, :GetScreenToWorld2D, [Vector2.by_value, Camera2D.by_value], Vector2.by_value
265
+
266
+ # Get size position for a 3d world space position
267
+ attach_function :get_world_to_screen_ex, :GetWorldToScreenEx, [Vector3.by_value, Camera.by_value, :int, :int], Vector2.by_value
268
+
269
+ # Get the screen space position for a 2d camera world space position
270
+ attach_function :get_world_to_screen_2d, :GetWorldToScreen2D, [Vector2.by_value, Camera2D.by_value], Vector2.by_value
271
+
272
+ # Set target FPS (maximum)
273
+ attach_function :set_target_fps, :SetTargetFPS, [:int], :void
274
+
275
+ # Get current FPS
276
+ attach_function :get_fps, :GetFPS, [], :int
277
+
278
+ # Get time in seconds for last frame drawn (delta time)
279
+ attach_function :get_frame_time, :GetFrameTime, [], :float
280
+
281
+ # Get elapsed time in seconds since InitWindow()
282
+ attach_function :get_time, :GetTime, [], :double
283
+
284
+ # Get a random value between min and max (both included)
285
+ attach_function :get_random_value, :GetRandomValue, [:int, :int], :int
286
+
287
+ # Set the seed for the random number generator
288
+ attach_function :set_random_seed, :SetRandomSeed, [:uint], :void
289
+
290
+ # Takes a screenshot of current screen (filename extension defines format)
291
+ attach_function :take_screenshot, :TakeScreenshot, [:pointer], :void
292
+
293
+ # Setup init configuration flags (view FLAGS)
294
+ attach_function :set_config_flags, :SetConfigFlags, [:uint], :void
295
+
296
+ # Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...)
297
+ attach_function :trace_log, :TraceLog, [:int, :pointer, :varargs], :void
298
+
299
+ # Set the current threshold (minimum) log level
300
+ attach_function :set_trace_log_level, :SetTraceLogLevel, [:int], :void
301
+
302
+ # Internal memory allocator
303
+ attach_function :mem_alloc, :MemAlloc, [:uint], :pointer
304
+
305
+ # Internal memory reallocator
306
+ attach_function :mem_realloc, :MemRealloc, [:pointer, :uint], :pointer
307
+
308
+ # Internal memory free
309
+ attach_function :mem_free, :MemFree, [:pointer], :void
310
+
311
+ # Open URL with default system browser (if available)
312
+ attach_function :open_url, :OpenURL, [:pointer], :void
313
+
314
+ # Set custom trace log
315
+ attach_function :set_trace_log_callback, :SetTraceLogCallback, [:TraceLogCallback], :void
316
+
317
+ # Set custom file binary data loader
318
+ attach_function :set_load_file_data_callback, :SetLoadFileDataCallback, [:LoadFileDataCallback], :void
319
+
320
+ # Set custom file binary data saver
321
+ attach_function :set_save_file_data_callback, :SetSaveFileDataCallback, [:SaveFileDataCallback], :void
322
+
323
+ # Set custom file text data loader
324
+ attach_function :set_load_file_text_callback, :SetLoadFileTextCallback, [:LoadFileTextCallback], :void
325
+
326
+ # Set custom file text data saver
327
+ attach_function :set_save_file_text_callback, :SetSaveFileTextCallback, [:SaveFileTextCallback], :void
328
+
329
+ # Load file data as byte array (read)
330
+ attach_function :load_file_data, :LoadFileData, [:pointer, :pointer], :pointer
331
+
332
+ # Unload file data allocated by LoadFileData()
333
+ attach_function :unload_file_data, :UnloadFileData, [:pointer], :void
334
+
335
+ # Save data to file from byte array (write), returns true on success
336
+ attach_function :save_file_data, :SaveFileData, [:pointer, :pointer, :uint], :bool
337
+
338
+ # Export data to code (.h), returns true on success
339
+ attach_function :export_data_as_code, :ExportDataAsCode, [:pointer, :uint, :pointer], :bool
340
+
341
+ # Load text data from file (read), returns a '\0' terminated string
342
+ attach_function :load_file_text, :LoadFileText, [:pointer], :pointer
343
+
344
+ # Unload file text data allocated by LoadFileText()
345
+ attach_function :unload_file_text, :UnloadFileText, [:pointer], :void
346
+
347
+ # Save text data to file (write), string must be '\0' terminated, returns true on success
348
+ attach_function :save_file_text, :SaveFileText, [:pointer, :pointer], :bool
349
+
350
+ # Check if file exists
351
+ attach_function :file_exists, :FileExists, [:pointer], :bool
352
+
353
+ # Check if a directory path exists
354
+ attach_function :directory_exists, :DirectoryExists, [:pointer], :bool
355
+
356
+ # Check file extension (including point: .png, .wav)
357
+ attach_function :is_file_extension, :IsFileExtension, [:pointer, :pointer], :bool
358
+
359
+ # Get file length in bytes (NOTE: GetFileSize() conflicts with windows.h)
360
+ attach_function :get_file_length, :GetFileLength, [:pointer], :int
361
+
362
+ # Get pointer to extension for a filename string (includes dot: '.png')
363
+ attach_function :get_file_extension, :GetFileExtension, [:pointer], :pointer
364
+
365
+ # Get pointer to filename for a path string
366
+ attach_function :get_file_name, :GetFileName, [:pointer], :pointer
367
+
368
+ # Get filename string without extension (uses static string)
369
+ attach_function :get_file_name_without_ext, :GetFileNameWithoutExt, [:pointer], :pointer
370
+
371
+ # Get full path for a given fileName with path (uses static string)
372
+ attach_function :get_directory_path, :GetDirectoryPath, [:pointer], :pointer
373
+
374
+ # Get previous directory path for a given path (uses static string)
375
+ attach_function :get_prev_directory_path, :GetPrevDirectoryPath, [:pointer], :pointer
376
+
377
+ # Get current working directory (uses static string)
378
+ attach_function :get_working_directory, :GetWorkingDirectory, [], :pointer
379
+
380
+ # Get the directory if the running application (uses static string)
381
+ attach_function :get_application_directory, :GetApplicationDirectory, [], :pointer
382
+
383
+ # Change working directory, return true on success
384
+ attach_function :change_directory, :ChangeDirectory, [:pointer], :bool
385
+
386
+ # Check if a given path is a file or a directory
387
+ attach_function :is_path_file, :IsPathFile, [:pointer], :bool
388
+
389
+ # Load directory filepaths
390
+ attach_function :load_directory_files, :LoadDirectoryFiles, [:pointer], FilePathList.by_value
391
+
392
+ # Load directory filepaths with extension filtering and recursive directory scan
393
+ attach_function :load_directory_files_ex, :LoadDirectoryFilesEx, [:pointer, :pointer, :bool], FilePathList.by_value
394
+
395
+ # Unload filepaths
396
+ attach_function :unload_directory_files, :UnloadDirectoryFiles, [FilePathList.by_value], :void
397
+
398
+ # Check if a file has been dropped into window
399
+ attach_function :is_file_dropped, :IsFileDropped, [], :bool
400
+
401
+ # Load dropped filepaths
402
+ attach_function :load_dropped_files, :LoadDroppedFiles, [], FilePathList.by_value
403
+
404
+ # Unload dropped filepaths
405
+ attach_function :unload_dropped_files, :UnloadDroppedFiles, [FilePathList.by_value], :void
406
+
407
+ # Get file modification time (last write time)
408
+ attach_function :get_file_mod_time, :GetFileModTime, [:pointer], :long
409
+
410
+ # Compress data (DEFLATE algorithm), memory must be MemFree()
411
+ attach_function :compress_data, :CompressData, [:pointer, :int, :pointer], :pointer
412
+
413
+ # Decompress data (DEFLATE algorithm), memory must be MemFree()
414
+ attach_function :decompress_data, :DecompressData, [:pointer, :int, :pointer], :pointer
415
+
416
+ # Encode data to Base64 string, memory must be MemFree()
417
+ attach_function :encode_data_base64, :EncodeDataBase64, [:pointer, :int, :pointer], :pointer
418
+
419
+ # Decode Base64 string data, memory must be MemFree()
420
+ attach_function :decode_data_base64, :DecodeDataBase64, [:pointer, :pointer], :pointer
421
+
422
+ # Check if a key has been pressed once
423
+ attach_function :is_key_pressed, :IsKeyPressed, [:int], :bool
424
+
425
+ # Check if a key is being pressed
426
+ attach_function :is_key_down, :IsKeyDown, [:int], :bool
427
+
428
+ # Check if a key has been released once
429
+ attach_function :is_key_released, :IsKeyReleased, [:int], :bool
430
+
431
+ # Check if a key is NOT being pressed
432
+ attach_function :is_key_up, :IsKeyUp, [:int], :bool
433
+
434
+ # Set a custom key to exit program (default is ESC)
435
+ attach_function :set_exit_key, :SetExitKey, [:int], :void
436
+
437
+ # Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty
438
+ attach_function :get_key_pressed, :GetKeyPressed, [], :int
439
+
440
+ # Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty
441
+ attach_function :get_char_pressed, :GetCharPressed, [], :int
442
+
443
+ # Check if a gamepad is available
444
+ attach_function :is_gamepad_available, :IsGamepadAvailable, [:int], :bool
445
+
446
+ # Get gamepad internal name id
447
+ attach_function :get_gamepad_name, :GetGamepadName, [:int], :string
448
+
449
+ # Check if a gamepad button has been pressed once
450
+ attach_function :is_gamepad_button_pressed, :IsGamepadButtonPressed, [:int, :int], :bool
451
+
452
+ # Check if a gamepad button is being pressed
453
+ attach_function :is_gamepad_button_down, :IsGamepadButtonDown, [:int, :int], :bool
454
+
455
+ # Check if a gamepad button has been released once
456
+ attach_function :is_gamepad_button_released, :IsGamepadButtonReleased, [:int, :int], :bool
457
+
458
+ # Check if a gamepad button is NOT being pressed
459
+ attach_function :is_gamepad_button_up, :IsGamepadButtonUp, [:int, :int], :bool
460
+
461
+ # Get the last gamepad button pressed
462
+ attach_function :get_gamepad_button_pressed, :GetGamepadButtonPressed, [], :int
463
+
464
+ # Get gamepad axis count for a gamepad
465
+ attach_function :get_gamepad_axis_count, :GetGamepadAxisCount, [:int], :int
466
+
467
+ # Get axis movement value for a gamepad axis
468
+ attach_function :get_gamepad_axis_movement, :GetGamepadAxisMovement, [:int, :int], :float
469
+
470
+ # Set internal gamepad mappings (SDL_GameControllerDB)
471
+ attach_function :set_gamepad_mappings, :SetGamepadMappings, [:pointer], :int
472
+
473
+ # Check if a mouse button has been pressed once
474
+ attach_function :is_mouse_button_pressed, :IsMouseButtonPressed, [:int], :bool
475
+
476
+ # Check if a mouse button is being pressed
477
+ attach_function :is_mouse_button_down, :IsMouseButtonDown, [:int], :bool
478
+
479
+ # Check if a mouse button has been released once
480
+ attach_function :is_mouse_button_released, :IsMouseButtonReleased, [:int], :bool
481
+
482
+ # Check if a mouse button is NOT being pressed
483
+ attach_function :is_mouse_button_up, :IsMouseButtonUp, [:int], :bool
484
+
485
+ # Get mouse position X
486
+ attach_function :get_mouse_x, :GetMouseX, [], :int
487
+
488
+ # Get mouse position Y
489
+ attach_function :get_mouse_y, :GetMouseY, [], :int
490
+
491
+ # Get mouse position XY
492
+ attach_function :get_mouse_position, :GetMousePosition, [], Vector2.by_value
493
+
494
+ # Get mouse delta between frames
495
+ attach_function :get_mouse_delta, :GetMouseDelta, [], Vector2.by_value
496
+
497
+ # Set mouse position XY
498
+ attach_function :set_mouse_position, :SetMousePosition, [:int, :int], :void
499
+
500
+ # Set mouse offset
501
+ attach_function :set_mouse_offset, :SetMouseOffset, [:int, :int], :void
502
+
503
+ # Set mouse scaling
504
+ attach_function :set_mouse_scale, :SetMouseScale, [:float, :float], :void
505
+
506
+ # Get mouse wheel movement for X or Y, whichever is larger
507
+ attach_function :get_mouse_wheel_move, :GetMouseWheelMove, [], :float
508
+
509
+ # Get mouse wheel movement for both X and Y
510
+ attach_function :get_mouse_wheel_move_v, :GetMouseWheelMoveV, [], Vector2.by_value
511
+
512
+ # Set mouse cursor
513
+ attach_function :set_mouse_cursor, :SetMouseCursor, [:int], :void
514
+
515
+ # Get touch position X for touch point 0 (relative to screen size)
516
+ attach_function :get_touch_x, :GetTouchX, [], :int
517
+
518
+ # Get touch position Y for touch point 0 (relative to screen size)
519
+ attach_function :get_touch_y, :GetTouchY, [], :int
520
+
521
+ # Get touch position XY for a touch point index (relative to screen size)
522
+ attach_function :get_touch_position, :GetTouchPosition, [:int], Vector2.by_value
523
+
524
+ # Get touch point identifier for given index
525
+ attach_function :get_touch_point_id, :GetTouchPointId, [:int], :int
526
+
527
+ # Get number of touch points
528
+ attach_function :get_touch_point_count, :GetTouchPointCount, [], :int
529
+
530
+ # Enable a set of gestures using flags
531
+ attach_function :set_gestures_enabled, :SetGesturesEnabled, [:uint], :void
532
+
533
+ # Check if a gesture have been detected
534
+ attach_function :is_gesture_detected, :IsGestureDetected, [:int], :bool
535
+
536
+ # Get latest detected gesture
537
+ attach_function :get_gesture_detected, :GetGestureDetected, [], :int
538
+
539
+ # Get gesture hold time in milliseconds
540
+ attach_function :get_gesture_hold_duration, :GetGestureHoldDuration, [], :float
541
+
542
+ # Get gesture drag vector
543
+ attach_function :get_gesture_drag_vector, :GetGestureDragVector, [], Vector2.by_value
544
+
545
+ # Get gesture drag angle
546
+ attach_function :get_gesture_drag_angle, :GetGestureDragAngle, [], :float
547
+
548
+ # Get gesture pinch delta
549
+ attach_function :get_gesture_pinch_vector, :GetGesturePinchVector, [], Vector2.by_value
550
+
551
+ # Get gesture pinch angle
552
+ attach_function :get_gesture_pinch_angle, :GetGesturePinchAngle, [], :float
553
+
554
+ # Update camera position for selected mode
555
+ attach_function :update_camera, :UpdateCamera, [:pointer, :int], :void
556
+
557
+ # Update camera movement/rotation
558
+ attach_function :update_camera_pro, :UpdateCameraPro, [:pointer, Vector3.by_value, Vector3.by_value, :float], :void
559
+
560
+ # Set texture and rectangle to be used on shapes drawing
561
+ attach_function :set_shapes_texture, :SetShapesTexture, [Texture2D.by_value, Rectangle.by_value], :void
562
+
563
+ # Draw a pixel
564
+ attach_function :draw_pixel, :DrawPixel, [:int, :int, Color.by_value], :void
565
+
566
+ # Draw a pixel (Vector version)
567
+ attach_function :draw_pixel_v, :DrawPixelV, [Vector2.by_value, Color.by_value], :void
568
+
569
+ # Draw a line
570
+ attach_function :draw_line, :DrawLine, [:int, :int, :int, :int, Color.by_value], :void
571
+
572
+ # Draw a line (Vector version)
573
+ attach_function :draw_line_v, :DrawLineV, [Vector2.by_value, Vector2.by_value, Color.by_value], :void
574
+
575
+ # Draw a line defining thickness
576
+ attach_function :draw_line_ex, :DrawLineEx, [Vector2.by_value, Vector2.by_value, :float, Color.by_value], :void
577
+
578
+ # Draw a line using cubic-bezier curves in-out
579
+ attach_function :draw_line_bezier, :DrawLineBezier, [Vector2.by_value, Vector2.by_value, :float, Color.by_value], :void
580
+
581
+ # Draw line using quadratic bezier curves with a control point
582
+ attach_function :draw_line_bezier_quad, :DrawLineBezierQuad, [Vector2.by_value, Vector2.by_value, Vector2.by_value, :float, Color.by_value], :void
583
+
584
+ # Draw line using cubic bezier curves with 2 control points
585
+ attach_function :draw_line_bezier_cubic, :DrawLineBezierCubic, [Vector2.by_value, Vector2.by_value, Vector2.by_value, Vector2.by_value, :float, Color.by_value], :void
586
+
587
+ # Draw lines sequence
588
+ attach_function :draw_line_strip, :DrawLineStrip, [:pointer, :int, Color.by_value], :void
589
+
590
+ # Draw a color-filled circle
591
+ attach_function :draw_circle, :DrawCircle, [:int, :int, :float, Color.by_value], :void
592
+
593
+ # Draw a piece of a circle
594
+ attach_function :draw_circle_sector, :DrawCircleSector, [Vector2.by_value, :float, :float, :float, :int, Color.by_value], :void
595
+
596
+ # Draw circle sector outline
597
+ attach_function :draw_circle_sector_lines, :DrawCircleSectorLines, [Vector2.by_value, :float, :float, :float, :int, Color.by_value], :void
598
+
599
+ # Draw a gradient-filled circle
600
+ attach_function :draw_circle_gradient, :DrawCircleGradient, [:int, :int, :float, Color.by_value, Color.by_value], :void
601
+
602
+ # Draw a color-filled circle (Vector version)
603
+ attach_function :draw_circle_v, :DrawCircleV, [Vector2.by_value, :float, Color.by_value], :void
604
+
605
+ # Draw circle outline
606
+ attach_function :draw_circle_lines, :DrawCircleLines, [:int, :int, :float, Color.by_value], :void
607
+
608
+ # Draw ellipse
609
+ attach_function :draw_ellipse, :DrawEllipse, [:int, :int, :float, :float, Color.by_value], :void
610
+
611
+ # Draw ellipse outline
612
+ attach_function :draw_ellipse_lines, :DrawEllipseLines, [:int, :int, :float, :float, Color.by_value], :void
613
+
614
+ # Draw ring
615
+ attach_function :draw_ring, :DrawRing, [Vector2.by_value, :float, :float, :float, :float, :int, Color.by_value], :void
616
+
617
+ # Draw ring outline
618
+ attach_function :draw_ring_lines, :DrawRingLines, [Vector2.by_value, :float, :float, :float, :float, :int, Color.by_value], :void
619
+
620
+ # Draw a color-filled rectangle
621
+ attach_function :draw_rectangle, :DrawRectangle, [:int, :int, :int, :int, Color.by_value], :void
622
+
623
+ # Draw a color-filled rectangle (Vector version)
624
+ attach_function :draw_rectangle_v, :DrawRectangleV, [Vector2.by_value, Vector2.by_value, Color.by_value], :void
625
+
626
+ # Draw a color-filled rectangle
627
+ attach_function :draw_rectangle_rec, :DrawRectangleRec, [Rectangle.by_value, Color.by_value], :void
628
+
629
+ # Draw a color-filled rectangle with pro parameters
630
+ attach_function :draw_rectangle_pro, :DrawRectanglePro, [Rectangle.by_value, Vector2.by_value, :float, Color.by_value], :void
631
+
632
+ # Draw a vertical-gradient-filled rectangle
633
+ attach_function :draw_rectangle_gradient_v, :DrawRectangleGradientV, [:int, :int, :int, :int, Color.by_value, Color.by_value], :void
634
+
635
+ # Draw a horizontal-gradient-filled rectangle
636
+ attach_function :draw_rectangle_gradient_h, :DrawRectangleGradientH, [:int, :int, :int, :int, Color.by_value, Color.by_value], :void
637
+
638
+ # Draw a gradient-filled rectangle with custom vertex colors
639
+ attach_function :draw_rectangle_gradient_ex, :DrawRectangleGradientEx, [Rectangle.by_value, Color.by_value, Color.by_value, Color.by_value, Color.by_value], :void
640
+
641
+ # Draw rectangle outline
642
+ attach_function :draw_rectangle_lines, :DrawRectangleLines, [:int, :int, :int, :int, Color.by_value], :void
643
+
644
+ # Draw rectangle outline with extended parameters
645
+ attach_function :draw_rectangle_lines_ex, :DrawRectangleLinesEx, [Rectangle.by_value, :float, Color.by_value], :void
646
+
647
+ # Draw rectangle with rounded edges
648
+ attach_function :draw_rectangle_rounded, :DrawRectangleRounded, [Rectangle.by_value, :float, :int, Color.by_value], :void
649
+
650
+ # Draw rectangle with rounded edges outline
651
+ attach_function :draw_rectangle_rounded_lines, :DrawRectangleRoundedLines, [Rectangle.by_value, :float, :int, :float, Color.by_value], :void
652
+
653
+ # Draw a color-filled triangle (vertex in counter-clockwise order!)
654
+ attach_function :draw_triangle, :DrawTriangle, [Vector2.by_value, Vector2.by_value, Vector2.by_value, Color.by_value], :void
655
+
656
+ # Draw triangle outline (vertex in counter-clockwise order!)
657
+ attach_function :draw_triangle_lines, :DrawTriangleLines, [Vector2.by_value, Vector2.by_value, Vector2.by_value, Color.by_value], :void
658
+
659
+ # Draw a triangle fan defined by points (first vertex is the center)
660
+ attach_function :draw_triangle_fan, :DrawTriangleFan, [:pointer, :int, Color.by_value], :void
661
+
662
+ # Draw a triangle strip defined by points
663
+ attach_function :draw_triangle_strip, :DrawTriangleStrip, [:pointer, :int, Color.by_value], :void
664
+
665
+ # Draw a regular polygon (Vector version)
666
+ attach_function :draw_poly, :DrawPoly, [Vector2.by_value, :int, :float, :float, Color.by_value], :void
667
+
668
+ # Draw a polygon outline of n sides
669
+ attach_function :draw_poly_lines, :DrawPolyLines, [Vector2.by_value, :int, :float, :float, Color.by_value], :void
670
+
671
+ # Draw a polygon outline of n sides with extended parameters
672
+ attach_function :draw_poly_lines_ex, :DrawPolyLinesEx, [Vector2.by_value, :int, :float, :float, :float, Color.by_value], :void
673
+
674
+ # Check collision between two rectangles
675
+ attach_function :check_collision_recs, :CheckCollisionRecs, [Rectangle.by_value, Rectangle.by_value], :bool
676
+
677
+ # Check collision between two circles
678
+ attach_function :check_collision_circles, :CheckCollisionCircles, [Vector2.by_value, :float, Vector2.by_value, :float], :bool
679
+
680
+ # Check collision between circle and rectangle
681
+ attach_function :check_collision_circle_rec, :CheckCollisionCircleRec, [Vector2.by_value, :float, Rectangle.by_value], :bool
682
+
683
+ # Check if point is inside rectangle
684
+ attach_function :check_collision_point_rec, :CheckCollisionPointRec, [Vector2.by_value, Rectangle.by_value], :bool
685
+
686
+ # Check if point is inside circle
687
+ attach_function :check_collision_point_circle, :CheckCollisionPointCircle, [Vector2.by_value, Vector2.by_value, :float], :bool
688
+
689
+ # Check if point is inside a triangle
690
+ attach_function :check_collision_point_triangle, :CheckCollisionPointTriangle, [Vector2.by_value, Vector2.by_value, Vector2.by_value, Vector2.by_value], :bool
691
+
692
+ # Check if point is within a polygon described by array of vertices
693
+ attach_function :check_collision_point_poly, :CheckCollisionPointPoly, [Vector2.by_value, :pointer, :int], :bool
694
+
695
+ # Check the collision between two lines defined by two points each, returns collision point by reference
696
+ attach_function :check_collision_lines, :CheckCollisionLines, [Vector2.by_value, Vector2.by_value, Vector2.by_value, Vector2.by_value, :pointer], :bool
697
+
698
+ # Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold]
699
+ attach_function :check_collision_point_line, :CheckCollisionPointLine, [Vector2.by_value, Vector2.by_value, Vector2.by_value, :int], :bool
700
+
701
+ # Get collision rectangle for two rectangles collision
702
+ attach_function :get_collision_rec, :GetCollisionRec, [Rectangle.by_value, Rectangle.by_value], Rectangle.by_value
703
+
704
+ # Load image from file into CPU memory (RAM)
705
+ attach_function :load_image, :LoadImage, [:pointer], Image.by_value
706
+
707
+ # Load image from RAW file data
708
+ attach_function :load_image_raw, :LoadImageRaw, [:pointer, :int, :int, :int, :int], Image.by_value
709
+
710
+ # Load image sequence from file (frames appended to image.data)
711
+ attach_function :load_image_anim, :LoadImageAnim, [:pointer, :pointer], Image.by_value
712
+
713
+ # Load image from memory buffer, fileType refers to extension: i.e. '.png'
714
+ attach_function :load_image_from_memory, :LoadImageFromMemory, [:pointer, :pointer, :int], Image.by_value
715
+
716
+ # Load image from GPU texture data
717
+ attach_function :load_image_from_texture, :LoadImageFromTexture, [Texture2D.by_value], Image.by_value
718
+
719
+ # Load image from screen buffer and (screenshot)
720
+ attach_function :load_image_from_screen, :LoadImageFromScreen, [], Image.by_value
721
+
722
+ # Check if an image is ready
723
+ attach_function :is_image_ready, :IsImageReady, [Image.by_value], :bool
724
+
725
+ # Unload image from CPU memory (RAM)
726
+ attach_function :unload_image, :UnloadImage, [Image.by_value], :void
727
+
728
+ # Export image data to file, returns true on success
729
+ attach_function :export_image, :ExportImage, [Image.by_value, :pointer], :bool
730
+
731
+ # Export image as code file defining an array of bytes, returns true on success
732
+ attach_function :export_image_as_code, :ExportImageAsCode, [Image.by_value, :pointer], :bool
733
+
734
+ # Generate image: plain color
735
+ attach_function :gen_image_color, :GenImageColor, [:int, :int, Color.by_value], Image.by_value
736
+
737
+ # Generate image: vertical gradient
738
+ attach_function :gen_image_gradient_v, :GenImageGradientV, [:int, :int, Color.by_value, Color.by_value], Image.by_value
739
+
740
+ # Generate image: horizontal gradient
741
+ attach_function :gen_image_gradient_h, :GenImageGradientH, [:int, :int, Color.by_value, Color.by_value], Image.by_value
742
+
743
+ # Generate image: radial gradient
744
+ attach_function :gen_image_gradient_radial, :GenImageGradientRadial, [:int, :int, :float, Color.by_value, Color.by_value], Image.by_value
745
+
746
+ # Generate image: checked
747
+ attach_function :gen_image_checked, :GenImageChecked, [:int, :int, :int, :int, Color.by_value, Color.by_value], Image.by_value
748
+
749
+ # Generate image: white noise
750
+ attach_function :gen_image_white_noise, :GenImageWhiteNoise, [:int, :int, :float], Image.by_value
751
+
752
+ # Generate image: perlin noise
753
+ attach_function :gen_image_perlin_noise, :GenImagePerlinNoise, [:int, :int, :int, :int, :float], Image.by_value
754
+
755
+ # Generate image: cellular algorithm, bigger tileSize means bigger cells
756
+ attach_function :gen_image_cellular, :GenImageCellular, [:int, :int, :int], Image.by_value
757
+
758
+ # Generate image: grayscale image from text data
759
+ attach_function :gen_image_text, :GenImageText, [:int, :int, :pointer], Image.by_value
760
+
761
+ # Create an image duplicate (useful for transformations)
762
+ attach_function :image_copy, :ImageCopy, [Image.by_value], Image.by_value
763
+
764
+ # Create an image from another image piece
765
+ attach_function :image_from_image, :ImageFromImage, [Image.by_value, Rectangle.by_value], Image.by_value
766
+
767
+ # Create an image from text (default font)
768
+ attach_function :image_text, :ImageText, [:pointer, :int, Color.by_value], Image.by_value
769
+
770
+ # Create an image from text (custom sprite font)
771
+ attach_function :image_text_ex, :ImageTextEx, [Font.by_value, :pointer, :float, :float, Color.by_value], Image.by_value
772
+
773
+ # Convert image data to desired format
774
+ attach_function :image_format, :ImageFormat, [:pointer, :int], :void
775
+
776
+ # Convert image to POT (power-of-two)
777
+ attach_function :image_to_pot, :ImageToPOT, [:pointer, Color.by_value], :void
778
+
779
+ # Crop an image to a defined rectangle
780
+ attach_function :image_crop, :ImageCrop, [:pointer, Rectangle.by_value], :void
781
+
782
+ # Crop image depending on alpha value
783
+ attach_function :image_alpha_crop, :ImageAlphaCrop, [:pointer, :float], :void
784
+
785
+ # Clear alpha channel to desired color
786
+ attach_function :image_alpha_clear, :ImageAlphaClear, [:pointer, Color.by_value, :float], :void
787
+
788
+ # Apply alpha mask to image
789
+ attach_function :image_alpha_mask, :ImageAlphaMask, [:pointer, Image.by_value], :void
790
+
791
+ # Premultiply alpha channel
792
+ attach_function :image_alpha_premultiply, :ImageAlphaPremultiply, [:pointer], :void
793
+
794
+ # Apply Gaussian blur using a box blur approximation
795
+ attach_function :image_blur_gaussian, :ImageBlurGaussian, [:pointer, :int], :void
796
+
797
+ # Resize image (Bicubic scaling algorithm)
798
+ attach_function :image_resize, :ImageResize, [:pointer, :int, :int], :void
799
+
800
+ # Resize image (Nearest-Neighbor scaling algorithm)
801
+ attach_function :image_resize_nn, :ImageResizeNN, [:pointer, :int, :int], :void
802
+
803
+ # Resize canvas and fill with color
804
+ attach_function :image_resize_canvas, :ImageResizeCanvas, [:pointer, :int, :int, :int, :int, Color.by_value], :void
805
+
806
+ # Compute all mipmap levels for a provided image
807
+ attach_function :image_mipmaps, :ImageMipmaps, [:pointer], :void
808
+
809
+ # Dither image data to 16bpp or lower (Floyd-Steinberg dithering)
810
+ attach_function :image_dither, :ImageDither, [:pointer, :int, :int, :int, :int], :void
811
+
812
+ # Flip image vertically
813
+ attach_function :image_flip_vertical, :ImageFlipVertical, [:pointer], :void
814
+
815
+ # Flip image horizontally
816
+ attach_function :image_flip_horizontal, :ImageFlipHorizontal, [:pointer], :void
817
+
818
+ # Rotate image clockwise 90deg
819
+ attach_function :image_rotate_cw, :ImageRotateCW, [:pointer], :void
820
+
821
+ # Rotate image counter-clockwise 90deg
822
+ attach_function :image_rotate_ccw, :ImageRotateCCW, [:pointer], :void
823
+
824
+ # Modify image color: tint
825
+ attach_function :image_color_tint, :ImageColorTint, [:pointer, Color.by_value], :void
826
+
827
+ # Modify image color: invert
828
+ attach_function :image_color_invert, :ImageColorInvert, [:pointer], :void
829
+
830
+ # Modify image color: grayscale
831
+ attach_function :image_color_grayscale, :ImageColorGrayscale, [:pointer], :void
832
+
833
+ # Modify image color: contrast (-100 to 100)
834
+ attach_function :image_color_contrast, :ImageColorContrast, [:pointer, :float], :void
835
+
836
+ # Modify image color: brightness (-255 to 255)
837
+ attach_function :image_color_brightness, :ImageColorBrightness, [:pointer, :int], :void
838
+
839
+ # Modify image color: replace color
840
+ attach_function :image_color_replace, :ImageColorReplace, [:pointer, Color.by_value, Color.by_value], :void
841
+
842
+ # Load color data from image as a Color array (RGBA - 32bit)
843
+ attach_function :load_image_colors, :LoadImageColors, [Image.by_value], :pointer
844
+
845
+ # Load colors palette from image as a Color array (RGBA - 32bit)
846
+ attach_function :load_image_palette, :LoadImagePalette, [Image.by_value, :int, :pointer], :pointer
847
+
848
+ # Unload color data loaded with LoadImageColors()
849
+ attach_function :unload_image_colors, :UnloadImageColors, [:pointer], :void
850
+
851
+ # Unload colors palette loaded with LoadImagePalette()
852
+ attach_function :unload_image_palette, :UnloadImagePalette, [:pointer], :void
853
+
854
+ # Get image alpha border rectangle
855
+ attach_function :get_image_alpha_border, :GetImageAlphaBorder, [Image.by_value, :float], Rectangle.by_value
856
+
857
+ # Get image pixel color at (x, y) position
858
+ attach_function :get_image_color, :GetImageColor, [Image.by_value, :int, :int], Color.by_value
859
+
860
+ # Clear image background with given color
861
+ attach_function :image_clear_background, :ImageClearBackground, [:pointer, Color.by_value], :void
862
+
863
+ # Draw pixel within an image
864
+ attach_function :image_draw_pixel, :ImageDrawPixel, [:pointer, :int, :int, Color.by_value], :void
865
+
866
+ # Draw pixel within an image (Vector version)
867
+ attach_function :image_draw_pixel_v, :ImageDrawPixelV, [:pointer, Vector2.by_value, Color.by_value], :void
868
+
869
+ # Draw line within an image
870
+ attach_function :image_draw_line, :ImageDrawLine, [:pointer, :int, :int, :int, :int, Color.by_value], :void
871
+
872
+ # Draw line within an image (Vector version)
873
+ attach_function :image_draw_line_v, :ImageDrawLineV, [:pointer, Vector2.by_value, Vector2.by_value, Color.by_value], :void
874
+
875
+ # Draw a filled circle within an image
876
+ attach_function :image_draw_circle, :ImageDrawCircle, [:pointer, :int, :int, :int, Color.by_value], :void
877
+
878
+ # Draw a filled circle within an image (Vector version)
879
+ attach_function :image_draw_circle_v, :ImageDrawCircleV, [:pointer, Vector2.by_value, :int, Color.by_value], :void
880
+
881
+ # Draw circle outline within an image
882
+ attach_function :image_draw_circle_lines, :ImageDrawCircleLines, [:pointer, :int, :int, :int, Color.by_value], :void
883
+
884
+ # Draw circle outline within an image (Vector version)
885
+ attach_function :image_draw_circle_lines_v, :ImageDrawCircleLinesV, [:pointer, Vector2.by_value, :int, Color.by_value], :void
886
+
887
+ # Draw rectangle within an image
888
+ attach_function :image_draw_rectangle, :ImageDrawRectangle, [:pointer, :int, :int, :int, :int, Color.by_value], :void
889
+
890
+ # Draw rectangle within an image (Vector version)
891
+ attach_function :image_draw_rectangle_v, :ImageDrawRectangleV, [:pointer, Vector2.by_value, Vector2.by_value, Color.by_value], :void
892
+
893
+ # Draw rectangle within an image
894
+ attach_function :image_draw_rectangle_rec, :ImageDrawRectangleRec, [:pointer, Rectangle.by_value, Color.by_value], :void
895
+
896
+ # Draw rectangle lines within an image
897
+ attach_function :image_draw_rectangle_lines, :ImageDrawRectangleLines, [:pointer, Rectangle.by_value, :int, Color.by_value], :void
898
+
899
+ # Draw a source image within a destination image (tint applied to source)
900
+ attach_function :image_draw, :ImageDraw, [:pointer, Image.by_value, Rectangle.by_value, Rectangle.by_value, Color.by_value], :void
901
+
902
+ # Draw text (using default font) within an image (destination)
903
+ attach_function :image_draw_text, :ImageDrawText, [:pointer, :pointer, :int, :int, :int, Color.by_value], :void
904
+
905
+ # Draw text (custom sprite font) within an image (destination)
906
+ attach_function :image_draw_text_ex, :ImageDrawTextEx, [:pointer, Font.by_value, :pointer, Vector2.by_value, :float, :float, Color.by_value], :void
907
+
908
+ # Load texture from file into GPU memory (VRAM)
909
+ attach_function :load_texture, :LoadTexture, [:pointer], Texture2D.by_value
910
+
911
+ # Load texture from image data
912
+ attach_function :load_texture_from_image, :LoadTextureFromImage, [Image.by_value], Texture2D.by_value
913
+
914
+ # Load cubemap from image, multiple image cubemap layouts supported
915
+ attach_function :load_texture_cubemap, :LoadTextureCubemap, [Image.by_value, :int], TextureCubemap.by_value
916
+
917
+ # Load texture for rendering (framebuffer)
918
+ attach_function :load_render_texture, :LoadRenderTexture, [:int, :int], RenderTexture2D.by_value
919
+
920
+ # Check if a texture is ready
921
+ attach_function :is_texture_ready, :IsTextureReady, [Texture2D.by_value], :bool
922
+
923
+ # Unload texture from GPU memory (VRAM)
924
+ attach_function :unload_texture, :UnloadTexture, [Texture2D.by_value], :void
925
+
926
+ # Check if a render texture is ready
927
+ attach_function :is_render_texture_ready, :IsRenderTextureReady, [RenderTexture2D.by_value], :bool
928
+
929
+ # Unload render texture from GPU memory (VRAM)
930
+ attach_function :unload_render_texture, :UnloadRenderTexture, [RenderTexture2D.by_value], :void
931
+
932
+ # Update GPU texture with new data
933
+ attach_function :update_texture, :UpdateTexture, [Texture2D.by_value, :pointer], :void
934
+
935
+ # Update GPU texture rectangle with new data
936
+ attach_function :update_texture_rec, :UpdateTextureRec, [Texture2D.by_value, Rectangle.by_value, :pointer], :void
937
+
938
+ # Generate GPU mipmaps for a texture
939
+ attach_function :gen_texture_mipmaps, :GenTextureMipmaps, [:pointer], :void
940
+
941
+ # Set texture scaling filter mode
942
+ attach_function :set_texture_filter, :SetTextureFilter, [Texture2D.by_value, :int], :void
943
+
944
+ # Set texture wrapping mode
945
+ attach_function :set_texture_wrap, :SetTextureWrap, [Texture2D.by_value, :int], :void
946
+
947
+ # Draw a Texture2D
948
+ attach_function :draw_texture, :DrawTexture, [Texture2D.by_value, :int, :int, Color.by_value], :void
949
+
950
+ # Draw a Texture2D with position defined as Vector2
951
+ attach_function :draw_texture_v, :DrawTextureV, [Texture2D.by_value, Vector2.by_value, Color.by_value], :void
952
+
953
+ # Draw a Texture2D with extended parameters
954
+ attach_function :draw_texture_ex, :DrawTextureEx, [Texture2D.by_value, Vector2.by_value, :float, :float, Color.by_value], :void
955
+
956
+ # Draw a part of a texture defined by a rectangle
957
+ attach_function :draw_texture_rec, :DrawTextureRec, [Texture2D.by_value, Rectangle.by_value, Vector2.by_value, Color.by_value], :void
958
+
959
+ # Draw a part of a texture defined by a rectangle with 'pro' parameters
960
+ attach_function :draw_texture_pro, :DrawTexturePro, [Texture2D.by_value, Rectangle.by_value, Rectangle.by_value, Vector2.by_value, :float, Color.by_value], :void
961
+
962
+ # Draws a texture (or part of it) that stretches or shrinks nicely
963
+ attach_function :draw_texture_n_patch, :DrawTextureNPatch, [Texture2D.by_value, NPatchInfo.by_value, Rectangle.by_value, Vector2.by_value, :float, Color.by_value], :void
964
+
965
+ # Get color with alpha applied, alpha goes from 0.0f to 1.0f
966
+ attach_function :fade, :Fade, [Color.by_value, :float], Color.by_value
967
+
968
+ # Get hexadecimal value for a Color
969
+ attach_function :color_to_int, :ColorToInt, [Color.by_value], :int
970
+
971
+ # Get Color normalized as float [0..1]
972
+ attach_function :color_normalize, :ColorNormalize, [Color.by_value], Vector4.by_value
973
+
974
+ # Get Color from normalized values [0..1]
975
+ attach_function :color_from_normalized, :ColorFromNormalized, [Vector4.by_value], Color.by_value
976
+
977
+ # Get HSV values for a Color, hue [0..360], saturation/value [0..1]
978
+ attach_function :color_to_hsv, :ColorToHSV, [Color.by_value], Vector3.by_value
979
+
980
+ # Get a Color from HSV values, hue [0..360], saturation/value [0..1]
981
+ attach_function :color_from_hsv, :ColorFromHSV, [:float, :float, :float], Color.by_value
982
+
983
+ # Get color multiplied with another color
984
+ attach_function :color_tint, :ColorTint, [Color.by_value, Color.by_value], Color.by_value
985
+
986
+ # Get color with brightness correction, brightness factor goes from -1.0f to 1.0f
987
+ attach_function :color_brightness, :ColorBrightness, [Color.by_value, :float], Color.by_value
988
+
989
+ # Get color with contrast correction, contrast values between -1.0f and 1.0f
990
+ attach_function :color_contrast, :ColorContrast, [Color.by_value, :float], Color.by_value
991
+
992
+ # Get color with alpha applied, alpha goes from 0.0f to 1.0f
993
+ attach_function :color_alpha, :ColorAlpha, [Color.by_value, :float], Color.by_value
994
+
995
+ # Get src alpha-blended into dst color with tint
996
+ attach_function :color_alpha_blend, :ColorAlphaBlend, [Color.by_value, Color.by_value, Color.by_value], Color.by_value
997
+
998
+ # Get Color structure from hexadecimal value
999
+ attach_function :get_color, :GetColor, [:uint], Color.by_value
1000
+
1001
+ # Get Color from a source pixel pointer of certain format
1002
+ attach_function :get_pixel_color, :GetPixelColor, [:pointer, :int], Color.by_value
1003
+
1004
+ # Set color formatted into destination pixel pointer
1005
+ attach_function :set_pixel_color, :SetPixelColor, [:pointer, Color.by_value, :int], :void
1006
+
1007
+ # Get pixel data size in bytes for certain format
1008
+ attach_function :get_pixel_data_size, :GetPixelDataSize, [:int, :int, :int], :int
1009
+
1010
+ # Get the default Font
1011
+ attach_function :get_font_default, :GetFontDefault, [], Font.by_value
1012
+
1013
+ # Load font from file into GPU memory (VRAM)
1014
+ attach_function :load_font, :LoadFont, [:pointer], Font.by_value
1015
+
1016
+ # Load font from file with extended parameters, use NULL for fontChars and 0 for glyphCount to load the default character set
1017
+ attach_function :load_font_ex, :LoadFontEx, [:pointer, :int, :pointer, :int], Font.by_value
1018
+
1019
+ # Load font from Image (XNA style)
1020
+ attach_function :load_font_from_image, :LoadFontFromImage, [Image.by_value, Color.by_value, :int], Font.by_value
1021
+
1022
+ # Load font from memory buffer, fileType refers to extension: i.e. '.ttf'
1023
+ attach_function :load_font_from_memory, :LoadFontFromMemory, [:pointer, :pointer, :int, :int, :pointer, :int], Font.by_value
1024
+
1025
+ # Check if a font is ready
1026
+ attach_function :is_font_ready, :IsFontReady, [Font.by_value], :bool
1027
+
1028
+ # Load font data for further use
1029
+ attach_function :load_font_data, :LoadFontData, [:pointer, :int, :int, :pointer, :int, :int], :pointer
1030
+
1031
+ # Generate image font atlas using chars info
1032
+ attach_function :gen_image_font_atlas, :GenImageFontAtlas, [:pointer, :pointer, :int, :int, :int, :int], Image.by_value
1033
+
1034
+ # Unload font chars info data (RAM)
1035
+ attach_function :unload_font_data, :UnloadFontData, [:pointer, :int], :void
1036
+
1037
+ # Unload font from GPU memory (VRAM)
1038
+ attach_function :unload_font, :UnloadFont, [Font.by_value], :void
1039
+
1040
+ # Export font as code file, returns true on success
1041
+ attach_function :export_font_as_code, :ExportFontAsCode, [Font.by_value, :pointer], :bool
1042
+
1043
+ # Draw current FPS
1044
+ attach_function :draw_fps, :DrawFPS, [:int, :int], :void
1045
+
1046
+ # Draw text (using default font)
1047
+ attach_function :draw_text, :DrawText, [:pointer, :int, :int, :int, Color.by_value], :void
1048
+
1049
+ # Draw text using font and additional parameters
1050
+ attach_function :draw_text_ex, :DrawTextEx, [Font.by_value, :pointer, Vector2.by_value, :float, :float, Color.by_value], :void
1051
+
1052
+ # Draw text using Font and pro parameters (rotation)
1053
+ attach_function :draw_text_pro, :DrawTextPro, [Font.by_value, :pointer, Vector2.by_value, Vector2.by_value, :float, :float, :float, Color.by_value], :void
1054
+
1055
+ # Draw one character (codepoint)
1056
+ attach_function :draw_text_codepoint, :DrawTextCodepoint, [Font.by_value, :int, Vector2.by_value, :float, Color.by_value], :void
1057
+
1058
+ # Draw multiple character (codepoint)
1059
+ attach_function :draw_text_codepoints, :DrawTextCodepoints, [Font.by_value, :pointer, :int, Vector2.by_value, :float, :float, Color.by_value], :void
1060
+
1061
+ # Measure string width for default font
1062
+ attach_function :measure_text, :MeasureText, [:pointer, :int], :int
1063
+
1064
+ # Measure string size for Font
1065
+ attach_function :measure_text_ex, :MeasureTextEx, [Font.by_value, :pointer, :float, :float], Vector2.by_value
1066
+
1067
+ # Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found
1068
+ attach_function :get_glyph_index, :GetGlyphIndex, [Font.by_value, :int], :int
1069
+
1070
+ # Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found
1071
+ attach_function :get_glyph_info, :GetGlyphInfo, [Font.by_value, :int], GlyphInfo.by_value
1072
+
1073
+ # Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found
1074
+ attach_function :get_glyph_atlas_rec, :GetGlyphAtlasRec, [Font.by_value, :int], Rectangle.by_value
1075
+
1076
+ # Load UTF-8 text encoded from codepoints array
1077
+ attach_function :load_utf8, :LoadUTF8, [:pointer, :int], :pointer
1078
+
1079
+ # Unload UTF-8 text encoded from codepoints array
1080
+ attach_function :unload_utf8, :UnloadUTF8, [:pointer], :void
1081
+
1082
+ # Load all codepoints from a UTF-8 text string, codepoints count returned by parameter
1083
+ attach_function :load_codepoints, :LoadCodepoints, [:pointer, :pointer], :pointer
1084
+
1085
+ # Unload codepoints data from memory
1086
+ attach_function :unload_codepoints, :UnloadCodepoints, [:pointer], :void
1087
+
1088
+ # Get total number of codepoints in a UTF-8 encoded string
1089
+ attach_function :get_codepoint_count, :GetCodepointCount, [:pointer], :int
1090
+
1091
+ # Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure
1092
+ attach_function :get_codepoint, :GetCodepoint, [:pointer, :pointer], :int
1093
+
1094
+ # Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure
1095
+ attach_function :get_codepoint_next, :GetCodepointNext, [:pointer, :pointer], :int
1096
+
1097
+ # Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure
1098
+ attach_function :get_codepoint_previous, :GetCodepointPrevious, [:pointer, :pointer], :int
1099
+
1100
+ # Encode one codepoint into UTF-8 byte array (array length returned as parameter)
1101
+ attach_function :codepoint_to_utf8, :CodepointToUTF8, [:int, :pointer], :pointer
1102
+
1103
+ # Copy one string to another, returns bytes copied
1104
+ attach_function :text_copy, :TextCopy, [:pointer, :pointer], :int
1105
+
1106
+ # Check if two text string are equal
1107
+ attach_function :text_is_equal, :TextIsEqual, [:pointer, :pointer], :bool
1108
+
1109
+ # Get text length, checks for '\0' ending
1110
+ attach_function :text_length, :TextLength, [:pointer], :uint
1111
+
1112
+ # Text formatting with variables (sprintf() style)
1113
+ attach_function :text_format, :TextFormat, [:pointer, :varargs], :pointer
1114
+
1115
+ # Get a piece of a text string
1116
+ attach_function :text_subtext, :TextSubtext, [:pointer, :int, :int], :pointer
1117
+
1118
+ # Replace text string (WARNING: memory must be freed!)
1119
+ attach_function :text_replace, :TextReplace, [:pointer, :pointer, :pointer], :pointer
1120
+
1121
+ # Insert text in a position (WARNING: memory must be freed!)
1122
+ attach_function :text_insert, :TextInsert, [:pointer, :pointer, :int], :pointer
1123
+
1124
+ # Join text strings with delimiter
1125
+ attach_function :text_join, :TextJoin, [:pointer, :int, :pointer], :pointer
1126
+
1127
+ # Split text into multiple strings
1128
+ attach_function :text_split, :TextSplit, [:pointer, :char, :pointer], :pointer
1129
+
1130
+ # Append text at specific position and move cursor!
1131
+ attach_function :text_append, :TextAppend, [:pointer, :pointer, :pointer], :void
1132
+
1133
+ # Find first text occurrence within a string
1134
+ attach_function :text_find_index, :TextFindIndex, [:pointer, :pointer], :int
1135
+
1136
+ # Get upper case version of provided string
1137
+ attach_function :text_to_upper, :TextToUpper, [:pointer], :pointer
1138
+
1139
+ # Get lower case version of provided string
1140
+ attach_function :text_to_lower, :TextToLower, [:pointer], :pointer
1141
+
1142
+ # Get Pascal case notation version of provided string
1143
+ attach_function :text_to_pascal, :TextToPascal, [:pointer], :pointer
1144
+
1145
+ # Get integer value from text (negative values not supported)
1146
+ attach_function :text_to_integer, :TextToInteger, [:pointer], :int
1147
+
1148
+ # Draw a line in 3D world space
1149
+ attach_function :draw_line3_d, :DrawLine3D, [Vector3.by_value, Vector3.by_value, Color.by_value], :void
1150
+
1151
+ # Draw a point in 3D space, actually a small line
1152
+ attach_function :draw_point3_d, :DrawPoint3D, [Vector3.by_value, Color.by_value], :void
1153
+
1154
+ # Draw a circle in 3D world space
1155
+ attach_function :draw_circle3_d, :DrawCircle3D, [Vector3.by_value, :float, Vector3.by_value, :float, Color.by_value], :void
1156
+
1157
+ # Draw a color-filled triangle (vertex in counter-clockwise order!)
1158
+ attach_function :draw_triangle3_d, :DrawTriangle3D, [Vector3.by_value, Vector3.by_value, Vector3.by_value, Color.by_value], :void
1159
+
1160
+ # Draw a triangle strip defined by points
1161
+ attach_function :draw_triangle_strip3_d, :DrawTriangleStrip3D, [:pointer, :int, Color.by_value], :void
1162
+
1163
+ # Draw cube
1164
+ attach_function :draw_cube, :DrawCube, [Vector3.by_value, :float, :float, :float, Color.by_value], :void
1165
+
1166
+ # Draw cube (Vector version)
1167
+ attach_function :draw_cube_v, :DrawCubeV, [Vector3.by_value, Vector3.by_value, Color.by_value], :void
1168
+
1169
+ # Draw cube wires
1170
+ attach_function :draw_cube_wires, :DrawCubeWires, [Vector3.by_value, :float, :float, :float, Color.by_value], :void
1171
+
1172
+ # Draw cube wires (Vector version)
1173
+ attach_function :draw_cube_wires_v, :DrawCubeWiresV, [Vector3.by_value, Vector3.by_value, Color.by_value], :void
1174
+
1175
+ # Draw sphere
1176
+ attach_function :draw_sphere, :DrawSphere, [Vector3.by_value, :float, Color.by_value], :void
1177
+
1178
+ # Draw sphere with extended parameters
1179
+ attach_function :draw_sphere_ex, :DrawSphereEx, [Vector3.by_value, :float, :int, :int, Color.by_value], :void
1180
+
1181
+ # Draw sphere wires
1182
+ attach_function :draw_sphere_wires, :DrawSphereWires, [Vector3.by_value, :float, :int, :int, Color.by_value], :void
1183
+
1184
+ # Draw a cylinder/cone
1185
+ attach_function :draw_cylinder, :DrawCylinder, [Vector3.by_value, :float, :float, :float, :int, Color.by_value], :void
1186
+
1187
+ # Draw a cylinder with base at startPos and top at endPos
1188
+ attach_function :draw_cylinder_ex, :DrawCylinderEx, [Vector3.by_value, Vector3.by_value, :float, :float, :int, Color.by_value], :void
1189
+
1190
+ # Draw a cylinder/cone wires
1191
+ attach_function :draw_cylinder_wires, :DrawCylinderWires, [Vector3.by_value, :float, :float, :float, :int, Color.by_value], :void
1192
+
1193
+ # Draw a cylinder wires with base at startPos and top at endPos
1194
+ attach_function :draw_cylinder_wires_ex, :DrawCylinderWiresEx, [Vector3.by_value, Vector3.by_value, :float, :float, :int, Color.by_value], :void
1195
+
1196
+ # Draw a capsule with the center of its sphere caps at startPos and endPos
1197
+ attach_function :draw_capsule, :DrawCapsule, [Vector3.by_value, Vector3.by_value, :float, :int, :int, Color.by_value], :void
1198
+
1199
+ # Draw capsule wireframe with the center of its sphere caps at startPos and endPos
1200
+ attach_function :draw_capsule_wires, :DrawCapsuleWires, [Vector3.by_value, Vector3.by_value, :float, :int, :int, Color.by_value], :void
1201
+
1202
+ # Draw a plane XZ
1203
+ attach_function :draw_plane, :DrawPlane, [Vector3.by_value, Vector2.by_value, Color.by_value], :void
1204
+
1205
+ # Draw a ray line
1206
+ attach_function :draw_ray, :DrawRay, [Ray.by_value, Color.by_value], :void
1207
+
1208
+ # Draw a grid (centered at (0, 0, 0))
1209
+ attach_function :draw_grid, :DrawGrid, [:int, :float], :void
1210
+
1211
+ # Load model from files (meshes and materials)
1212
+ attach_function :load_model, :LoadModel, [:pointer], Model.by_value
1213
+
1214
+ # Load model from generated mesh (default material)
1215
+ attach_function :load_model_from_mesh, :LoadModelFromMesh, [Mesh.by_value], Model.by_value
1216
+
1217
+ # Check if a model is ready
1218
+ attach_function :is_model_ready, :IsModelReady, [Model.by_value], :bool
1219
+
1220
+ # Unload model (including meshes) from memory (RAM and/or VRAM)
1221
+ attach_function :unload_model, :UnloadModel, [Model.by_value], :void
1222
+
1223
+ # Compute model bounding box limits (considers all meshes)
1224
+ attach_function :get_model_bounding_box, :GetModelBoundingBox, [Model.by_value], BoundingBox.by_value
1225
+
1226
+ # Draw a model (with texture if set)
1227
+ attach_function :draw_model, :DrawModel, [Model.by_value, Vector3.by_value, :float, Color.by_value], :void
1228
+
1229
+ # Draw a model with extended parameters
1230
+ attach_function :draw_model_ex, :DrawModelEx, [Model.by_value, Vector3.by_value, Vector3.by_value, :float, Vector3.by_value, Color.by_value], :void
1231
+
1232
+ # Draw a model wires (with texture if set)
1233
+ attach_function :draw_model_wires, :DrawModelWires, [Model.by_value, Vector3.by_value, :float, Color.by_value], :void
1234
+
1235
+ # Draw a model wires (with texture if set) with extended parameters
1236
+ attach_function :draw_model_wires_ex, :DrawModelWiresEx, [Model.by_value, Vector3.by_value, Vector3.by_value, :float, Vector3.by_value, Color.by_value], :void
1237
+
1238
+ # Draw bounding box (wires)
1239
+ attach_function :draw_bounding_box, :DrawBoundingBox, [BoundingBox.by_value, Color.by_value], :void
1240
+
1241
+ # Draw a billboard texture
1242
+ attach_function :draw_billboard, :DrawBillboard, [Camera.by_value, Texture2D.by_value, Vector3.by_value, :float, Color.by_value], :void
1243
+
1244
+ # Draw a billboard texture defined by source
1245
+ attach_function :draw_billboard_rec, :DrawBillboardRec, [Camera.by_value, Texture2D.by_value, Rectangle.by_value, Vector3.by_value, Vector2.by_value, Color.by_value], :void
1246
+
1247
+ # Draw a billboard texture defined by source and rotation
1248
+ attach_function :draw_billboard_pro, :DrawBillboardPro, [Camera.by_value, Texture2D.by_value, Rectangle.by_value, Vector3.by_value, Vector3.by_value, Vector2.by_value, Vector2.by_value, :float, Color.by_value], :void
1249
+
1250
+ # Upload mesh vertex data in GPU and provide VAO/VBO ids
1251
+ attach_function :upload_mesh, :UploadMesh, [:pointer, :bool], :void
1252
+
1253
+ # Update mesh vertex data in GPU for a specific buffer index
1254
+ attach_function :update_mesh_buffer, :UpdateMeshBuffer, [Mesh.by_value, :int, :pointer, :int, :int], :void
1255
+
1256
+ # Unload mesh data from CPU and GPU
1257
+ attach_function :unload_mesh, :UnloadMesh, [Mesh.by_value], :void
1258
+
1259
+ # Draw a 3d mesh with material and transform
1260
+ attach_function :draw_mesh, :DrawMesh, [Mesh.by_value, Material.by_value, Matrix.by_value], :void
1261
+
1262
+ # Draw multiple mesh instances with material and different transforms
1263
+ attach_function :draw_mesh_instanced, :DrawMeshInstanced, [Mesh.by_value, Material.by_value, :pointer, :int], :void
1264
+
1265
+ # Export mesh data to file, returns true on success
1266
+ attach_function :export_mesh, :ExportMesh, [Mesh.by_value, :pointer], :bool
1267
+
1268
+ # Compute mesh bounding box limits
1269
+ attach_function :get_mesh_bounding_box, :GetMeshBoundingBox, [Mesh.by_value], BoundingBox.by_value
1270
+
1271
+ # Compute mesh tangents
1272
+ attach_function :gen_mesh_tangents, :GenMeshTangents, [:pointer], :void
1273
+
1274
+ # Generate polygonal mesh
1275
+ attach_function :gen_mesh_poly, :GenMeshPoly, [:int, :float], Mesh.by_value
1276
+
1277
+ # Generate plane mesh (with subdivisions)
1278
+ attach_function :gen_mesh_plane, :GenMeshPlane, [:float, :float, :int, :int], Mesh.by_value
1279
+
1280
+ # Generate cuboid mesh
1281
+ attach_function :gen_mesh_cube, :GenMeshCube, [:float, :float, :float], Mesh.by_value
1282
+
1283
+ # Generate sphere mesh (standard sphere)
1284
+ attach_function :gen_mesh_sphere, :GenMeshSphere, [:float, :int, :int], Mesh.by_value
1285
+
1286
+ # Generate half-sphere mesh (no bottom cap)
1287
+ attach_function :gen_mesh_hemi_sphere, :GenMeshHemiSphere, [:float, :int, :int], Mesh.by_value
1288
+
1289
+ # Generate cylinder mesh
1290
+ attach_function :gen_mesh_cylinder, :GenMeshCylinder, [:float, :float, :int], Mesh.by_value
1291
+
1292
+ # Generate cone/pyramid mesh
1293
+ attach_function :gen_mesh_cone, :GenMeshCone, [:float, :float, :int], Mesh.by_value
1294
+
1295
+ # Generate torus mesh
1296
+ attach_function :gen_mesh_torus, :GenMeshTorus, [:float, :float, :int, :int], Mesh.by_value
1297
+
1298
+ # Generate trefoil knot mesh
1299
+ attach_function :gen_mesh_knot, :GenMeshKnot, [:float, :float, :int, :int], Mesh.by_value
1300
+
1301
+ # Generate heightmap mesh from image data
1302
+ attach_function :gen_mesh_heightmap, :GenMeshHeightmap, [Image.by_value, Vector3.by_value], Mesh.by_value
1303
+
1304
+ # Generate cubes-based map mesh from image data
1305
+ attach_function :gen_mesh_cubicmap, :GenMeshCubicmap, [Image.by_value, Vector3.by_value], Mesh.by_value
1306
+
1307
+ # Load materials from model file
1308
+ attach_function :load_materials, :LoadMaterials, [:pointer, :pointer], :pointer
1309
+
1310
+ # Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps)
1311
+ attach_function :load_material_default, :LoadMaterialDefault, [], Material.by_value
1312
+
1313
+ # Check if a material is ready
1314
+ attach_function :is_material_ready, :IsMaterialReady, [Material.by_value], :bool
1315
+
1316
+ # Unload material from GPU memory (VRAM)
1317
+ attach_function :unload_material, :UnloadMaterial, [Material.by_value], :void
1318
+
1319
+ # Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...)
1320
+ attach_function :set_material_texture, :SetMaterialTexture, [:pointer, :int, Texture2D.by_value], :void
1321
+
1322
+ # Set material for a mesh
1323
+ attach_function :set_model_mesh_material, :SetModelMeshMaterial, [:pointer, :int, :int], :void
1324
+
1325
+ # Load model animations from file
1326
+ attach_function :load_model_animations, :LoadModelAnimations, [:pointer, :pointer], :pointer
1327
+
1328
+ # Update model animation pose
1329
+ attach_function :update_model_animation, :UpdateModelAnimation, [Model.by_value, ModelAnimation.by_value, :int], :void
1330
+
1331
+ # Unload animation data
1332
+ attach_function :unload_model_animation, :UnloadModelAnimation, [ModelAnimation.by_value], :void
1333
+
1334
+ # Unload animation array data
1335
+ attach_function :unload_model_animations, :UnloadModelAnimations, [:pointer, :uint], :void
1336
+
1337
+ # Check model animation skeleton match
1338
+ attach_function :is_model_animation_valid, :IsModelAnimationValid, [Model.by_value, ModelAnimation.by_value], :bool
1339
+
1340
+ # Check collision between two spheres
1341
+ attach_function :check_collision_spheres, :CheckCollisionSpheres, [Vector3.by_value, :float, Vector3.by_value, :float], :bool
1342
+
1343
+ # Check collision between two bounding boxes
1344
+ attach_function :check_collision_boxes, :CheckCollisionBoxes, [BoundingBox.by_value, BoundingBox.by_value], :bool
1345
+
1346
+ # Check collision between box and sphere
1347
+ attach_function :check_collision_box_sphere, :CheckCollisionBoxSphere, [BoundingBox.by_value, Vector3.by_value, :float], :bool
1348
+
1349
+ # Get collision info between ray and sphere
1350
+ attach_function :get_ray_collision_sphere, :GetRayCollisionSphere, [Ray.by_value, Vector3.by_value, :float], RayCollision.by_value
1351
+
1352
+ # Get collision info between ray and box
1353
+ attach_function :get_ray_collision_box, :GetRayCollisionBox, [Ray.by_value, BoundingBox.by_value], RayCollision.by_value
1354
+
1355
+ # Get collision info between ray and mesh
1356
+ attach_function :get_ray_collision_mesh, :GetRayCollisionMesh, [Ray.by_value, Mesh.by_value, Matrix.by_value], RayCollision.by_value
1357
+
1358
+ # Get collision info between ray and triangle
1359
+ attach_function :get_ray_collision_triangle, :GetRayCollisionTriangle, [Ray.by_value, Vector3.by_value, Vector3.by_value, Vector3.by_value], RayCollision.by_value
1360
+
1361
+ # Get collision info between ray and quad
1362
+ attach_function :get_ray_collision_quad, :GetRayCollisionQuad, [Ray.by_value, Vector3.by_value, Vector3.by_value, Vector3.by_value, Vector3.by_value], RayCollision.by_value
1363
+
1364
+ # Initialize audio device and context
1365
+ attach_function :init_audio_device, :InitAudioDevice, [], :void
1366
+
1367
+ # Close the audio device and context
1368
+ attach_function :close_audio_device, :CloseAudioDevice, [], :void
1369
+
1370
+ # Check if audio device has been initialized successfully
1371
+ attach_function :is_audio_device_ready, :IsAudioDeviceReady, [], :bool
1372
+
1373
+ # Set master volume (listener)
1374
+ attach_function :set_master_volume, :SetMasterVolume, [:float], :void
1375
+
1376
+ # Load wave data from file
1377
+ attach_function :load_wave, :LoadWave, [:pointer], Wave.by_value
1378
+
1379
+ # Load wave from memory buffer, fileType refers to extension: i.e. '.wav'
1380
+ attach_function :load_wave_from_memory, :LoadWaveFromMemory, [:pointer, :pointer, :int], Wave.by_value
1381
+
1382
+ # Checks if wave data is ready
1383
+ attach_function :is_wave_ready, :IsWaveReady, [Wave.by_value], :bool
1384
+
1385
+ # Load sound from file
1386
+ attach_function :load_sound, :LoadSound, [:pointer], Sound.by_value
1387
+
1388
+ # Load sound from wave data
1389
+ attach_function :load_sound_from_wave, :LoadSoundFromWave, [Wave.by_value], Sound.by_value
1390
+
1391
+ # Checks if a sound is ready
1392
+ attach_function :is_sound_ready, :IsSoundReady, [Sound.by_value], :bool
1393
+
1394
+ # Update sound buffer with new data
1395
+ attach_function :update_sound, :UpdateSound, [Sound.by_value, :pointer, :int], :void
1396
+
1397
+ # Unload wave data
1398
+ attach_function :unload_wave, :UnloadWave, [Wave.by_value], :void
1399
+
1400
+ # Unload sound
1401
+ attach_function :unload_sound, :UnloadSound, [Sound.by_value], :void
1402
+
1403
+ # Export wave data to file, returns true on success
1404
+ attach_function :export_wave, :ExportWave, [Wave.by_value, :pointer], :bool
1405
+
1406
+ # Export wave sample data to code (.h), returns true on success
1407
+ attach_function :export_wave_as_code, :ExportWaveAsCode, [Wave.by_value, :pointer], :bool
1408
+
1409
+ # Play a sound
1410
+ attach_function :play_sound, :PlaySound, [Sound.by_value], :void
1411
+
1412
+ # Stop playing a sound
1413
+ attach_function :stop_sound, :StopSound, [Sound.by_value], :void
1414
+
1415
+ # Pause a sound
1416
+ attach_function :pause_sound, :PauseSound, [Sound.by_value], :void
1417
+
1418
+ # Resume a paused sound
1419
+ attach_function :resume_sound, :ResumeSound, [Sound.by_value], :void
1420
+
1421
+ # Check if a sound is currently playing
1422
+ attach_function :is_sound_playing, :IsSoundPlaying, [Sound.by_value], :bool
1423
+
1424
+ # Set volume for a sound (1.0 is max level)
1425
+ attach_function :set_sound_volume, :SetSoundVolume, [Sound.by_value, :float], :void
1426
+
1427
+ # Set pitch for a sound (1.0 is base level)
1428
+ attach_function :set_sound_pitch, :SetSoundPitch, [Sound.by_value, :float], :void
1429
+
1430
+ # Set pan for a sound (0.5 is center)
1431
+ attach_function :set_sound_pan, :SetSoundPan, [Sound.by_value, :float], :void
1432
+
1433
+ # Copy a wave to a new wave
1434
+ attach_function :wave_copy, :WaveCopy, [Wave.by_value], Wave.by_value
1435
+
1436
+ # Crop a wave to defined samples range
1437
+ attach_function :wave_crop, :WaveCrop, [:pointer, :int, :int], :void
1438
+
1439
+ # Convert wave data to desired format
1440
+ attach_function :wave_format, :WaveFormat, [:pointer, :int, :int, :int], :void
1441
+
1442
+ # Load samples data from wave as a 32bit float data array
1443
+ attach_function :load_wave_samples, :LoadWaveSamples, [Wave.by_value], :pointer
1444
+
1445
+ # Unload samples data loaded with LoadWaveSamples()
1446
+ attach_function :unload_wave_samples, :UnloadWaveSamples, [:pointer], :void
1447
+
1448
+ # Load music stream from file
1449
+ attach_function :load_music_stream, :LoadMusicStream, [:pointer], Music.by_value
1450
+
1451
+ # Load music stream from data
1452
+ attach_function :load_music_stream_from_memory, :LoadMusicStreamFromMemory, [:pointer, :pointer, :int], Music.by_value
1453
+
1454
+ # Checks if a music stream is ready
1455
+ attach_function :is_music_ready, :IsMusicReady, [Music.by_value], :bool
1456
+
1457
+ # Unload music stream
1458
+ attach_function :unload_music_stream, :UnloadMusicStream, [Music.by_value], :void
1459
+
1460
+ # Start music playing
1461
+ attach_function :play_music_stream, :PlayMusicStream, [Music.by_value], :void
1462
+
1463
+ # Check if music is playing
1464
+ attach_function :is_music_stream_playing, :IsMusicStreamPlaying, [Music.by_value], :bool
1465
+
1466
+ # Updates buffers for music streaming
1467
+ attach_function :update_music_stream, :UpdateMusicStream, [Music.by_value], :void
1468
+
1469
+ # Stop music playing
1470
+ attach_function :stop_music_stream, :StopMusicStream, [Music.by_value], :void
1471
+
1472
+ # Pause music playing
1473
+ attach_function :pause_music_stream, :PauseMusicStream, [Music.by_value], :void
1474
+
1475
+ # Resume playing paused music
1476
+ attach_function :resume_music_stream, :ResumeMusicStream, [Music.by_value], :void
1477
+
1478
+ # Seek music to a position (in seconds)
1479
+ attach_function :seek_music_stream, :SeekMusicStream, [Music.by_value, :float], :void
1480
+
1481
+ # Set volume for music (1.0 is max level)
1482
+ attach_function :set_music_volume, :SetMusicVolume, [Music.by_value, :float], :void
1483
+
1484
+ # Set pitch for a music (1.0 is base level)
1485
+ attach_function :set_music_pitch, :SetMusicPitch, [Music.by_value, :float], :void
1486
+
1487
+ # Set pan for a music (0.5 is center)
1488
+ attach_function :set_music_pan, :SetMusicPan, [Music.by_value, :float], :void
1489
+
1490
+ # Get music time length (in seconds)
1491
+ attach_function :get_music_time_length, :GetMusicTimeLength, [Music.by_value], :float
1492
+
1493
+ # Get current music time played (in seconds)
1494
+ attach_function :get_music_time_played, :GetMusicTimePlayed, [Music.by_value], :float
1495
+
1496
+ # Load audio stream (to stream raw audio pcm data)
1497
+ attach_function :load_audio_stream, :LoadAudioStream, [:uint, :uint, :uint], AudioStream.by_value
1498
+
1499
+ # Checks if an audio stream is ready
1500
+ attach_function :is_audio_stream_ready, :IsAudioStreamReady, [AudioStream.by_value], :bool
1501
+
1502
+ # Unload audio stream and free memory
1503
+ attach_function :unload_audio_stream, :UnloadAudioStream, [AudioStream.by_value], :void
1504
+
1505
+ # Update audio stream buffers with data
1506
+ attach_function :update_audio_stream, :UpdateAudioStream, [AudioStream.by_value, :pointer, :int], :void
1507
+
1508
+ # Check if any audio stream buffers requires refill
1509
+ attach_function :is_audio_stream_processed, :IsAudioStreamProcessed, [AudioStream.by_value], :bool
1510
+
1511
+ # Play audio stream
1512
+ attach_function :play_audio_stream, :PlayAudioStream, [AudioStream.by_value], :void
1513
+
1514
+ # Pause audio stream
1515
+ attach_function :pause_audio_stream, :PauseAudioStream, [AudioStream.by_value], :void
1516
+
1517
+ # Resume audio stream
1518
+ attach_function :resume_audio_stream, :ResumeAudioStream, [AudioStream.by_value], :void
1519
+
1520
+ # Check if audio stream is playing
1521
+ attach_function :is_audio_stream_playing, :IsAudioStreamPlaying, [AudioStream.by_value], :bool
1522
+
1523
+ # Stop audio stream
1524
+ attach_function :stop_audio_stream, :StopAudioStream, [AudioStream.by_value], :void
1525
+
1526
+ # Set volume for audio stream (1.0 is max level)
1527
+ attach_function :set_audio_stream_volume, :SetAudioStreamVolume, [AudioStream.by_value, :float], :void
1528
+
1529
+ # Set pitch for audio stream (1.0 is base level)
1530
+ attach_function :set_audio_stream_pitch, :SetAudioStreamPitch, [AudioStream.by_value, :float], :void
1531
+
1532
+ # Set pan for audio stream (0.5 is centered)
1533
+ attach_function :set_audio_stream_pan, :SetAudioStreamPan, [AudioStream.by_value, :float], :void
1534
+
1535
+ # Default size for new audio streams
1536
+ attach_function :set_audio_stream_buffer_size_default, :SetAudioStreamBufferSizeDefault, [:int], :void
1537
+
1538
+ # Audio thread callback to request new data
1539
+ attach_function :set_audio_stream_callback, :SetAudioStreamCallback, [AudioStream.by_value, :AudioCallback], :void
1540
+
1541
+ # Attach audio stream processor to stream
1542
+ attach_function :attach_audio_stream_processor, :AttachAudioStreamProcessor, [AudioStream.by_value, :AudioCallback], :void
1543
+
1544
+ # Detach audio stream processor from stream
1545
+ attach_function :detach_audio_stream_processor, :DetachAudioStreamProcessor, [AudioStream.by_value, :AudioCallback], :void
1546
+
1547
+ # Attach audio stream processor to the entire audio pipeline
1548
+ attach_function :attach_audio_mixed_processor, :AttachAudioMixedProcessor, [:AudioCallback], :void
1549
+
1550
+ # Detach audio stream processor from the entire audio pipeline
1551
+ attach_function :detach_audio_mixed_processor, :DetachAudioMixedProcessor, [:AudioCallback], :void
1552
+ end