raylib 5.5.0.0.dev2__cp311-cp311-manylinux2014_x86_64.whl → 5.5.0.0.dev3__cp311-cp311-manylinux2014_x86_64.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,6 +134,12 @@ def color_to_int(color: Color,) -> int:
134
134
  def compress_data(data: str,dataSize: int,compDataSize: Any,) -> str:
135
135
  """Compress data (DEFLATE algorithm), memory must be MemFree()"""
136
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
+ ...
137
143
  def create_physics_body_circle(pos: Vector2,radius: float,density: float,) -> Any:
138
144
  """Creates a new circle physics body with generic parameters"""
139
145
  ...
@@ -1229,8 +1235,8 @@ def is_audio_stream_playing(stream: AudioStream,) -> bool:
1229
1235
  def is_audio_stream_processed(stream: AudioStream,) -> bool:
1230
1236
  """Check if any audio stream buffers requires refill"""
1231
1237
  ...
1232
- def is_audio_stream_ready(stream: AudioStream,) -> bool:
1233
- """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)"""
1234
1240
  ...
1235
1241
  def is_cursor_hidden() -> bool:
1236
1242
  """Check if cursor is not visible"""
@@ -1247,8 +1253,8 @@ def is_file_extension(fileName: str,ext: str,) -> bool:
1247
1253
  def is_file_name_valid(fileName: str,) -> bool:
1248
1254
  """Check if fileName is valid for the platform/OS"""
1249
1255
  ...
1250
- def is_font_ready(font: Font,) -> bool:
1251
- """Check if a font is ready"""
1256
+ def is_font_valid(font: Font,) -> bool:
1257
+ """Check if a font is valid (font data loaded, WARNING: GPU texture not checked)"""
1252
1258
  ...
1253
1259
  def is_gamepad_available(gamepad: int,) -> bool:
1254
1260
  """Check if a gamepad is available"""
@@ -1268,8 +1274,8 @@ def is_gamepad_button_up(gamepad: int,button: int,) -> bool:
1268
1274
  def is_gesture_detected(gesture: int,) -> bool:
1269
1275
  """Check if a gesture have been detected"""
1270
1276
  ...
1271
- def is_image_ready(image: Image,) -> bool:
1272
- """Check if an image is ready"""
1277
+ def is_image_valid(image: Image,) -> bool:
1278
+ """Check if an image is valid (data and parameters)"""
1273
1279
  ...
1274
1280
  def is_key_down(key: int,) -> bool:
1275
1281
  """Check if a key is being pressed"""
@@ -1286,14 +1292,14 @@ def is_key_released(key: int,) -> bool:
1286
1292
  def is_key_up(key: int,) -> bool:
1287
1293
  """Check if a key is NOT being pressed"""
1288
1294
  ...
1289
- def is_material_ready(material: Material,) -> bool:
1290
- """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)"""
1291
1297
  ...
1292
1298
  def is_model_animation_valid(model: Model,anim: ModelAnimation,) -> bool:
1293
1299
  """Check model animation skeleton match"""
1294
1300
  ...
1295
- def is_model_ready(model: Model,) -> bool:
1296
- """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)"""
1297
1303
  ...
1298
1304
  def is_mouse_button_down(button: int,) -> bool:
1299
1305
  """Check if a mouse button is being pressed"""
@@ -1307,32 +1313,32 @@ def is_mouse_button_released(button: int,) -> bool:
1307
1313
  def is_mouse_button_up(button: int,) -> bool:
1308
1314
  """Check if a mouse button is NOT being pressed"""
1309
1315
  ...
1310
- def is_music_ready(music: Music,) -> bool:
1311
- """Checks if a music stream is ready"""
1312
- ...
1313
1316
  def is_music_stream_playing(music: Music,) -> bool:
1314
1317
  """Check if music is playing"""
1315
1318
  ...
1319
+ def is_music_valid(music: Music,) -> bool:
1320
+ """Checks if a music stream is valid (context and buffers initialized)"""
1321
+ ...
1316
1322
  def is_path_file(path: str,) -> bool:
1317
1323
  """Check if a given path is a file or a directory"""
1318
1324
  ...
