raylib 5.6.0.0.dev4__tar.gz → 6.0.0.0rc2__tar.gz

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.
Files changed (32) hide show
  1. {raylib-5.6.0.0.dev4/raylib.egg-info → raylib-6.0.0.0rc2}/PKG-INFO +5 -5
  2. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/README.md +4 -4
  3. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/pyray/__init__.pyi +65 -51
  4. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/raylib/__init__.pyi +58 -46
  5. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/raylib/build.py +2 -2
  6. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/raylib/defines.py +9 -9
  7. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/raylib/enums.py +3 -2
  8. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/raylib/raygui.h.modified +16 -7
  9. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/raylib/raylib.h.modified +68 -56
  10. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/raylib/raymath.h.modified +16 -5
  11. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/raylib/rlgl.h.modified +22 -21
  12. raylib-6.0.0.0rc2/raylib/version.py +1 -0
  13. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2/raylib.egg-info}/PKG-INFO +5 -5
  14. raylib-6.0.0.0rc2/version.py +1 -0
  15. raylib-5.6.0.0.dev4/raylib/version.py +0 -1
  16. raylib-5.6.0.0.dev4/version.py +0 -1
  17. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/LICENSE +0 -0
  18. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/MANIFEST.in +0 -0
  19. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/pyproject.toml +0 -0
  20. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/pyray/__init__.py +0 -0
  21. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/pyray/py.typed +0 -0
  22. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/raylib/__init__.py +0 -0
  23. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/raylib/colors.py +0 -0
  24. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/raylib/glfw3.h.modified +0 -0
  25. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/raylib/physac.h.modified +0 -0
  26. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/raylib/py.typed +0 -0
  27. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/raylib.egg-info/SOURCES.txt +0 -0
  28. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/raylib.egg-info/dependency_links.txt +0 -0
  29. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/raylib.egg-info/requires.txt +0 -0
  30. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/raylib.egg-info/top_level.txt +0 -0
  31. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/setup.cfg +0 -0
  32. {raylib-5.6.0.0.dev4 → raylib-6.0.0.0rc2}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: raylib
3
- Version: 5.6.0.0.dev4
3
+ Version: 6.0.0.0rc2
4
4
  Summary: Python CFFI bindings for Raylib
5
5
  Home-page: https://github.com/electronstudio/raylib-python-cffi
6
6
  Author: Electron Studio
@@ -27,7 +27,7 @@ Dynamic: license-file
27
27
  Dynamic: requires-dist
28
28
  Dynamic: summary
29
29
 
30
- # Python Bindings for Raylib 5.6
30
+ # Python Bindings for Raylib 6.0
31
31
  ## Libraries: raymath, raygui, rlgl, physac and GLFW
32
32
  ## Backends: Desktop, SDL, DRM, Web, Software rendering
33
33
  ## Platforms: Windows, Mac, Linux, Raspberry Pi, Web
@@ -50,7 +50,7 @@ original Raylib.
50
50
 
51
51
  # Quickstart
52
52
 
53
- `pip3 install raylib==5.5.0.4 --break-system-packages`
53
+ `pip3 install raylib==6.0.0.0 --break-system-packages`
54
54
  ```python
55
55
  from pyray import *
56
56
  init_window(800, 450, "Hello")
@@ -101,7 +101,7 @@ Then make sure you have the latest pip installed:
101
101
  Then install
102
102
 
103
103
  python3 -m pip install setuptools
104
- python3 -m pip install raylib==5.5.0.4
104
+ python3 -m pip install raylib==6.0.0.0
105
105
 
106
106
  On most platforms it should install a binary wheel. If yours isn't available then pip will attempt to build from
107
107
  source, in which case you will need to have Raylib development libs installed, e.g.
@@ -123,7 +123,7 @@ Older MacOS requires building from source but this is usually simple:
123
123
 
124
124
  brew install pkg-config
125
125
  brew install raylib
126
- python3 -m pip install raylib==5.5.0.4
126
+ python3 -m pip install raylib==6.0.0.0
127
127
 
128
128
  ## Linux
129
129
 
@@ -1,4 +1,4 @@
1
- # Python Bindings for Raylib 5.6
1
+ # Python Bindings for Raylib 6.0
2
2
  ## Libraries: raymath, raygui, rlgl, physac and GLFW
3
3
  ## Backends: Desktop, SDL, DRM, Web, Software rendering
4
4
  ## Platforms: Windows, Mac, Linux, Raspberry Pi, Web
@@ -21,7 +21,7 @@ original Raylib.
21
21
 
22
22
  # Quickstart
23
23
 
24
- `pip3 install raylib==5.5.0.4 --break-system-packages`
24
+ `pip3 install raylib==6.0.0.0 --break-system-packages`
25
25
  ```python
