update to raylib 4.2

This commit is contained in:
richard 2022-08-11 21:58:54 +01:00
parent 3a6deb2c04
commit 3e011b329a
19 changed files with 78 additions and 49 deletions

1
docs-src/RPI.rst Symbolic link
View file

@ -0,0 +1 @@
../RPI.rst

View file

@ -3,7 +3,16 @@ Python API
This is a wrapper around the C API with some syntactic sugar.
The API is *still the same as Raylib*, so you should still reply on `the official Raylib docs <https://www.raylib.com/cheatsheet/cheatsheet.html>`_, except:
The API is *still the same as Raylib*, so you should still reply on:
* `the C Raylib docs <https://www.raylib.com/cheatsheet/cheatsheet.html>`_
* `the C Raylib examples <https://github.com/electronstudio/raylib-python-cffi/tree/master/examples>`_
* `the C Raylib header file <https://github.com/raysan5/raylib/blob/master/src/raylib.h>`_
The *differences* are:
* the function names are in **snake_case**.
@ -11,6 +20,9 @@ The API is *still the same as Raylib*, so you should still reply on `the officia
* There are some helper functions to create structures.
Examples
--------
Example program:
.. code-block::
@ -45,9 +57,10 @@ Example program:
init_window(800, 450, "Raylib texture test")
...
You don't need to use the PyRay() class anymore.
(You don't need to use the PyRay() class anymore.)
`See all examples here <https://github.com/electronstudio/raylib-python-cffi/tree/master/examples>`_
See also https://github.com/electronstudio/raylib-python-cffi/blob/master/tests/test_pyray.py
API reference
-------------

View file

@ -1,7 +1,8 @@
C API
=============
The goal of the C API is make usage as similar to the original C as CFFI will allow. The `example programs <https://github.com/electronstudio/raylib-python-cffi/tree/master/examples>`_
The goal of the C API is make usage as similar to the original C as CFFI will allow.
So the `example programs <https://github.com/electronstudio/raylib-python-cffi/tree/master/examples>`_
are very, very similar to the C originals.
Example program:
@ -39,11 +40,16 @@ If you want to be more portable (i.e. same code will work with dynamic bindings)
...
See also https://github.com/electronstudio/raylib-python-cffi/blob/master/tests/test_static.py
.. note:: Whenever you need to convert stuff between C and Python see https://cffi.readthedocs.io
.. important:: Your **primary reference** should always be `the official Raylib docs <https://www.raylib.com/cheatsheet/cheatsheet.html>`_
.. important:: Your **primary reference** should always be
* `the C Raylib docs <https://www.raylib.com/cheatsheet/cheatsheet.html>`_
* `the C Raylib examples <https://github.com/electronstudio/raylib-python-cffi/tree/master/examples>`_
* `the C Raylib header file <https://github.com/raysan5/raylib/blob/master/src/raylib.h>`_
However, here is a list of available functions:

View file

@ -0,0 +1,9 @@
import raylib
MOUSE_LEFT_BUTTON = raylib.MOUSE_BUTTON_LEFT
MOUSE_RIGHT_BUTTON = raylib.MOUSE_BUTTON_RIGHT
MOUSE_MIDDLE_BUTTON = raylib.MOUSE_BUTTON_MIDDLE
MATERIAL_MAP_DIFFUSE = raylib.MATERIAL_MAP_ALBEDO
MATERIAL_MAP_SPECULAR = raylib.MATERIAL_MAP_METALNESS
SHADER_LOC_MAP_DIFFUSE = raylib.SHADER_LOC_MAP_ALBEDO
SHADER_LOC_MAP_SPECULAR = raylib.SHADER_LOC_MAP_METALNESS

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -14,7 +14,10 @@
from raylib import rl, ffi
from raylib.colors import *
from raylib.defines import *
try:
from raylib.defines import *
except AttributeError:
print("sorry deprecated enums dont work on dynamic version")
from inspect import ismethod,getmembers,isbuiltin

View file

