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. 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**. * 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. * There are some helper functions to create structures.
Examples
--------
Example program: Example program:
.. code-block:: .. code-block::
@ -45,9 +57,10 @@ Example program:
init_window(800, 450, "Raylib texture test") 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 API reference
------------- -------------

View file

@ -1,7 +1,8 @@
C API 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. are very, very similar to the C originals.
Example program: 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 .. 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: 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 import rl, ffi
from raylib.colors import * 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 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: def attach_audio_stream_processor(stream: AudioStream,processor: Any,) -> None:
"""""" """Attach audio stream processor to stream"""
... ...
def begin_blend_mode(mode: int,) -> None: def begin_blend_mode(mode: int,) -> None:
"""Begin blending mode (alpha, additive, multiplied, subtract, custom)""" """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""" CFFI C function from raylib._raylib_cffi.lib"""
... ...
def detach_audio_stream_processor(stream: AudioStream,processor: Any,) -> None: def detach_audio_stream_processor(stream: AudioStream,processor: Any,) -> None:
"""""" """Detach audio stream processor from stream"""
... ...
def directory_exists(dirPath: str,) -> bool: def directory_exists(dirPath: str,) -> bool:
"""Check if a directory path exists""" """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: def gen_image_white_noise(width: int,height: int,factor: float,) -> Image:
"""Generate image: white noise""" """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: def gen_mesh_cone(radius: float,height: float,slices: int,) -> Mesh:
"""Generate cone/pyramid mesh""" """Generate cone/pyramid mesh"""
... ...
@ -1415,9 +1412,6 @@ def load_sound(fileName: str,) -> Sound:
def load_sound_from_wave(wave: Wave,) -> Sound: def load_sound_from_wave(wave: Wave,) -> Sound:
"""Load sound from wave data""" """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: def load_texture(fileName: str,) -> Texture:
"""Load texture from file into GPU memory (VRAM)""" """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: def save_file_text(fileName: str,text: str,) -> bool:
"""Save text data to file (write), string must be '\0' terminated, returns true on success""" """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: def seek_music_stream(music: Music,position: float,) -> None:
"""Seek music to a position (in seconds)""" """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: def vector3_refract(Vector3_0: Vector3,Vector3_1: Vector3,float_2: float,) -> Vector3:
"""struct Vector3 Vector3Refract(struct Vector3, struct Vector3, float); """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""" CFFI C function from raylib._raylib_cffi.lib"""
... ...
def vector3_rotate_by_quaternion(Vector3_0: Vector3,Vector4_1: Vector4,) -> Vector3: 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 ARROWS_VISIBLE: int
ARROW_PADDING: int ARROW_PADDING: int
def AttachAudioStreamProcessor(stream: AudioStream,processor: Any,) -> None: def AttachAudioStreamProcessor(stream: AudioStream,processor: Any,) -> None:
"""""" """Attach audio stream processor to stream"""
... ...
BACKGROUND_COLOR: int BACKGROUND_COLOR: int
BASE_COLOR_DISABLED: int BASE_COLOR_DISABLED: int
@ -186,7 +186,7 @@ def DestroyPhysicsBody(PhysicsBodyData_pointer_0: Any,) -> None:
CFFI C function from raylib._raylib_cffi.lib""" CFFI C function from raylib._raylib_cffi.lib"""
... ...
def DetachAudioStreamProcessor(stream: AudioStream,processor: Any,) -> None: def DetachAudioStreamProcessor(stream: AudioStream,processor: Any,) -> None:
"""""" """Detach audio stream processor from stream"""
... ...
def DirectoryExists(dirPath: str,) -> bool: def DirectoryExists(dirPath: str,) -> bool:
"""Check if a directory path exists""" """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: def GenImageWhiteNoise(width: int,height: int,factor: float,) -> Image:
"""Generate image: white noise""" """Generate image: white noise"""
... ...
def GenMeshBinormals(mesh: Any,) -> None:
"""Compute mesh binormals"""
...
def GenMeshCone(radius: float,height: float,slices: int,) -> Mesh: def GenMeshCone(radius: float,height: float,slices: int,) -> Mesh:
"""Generate cone/pyramid mesh""" """Generate cone/pyramid mesh"""
... ...
@ -1895,9 +1892,6 @@ def LoadSound(fileName: str,) -> Sound:
def LoadSoundFromWave(wave: Wave,) -> Sound: def LoadSoundFromWave(wave: Wave,) -> Sound:
"""Load sound from wave data""" """Load sound from wave data"""
... ...
def LoadStorageValue(position: int,) -> int:
"""Load integer value from storage file (from defined position)"""
...
def LoadTexture(fileName: str,) -> Texture: def LoadTexture(fileName: str,) -> Texture:
"""Load texture from file into GPU memory (VRAM)""" """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: def SaveFileText(fileName: str,text: str,) -> bool:
"""Save text data to file (write), string must be '\0' terminated, returns true on success""" """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: def SeekMusicStream(music: Music,position: float,) -> None:
"""Seek music to a position (in seconds)""" """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: def Vector3Refract(Vector3_0: Vector3,Vector3_1: Vector3,float_2: float,) -> Vector3:
"""struct Vector3 Vector3Refract(struct Vector3, struct Vector3, float); """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""" CFFI C function from raylib._raylib_cffi.lib"""
... ...
def Vector3RotateByQuaternion(Vector3_0: Vector3,Vector4_1: Vector4,) -> Vector3: 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: * FEATURES:
* - NO external dependencies, all required libraries included with raylib * - NO external dependencies, all required libraries included with raylib
@ -80,6 +80,7 @@
// Some basic Defines // Some basic Defines
//---------------------------------------------------------------------------------- //----------------------------------------------------------------------------------
// Allow custom memory allocators // Allow custom memory allocators
// NOTE: Require recompiling raylib sources
// NOTE: MSVC C++ compiler does not support compound literals (C99 feature) // NOTE: MSVC C++ compiler does not support compound literals (C99 feature)
// Plain structures in C++ (without constructors) can be initialized with { } // Plain structures in C++ (without constructors) can be initialized with { }
// NOTE: We set some defines with some data types declared by raylib // 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 *MemAlloc(int size); // Internal memory allocator
void *MemRealloc(void *ptr, int size); // Internal memory reallocator void *MemRealloc(void *ptr, int size); // Internal memory reallocator
void MemFree(void *ptr); // Internal memory free void MemFree(void *ptr); // Internal memory free
void OpenURL(const char *url); // Open URL with default system browser (if available)
// Set custom callbacks // Set custom callbacks
// WARNING: Callbacks setup is intended for advance users // WARNING: Callbacks setup is intended for advance users
void SetTraceLogCallback(TraceLogCallback callback); // Set custom trace log 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() 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() 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() 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) // 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 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 BoundingBox GetMeshBoundingBox(Mesh mesh); // Compute mesh bounding box limits
void GenMeshTangents(Mesh *mesh); // Compute mesh tangents void GenMeshTangents(Mesh *mesh); // Compute mesh tangents
void GenMeshBinormals(Mesh *mesh); // Compute mesh binormals
// Mesh generation functions // Mesh generation functions
Mesh GenMeshPoly(int sides, float radius); // Generate polygonal mesh Mesh GenMeshPoly(int sides, float radius); // Generate polygonal mesh
Mesh GenMeshPlane(float width, float length, int resX, int resZ); // Generate plane mesh (with subdivisions) 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 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 SetAudioStreamBufferSizeDefault(int size); // Default size for new audio streams
void SetAudioStreamCallback(AudioStream stream, AudioCallback callback); // Audio thread callback to request new data void SetAudioStreamCallback(AudioStream stream, AudioCallback callback); // Audio thread callback to request new data
void AttachAudioStreamProcessor(AudioStream stream, AudioCallback processor); void AttachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Attach audio stream processor to stream
void DetachAudioStreamProcessor(AudioStream stream, AudioCallback processor); 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 // 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*/ 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 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 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 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 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 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 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 // 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 MatrixRotate(Vector3 axis, float angle);// Get x-rotation matrix
inline /* Functions may be inlined or external definition used*/ Matrix MatrixRotateX(float angle);// Get y-rotation matrix (angle in radians) // NOTE: Angle must be provided 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 MatrixRotateX(float angle);// Get y-rotation matrix
inline /* Functions may be inlined or external definition used*/ Matrix MatrixRotateZ(float angle);// Get xyz-rotation matrix (angles in radians) // NOTE: Angle must be provided 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 MatrixRotateY(float angle);// Get z-rotation matrix
inline /* Functions may be inlined or external definition used*/ Matrix MatrixRotateZYX(Vector3 ang);// Get scaling 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 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 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 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 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 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 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*/ 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 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*/ 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 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 // NOTE: Rotation order is ZYX

View file

@ -3,6 +3,8 @@ init_window(800, 450, "Hello")
while not window_should_close(): while not window_should_close():
begin_drawing() begin_drawing()
clear_background(WHITE) 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) draw_text("Hello world", 190, 200, 20, VIOLET)
end_drawing() end_drawing()
close_window() close_window()

View file

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