1319
- def is_render_texture_ready(target: RenderTexture,) -> bool:
1320
- """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)"""
1321
1327
  ...
1322
- def is_shader_ready(shader: Shader,) -> bool:
1323
- """Check if a shader is ready"""
1328
+ def is_shader_valid(shader: Shader,) -> bool:
1329
+ """Check if a shader is valid (loaded on GPU)"""
1324
1330
  ...
1325
1331
  def is_sound_playing(sound: Sound,) -> bool:
1326
1332
  """Check if a sound is currently playing"""
1327
1333
  ...
1328
- def is_sound_ready(sound: Sound,) -> bool:
1329
- """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)"""
1330
1336
  ...
1331
- def is_texture_ready(texture: Texture,) -> bool:
1332
- """Check if a texture is ready"""
1337
+ def is_texture_valid(texture: Texture,) -> bool:
1338
+ """Check if a texture is valid (loaded in GPU)"""
1333
1339
  ...
1334
- def is_wave_ready(wave: Wave,) -> bool:
1335
- """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)"""
1336
1342
  ...
1337
1343
  def is_window_focused() -> bool:
1338
1344
  """Check if window is currently focused (only PLATFORM_DESKTOP)"""
raylib/__init__.pyi CHANGED
@@ -182,6 +182,12 @@ def ColorToInt(color: Color,) -> int:
182
182
  def CompressData(data: str,dataSize: int,compDataSize: Any,) -> str:
183
183
  """Compress data (DEFLATE algorithm), memory must be MemFree()"""
184
184
  ...
185
+ def ComputeCRC32(data: str,dataSize: int,) -> int:
186
+ """Compute CRC32 hash code"""
187
+ ...
188
+ def ComputeMD5(data: str,dataSize: int,) -> Any:
189
+ """Compute MD5 hash code, returns static int[4] (16 bytes)"""
190
+ ...
185
191
  def CreatePhysicsBodyCircle(pos: Vector2,radius: float,density: float,) -> Any:
186
192
  """Creates a new circle physics body with generic parameters"""
187
193
  ...
@@ -1597,8 +1603,8 @@ def IsAudioStreamPlaying(stream: AudioStream,) -> bool:
1597
1603
  def IsAudioStreamProcessed(stream: AudioStream,) -> bool:
1598
1604
  """Check if any audio stream buffers requires refill"""
1599
1605
  ...
1600
- def IsAudioStreamReady(stream: AudioStream,) -> bool:
1601
- """Checks if an audio stream is ready"""
1606
+ def IsAudioStreamValid(stream: AudioStream,) -> bool:
1607
+ """Checks if an audio stream is valid (buffers initialized)"""
1602
1608
  ...
1603
1609
  def IsCursorHidden() -> bool:
1604
1610
  """Check if cursor is not visible"""
@@ -1615,8 +1621,8 @@ def IsFileExtension(fileName: str,ext: str,) -> bool:
1615
1621
  def IsFileNameValid(fileName: str,) -> bool:
1616
1622
  """Check if fileName is valid for the platform/OS"""
1617
1623
  ...
1618
- def IsFontReady(font: Font,) -> bool:
1619
- """Check if a font is ready"""
1624
+ def IsFontValid(font: Font,) -> bool:
1625
+ """Check if a font is valid (font data loaded, WARNING: GPU texture not checked)"""
1620
1626
  ...
1621
1627
  def IsGamepadAvailable(gamepad: int,) -> bool:
1622
1628
  """Check if a gamepad is available"""
@@ -1636,8 +1642,8 @@ def IsGamepadButtonUp(gamepad: int,button: int,) -> bool:
1636
1642
  def IsGestureDetected(gesture: int,) -> bool:
1637
1643
  """Check if a gesture have been detected"""
1638
1644
  ...
1639
- def IsImageReady(image: Image,) -> bool:
1640
- """Check if an image is ready"""
1645
+ def IsImageValid(image: Image,) -> bool:
1646
+ """Check if an image is valid (data and parameters)"""
1641
1647
  ...
1642
1648
  def IsKeyDown(key: int,) -> bool:
1643
1649
  """Check if a key is being pressed"""
