raylib 5.5.0.0.dev3__cp311-cp311-macosx_14_0_arm64.whl → 5.5.0.1__cp311-cp311-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.

Binary file
raylib/build.py CHANGED
@@ -175,11 +175,13 @@ def build_unix():
175
175
  else: #platform.system() == "Linux":
176
176
  print("BUILDING FOR LINUX")
177
177
  extra_link_args = get_lib_flags() + [ '-lm', '-lpthread', '-lGL',
178
- '-lrt', '-lm', '-ldl', '-lX11', '-lpthread', '-latomic']
178
+ '-lrt', '-lm', '-ldl', '-lpthread', '-latomic']
179
179
  if RAYLIB_PLATFORM=="SDL":
180
- extra_link_args += ['-lSDL2']
180
+ extra_link_args += ['-lX11','-lSDL2']
181
181
  elif RAYLIB_PLATFORM=="DRM":
182
182
  extra_link_args += ['-lEGL', '-lgbm']
183
+ else:
184
+ extra_link_args += ['-lX11']
183
185
  extra_compile_args = ["-Wno-incompatible-pointer-types", "-D_CFFI_NO_LIMITED_API"]
184
186
  libraries = [] # Not sure why but we put them in extra_link_args instead so *shouldnt* be needed here
185
187
 
raylib/defines.py CHANGED
@@ -3,7 +3,7 @@ import raylib
3
3
  RAYLIB_VERSION_MAJOR: int = 5
4
4
  RAYLIB_VERSION_MINOR: int = 5
5
5
  RAYLIB_VERSION_PATCH: int = 0
6
- RAYLIB_VERSION: str = "5.5-dev"
6
+ RAYLIB_VERSION: str = "5.5"
7
7
  PI: float = 3.141592653589793
8
8
  DEG2RAD = PI / 180.0
9
9
  RAD2DEG = 180.0 / PI
@@ -14,10 +14,7 @@ MATERIAL_MAP_DIFFUSE = raylib.MATERIAL_MAP_ALBEDO
14
14
  MATERIAL_MAP_SPECULAR = raylib.MATERIAL_MAP_METALNESS
15
15
  SHADER_LOC_MAP_DIFFUSE = raylib.SHADER_LOC_MAP_ALBEDO
16
16
  SHADER_LOC_MAP_SPECULAR = raylib.SHADER_LOC_MAP_METALNESS
17
- PI: float = 3.141592653589793
18
17
  EPSILON: float = 1e-06
19
- DEG2RAD = PI / 180.0
20
- RAD2DEG = 180.0 / PI
21
18
  RLGL_VERSION: str = "5.0"
22
19
  RL_DEFAULT_BATCH_BUFFER_ELEMENTS: int = 8192
23
20
  RL_DEFAULT_BATCH_BUFFERS: int = 1
@@ -102,9 +99,6 @@ RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS: int = 7
102
99
  RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS: int = 8
103
100
  RL_SHADER_LOC_MAP_DIFFUSE = raylib.RL_SHADER_LOC_MAP_ALBEDO
104
101
  RL_SHADER_LOC_MAP_SPECULAR = raylib.RL_SHADER_LOC_MAP_METALNESS
105
- PI: float = 3.141592653589793
106
- DEG2RAD = PI / 180.0
107
- RAD2DEG = 180.0 / PI
108
102
  GL_SHADING_LANGUAGE_VERSION: int = 35724
109
103
  GL_COMPRESSED_RGB_S3TC_DXT1_EXT: int = 33776
110
104
  GL_COMPRESSED_RGBA_S3TC_DXT1_EXT: int = 33777
raylib/enums.py CHANGED
@@ -297,7 +297,6 @@ class CubemapLayout(IntEnum):
297
297
  CUBEMAP_LAYOUT_LINE_HORIZONTAL = 2
298
298
  CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR = 3
299
299
  CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE = 4
300
- CUBEMAP_LAYOUT_PANORAMA = 5
301
300
 
302
301
  class FontType(IntEnum):
303
302
  FONT_DEFAULT = 0