@ -5,7 +5,7 @@ def pointer(struct):
...
def attach_audio_stream_processor(stream: AudioStream,processor: Any,) -> None:
""""""
"""Attach audio stream processor to stream"""
...
def begin_blend_mode(mode: int,) -> None:
"""Begin blending mode (alpha, additive, multiplied, subtract, custom)"""
@ -143,7 +143,7 @@ def destroy_physics_body(PhysicsBodyData_pointer_0: Any,) -> None:
CFFI C function from raylib._raylib_cffi.lib"""
...
def detach_audio_stream_processor(stream: AudioStream,processor: Any,) -> None:
""""""
"""Detach audio stream processor from stream"""
...
def directory_exists(dirPath: str,) -> bool:
"""Check if a directory path exists"""
@ -492,9 +492,6 @@ def gen_image_gradient_v(width: int,height: int,top: Color,bottom: Color,) -> Im
def gen_image_white_noise(width: int,height: int,factor: float,) -> Image:
"""Generate image: white noise"""
...
def gen_mesh_binormals(mesh: Any,) -> None:
"""Compute mesh binormals"""
...
def gen_mesh_cone(radius: float,height: float,slices: int,) -> Mesh:
"""Generate cone/pyramid mesh"""
...
@ -1415,9 +1412,6 @@ def load_sound(fileName: str,) -> Sound:
def load_sound_from_wave(wave: Wave,) -> Sound:
"""Load sound from wave data"""
...
def load_storage_value(position: int,) -> int:
"""Load integer value from storage file (from defined position)"""
...
def load_texture(fileName: str,) -> Texture:
"""Load texture from file into GPU memory (VRAM)"""
...
@ -1755,9 +1749,6 @@ def save_file_data(fileName: str,data: Any,bytesToWrite: int,) -> bool:
def save_file_text(fileName: str,text: str,) -> bool:
"""Save text data to file (write), string must be '\0' terminated, returns true on success"""
...
def save_storage_value(position: int,value: int,) -> bool:
"""Save integer value to storage file (to defined position), returns true on success"""
...
def seek_music_stream(music: Music,position: float,) -> None:
"""Seek music to a position (in seconds)"""
...
@ -2372,6 +2363,11 @@ CFFI C function from raylib._raylib_cffi.lib"""
def vector3_refract(Vector3_0: Vector3,Vector3_1: Vector3,float_2: float,) -> Vector3:
"""struct Vector3 Vector3Refract(struct Vector3, struct Vector3, float);
CFFI C function from raylib._raylib_cffi.lib"""
...
def vector3_rotate_by_axis_angle(Vector3_0: Vector3,Vector3_1: Vector3,float_2: float,) -> Vector3:
"""struct Vector3 Vector3RotateByAxisAngle(struct Vector3, struct Vector3, float);
CFFI C function from raylib._raylib_cffi.lib"""
...
def vector3_rotate_by_quaternion(Vector3_0: Vector3,Vector4_1: Vector4,) -> Vector3:

2
raygui

@ -1 +1 @@
Subproject commit 38236a5513c8ceb112b6d2e944c6993d37eb5cae
Subproject commit 4e2a878e715c4aafa6ad7bd58d851221503c6e60

@ -1 +1 @@
Subproject commit 61e691d94fee0d2700ac3e8ed8783cf9c7516ab0
Subproject commit d658e6772d75bce52fbe46cc9789f0b33500bc0f

View file