@@ -1654,14 +1660,14 @@ def IsKeyReleased(key: int,) -> bool:
1654
1660
  def IsKeyUp(key: int,) -> bool:
1655
1661
  """Check if a key is NOT being pressed"""
1656
1662
  ...
1657
- def IsMaterialReady(material: Material,) -> bool:
1658
- """Check if a material is ready"""
1663
+ def IsMaterialValid(material: Material,) -> bool:
1664
+ """Check if a material is valid (shader assigned, map textures loaded in GPU)"""
1659
1665
  ...
1660
1666
  def IsModelAnimationValid(model: Model,anim: ModelAnimation,) -> bool:
1661
1667
  """Check model animation skeleton match"""
1662
1668
  ...
1663
- def IsModelReady(model: Model,) -> bool:
1664
- """Check if a model is ready"""
1669
+ def IsModelValid(model: Model,) -> bool:
1670
+ """Check if a model is valid (loaded in GPU, VAO/VBOs)"""
1665
1671
  ...
1666
1672
  def IsMouseButtonDown(button: int,) -> bool:
1667
1673
  """Check if a mouse button is being pressed"""
@@ -1675,32 +1681,32 @@ def IsMouseButtonReleased(button: int,) -> bool:
1675
1681
  def IsMouseButtonUp(button: int,) -> bool:
1676
1682
  """Check if a mouse button is NOT being pressed"""
1677
1683
  ...
1678
- def IsMusicReady(music: Music,) -> bool:
1679
- """Checks if a music stream is ready"""
1680
- ...
1681
1684
  def IsMusicStreamPlaying(music: Music,) -> bool:
1682
1685
  """Check if music is playing"""
1683
1686
  ...
1687
+ def IsMusicValid(music: Music,) -> bool:
1688
+ """Checks if a music stream is valid (context and buffers initialized)"""
1689
+ ...
1684
1690
  def IsPathFile(path: str,) -> bool:
1685
1691
  """Check if a given path is a file or a directory"""
1686
1692
  ...
1687
- def IsRenderTextureReady(target: RenderTexture,) -> bool:
1688
- """Check if a render texture is ready"""
1693
+ def IsRenderTextureValid(target: RenderTexture,) -> bool:
1694
+ """Check if a render texture is valid (loaded in GPU)"""
1689
1695
  ...
1690
- def IsShaderReady(shader: Shader,) -> bool:
1691
- """Check if a shader is ready"""
1696
+ def IsShaderValid(shader: Shader,) -> bool:
1697
+ """Check if a shader is valid (loaded on GPU)"""
1692
1698
  ...
1693
1699
  def IsSoundPlaying(sound: Sound,) -> bool:
1694
1700
  """Check if a sound is currently playing"""
1695
1701
  ...
1696
- def IsSoundReady(sound: Sound,) -> bool:
1697
- """Checks if a sound is ready"""
1702
+ def IsSoundValid(sound: Sound,) -> bool:
1703
+ """Checks if a sound is valid (data loaded and buffers initialized)"""
1698
1704
  ...
1699
- def IsTextureReady(texture: Texture,) -> bool:
1700
- """Check if a texture is ready"""
1705
+ def IsTextureValid(texture: Texture,) -> bool:
1706
+ """Check if a texture is valid (loaded in GPU)"""
1701
1707
  ...
1702
- def IsWaveReady(wave: Wave,) -> bool:
1703
- """Checks if wave data is ready"""
1708
+ def IsWaveValid(wave: Wave,) -> bool:
1709
+ """Checks if wave data is valid (data loaded and parameters)"""
1704
1710
  ...
1705
1711
  def IsWindowFocused() -> bool:
1706
1712
  """Check if window is currently focused (only PLATFORM_DESKTOP)"""
raylib/raylib.h.modified CHANGED
@@ -849,7 +849,7 @@ typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileI
849
849
  // NOTE: Shader functionality is not available on OpenGL 1.1
850
850
  Shader LoadShader(const char *vsFileName, const char *fsFileName); // Load shader from files and bind default locations
851
851
  Shader LoadShaderFromMemory(const char *vsCode, const char *fsCode); // Load shader from code strings and bind default locations
852
- bool IsShaderReady(Shader shader); // Check if a shader is ready
852
+ bool IsShaderValid(Shader shader); // Check if a shader is valid (loaded on GPU)
853
853
  int GetShaderLocation(Shader shader, const char *uniformName); // Get shader uniform location
854
854
  int GetShaderLocationAttrib(Shader shader, const char *attribName); // Get shader attribute location
855
855
  void SetShaderValue(Shader shader, int locIndex, const void *value, int uniformType); // Set shader uniform value
@@ -938,6 +938,8 @@ typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileI
938
938
  unsigned char *DecompressData(const unsigned char *compData, int compDataSize, int *dataSize); // Decompress data (DEFLATE algorithm), memory must be MemFree()
939
939
  char *EncodeDataBase64(const unsigned char *data, int dataSize, int *outputSize); // Encode data to Base64 string, memory must be MemFree()
940
940
  unsigned char *DecodeDataBase64(const unsigned char *data, int *outputSize); // Decode Base64 string data, memory must be MemFree()
941
+ unsigned int ComputeCRC32(unsigned char *data, int dataSize); // Compute CRC32 hash code
942
+ unsigned int *ComputeMD5(unsigned char *data, int dataSize); // Compute MD5 hash code, returns static int[4] (16 bytes)
941
943
  // Automation events functionality
942
944
  AutomationEventList LoadAutomationEventList(const char *fileName); // Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS
943
945
  void UnloadAutomationEventList(AutomationEventList list); // Unload automation events list from file
@@ -1096,7 +1098,7 @@ typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileI
1096
1098
  Image LoadImageFromMemory(const char *fileType, const unsigned char *fileData, int dataSize); // Load image from memory buffer, fileType refers to extension: i.e. '.png'
1097
1099
  Image LoadImageFromTexture(Texture2D texture); // Load image from GPU texture data
1098
1100
  Image LoadImageFromScreen(void); // Load image from screen buffer and (screenshot)
1099
- bool IsImageReady(Image image); // Check if an image is ready
1101
+ bool IsImageValid(Image image); // Check if an image is valid (data and parameters)
1100
1102
  void UnloadImage(Image image); // Unload image from CPU memory (RAM)
1101
1103
  bool ExportImage(Image image, const char *fileName); // Export image data to file, returns true on success
1102
1104
  unsigned char *ExportImageToMemory(Image image, const char *fileType, int *fileSize); // Export image to memory buffer
@@ -1178,9 +1180,9 @@ typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileI
1178
1180
  Texture2D LoadTextureFromImage(Image image); // Load texture from image data
1179
1181
  TextureCubemap LoadTextureCubemap(Image image, int layout); // Load cubemap from image, multiple image cubemap layouts supported
1180
1182
  RenderTexture2D LoadRenderTexture(int width, int height); // Load texture for rendering (framebuffer)
1181
- bool IsTextureReady(Texture2D texture); // Check if a texture is ready
1183
+ bool IsTextureValid(Texture2D texture); // Check if a texture is valid (loaded in GPU)
1182
1184
  void UnloadTexture(Texture2D texture); // Unload texture from GPU memory (VRAM)
1183
- bool IsRenderTextureReady(RenderTexture2D target); // Check if a render texture is ready
1185
+ bool IsRenderTextureValid(RenderTexture2D target); // Check if a render texture is valid (loaded in GPU)
1184
1186
  void UnloadRenderTexture(RenderTexture2D target); // Unload render texture from GPU memory (VRAM)
1185
1187
  void UpdateTexture(Texture2D texture, const void *pixels); // Update GPU texture with new data
1186
1188
  void UpdateTextureRec(Texture2D texture, Rectangle rec, const void *pixels); // Update GPU texture rectangle with new data
@@ -1222,7 +1224,7 @@ typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileI
1222
1224
  Font LoadFontEx(const char *fileName, int fontSize, int *codepoints, int codepointCount); // 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
1223
1225
  Font LoadFontFromImage(Image image, Color key, int firstChar); // Load font from Image (XNA style)