raylib/py.typed ADDED
File without changes
raylib/raylib.h.modified CHANGED
@@ -1,22 +1,22 @@
1
1
  /**********************************************************************************************
2
2
  *
3
- * raylib v5.5-dev - A simple and easy-to-use library to enjoy videogames programming (www.raylib.com)
3
+ * raylib v5.5 - A simple and easy-to-use library to enjoy videogames programming (www.raylib.com)
4
4
  *
5
5
  * FEATURES:
6
6
  * - NO external dependencies, all required libraries included with raylib
7
7
  * - Multiplatform: Windows, Linux, FreeBSD, OpenBSD, NetBSD, DragonFly,
8
8
  * MacOS, Haiku, Android, Raspberry Pi, DRM native, HTML5.
9
9
  * - Written in plain C code (C99) in PascalCase/camelCase notation
10
- * - Hardware accelerated with OpenGL (1.1, 2.1, 3.3, 4.3 or ES2 - choose at compile)
10
+ * - Hardware accelerated with OpenGL (1.1, 2.1, 3.3, 4.3, ES2, ES3 - choose at compile)
11
11
  * - Unique OpenGL abstraction layer (usable as standalone module): [rlgl]
12
- * - Multiple Fonts formats supported (TTF, XNA fonts, AngelCode fonts)
12
+ * - Multiple Fonts formats supported (TTF, OTF, FNT, BDF, Sprite fonts)
13
13
  * - Outstanding texture formats support, including compressed formats (DXT, ETC, ASTC)
14
14
  * - Full 3d support for 3d Shapes, Models, Billboards, Heightmaps and more!
15
15
  * - Flexible Materials system, supporting classic maps and PBR maps
16
- * - Animated 3D models supported (skeletal bones animation) (IQM)
16
+ * - Animated 3D models supported (skeletal bones animation) (IQM, M3D, GLTF)
17
17
  * - Shaders support, including Model shaders and Postprocessing shaders
18
18
  * - Powerful math module for Vector, Matrix and Quaternion operations: [raymath]
19
- * - Audio loading and playing with streaming support (WAV, OGG, MP3, FLAC, XM, MOD)
19
+ * - Audio loading and playing with streaming support (WAV, OGG, MP3, FLAC, QOA, XM, MOD)
20
20
  * - VR stereo rendering with configurable HMD device parameters
21
21
  * - Bindings to multiple programming languages available!
22
22
  *
@@ -27,29 +27,35 @@
27
27
  * - One default RenderBatch is loaded on rlglInit()->rlLoadRenderBatch() [rlgl] (OpenGL 3.3 or ES2)
28
28
  *
29
29
  * DEPENDENCIES (included):
30
- * [rcore] rglfw (Camilla Löwy - github.com/glfw/glfw) for window/context management and input (PLATFORM_DESKTOP)
31
- * [rlgl] glad (David Herberth - github.com/Dav1dde/glad) for OpenGL 3.3 extensions loading (PLATFORM_DESKTOP)
30
+ * [rcore][GLFW] rglfw (Camilla Löwy - github.com/glfw/glfw) for window/context management and input
31
+ * [rcore][RGFW] rgfw (ColleagueRiley - github.com/ColleagueRiley/RGFW) for window/context management and input
32
+ * [rlgl] glad/glad_gles2 (David Herberth - github.com/Dav1dde/glad) for OpenGL 3.3 extensions loading
32
33
  * [raudio] miniaudio (David Reid - github.com/mackron/miniaudio) for audio device/context management
33
34
  *
34
35
  * OPTIONAL DEPENDENCIES (included):
35
36
  * [rcore] msf_gif (Miles Fogle) for GIF recording
36
37
  * [rcore] sinfl (Micha Mettke) for DEFLATE decompression algorithm
37
38
  * [rcore] sdefl (Micha Mettke) for DEFLATE compression algorithm
39
+ * [rcore] rprand (Ramon Snatamaria) for pseudo-random numbers generation
40
+ * [rtextures] qoi (Dominic Szablewski - https://phoboslab.org) for QOI image manage
38
41
  * [rtextures] stb_image (Sean Barret) for images loading (BMP, TGA, PNG, JPEG, HDR...)
39
42
  * [rtextures] stb_image_write (Sean Barret) for image writing (BMP, TGA, PNG, JPG)
40
- * [rtextures] stb_image_resize (Sean Barret) for image resizing algorithms
43
+ * [rtextures] stb_image_resize2 (Sean Barret) for image resizing algorithms
44
+ * [rtextures] stb_perlin (Sean Barret) for Perlin Noise image generation
41
45
  * [rtext] stb_truetype (Sean Barret) for ttf fonts loading
42
46
  * [rtext] stb_rect_pack (Sean Barret) for rectangles packing
43
47
  * [rmodels] par_shapes (Philip Rideout) for parametric 3d shapes generation
44
48
  * [rmodels] tinyobj_loader_c (Syoyo Fujita) for models loading (OBJ, MTL)
45
49
  * [rmodels] cgltf (Johannes Kuhlmann) for models loading (glTF)
46
- * [rmodels] Model3D (bzt) for models loading (M3D, https://bztsrc.gitlab.io/model3d)
50
+ * [rmodels] m3d (bzt) for models loading (M3D, https://bztsrc.gitlab.io/model3d)
51
+ * [rmodels] vox_loader (Johann Nadalutti) for models loading (VOX)
47
52
  * [raudio] dr_wav (David Reid) for WAV audio file loading
48
53
  * [raudio] dr_flac (David Reid) for FLAC audio file loading
49
54
  * [raudio] dr_mp3 (David Reid) for MP3 audio file loading
50
55
  * [raudio] stb_vorbis (Sean Barret) for OGG audio loading
51
56
  * [raudio] jar_xm (Joshua Reisenauer) for XM audio module loading
52
57
  * [raudio] jar_mod (Joshua Reisenauer) for MOD audio module loading
58
+ * [raudio] qoa (Dominic Szablewski - https://phoboslab.org) for QOA audio manage
53
59
  *
54
60
  *
55
61
  * LICENSE: zlib/libpng
@@ -700,8 +706,7 @@ typedef enum {
700
706
  CUBEMAP_LAYOUT_LINE_VERTICAL, // Layout is defined by a vertical line with faces
701
707
  CUBEMAP_LAYOUT_LINE_HORIZONTAL, // Layout is defined by a horizontal line with faces
702
708
  CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR, // Layout is defined by a 3x4 cross with cubemap faces
703
- CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE, // Layout is defined by a 4x3 cross with cubemap faces
704
- CUBEMAP_LAYOUT_PANORAMA // Layout is defined by a panorama image (equirrectangular map)
709
+ CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE // Layout is defined by a 4x3 cross with cubemap faces
705
710
  } CubemapLayout;
706
711
  // Font type, defines generation method
707
712
  typedef enum {
@@ -774,36 +779,36 @@ typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileI
774
779
  bool WindowShouldClose(void); // Check if application should close (KEY_ESCAPE pressed or windows close icon clicked)
775
780
  bool IsWindowReady(void); // Check if window has been initialized successfully
776
781
  bool IsWindowFullscreen(void); // Check if window is currently fullscreen
777
- bool IsWindowHidden(void); // Check if window is currently hidden (only PLATFORM_DESKTOP)
778
- bool IsWindowMinimized(void); // Check if window is currently minimized (only PLATFORM_DESKTOP)
779
- bool IsWindowMaximized(void); // Check if window is currently maximized (only PLATFORM_DESKTOP)
780
- bool IsWindowFocused(void); // Check if window is currently focused (only PLATFORM_DESKTOP)
782
+ bool IsWindowHidden(void); // Check if window is currently hidden
783
+ bool IsWindowMinimized(void); // Check if window is currently minimized
784
+ bool IsWindowMaximized(void); // Check if window is currently maximized
785
+ bool IsWindowFocused(void); // Check if window is currently focused
781
786
  bool IsWindowResized(void); // Check if window has been resized last frame
782
787
  bool IsWindowState(unsigned int flag); // Check if one specific window flag is enabled
783
- void SetWindowState(unsigned int flags); // Set window configuration state using flags (only PLATFORM_DESKTOP)
788
+ void SetWindowState(unsigned int flags); // Set window configuration state using flags
784
789
  void ClearWindowState(unsigned int flags); // Clear window configuration state flags
785
- void ToggleFullscreen(void); // Toggle window state: fullscreen/windowed [resizes monitor to match window resolution] (only PLATFORM_DESKTOP)
786
- void ToggleBorderlessWindowed(void); // Toggle window state: borderless windowed [resizes window to match monitor resolution] (only PLATFORM_DESKTOP)
787
- void MaximizeWindow(void); // Set window state: maximized, if resizable (only PLATFORM_DESKTOP)
788
- void MinimizeWindow(void); // Set window state: minimized, if resizable (only PLATFORM_DESKTOP)
789
- void RestoreWindow(void); // Set window state: not minimized/maximized (only PLATFORM_DESKTOP)
790
- void SetWindowIcon(Image image); // Set icon for window (single image, RGBA 32bit, only PLATFORM_DESKTOP)
791
- void SetWindowIcons(Image *images, int count); // Set icon for window (multiple images, RGBA 32bit, only PLATFORM_DESKTOP)
792
- void SetWindowTitle(const char *title); // Set title for window (only PLATFORM_DESKTOP and PLATFORM_WEB)
793
- void SetWindowPosition(int x, int y); // Set window position on screen (only PLATFORM_DESKTOP)
790
+ void ToggleFullscreen(void); // Toggle window state: fullscreen/windowed, resizes monitor to match window resolution
791
+ void ToggleBorderlessWindowed(void); // Toggle window state: borderless windowed, resizes window to match monitor resolution
792
+ void MaximizeWindow(void); // Set window state: maximized, if resizable
793
+ void MinimizeWindow(void); // Set window state: minimized, if resizable
794
+ void RestoreWindow(void); // Set window state: not minimized/maximized
795
+ void SetWindowIcon(Image image); // Set icon for window (single image, RGBA 32bit)
796
+ void SetWindowIcons(Image *images, int count); // Set icon for window (multiple images, RGBA 32bit)
797
+ void SetWindowTitle(const char *title); // Set title for window
798
+ void SetWindowPosition(int x, int y); // Set window position on screen
794
799
  void SetWindowMonitor(int monitor); // Set monitor for the current window
795
800
  void SetWindowMinSize(int width, int height); // Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE)
796
801
  void SetWindowMaxSize(int width, int height); // Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE)
797
802
  void SetWindowSize(int width, int height); // Set window dimensions
798
- void SetWindowOpacity(float opacity); // Set window opacity [0.0f..1.0f] (only PLATFORM_DESKTOP)
799
- void SetWindowFocused(void); // Set window focused (only PLATFORM_DESKTOP)
803
+ void SetWindowOpacity(float opacity); // Set window opacity [0.0f..1.0f]
804
+ void SetWindowFocused(void); // Set window focused
800
805
  void *GetWindowHandle(void); // Get native window handle
801
806
  int GetScreenWidth(void); // Get current screen width
802
807
  int GetScreenHeight(void); // Get current screen height
803
808
  int GetRenderWidth(void); // Get current render width (it considers HiDPI)
804
809
  int GetRenderHeight(void); // Get current render height (it considers HiDPI)
805
810
  int GetMonitorCount(void); // Get number of connected monitors
806
- int GetCurrentMonitor(void); // Get current connected monitor
811
+ int GetCurrentMonitor(void); // Get current monitor where window is placed
807
812
  Vector2 GetMonitorPosition(int monitor); // Get specified monitor position
808
813
  int GetMonitorWidth(int monitor); // Get specified monitor width (current video mode used by monitor)
809
814
  int GetMonitorHeight(int monitor); // Get specified monitor height (current video mode used by monitor)
@@ -815,6 +820,7 @@ typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileI
815
820
  const char *GetMonitorName(int monitor); // Get the human-readable, UTF-8 encoded name of the specified monitor
816
821
  void SetClipboardText(const char *text); // Set clipboard text content
817
822
  const char *GetClipboardText(void); // Get clipboard text content
823
+ Image GetClipboardImage(void); // Get clipboard image content
818
824
  void EnableEventWaiting(void); // Enable waiting for events on EndDrawing(), no automatic event polling
819
825
  void DisableEventWaiting(void); // Disable waiting for events on EndDrawing(), automatic events polling
820
826
  // Cursor-related functions
@@ -940,6 +946,7 @@ typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileI
940
946
  unsigned char *DecodeDataBase64(const unsigned char *data, int *outputSize); // Decode Base64 string data, memory must be MemFree()
941
947
  unsigned int ComputeCRC32(unsigned char *data, int dataSize); // Compute CRC32 hash code
942
948
  unsigned int *ComputeMD5(unsigned char *data, int dataSize); // Compute MD5 hash code, returns static int[4] (16 bytes)
949
+ unsigned int *ComputeSHA1(unsigned char *data, int dataSize); // Compute SHA1 hash code, returns static int[5] (20 bytes)
943
950
  // Automation events functionality
944
951
  AutomationEventList LoadAutomationEventList(const char *fileName); // Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS
945
952
  void UnloadAutomationEventList(AutomationEventList list); // Unload automation events list from file
@@ -954,7 +961,7 @@ typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileI
954
961
  //------------------------------------------------------------------------------------
955
962
  // Input-related functions: keyboard
956
963
  bool IsKeyPressed(int key); // Check if a key has been pressed once
957
- bool IsKeyPressedRepeat(int key); // Check if a key has been pressed again (Only PLATFORM_DESKTOP)
964
+ bool IsKeyPressedRepeat(int key); // Check if a key has been pressed again
958
965
  bool IsKeyDown(int key); // Check if a key is being pressed
959
966
  bool IsKeyReleased(int key); // Check if a key has been released once
960
967
  bool IsKeyUp(int key); // Check if a key is NOT being pressed
@@ -972,7 +979,7 @@ typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileI
972
979
  int GetGamepadAxisCount(int gamepad); // Get gamepad axis count for a gamepad
973
980
  float GetGamepadAxisMovement(int gamepad, int axis); // Get axis movement value for a gamepad axis
974
981
  int SetGamepadMappings(const char *mappings); // Set internal gamepad mappings (SDL_GameControllerDB)
975
- void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor); // Set gamepad vibration for both motors
982
+ void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor, float duration); // Set gamepad vibration for both motors (duration in seconds)
976
983
  // Input-related functions: mouse
977
984
  bool IsMouseButtonPressed(int button); // Check if a mouse button has been pressed once
978
985
  bool IsMouseButtonDown(int button); // Check if a mouse button is being pressed
@@ -1000,7 +1007,7 @@ typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileI
1000
1007
  void SetGesturesEnabled(unsigned int flags); // Enable a set of gestures using flags
1001
1008
  bool IsGestureDetected(unsigned int gesture); // Check if a gesture have been detected
1002
1009
  int GetGestureDetected(void); // Get latest detected gesture
1003
- float GetGestureHoldDuration(void); // Get gesture hold time in milliseconds
1010
+ float GetGestureHoldDuration(void); // Get gesture hold time in seconds
1004
1011
  Vector2 GetGestureDragVector(void); // Get gesture drag vector
1005
1012
  float GetGestureDragAngle(void); // Get gesture drag angle
1006
1013
  Vector2 GetGesturePinchVector(void); // Get gesture pinch delta
@@ -1078,13 +1085,13 @@ typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileI
1078
1085
  bool CheckCollisionRecs(Rectangle rec1, Rectangle rec2); // Check collision between two rectangles
1079
1086
  bool CheckCollisionCircles(Vector2 center1, float radius1, Vector2 center2, float radius2); // Check collision between two circles
1080
1087
  bool CheckCollisionCircleRec(Vector2 center, float radius, Rectangle rec); // Check collision between circle and rectangle
1088
+ bool CheckCollisionCircleLine(Vector2 center, float radius, Vector2 p1, Vector2 p2); // Check if circle collides with a line created betweeen two points [p1] and [p2]
1081
1089
  bool CheckCollisionPointRec(Vector2 point, Rectangle rec); // Check if point is inside rectangle
1082
1090
  bool CheckCollisionPointCircle(Vector2 point, Vector2 center, float radius); // Check if point is inside circle
1083
1091
  bool CheckCollisionPointTriangle(Vector2 point, Vector2 p1, Vector2 p2, Vector2 p3); // Check if point is inside a triangle
1092
+ bool CheckCollisionPointLine(Vector2 point, Vector2 p1, Vector2 p2, int threshold); // Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold]
1084
1093
  bool CheckCollisionPointPoly(Vector2 point, const Vector2 *points, int pointCount); // Check if point is within a polygon described by array of vertices
1085
1094
  bool CheckCollisionLines(Vector2 startPos1, Vector2 endPos1, Vector2 startPos2, Vector2 endPos2, Vector2 *collisionPoint); // Check the collision between two lines defined by two points each, returns collision point by reference
1086
- bool CheckCollisionPointLine(Vector2 point, Vector2 p1, Vector2 p2, int threshold); // Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold]
1087
- bool CheckCollisionCircleLine(Vector2 center, float radius, Vector2 p1, Vector2 p2); // Check if circle collides with a line created betweeen two points [p1] and [p2]
1088
1095
  Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2); // Get collision rectangle for two rectangles collision
1089
1096
  //------------------------------------------------------------------------------------
1090
1097
  // Texture Loading and Drawing Functions (Module: textures)
@@ -1350,11 +1357,11 @@ typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileI
1350
1357
  void SetModelMeshMaterial(Model *model, int meshId, int materialId); // Set material for a mesh
1351
1358
  // Model animations loading/unloading functions
1352
1359
  ModelAnimation *LoadModelAnimations(const char *fileName, int *animCount); // Load model animations from file
1353
- void UpdateModelAnimation(Model model, ModelAnimation anim, int frame); // Update model animation pose
1360
+ void UpdateModelAnimation(Model model, ModelAnimation anim, int frame); // Update model animation pose (CPU)
1361
+ void UpdateModelAnimationBones(Model model, ModelAnimation anim, int frame); // Update model animation mesh bone matrices (GPU skinning)
1354
1362
  void UnloadModelAnimation(ModelAnimation anim); // Unload animation data
1355
1363
  void UnloadModelAnimations(ModelAnimation *animations, int animCount); // Unload animation array data
1356
1364
  bool IsModelAnimationValid(Model model, ModelAnimation anim); // Check model animation skeleton match
1357
- void UpdateModelAnimationBoneMatrices(Model model, ModelAnimation anim, int frame); // Update model animation mesh bone matrices (Note GPU skinning does not work on Mac)
1358
1365
  // Collision detection functions
1359
1366
  bool CheckCollisionSpheres(Vector3 center1, float radius1, Vector3 center2, float radius2); // Check collision between two spheres
1360
1367
  bool CheckCollisionBoxes(BoundingBox box1, BoundingBox box2); // Check collision between two bounding boxes
raylib/raymath.h.modified CHANGED
@@ -1,6 +1,6 @@
1
1
  /**********************************************************************************************
2
2
  *
3
- * raymath v1.5 - Math functions to work with Vector2, Vector3, Matrix and Quaternions
3
+ * raymath v2.0 - Math functions to work with Vector2, Vector3, Matrix and Quaternions
4
4
  *
5
5
  * CONVENTIONS:
6
6
  * - Matrix structure is defined as row-major (memory layout) but parameters naming AND all
@@ -12,7 +12,7 @@
12
12
  * - Functions are always self-contained, no function use another raymath function inside,
13
13
  * required code is directly re-implemented inside
14
14
  * - Functions input parameters are always received by value (2 unavoidable exceptions)
15
- * - Functions use always a "result" variable for return
15
+ * - Functions use always a "result" variable for return (except C++ operators)
16
16
  * - Functions are always defined inline
17
17
  * - Angles are always in radians (DEG2RAD/RAD2DEG macros provided for convenience)
18
18
  * - No compound literals used to make sure libray is compatible with C++
@@ -26,6 +26,8 @@
26
26
  * #define RAYMATH_STATIC_INLINE
27
27
  * This may use up lots of memory.
28
28
  *
29
+ * #define RAYMATH_DISABLE_CPP_OPERATORS
30
+ * Disables C++ operator overloads for raymath types.
29
31
  *
30
32
  * LICENSE: zlib/libpng
31
33
  *
raylib/rlgl.h.modified CHANGED
@@ -3,22 +3,22 @@
3
3
  * rlgl v5.0 - A multi-OpenGL abstraction layer with an immediate-mode style API
4
4
  *
5
5
  * DESCRIPTION:
6
- * An abstraction layer for multiple OpenGL versions (1.1, 2.1, 3.3 Core, 4.3 Core, ES 2.0)
6
+ * An abstraction layer for multiple OpenGL versions (1.1, 2.1, 3.3 Core, 4.3 Core, ES 2.0, ES 3.0)
7
7
  * that provides a pseudo-OpenGL 1.1 immediate-mode style API (rlVertex, rlTranslate, rlRotate...)
8
8
  *
9
9
  * ADDITIONAL NOTES:
10
10
  * When choosing an OpenGL backend different than OpenGL 1.1, some internal buffer are
11
- * initialized on rlglInit() to accumulate vertex data.
11
+ * initialized on rlglInit() to accumulate vertex data
12
12
  *
13
13
  * When an internal state change is required all the stored vertex data is renderer in batch,
14
- * additionally, rlDrawRenderBatchActive() could be called to force flushing of the batch.
14
+ * additionally, rlDrawRenderBatchActive() could be called to force flushing of the batch
15
15
  *
16
16
  * Some resources are also loaded for convenience, here the complete list:
17
17
  * - Default batch (RLGL.defaultBatch): RenderBatch system to accumulate vertex data
18
18
  * - Default texture (RLGL.defaultTextureId): 1x1 white pixel R8G8B8A8
19
19
  * - Default shader (RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs)
20
20
  *
21
- * Internal buffer (and resources) must be manually unloaded calling rlglClose().
21
+ * Internal buffer (and resources) must be manually unloaded calling rlglClose()
22
22
  *
23
23
  * CONFIGURATION:
24
24
  * #define GRAPHICS_API_OPENGL_11
@@ -32,9 +32,9 @@
32
32
  * required by any other module, use rlGetVersion() to check it
33
33
  *
34
34
  * #define RLGL_IMPLEMENTATION
35
- * Generates the implementation of the library into the included file.
35
+ * Generates the implementation of the library into the included file
36
36
  * If not defined, the library is in header only mode and can be included in other headers
37
- * or source files without problems. But only ONE file should hold the implementation.
37
+ * or source files without problems. But only ONE file should hold the implementation
38
38
  *
39
39
  * #define RLGL_RENDER_TEXTURES_HINT
40
40
  * Enable framebuffer objects (fbo) support (enabled by default)
@@ -464,7 +464,7 @@ typedef enum {
464
464
  // Textures management
465
465
  unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipmapCount); // Load texture data
466
466
  unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer); // Load depth texture/renderbuffer (to be attached to fbo)
467
- unsigned int rlLoadTextureCubemap(const void *data, int size, int format); // Load texture cubemap data
467
+ unsigned int rlLoadTextureCubemap(const void *data, int size, int format, int mipmapCount); // Load texture cubemap data
468
468
  void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data); // Update texture with new data on GPU
469
469
  void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType); // Get OpenGL internal formats
470
470
  const char *rlGetPixelFormatName(unsigned int format); // Get name string for pixel format
raylib/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "5.5.0.0.dev3"
1
+ __version__ = "5.5.0.1"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: raylib
3
- Version: 5.5.0.0.dev3
3
+ Version: 5.5.0.1
4
4
  Summary: Python CFFI bindings for Raylib
5
5
  Home-page: https://github.com/electronstudio/raylib-python-cffi
6
6
  Author: Electron Studio
@@ -22,22 +22,30 @@ Requires-Dist: cffi>=1.17.1
22
22
  # Python Bindings for Raylib 5.5
23
23
  ## Libraries: raymath, raygui, rlgl, physac and GLFW
24
24
  ## Backends: Desktop, SDL, DRM, Web
25
+ ## Platforms: Windows, Mac, Linux, Raspberry Pi, Web
26
+
27
+ ![PyPI - Downloads](https://img.shields.io/pypi/dm/raylib)
25
28
 
26
29
  Chatroom: [Discord](https://discord.gg/fKDwt85aX6)
27
30
 
28
- New CFFI API static bindings.
31
+ HELP WANTED: [writing examples](https://github.com/electronstudio/raylib-python-cffi/issues/155)
32
+
33
+ Features:
34
+
35
+ * CFFI API static bindings.
29
36
  * Automatically generated to be as close as possible to
30
37
  original Raylib.
31
38
  * Faster, fewer bugs and easier to maintain than ctypes.
32
39
  * Commercial-friendly license.
33
40
  * Docstrings and auto-completion.
41
+ * Type checking with Mypy
34
42
 
35
43
 
36
44
  [Full documentation](http://electronstudio.github.io/raylib-python-cffi)
37
45
 
38
46
  # Quickstart
39
47
 
40
- `pip3 install raylib==5.0.0.4`
48
+ `pip3 install raylib==5.5.0.0`
41
49
  ```python
42
50
  from pyray import *
43
51
  init_window(800, 450, "Hello")
@@ -58,7 +66,7 @@ First make sure you have the latest pip installed:
58
66
  Then install
59
67
 
60
68
  python3 -m pip install setuptools
61
- python3 -m pip install raylib==5.0.0.4
69
+ python3 -m pip install raylib==5.5.0.0
62
70
 
63
71
  On most platforms it should install a binary wheel. If yours isn't available then pip will attempt to build from
64
72
  source, in which case you will need to have Raylib development libs installed, e.g.
@@ -80,7 +88,7 @@ Older MacOS requires building from source but this is usually simple:
80
88
 
81
89
  brew install pkg-config
82
90
  brew install raylib
83
- python3 -m pip install raylib==5.0.0.4
91
+ python3 -m pip install raylib==5.5.0.0
84
92
 
85
93
  (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
94
  if you want to test them.)
@@ -97,6 +105,8 @@ so may not work on other boards.
97
105
 
98
106
  [Using on Rasperry Pi](RPI.rst)
99
107
 
108
+ # Backends
109
+
100
110
  ## Dynamic binding version
101
111
 
102
112
  There is now a separate dynamic version of this binding:
@@ -106,6 +116,8 @@ There is now a separate dynamic version of this binding:
106
116
 
107
117
  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
118
 
119
+ You can't have multiple raylib packages installed at once.
120
+
109
121
  ## SDL backend
110
122
 
111
123
  This is not well tested but has better support for controllers:
@@ -137,53 +149,63 @@ If it still doesn't work, [submit an issue](https://github.com/electronstudio/ra
137
149
 
138
150
  # How to use
139
151
 
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:
152
+ There are *two* modules in the raylib package, `raylib` and `pyray`. (There is no separate package for
153
+ pyray. Do *not* `pip install pyray`). You can use either or both:
142
154
 
143
155
  ### If you are familiar with C coding and the Raylib C library and you want to use an exact copy of the C API
144
156
 
145
157
  Use [the raylib module](https://electronstudio.github.io/raylib-python-cffi/raylib.html).
146
158
 
147
- ### If you prefer a more Pythonistic API
159
+ ### If you prefer a more Pythonistic API
148
160
 
149
161
  Use [the pyray module](https://electronstudio.github.io/raylib-python-cffi/pyray.html).
150
162
 
151
163
  # Running in a web browser
152
164
 
153
- [Pygbag](https://pypi.org/project/pygbag/) >=0.8.7 supports running in a web browser.
165
+ [Pygbag](https://pypi.org/project/pygbag/) >=0.8.7 supports running in a web browser. Usually the latest git version
166
+ is recommended.
154
167
 
155
168
  Make a folder `my_project` with a file `main.py`:
156
169
 
157
- # /// script
158
- # dependencies = [
159
- # "cffi",
160
- # "raylib"
161
- # ]
162
- # ///
163
- import asyncio
164
- import platform
165
- from pyray import *
166
-
167
- async def main(): # You must have an async main function
168
- init_window(500, 500, "Hello")
169
- platform.window.window_resize() # You must add this line
170
- while not window_should_close():
171
- begin_drawing()
172
- clear_background(WHITE)
173
- draw_text("Hello world", 190, 200, 20, VIOLET)
174
- end_drawing()
175
- await asyncio.sleep(0) # You must call this in your main loop
176
- close_window()
177
-
178
- asyncio.run(main())
170
+ ```python
171
+ # /// script
172
+ # dependencies = [
173
+ # "cffi",
174
+ # "raylib"
175
+ # ]
176
+ # ///
177
+ import asyncio
178
+ import platform
179
+ from pyray import *
180
+
181
+ async def main(): # You MUST have an async main function
182
+ init_window(500, 500, "Hello")
183
+ platform.window.window_resize() # You MAY want to add this line
184
+ while not window_should_close():
185
+ begin_drawing()
186
+ clear_background(WHITE)
187
+ draw_text("Hello world", 190, 200, 20, VIOLET)
188
+ end_drawing()
189
+ await asyncio.sleep(0) # You MUST call this in your main loop
190
+ close_window()
191
+
192
+ asyncio.run(main())
193
+ ```
179
194
 
180
195
  Then to create the web files and launch a web server:
181
196
 
182
197
  python3.12 -m pip install --user --upgrade pygbag
183
- python3.12 -m pygbag --PYBUILD 3.12 --ume_block 0 --template noctx.tmpl my_project
198
+ python3.12 -m pygbag --PYBUILD 3.12 --ume_block 0 --template noctx.tmpl --git my_project
184
199
 
185
200
  Point your browser to http://localhost:8000
186
201
 
202
+ Some features may not work, so you can disable them like this:
203
+
204
+ ```python
205
+ if platform.system() != "Emscripten": # audio does not work on current version of emscripten
206
+ init_audio_device()
207
+ ```
208
+
187
209
  This is all done by Pygbag rather than by me, so you should probably contact them with any issues.
188
210
  Carefully read all their [documentation](https://pygame-web.github.io/).
189
211
 
@@ -191,10 +213,20 @@ It does work for most of [these examples](https://electronstudio.github.io/rayli
191
213
 
192
214
  # App showcase
193
215
 
216
+ [Tempest-raylib](https://github.com/Emtyloc/tempest-raylib)
217
+
218
+ [KarabinerKeyboard](https://github.com/bilbofroggins/KarabinerKeyboard)
219
+
220
+ [PyTaiko](https://github.com/Yonokid/PyTaiko)
221
+
222
+ [DOOM-Clone](https://github.com/StanislavPetrovV/DOOM-Clone)
223
+
194
224
  [Tanki](https://github.com/pkulev/tanki)
195
225
 
196
226
  [Alloy Bloxel Editor](https://pebaz.itch.io/alloy-bloxel-editor)
197
227
 
228
+ [Eidolon](https://github.com/Miou-zora/Eidolon)
229
+
198
230
  Add your app here!
199
231
 
200
232
  # RLZero
@@ -0,0 +1,23 @@
1
+ pyray/__init__.py,sha256=vIG3y6niJNvKobp0h6z24OmlxRbKnSwNho_3pjG7KdU,7115
2
+ pyray/__init__.pyi,sha256=T47R66T43lCZeJXJKi-pfXnSt3SxyDDDCQdEVZCv3TQ,183078
3
+ pyray/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ raylib/__init__.py,sha256=zTSGLz_KdS8jJZKAXOGeaaWHZZPsrmFKAwxRt4iDFvU,1193
5
+ raylib/__init__.pyi,sha256=lQk7oP0o-bWBnFpFlUn4cCFYBLec8bUCuF8gQNsTmIM,162287
6
+ raylib/_raylib_cffi.cpython-311-darwin.so,sha256=Q7nQC3EsD1SAgwOA7QJFs6oBgSdl3dREV-rWGm83kUM,2821424
7
+ raylib/build.py,sha256=Ihu2a28O9gs0XlGtjfBZ2geD32vUkVlatUAUMP8AdY4,10018
8
+ raylib/colors.py,sha256=_u-mYrpdx7_v_4wnJrnSu_m36ixKJWbort780_V6rTw,1523
9
+ raylib/defines.py,sha256=CvpTK0ogvLKPHTWSulj-vBuTrV57HVAb0mNHvfNvgPc,16835
10
+ raylib/enums.py,sha256=A-9DdfE-AsGXjPWM-VNhMHxgas2lzHH8gTrhK4VufrI,17786
11
+ raylib/glfw3.h.modified,sha256=Ih-BKuxr3r4iwOMrObhLA-RgR62hsd40feqUqcri0Ks,214101
12
+ raylib/physac.h.modified,sha256=GZEIVO0ot8kuHkb7IIuNPieilfC3Poxn6BLlQyvRGEY,9895
13
+ raylib/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
+ raylib/raygui.h.modified,sha256=75djppnwPjTjTfNVcUaXKxGau2PqUisL9oy_yVXQgV8,46107
15
+ raylib/raylib.h.modified,sha256=utxLqc62ZVOQsjcFHESVsqEDylRm1UuKMS2bA1PYewY,107888
16
+ raylib/raymath.h.modified,sha256=4DQgPGjaFbbIceBAucTw2luV8AvSUFGQx-i-Y-jsM-U,28298
17
+ raylib/rlgl.h.modified,sha256=wuxfJ5rPQ0YI63uP12fAZAwxI1tETOXz-6x1Hb604Mc,37519
18
+ raylib/version.py,sha256=dp5qC-eFGbtuPAAJg9iAyjsDscIEL1OrZJMGbAypfHc,23
19
+ raylib-5.5.0.1.dist-info/LICENSE,sha256=C-zxZWe-t3-iUrdmRjHdF3yPmhiJ5ImVtFN5xxMOUwM,14198
20
+ raylib-5.5.0.1.dist-info/METADATA,sha256=VrTjSmsToYHdLJZNW657_0ZgcUaDTzjvG0n3mlNdHOE,10018
21
+ raylib-5.5.0.1.dist-info/WHEEL,sha256=iyHOmzQZtL_L_KJL9-PDLQa8YEVkAYN5-On75avjx-8,109
22
+ raylib-5.5.0.1.dist-info/top_level.txt,sha256=PnMBDWaUP4jsbn_NewagcC9FjHYpzSAIQuhxNzt9hkg,13
23
+ raylib-5.5.0.1.dist-info/RECORD,,
@@ -1,21 +0,0 @@
1
- pyray/__init__.py,sha256=6sEm8KxRaK2B2PQo7ZlbXkHoxBDLW43wYSs_Cl7rUMg,7119
2
- pyray/__init__.pyi,sha256=FcO-AAvJVTyfYlM5ddXSAXTP3y0J5lj7lYz6ZjBxVxM,158204
3
- raylib/__init__.py,sha256=DWXPmoq7tC5wzZsrt6rReGy1RflyZwk-SdF-9lBZHok,919
4
- raylib/__init__.pyi,sha256=0jozQX2T1oJgjIF65v0x1BaMDaAxcgoSMIyI_khuKj8,146157
5
- raylib/_raylib_cffi.cpython-311-darwin.so,sha256=FhKuoTxukCGdSmgYI84Oi31RZrNIvvHxxK6YXh3CnMQ,2802816
6
- raylib/build.py,sha256=vF0eAp5y3CZv6dLM-4EQnXWmkXwohQ9Z17vTy9AD2cY,9964
7
- raylib/colors.py,sha256=_u-mYrpdx7_v_4wnJrnSu_m36ixKJWbort780_V6rTw,1523
8
- raylib/defines.py,sha256=_brO9OSA1Kzg9aiGXhiYyMmiJxbOkvHU_kLjLLNLJB4,16983
9
- raylib/enums.py,sha256=pT4AwJYqrjVKVyWtYdgDStGY35X1q-pT7kEP3jPxTkk,17818
10
- raylib/glfw3.h.modified,sha256=Ih-BKuxr3r4iwOMrObhLA-RgR62hsd40feqUqcri0Ks,214101
11
- raylib/physac.h.modified,sha256=GZEIVO0ot8kuHkb7IIuNPieilfC3Poxn6BLlQyvRGEY,9895
12
- raylib/raygui.h.modified,sha256=75djppnwPjTjTfNVcUaXKxGau2PqUisL9oy_yVXQgV8,46107
13
- raylib/raylib.h.modified,sha256=W3aEUTemnD1cXbHaNHtzuzbzOnnkXZoemZO5JAHf-jA,107674
14
- raylib/raymath.h.modified,sha256=jV6K62Nck8nTv89pqJoBVMouhwuj4yJAodjP7fQk128,28166
15
- raylib/rlgl.h.modified,sha256=Vr2PvXKNs5o5AXGTs4FkixCQPwWzFfZog9bxFKkBL-E,37499
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=iyHOmzQZtL_L_KJL9-PDLQa8YEVkAYN5-On75avjx-8,109
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,,