@ -7,7 +7,7 @@ ARROWS_SIZE: int
ARROWS_VISIBLE: int
ARROW_PADDING: int
def AttachAudioStreamProcessor(stream: AudioStream,processor: Any,) -> None:
""""""
"""Attach audio stream processor to stream"""
...
BACKGROUND_COLOR: int
BASE_COLOR_DISABLED: int
@ -186,7 +186,7 @@ def DestroyPhysicsBody(PhysicsBodyData_pointer_0: Any,) -> None:
CFFI C function from raylib._raylib_cffi.lib"""
...
def DetachAudioStreamProcessor(stream: AudioStream,processor: Any,) -> None:
""""""
"""Detach audio stream processor from stream"""
...
def DirectoryExists(dirPath: str,) -> bool:
"""Check if a directory path exists"""
@ -589,9 +589,6 @@ def GenImageGradientV(width: int,height: int,top: Color,bottom: Color,) -> Image
def GenImageWhiteNoise(width: int,height: int,factor: float,) -> Image:
"""Generate image: white noise"""
...
def GenMeshBinormals(mesh: Any,) -> None:
"""Compute mesh binormals"""
...
def GenMeshCone(radius: float,height: float,slices: int,) -> Mesh:
"""Generate cone/pyramid mesh"""
...
@ -1895,9 +1892,6 @@ def LoadSound(fileName: str,) -> Sound:
def LoadSoundFromWave(wave: Wave,) -> Sound:
"""Load sound from wave data"""
...
def LoadStorageValue(position: int,) -> int:
"""Load integer value from storage file (from defined position)"""
...
def LoadTexture(fileName: str,) -> Texture:
"""Load texture from file into GPU memory (VRAM)"""
...
@ -2454,9 +2448,6 @@ def SaveFileData(fileName: str,data: Any,bytesToWrite: int,) -> bool:
def SaveFileText(fileName: str,text: str,) -> bool:
"""Save text data to file (write), string must be '\0' terminated, returns true on success"""
...
def SaveStorageValue(position: int,value: int,) -> bool:
"""Save integer value to storage file (to defined position), returns true on success"""
...
def SeekMusicStream(music: Music,position: float,) -> None:
"""Seek music to a position (in seconds)"""
...
@ -3097,6 +3088,11 @@ CFFI C function from raylib._raylib_cffi.lib"""
def Vector3Refract(Vector3_0: Vector3,Vector3_1: Vector3,float_2: float,) -> Vector3:
"""struct Vector3 Vector3Refract(struct Vector3, struct Vector3, float);
CFFI C function from raylib._raylib_cffi.lib"""
...
def Vector3RotateByAxisAngle(Vector3_0: Vector3,Vector3_1: Vector3,float_2: float,) -> Vector3:
"""struct Vector3 Vector3RotateByAxisAngle(struct Vector3, struct Vector3, float);
CFFI C function from raylib._raylib_cffi.lib"""
...
def Vector3RotateByQuaternion(Vector3_0: Vector3,Vector4_1: Vector4,) -> Vector3:

View file

@ -1,6 +1,6 @@
/**********************************************************************************************
*
* raylib v4.2-dev - A simple and easy-to-use library to enjoy videogames programming (www.raylib.com)
* raylib v4.2 - A simple and easy-to-use library to enjoy videogames programming (www.raylib.com)
*
* FEATURES:
* - NO external dependencies, all required libraries included with raylib
@ -80,6 +80,7 @@
// Some basic Defines
//----------------------------------------------------------------------------------
// Allow custom memory allocators
// NOTE: Require recompiling raylib sources
// NOTE: MSVC C++ compiler does not support compound literals (C99 feature)
// Plain structures in C++ (without constructors) can be initialized with { }
// NOTE: We set some defines with some data types declared by raylib
@ -853,6 +854,7 @@ typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileI
void *MemAlloc(int size); // Internal memory allocator
void *MemRealloc(void *ptr, int size); // Internal memory reallocator
void MemFree(void *ptr); // Internal memory free
void OpenURL(const char *url); // Open URL with default system browser (if available)
// Set custom callbacks
// WARNING: Callbacks setup is intended for advance users
void SetTraceLogCallback(TraceLogCallback callback); // Set custom trace log
@ -893,10 +895,6 @@ typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileI
unsigned char *DecompressData(const unsigned char *compData, int compDataSize, int *dataSize); // Decompress data (DEFLATE algorithm), memory must be MemFree()
char *EncodeDataBase64(const unsigned char *data, int dataSize, int *outputSize); // Encode data to Base64 string, memory must be MemFree()
unsigned char *DecodeDataBase64(const unsigned char *data, int *outputSize); // Decode Base64 string data, memory must be MemFree()
// Persistent storage management
bool SaveStorageValue(unsigned int position, int value); // Save integer value to storage file (to defined position), returns true on success
int LoadStorageValue(unsigned int position); // Load integer value from storage file (from defined position)
void OpenURL(const char *url); // Open URL with default system browser (if available)
//------------------------------------------------------------------------------------
// Input Handling Functions (Module: core)
//------------------------------------------------------------------------------------
@ -1226,7 +1224,6 @@ typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileI
bool ExportMesh(Mesh mesh, const char *fileName); // Export mesh data to file, returns true on success
BoundingBox GetMeshBoundingBox(Mesh mesh); // Compute mesh bounding box limits
void GenMeshTangents(Mesh *mesh); // Compute mesh tangents
void GenMeshBinormals(Mesh *mesh); // Compute mesh binormals
// Mesh generation functions
Mesh GenMeshPoly(int sides, float radius); // Generate polygonal mesh
Mesh GenMeshPlane(float width, float length, int resX, int resZ); // Generate plane mesh (with subdivisions)
@ -1327,5 +1324,5 @@ typedef void (*AudioCallback)(void *bufferData, unsigned int frames);
void SetAudioStreamPan(AudioStream stream, float pan); // Set pan for audio stream (0.5 is centered)
void SetAudioStreamBufferSizeDefault(int size); // Default size for new audio streams
void SetAudioStreamCallback(AudioStream stream, AudioCallback callback); // Audio thread callback to request new data
void AttachAudioStreamProcessor(AudioStream stream, AudioCallback processor);
void DetachAudioStreamProcessor(AudioStream stream, AudioCallback processor);
void AttachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Attach audio stream processor to stream
void DetachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Detach audio stream processor from stream

View file

@ -124,7 +124,8 @@ inline /* Functions may be inlined or external definition used*/ Vector3 Vector3
// Gram-Schmidt function implementation
inline /* Functions may be inlined or external definition used*/ void Vector3OrthoNormalize(Vector3 *v1, Vector3 *v2);// Transforms a Vector3 by a given Matrix
inline /* Functions may be inlined or external definition used*/ Vector3 Vector3Transform(Vector3 v, Matrix mat);// Transform a vector by quaternion rotation
inline /* Functions may be inlined or external definition used*/ Vector3 Vector3RotateByQuaternion(Vector3 v, Quaternion q);// Calculate linear interpolation between two vectors
inline /* Functions may be inlined or external definition used*/ Vector3 Vector3RotateByQuaternion(Vector3 v, Quaternion q);// Rotates a vector around an axis
inline /* Functions may be inlined or external definition used*/ Vector3 Vector3RotateByAxisAngle(Vector3 v, Vector3 axis, float angle);// Calculate linear interpolation between two vectors
inline /* Functions may be inlined or external definition used*/ Vector3 Vector3Lerp(Vector3 v1, Vector3 v2, float amount);// Calculate reflected vector to normal
inline /* Functions may be inlined or external definition used*/ Vector3 Vector3Reflect(Vector3 v, Vector3 normal);// Get min value for each pair of components
inline /* Functions may be inlined or external definition used*/ Vector3 Vector3Min(Vector3 v1, Vector3 v2);// Get max value for each pair of components
@ -159,15 +160,20 @@ inline /* Functions may be inlined or external definition used*/ Matrix MatrixSu
inline /* Functions may be inlined or external definition used*/ Matrix MatrixMultiply(Matrix left, Matrix right);// Get translation matrix
inline /* Functions may be inlined or external definition used*/ Matrix MatrixTranslate(float x, float y, float z);// Create rotation matrix from axis and angle
// NOTE: Angle should be provided in radians
inline /* Functions may be inlined or external definition used*/ Matrix MatrixRotate(Vector3 axis, float angle);// Get x-rotation matrix (angle in radians)
inline /* Functions may be inlined or external definition used*/ Matrix MatrixRotateX(float angle);// Get y-rotation matrix (angle in radians)
inline /* Functions may be inlined or external definition used*/ Matrix MatrixRotateY(float angle);// Get z-rotation matrix (angle in radians)
inline /* Functions may be inlined or external definition used*/ Matrix MatrixRotateZ(float angle);// Get xyz-rotation matrix (angles in radians)
inline /* Functions may be inlined or external definition used*/ Matrix MatrixRotateXYZ(Vector3 ang);// Get zyx-rotation matrix (angles in radians)
inline /* Functions may be inlined or external definition used*/ Matrix MatrixRotateZYX(Vector3 ang);// Get scaling matrix
inline /* Functions may be inlined or external definition used*/ Matrix MatrixRotate(Vector3 axis, float angle);// Get x-rotation matrix
// NOTE: Angle must be provided in radians
inline /* Functions may be inlined or external definition used*/ Matrix MatrixRotateX(float angle);// Get y-rotation matrix
// NOTE: Angle must be provided in radians
inline /* Functions may be inlined or external definition used*/ Matrix MatrixRotateY(float angle);// Get z-rotation matrix
// NOTE: Angle must be provided in radians
inline /* Functions may be inlined or external definition used*/ Matrix MatrixRotateZ(float angle);// Get xyz-rotation matrix
// NOTE: Angle must be provided in radians
inline /* Functions may be inlined or external definition used*/ Matrix MatrixRotateXYZ(Vector3 angle);// Get zyx-rotation matrix
// NOTE: Angle must be provided in radians
inline /* Functions may be inlined or external definition used*/ Matrix MatrixRotateZYX(Vector3 angle);// Get scaling matrix
inline /* Functions may be inlined or external definition used*/ Matrix MatrixScale(float x, float y, float z);// Get perspective projection matrix
inline /* Functions may be inlined or external definition used*/ Matrix MatrixFrustum(double left, double right, double bottom, double top, double near, double far);// Get perspective projection matrix
// NOTE: Angle should be provided in radians
// NOTE: Fovy angle must be provided in radians
inline /* Functions may be inlined or external definition used*/ Matrix MatrixPerspective(double fovy, double aspect, double near, double far);// Get orthographic projection matrix
inline /* Functions may be inlined or external definition used*/ Matrix MatrixOrtho(double left, double right, double bottom, double top, double near, double far);// Get camera look-at matrix (view matrix)
inline /* Functions may be inlined or external definition used*/ Matrix MatrixLookAt(Vector3 eye, Vector3 target, Vector3 up);// Get float array of matrix data
@ -192,7 +198,7 @@ inline /* Functions may be inlined or external definition used*/ Quaternion Quat
inline /* Functions may be inlined or external definition used*/ Quaternion QuaternionFromVector3ToVector3(Vector3 from, Vector3 to);// Get a quaternion for a given rotation matrix
inline /* Functions may be inlined or external definition used*/ Quaternion QuaternionFromMatrix(Matrix mat);// Get a matrix for a given quaternion
inline /* Functions may be inlined or external definition used*/ Matrix QuaternionToMatrix(Quaternion q);// Get rotation quaternion for an angle and axis
// NOTE: angle must be provided in radians
// NOTE: Angle must be provided in radians
inline /* Functions may be inlined or external definition used*/ Quaternion QuaternionFromAxisAngle(Vector3 axis, float angle);// Get the rotation angle and axis for a given quaternion
inline /* Functions may be inlined or external definition used*/ void QuaternionToAxisAngle(Quaternion q, Vector3 *outAxis, float *outAngle);// Get the quaternion equivalent to Euler angles
// NOTE: Rotation order is ZYX

View file

@ -3,6 +3,8 @@ init_window(800, 450, "Hello")
while not window_should_close():
begin_drawing()
clear_background(WHITE)
font = load_font_ex("/home/richard/pycharm-2022.1.4/jbr/lib/fonts/DroidSans.ttf", 30, None, 0)
draw_text_ex(font, "hellow font", (300, 300), 30, 0, BLACK)
draw_text("Hello world", 190, 200, 20, VIOLET)
end_drawing()
close_window()

View file

@ -1 +1 @@
__version__ = "4.2.0.0.dev4"
__version__ = "4.2.0.0"