1224
1226
  Font LoadFontFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int fontSize, int *codepoints, int codepointCount); // Load font from memory buffer, fileType refers to extension: i.e. '.ttf'
1225
- bool IsFontReady(Font font); // Check if a font is ready
1227
+ bool IsFontValid(Font font); // Check if a font is valid (font data loaded, WARNING: GPU texture not checked)
1226
1228
  GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSize, int *codepoints, int codepointCount, int type); // Load font data for further use
1227
1229
  Image GenImageFontAtlas(const GlyphInfo *glyphs, Rectangle **glyphRecs, int glyphCount, int fontSize, int padding, int packMethod); // Generate image font atlas using chars info
1228
1230
  void UnloadFontData(GlyphInfo *glyphs, int glyphCount); // Unload font chars info data (RAM)
@@ -1303,7 +1305,7 @@ typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileI
1303
1305
  // Model management functions
1304
1306
  Model LoadModel(const char *fileName); // Load model from files (meshes and materials)
1305
1307
  Model LoadModelFromMesh(Mesh mesh); // Load model from generated mesh (default material)
1306
- bool IsModelReady(Model model); // Check if a model is ready
1308
+ bool IsModelValid(Model model); // Check if a model is valid (loaded in GPU, VAO/VBOs)
1307
1309
  void UnloadModel(Model model); // Unload model (including meshes) from memory (RAM and/or VRAM)
1308
1310
  BoundingBox GetModelBoundingBox(Model model); // Compute model bounding box limits (considers all meshes)
1309
1311
  // Model drawing functions
@@ -1342,7 +1344,7 @@ typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileI
1342
1344
  // Material loading/unloading functions
1343
1345
  Material *LoadMaterials(const char *fileName, int *materialCount); // Load materials from model file
1344
1346
  Material LoadMaterialDefault(void); // Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps)
1345
- bool IsMaterialReady(Material material); // Check if a material is ready
1347
+ bool IsMaterialValid(Material material); // Check if a material is valid (shader assigned, map textures loaded in GPU)
1346
1348
  void UnloadMaterial(Material material); // Unload material from GPU memory (VRAM)
1347
1349
  void SetMaterialTexture(Material *material, int mapType, Texture2D texture); // Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...)
1348
1350
  void SetModelMeshMaterial(Model *model, int meshId, int materialId); // Set material for a mesh
@@ -1375,11 +1377,11 @@ typedef void (*AudioCallback)(void *bufferData, unsigned int frames);
1375
1377
  // Wave/Sound loading/unloading functions
1376
1378
  Wave LoadWave(const char *fileName); // Load wave data from file
1377
1379
  Wave LoadWaveFromMemory(const char *fileType, const unsigned char *fileData, int dataSize); // Load wave from memory buffer, fileType refers to extension: i.e. '.wav'
1378
- bool IsWaveReady(Wave wave); // Checks if wave data is ready
1380
+ bool IsWaveValid(Wave wave); // Checks if wave data is valid (data loaded and parameters)
1379
1381
  Sound LoadSound(const char *fileName); // Load sound from file
1380
1382
  Sound LoadSoundFromWave(Wave wave); // Load sound from wave data
1381
1383
  Sound LoadSoundAlias(Sound source); // Create a new sound that shares the same sample data as the source sound, does not own the sound data
1382
- bool IsSoundReady(Sound sound); // Checks if a sound is ready
1384
+ bool IsSoundValid(Sound sound); // Checks if a sound is valid (data loaded and buffers initialized)
1383
1385
  void UpdateSound(Sound sound, const void *data, int sampleCount); // Update sound buffer with new data
1384
1386
  void UnloadWave(Wave wave); // Unload wave data
1385
1387
  void UnloadSound(Sound sound); // Unload sound
@@ -1403,7 +1405,7 @@ typedef void (*AudioCallback)(void *bufferData, unsigned int frames);
1403
1405
  // Music management functions
1404
1406
  Music LoadMusicStream(const char *fileName); // Load music stream from file
1405
1407
  Music LoadMusicStreamFromMemory(const char *fileType, const unsigned char *data, int dataSize); // Load music stream from data
