raylib 5.0.0.5__cp312-cp312-macosx_14_0_arm64.whl → 5.5.0.2__cp312-cp312-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
@@ -134,7 +134,7 @@ class KeyboardKey(int):
134
134
  KEY_KP_ENTER = 335
135
135
  KEY_KP_EQUAL = 336
136
136
  KEY_BACK = 4
137
- KEY_MENU = 82
137
+ KEY_MENU = 5
138
138
  KEY_VOLUME_UP = 24
139
139
  KEY_VOLUME_DOWN = 25
140
140
 
@@ -228,6 +228,9 @@ class ShaderLocationIndex(int):
228
228
  SHADER_LOC_MAP_IRRADIANCE = 23
229
229
  SHADER_LOC_MAP_PREFILTER = 24
230
230
  SHADER_LOC_MAP_BRDF = 25
231
+ SHADER_LOC_VERTEX_BONEIDS = 26
232
+ SHADER_LOC_VERTEX_BONEWEIGHTS = 27
233
+ SHADER_LOC_BONE_MATRICES = 28
231
234
 
232
235
  class ShaderUniformDataType(int):
233
236
  SHADER_UNIFORM_FLOAT = 0
@@ -292,7 +295,6 @@ class CubemapLayout(int):
292
295
  CUBEMAP_LAYOUT_LINE_HORIZONTAL = 2
293
296
  CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR = 3
294
297
  CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE = 4
295
- CUBEMAP_LAYOUT_PANORAMA = 5
296
298
 
297
299
  class FontType(int):
298
300
  FONT_DEFAULT = 0
@@ -437,7 +439,11 @@ class rlShaderUniformDataType(int):
437
439
  RL_SHADER_UNIFORM_IVEC2 = 5
438
440
  RL_SHADER_UNIFORM_IVEC3 = 6
439
441
  RL_SHADER_UNIFORM_IVEC4 = 7
440
- RL_SHADER_UNIFORM_SAMPLER2D = 8
442
+ RL_SHADER_UNIFORM_UINT = 8
443
+ RL_SHADER_UNIFORM_UIVEC2 = 9
444
+ RL_SHADER_UNIFORM_UIVEC3 = 10
445
+ RL_SHADER_UNIFORM_UIVEC4 = 11
446
+ RL_SHADER_UNIFORM_SAMPLER2D = 12
441
447
 
442
448
  class rlShaderAttributeDataType(int):
443
449
  RL_SHADER_ATTRIB_FLOAT = 0
@@ -564,6 +570,8 @@ class GuiComboBoxProperty(int):
564
570
  class GuiDropdownBoxProperty(int):
565
571
  ARROW_PADDING = 16
566
572
  DROPDOWN_ITEMS_SPACING = 17
573
+ DROPDOWN_ARROW_HIDDEN = 18
574
+ DROPDOWN_ROLL_UP = 19
567
575
 
568
576
  class GuiTextBoxProperty(int):
569
577
  TEXT_READONLY = 16
@@ -577,6 +585,7 @@ class GuiListViewProperty(int):
577
585
  LIST_ITEMS_SPACING = 17
578
586
  SCROLLBAR_WIDTH = 18
579
587
  SCROLLBAR_SIDE = 19
588
+ LIST_ITEMS_BORDER_WIDTH = 20
580
589
 
581
590
  class GuiColorPickerProperty(int):
582
591
  COLOR_SELECTOR_SIZE = 16
@@ -806,15 +815,15 @@ class GuiIconName(int):
806
815
  ICON_FOLDER = 217
807
816
  ICON_FILE = 218
808
817
  ICON_SAND_TIMER = 219
809
- ICON_220 = 220
810
- ICON_221 = 221
811
- ICON_222 = 222
812
- ICON_223 = 223
813
- ICON_224 = 224
814
- ICON_225 = 225
815
- ICON_226 = 226
816
- ICON_227 = 227
817
- ICON_228 = 228
818
+ ICON_WARNING = 220
819
+ ICON_HELP_BOX = 221
820
+ ICON_INFO_BOX = 222
821
+ ICON_PRIORITY = 223
822
+ ICON_LAYERS_ISO = 224
823
+ ICON_LAYERS2 = 225
824
+ ICON_MLAYERS = 226
825
+ ICON_MAPS = 227
826
+ ICON_HOT = 228
818
827
  ICON_229 = 229
819
828
  ICON_230 = 230
820
829
  ICON_231 = 231
@@ -850,10 +859,10 @@ import _cffi_backend # type: ignore
850
859
  ffi: _cffi_backend.FFI
851
860
 
852
861
  def attach_audio_mixed_processor(processor: Any,) -> None:
853
- """Attach audio stream processor to the entire audio pipeline, receives the samples as <float>s"""
862
+ """Attach audio stream processor to the entire audio pipeline, receives the samples as 'float'"""
854
863
  ...
855
864
  def attach_audio_stream_processor(stream: AudioStream|list|tuple,processor: Any,) -> None:
856
- """Attach audio stream processor to stream, receives the samples as <float>s"""
865
+ """Attach audio stream processor to stream, receives the samples as 'float'"""
857
866
  ...
858
867
  def begin_blend_mode(mode: int,) -> None:
859
868
  """Begin blending mode (alpha, additive, multiplied, subtract, custom)"""
@@ -888,6 +897,9 @@ def check_collision_box_sphere(box: BoundingBox|list|tuple,center: Vector3|list|
888
897
  def check_collision_boxes(box1: BoundingBox|list|tuple,box2: BoundingBox|list|tuple,) -> bool:
889
898
  """Check collision between two bounding boxes"""
890
899
  ...
900
+ def check_collision_circle_line(center: Vector2|list|tuple,radius: float,p1: Vector2|list|tuple,p2: Vector2|list|tuple,) -> bool:
901
+ """Check if circle collides with a line created betweeen two points [p1] and [p2]"""
902
+ ...
891
903
  def check_collision_circle_rec(center: Vector2|list|tuple,radius: float,rec: Rectangle|list|tuple,) -> bool:
892
904
  """Check collision between circle and rectangle"""
893
905
  ...
@@ -957,6 +969,12 @@ def color_from_hsv(hue: float,saturation: float,value: float,) -> Color:
957
969
  def color_from_normalized(normalized: Vector4|list|tuple,) -> Color:
958
970
  """Get Color from normalized values [0..1]"""
959
971
  ...
972
+ def color_is_equal(col1: Color|list|tuple,col2: Color|list|tuple,) -> bool:
973
+ """Check if two colors are equal"""
974
+ ...
975
+ def color_lerp(color1: Color|list|tuple,color2: Color|list|tuple,factor: float,) -> Color:
976
+ """Get color lerp interpolation between two colors, factor [0.0f..1.0f]"""
977
+ ...
960
978
  def color_normalize(color: Color|list|tuple,) -> Vector4:
961
979
  """Get Color normalized as float [0..1]"""
962
980
  ...
@@ -967,11 +985,20 @@ def color_to_hsv(color: Color|list|tuple,) -> Vector3:
967
985
  """Get HSV values for a Color, hue [0..360], saturation/value [0..1]"""
968
986
  ...
969
987
  def color_to_int(color: Color|list|tuple,) -> int:
970
- """Get hexadecimal value for a Color"""
988
+ """Get hexadecimal value for a Color (0xRRGGBBAA)"""
971
989
  ...
972
990
  def compress_data(data: str,dataSize: int,compDataSize: Any,) -> str:
973
991
  """Compress data (DEFLATE algorithm), memory must be MemFree()"""
974
992
  ...
993
+ def compute_crc32(data: str,dataSize: int,) -> int:
994
+ """Compute CRC32 hash code"""
995
+ ...
996
+ def compute_md5(data: str,dataSize: int,) -> Any:
997
+ """Compute MD5 hash code, returns static int[4] (16 bytes)"""
998
+ ...
999
+ def compute_sha1(data: str,dataSize: int,) -> Any:
1000
+ """Compute SHA1 hash code, returns static int[5] (20 bytes)"""
1001
+ ...
975
1002
  def create_physics_body_circle(pos: Vector2|list|tuple,radius: float,density: float,) -> Any:
976
1003
  """Creates a new circle physics body with generic parameters"""
977
1004
  ...
@@ -1005,7 +1032,7 @@ def disable_cursor() -> None:
1005
1032
  def disable_event_waiting() -> None:
1006
1033
  """Disable waiting for events on EndDrawing(), automatic events polling"""
1007
1034
  ...
1008
- def draw_billboard(camera: Camera3D|list|tuple,texture: Texture|list|tuple,position: Vector3|list|tuple,size: float,tint: Color|list|tuple,) -> None:
1035
+ def draw_billboard(camera: Camera3D|list|tuple,texture: Texture|list|tuple,position: Vector3|list|tuple,scale: float,tint: Color|list|tuple,) -> None:
1009
1036
  """Draw a billboard texture"""
1010
1037
  ...
1011
1038
  def draw_billboard_pro(camera: Camera3D|list|tuple,texture: Texture|list|tuple,source: Rectangle|list|tuple,position: Vector3|list|tuple,up: Vector3|list|tuple,size: Vector2|list|tuple,origin: Vector2|list|tuple,rotation: float,tint: Color|list|tuple,) -> None:
@@ -1029,7 +1056,7 @@ def draw_circle(centerX: int,centerY: int,radius: float,color: Color|list|tuple,
1029
1056
  def draw_circle_3d(center: Vector3|list|tuple,radius: float,rotationAxis: Vector3|list|tuple,rotationAngle: float,color: Color|list|tuple,) -> None:
1030
1057
  """Draw a circle in 3D world space"""
1031
1058
  ...
1032
- def draw_circle_gradient(centerX: int,centerY: int,radius: float,color1: Color|list|tuple,color2: Color|list|tuple,) -> None:
1059
+ def draw_circle_gradient(centerX: int,centerY: int,radius: float,inner: Color|list|tuple,outer: Color|list|tuple,) -> None:
1033
1060
  """Draw a gradient-filled circle"""
1034
1061
  ...
1035
1062
  def draw_circle_lines(centerX: int,centerY: int,radius: float,color: Color|list|tuple,) -> None:
@@ -1113,6 +1140,12 @@ def draw_model(model: Model|list|tuple,position: Vector3|list|tuple,scale: float
1113
1140
  def draw_model_ex(model: Model|list|tuple,position: Vector3|list|tuple,rotationAxis: Vector3|list|tuple,rotationAngle: float,scale: Vector3|list|tuple,tint: Color|list|tuple,) -> None:
1114
1141
  """Draw a model with extended parameters"""
1115
1142
  ...
1143
+ def draw_model_points(model: Model|list|tuple,position: Vector3|list|tuple,scale: float,tint: Color|list|tuple,) -> None:
1144
+ """Draw a model as points"""
1145
+ ...
1146
+ def draw_model_points_ex(model: Model|list|tuple,position: Vector3|list|tuple,rotationAxis: Vector3|list|tuple,rotationAngle: float,scale: Vector3|list|tuple,tint: Color|list|tuple,) -> None:
1147
+ """Draw a model as points with extended parameters"""
1148
+ ...
1116
1149
  def draw_model_wires(model: Model|list|tuple,position: Vector3|list|tuple,scale: float,tint: Color|list|tuple,) -> None:
1117
1150
  """Draw a model wires (with texture if set)"""
1118
1151
  ...
@@ -1120,10 +1153,10 @@ def draw_model_wires_ex(model: Model|list|tuple,position: Vector3|list|tuple,rot
1120
1153
  """Draw a model wires (with texture if set) with extended parameters"""
1121
1154
  ...
1122
1155
  def draw_pixel(posX: int,posY: int,color: Color|list|tuple,) -> None:
1123
- """Draw a pixel"""
1156
+ """Draw a pixel using geometry [Can be slow, use with care]"""
1124
1157
  ...
1125
1158
  def draw_pixel_v(position: Vector2|list|tuple,color: Color|list|tuple,) -> None:
1126
- """Draw a pixel (Vector version)"""
1159
+ """Draw a pixel using geometry (Vector version) [Can be slow, use with care]"""
1127
1160
  ...
1128
1161
  def draw_plane(centerPos: Vector3|list|tuple,size: Vector2|list|tuple,color: Color|list|tuple,) -> None:
1129
1162
  """Draw a plane XZ"""
@@ -1146,13 +1179,13 @@ def draw_ray(ray: Ray|list|tuple,color: Color|list|tuple,) -> None:
1146
1179
  def draw_rectangle(posX: int,posY: int,width: int,height: int,color: Color|list|tuple,) -> None:
1147
1180
  """Draw a color-filled rectangle"""
1148
1181
  ...
1149
- def draw_rectangle_gradient_ex(rec: Rectangle|list|tuple,col1: Color|list|tuple,col2: Color|list|tuple,col3: Color|list|tuple,col4: Color|list|tuple,) -> None:
1182
+ def draw_rectangle_gradient_ex(rec: Rectangle|list|tuple,topLeft: Color|list|tuple,bottomLeft: Color|list|tuple,topRight: Color|list|tuple,bottomRight: Color|list|tuple,) -> None:
1150
1183
  """Draw a gradient-filled rectangle with custom vertex colors"""
1151
1184
  ...
1152
- def draw_rectangle_gradient_h(posX: int,posY: int,width: int,height: int,color1: Color|list|tuple,color2: Color|list|tuple,) -> None:
1185
+ def draw_rectangle_gradient_h(posX: int,posY: int,width: int,height: int,left: Color|list|tuple,right: Color|list|tuple,) -> None:
1153
1186
  """Draw a horizontal-gradient-filled rectangle"""
1154
1187
  ...
1155
- def draw_rectangle_gradient_v(posX: int,posY: int,width: int,height: int,color1: Color|list|tuple,color2: Color|list|tuple,) -> None:
1188
+ def draw_rectangle_gradient_v(posX: int,posY: int,width: int,height: int,top: Color|list|tuple,bottom: Color|list|tuple,) -> None:
1156
1189
  """Draw a vertical-gradient-filled rectangle"""
1157
1190
  ...
1158
1191
  def draw_rectangle_lines(posX: int,posY: int,width: int,height: int,color: Color|list|tuple,) -> None:
@@ -1170,7 +1203,10 @@ def draw_rectangle_rec(rec: Rectangle|list|tuple,color: Color|list|tuple,) -> No
1170
1203
  def draw_rectangle_rounded(rec: Rectangle|list|tuple,roundness: float,segments: int,color: Color|list|tuple,) -> None:
1171
1204
  """Draw rectangle with rounded edges"""
1172
1205
  ...
1173
- def draw_rectangle_rounded_lines(rec: Rectangle|list|tuple,roundness: float,segments: int,lineThick: float,color: Color|list|tuple,) -> None:
1206
+ def draw_rectangle_rounded_lines(rec: Rectangle|list|tuple,roundness: float,segments: int,color: Color|list|tuple,) -> None:
1207
+ """Draw rectangle lines with rounded edges"""
1208
+ ...
1209
+ def draw_rectangle_rounded_lines_ex(rec: Rectangle|list|tuple,roundness: float,segments: int,lineThick: float,color: Color|list|tuple,) -> None:
1174
1210
  """Draw rectangle with rounded edges outline"""
1175
1211
  ...
1176
1212
  def draw_rectangle_v(position: Vector2|list|tuple,size: Vector2|list|tuple,color: Color|list|tuple,) -> None:
@@ -1326,6 +1362,9 @@ def export_image_to_memory(image: Image|list|tuple,fileType: str,fileSize: Any,)
1326
1362
  def export_mesh(mesh: Mesh|list|tuple,fileName: str,) -> bool:
1327
1363
  """Export mesh data to file, returns true on success"""
1328
1364
  ...
1365
+ def export_mesh_as_code(mesh: Mesh|list|tuple,fileName: str,) -> bool:
1366
+ """Export mesh as code file (.h) defining multiple arrays of vertex attributes"""
1367
+ ...
1329
1368
  def export_wave(wave: Wave|list|tuple,fileName: str,) -> bool:
1330
1369
  """Export wave data to file, returns true on success"""
1331
1370
  ...
@@ -1422,6 +1461,9 @@ def get_camera_matrix_2d(camera: Camera2D|list|tuple,) -> Matrix:
1422
1461
  def get_char_pressed() -> int:
1423
1462
  """Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty"""
1424
1463
  ...
1464
+ def get_clipboard_image() -> Image:
1465
+ """Get clipboard image content"""
1466
+ ...
1425
1467
  def get_clipboard_text() -> str:
1426
1468
  """Get clipboard text content"""
1427
1469
  ...
@@ -1444,7 +1486,7 @@ def get_color(hexValue: int,) -> Color:
1444
1486
  """Get Color structure from hexadecimal value"""
1445
1487
  ...
1446
1488
  def get_current_monitor() -> int:
1447
- """Get current connected monitor"""
1489
+ """Get current monitor where window is placed"""
1448
1490
  ...
1449
1491
  def get_directory_path(filePath: str,) -> str:
1450
1492
  """Get full path for a given fileName with path (uses static string)"""
@@ -1495,7 +1537,7 @@ def get_gesture_drag_vector() -> Vector2:
1495
1537
  """Get gesture drag vector"""
1496
1538
  ...
1497
1539
  def get_gesture_hold_duration() -> float:
1498
- """Get gesture hold time in milliseconds"""
1540
+ """Get gesture hold time in seconds"""
1499
1541
  ...
1500
1542
  def get_gesture_pinch_angle() -> float:
1501
1543
  """Get gesture pinch angle"""
@@ -1560,9 +1602,6 @@ def get_mouse_delta() -> Vector2:
1560
1602
  def get_mouse_position() -> Vector2:
1561
1603
  """Get mouse position XY"""
1562
1604
  ...
1563
- def get_mouse_ray(mousePosition: Vector2|list|tuple,camera: Camera3D|list|tuple,) -> Ray:
1564
- """Get a ray trace from mouse position"""
1565
- ...
1566
1605
  def get_mouse_wheel_move() -> float:
1567
1606
  """Get mouse wheel movement for X or Y, whichever is larger"""
1568
1607
  ...
@@ -1635,6 +1674,12 @@ def get_screen_height() -> int:
1635
1674
  def get_screen_to_world_2d(position: Vector2|list|tuple,camera: Camera2D|list|tuple,) -> Vector2:
1636
1675
  """Get the world space position for a 2d camera screen space position"""
1637
1676
  ...
1677
+ def get_screen_to_world_ray(position: Vector2|list|tuple,camera: Camera3D|list|tuple,) -> Ray:
1678
+ """Get a ray trace from screen position (i.e mouse)"""
1679
+ ...
1680
+ def get_screen_to_world_ray_ex(position: Vector2|list|tuple,camera: Camera3D|list|tuple,width: int,height: int,) -> Ray:
1681
+ """Get a ray trace from screen position (i.e mouse) in a viewport"""
1682
+ ...
1638
1683
  def get_screen_width() -> int:
1639
1684
  """Get current screen width"""
1640
1685
  ...
@@ -1644,6 +1689,12 @@ def get_shader_location(shader: Shader|list|tuple,uniformName: str,) -> int:
1644
1689
  def get_shader_location_attrib(shader: Shader|list|tuple,attribName: str,) -> int:
1645
1690
  """Get shader attribute location"""
1646
1691
  ...
1692
+ def get_shapes_texture() -> Texture:
1693
+ """Get texture that is used for shapes drawing"""
1694
+ ...
1695
+ def get_shapes_texture_rectangle() -> Rectangle:
1696
+ """Get texture source rectangle that is used for shapes drawing"""
1697
+ ...
1647
1698
  def get_spline_point_basis(p1: Vector2|list|tuple,p2: Vector2|list|tuple,p3: Vector2|list|tuple,p4: Vector2|list|tuple,t: float,) -> Vector2:
1648
1699
  """Get (evaluate) spline point: B-Spline"""
1649
1700
  ...
@@ -1714,7 +1765,7 @@ def gui_color_panel(bounds: Rectangle|list|tuple,text: str,color: Any|list|tuple
1714
1765
  """Color Panel control"""
1715
1766
  ...
1716
1767
  def gui_color_panel_hsv(bounds: Rectangle|list|tuple,text: str,colorHsv: Any|list|tuple,) -> int:
1717
- """Color Panel control that returns HSV color value, used by GuiColorPickerHSV()"""
1768
+ """Color Panel control that updates Hue-Saturation-Value color value, used by GuiColorPickerHSV()"""
1718
1769
  ...
1719
1770
  def gui_color_picker(bounds: Rectangle|list|tuple,text: str,color: Any|list|tuple,) -> int:
1720
1771
  """Color Picker control (multiple color controls)"""
@@ -1723,7 +1774,7 @@ def gui_color_picker_hsv(bounds: Rectangle|list|tuple,text: str,colorHsv: Any|li
1723
1774
  """Color Picker control that avoids conversion to RGB on each call (multiple color controls)"""
1724
1775
  ...
1725
1776
  def gui_combo_box(bounds: Rectangle|list|tuple,text: str,active: Any,) -> int:
1726
- """Combo Box control, returns selected item index"""
1777
+ """Combo Box control"""
1727
1778
  ...
1728
1779
  def gui_disable() -> None:
1729
1780
  """Disable gui controls (global state)"""
@@ -1735,7 +1786,7 @@ def gui_draw_icon(iconId: int,posX: int,posY: int,pixelSize: int,color: Color|li
1735
1786
  """Draw icon using pixel size at specified position"""
1736
1787
  ...
1737
1788
  def gui_dropdown_box(bounds: Rectangle|list|tuple,text: str,active: Any,editMode: bool,) -> int:
1738
- """Dropdown Box control, returns selected item"""
1789
+ """Dropdown Box control"""
1739
1790
  ...
1740
1791
  def gui_dummy_rec(bounds: Rectangle|list|tuple,text: str,) -> int:
1741
1792
  """Dummy control for placeholders"""
@@ -1759,7 +1810,7 @@ def gui_get_style(control: int,property: int,) -> int:
1759
1810
  """Get one style property"""
1760
1811
  ...
1761
1812
  def gui_grid(bounds: Rectangle|list|tuple,text: str,spacing: float,subdivs: int,mouseCell: Any|list|tuple,) -> int:
1762
- """Grid control, returns mouse cell position"""
1813
+ """Grid control"""
1763
1814
  ...
1764
1815
  def gui_group_box(bounds: Rectangle|list|tuple,text: str,) -> int:
1765
1816
  """Group Box control with text name"""
@@ -1771,16 +1822,16 @@ def gui_is_locked() -> bool:
1771
1822
  """Check if gui is locked (global state)"""
1772
1823
  ...
1773
1824
  def gui_label(bounds: Rectangle|list|tuple,text: str,) -> int:
1774
- """Label control, shows text"""
1825
+ """Label control"""
1775
1826
  ...
1776
1827
  def gui_label_button(bounds: Rectangle|list|tuple,text: str,) -> int:
1777
- """Label button control, show true when clicked"""
1828
+ """Label button control, returns true when clicked"""
1778
1829
  ...
1779
1830
  def gui_line(bounds: Rectangle|list|tuple,text: str,) -> int:
1780
1831
  """Line separator control, could contain text"""
1781
1832
  ...
1782
1833
  def gui_list_view(bounds: Rectangle|list|tuple,text: str,scrollIndex: Any,active: Any,) -> int:
1783
- """List View control, returns selected list item index"""
1834
+ """List View control"""
1784
1835
  ...
1785
1836
  def gui_list_view_ex(bounds: Rectangle|list|tuple,text: list[str],count: int,scrollIndex: Any,active: Any,focus: Any,) -> int:
1786
1837
  """List View with extended parameters"""
@@ -1804,7 +1855,7 @@ def gui_panel(bounds: Rectangle|list|tuple,text: str,) -> int:
1804
1855
  """Panel control, useful to group controls"""
1805
1856
  ...
1806
1857
  def gui_progress_bar(bounds: Rectangle|list|tuple,textLeft: str,textRight: str,value: Any,minValue: float,maxValue: float,) -> int:
1807
- """Progress Bar control, shows current progress value"""
1858
+ """Progress Bar control"""
1808
1859
  ...
1809
1860
  def gui_scroll_panel(bounds: Rectangle|list|tuple,text: str,content: Rectangle|list|tuple,scroll: Any|list|tuple,view: Any|list|tuple,) -> int:
1810
1861
  """Scroll Panel control"""
@@ -1828,13 +1879,13 @@ def gui_set_tooltip(tooltip: str,) -> None:
1828
1879
  """Set tooltip string"""
1829
1880
  ...
1830
1881
  def gui_slider(bounds: Rectangle|list|tuple,textLeft: str,textRight: str,value: Any,minValue: float,maxValue: float,) -> int:
1831
- """Slider control, returns selected value"""
1882
+ """Slider control"""
1832
1883
  ...
1833
1884
  def gui_slider_bar(bounds: Rectangle|list|tuple,textLeft: str,textRight: str,value: Any,minValue: float,maxValue: float,) -> int:
1834
- """Slider Bar control, returns selected value"""
1885
+ """Slider Bar control"""
1835
1886
  ...
1836
1887
  def gui_spinner(bounds: Rectangle|list|tuple,text: str,value: Any,minValue: int,maxValue: int,editMode: bool,) -> int:
1837
- """Spinner control, returns selected value"""
1888
+ """Spinner control"""
1838
1889
  ...
1839
1890
  def gui_status_bar(bounds: Rectangle|list|tuple,text: str,) -> int:
1840
1891
  """Status Bar control, shows info text"""
@@ -1849,13 +1900,13 @@ def gui_text_input_box(bounds: Rectangle|list|tuple,title: str,message: str,butt
1849
1900
  """Text Input Box control, ask for text, supports secret"""
1850
1901
  ...
1851
1902
  def gui_toggle(bounds: Rectangle|list|tuple,text: str,active: Any,) -> int:
1852
- """Toggle Button control, returns true when active"""
1903
+ """Toggle Button control"""
1853
1904
  ...
1854
1905
  def gui_toggle_group(bounds: Rectangle|list|tuple,text: str,active: Any,) -> int:
1855
- """Toggle Group control, returns active toggle index"""
1906
+ """Toggle Group control"""
1856
1907
  ...
1857
1908
  def gui_toggle_slider(bounds: Rectangle|list|tuple,text: str,active: Any,) -> int:
1858
- """Toggle Slider control, returns true when clicked"""
1909
+ """Toggle Slider control"""
1859
1910
  ...
1860
1911
  def gui_unlock() -> None:
1861
1912
  """Unlock gui controls (global state)"""
@@ -1863,6 +1914,9 @@ def gui_unlock() -> None:
1863
1914
  def gui_value_box(bounds: Rectangle|list|tuple,text: str,value: Any,minValue: int,maxValue: int,editMode: bool,) -> int:
1864
1915
  """Value Box control, updates input text with numbers"""
1865
1916
  ...
1917
+ def gui_value_box_float(bounds: Rectangle|list|tuple,text: str,textValue: str,value: Any,editMode: bool,) -> int:
1918
+ """Value box control for float values"""
1919
+ ...
1866
1920
  def gui_window_box(bounds: Rectangle|list|tuple,title: str,) -> int:
1867
1921
  """Window Box control, shows a window that can be closed"""
1868
1922
  ...
@@ -1932,6 +1986,9 @@ def image_draw_circle_v(dst: Any|list|tuple,center: Vector2|list|tuple,radius: i
1932
1986
  def image_draw_line(dst: Any|list|tuple,startPosX: int,startPosY: int,endPosX: int,endPosY: int,color: Color|list|tuple,) -> None:
1933
1987
  """Draw line within an image"""
1934
1988
  ...
1989
+ def image_draw_line_ex(dst: Any|list|tuple,start: Vector2|list|tuple,end: Vector2|list|tuple,thick: int,color: Color|list|tuple,) -> None:
1990
+ """Draw a line defining thickness within an image"""
1991
+ ...
1935
1992
  def image_draw_line_v(dst: Any|list|tuple,start: Vector2|list|tuple,end: Vector2|list|tuple,color: Color|list|tuple,) -> None:
1936
1993
  """Draw line within an image (Vector version)"""
1937
1994
  ...
@@ -1959,6 +2016,21 @@ def image_draw_text(dst: Any|list|tuple,text: str,posX: int,posY: int,fontSize:
1959
2016
  def image_draw_text_ex(dst: Any|list|tuple,font: Font|list|tuple,text: str,position: Vector2|list|tuple,fontSize: float,spacing: float,tint: Color|list|tuple,) -> None:
1960
2017
  """Draw text (custom sprite font) within an image (destination)"""
1961
2018
  ...
2019
+ def image_draw_triangle(dst: Any|list|tuple,v1: Vector2|list|tuple,v2: Vector2|list|tuple,v3: Vector2|list|tuple,color: Color|list|tuple,) -> None:
2020
+ """Draw triangle within an image"""
2021
+ ...
2022
+ def image_draw_triangle_ex(dst: Any|list|tuple,v1: Vector2|list|tuple,v2: Vector2|list|tuple,v3: Vector2|list|tuple,c1: Color|list|tuple,c2: Color|list|tuple,c3: Color|list|tuple,) -> None:
2023
+ """Draw triangle with interpolated colors within an image"""
2024
+ ...
2025
+ def image_draw_triangle_fan(dst: Any|list|tuple,points: Any|list|tuple,pointCount: int,color: Color|list|tuple,) -> None:
2026
+ """Draw a triangle fan defined by points within an image (first vertex is the center)"""
2027
+ ...
2028
+ def image_draw_triangle_lines(dst: Any|list|tuple,v1: Vector2|list|tuple,v2: Vector2|list|tuple,v3: Vector2|list|tuple,color: Color|list|tuple,) -> None:
2029
+ """Draw triangle outline within an image"""
2030
+ ...
2031
+ def image_draw_triangle_strip(dst: Any|list|tuple,points: Any|list|tuple,pointCount: int,color: Color|list|tuple,) -> None:
2032
+ """Draw a triangle strip defined by points within an image"""
2033
+ ...
1962
2034
  def image_flip_horizontal(image: Any|list|tuple,) -> None:
1963
2035
  """Flip image horizontally"""
1964
2036
  ...
@@ -1968,9 +2040,15 @@ def image_flip_vertical(image: Any|list|tuple,) -> None:
1968
2040
  def image_format(image: Any|list|tuple,newFormat: int,) -> None:
1969
2041
  """Convert image data to desired format"""
1970
2042
  ...
2043
+ def image_from_channel(image: Image|list|tuple,selectedChannel: int,) -> Image:
2044
+ """Create an image from a selected channel of another image (GRAYSCALE)"""
2045
+ ...
1971
2046
  def image_from_image(image: Image|list|tuple,rec: Rectangle|list|tuple,) -> Image:
1972
2047
  """Create an image from another image piece"""
1973
2048
  ...
2049
+ def image_kernel_convolution(image: Any|list|tuple,kernel: Any,kernelSize: int,) -> None:
2050
+ """Apply custom square convolution kernel to image"""
2051
+ ...
1974
2052
  def image_mipmaps(image: Any|list|tuple,) -> None:
1975
2053
  """Compute all mipmap levels for a provided image"""
1976
2054
  ...
@@ -2019,8 +2097,8 @@ def is_audio_stream_playing(stream: AudioStream|list|tuple,) -> bool:
2019
2097
  def is_audio_stream_processed(stream: AudioStream|list|tuple,) -> bool:
2020
2098
  """Check if any audio stream buffers requires refill"""
2021
2099
  ...
2022
- def is_audio_stream_ready(stream: AudioStream|list|tuple,) -> bool:
2023
- """Checks if an audio stream is ready"""
2100
+ def is_audio_stream_valid(stream: AudioStream|list|tuple,) -> bool:
2101
+ """Checks if an audio stream is valid (buffers initialized)"""
2024
2102
  ...
2025
2103
  def is_cursor_hidden() -> bool:
2026
2104
  """Check if cursor is not visible"""
@@ -2034,8 +2112,11 @@ def is_file_dropped() -> bool:
2034
2112
  def is_file_extension(fileName: str,ext: str,) -> bool:
2035
2113
  """Check file extension (including point: .png, .wav)"""
2036
2114
  ...
2037
- def is_font_ready(font: Font|list|tuple,) -> bool:
2038
- """Check if a font is ready"""
2115
+ def is_file_name_valid(fileName: str,) -> bool:
2116
+ """Check if fileName is valid for the platform/OS"""
2117
+ ...
2118
+ def is_font_valid(font: Font|list|tuple,) -> bool:
2119
+ """Check if a font is valid (font data loaded, WARNING: GPU texture not checked)"""
2039
2120
  ...
2040
2121
  def is_gamepad_available(gamepad: int,) -> bool:
2041
2122
  """Check if a gamepad is available"""
@@ -2055,8 +2136,8 @@ def is_gamepad_button_up(gamepad: int,button: int,) -> bool:
2055
2136
  def is_gesture_detected(gesture: int,) -> bool:
2056
2137
  """Check if a gesture have been detected"""
2057
2138
  ...
2058
- def is_image_ready(image: Image|list|tuple,) -> bool:
2059
- """Check if an image is ready"""
2139
+ def is_image_valid(image: Image|list|tuple,) -> bool:
2140
+ """Check if an image is valid (data and parameters)"""
2060
2141
  ...
2061
2142
  def is_key_down(key: int,) -> bool:
2062
2143
  """Check if a key is being pressed"""
@@ -2065,7 +2146,7 @@ def is_key_pressed(key: int,) -> bool:
2065
2146
  """Check if a key has been pressed once"""
2066
2147
  ...
2067
2148
  def is_key_pressed_repeat(key: int,) -> bool:
2068
- """Check if a key has been pressed again (Only PLATFORM_DESKTOP)"""
2149
+ """Check if a key has been pressed again"""
2069
2150
  ...
2070
2151
  def is_key_released(key: int,) -> bool:
2071
2152
  """Check if a key has been released once"""
@@ -2073,14 +2154,14 @@ def is_key_released(key: int,) -> bool:
2073
2154
  def is_key_up(key: int,) -> bool:
2074
2155
  """Check if a key is NOT being pressed"""
2075
2156
  ...
2076
- def is_material_ready(material: Material|list|tuple,) -> bool:
2077
- """Check if a material is ready"""
2157
+ def is_material_valid(material: Material|list|tuple,) -> bool:
2158
+ """Check if a material is valid (shader assigned, map textures loaded in GPU)"""
2078
2159
  ...
2079
2160
  def is_model_animation_valid(model: Model|list|tuple,anim: ModelAnimation|list|tuple,) -> bool:
2080
2161
  """Check model animation skeleton match"""
2081
2162
  ...
2082
- def is_model_ready(model: Model|list|tuple,) -> bool:
2083
- """Check if a model is ready"""
2163
+ def is_model_valid(model: Model|list|tuple,) -> bool:
2164
+ """Check if a model is valid (loaded in GPU, VAO/VBOs)"""
2084
2165
  ...
2085
2166
  def is_mouse_button_down(button: int,) -> bool:
2086
2167
  """Check if a mouse button is being pressed"""
@@ -2094,47 +2175,47 @@ def is_mouse_button_released(button: int,) -> bool:
2094
2175
  def is_mouse_button_up(button: int,) -> bool:
2095
2176
  """Check if a mouse button is NOT being pressed"""
2096
2177
  ...
2097
- def is_music_ready(music: Music|list|tuple,) -> bool:
2098
- """Checks if a music stream is ready"""
2099
- ...
2100
2178
  def is_music_stream_playing(music: Music|list|tuple,) -> bool:
2101
2179
  """Check if music is playing"""
2102
2180
  ...
2181
+ def is_music_valid(music: Music|list|tuple,) -> bool:
2182
+ """Checks if a music stream is valid (context and buffers initialized)"""
2183
+ ...
2103
2184
  def is_path_file(path: str,) -> bool:
2104
2185
  """Check if a given path is a file or a directory"""
2105
2186
  ...
2106
- def is_render_texture_ready(target: RenderTexture|list|tuple,) -> bool:
2107
- """Check if a render texture is ready"""
2187
+ def is_render_texture_valid(target: RenderTexture|list|tuple,) -> bool:
2188
+ """Check if a render texture is valid (loaded in GPU)"""
2108
2189
  ...
2109
- def is_shader_ready(shader: Shader|list|tuple,) -> bool:
2110
- """Check if a shader is ready"""
2190
+ def is_shader_valid(shader: Shader|list|tuple,) -> bool:
2191
+ """Check if a shader is valid (loaded on GPU)"""
2111
2192
  ...
2112
2193
  def is_sound_playing(sound: Sound|list|tuple,) -> bool:
2113
2194
  """Check if a sound is currently playing"""
2114
2195
  ...
2115
- def is_sound_ready(sound: Sound|list|tuple,) -> bool:
2116
- """Checks if a sound is ready"""
2196
+ def is_sound_valid(sound: Sound|list|tuple,) -> bool:
2197
+ """Checks if a sound is valid (data loaded and buffers initialized)"""
2117
2198
  ...
2118
- def is_texture_ready(texture: Texture|list|tuple,) -> bool:
2119
- """Check if a texture is ready"""
2199
+ def is_texture_valid(texture: Texture|list|tuple,) -> bool:
2200
+ """Check if a texture is valid (loaded in GPU)"""
2120
2201
  ...
2121
- def is_wave_ready(wave: Wave|list|tuple,) -> bool:
2122
- """Checks if wave data is ready"""
2202
+ def is_wave_valid(wave: Wave|list|tuple,) -> bool:
2203
+ """Checks if wave data is valid (data loaded and parameters)"""
2123
2204
  ...
2124
2205
  def is_window_focused() -> bool:
2125
- """Check if window is currently focused (only PLATFORM_DESKTOP)"""
2206
+ """Check if window is currently focused"""
2126
2207
  ...
2127
2208
  def is_window_fullscreen() -> bool:
2128
2209
  """Check if window is currently fullscreen"""
2129
2210
  ...
2130
2211
  def is_window_hidden() -> bool:
2131
- """Check if window is currently hidden (only PLATFORM_DESKTOP)"""
2212
+ """Check if window is currently hidden"""
2132
2213
  ...
2133
2214
  def is_window_maximized() -> bool:
2134
- """Check if window is currently maximized (only PLATFORM_DESKTOP)"""
2215
+ """Check if window is currently maximized"""
2135
2216
  ...
2136
2217
  def is_window_minimized() -> bool:
2137
- """Check if window is currently minimized (only PLATFORM_DESKTOP)"""
2218
+ """Check if window is currently minimized"""
2138
2219
  ...
2139
2220
  def is_window_ready() -> bool:
2140
2221
  """Check if window has been initialized successfully"""
@@ -2161,7 +2242,7 @@ def load_directory_files(dirPath: str,) -> FilePathList:
2161
2242
  """Load directory filepaths"""
2162
2243
  ...
2163
2244
  def load_directory_files_ex(basePath: str,filter: str,scanSubdirs: bool,) -> FilePathList:
2164
- """Load directory filepaths with extension filtering and recursive directory scan"""
2245
+ """Load directory filepaths with extension filtering and recursive directory scan. Use 'DIR' in the filter string to include directories in the result"""
2165
2246
  ...
2166
2247
  def load_dropped_files() -> FilePathList:
2167
2248
  """Load dropped filepaths"""
@@ -2179,7 +2260,7 @@ def load_font_data(fileData: str,dataSize: int,fontSize: int,codepoints: Any,cod
2179
2260
  """Load font data for further use"""
2180
2261
  ...
2181
2262
  def load_font_ex(fileName: str,fontSize: int,codepoints: Any,codepointCount: int,) -> Font:
2182
- """Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont"""
2263
+ """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"""
2183
2264
  ...
2184
2265
  def load_font_from_image(image: Image|list|tuple,key: Color|list|tuple,firstChar: int,) -> Font:
2185
2266
  """Load font from Image (XNA style)"""
@@ -2193,6 +2274,9 @@ def load_image(fileName: str,) -> Image:
2193
2274
  def load_image_anim(fileName: str,frames: Any,) -> Image:
2194
2275
  """Load image sequence from file (frames appended to image.data)"""
2195
2276
  ...
2277
+ def load_image_anim_from_memory(fileType: str,fileData: str,dataSize: int,frames: Any,) -> Image:
2278
+ """Load image sequence from memory buffer"""
2279
+ ...
2196
2280
  def load_image_colors(image: Image|list|tuple,) -> Any:
2197
2281
  """Load color data from image as a Color array (RGBA - 32bit)"""
2198
2282
  ...
@@ -2211,9 +2295,6 @@ def load_image_palette(image: Image|list|tuple,maxPaletteSize: int,colorCount: A
2211
2295
  def load_image_raw(fileName: str,width: int,height: int,format: int,headerSize: int,) -> Image:
2212
2296
  """Load image from RAW file data"""
2213
2297
  ...
2214
- def load_image_svg(fileNameOrString: str,width: int,height: int,) -> Image:
2215
- """Load image from SVG file data or string with specified size"""
2216
- ...
2217
2298
  def load_material_default() -> Material:
2218
2299
  """Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps)"""
2219
2300
  ...
@@ -2280,13 +2361,19 @@ def load_wave_from_memory(fileType: str,fileData: str,dataSize: int,) -> Wave:
2280
2361
  def load_wave_samples(wave: Wave|list|tuple,) -> Any:
2281
2362
  """Load samples data from wave as a 32bit float data array"""
2282
2363
  ...
2364
+ def make_directory(dirPath: str,) -> int:
2365
+ """Create directories (including full path requested), returns 0 on success"""
2366
+ ...
2283
2367
  def matrix_add(left: Matrix|list|tuple,right: Matrix|list|tuple,) -> Matrix:
2284
2368
  """"""
2285
2369
  ...
2370
+ def matrix_decompose(mat: Matrix|list|tuple,translation: Any|list|tuple,rotation: Any|list|tuple,scale: Any|list|tuple,) -> None:
2371
+ """"""
2372
+ ...
2286
2373
  def matrix_determinant(mat: Matrix|list|tuple,) -> float:
2287
2374
  """"""
2288
2375
  ...
2289
- def matrix_frustum(left: float,right: float,bottom: float,top: float,near: float,far: float,) -> Matrix:
2376
+ def matrix_frustum(left: float,right: float,bottom: float,top: float,nearPlane: float,farPlane: float,) -> Matrix:
2290
2377
  """"""
2291
2378
  ...
2292
2379
  def matrix_identity() -> Matrix:
@@ -2344,7 +2431,7 @@ def matrix_transpose(mat: Matrix|list|tuple,) -> Matrix:
2344
2431
  """"""
2345
2432
  ...
2346
2433
  def maximize_window() -> None:
2347
- """Set window state: maximized, if resizable (only PLATFORM_DESKTOP)"""
2434
+ """Set window state: maximized, if resizable"""
2348
2435
  ...
2349
2436
  def measure_text(text: str,fontSize: int,) -> int:
2350
2437
  """Measure string width for default font"""
@@ -2362,7 +2449,7 @@ def mem_realloc(ptr: Any,size: int,) -> Any:
2362
2449
  """Internal memory reallocator"""
2363
2450
  ...
2364
2451
  def minimize_window() -> None:
2365
- """Set window state: minimized, if resizable (only PLATFORM_DESKTOP)"""
2452
+ """Set window state: minimized, if resizable"""
2366
2453
  ...
2367
2454
  def normalize(value: float,start: float,end: float,) -> float:
2368
2455
  """"""
@@ -2409,6 +2496,9 @@ def quaternion_add(q1: Vector4|list|tuple,q2: Vector4|list|tuple,) -> Vector4:
2409
2496
  def quaternion_add_value(q: Vector4|list|tuple,add: float,) -> Vector4:
2410
2497
  """"""
2411
2498
  ...
2499
+ def quaternion_cubic_hermite_spline(q1: Vector4|list|tuple,outTangent1: Vector4|list|tuple,q2: Vector4|list|tuple,inTangent2: Vector4|list|tuple,t: float,) -> Vector4:
2500
+ """"""
2501
+ ...
2412
2502
  def quaternion_divide(q1: Vector4|list|tuple,q2: Vector4|list|tuple,) -> Vector4:
2413
2503
  """"""
2414
2504
  ...
@@ -2479,7 +2569,7 @@ def reset_physics() -> None:
2479
2569
  """Reset physics system (global variables)"""
2480
2570
  ...
2481
2571
  def restore_window() -> None:
2482
- """Set window state: not minimized/maximized (only PLATFORM_DESKTOP)"""
2572
+ """Set window state: not minimized/maximized"""
2483
2573
  ...
2484
2574
  def resume_audio_stream(stream: AudioStream|list|tuple,) -> None:
2485
2575
  """Resume audio stream"""
@@ -2532,6 +2622,9 @@ def set_exit_key(key: int,) -> None:
2532
2622
  def set_gamepad_mappings(mappings: str,) -> int:
2533
2623
  """Set internal gamepad mappings (SDL_GameControllerDB)"""
2534
2624
  ...
2625
+ def set_gamepad_vibration(gamepad: int,leftMotor: float,rightMotor: float,duration: float,) -> None:
2626
+ """Set gamepad vibration for both motors (duration in seconds)"""
2627
+ ...
2535
2628
  def set_gestures_enabled(flags: int,) -> None:
2536
2629
  """Enable a set of gestures using flags"""
2537
2630
  ...
@@ -2635,13 +2728,13 @@ def set_trace_log_level(logLevel: int,) -> None:
2635
2728
  """Set the current threshold (minimum) log level"""
2636
2729
  ...
2637
2730
  def set_window_focused() -> None:
2638
- """Set window focused (only PLATFORM_DESKTOP)"""
2731
+ """Set window focused"""
2639
2732
  ...
2640
2733
  def set_window_icon(image: Image|list|tuple,) -> None:
2641
- """Set icon for window (single image, RGBA 32bit, only PLATFORM_DESKTOP)"""
2734
+ """Set icon for window (single image, RGBA 32bit)"""
2642
2735
  ...
2643
2736
  def set_window_icons(images: Any|list|tuple,count: int,) -> None:
2644
- """Set icon for window (multiple images, RGBA 32bit, only PLATFORM_DESKTOP)"""
2737
+ """Set icon for window (multiple images, RGBA 32bit)"""
2645
2738
  ...
2646
2739
  def set_window_max_size(width: int,height: int,) -> None:
2647
2740
  """Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE)"""
@@ -2653,19 +2746,19 @@ def set_window_monitor(monitor: int,) -> None:
2653
2746
  """Set monitor for the current window"""
2654
2747
  ...
2655
2748
  def set_window_opacity(opacity: float,) -> None:
2656
- """Set window opacity [0.0f..1.0f] (only PLATFORM_DESKTOP)"""
2749
+ """Set window opacity [0.0f..1.0f]"""
2657
2750
  ...
2658
2751
  def set_window_position(x: int,y: int,) -> None:
2659
- """Set window position on screen (only PLATFORM_DESKTOP)"""
2752
+ """Set window position on screen"""
2660
2753
  ...
2661
2754
  def set_window_size(width: int,height: int,) -> None:
2662
2755
  """Set window dimensions"""
2663
2756
  ...
2664
2757
  def set_window_state(flags: int,) -> None:
2665
- """Set window configuration state using flags (only PLATFORM_DESKTOP)"""
2758
+ """Set window configuration state using flags"""
2666
2759
  ...
2667
2760
  def set_window_title(title: str,) -> None:
2668
- """Set title for window (only PLATFORM_DESKTOP and PLATFORM_WEB)"""
2761
+ """Set title for window"""
2669
2762
  ...
2670
2763
  def show_cursor() -> None:
2671
2764
  """Shows cursor"""
@@ -2724,6 +2817,12 @@ def text_split(text: str,delimiter: str,count: Any,) -> list[str]:
2724
2817
  def text_subtext(text: str,position: int,length: int,) -> str:
2725
2818
  """Get a piece of a text string"""
2726
2819
  ...
2820
+ def text_to_camel(text: str,) -> str:
2821
+ """Get Camel case notation version of provided string"""
2822
+ ...
2823
+ def text_to_float(text: str,) -> float:
2824
+ """Get float value from text (negative values not supported)"""
2825
+ ...
2727
2826
  def text_to_integer(text: str,) -> int:
2728
2827
  """Get integer value from text (negative values not supported)"""
2729
2828
  ...
@@ -2733,14 +2832,17 @@ def text_to_lower(text: str,) -> str:
2733
2832
  def text_to_pascal(text: str,) -> str:
2734
2833
  """Get Pascal case notation version of provided string"""
2735
2834
  ...
2835
+ def text_to_snake(text: str,) -> str:
2836
+ """Get Snake case notation version of provided string"""
2837
+ ...
2736
2838
  def text_to_upper(text: str,) -> str:
2737
2839
  """Get upper case version of provided string"""
2738
2840
  ...
2739
2841
  def toggle_borderless_windowed() -> None:
2740
- """Toggle window state: borderless windowed (only PLATFORM_DESKTOP)"""
2842
+ """Toggle window state: borderless windowed, resizes window to match monitor resolution"""
2741
2843
  ...
2742
2844
  def toggle_fullscreen() -> None:
2743
- """Toggle window state: fullscreen/windowed (only PLATFORM_DESKTOP)"""
2845
+ """Toggle window state: fullscreen/windowed, resizes monitor to match window resolution"""
2744
2846
  ...
2745
2847
  def trace_log(*args) -> None:
2746
2848
  """VARARG FUNCTION - MAY NOT BE SUPPORTED BY CFFI"""
@@ -2748,7 +2850,7 @@ def trace_log(*args) -> None:
2748
2850
  def unload_audio_stream(stream: AudioStream|list|tuple,) -> None:
2749
2851
  """Unload audio stream and free memory"""
2750
2852
  ...
2751
- def unload_automation_event_list(list_0: Any|list|tuple,) -> None:
2853
+ def unload_automation_event_list(list_0: AutomationEventList|list|tuple,) -> None:
2752
2854
  """Unload automation events list from file"""
2753
2855
  ...
2754
2856
  def unload_codepoints(codepoints: Any,) -> None:
@@ -2842,7 +2944,10 @@ def update_mesh_buffer(mesh: Mesh|list|tuple,index: int,data: Any,dataSize: int,
2842
2944
  """Update mesh vertex data in GPU for a specific buffer index"""
2843
2945
  ...
2844
2946
  def update_model_animation(model: Model|list|tuple,anim: ModelAnimation|list|tuple,frame: int,) -> None:
2845
- """Update model animation pose"""
2947
+ """Update model animation pose (CPU)"""
2948
+ ...
2949
+ def update_model_animation_bones(model: Model|list|tuple,anim: ModelAnimation|list|tuple,frame: int,) -> None:
2950
+ """Update model animation mesh bone matrices (GPU skinning)"""
2846
2951
  ...
2847
2952
  def update_music_stream(music: Music|list|tuple,) -> None:
2848
2953
  """Updates buffers for music streaming"""
@@ -2877,16 +2982,16 @@ def vector2_clamp(v: Vector2|list|tuple,min_1: Vector2|list|tuple,max_2: Vector2
2877
2982
  def vector2_clamp_value(v: Vector2|list|tuple,min_1: float,max_2: float,) -> Vector2:
2878
2983
  """"""
2879
2984
  ...
2880
- def vector_2distance(v1: Vector2|list|tuple,v2: Vector2|list|tuple,) -> float:
2985
+ def vector2_distance(v1: Vector2|list|tuple,v2: Vector2|list|tuple,) -> float:
2881
2986
  """"""
2882
2987
  ...
2883
- def vector_2distance_sqr(v1: Vector2|list|tuple,v2: Vector2|list|tuple,) -> float:
2988
+ def vector2_distance_sqr(v1: Vector2|list|tuple,v2: Vector2|list|tuple,) -> float:
2884
2989
  """"""
2885
2990
  ...
2886
- def vector_2divide(v1: Vector2|list|tuple,v2: Vector2|list|tuple,) -> Vector2:
2991
+ def vector2_divide(v1: Vector2|list|tuple,v2: Vector2|list|tuple,) -> Vector2:
2887
2992
  """"""
2888
2993
  ...
2889
- def vector_2dot_product(v1: Vector2|list|tuple,v2: Vector2|list|tuple,) -> float:
2994
+ def vector2_dot_product(v1: Vector2|list|tuple,v2: Vector2|list|tuple,) -> float:
2890
2995
  """"""
2891
2996
  ...
2892
2997
  def vector2_equals(p: Vector2|list|tuple,q: Vector2|list|tuple,) -> int:
@@ -2907,6 +3012,12 @@ def vector2_lerp(v1: Vector2|list|tuple,v2: Vector2|list|tuple,amount: float,) -
2907
3012
  def vector2_line_angle(start: Vector2|list|tuple,end: Vector2|list|tuple,) -> float:
2908
3013
  """"""
2909
3014
  ...
3015
+ def vector2_max(v1: Vector2|list|tuple,v2: Vector2|list|tuple,) -> Vector2:
3016
+ """"""
3017
+ ...
3018
+ def vector2_min(v1: Vector2|list|tuple,v2: Vector2|list|tuple,) -> Vector2:
3019
+ """"""
3020
+ ...
2910
3021
  def vector2_move_towards(v: Vector2|list|tuple,target: Vector2|list|tuple,maxDistance: float,) -> Vector2:
2911
3022
  """"""
2912
3023
  ...
@@ -2925,6 +3036,9 @@ def vector2_one() -> Vector2:
2925
3036
  def vector2_reflect(v: Vector2|list|tuple,normal: Vector2|list|tuple,) -> Vector2:
2926
3037
  """"""
2927
3038
  ...
3039
+ def vector2_refract(v: Vector2|list|tuple,n: Vector2|list|tuple,r: float,) -> Vector2:
3040
+ """"""
3041
+ ...
2928
3042
  def vector2_rotate(v: Vector2|list|tuple,angle: float,) -> Vector2:
2929
3043
  """"""
2930
3044
  ...
@@ -2964,16 +3078,19 @@ def vector3_clamp_value(v: Vector3|list|tuple,min_1: float,max_2: float,) -> Vec
2964
3078
  def vector3_cross_product(v1: Vector3|list|tuple,v2: Vector3|list|tuple,) -> Vector3:
2965
3079
  """"""
2966
3080
  ...
2967
- def vector_3distance(v1: Vector3|list|tuple,v2: Vector3|list|tuple,) -> float:
3081
+ def vector3_cubic_hermite(v1: Vector3|list|tuple,tangent1: Vector3|list|tuple,v2: Vector3|list|tuple,tangent2: Vector3|list|tuple,amount: float,) -> Vector3:
2968
3082
  """"""
2969
3083
  ...
2970
- def vector_3distance_sqr(v1: Vector3|list|tuple,v2: Vector3|list|tuple,) -> float:
3084
+ def vector3_distance(v1: Vector3|list|tuple,v2: Vector3|list|tuple,) -> float:
2971
3085
  """"""
2972
3086
  ...
2973
- def vector_3divide(v1: Vector3|list|tuple,v2: Vector3|list|tuple,) -> Vector3:
3087
+ def vector3_distance_sqr(v1: Vector3|list|tuple,v2: Vector3|list|tuple,) -> float:
2974
3088
  """"""
2975
3089
  ...
2976
- def vector_3dot_product(v1: Vector3|list|tuple,v2: Vector3|list|tuple,) -> float:
3090
+ def vector3_divide(v1: Vector3|list|tuple,v2: Vector3|list|tuple,) -> Vector3:
3091
+ """"""
3092
+ ...
3093
+ def vector3_dot_product(v1: Vector3|list|tuple,v2: Vector3|list|tuple,) -> float:
2977
3094
  """"""
2978
3095
  ...
2979
3096
  def vector3_equals(p: Vector3|list|tuple,q: Vector3|list|tuple,) -> int:
@@ -2997,6 +3114,9 @@ def vector3_max(v1: Vector3|list|tuple,v2: Vector3|list|tuple,) -> Vector3:
2997
3114
  def vector3_min(v1: Vector3|list|tuple,v2: Vector3|list|tuple,) -> Vector3:
2998
3115
  """"""
2999
3116
  ...
3117
+ def vector3_move_towards(v: Vector3|list|tuple,target: Vector3|list|tuple,maxDistance: float,) -> Vector3:
3118
+ """"""
3119
+ ...
3000
3120
  def vector3_multiply(v1: Vector3|list|tuple,v2: Vector3|list|tuple,) -> Vector3:
3001
3121
  """"""
3002
3122
  ...
@@ -3054,14 +3174,80 @@ def vector3_unproject(source: Vector3|list|tuple,projection: Matrix|list|tuple,v
3054
3174
  def vector3_zero() -> Vector3:
3055
3175
  """"""
3056
3176
  ...
3177
+ def vector4_add(v1: Vector4|list|tuple,v2: Vector4|list|tuple,) -> Vector4:
3178
+ """"""
3179
+ ...
3180
+ def vector4_add_value(v: Vector4|list|tuple,add: float,) -> Vector4:
3181
+ """"""
3182
+ ...
3183
+ def vector4_distance(v1: Vector4|list|tuple,v2: Vector4|list|tuple,) -> float:
3184
+ """"""
3185
+ ...
3186
+ def vector4_distance_sqr(v1: Vector4|list|tuple,v2: Vector4|list|tuple,) -> float:
3187
+ """"""
3188
+ ...
3189
+ def vector4_divide(v1: Vector4|list|tuple,v2: Vector4|list|tuple,) -> Vector4:
3190
+ """"""
3191
+ ...
3192
+ def vector4_dot_product(v1: Vector4|list|tuple,v2: Vector4|list|tuple,) -> float:
3193
+ """"""
3194
+ ...
3195
+ def vector4_equals(p: Vector4|list|tuple,q: Vector4|list|tuple,) -> int:
3196
+ """"""
3197
+ ...
3198
+ def vector4_invert(v: Vector4|list|tuple,) -> Vector4:
3199
+ """"""
3200
+ ...
3201
+ def vector4_length(v: Vector4|list|tuple,) -> float:
3202
+ """"""
3203
+ ...
3204
+ def vector4_length_sqr(v: Vector4|list|tuple,) -> float:
3205
+ """"""
3206
+ ...
3207
+ def vector4_lerp(v1: Vector4|list|tuple,v2: Vector4|list|tuple,amount: float,) -> Vector4:
3208
+ """"""
3209
+ ...
3210
+ def vector4_max(v1: Vector4|list|tuple,v2: Vector4|list|tuple,) -> Vector4:
3211
+ """"""
3212
+ ...
3213
+ def vector4_min(v1: Vector4|list|tuple,v2: Vector4|list|tuple,) -> Vector4:
3214
+ """"""
3215
+ ...
3216
+ def vector4_move_towards(v: Vector4|list|tuple,target: Vector4|list|tuple,maxDistance: float,) -> Vector4:
3217
+ """"""
3218
+ ...
3219
+ def vector4_multiply(v1: Vector4|list|tuple,v2: Vector4|list|tuple,) -> Vector4:
3220
+ """"""
3221
+ ...
3222
+ def vector4_negate(v: Vector4|list|tuple,) -> Vector4:
3223
+ """"""
3224
+ ...
3225
+ def vector4_normalize(v: Vector4|list|tuple,) -> Vector4:
3226
+ """"""
3227
+ ...
3228
+ def vector4_one() -> Vector4:
3229
+ """"""
3230
+ ...
3231
+ def vector4_scale(v: Vector4|list|tuple,scale: float,) -> Vector4:
3232
+ """"""
3233
+ ...
3234
+ def vector4_subtract(v1: Vector4|list|tuple,v2: Vector4|list|tuple,) -> Vector4:
3235
+ """"""
3236
+ ...
3237
+ def vector4_subtract_value(v: Vector4|list|tuple,add: float,) -> Vector4:
3238
+ """"""
3239
+ ...
3240
+ def vector4_zero() -> Vector4:
3241
+ """"""
3242
+ ...
3057
3243
  def wait_time(seconds: float,) -> None:
3058
3244
  """Wait for some time (halt program execution)"""
3059
3245
  ...
3060
3246
  def wave_copy(wave: Wave|list|tuple,) -> Wave:
3061
3247
  """Copy a wave to a new wave"""
3062
3248
  ...
3063
- def wave_crop(wave: Any|list|tuple,initSample: int,finalSample: int,) -> None:
3064
- """Crop a wave to defined samples range"""
3249
+ def wave_crop(wave: Any|list|tuple,initFrame: int,finalFrame: int,) -> None:
3250
+ """Crop a wave to defined frames range"""
3065
3251
  ...
3066
3252
  def wave_format(wave: Any|list|tuple,sampleRate: int,sampleSize: int,channels: int,) -> None:
3067
3253
  """Convert wave data to desired format"""
@@ -3228,6 +3414,9 @@ def glfw_get_window_pos(window: Any|list|tuple,xpos: Any,ypos: Any,) -> None:
3228
3414
  def glfw_get_window_size(window: Any|list|tuple,width: Any,height: Any,) -> None:
3229
3415
  """"""
3230
3416
  ...
3417
+ def glfw_get_window_title(window: Any|list|tuple,) -> str:
3418
+ """"""
3419
+ ...
3231
3420
  def glfw_get_window_user_pointer(window: Any|list|tuple,) -> Any:
3232
3421
  """"""
3233
3422
  ...
@@ -3438,6 +3627,9 @@ def rl_active_texture_slot(slot: int,) -> None:
3438
3627
  def rl_begin(mode: int,) -> None:
3439
3628
  """Initialize drawing mode (how to organize vertex)"""
3440
3629
  ...
3630
+ def rl_bind_framebuffer(target: int,framebuffer: int,) -> None:
3631
+ """Bind framebuffer (FBO)"""
3632
+ ...
3441
3633
  def rl_bind_image_texture(id: int,index: int,format: int,readonly: bool,) -> None:
3442
3634
  """Bind image texture"""
3443
3635
  ...
@@ -3468,6 +3660,9 @@ def rl_color4f(x: float,y: float,z: float,w: float,) -> None:
3468
3660
  def rl_color4ub(r: int,g: int,b: int,a: int,) -> None:
3469
3661
  """Define one vertex (color) - 4 byte"""
3470
3662
  ...
3663
+ def rl_color_mask(r: bool,g: bool,b: bool,a: bool,) -> None:
3664
+ """Color mask control"""
3665
+ ...
3471
3666
  def rl_compile_shader(shaderCode: str,type: int,) -> int:
3472
3667
  """Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER)"""
3473
3668
  ...
@@ -3526,7 +3721,7 @@ def rl_disable_vertex_buffer_element() -> None:
3526
3721
  """Disable vertex buffer element (VBO element)"""
3527
3722
  ...
3528
3723
  def rl_disable_wire_mode() -> None:
3529
- """Disable wire mode ( and point ) maybe rename"""
3724
+ """Disable wire (and point) mode"""
3530
3725
  ...
3531
3726
  def rl_draw_render_batch(batch: Any|list|tuple,) -> None:
3532
3727
  """Draw render batch data (Update->Draw->Reset)"""
@@ -3535,16 +3730,16 @@ def rl_draw_render_batch_active() -> None:
3535
3730
  """Update and draw internal render batch"""
3536
3731
  ...
3537
3732
  def rl_draw_vertex_array(offset: int,count: int,) -> None:
3538
- """"""
3733
+ """Draw vertex array (currently active vao)"""
3539
3734
  ...
3540
3735
  def rl_draw_vertex_array_elements(offset: int,count: int,buffer: Any,) -> None:
3541
- """"""
3736
+ """Draw vertex array elements"""
3542
3737
  ...
3543
3738
  def rl_draw_vertex_array_elements_instanced(offset: int,count: int,buffer: Any,instances: int,) -> None:
3544
- """"""
3739
+ """Draw vertex array elements with instancing"""
3545
3740
  ...
3546
3741
  def rl_draw_vertex_array_instanced(offset: int,count: int,instances: int,) -> None:
3547
- """"""
3742
+ """Draw vertex array (currently active vao) with instancing"""
3548
3743
  ...
3549
3744
  def rl_enable_backface_culling() -> None:
3550
3745
  """Enable backface culling"""
@@ -3612,6 +3807,15 @@ def rl_frustum(left: float,right: float,bottom: float,top: float,znear: float,zf
3612
3807
  def rl_gen_texture_mipmaps(id: int,width: int,height: int,format: int,mipmaps: Any,) -> None:
3613
3808
  """Generate mipmap data for selected texture"""
3614
3809
  ...
3810
+ def rl_get_active_framebuffer() -> int:
3811
+ """Get the currently active render texture (fbo), 0 for default framebuffer"""
3812
+ ...
3813
+ def rl_get_cull_distance_far() -> float:
3814
+ """Get cull plane distance far"""
3815
+ ...
3816
+ def rl_get_cull_distance_near() -> float:
3817
+ """Get cull plane distance near"""
3818
+ ...
3615
3819
  def rl_get_framebuffer_height() -> int:
3616
3820
  """Get default framebuffer height"""
3617
3821
  ...
@@ -3678,7 +3882,7 @@ def rl_load_draw_quad() -> None:
3678
3882
  def rl_load_extensions(loader: Any,) -> None:
3679
3883
  """Load OpenGL extensions (loader function required)"""
3680
3884
  ...
3681
- def rl_load_framebuffer(width: int,height: int,) -> int:
3885
+ def rl_load_framebuffer() -> int:
3682
3886
  """Load an empty framebuffer"""
3683
3887
  ...
3684
3888
  def rl_load_identity() -> None:
@@ -3697,10 +3901,10 @@ def rl_load_shader_program(vShaderId: int,fShaderId: int,) -> int:
3697
3901
  """Load custom shader program"""
3698
3902
  ...
3699
3903
  def rl_load_texture(data: Any,width: int,height: int,format: int,mipmapCount: int,) -> int:
3700
- """Load texture in GPU"""
3904
+ """Load texture data"""
3701
3905
  ...
3702
- def rl_load_texture_cubemap(data: Any,size: int,format: int,) -> int:
3703
- """Load texture cubemap"""
3906
+ def rl_load_texture_cubemap(data: Any,size: int,format: int,mipmapCount: int,) -> int:
3907
+ """Load texture cubemap data"""
3704
3908
  ...
3705
3909
  def rl_load_texture_depth(width: int,height: int,useRenderBuffer: bool,) -> int:
3706
3910
  """Load depth texture/renderbuffer (to be attached to fbo)"""
@@ -3709,10 +3913,10 @@ def rl_load_vertex_array() -> int:
3709
3913
  """Load vertex array (vao) if supported"""
3710
3914
  ...
3711
3915
  def rl_load_vertex_buffer(buffer: Any,size: int,dynamic: bool,) -> int:
3712
- """Load a vertex buffer attribute"""
3916
+ """Load a vertex buffer object"""
3713
3917
  ...
3714
3918
  def rl_load_vertex_buffer_element(buffer: Any,size: int,dynamic: bool,) -> int:
3715
- """Load a new attributes element buffer"""
3919
+ """Load vertex buffer elements object"""
3716
3920
  ...
3717
3921
  def rl_matrix_mode(mode: int,) -> None:
3718
3922
  """Choose the current matrix to be transformed"""
@@ -3759,6 +3963,9 @@ def rl_set_blend_factors_separate(glSrcRGB: int,glDstRGB: int,glSrcAlpha: int,gl
3759
3963
  def rl_set_blend_mode(mode: int,) -> None:
3760
3964
  """Set blending mode"""
3761
3965
  ...
3966
+ def rl_set_clip_planes(nearPlane: float,farPlane: float,) -> None:
3967
+ """Set clip planes distances"""
3968
+ ...
3762
3969
  def rl_set_cull_face(mode: int,) -> None:
3763
3970
  """Set face culling mode"""
3764
3971
  ...
@@ -3795,20 +4002,23 @@ def rl_set_texture(id: int,) -> None:
3795
4002
  def rl_set_uniform(locIndex: int,value: Any,uniformType: int,count: int,) -> None:
3796
4003
  """Set shader value uniform"""
3797
4004
  ...
4005
+ def rl_set_uniform_matrices(locIndex: int,mat: Any|list|tuple,count: int,) -> None:
4006
+ """Set shader value matrices"""
4007
+ ...
3798
4008
  def rl_set_uniform_matrix(locIndex: int,mat: Matrix|list|tuple,) -> None:
3799
4009
  """Set shader value matrix"""
3800
4010
  ...
3801
4011
  def rl_set_uniform_sampler(locIndex: int,textureId: int,) -> None:
3802
4012
  """Set shader value sampler"""
3803
4013
  ...
3804
- def rl_set_vertex_attribute(index: int,compSize: int,type: int,normalized: bool,stride: int,pointer: Any,) -> None:
3805
- """"""
4014
+ def rl_set_vertex_attribute(index: int,compSize: int,type: int,normalized: bool,stride: int,offset: int,) -> None:
4015
+ """Set vertex attribute data configuration"""
3806
4016
  ...
3807
4017
  def rl_set_vertex_attribute_default(locIndex: int,value: Any,attribType: int,count: int,) -> None:
3808
- """Set vertex attribute default value"""
4018
+ """Set vertex attribute default value, when attribute to provided"""
3809
4019
  ...
3810
4020
  def rl_set_vertex_attribute_divisor(index: int,divisor: int,) -> None:
3811
- """"""
4021
+ """Set vertex attribute data divisor"""
3812
4022
  ...
3813
4023
  def rl_tex_coord2f(x: float,y: float,) -> None:
3814
4024
  """Define one vertex (texture coordinate) - 2 float"""
@@ -3835,22 +4045,22 @@ def rl_unload_texture(id: int,) -> None:
3835
4045
  """Unload texture from GPU memory"""
3836
4046
  ...
3837
4047
  def rl_unload_vertex_array(vaoId: int,) -> None:
3838
- """"""
4048
+ """Unload vertex array (vao)"""
3839
4049
  ...
3840
4050
  def rl_unload_vertex_buffer(vboId: int,) -> None:
3841
- """"""
4051
+ """Unload vertex buffer object"""
3842
4052
  ...
3843
4053
  def rl_update_shader_buffer(id: int,data: Any,dataSize: int,offset: int,) -> None:
3844
4054
  """Update SSBO buffer data"""
3845
4055
  ...
3846
4056
  def rl_update_texture(id: int,offsetX: int,offsetY: int,width: int,height: int,format: int,data: Any,) -> None:
3847
- """Update GPU texture with new data"""
4057
+ """Update texture with new data on GPU"""
3848
4058
  ...
3849
4059
  def rl_update_vertex_buffer(bufferId: int,data: Any,dataSize: int,offset: int,) -> None:
3850
- """Update GPU buffer with new data"""
4060
+ """Update vertex buffer object data on GPU buffer"""
3851
4061
  ...
3852
4062
  def rl_update_vertex_buffer_elements(id: int,data: Any,dataSize: int,offset: int,) -> None:
3853
- """Update vertex buffer elements with new data"""
4063
+ """Update vertex buffer elements data on GPU buffer"""
3854
4064
  ...
3855
4065
  def rl_vertex2f(x: float,y: float,) -> None:
3856
4066
  """Define one vertex (position) - 2 float"""
@@ -3999,7 +4209,7 @@ class Matrix2x2:
3999
4209
  self.m11:float = m11 # type: ignore
4000
4210
  class Mesh:
4001
4211
  """ struct """
4002
- def __init__(self, vertexCount: int|None = None, triangleCount: int|None = None, vertices: Any|None = None, texcoords: Any|None = None, texcoords2: Any|None = None, normals: Any|None = None, tangents: Any|None = None, colors: str|None = None, indices: Any|None = None, animVertices: Any|None = None, animNormals: Any|None = None, boneIds: str|None = None, boneWeights: Any|None = None, vaoId: int|None = None, vboId: Any|None = None):
4212
+ def __init__(self, vertexCount: int|None = None, triangleCount: int|None = None, vertices: Any|None = None, texcoords: Any|None = None, texcoords2: Any|None = None, normals: Any|None = None, tangents: Any|None = None, colors: str|None = None, indices: Any|None = None, animVertices: Any|None = None, animNormals: Any|None = None, boneIds: str|None = None, boneWeights: Any|None = None, boneMatrices: Any|None = None, boneCount: int|None = None, vaoId: int|None = None, vboId: Any|None = None):
4003
4213
  self.vertexCount:int = vertexCount # type: ignore
4004
4214
  self.triangleCount:int = triangleCount # type: ignore
4005
4215
  self.vertices:Any = vertices # type: ignore
@@ -4013,6 +4223,8 @@ class Mesh:
4013
4223
  self.animNormals:Any = animNormals # type: ignore
4014
4224
  self.boneIds:str = boneIds # type: ignore
4015
4225
  self.boneWeights:Any = boneWeights # type: ignore
4226
+ self.boneMatrices:Any = boneMatrices # type: ignore
4227
+ self.boneCount:int = boneCount # type: ignore
4016
4228
  self.vaoId:int = vaoId # type: ignore
4017
4229
  self.vboId:Any = vboId # type: ignore
4018
4230
  class Model:
@@ -4178,12 +4390,11 @@ class Vector4:
4178
4390
  self.w:float = w # type: ignore
4179
4391
  class VrDeviceInfo:
4180
4392
  """ struct """
4181
- def __init__(self, hResolution: int|None = None, vResolution: int|None = None, hScreenSize: float|None = None, vScreenSize: float|None = None, vScreenCenter: float|None = None, eyeToScreenDistance: float|None = None, lensSeparationDistance: float|None = None, interpupillaryDistance: float|None = None, lensDistortionValues: list|None = None, chromaAbCorrection: list|None = None):
4393
+ def __init__(self, hResolution: int|None = None, vResolution: int|None = None, hScreenSize: float|None = None, vScreenSize: float|None = None, eyeToScreenDistance: float|None = None, lensSeparationDistance: float|None = None, interpupillaryDistance: float|None = None, lensDistortionValues: list|None = None, chromaAbCorrection: list|None = None):
4182
4394
  self.hResolution:int = hResolution # type: ignore
4183
4395
  self.vResolution:int = vResolution # type: ignore
4184
4396
  self.hScreenSize:float = hScreenSize # type: ignore
4185
4397
  self.vScreenSize:float = vScreenSize # type: ignore
4186
- self.vScreenCenter:float = vScreenCenter # type: ignore
4187
4398
  self.eyeToScreenDistance:float = eyeToScreenDistance # type: ignore
4188
4399
  self.lensSeparationDistance:float = lensSeparationDistance # type: ignore
4189
4400
  self.interpupillaryDistance:float = interpupillaryDistance # type: ignore
@@ -4234,10 +4445,11 @@ class rlRenderBatch:
4234
4445
  self.currentDepth:float = currentDepth # type: ignore
4235
4446
  class rlVertexBuffer:
4236
4447
  """ struct """
4237
- def __init__(self, elementCount: int|None = None, vertices: Any|None = None, texcoords: Any|None = None, colors: str|None = None, indices: Any|None = None, vaoId: int|None = None, vboId: list|None = None):
4448
+ def __init__(self, elementCount: int|None = None, vertices: Any|None = None, texcoords: Any|None = None, normals: Any|None = None, colors: str|None = None, indices: Any|None = None, vaoId: int|None = None, vboId: list|None = None):
4238
4449
  self.elementCount:int = elementCount # type: ignore
4239
4450
  self.vertices:Any = vertices # type: ignore
4240
4451
  self.texcoords:Any = texcoords # type: ignore
4452
+ self.normals:Any = normals # type: ignore
4241
4453
  self.colors:str = colors # type: ignore
4242
4454
  self.indices:Any = indices # type: ignore
4243
4455
  self.vaoId:int = vaoId # type: ignore