raylib 5.0.0.4__cp310-cp310-macosx_14_0_arm64.whl → 5.5.0.0.dev3__cp310-cp310-macosx_14_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of raylib might be problematic. Click here for more details.

pyray/__init__.pyi CHANGED
@@ -1,14 +1,12 @@
1
1
  from typing import Any
2
2
 
3
3
 
4
- def pointer(struct):
5
- ...
6
4
 
7
5
  def attach_audio_mixed_processor(processor: Any,) -> None:
8
- """Attach audio stream processor to the entire audio pipeline, receives the samples as <float>s"""
6
+ """Attach audio stream processor to the entire audio pipeline, receives the samples as 'float'"""
9
7
  ...
10
8
  def attach_audio_stream_processor(stream: AudioStream,processor: Any,) -> None:
11
- """Attach audio stream processor to stream, receives the samples as <float>s"""
9
+ """Attach audio stream processor to stream, receives the samples as 'float'"""
12
10
  ...
13
11
  def begin_blend_mode(mode: int,) -> None:
14
12
  """Begin blending mode (alpha, additive, multiplied, subtract, custom)"""
@@ -43,6 +41,9 @@ def check_collision_box_sphere(box: BoundingBox,center: Vector3,radius: float,)
43
41
  def check_collision_boxes(box1: BoundingBox,box2: BoundingBox,) -> bool:
44
42
  """Check collision between two bounding boxes"""
45
43
  ...
44
+ def check_collision_circle_line(center: Vector2,radius: float,p1: Vector2,p2: Vector2,) -> bool:
45
+ """Check if circle collides with a line created betweeen two points [p1] and [p2]"""
46
+ ...
46
47
  def check_collision_circle_rec(center: Vector2,radius: float,rec: Rectangle,) -> bool:
47
48
  """Check collision between circle and rectangle"""
48
49
  ...
@@ -112,6 +113,12 @@ def color_from_hsv(hue: float,saturation: float,value: float,) -> Color:
112
113
  def color_from_normalized(normalized: Vector4,) -> Color:
113
114
  """Get Color from normalized values [0..1]"""
114
115
  ...
116
+ def color_is_equal(col1: Color,col2: Color,) -> bool:
117
+ """Check if two colors are equal"""
118
+ ...
119
+ def color_lerp(color1: Color,color2: Color,factor: float,) -> Color:
120
+ """Get color lerp interpolation between two colors, factor [0.0f..1.0f]"""
121
+ ...
115
122
  def color_normalize(color: Color,) -> Vector4:
116
123
  """Get Color normalized as float [0..1]"""
117
124
  ...
@@ -122,11 +129,17 @@ def color_to_hsv(color: Color,) -> Vector3:
122
129
  """Get HSV values for a Color, hue [0..360], saturation/value [0..1]"""
123
130
  ...
124
131
  def color_to_int(color: Color,) -> int:
125
- """Get hexadecimal value for a Color"""
132
+ """Get hexadecimal value for a Color (0xRRGGBBAA)"""
126
133
  ...
127
134
  def compress_data(data: str,dataSize: int,compDataSize: Any,) -> str:
128
135
  """Compress data (DEFLATE algorithm), memory must be MemFree()"""
129
136
  ...
137
+ def compute_crc32(data: str,dataSize: int,) -> int:
138
+ """Compute CRC32 hash code"""
139
+ ...
140
+ def compute_md5(data: str,dataSize: int,) -> Any:
141
+ """Compute MD5 hash code, returns static int[4] (16 bytes)"""
142
+ ...
130
143
  def create_physics_body_circle(pos: Vector2,radius: float,density: float,) -> Any:
131
144
  """Creates a new circle physics body with generic parameters"""
132
145
  ...
@@ -160,7 +173,7 @@ def disable_cursor() -> None:
160
173
  def disable_event_waiting() -> None:
161
174
  """Disable waiting for events on EndDrawing(), automatic events polling"""
162
175
  ...
163
- def draw_billboard(camera: Camera3D,texture: Texture,position: Vector3,size: float,tint: Color,) -> None:
176
+ def draw_billboard(camera: Camera3D,texture: Texture,position: Vector3,scale: float,tint: Color,) -> None:
164
177
  """Draw a billboard texture"""
165
178
  ...
166
179
  def draw_billboard_pro(camera: Camera3D,texture: Texture,source: Rectangle,position: Vector3,up: Vector3,size: Vector2,origin: Vector2,rotation: float,tint: Color,) -> None:
@@ -184,7 +197,7 @@ def draw_circle(centerX: int,centerY: int,radius: float,color: Color,) -> None:
184
197
  def draw_circle_3d(center: Vector3,radius: float,rotationAxis: Vector3,rotationAngle: float,color: Color,) -> None:
185
198
  """Draw a circle in 3D world space"""
186
199
  ...
187
- def draw_circle_gradient(centerX: int,centerY: int,radius: float,color1: Color,color2: Color,) -> None:
200
+ def draw_circle_gradient(centerX: int,centerY: int,radius: float,inner: Color,outer: Color,) -> None:
188
201
  """Draw a gradient-filled circle"""
189
202
  ...
190
203
  def draw_circle_lines(centerX: int,centerY: int,radius: float,color: Color,) -> None:
@@ -268,6 +281,12 @@ def draw_model(model: Model,position: Vector3,scale: float,tint: Color,) -> None
268
281
  def draw_model_ex(model: Model,position: Vector3,rotationAxis: Vector3,rotationAngle: float,scale: Vector3,tint: Color,) -> None:
269
282
  """Draw a model with extended parameters"""
270
283
  ...
284
+ def draw_model_points(model: Model,position: Vector3,scale: float,tint: Color,) -> None:
285
+ """Draw a model as points"""
286
+ ...
287
+ def draw_model_points_ex(model: Model,position: Vector3,rotationAxis: Vector3,rotationAngle: float,scale: Vector3,tint: Color,) -> None:
288
+ """Draw a model as points with extended parameters"""
289
+ ...
271
290
  def draw_model_wires(model: Model,position: Vector3,scale: float,tint: Color,) -> None:
272
291
  """Draw a model wires (with texture if set)"""
273
292
  ...