1406
- bool IsMusicReady(Music music); // Checks if a music stream is ready
1408
+ bool IsMusicValid(Music music); // Checks if a music stream is valid (context and buffers initialized)
1407
1409
  void UnloadMusicStream(Music music); // Unload music stream
1408
1410
  void PlayMusicStream(Music music); // Start music playing
1409
1411
  bool IsMusicStreamPlaying(Music music); // Check if music is playing
@@ -1419,7 +1421,7 @@ typedef void (*AudioCallback)(void *bufferData, unsigned int frames);
1419
1421
  float GetMusicTimePlayed(Music music); // Get current music time played (in seconds)
1420
1422
  // AudioStream management functions
1421
1423
  AudioStream LoadAudioStream(unsigned int sampleRate, unsigned int sampleSize, unsigned int channels); // Load audio stream (to stream raw audio pcm data)
1422
- bool IsAudioStreamReady(AudioStream stream); // Checks if an audio stream is ready
1424
+ bool IsAudioStreamValid(AudioStream stream); // Checks if an audio stream is valid (buffers initialized)
1423
1425
  void UnloadAudioStream(AudioStream stream); // Unload audio stream and free memory
1424
1426
  void UpdateAudioStream(AudioStream stream, const void *data, int frameCount); // Update audio stream buffers with data
1425
1427
  bool IsAudioStreamProcessed(AudioStream stream); // Check if any audio stream buffers requires refill
raylib/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "5.5.0.0.dev2"
1
+ __version__ = "5.5.0.0.dev3"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: raylib
3
- Version: 5.5.0.0.dev2
3
+ Version: 5.5.0.0.dev3
4
4
  Summary: Python CFFI bindings for Raylib
5
5
  Home-page: https://github.com/electronstudio/raylib-python-cffi
6
6
  Author: Electron Studio
@@ -23,7 +23,7 @@ Requires-Dist: cffi>=1.17.1
23
23
  ## Libraries: raymath, raygui, rlgl, physac and GLFW
24
24
  ## Backends: Desktop, SDL, DRM, Web
25
25
 