26
26
  from pyray import *
27
27
  init_window(800, 450, "Hello")
@@ -72,7 +72,7 @@ Then make sure you have the latest pip installed:
72
72
  Then install
73
73
 
74
74
  python3 -m pip install setuptools
75
- python3 -m pip install raylib==5.5.0.4
75
+ python3 -m pip install raylib==6.0.0.0
76
76
 
77
77
  On most platforms it should install a binary wheel. If yours isn't available then pip will attempt to build from
78
78
  source, in which case you will need to have Raylib development libs installed, e.g.
@@ -94,7 +94,7 @@ Older MacOS requires building from source but this is usually simple:
94
94
 
95
95
  brew install pkg-config
96
96
  brew install raylib
97
- python3 -m pip install raylib==5.5.0.4
97
+ python3 -m pip install raylib==6.0.0.0
98
98
 
99
99
  ## Linux
100
100
 
@@ -239,8 +239,8 @@ class ShaderLocationIndex(int):
239
239
  SHADER_LOC_MAP_BRDF = 25
240
240
  SHADER_LOC_VERTEX_BONEIDS = 26
241
241
  SHADER_LOC_VERTEX_BONEWEIGHTS = 27
242
- SHADER_LOC_BONE_MATRICES = 28
243
- SHADER_LOC_VERTEX_INSTANCE_TX = 29
242
+ SHADER_LOC_MATRIX_BONETRANSFORMS = 28
243
+ SHADER_LOC_VERTEX_INSTANCETRANSFORM = 29
244
244
 
245
245
  class ShaderUniformDataType(int):
246
246
  """Shader uniform data type."""
@@ -368,7 +368,7 @@ class NPatchLayout(int):
368
368
 
369
369
  class rlGlVersion(int):
370
370
  """OpenGL version."""
371
- RL_OPENGL_11_SOFTWARE = 0
371
+ RL_OPENGL_SOFTWARE = 0
372
372
  RL_OPENGL_11 = 1
373
373
  RL_OPENGL_21 = 2
374
374
  RL_OPENGL_33 = 3
@@ -599,6 +599,7 @@ class GuiSliderProperty(int):
599
599
  class GuiProgressBarProperty(int):
600
600
  """ProgressBar."""
601
601
  PROGRESS_PADDING = 16
602
+ PROGRESS_SIDE = 17
602
603
 
603
604
  class GuiScrollBarProperty(int):
604
605
  """ScrollBar."""