@@ -275,10 +294,10 @@ def draw_model_wires_ex(model: Model,position: Vector3,rotationAxis: Vector3,rot
275
294
  """Draw a model wires (with texture if set) with extended parameters"""
276
295
  ...
277
296
  def draw_pixel(posX: int,posY: int,color: Color,) -> None:
278
- """Draw a pixel"""
297
+ """Draw a pixel using geometry [Can be slow, use with care]"""
279
298
  ...
280
299
  def draw_pixel_v(position: Vector2,color: Color,) -> None:
281
- """Draw a pixel (Vector version)"""
300
+ """Draw a pixel using geometry (Vector version) [Can be slow, use with care]"""
282
301
  ...
283
302
  def draw_plane(centerPos: Vector3,size: Vector2,color: Color,) -> None:
284
303
  """Draw a plane XZ"""
@@ -301,13 +320,13 @@ def draw_ray(ray: Ray,color: Color,) -> None:
301
320
  def draw_rectangle(posX: int,posY: int,width: int,height: int,color: Color,) -> None:
302
321
  """Draw a color-filled rectangle"""
303
322
  ...
304
- def draw_rectangle_gradient_ex(rec: Rectangle,col1: Color,col2: Color,col3: Color,col4: Color,) -> None:
323
+ def draw_rectangle_gradient_ex(rec: Rectangle,topLeft: Color,bottomLeft: Color,topRight: Color,bottomRight: Color,) -> None:
305
324
  """Draw a gradient-filled rectangle with custom vertex colors"""
306
325
  ...
307
- def draw_rectangle_gradient_h(posX: int,posY: int,width: int,height: int,color1: Color,color2: Color,) -> None:
326
+ def draw_rectangle_gradient_h(posX: int,posY: int,width: int,height: int,left: Color,right: Color,) -> None:
308
327
  """Draw a horizontal-gradient-filled rectangle"""
309
328
  ...
310
- def draw_rectangle_gradient_v(posX: int,posY: int,width: int,height: int,color1: Color,color2: Color,) -> None:
329
+ def draw_rectangle_gradient_v(posX: int,posY: int,width: int,height: int,top: Color,bottom: Color,) -> None:
311
330
  """Draw a vertical-gradient-filled rectangle"""
312
331
  ...
313
332
  def draw_rectangle_lines(posX: int,posY: int,width: int,height: int,color: Color,) -> None:
@@ -325,7 +344,10 @@ def draw_rectangle_rec(rec: Rectangle,color: Color,) -> None:
325
344
  def draw_rectangle_rounded(rec: Rectangle,roundness: float,segments: int,color: Color,) -> None:
326
345
  """Draw rectangle with rounded edges"""
327
346
  ...
328
- def draw_rectangle_rounded_lines(rec: Rectangle,roundness: float,segments: int,lineThick: float,color: Color,) -> None:
347
+ def draw_rectangle_rounded_lines(rec: Rectangle,roundness: float,segments: int,color: Color,) -> None:
348
+ """Draw rectangle lines with rounded edges"""
349
+ ...
350
+ def draw_rectangle_rounded_lines_ex(rec: Rectangle,roundness: float,segments: int,lineThick: float,color: Color,) -> None:
329
351
  """Draw rectangle with rounded edges outline"""
330
352
  ...
331
353
  def draw_rectangle_v(position: Vector2,size: Vector2,color: Color,) -> None:
@@ -481,6 +503,9 @@ def export_image_to_memory(image: Image,fileType: str,fileSize: Any,) -> str:
481
503
  def export_mesh(mesh: Mesh,fileName: str,) -> bool:
482
504
  """Export mesh data to file, returns true on success"""
483
505
  ...
506
+ def export_mesh_as_code(mesh: Mesh,fileName: str,) -> bool:
507
+ """Export mesh as code file (.h) defining multiple arrays of vertex attributes"""
508
+ ...
484
509
  def export_wave(wave: Wave,fileName: str,) -> bool:
485
510
  """Export wave data to file, returns true on success"""
486
511
  ...
@@ -715,9 +740,6 @@ def get_mouse_delta() -> Vector2:
715
740
  def get_mouse_position() -> Vector2:
716
741
  """Get mouse position XY"""
717
742
  ...
718
- def get_mouse_ray(mousePosition: Vector2,camera: Camera3D,) -> Ray:
719
- """Get a ray trace from mouse position"""
720
- ...
721
743
  def get_mouse_wheel_move() -> float:
722
744
  """Get mouse wheel movement for X or Y, whichever is larger"""
723
745
  ...
@@ -790,6 +812,12 @@ def get_screen_height() -> int:
790
812
  def get_screen_to_world_2d(position: Vector2,camera: Camera2D,) -> Vector2:
791
813
  """Get the world space position for a 2d camera screen space position"""
792
814
  ...
815
+ def get_screen_to_world_ray(position: Vector2,camera: Camera3D,) -> Ray:
816
+ """Get a ray trace from screen position (i.e mouse)"""
817
+ ...
818
+ def get_screen_to_world_ray_ex(position: Vector2,camera: Camera3D,width: int,height: int,) -> Ray:
819
+ """Get a ray trace from screen position (i.e mouse) in a viewport"""
820
+ ...
793
821
  def get_screen_width() -> int:
794
822
  """Get current screen width"""
795
823
  ...
@@ -799,6 +827,12 @@ def get_shader_location(shader: Shader,uniformName: str,) -> int:
799
827
  def get_shader_location_attrib(shader: Shader,attribName: str,) -> int:
800
828
  """Get shader attribute location"""
801
829
  ...
830
+ def get_shapes_texture() -> Texture:
831
+ """Get texture that is used for shapes drawing"""
832
+ ...
833
+ def get_shapes_texture_rectangle() -> Rectangle:
834
+ """Get texture source rectangle that is used for shapes drawing"""
835
+ ...
802
836
  def get_spline_point_basis(p1: Vector2,p2: Vector2,p3: Vector2,p4: Vector2,t: float,) -> Vector2:
803
837
  """Get (evaluate) spline point: B-Spline"""
804
838
  ...
@@ -869,7 +903,7 @@ def gui_color_panel(bounds: Rectangle,text: str,color: Any,) -> int:
869
903
  """Color Panel control"""
870
904
  ...
871
905
  def gui_color_panel_hsv(bounds: Rectangle,text: str,colorHsv: Any,) -> int:
872
- """Color Panel control that returns HSV color value, used by GuiColorPickerHSV()"""
906
+ """Color Panel control that updates Hue-Saturation-Value color value, used by GuiColorPickerHSV()"""
873
907
  ...
874
908
  def gui_color_picker(bounds: Rectangle,text: str,color: Any,) -> int:
875
909
  """Color Picker control (multiple color controls)"""
@@ -878,7 +912,7 @@ def gui_color_picker_hsv(bounds: Rectangle,text: str,colorHsv: Any,) -> int:
878
912
  """Color Picker control that avoids conversion to RGB on each call (multiple color controls)"""
879
913
  ...
880
914
  def gui_combo_box(bounds: Rectangle,text: str,active: Any,) -> int:
881
- """Combo Box control, returns selected item index"""
915
+ """Combo Box control"""
882
916
  ...
883
917
  def gui_disable() -> None:
884
918
  """Disable gui controls (global state)"""
@@ -890,7 +924,7 @@ def gui_draw_icon(iconId: int,posX: int,posY: int,pixelSize: int,color: Color,)
890
924
  """Draw icon using pixel size at specified position"""
891
925
  ...
892
926
  def gui_dropdown_box(bounds: Rectangle,text: str,active: Any,editMode: bool,) -> int:
893
- """Dropdown Box control, returns selected item"""
927
+ """Dropdown Box control"""
894
928
  ...
895
929
  def gui_dummy_rec(bounds: Rectangle,text: str,) -> int:
896
930
  """Dummy control for placeholders"""
@@ -914,7 +948,7 @@ def gui_get_style(control: int,property: int,) -> int:
914
948
  """Get one style property"""
915
949
  ...
916
950
  def gui_grid(bounds: Rectangle,text: str,spacing: float,subdivs: int,mouseCell: Any,) -> int:
917
- """Grid control, returns mouse cell position"""
951
+ """Grid control"""
918
952
  ...
919
953
  def gui_group_box(bounds: Rectangle,text: str,) -> int:
920
954
  """Group Box control with text name"""
@@ -926,16 +960,16 @@ def gui_is_locked() -> bool:
926
960
  """Check if gui is locked (global state)"""
927
961
  ...
928
962
  def gui_label(bounds: Rectangle,text: str,) -> int:
929
- """Label control, shows text"""
963
+ """Label control"""
930
964
  ...
931
965
  def gui_label_button(bounds: Rectangle,text: str,) -> int:
932
- """Label button control, show true when clicked"""
966
+ """Label button control, returns true when clicked"""
933
967
  ...
934
968
  def gui_line(bounds: Rectangle,text: str,) -> int:
935
969
  """Line separator control, could contain text"""
936
970
  ...
937
971
  def gui_list_view(bounds: Rectangle,text: str,scrollIndex: Any,active: Any,) -> int:
938
- """List View control, returns selected list item index"""
972
+ """List View control"""
939
973
  ...
940
974
  def gui_list_view_ex(bounds: Rectangle,text: list[str],count: int,scrollIndex: Any,active: Any,focus: Any,) -> int:
941
975
  """List View with extended parameters"""
@@ -959,7 +993,7 @@ def gui_panel(bounds: Rectangle,text: str,) -> int:
959
993
  """Panel control, useful to group controls"""
960
994
  ...
961
995
  def gui_progress_bar(bounds: Rectangle,textLeft: str,textRight: str,value: Any,minValue: float,maxValue: float,) -> int:
962
- """Progress Bar control, shows current progress value"""
996
+ """Progress Bar control"""
963
997
  ...
964
998
  def gui_scroll_panel(bounds: Rectangle,text: str,content: Rectangle,scroll: Any,view: Any,) -> int:
965
999
  """Scroll Panel control"""
@@ -983,13 +1017,13 @@ def gui_set_tooltip(tooltip: str,) -> None:
983
1017
  """Set tooltip string"""
984
1018
  ...
985
1019
  def gui_slider(bounds: Rectangle,textLeft: str,textRight: str,value: Any,minValue: float,maxValue: float,) -> int:
986
- """Slider control, returns selected value"""
1020
+ """Slider control"""
987
1021
  ...
988
1022
  def gui_slider_bar(bounds: Rectangle,textLeft: str,textRight: str,value: Any,minValue: float,maxValue: float,) -> int:
989
- """Slider Bar control, returns selected value"""
1023
+ """Slider Bar control"""
990
1024
  ...
991
1025
  def gui_spinner(bounds: Rectangle,text: str,value: Any,minValue: int,maxValue: int,editMode: bool,) -> int:
992
- """Spinner control, returns selected value"""
1026
+ """Spinner control"""
993
1027
  ...
994
1028
  def gui_status_bar(bounds: Rectangle,text: str,) -> int:
995
1029
  """Status Bar control, shows info text"""
@@ -1004,13 +1038,13 @@ def gui_text_input_box(bounds: Rectangle,title: str,message: str,buttons: str,te
1004
1038
  """Text Input Box control, ask for text, supports secret"""
1005
1039
  ...
1006
1040
  def gui_toggle(bounds: Rectangle,text: str,active: Any,) -> int:
1007
- """Toggle Button control, returns true when active"""
1041
+ """Toggle Button control"""
1008
1042
  ...
1009
1043
  def gui_toggle_group(bounds: Rectangle,text: str,active: Any,) -> int:
1010
- """Toggle Group control, returns active toggle index"""
1044
+ """Toggle Group control"""
1011
1045
  ...
1012
1046
  def gui_toggle_slider(bounds: Rectangle,text: str,active: Any,) -> int:
1013
- """Toggle Slider control, returns true when clicked"""
1047
+ """Toggle Slider control"""
1014
1048
  ...
1015
1049
  def gui_unlock() -> None:
1016
1050
  """Unlock gui controls (global state)"""
@@ -1018,6 +1052,9 @@ def gui_unlock() -> None:
1018
1052
  def gui_value_box(bounds: Rectangle,text: str,value: Any,minValue: int,maxValue: int,editMode: bool,) -> int:
1019
1053
  """Value Box control, updates input text with numbers"""
1020
1054
  ...
1055
+ def gui_value_box_float(bounds: Rectangle,text: str,textValue: str,value: Any,editMode: bool,) -> int:
1056
+ """Value box control for float values"""
1057
+ ...
1021
1058
  def gui_window_box(bounds: Rectangle,title: str,) -> int:
1022
1059
  """Window Box control, shows a window that can be closed"""
1023
1060
  ...
@@ -1087,6 +1124,9 @@ def image_draw_circle_v(dst: Any,center: Vector2,radius: int,color: Color,) -> N
1087
1124
  def image_draw_line(dst: Any,startPosX: int,startPosY: int,endPosX: int,endPosY: int,color: Color,) -> None:
1088
1125
  """Draw line within an image"""
1089
1126
  ...
1127
+ def image_draw_line_ex(dst: Any,start: Vector2,end: Vector2,thick: int,color: Color,) -> None:
1128
+ """Draw a line defining thickness within an image"""
1129
+ ...
1090
1130
  def image_draw_line_v(dst: Any,start: Vector2,end: Vector2,color: Color,) -> None:
1091
1131
  """Draw line within an image (Vector version)"""
1092
1132
  ...
@@ -1114,6 +1154,21 @@ def image_draw_text(dst: Any,text: str,posX: int,posY: int,fontSize: int,color:
1114
1154
  def image_draw_text_ex(dst: Any,font: Font,text: str,position: Vector2,fontSize: float,spacing: float,tint: Color,) -> None:
1115
1155
  """Draw text (custom sprite font) within an image (destination)"""
1116
1156
  ...
1157
+ def image_draw_triangle(dst: Any,v1: Vector2,v2: Vector2,v3: Vector2,color: Color,) -> None:
1158
+ """Draw triangle within an image"""
1159
+ ...
1160
+ def image_draw_triangle_ex(dst: Any,v1: Vector2,v2: Vector2,v3: Vector2,c1: Color,c2: Color,c3: Color,) -> None:
1161
+ """Draw triangle with interpolated colors within an image"""
1162
+ ...
1163
+ def image_draw_triangle_fan(dst: Any,points: Any,pointCount: int,color: Color,) -> None:
1164
+ """Draw a triangle fan defined by points within an image (first vertex is the center)"""
1165
+ ...
1166
+ def image_draw_triangle_lines(dst: Any,v1: Vector2,v2: Vector2,v3: Vector2,color: Color,) -> None:
1167
+ """Draw triangle outline within an image"""
1168
+ ...
1169
+ def image_draw_triangle_strip(dst: Any,points: Any,pointCount: int,color: Color,) -> None:
1170
+ """Draw a triangle strip defined by points within an image"""
1171
+ ...
1117
1172
  def image_flip_horizontal(image: Any,) -> None:
1118
1173
  """Flip image horizontally"""
1119
1174
  ...
@@ -1123,9 +1178,15 @@ def image_flip_vertical(image: Any,) -> None:
1123
1178
  def image_format(image: Any,newFormat: int,) -> None:
1124
1179
  """Convert image data to desired format"""
1125
1180
  ...
1181
+ def image_from_channel(image: Image,selectedChannel: int,) -> Image:
1182
+ """Create an image from a selected channel of another image (GRAYSCALE)"""
1183
+ ...
1126
1184
  def image_from_image(image: Image,rec: Rectangle,) -> Image:
1127
1185
  """Create an image from another image piece"""
1128
1186
  ...
1187
+ def image_kernel_convolution(image: Any,kernel: Any,kernelSize: int,) -> None:
1188
+ """Apply custom square convolution kernel to image"""
1189
+ ...
1129
1190
  def image_mipmaps(image: Any,) -> None:
1130
1191
  """Compute all mipmap levels for a provided image"""
1131
1192
  ...
@@ -1174,8 +1235,8 @@ def is_audio_stream_playing(stream: AudioStream,) -> bool:
1174
1235
  def is_audio_stream_processed(stream: AudioStream,) -> bool:
1175
1236
  """Check if any audio stream buffers requires refill"""
1176
1237
  ...
1177
- def is_audio_stream_ready(stream: AudioStream,) -> bool:
1178
- """Checks if an audio stream is ready"""
1238
+ def is_audio_stream_valid(stream: AudioStream,) -> bool:
1239
+ """Checks if an audio stream is valid (buffers initialized)"""
1179
1240
  ...
1180
1241
  def is_cursor_hidden() -> bool:
1181
1242
  """Check if cursor is not visible"""
@@ -1189,8 +1250,11 @@ def is_file_dropped() -> bool:
1189
1250
  def is_file_extension(fileName: str,ext: str,) -> bool:
1190
1251
  """Check file extension (including point: .png, .wav)"""
1191
1252
  ...
1192
- def is_font_ready(font: Font,) -> bool:
1193
- """Check if a font is ready"""
1253
+ def is_file_name_valid(fileName: str,) -> bool:
1254
+ """Check if fileName is valid for the platform/OS"""
1255
+ ...
1256
+ def is_font_valid(font: Font,) -> bool:
1257
+ """Check if a font is valid (font data loaded, WARNING: GPU texture not checked)"""
1194
1258
  ...
1195
1259
  def is_gamepad_available(gamepad: int,) -> bool:
1196
1260
  """Check if a gamepad is available"""
@@ -1210,8 +1274,8 @@ def is_gamepad_button_up(gamepad: int,button: int,) -> bool:
1210
1274
  def is_gesture_detected(gesture: int,) -> bool:
1211
1275
  """Check if a gesture have been detected"""
1212
1276
  ...
1213
- def is_image_ready(image: Image,) -> bool:
1214
- """Check if an image is ready"""
1277
+ def is_image_valid(image: Image,) -> bool:
1278
+ """Check if an image is valid (data and parameters)"""
1215
1279
  ...
1216
1280
  def is_key_down(key: int,) -> bool:
1217
1281
  """Check if a key is being pressed"""
@@ -1228,14 +1292,14 @@ def is_key_released(key: int,) -> bool:
1228
1292
  def is_key_up(key: int,) -> bool:
1229
1293
  """Check if a key is NOT being pressed"""
1230
1294
  ...
1231
- def is_material_ready(material: Material,) -> bool:
1232
- """Check if a material is ready"""
1295
+ def is_material_valid(material: Material,) -> bool:
1296
+ """Check if a material is valid (shader assigned, map textures loaded in GPU)"""
1233
1297
  ...
1234
1298
  def is_model_animation_valid(model: Model,anim: ModelAnimation,) -> bool:
1235
1299
  """Check model animation skeleton match"""
1236
1300
  ...
1237
- def is_model_ready(model: Model,) -> bool:
1238
- """Check if a model is ready"""
1301
+ def is_model_valid(model: Model,) -> bool:
1302
+ """Check if a model is valid (loaded in GPU, VAO/VBOs)"""
1239
1303
  ...
1240
1304
  def is_mouse_button_down(button: int,) -> bool:
1241
1305
  """Check if a mouse button is being pressed"""
@@ -1249,32 +1313,32 @@ def is_mouse_button_released(button: int,) -> bool:
1249
1313
  def is_mouse_button_up(button: int,) -> bool:
1250
1314
  """Check if a mouse button is NOT being pressed"""
1251
1315
  ...
1252
- def is_music_ready(music: Music,) -> bool:
1253
- """Checks if a music stream is ready"""
1254
- ...
1255
1316
  def is_music_stream_playing(music: Music,) -> bool:
1256
1317
  """Check if music is playing"""
1257
1318
  ...
1319
+ def is_music_valid(music: Music,) -> bool:
1320
+ """Checks if a music stream is valid (context and buffers initialized)"""
1321
+ ...
1258
1322
  def is_path_file(path: str,) -> bool:
1259
1323
  """Check if a given path is a file or a directory"""
1260
1324
  ...
1261
- def is_render_texture_ready(target: RenderTexture,) -> bool:
1262
- """Check if a render texture is ready"""
1325
+ def is_render_texture_valid(target: RenderTexture,) -> bool:
1326
+ """Check if a render texture is valid (loaded in GPU)"""
1263
1327
  ...
1264
- def is_shader_ready(shader: Shader,) -> bool:
1265
- """Check if a shader is ready"""
1328
+ def is_shader_valid(shader: Shader,) -> bool:
1329
+ """Check if a shader is valid (loaded on GPU)"""
1266
1330
  ...
1267
1331
  def is_sound_playing(sound: Sound,) -> bool:
1268
1332
  """Check if a sound is currently playing"""
1269
1333
  ...
1270
- def is_sound_ready(sound: Sound,) -> bool:
1271
- """Checks if a sound is ready"""
1334
+ def is_sound_valid(sound: Sound,) -> bool:
1335
+ """Checks if a sound is valid (data loaded and buffers initialized)"""
1272
1336
  ...
1273
- def is_texture_ready(texture: Texture,) -> bool:
1274
- """Check if a texture is ready"""
1337
+ def is_texture_valid(texture: Texture,) -> bool:
1338
+ """Check if a texture is valid (loaded in GPU)"""
1275
1339
  ...
1276
- def is_wave_ready(wave: Wave,) -> bool:
1277
- """Checks if wave data is ready"""
1340
+ def is_wave_valid(wave: Wave,) -> bool:
1341
+ """Checks if wave data is valid (data loaded and parameters)"""
1278
1342
  ...
1279
1343
  def is_window_focused() -> bool:
1280
1344
  """Check if window is currently focused (only PLATFORM_DESKTOP)"""
@@ -1316,7 +1380,7 @@ def load_directory_files(dirPath: str,) -> FilePathList:
1316
1380
  """Load directory filepaths"""
1317
1381
  ...
1318
1382
  def load_directory_files_ex(basePath: str,filter: str,scanSubdirs: bool,) -> FilePathList:
1319
- """Load directory filepaths with extension filtering and recursive directory scan"""
1383
+ """Load directory filepaths with extension filtering and recursive directory scan. Use 'DIR' in the filter string to include directories in the result"""
1320
1384
  ...
1321
1385
  def load_dropped_files() -> FilePathList:
1322
1386
  """Load dropped filepaths"""
@@ -1334,7 +1398,7 @@ def load_font_data(fileData: str,dataSize: int,fontSize: int,codepoints: Any,cod
1334
1398
  """Load font data for further use"""
1335
1399
  ...
1336
1400
  def load_font_ex(fileName: str,fontSize: int,codepoints: Any,codepointCount: int,) -> Font:
1337
- """Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont"""
1401
+ """Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height"""
1338
1402
  ...
1339
1403
  def load_font_from_image(image: Image,key: Color,firstChar: int,) -> Font:
1340
1404
  """Load font from Image (XNA style)"""
@@ -1348,6 +1412,9 @@ def load_image(fileName: str,) -> Image:
1348
1412
  def load_image_anim(fileName: str,frames: Any,) -> Image:
1349
1413
  """Load image sequence from file (frames appended to image.data)"""
1350
1414
  ...
1415
+ def load_image_anim_from_memory(fileType: str,fileData: str,dataSize: int,frames: Any,) -> Image:
1416
+ """Load image sequence from memory buffer"""
1417
+ ...
1351
1418
  def load_image_colors(image: Image,) -> Any:
1352
1419
  """Load color data from image as a Color array (RGBA - 32bit)"""
1353
1420
  ...
@@ -1366,9 +1433,6 @@ def load_image_palette(image: Image,maxPaletteSize: int,colorCount: Any,) -> Any
1366
1433
  def load_image_raw(fileName: str,width: int,height: int,format: int,headerSize: int,) -> Image:
1367
1434
  """Load image from RAW file data"""
1368
1435
  ...
1369
- def load_image_svg(fileNameOrString: str,width: int,height: int,) -> Image:
1370
- """Load image from SVG file data or string with specified size"""
1371
- ...
1372
1436
  def load_material_default() -> Material:
1373
1437
  """Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps)"""
1374
1438
  ...
@@ -1435,13 +1499,19 @@ def load_wave_from_memory(fileType: str,fileData: str,dataSize: int,) -> Wave:
1435
1499
  def load_wave_samples(wave: Wave,) -> Any:
1436
1500
  """Load samples data from wave as a 32bit float data array"""
1437
1501
  ...
1502
+ def make_directory(dirPath: str,) -> int:
1503
+ """Create directories (including full path requested), returns 0 on success"""
1504
+ ...
1438
1505
  def matrix_add(left: Matrix,right: Matrix,) -> Matrix:
1439
1506
  """"""
1440
1507
  ...
1508
+ def matrix_decompose(mat: Matrix,translation: Any,rotation: Any,scale: Any,) -> None:
1509
+ """"""
1510
+ ...
1441
1511
  def matrix_determinant(mat: Matrix,) -> float:
1442
1512
  """"""
1443
1513
  ...
1444
- def matrix_frustum(left: float,right: float,bottom: float,top: float,near: float,far: float,) -> Matrix:
1514
+ def matrix_frustum(left: float,right: float,bottom: float,top: float,nearPlane: float,farPlane: float,) -> Matrix:
1445
1515
  """"""
1446
1516
  ...
1447
1517
  def matrix_identity() -> Matrix:
@@ -1564,6 +1634,9 @@ def quaternion_add(q1: Vector4,q2: Vector4,) -> Vector4:
1564
1634
  def quaternion_add_value(q: Vector4,add: float,) -> Vector4:
1565
1635
  """"""
1566
1636
  ...
1637
+ def quaternion_cubic_hermite_spline(q1: Vector4,outTangent1: Vector4,q2: Vector4,inTangent2: Vector4,t: float,) -> Vector4:
1638
+ """"""
1639
+ ...
1567
1640
  def quaternion_divide(q1: Vector4,q2: Vector4,) -> Vector4:
1568
1641
  """"""
1569
1642
  ...
@@ -1687,6 +1760,9 @@ def set_exit_key(key: int,) -> None:
1687
1760
  def set_gamepad_mappings(mappings: str,) -> int:
1688
1761
  """Set internal gamepad mappings (SDL_GameControllerDB)"""
1689
1762
  ...
1763
+ def set_gamepad_vibration(gamepad: int,leftMotor: float,rightMotor: float,) -> None:
1764
+ """Set gamepad vibration for both motors"""
1765
+ ...
1690
1766
  def set_gestures_enabled(flags: int,) -> None:
1691
1767
  """Enable a set of gestures using flags"""
1692
1768
  ...
@@ -1879,6 +1955,12 @@ def text_split(text: str,delimiter: str,count: Any,) -> list[str]:
1879
1955
  def text_subtext(text: str,position: int,length: int,) -> str:
1880
1956
  """Get a piece of a text string"""
1881
1957
  ...
1958
+ def text_to_camel(text: str,) -> str:
1959
+ """Get Camel case notation version of provided string"""
1960
+ ...
1961
+ def text_to_float(text: str,) -> float:
1962
+ """Get float value from text (negative values not supported)"""
1963
+ ...
1882
1964
  def text_to_integer(text: str,) -> int:
1883
1965
  """Get integer value from text (negative values not supported)"""
1884
1966
  ...
@@ -1888,14 +1970,17 @@ def text_to_lower(text: str,) -> str:
1888
1970
  def text_to_pascal(text: str,) -> str:
1889
1971
  """Get Pascal case notation version of provided string"""
1890
1972
  ...
1973
+ def text_to_snake(text: str,) -> str:
1974
+ """Get Snake case notation version of provided string"""
1975
+ ...
1891
1976
  def text_to_upper(text: str,) -> str:
1892
1977
  """Get upper case version of provided string"""
1893
1978
  ...
1894
1979
  def toggle_borderless_windowed() -> None:
1895
- """Toggle window state: borderless windowed (only PLATFORM_DESKTOP)"""
1980
+ """Toggle window state: borderless windowed [resizes window to match monitor resolution] (only PLATFORM_DESKTOP)"""
1896
1981
  ...
1897
1982
  def toggle_fullscreen() -> None:
1898
- """Toggle window state: fullscreen/windowed (only PLATFORM_DESKTOP)"""
1983
+ """Toggle window state: fullscreen/windowed [resizes monitor to match window resolution] (only PLATFORM_DESKTOP)"""
1899
1984
  ...
1900
1985
  def trace_log(*args) -> None:
1901
1986
  """VARARG FUNCTION - MAY NOT BE SUPPORTED BY CFFI"""
@@ -1903,7 +1988,7 @@ def trace_log(*args) -> None:
1903
1988
  def unload_audio_stream(stream: AudioStream,) -> None:
1904
1989
  """Unload audio stream and free memory"""
1905
1990
  ...
1906
- def unload_automation_event_list(list_0: Any,) -> None:
1991
+ def unload_automation_event_list(list_0: AutomationEventList,) -> None:
1907
1992
  """Unload automation events list from file"""
1908
1993
  ...
1909
1994
  def unload_codepoints(codepoints: Any,) -> None:
@@ -1999,6 +2084,9 @@ def update_mesh_buffer(mesh: Mesh,index: int,data: Any,dataSize: int,offset: int
1999
2084
  def update_model_animation(model: Model,anim: ModelAnimation,frame: int,) -> None:
2000
2085
  """Update model animation pose"""
2001
2086
  ...
2087
+ def update_model_animation_bone_matrices(model: Model,anim: ModelAnimation,frame: int,) -> None:
2088
+ """Update model animation mesh bone matrices (Note GPU skinning does not work on Mac)"""
2089
+ ...
2002
2090
  def update_music_stream(music: Music,) -> None:
2003
2091
  """Updates buffers for music streaming"""
2004
2092
  ...
@@ -2062,6 +2150,12 @@ def vector2_lerp(v1: Vector2,v2: Vector2,amount: float,) -> Vector2:
2062
2150
  def vector2_line_angle(start: Vector2,end: Vector2,) -> float:
2063
2151
  """"""
2064
2152
  ...
2153
+ def vector2_max(v1: Vector2,v2: Vector2,) -> Vector2:
2154
+ """"""
2155
+ ...
2156
+ def vector2_min(v1: Vector2,v2: Vector2,) -> Vector2:
2157
+ """"""
2158
+ ...
2065
2159
  def vector2_move_towards(v: Vector2,target: Vector2,maxDistance: float,) -> Vector2:
2066
2160
  """"""
2067
2161
  ...
@@ -2080,6 +2174,9 @@ def vector2_one() -> Vector2:
2080
2174
  def vector2_reflect(v: Vector2,normal: Vector2,) -> Vector2:
2081
2175
  """"""
2082
2176
  ...
2177
+ def vector2_refract(v: Vector2,n: Vector2,r: float,) -> Vector2:
2178
+ """"""
2179
+ ...
2083
2180
  def vector2_rotate(v: Vector2,angle: float,) -> Vector2:
2084
2181
  """"""
2085
2182
  ...
@@ -2119,6 +2216,9 @@ def vector3_clamp_value(v: Vector3,min_1: float,max_2: float,) -> Vector3:
2119
2216
  def vector3_cross_product(v1: Vector3,v2: Vector3,) -> Vector3:
2120
2217
  """"""
2121
2218
  ...
2219
+ def vector3_cubic_hermite(v1: Vector3,tangent1: Vector3,v2: Vector3,tangent2: Vector3,amount: float,) -> Vector3:
2220
+ """"""
2221
+ ...
2122
2222
  def vector_3distance(v1: Vector3,v2: Vector3,) -> float:
2123
2223
  """"""
2124
2224
  ...
@@ -2152,6 +2252,9 @@ def vector3_max(v1: Vector3,v2: Vector3,) -> Vector3:
2152
2252
  def vector3_min(v1: Vector3,v2: Vector3,) -> Vector3:
2153
2253
  """"""
2154
2254
  ...
2255
+ def vector3_move_towards(v: Vector3,target: Vector3,maxDistance: float,) -> Vector3:
2256
+ """"""
2257
+ ...
2155
2258
  def vector3_multiply(v1: Vector3,v2: Vector3,) -> Vector3:
2156
2259
  """"""
2157
2260
  ...
@@ -2209,14 +2312,80 @@ def vector3_unproject(source: Vector3,projection: Matrix,view: Matrix,) -> Vecto
2209
2312
  def vector3_zero() -> Vector3:
2210
2313
  """"""
2211
2314
  ...
2315
+ def vector4_add(v1: Vector4,v2: Vector4,) -> Vector4:
2316
+ """"""
2317
+ ...
2318
+ def vector4_add_value(v: Vector4,add: float,) -> Vector4:
2319
+ """"""
2320
+ ...
2321
+ def vector4_distance(v1: Vector4,v2: Vector4,) -> float:
2322
+ """"""
2323
+ ...
2324
+ def vector4_distance_sqr(v1: Vector4,v2: Vector4,) -> float:
2325
+ """"""
2326
+ ...
2327
+ def vector4_divide(v1: Vector4,v2: Vector4,) -> Vector4:
2328
+ """"""
2329
+ ...
2330
+ def vector4_dot_product(v1: Vector4,v2: Vector4,) -> float:
2331
+ """"""
2332
+ ...
2333
+ def vector4_equals(p: Vector4,q: Vector4,) -> int:
2334
+ """"""
2335
+ ...
2336
+ def vector4_invert(v: Vector4,) -> Vector4:
2337
+ """"""
2338
+ ...
2339
+ def vector4_length(v: Vector4,) -> float:
2340
+ """"""
2341
+ ...
2342
+ def vector4_length_sqr(v: Vector4,) -> float:
2343
+ """"""
2344
+ ...
2345
+ def vector4_lerp(v1: Vector4,v2: Vector4,amount: float,) -> Vector4:
2346
+ """"""
2347
+ ...
2348
+ def vector4_max(v1: Vector4,v2: Vector4,) -> Vector4:
2349
+ """"""
2350
+ ...
2351
+ def vector4_min(v1: Vector4,v2: Vector4,) -> Vector4:
2352
+ """"""
2353
+ ...
2354
+ def vector4_move_towards(v: Vector4,target: Vector4,maxDistance: float,) -> Vector4:
2355
+ """"""
2356
+ ...
2357
+ def vector4_multiply(v1: Vector4,v2: Vector4,) -> Vector4:
2358
+ """"""
2359
+ ...
2360
+ def vector4_negate(v: Vector4,) -> Vector4:
2361
+ """"""
2362
+ ...
2363
+ def vector4_normalize(v: Vector4,) -> Vector4:
2364
+ """"""
2365
+ ...
2366
+ def vector4_one() -> Vector4:
2367
+ """"""
2368
+ ...
2369
+ def vector4_scale(v: Vector4,scale: float,) -> Vector4:
2370
+ """"""
2371
+ ...
2372
+ def vector4_subtract(v1: Vector4,v2: Vector4,) -> Vector4:
2373
+ """"""
2374
+ ...
2375
+ def vector4_subtract_value(v: Vector4,add: float,) -> Vector4:
2376
+ """"""
2377
+ ...
2378
+ def vector4_zero() -> Vector4:
2379
+ """"""
2380
+ ...
2212
2381
  def wait_time(seconds: float,) -> None:
2213
2382
  """Wait for some time (halt program execution)"""
2214
2383
  ...
2215
2384
  def wave_copy(wave: Wave,) -> Wave:
2216
2385
  """Copy a wave to a new wave"""
2217
2386
  ...
2218
- def wave_crop(wave: Any,initSample: int,finalSample: int,) -> None:
2219
- """Crop a wave to defined samples range"""
2387
+ def wave_crop(wave: Any,initFrame: int,finalFrame: int,) -> None:
2388
+ """Crop a wave to defined frames range"""
2220
2389
  ...
2221
2390
  def wave_format(wave: Any,sampleRate: int,sampleSize: int,channels: int,) -> None:
2222
2391
  """Convert wave data to desired format"""
@@ -2383,6 +2552,9 @@ def glfw_get_window_pos(window: Any,xpos: Any,ypos: Any,) -> None:
2383
2552
  def glfw_get_window_size(window: Any,width: Any,height: Any,) -> None:
2384
2553
  """"""
2385
2554
  ...
2555
+ def glfw_get_window_title(window: Any,) -> str:
2556
+ """"""
2557
+ ...
2386
2558
  def glfw_get_window_user_pointer(window: Any,) -> Any:
2387
2559
  """"""
2388
2560
  ...
@@ -2593,6 +2765,9 @@ def rl_active_texture_slot(slot: int,) -> None:
2593
2765
  def rl_begin(mode: int,) -> None:
2594
2766
  """Initialize drawing mode (how to organize vertex)"""
2595
2767
  ...
2768
+ def rl_bind_framebuffer(target: int,framebuffer: int,) -> None:
2769
+ """Bind framebuffer (FBO)"""
2770
+ ...
2596
2771
  def rl_bind_image_texture(id: int,index: int,format: int,readonly: bool,) -> None:
2597
2772
  """Bind image texture"""
2598
2773
  ...
@@ -2623,6 +2798,9 @@ def rl_color4f(x: float,y: float,z: float,w: float,) -> None:
2623
2798
  def rl_color4ub(r: str,g: str,b: str,a: str,) -> None:
2624
2799
  """Define one vertex (color) - 4 byte"""
2625
2800
  ...
2801
+ def rl_color_mask(r: bool,g: bool,b: bool,a: bool,) -> None:
2802
+ """Color mask control"""
2803
+ ...
2626
2804
  def rl_compile_shader(shaderCode: str,type: int,) -> int:
2627
2805
  """Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER)"""
2628
2806
  ...
@@ -2681,7 +2859,7 @@ def rl_disable_vertex_buffer_element() -> None:
2681
2859
  """Disable vertex buffer element (VBO element)"""
2682
2860
  ...
2683
2861
  def rl_disable_wire_mode() -> None:
2684
- """Disable wire mode ( and point ) maybe rename"""
2862
+ """Disable wire (and point) mode"""
2685
2863
  ...
2686
2864
  def rl_draw_render_batch(batch: Any,) -> None:
2687
2865
  """Draw render batch data (Update->Draw->Reset)"""
@@ -2690,16 +2868,16 @@ def rl_draw_render_batch_active() -> None:
2690
2868
  """Update and draw internal render batch"""
2691
2869
  ...
2692
2870
  def rl_draw_vertex_array(offset: int,count: int,) -> None:
2693
- """"""
2871
+ """Draw vertex array (currently active vao)"""
2694
2872
  ...
2695
2873
  def rl_draw_vertex_array_elements(offset: int,count: int,buffer: Any,) -> None:
2696
- """"""
2874
+ """Draw vertex array elements"""
2697
2875
  ...
2698
2876
  def rl_draw_vertex_array_elements_instanced(offset: int,count: int,buffer: Any,instances: int,) -> None:
2699
- """"""
2877
+ """Draw vertex array elements with instancing"""
2700
2878
  ...
2701
2879
  def rl_draw_vertex_array_instanced(offset: int,count: int,instances: int,) -> None:
2702
- """"""
2880
+ """Draw vertex array (currently active vao) with instancing"""
2703
2881
  ...
2704
2882
  def rl_enable_backface_culling() -> None:
2705
2883
  """Enable backface culling"""
@@ -2767,6 +2945,15 @@ def rl_frustum(left: float,right: float,bottom: float,top: float,znear: float,zf
2767
2945
  def rl_gen_texture_mipmaps(id: int,width: int,height: int,format: int,mipmaps: Any,) -> None:
2768
2946
  """Generate mipmap data for selected texture"""
2769
2947
  ...
2948
+ def rl_get_active_framebuffer() -> int:
2949
+ """Get the currently active render texture (fbo), 0 for default framebuffer"""
2950
+ ...
2951
+ def rl_get_cull_distance_far() -> float:
2952
+ """Get cull plane distance far"""
2953
+ ...
2954
+ def rl_get_cull_distance_near() -> float:
2955
+ """Get cull plane distance near"""
2956
+ ...
2770
2957
  def rl_get_framebuffer_height() -> int:
2771
2958
  """Get default framebuffer height"""
2772
2959
  ...
@@ -2833,7 +3020,7 @@ def rl_load_draw_quad() -> None:
2833
3020
  def rl_load_extensions(loader: Any,) -> None:
2834
3021
  """Load OpenGL extensions (loader function required)"""
2835
3022
  ...
2836
- def rl_load_framebuffer(width: int,height: int,) -> int:
3023
+ def rl_load_framebuffer() -> int:
2837
3024
  """Load an empty framebuffer"""
2838
3025
  ...
2839
3026
  def rl_load_identity() -> None:
@@ -2852,10 +3039,10 @@ def rl_load_shader_program(vShaderId: int,fShaderId: int,) -> int:
2852
3039
  """Load custom shader program"""
2853
3040
  ...
2854
3041
  def rl_load_texture(data: Any,width: int,height: int,format: int,mipmapCount: int,) -> int:
2855
- """Load texture in GPU"""
3042
+ """Load texture data"""
2856
3043
  ...
2857
3044
  def rl_load_texture_cubemap(data: Any,size: int,format: int,) -> int:
2858
- """Load texture cubemap"""
3045
+ """Load texture cubemap data"""
2859
3046
  ...
2860
3047
  def rl_load_texture_depth(width: int,height: int,useRenderBuffer: bool,) -> int:
2861
3048
  """Load depth texture/renderbuffer (to be attached to fbo)"""
@@ -2864,10 +3051,10 @@ def rl_load_vertex_array() -> int:
2864
3051
  """Load vertex array (vao) if supported"""
2865
3052
  ...
2866
3053
  def rl_load_vertex_buffer(buffer: Any,size: int,dynamic: bool,) -> int:
2867
- """Load a vertex buffer attribute"""
3054
+ """Load a vertex buffer object"""
2868
3055
  ...
2869
3056
  def rl_load_vertex_buffer_element(buffer: Any,size: int,dynamic: bool,) -> int:
2870
- """Load a new attributes element buffer"""
3057
+ """Load vertex buffer elements object"""
2871
3058
  ...
2872
3059
  def rl_matrix_mode(mode: int,) -> None:
2873
3060
  """Choose the current matrix to be transformed"""
@@ -2914,6 +3101,9 @@ def rl_set_blend_factors_separate(glSrcRGB: int,glDstRGB: int,glSrcAlpha: int,gl
2914
3101
  def rl_set_blend_mode(mode: int,) -> None:
2915
3102
  """Set blending mode"""
2916
3103
  ...
3104
+ def rl_set_clip_planes(nearPlane: float,farPlane: float,) -> None:
3105
+ """Set clip planes distances"""
3106
+ ...
2917
3107
  def rl_set_cull_face(mode: int,) -> None:
2918
3108
  """Set face culling mode"""
2919
3109
  ...
@@ -2950,20 +3140,23 @@ def rl_set_texture(id: int,) -> None:
2950
3140
  def rl_set_uniform(locIndex: int,value: Any,uniformType: int,count: int,) -> None:
2951
3141
  """Set shader value uniform"""
2952
3142
  ...
3143
+ def rl_set_uniform_matrices(locIndex: int,mat: Any,count: int,) -> None:
3144
+ """Set shader value matrices"""
3145
+ ...
2953
3146
  def rl_set_uniform_matrix(locIndex: int,mat: Matrix,) -> None:
2954
3147
  """Set shader value matrix"""
2955
3148
  ...
2956
3149
  def rl_set_uniform_sampler(locIndex: int,textureId: int,) -> None:
2957
3150
  """Set shader value sampler"""
2958
3151
  ...
2959
- def rl_set_vertex_attribute(index: int,compSize: int,type: int,normalized: bool,stride: int,pointer: Any,) -> None:
2960
- """"""
3152
+ def rl_set_vertex_attribute(index: int,compSize: int,type: int,normalized: bool,stride: int,offset: int,) -> None:
3153
+ """Set vertex attribute data configuration"""
2961
3154
  ...
2962
3155
  def rl_set_vertex_attribute_default(locIndex: int,value: Any,attribType: int,count: int,) -> None:
2963
- """Set vertex attribute default value"""
3156
+ """Set vertex attribute default value, when attribute to provided"""
2964
3157
  ...
2965
3158
  def rl_set_vertex_attribute_divisor(index: int,divisor: int,) -> None:
2966
- """"""
3159
+ """Set vertex attribute data divisor"""
2967
3160
  ...
2968
3161
  def rl_tex_coord2f(x: float,y: float,) -> None:
2969
3162
  """Define one vertex (texture coordinate) - 2 float"""
@@ -2990,22 +3183,22 @@ def rl_unload_texture(id: int,) -> None:
2990
3183
  """Unload texture from GPU memory"""
2991
3184
  ...
2992
3185
  def rl_unload_vertex_array(vaoId: int,) -> None:
2993
- """"""
3186
+ """Unload vertex array (vao)"""
2994
3187
  ...
2995
3188
  def rl_unload_vertex_buffer(vboId: int,) -> None:
2996
- """"""
3189
+ """Unload vertex buffer object"""
2997
3190
  ...
2998
3191
  def rl_update_shader_buffer(id: int,data: Any,dataSize: int,offset: int,) -> None:
2999
3192
  """Update SSBO buffer data"""
3000
3193
  ...
3001
3194
  def rl_update_texture(id: int,offsetX: int,offsetY: int,width: int,height: int,format: int,data: Any,) -> None:
3002
- """Update GPU texture with new data"""
3195
+ """Update texture with new data on GPU"""
3003
3196
  ...
3004
3197
  def rl_update_vertex_buffer(bufferId: int,data: Any,dataSize: int,offset: int,) -> None:
3005
- """Update GPU buffer with new data"""
3198
+ """Update vertex buffer object data on GPU buffer"""
3006
3199
  ...
3007
3200
  def rl_update_vertex_buffer_elements(id: int,data: Any,dataSize: int,offset: int,) -> None:
3008
- """Update vertex buffer elements with new data"""
3201
+ """Update vertex buffer elements data on GPU buffer"""
3009
3202
  ...
3010
3203
  def rl_vertex2f(x: float,y: float,) -> None:
3011
3204
  """Define one vertex (position) - 2 float"""
@@ -3154,7 +3347,7 @@ class Matrix2x2:
3154
3347
  self.m11=m11
3155
3348
  class Mesh:
3156
3349
  """ struct """
3157
- def __init__(self, vertexCount, triangleCount, vertices, texcoords, texcoords2, normals, tangents, colors, indices, animVertices, animNormals, boneIds, boneWeights, vaoId, vboId):
3350
+ def __init__(self, vertexCount, triangleCount, vertices, texcoords, texcoords2, normals, tangents, colors, indices, animVertices, animNormals, boneIds, boneWeights, boneMatrices, boneCount, vaoId, vboId):
3158
3351
  self.vertexCount=vertexCount
3159
3352
  self.triangleCount=triangleCount
3160
3353
  self.vertices=vertices
@@ -3168,6 +3361,8 @@ class Mesh:
3168
3361
  self.animNormals=animNormals
3169
3362
  self.boneIds=boneIds
3170
3363
  self.boneWeights=boneWeights
3364
+ self.boneMatrices=boneMatrices
3365
+ self.boneCount=boneCount
3171
3366
  self.vaoId=vaoId
3172
3367
  self.vboId=vboId
3173
3368
  class Model:
@@ -3333,12 +3528,11 @@ class Vector4:
3333
3528
  self.w=w
3334
3529
  class VrDeviceInfo:
3335
3530
  """ struct """
3336
- def __init__(self, hResolution, vResolution, hScreenSize, vScreenSize, vScreenCenter, eyeToScreenDistance, lensSeparationDistance, interpupillaryDistance, lensDistortionValues, chromaAbCorrection):
3531
+ def __init__(self, hResolution, vResolution, hScreenSize, vScreenSize, eyeToScreenDistance, lensSeparationDistance, interpupillaryDistance, lensDistortionValues, chromaAbCorrection):
3337
3532
  self.hResolution=hResolution
3338
3533
  self.vResolution=vResolution
3339
3534
  self.hScreenSize=hScreenSize
3340
3535
  self.vScreenSize=vScreenSize
3341
- self.vScreenCenter=vScreenCenter
3342
3536
  self.eyeToScreenDistance=eyeToScreenDistance
3343
3537
  self.lensSeparationDistance=lensSeparationDistance
3344
3538
  self.interpupillaryDistance=interpupillaryDistance
@@ -3389,10 +3583,11 @@ class rlRenderBatch:
3389
3583
  self.currentDepth=currentDepth
3390
3584
  class rlVertexBuffer:
3391
3585
  """ struct """
3392
- def __init__(self, elementCount, vertices, texcoords, colors, indices, vaoId, vboId):
3586
+ def __init__(self, elementCount, vertices, texcoords, normals, colors, indices, vaoId, vboId):
3393
3587
  self.elementCount=elementCount
3394
3588
  self.vertices=vertices
3395
3589
  self.texcoords=texcoords
3590
+ self.normals=normals
3396
3591
  self.colors=colors
3397
3592
  self.indices=indices
3398
3593
  self.vaoId=vaoId
@@ -3563,7 +3758,7 @@ class KeyboardKey(IntEnum):
3563
3758
  KEY_KP_ENTER = 335
3564
3759
  KEY_KP_EQUAL = 336
3565
3760
  KEY_BACK = 4
3566
- KEY_MENU = 82
3761
+ KEY_MENU = 5
3567
3762
  KEY_VOLUME_UP = 24
3568
3763
  KEY_VOLUME_DOWN = 25
3569
3764
 
@@ -3657,6 +3852,9 @@ class ShaderLocationIndex(IntEnum):
3657
3852
  SHADER_LOC_MAP_IRRADIANCE = 23
3658
3853
  SHADER_LOC_MAP_PREFILTER = 24
3659
3854
  SHADER_LOC_MAP_BRDF = 25
3855
+ SHADER_LOC_VERTEX_BONEIDS = 26
3856
+ SHADER_LOC_VERTEX_BONEWEIGHTS = 27
3857
+ SHADER_LOC_BONE_MATRICES = 28
3660
3858
 
3661
3859
  class ShaderUniformDataType(IntEnum):
3662
3860
  SHADER_UNIFORM_FLOAT = 0
@@ -3860,6 +4058,8 @@ class GuiComboBoxProperty(IntEnum):
3860
4058
  class GuiDropdownBoxProperty(IntEnum):
3861
4059
  ARROW_PADDING = 16
3862
4060
  DROPDOWN_ITEMS_SPACING = 17
4061
+ DROPDOWN_ARROW_HIDDEN = 18
4062
+ DROPDOWN_ROLL_UP = 19
3863
4063
 
3864
4064
  class GuiTextBoxProperty(IntEnum):
3865
4065
  TEXT_READONLY = 16
@@ -3873,6 +4073,7 @@ class GuiListViewProperty(IntEnum):
3873
4073
  LIST_ITEMS_SPACING = 17
3874
4074
  SCROLLBAR_WIDTH = 18
3875
4075
  SCROLLBAR_SIDE = 19
4076
+ LIST_ITEMS_BORDER_WIDTH = 20
3876
4077
 
3877
4078
  class GuiColorPickerProperty(IntEnum):
3878
4079
  COLOR_SELECTOR_SIZE = 16
@@ -4102,15 +4303,15 @@ class GuiIconName(IntEnum):
4102
4303
  ICON_FOLDER = 217
4103
4304
  ICON_FILE = 218
4104
4305
  ICON_SAND_TIMER = 219
4105
- ICON_220 = 220
4106
- ICON_221 = 221
4107
- ICON_222 = 222
4108
- ICON_223 = 223
4109
- ICON_224 = 224
4110
- ICON_225 = 225
4111
- ICON_226 = 226
4112
- ICON_227 = 227
4113
- ICON_228 = 228
4306
+ ICON_WARNING = 220
4307
+ ICON_HELP_BOX = 221
4308
+ ICON_INFO_BOX = 222
4309
+ ICON_PRIORITY = 223
4310
+ ICON_LAYERS_ISO = 224
4311
+ ICON_LAYERS2 = 225
4312
+ ICON_MLAYERS = 226
4313
+ ICON_MAPS = 227
4314
+ ICON_HOT = 228
4114
4315
  ICON_229 = 229
4115
4316
  ICON_230 = 230
4116
4317
  ICON_231 = 231