26
- Chatroom: [Discord](https://discord.gg/fKDwt85aX6) or [Matrix](https://matrix.to/#/#raylib-python-cffi:matrix.org)
26
+ Chatroom: [Discord](https://discord.gg/fKDwt85aX6)
27
27
 
28
28
  New CFFI API static bindings.
29
29
  * Automatically generated to be as close as possible to
@@ -60,7 +60,8 @@ Then install
60
60
  python3 -m pip install setuptools
61
61
  python3 -m pip install raylib==5.0.0.4
62
62
 
63
- On most platforms it should install a binary wheel. If yours isn't available then pip will attempt to build from source, in which case you will need to have Raylib development libs installed, e.g.
63
+ On most platforms it should install a binary wheel. If yours isn't available then pip will attempt to build from
64
+ source, in which case you will need to have Raylib development libs installed, e.g.
64
65
  using homebrew, apt, etc.
65
66
 
66
67
  ## Windows
@@ -73,7 +74,7 @@ Use an [official Windows Python release](https://www.python.org/downloads/window
73
74
 
74
75
  Binaries require:
75
76
  * arm64 MacOS 14
76
- * x64 MacOS 12, or newer.
77
+ * x64 MacOS 10.13, or newer.
77
78
 
78
79
  Older MacOS requires building from source but this is usually simple:
79
80
 
@@ -81,12 +82,15 @@ Older MacOS requires building from source but this is usually simple:
81
82
  brew install raylib
82
83
  python3 -m pip install raylib==5.0.0.4
83
84
 
85
+ (I do have binaries for arm64 MacOS 11, 12 and 13 but I have no way of testing they work, so post an issue
86
+ if you want to test them.)
87
+
84
88
  ## Linux
85
89
 
86
90
  Binaries require OS newer than Ubuntu 2020, x64 or arm64. Otherwise build from source.
87
91
  (Pip should attempt automatically but will need Raylib itself installed and also pkg-config.)
88
92
 
89
- The arm64 builds are built on Raspberry Pi arm64 Bullseye
93
+ The arm64 binaries are built on Raspberry Pi arm64 Bullseye with OpenGL 2.0
90
94
  so may not work on other boards.
91
95
 
92
96
  ## Raspberry Pi
@@ -97,6 +101,7 @@ so may not work on other boards.
97
101
 
98
102
  There is now a separate dynamic version of this binding:
99
103
 
104
+ python3 -m pip uninstall raylib
100
105
  python3 -m pip install raylib_dynamic
101
106
 
102
107
  It works on some systems where the static version doesn't, [but be sure to read these caveats before using it](https://electronstudio.github.io/raylib-python-cffi/dynamic.html)
@@ -108,7 +113,7 @@ This is not well tested but has better support for controllers:
108
113
  python3 -m pip uninstall raylib
109
114
  python3 -m pip install raylib_sdl
110
115
 
111
- You can't have multiple backends installed at once.
116
+ You can't have multiple raylib packages installed at once.
112
117
 
113
118
  ## DRM backend
114
119
 
@@ -117,29 +122,31 @@ This uses the Linux framebuffer for devices that don't run X11/Wayland:
117
122
  python3 -m pip uninstall raylib
118
123
  python3 -m pip install raylib_drm
119
124
 
120
- You can't have multiple backends installed at once.
125
+ You can't have multiple raylib packages installed at once.
121
126
 
122
127
  ## Problems?
123
128
 
124
129
  If it doesn't work, [try to build manually.](BUILDING.rst). If that works then [submit an issue](https://github.com/electronstudio/raylib-python-cffi/issues)
125
130
  to let us know what you did.
126
131
 
127
- If you need help you can try asking [on Discord](https://discord.gg/raylib).
132
+ If you need help you can try asking on [our discord](https://discord.gg/fKDwt85aX6). There is also a large [Raylib discord](https://discord.gg/raylib)
133
+ for issues that are not Python-specific.
128
134
 
129
135
  If it still doesn't work, [submit an issue](https://github.com/electronstudio/raylib-python-cffi/issues).
130
136
 
131
137
 
132
138
  # How to use
133
139
 
134
- There are two APIs, you can use either or both:
140
+ There are two modules in the raylib package, `raylib` and `pyray`. (There is no separate package for
141
+ pyray). You can use either or both:
135
142
 
136
143
  ### If you are familiar with C coding and the Raylib C library and you want to use an exact copy of the C API
137
144
 
138
- Use [the C API](https://electronstudio.github.io/raylib-python-cffi/raylib.html).
145
+ Use [the raylib module](https://electronstudio.github.io/raylib-python-cffi/raylib.html).
139
146
 
140
- ### If you prefer a slightly more Pythonistic API and don't mind it might be slightly slower
147
+ ### If you prefer a more Pythonistic API
141
148
 
142
- Use [the Python API](https://electronstudio.github.io/raylib-python-cffi/pyray.html).
149
+ Use [the pyray module](https://electronstudio.github.io/raylib-python-cffi/pyray.html).
143
150
 
144
151
  # Running in a web browser
145
152
 
@@ -1,8 +1,8 @@
1
1
  pyray/__init__.py,sha256=6sEm8KxRaK2B2PQo7ZlbXkHoxBDLW43wYSs_Cl7rUMg,7119
2
- pyray/__init__.pyi,sha256=YTMTiZuK5ZUv6fFxv2uaafNo1jxG5uVDw6Lii7Gnths,157652
2
+ pyray/__init__.pyi,sha256=FcO-AAvJVTyfYlM5ddXSAXTP3y0J5lj7lYz6ZjBxVxM,158204
3
3
  raylib/__init__.py,sha256=DWXPmoq7tC5wzZsrt6rReGy1RflyZwk-SdF-9lBZHok,919
4
- raylib/__init__.pyi,sha256=7nDwS_FZmBK6C1Iw3O1A1fK-5NkmpJGz94oW7nClvHY,145607
5
- raylib/_raylib_cffi.cpython-311-x86_64-linux-gnu.so,sha256=3J81zYDIMECstsi8afWfbcmslY17h7d_ZjXPv-EYWDs,6368752
4
+ raylib/__init__.pyi,sha256=0jozQX2T1oJgjIF65v0x1BaMDaAxcgoSMIyI_khuKj8,146157
5
+ raylib/_raylib_cffi.cpython-311-x86_64-linux-gnu.so,sha256=gEewhKJxaXMJIoDAJF6YvPUeDwi0hkTLQvvjaqjl-60,6383360
6
6
  raylib/build.py,sha256=vF0eAp5y3CZv6dLM-4EQnXWmkXwohQ9Z17vTy9AD2cY,9964
7
7
  raylib/colors.py,sha256=_u-mYrpdx7_v_4wnJrnSu_m36ixKJWbort780_V6rTw,1523
8
8
  raylib/defines.py,sha256=_brO9OSA1Kzg9aiGXhiYyMmiJxbOkvHU_kLjLLNLJB4,16983
@@ -10,12 +10,12 @@ raylib/enums.py,sha256=pT4AwJYqrjVKVyWtYdgDStGY35X1q-pT7kEP3jPxTkk,17818
10
10
  raylib/glfw3.h.modified,sha256=jC6-1XuWxG2FMnRhuXTKuI7KIEhPTwwO2OtNGEDOcvs,213261
11
11
  raylib/physac.h.modified,sha256=UG9-bqfL71k4MxaW3DcaP9a5Mcga66CrufVHaUhgYjM,9724
12
12
  raylib/raygui.h.modified,sha256=75djppnwPjTjTfNVcUaXKxGau2PqUisL9oy_yVXQgV8,46107
13
- raylib/raylib.h.modified,sha256=P2ByCGhTYNUnmFI0bMlqAmJlvcGjONUlszzhevA5Vk0,104250
13
+ raylib/raylib.h.modified,sha256=HNhnWJtQrifFgqGxo9bljHC9bgrf8uH_n6jMwg-uOpY,104779
14
14
  raylib/raymath.h.modified,sha256=jV6K62Nck8nTv89pqJoBVMouhwuj4yJAodjP7fQk128,28166
15
15
  raylib/rlgl.h.modified,sha256=CWlw2nho5Yzn-CizWGqhEVNfp4_lFB30HjSlV6he1EM,36729
16
- raylib/version.py,sha256=3Y4xVZcMQHuz26MK_RDAx7uUp1iG3oIm-DR1QBvW8Hk,28
17
- raylib-5.5.0.0.dev2.dist-info/LICENSE,sha256=C-zxZWe-t3-iUrdmRjHdF3yPmhiJ5ImVtFN5xxMOUwM,14198
18
- raylib-5.5.0.0.dev2.dist-info/METADATA,sha256=NdwaFCqKRFPMdCraQ1imMaM7rMRRa9FLOHwNzRQUGUw,8882
19
- raylib-5.5.0.0.dev2.dist-info/WHEEL,sha256=psqLctY23KHVzJBRA0eV4Xgo09aO-tWXBAEHEiSxnw8,113
20
- raylib-5.5.0.0.dev2.dist-info/top_level.txt,sha256=PnMBDWaUP4jsbn_NewagcC9FjHYpzSAIQuhxNzt9hkg,13
21
- raylib-5.5.0.0.dev2.dist-info/RECORD,,
16
+ raylib/version.py,sha256=xA5FaUfbrXveqp9pWJaECG35S4zfEyItHUpEpZUlYGE,28
17
+ raylib-5.5.0.0.dev3.dist-info/LICENSE,sha256=C-zxZWe-t3-iUrdmRjHdF3yPmhiJ5ImVtFN5xxMOUwM,14198
18
+ raylib-5.5.0.0.dev3.dist-info/METADATA,sha256=TonyD-nnB4muy2lJgk-KX99hWZOugc79u0jltOaYZm0,9189
19
+ raylib-5.5.0.0.dev3.dist-info/WHEEL,sha256=psqLctY23KHVzJBRA0eV4Xgo09aO-tWXBAEHEiSxnw8,113
20
+ raylib-5.5.0.0.dev3.dist-info/top_level.txt,sha256=PnMBDWaUP4jsbn_NewagcC9FjHYpzSAIQuhxNzt9hkg,13
21
+ raylib-5.5.0.0.dev3.dist-info/RECORD,,