@@ -1123,7 +1124,7 @@ def draw_circle(centerX: int,centerY: int,radius: float,color: Color|list|tuple,
1123
1124
  def draw_circle_3d(center: Vector3|list|tuple,radius: float,rotationAxis: Vector3|list|tuple,rotationAngle: float,color: Color|list|tuple,) -> None:
1124
1125
  """Draw a circle in 3D world space."""
1125
1126
  ...
1126
- def draw_circle_gradient(centerX: int,centerY: int,radius: float,inner: Color|list|tuple,outer: Color|list|tuple,) -> None:
1127
+ def draw_circle_gradient(center: Vector2|list|tuple,radius: float,inner: Color|list|tuple,outer: Color|list|tuple,) -> None:
1127
1128
  """Draw a gradient-filled circle."""
1128
1129
  ...
1129
1130
  def draw_circle_lines(centerX: int,centerY: int,radius: float,color: Color|list|tuple,) -> None:
@@ -1216,12 +1217,6 @@ def draw_model(model: Model|list|tuple,position: Vector3|list|tuple,scale: float
1216
1217
  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:
1217
1218
  """Draw a model with extended parameters."""
1218
1219
  ...
1219
- def draw_model_points(model: Model|list|tuple,position: Vector3|list|tuple,scale: float,tint: Color|list|tuple,) -> None:
1220
- """Draw a model as points."""
1221
- ...
1222
- 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:
1223
- """Draw a model as points with extended parameters."""
1224
- ...
1225
1220
  def draw_model_wires(model: Model|list|tuple,position: Vector3|list|tuple,scale: float,tint: Color|list|tuple,) -> None:
1226
1221
  """Draw a model wires (with texture if set)."""
1227
1222
  ...
@@ -1433,7 +1428,7 @@ def export_image_as_code(image: Image|list|tuple,fileName: str,) -> bool:
1433
1428
  """Export image as code file defining an array of bytes, returns true on success."""
1434
1429
  ...
1435
1430
  def export_image_to_memory(image: Image|list|tuple,fileType: str,fileSize: Any,) -> str:
1436
- """Export image to memory buffer."""
1431
+ """Export image to memory buffer, memory must be MemFree()."""
1437
1432
  ...
1438
1433
  def export_mesh(mesh: Mesh|list|tuple,fileName: str,) -> bool:
1439
1434
  """Export mesh data to file, returns true on success."""
@@ -2358,10 +2353,10 @@ def load_codepoints(text: str,count: Any,) -> Any:
2358
2353
  """Load all codepoints from a UTF-8 text string, codepoints count returned by parameter."""
2359
2354
  ...
2360
2355
  def load_directory_files(dirPath: str,) -> FilePathList:
2361
- """Load directory filepaths."""
2356
+ """Load directory filepaths, files and directories, no subdirs scan."""
2362
2357
  ...
2363
2358
  def load_directory_files_ex(basePath: str,filter: str,scanSubdirs: bool,) -> FilePathList:
2364
- """Load directory filepaths with extension filtering and recursive directory scan. Use 'DIR' in the filter string to include directories in the result."""
2359
+ """Load directory filepaths with extension filtering and subdir scan."""
2365
2360
  ...
2366
2361
  def load_dropped_files() -> FilePathList:
2367
2362
  """Load dropped filepaths."""
@@ -2513,6 +2508,9 @@ def matrix_look_at(eye: Vector3|list|tuple,target: Vector3|list|tuple,up: Vector
2513
2508
  def matrix_multiply(left: Matrix|list|tuple,right: Matrix|list|tuple,) -> Matrix:
2514
2509
  """."""
2515
2510
  ...
2511
+ def matrix_multiply_value(left: Matrix|list|tuple,value: float,) -> Matrix:
2512
+ """."""
2513
+ ...
2516
2514
  def matrix_ortho(left: float,right: float,bottom: float,top: float,nearPlane: float,farPlane: float,) -> Matrix:
2517
2515
  """."""
2518
2516
  ...
@@ -2561,6 +2559,9 @@ def maximize_window() -> None:
2561
2559
  def measure_text(text: str,fontSize: int,) -> int:
2562
2560
  """Measure string width for default font."""
2563
2561
  ...
2562
+ def measure_text_codepoints(font: Font|list|tuple,codepoints: Any,length: int,fontSize: float,spacing: float,) -> Vector2:
2563
+ """Measure string size for an existing array of codepoints for Font."""
2564
+ ...
2564
2565
  def measure_text_ex(font: Font|list|tuple,text: str,fontSize: float,spacing: float,) -> Vector2:
2565
2566
  """Measure string size for Font."""
2566
2567
  ...
@@ -2725,7 +2726,7 @@ def set_audio_stream_callback(stream: AudioStream|list|tuple,callback: Any,) ->
2725
2726
  """Audio thread callback to request new data."""
2726
2727
  ...
2727
2728
  def set_audio_stream_pan(stream: AudioStream|list|tuple,pan: float,) -> None:
2728
- """Set pan for audio stream (0.5 is centered)."""
2729
+ """Set pan for audio stream (-1.0 to 1.0 range, 0.0 is centered)."""
2729
2730
  ...
2730
2731
  def set_audio_stream_pitch(stream: AudioStream|list|tuple,pitch: float,) -> None:
2731
2732
  """Set pitch for audio stream (1.0 is base level)."""
@@ -2929,7 +2930,10 @@ def text_format(*args) -> str:
2929
2930
  """VARARG FUNCTION - MAY NOT BE SUPPORTED BY CFFI"""
2930
2931
  ...
2931
2932
  def text_insert(text: str,insert: str,position: int,) -> str:
2932
- """Insert text in a position (WARNING: memory must be freed!)."""
2933
+ """Insert text in a defined byte position."""
2934
+ ...
2935
+ def text_insert_alloc(text: str,insert: str,position: int,) -> str:
2936
+ """Insert text in a defined byte position, memory must be MemFree()."""
2933
2937
  ...
2934
2938
  def text_is_equal(text1: str,text2: str,) -> bool:
2935
2939
  """Check if two text string are equal."""
@@ -2944,10 +2948,16 @@ def text_remove_spaces(text: str,) -> str:
2944
2948
  """Remove text spaces, concat words."""
2945
2949
  ...
2946
2950
  def text_replace(text: str,search: str,replacement: str,) -> str:
2947
- """Replace text string (WARNING: memory must be freed!)."""
2951
+ """Replace text string with new string."""
2952
+ ...
2953
+ def text_replace_alloc(text: str,search: str,replacement: str,) -> str:
2954
+ """Replace text string with new string, memory must be MemFree()."""
2948
2955
  ...
2949
2956
  def text_replace_between(text: str,begin: str,end: str,replacement: str,) -> str:
2950
- """Replace text between two specific strings (WARNING: memory must be freed!)."""
2957
+ """Replace text between two specific strings."""
2958
+ ...
2959
+ def text_replace_between_alloc(text: str,begin: str,end: str,replacement: str,) -> str:
2960
+ """Replace text between two specific strings, memory must be MemFree()."""
2951
2961
  ...
2952
2962
  def text_split(text: str,delimiter: str,count: Any,) -> list[str]:
2953
2963
  """Split text into multiple strings, using MAX_TEXTSPLIT_COUNT static strings."""
@@ -3030,9 +3040,6 @@ def unload_mesh(mesh: Mesh|list|tuple,) -> None:
3030
3040
  def unload_model(model: Model|list|tuple,) -> None:
3031
3041
  """Unload model (including meshes) from memory (RAM and/or VRAM)."""
3032
3042
  ...
3033
- def unload_model_animation(anim: ModelAnimation|list|tuple,) -> None:
3034
- """Unload animation data."""
3035
- ...
3036
3043
  def unload_model_animations(animations: Any|list|tuple,animCount: int,) -> None:
3037
3044
  """Unload animation array data."""
3038
3045
  ...
@@ -3084,11 +3091,11 @@ def update_camera_pro(camera: Any|list|tuple,movement: Vector3|list|tuple,rotati
3084
3091
  def update_mesh_buffer(mesh: Mesh|list|tuple,index: int,data: Any,dataSize: int,offset: int,) -> None:
3085
3092
  """Update mesh vertex data in GPU for a specific buffer index."""
3086
3093
  ...
3087
- def update_model_animation(model: Model|list|tuple,anim: ModelAnimation|list|tuple,frame: int,) -> None:
3088
- """Update model animation pose (CPU)."""
3094
+ def update_model_animation(model: Model|list|tuple,anim: ModelAnimation|list|tuple,frame: float,) -> None:
3095
+ """Update model animation pose (vertex buffers and bone matrices)."""
3089
3096
  ...
3090
- def update_model_animation_bones(model: Model|list|tuple,anim: ModelAnimation|list|tuple,frame: int,) -> None:
3091
- """Update model animation mesh bone matrices (GPU skinning)."""
3097
+ def update_model_animation_ex(model: Model|list|tuple,animA: ModelAnimation|list|tuple,frameA: float,animB: ModelAnimation|list|tuple,frameB: float,blend: float,) -> None:
3098
+ """Update model animation pose, blending two animations."""
3092
3099
  ...
3093
3100
  def update_music_stream(music: Music|list|tuple,) -> None:
3094
3101
  """Updates buffers for music streaming."""
@@ -3804,9 +3811,6 @@ def rl_color4ub(r: int,g: int,b: int,a: int,) -> None:
3804
3811
  def rl_color_mask(r: bool,g: bool,b: bool,a: bool,) -> None:
3805
3812
  """Color mask control."""
3806
3813
  ...
3807
- def rl_compile_shader(shaderCode: str,type: int,) -> int:
3808
- """Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER)."""
3809
- ...
3810
3814
  def rl_compute_shader_dispatch(groupX: int,groupY: int,groupZ: int,) -> None:
3811
3815
  """Dispatch compute shader (equivalent to *draw* for graphics pipeline)."""
3812
3816
  ...
@@ -3948,7 +3952,7 @@ def rl_enable_wire_mode() -> None:
3948
3952
  def rl_end() -> None:
3949
3953
  """Finish vertex providing."""
3950
3954
  ...
3951
- def rl_framebuffer_attach(fboId: int,texId: int,attachType: int,texType: int,mipLevel: int,) -> None:
3955
+ def rl_framebuffer_attach(id: int,texId: int,attachType: int,texType: int,mipLevel: int,) -> None:
3952
3956
  """Attach texture/renderbuffer to a framebuffer."""
3953
3957
  ...
3954
3958
  def rl_framebuffer_complete(id: int,) -> bool:
@@ -3981,10 +3985,10 @@ def rl_get_gl_texture_formats(format: int,glInternalFormat: Any,glFormat: Any,gl
3981
3985
  def rl_get_line_width() -> float:
3982
3986
  """Get the line drawing width."""
3983
3987
  ...
3984
- def rl_get_location_attrib(shaderId: int,attribName: str,) -> int:
3988
+ def rl_get_location_attrib(id: int,attribName: str,) -> int:
3985
3989
  """Get shader location attribute, requires shader program id."""
3986
3990
  ...
3987
- def rl_get_location_uniform(shaderId: int,uniformName: str,) -> int:
3991
+ def rl_get_location_uniform(id: int,uniformName: str,) -> int:
3988
3992
  """Get shader location uniform, requires shader program id."""
3989
3993
  ...
3990
3994
  def rl_get_matrix_modelview() -> Matrix:
@@ -4029,9 +4033,6 @@ def rl_get_version() -> int:
4029
4033
  def rl_is_stereo_render_enabled() -> bool:
4030
4034
  """Check if stereo render is enabled."""
4031
4035
  ...
4032
- def rl_load_compute_shader_program(shaderId: int,) -> int:
4033
- """Load compute shader program."""
4034
- ...
4035
4036
  def rl_load_draw_cube() -> None:
4036
4037
  """Load and draw a cube."""
4037
4038
  ...
@@ -4050,14 +4051,20 @@ def rl_load_identity() -> None:
4050
4051
  def rl_load_render_batch(numBuffers: int,bufferElements: int,) -> rlRenderBatch:
4051
4052
  """Load a render batch system."""
4052
4053
  ...
4054
+ def rl_load_shader(code: str,type: int,) -> int:
4055
+ """Load (compile) shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER)."""
4056
+ ...
4053
4057
  def rl_load_shader_buffer(size: int,data: Any,usageHint: int,) -> int:
4054
4058
  """Load shader storage buffer object (SSBO)."""
4055
4059
  ...
4056
- def rl_load_shader_code(vsCode: str,fsCode: str,) -> int:
4060
+ def rl_load_shader_program(vsCode: str,fsCode: str,) -> int:
4057
4061
  """Load shader from code strings."""
4058
4062
  ...
4059
- def rl_load_shader_program(vShaderId: int,fShaderId: int,) -> int:
4060
- """Load custom shader program."""
4063
+ def rl_load_shader_program_compute(csId: int,) -> int:
4064
+ """Load compute shader program."""
4065
+ ...
4066
+ def rl_load_shader_program_ex(vsId: int,fsId: int,) -> int:
4067
+ """Load shader program, using already loaded shader ids."""
4061
4068
  ...
4062
4069
  def rl_load_texture(data: Any,width: int,height: int,format: int,mipmapCount: int,) -> int:
4063
4070
  """Load texture data."""
@@ -4200,6 +4207,9 @@ def rl_unload_framebuffer(id: int,) -> None:
4200
4207
  def rl_unload_render_batch(batch: rlRenderBatch|list|tuple,) -> None:
4201
4208
  """Unload render batch system."""
4202
4209
  ...
4210
+ def rl_unload_shader(id: int,) -> None:
4211
+ """Unload shader, loaded with rlLoadShader()."""
4212
+ ...
4203
4213
  def rl_unload_shader_buffer(ssboId: int,) -> None:
4204
4214
  """Unload shader storage buffer object (SSBO)."""
4205
4215
  ...
@@ -4373,7 +4383,7 @@ class Matrix:
4373
4383
  self.m15:float = m15 # type: ignore
4374
4384
  class Mesh:
4375
4385
  """Mesh, vertex data and vao/vbo."""
4376
- 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):
4386
+ 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, boneCount: int|None = None, boneIndices: str|None = None, boneWeights: Any|None = None, animVertices: Any|None = None, animNormals: Any|None = None, vaoId: int|None = None, vboId: Any|None = None):
4377
4387
  self.vertexCount:int = vertexCount # type: ignore
4378
4388
  self.triangleCount:int = triangleCount # type: ignore
4379
4389
  self.vertices:Any = vertices # type: ignore
@@ -4383,34 +4393,38 @@ class Mesh:
4383
4393
  self.tangents:Any = tangents # type: ignore
4384
4394
  self.colors:str = colors # type: ignore
4385
4395
  self.indices:Any = indices # type: ignore
4396
+ self.boneCount:int = boneCount # type: ignore
4397
+ self.boneIndices:str = boneIndices # type: ignore
4398
+ self.boneWeights:Any = boneWeights # type: ignore
4386
4399
  self.animVertices:Any = animVertices # type: ignore
4387
4400
  self.animNormals:Any = animNormals # type: ignore
4388
- self.boneIds:str = boneIds # type: ignore
4389
- self.boneWeights:Any = boneWeights # type: ignore
4390
- self.boneMatrices:Any = boneMatrices # type: ignore
4391
- self.boneCount:int = boneCount # type: ignore
4392
4401
  self.vaoId:int = vaoId # type: ignore
4393
4402
  self.vboId:Any = vboId # type: ignore
4394
4403
  class Model:
4395
4404
  """Model, meshes, materials and animation data."""
4396
- def __init__(self, transform: Matrix|list|tuple|None = None, meshCount: int|None = None, materialCount: int|None = None, meshes: Any|None = None, materials: Any|None = None, meshMaterial: Any|None = None, boneCount: int|None = None, bones: Any|None = None, bindPose: Any|None = None):
4405
+ def __init__(self, transform: Matrix|list|tuple|None = None, meshCount: int|None = None, materialCount: int|None = None, meshes: Any|None = None, materials: Any|None = None, meshMaterial: Any|None = None, skeleton: ModelSkeleton|list|tuple|None = None, currentPose: Any|None = None, boneMatrices: Any|None = None):
4397
4406
  self.transform:Matrix = transform # type: ignore
4398
4407
  self.meshCount:int = meshCount # type: ignore
4399
4408
  self.materialCount:int = materialCount # type: ignore
4400
4409
  self.meshes:Any = meshes # type: ignore
4401
4410
  self.materials:Any = materials # type: ignore
4402
4411
  self.meshMaterial:Any = meshMaterial # type: ignore
4403
- self.boneCount:int = boneCount # type: ignore
4404
- self.bones:Any = bones # type: ignore
4405
- self.bindPose:Any = bindPose # type: ignore
4412
+ self.skeleton:ModelSkeleton = skeleton # type: ignore
4413
+ self.currentPose:Any = currentPose # type: ignore
4414
+ self.boneMatrices:Any = boneMatrices # type: ignore
4406
4415
  class ModelAnimation:
4407
- """ModelAnimation."""
4408
- def __init__(self, boneCount: int|None = None, frameCount: int|None = None, bones: Any|None = None, framePoses: Any|None = None, name: list|None = None):
4416
+ """ModelAnimation, contains a full animation sequence."""
4417
+ def __init__(self, name: list|None = None, boneCount: int|None = None, keyframeCount: int|None = None, keyframePoses: Any|None = None):
4418
+ self.name:list = name # type: ignore
4419
+ self.boneCount:int = boneCount # type: ignore
4420
+ self.keyframeCount:int = keyframeCount # type: ignore
4421
+ self.keyframePoses:Any = keyframePoses # type: ignore
4422
+ class ModelSkeleton:
4423
+ """Skeleton, animation bones hierarchy."""
4424
+ def __init__(self, boneCount: int|None = None, bones: Any|None = None, bindPose: Any|None = None):
4409
4425
  self.boneCount:int = boneCount # type: ignore
4410
- self.frameCount:int = frameCount # type: ignore
4411
4426
  self.bones:Any = bones # type: ignore
4412
- self.framePoses:Any = framePoses # type: ignore
4413
- self.name:list = name # type: ignore
4427
+ self.bindPose:Any = bindPose # type: ignore
4414
4428
  class Music:
4415
4429
  """Music, audio stream, anything longer than ~10 seconds should be streamed."""
4416
4430
  def __init__(self, stream: AudioStream|list|tuple|None = None, frameCount: int|None = None, looping: bool|None = None, ctxType: int|None = None, ctxData: Any|None = None):
@@ -4580,7 +4594,7 @@ class float16:
4580
4594
  def __init__(self, v: list|None = None):
4581
4595
  self.v:list = v # type: ignore
4582
4596
  class float3:
4583
- """NOTE: Helper types to be used instead of array return types for *ToFloat functions."""
4597
+ """."""
4584
4598
  def __init__(self, v: list|None = None):
4585
4599
  self.v:list = v # type: ignore
4586
4600
  class rlDrawCall: