|
|
@ -43,27 +43,35 @@ RLAPI const char *GetMonitorName(int monitor); // Get the hum |
|
|
|
RLAPI void SetClipboardText(const char *text); // Set clipboard text content |
|
|
|
RLAPI const char *GetClipboardText(void); // Get clipboard text content |
|
|
|
|
|
|
|
// Custom frame control functions |
|
|
|
// NOTE: Those functions are intended for advance users that want full control over the frame processing |
|
|
|
// By default EndDrawing() does this job: draws everything + SwapScreenBuffer() + manage frame timming + PollInputEvents() |
|
|
|
// To avoid that behaviour and control frame processes manually, enable in config.h: SUPPORT_CUSTOM_FRAME_CONTROL |
|
|
|
RLAPI void SwapScreenBuffer(void); // Swap back buffer with front buffer (screen drawing) |
|
|
|
RLAPI void PollInputEvents(void); // Register all input events |
|
|
|
RLAPI void WaitTime(float ms); // Wait for some milliseconds (halt program execution) |
|
|
|
|
|
|
|
// Cursor-related functions |
|
|
|
RLAPI void ShowCursor(void); // Shows cursor |
|
|
|
RLAPI void HideCursor(void); // Hides cursor |
|
|
|
RLAPI bool IsCursorHidden(void); // Check if cursor is not visible |
|
|
|
RLAPI void EnableCursor(void); // Enables cursor (unlock cursor) |
|
|
|
RLAPI void DisableCursor(void); // Disables cursor (lock cursor) |
|
|
|
RLAPI bool IsCursorOnScreen(void); // Check if cursor is on the current screen. |
|
|
|
RLAPI bool IsCursorOnScreen(void); // Check if cursor is on the screen |
|
|
|
|
|
|
|
// Drawing-related functions |
|
|
|
RLAPI void ClearBackground(Color color); // Set background color (framebuffer clear color) |
|
|
|
RLAPI void BeginDrawing(void); // Setup canvas (framebuffer) to start drawing |
|
|
|
RLAPI void EndDrawing(void); // End canvas drawing and swap buffers (double buffering) |
|
|
|
RLAPI void BeginMode2D(Camera2D camera); // Initialize 2D mode with custom camera (2D) |
|
|
|
RLAPI void BeginMode2D(Camera2D camera); // Begin 2D mode with custom camera (2D) |
|
|
|
RLAPI void EndMode2D(void); // Ends 2D mode with custom camera |
|
|
|
RLAPI void BeginMode3D(Camera3D camera); // Initializes 3D mode with custom camera (3D) |
|
|
|
RLAPI void BeginMode3D(Camera3D camera); // Begin 3D mode with custom camera (3D) |
|
|
|
RLAPI void EndMode3D(void); // Ends 3D mode and returns to default 2D orthographic mode |
|
|
|
RLAPI void BeginTextureMode(RenderTexture2D target); // Initializes render texture for drawing |
|
|
|
RLAPI void BeginTextureMode(RenderTexture2D target); // Begin drawing to render texture |
|
|
|
RLAPI void EndTextureMode(void); // Ends drawing to render texture |
|
|
|
RLAPI void BeginShaderMode(Shader shader); // Begin custom shader drawing |
|
|
|
RLAPI void EndShaderMode(void); // End custom shader drawing (use default shader) |
|
|
|
RLAPI void BeginBlendMode(int mode); // Begin blending mode (alpha, additive, multiplied) |
|
|
|
RLAPI void BeginBlendMode(int mode); // Begin blending mode (alpha, additive, multiplied, subtract, custom) |
|
|
|
RLAPI void EndBlendMode(void); // End blending mode (reset to default: alpha blending) |
|
|
|
RLAPI void BeginScissorMode(int x, int y, int width, int height); // Begin scissor mode (define screen area for following drawing) |
|
|
|
RLAPI void EndScissorMode(void); // End scissor mode |
|
|
@ -87,26 +95,27 @@ RLAPI void SetShaderValueTexture(Shader shader, int locIndex, Texture2D texture) |
|
|
|
RLAPI void UnloadShader(Shader shader); // Unload shader from GPU memory (VRAM) |
|
|
|
|
|
|
|
// Screen-space-related functions |
|
|
|
RLAPI Ray GetMouseRay(Vector2 mousePosition, Camera camera); // Returns a ray trace from mouse position |
|
|
|
RLAPI Matrix GetCameraMatrix(Camera camera); // Returns camera transform matrix (view matrix) |
|
|
|
RLAPI Matrix GetCameraMatrix2D(Camera2D camera); // Returns camera 2d transform matrix |
|
|
|
RLAPI Vector2 GetWorldToScreen(Vector3 position, Camera camera); // Returns the screen space position for a 3d world space position |
|
|
|
RLAPI Vector2 GetWorldToScreenEx(Vector3 position, Camera camera, int width, int height); // Returns size position for a 3d world space position |
|
|
|
RLAPI Vector2 GetWorldToScreen2D(Vector2 position, Camera2D camera); // Returns the screen space position for a 2d camera world space position |
|
|
|
RLAPI Vector2 GetScreenToWorld2D(Vector2 position, Camera2D camera); // Returns the world space position for a 2d camera screen space position |
|
|
|
RLAPI Ray GetMouseRay(Vector2 mousePosition, Camera camera); // Get a ray trace from mouse position |
|
|
|
RLAPI Matrix GetCameraMatrix(Camera camera); // Get camera transform matrix (view matrix) |
|
|
|
RLAPI Matrix GetCameraMatrix2D(Camera2D camera); // Get camera 2d transform matrix |
|
|
|
RLAPI Vector2 GetWorldToScreen(Vector3 position, Camera camera); // Get the screen space position for a 3d world space position |
|
|
|
RLAPI Vector2 GetWorldToScreenEx(Vector3 position, Camera camera, int width, int height); // Get size position for a 3d world space position |
|
|
|
RLAPI Vector2 GetWorldToScreen2D(Vector2 position, Camera2D camera); // Get the screen space position for a 2d camera world space position |
|
|
|
RLAPI Vector2 GetScreenToWorld2D(Vector2 position, Camera2D camera); // Get the world space position for a 2d camera screen space position |
|
|
|
|
|
|
|
// Timing-related functions |
|
|
|
RLAPI void SetTargetFPS(int fps); // Set target FPS (maximum) |
|
|
|
RLAPI int GetFPS(void); // Returns current FPS |
|
|
|
RLAPI float GetFrameTime(void); // Returns time in seconds for last frame drawn (delta time) |
|
|
|
RLAPI double GetTime(void); // Returns elapsed time in seconds since InitWindow() |
|
|
|
RLAPI int GetFPS(void); // Get current FPS |
|
|
|
RLAPI float GetFrameTime(void); // Get time in seconds for last frame drawn (delta time) |
|
|
|
RLAPI double GetTime(void); // Get elapsed time in seconds since InitWindow() |
|
|
|
|
|
|
|
// Misc. functions |
|
|
|
RLAPI int GetRandomValue(int min, int max); // Returns a random value between min and max (both included) |
|
|
|
RLAPI int GetRandomValue(int min, int max); // Get a random value between min and max (both included) |
|
|
|
RLAPI void SetRandomSeed(unsigned int seed); // Set the seed for the random number generator |
|
|
|
RLAPI void TakeScreenshot(const char *fileName); // Takes a screenshot of current screen (filename extension defines format) |
|
|
|
RLAPI void SetConfigFlags(unsigned int flags); // Setup init configuration flags (view FLAGS) |
|
|
|
|
|
|
|
RLAPI void TraceLog(int logLevel, const char *text, ...); // Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR) |
|
|
|
RLAPI void TraceLog(int logLevel, const char *text, ...); // Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...) |
|
|
|
RLAPI void SetTraceLogLevel(int logLevel); // Set the current threshold (minimum) log level |
|
|
|
RLAPI void *MemAlloc(int size); // Internal memory allocator |
|
|
|
RLAPI void *MemRealloc(void *ptr, int size); // Internal memory reallocator |
|
|
@ -125,12 +134,12 @@ RLAPI unsigned char *LoadFileData(const char *fileName, unsigned int *bytesRead) |
|
|
|
RLAPI void UnloadFileData(unsigned char *data); // Unload file data allocated by LoadFileData() |
|
|
|
RLAPI bool SaveFileData(const char *fileName, void *data, unsigned int bytesToWrite); // Save data to file from byte array (write), returns true on success |
|
|
|
RLAPI char *LoadFileText(const char *fileName); // Load text data from file (read), returns a '\0' terminated string |
|
|
|
RLAPI void UnloadFileText(unsigned char *text); // Unload file text data allocated by LoadFileText() |
|
|
|
RLAPI void UnloadFileText(char *text); // Unload file text data allocated by LoadFileText() |
|
|
|
RLAPI bool SaveFileText(const char *fileName, char *text); // Save text data to file (write), string must be '\0' terminated, returns true on success |
|
|
|
RLAPI bool FileExists(const char *fileName); // Check if file exists |
|
|
|
RLAPI bool DirectoryExists(const char *dirPath); // Check if a directory path exists |
|
|
|
RLAPI bool IsFileExtension(const char *fileName, const char *ext); // Check file extension (including point: .png, .wav) |
|
|
|
RLAPI const char *GetFileExtension(const char *fileName); // Get pointer to extension for a filename string (includes dot: sa">".png";) |
|
|
|
RLAPI bool IsFileExtension(const char *fileName, const char *ext);// Check file extension (including point: .png, .wav) |
|
|
|
RLAPI const char *GetFileExtension(const char *fileName); // Get pointer to extension for a filename string (includes dot: err">'.png';) |
|
|
|
RLAPI const char *GetFileName(const char *filePath); // Get pointer to filename for a path string |
|
|
|
RLAPI const char *GetFileNameWithoutExt(const char *filePath); // Get filename string without extension (uses static string) |
|
|
|
RLAPI const char *GetDirectoryPath(const char *filePath); // Get full path for a given fileName with path (uses static string) |
|
|
@ -144,8 +153,11 @@ RLAPI char **GetDroppedFiles(int *count); // Get dropped |
|
|
|
RLAPI void ClearDroppedFiles(void); // Clear dropped files paths buffer (free memory) |
|
|
|
RLAPI long GetFileModTime(const char *fileName); // Get file modification time (last write time) |
|
|
|
|
|
|
|
// Compression/Encoding functionality |
|
|
|
RLAPI unsigned char *CompressData(unsigned char *data, int dataLength, int *compDataLength); // Compress data (DEFLATE algorithm) |
|
|
|
RLAPI unsigned char *DecompressData(unsigned char *compData, int compDataLength, int *dataLength); // Decompress data (DEFLATE algorithm) |
|
|
|
RLAPI char *EncodeDataBase64(const unsigned char *data, int dataLength, int *outputLength); // Encode data to Base64 string |
|
|
|
RLAPI unsigned char *DecodeDataBase64(unsigned char *data, int *outputLength); // Decode Base64 string data |
|
|
|
|
|
|
|
// Persistent storage management |
|
|
|
RLAPI bool SaveStorageValue(unsigned int position, int value); // Save integer value to storage file (to defined position), returns true on success |
|
|
@ -158,53 +170,54 @@ RLAPI void OpenURL(const char *url); // Open URL wi |
|
|
|
//------------------------------------------------------------------------------------ |
|
|
|
|
|
|
|
// Input-related functions: keyboard |
|
|
|
RLAPI bool IsKeyPressed(int key); // Detect if a key has been pressed once |
|
|
|
RLAPI bool IsKeyDown(int key); // Detect if a key is being pressed |
|
|
|
RLAPI bool IsKeyReleased(int key); // Detect if a key has been released once |
|
|
|
RLAPI bool IsKeyUp(int key); // Detect if a key is NOT being pressed |
|
|
|
RLAPI bool IsKeyPressed(int key); // Check if a key has been pressed once |
|
|
|
RLAPI bool IsKeyDown(int key); // Check if a key is being pressed |
|
|
|
RLAPI bool IsKeyReleased(int key); // Check if a key has been released once |
|
|
|
RLAPI bool IsKeyUp(int key); // Check if a key is NOT being pressed |
|
|
|
RLAPI void SetExitKey(int key); // Set a custom key to exit program (default is ESC) |
|
|
|
RLAPI int GetKeyPressed(void); // Get key pressed (keycode), call it multiple times for keys queued |
|
|
|
RLAPI int GetCharPressed(void); // Get char pressed (unicode), call it multiple times for chars queued |
|
|
|
RLAPI int GetKeyPressed(void); // Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty |
|
|
|
RLAPI int GetCharPressed(void); // Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty |
|
|
|
|
|
|
|
// Input-related functions: gamepads |
|
|
|
RLAPI bool IsGamepadAvailable(int gamepad); // Detect if a gamepad is available |
|
|
|
RLAPI bool IsGamepadName(int gamepad, const char *name); // Check gamepad name (if available) |
|
|
|
RLAPI const char *GetGamepadName(int gamepad); // Return gamepad internal name id |
|
|
|
RLAPI bool IsGamepadButtonPressed(int gamepad, int button); // Detect if a gamepad button has been pressed once |
|
|
|
RLAPI bool IsGamepadButtonDown(int gamepad, int button); // Detect if a gamepad button is being pressed |
|
|
|
RLAPI bool IsGamepadButtonReleased(int gamepad, int button); // Detect if a gamepad button has been released once |
|
|
|
RLAPI bool IsGamepadButtonUp(int gamepad, int button); // Detect if a gamepad button is NOT being pressed |
|
|
|
RLAPI bool IsGamepadAvailable(int gamepad); // Check if a gamepad is available |
|
|
|
RLAPI const char *GetGamepadName(int gamepad); // Get gamepad internal name id |
|
|
|
RLAPI bool IsGamepadButtonPressed(int gamepad, int button); // Check if a gamepad button has been pressed once |
|
|
|
RLAPI bool IsGamepadButtonDown(int gamepad, int button); // Check if a gamepad button is being pressed |
|
|
|
RLAPI bool IsGamepadButtonReleased(int gamepad, int button); // Check if a gamepad button has been released once |
|
|
|
RLAPI bool IsGamepadButtonUp(int gamepad, int button); // Check if a gamepad button is NOT being pressed |
|
|
|
RLAPI int GetGamepadButtonPressed(void); // Get the last gamepad button pressed |
|
|
|
RLAPI int GetGamepadAxisCount(int gamepad); // Return gamepad axis count for a gamepad |
|
|
|
RLAPI float GetGamepadAxisMovement(int gamepad, int axis); // Return axis movement value for a gamepad axis |
|
|
|
RLAPI int GetGamepadAxisCount(int gamepad); // Get gamepad axis count for a gamepad |
|
|
|
RLAPI float GetGamepadAxisMovement(int gamepad, int axis); // Get axis movement value for a gamepad axis |
|
|
|
RLAPI int SetGamepadMappings(const char *mappings); // Set internal gamepad mappings (SDL_GameControllerDB) |
|
|
|
|
|
|
|
// Input-related functions: mouse |
|
|
|
RLAPI bool IsMouseButtonPressed(int button); // Detect if a mouse button has been pressed once |
|
|
|
RLAPI bool IsMouseButtonDown(int button); // Detect if a mouse button is being pressed |
|
|
|
RLAPI bool IsMouseButtonReleased(int button); // Detect if a mouse button has been released once |
|
|
|
RLAPI bool IsMouseButtonUp(int button); // Detect if a mouse button is NOT being pressed |
|
|
|
RLAPI int GetMouseX(void); // Returns mouse position X |
|
|
|
RLAPI int GetMouseY(void); // Returns mouse position Y |
|
|
|
RLAPI Vector2 GetMousePosition(void); // Returns mouse position XY |
|
|
|
RLAPI bool IsMouseButtonPressed(int button); // Check if a mouse button has been pressed once |
|
|
|
RLAPI bool IsMouseButtonDown(int button); // Check if a mouse button is being pressed |
|
|
|
RLAPI bool IsMouseButtonReleased(int button); // Check if a mouse button has been released once |
|
|
|
RLAPI bool IsMouseButtonUp(int button); // Check if a mouse button is NOT being pressed |
|
|
|
RLAPI int GetMouseX(void); // Get mouse position X |
|
|
|
RLAPI int GetMouseY(void); // Get mouse position Y |
|
|
|
RLAPI Vector2 GetMousePosition(void); // Get mouse position XY |
|
|
|
RLAPI Vector2 GetMouseDelta(void); // Get mouse delta between frames |
|
|
|
RLAPI void SetMousePosition(int x, int y); // Set mouse position XY |
|
|
|
RLAPI void SetMouseOffset(int offsetX, int offsetY); // Set mouse offset |
|
|
|
RLAPI void SetMouseScale(float scaleX, float scaleY); // Set mouse scaling |
|
|
|
RLAPI float GetMouseWheelMove(void); // Returns mouse wheel movement Y |
|
|
|
RLAPI float GetMouseWheelMove(void); // Get mouse wheel movement Y |
|
|
|
RLAPI void SetMouseCursor(int cursor); // Set mouse cursor |
|
|
|
|
|
|
|
// Input-related functions: touch |
|
|
|
RLAPI int GetTouchX(void); // Returns touch position X for touch point 0 (relative to screen size) |
|
|
|
RLAPI int GetTouchY(void); // Returns touch position Y for touch point 0 (relative to screen size) |
|
|
|
RLAPI Vector2 GetTouchPosition(int index); // Returns touch position XY for a touch point index (relative to screen size) |
|
|
|
RLAPI int GetTouchX(void); // Get touch position X for touch point 0 (relative to screen size) |
|
|
|
RLAPI int GetTouchY(void); // Get touch position Y for touch point 0 (relative to screen size) |
|
|
|
RLAPI Vector2 GetTouchPosition(int index); // Get touch position XY for a touch point index (relative to screen size) |
|
|
|
RLAPI int GetTouchPointId(int index); // Get touch point identifier for given index |
|
|
|
RLAPI int GetTouchPointCount(void); // Get number of touch points |
|
|
|
|
|
|
|
//------------------------------------------------------------------------------------ |
|
|
|
// Gestures and Touch Handling Functions (Module: gestures) |
|
|
|
// Gestures and Touch Handling Functions (Module: rgestures) |
|
|
|
//------------------------------------------------------------------------------------ |
|
|
|
RLAPI void SetGesturesEnabled(unsigned int flags); // Enable a set of gestures using flags |
|
|
|
RLAPI bool IsGestureDetected(int gesture); // Check if a gesture have been detected |
|
|
|
RLAPI int GetGestureDetected(void); // Get latest detected gesture |
|
|
|
RLAPI int GetTouchPointsCount(void); // Get touch points count |
|
|
|
RLAPI float GetGestureHoldDuration(void); // Get gesture hold time in milliseconds |
|
|
|
RLAPI Vector2 GetGestureDragVector(void); // Get gesture drag vector |
|
|
|
RLAPI float GetGestureDragAngle(void); // Get gesture drag angle |
|
|
@ -212,7 +225,7 @@ RLAPI Vector2 GetGesturePinchVector(void); // Get gesture pinch del |
|
|
|
RLAPI float GetGesturePinchAngle(void); // Get gesture pinch angle |
|
|
|
|
|
|
|
//------------------------------------------------------------------------------------ |
|
|
|
// Camera System Functions (Module: camera) |
|
|
|
// Camera System Functions (Module: rcamera) |
|
|
|
//------------------------------------------------------------------------------------ |
|
|
|
RLAPI void SetCameraMode(Camera camera, int mode); // Set camera mode (multiple camera modes available) |
|
|
|
RLAPI void UpdateCamera(Camera *camera); // Update camera position for selected mode |
|
|
@ -228,7 +241,7 @@ RLAPI void SetCameraMoveControls(int keyFront, int keyBack, int keyRight, int ke |
|
|
|
// Set texture and rectangle to be used on shapes drawing |
|
|
|
// NOTE: It can be useful when using basic shapes and one single font, |
|
|
|
// defining a font char white rectangle would allow drawing everything in a single draw call |
|
|
|
RLAPI void SetShapesTexture(Texture2D texture, Rectangle source); // Set texture and rectangle to be used on shapes drawing |
|
|
|
RLAPI void SetShapesTexture(Texture2D texture, Rectangle source); // Set texture and rectangle to be used on shapes drawing |
|
|
|
|
|
|
|
// Basic shapes drawing functions |
|
|
|
RLAPI void DrawPixel(int posX, int posY, Color color); // Draw a pixel |
|
|
@ -237,8 +250,9 @@ RLAPI void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Colo |
|
|
|
RLAPI void DrawLineV(Vector2 startPos, Vector2 endPos, Color color); // Draw a line (Vector version) |
|
|
|
RLAPI void DrawLineEx(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw a line defining thickness |
|
|
|
RLAPI void DrawLineBezier(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw a line using cubic-bezier curves in-out |
|
|
|
RLAPI void DrawLineBezierQuad(Vector2 startPos, Vector2 endPos, Vector2 controlPos, float thick, Color color); //Draw line using quadratic bezier curves with a control point |
|
|
|
RLAPI void DrawLineStrip(Vector2 *points, int pointsCount, Color color); // Draw lines sequence |
|
|
|
RLAPI void DrawLineBezierQuad(Vector2 startPos, Vector2 endPos, Vector2 controlPos, float thick, Color color); // Draw line using quadratic bezier curves with a control point |
|
|
|
RLAPI void DrawLineBezierCubic(Vector2 startPos, Vector2 endPos, Vector2 startControlPos, Vector2 endControlPos, float thick, Color color); // Draw line using cubic bezier curves with 2 control points |
|
|
|
RLAPI void DrawLineStrip(Vector2 *points, int pointCount, Color color); // Draw lines sequence |
|
|
|
RLAPI void DrawCircle(int centerX, int centerY, float radius, Color color); // Draw a color-filled circle |
|
|
|
RLAPI void DrawCircleSector(Vector2 center, float radius, float startAngle, float endAngle, int segments, Color color); // Draw a piece of a circle |
|
|
|
RLAPI void DrawCircleSectorLines(Vector2 center, float radius, float startAngle, float endAngle, int segments, Color color); // Draw circle sector outline |
|
|
@ -253,19 +267,20 @@ RLAPI void DrawRectangle(int posX, int posY, int width, int height, Color color) |
|
|
|
RLAPI void DrawRectangleV(Vector2 position, Vector2 size, Color color); // Draw a color-filled rectangle (Vector version) |
|
|
|
RLAPI void DrawRectangleRec(Rectangle rec, Color color); // Draw a color-filled rectangle |
|
|
|
RLAPI void DrawRectanglePro(Rectangle rec, Vector2 origin, float rotation, Color color); // Draw a color-filled rectangle with pro parameters |
|
|
|
RLAPI void DrawRectangleGradientV(int posX, int posY, int width, int height, Color color1, Color color2); // Draw a vertical-gradient-filled rectangle |
|
|
|
RLAPI void DrawRectangleGradientH(int posX, int posY, int width, int height, Color color1, Color color2); // Draw a horizontal-gradient-filled rectangle |
|
|
|
RLAPI void DrawRectangleGradientV(int posX, int posY, int width, int height, Color color1, Color color2);// Draw a vertical-gradient-filled rectangle |
|
|
|
RLAPI void DrawRectangleGradientH(int posX, int posY, int width, int height, Color color1, Color color2);// Draw a horizontal-gradient-filled rectangle |
|
|
|
RLAPI void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, Color col4); // Draw a gradient-filled rectangle with custom vertex colors |
|
|
|
RLAPI void DrawRectangleLines(int posX, int posY, int width, int height, Color color); // Draw rectangle outline |
|
|
|
RLAPI void DrawRectangleLinesEx(Rectangle rec, int lineThick, Color color); // Draw rectangle outline with extended parameters |
|
|
|
RLAPI void DrawRectangleLinesEx(Rectangle rec, float lineThick, Color color); // Draw rectangle outline with extended parameters |
|
|
|
RLAPI void DrawRectangleRounded(Rectangle rec, float roundness, int segments, Color color); // Draw rectangle with rounded edges |
|
|
|
RLAPI void DrawRectangleRoundedLines(Rectangle rec, float roundness, int segments, int lineThick, Color color); // Draw rectangle with rounded edges outline |
|
|
|
RLAPI void DrawRectangleRoundedLines(Rectangle rec, float roundness, int segments, float lineThick, Color color); // Draw rectangle with rounded edges outline |
|
|
|
RLAPI void DrawTriangle(Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw a color-filled triangle (vertex in counter-clockwise order!) |
|
|
|
RLAPI void DrawTriangleLines(Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle outline (vertex in counter-clockwise order!) |
|
|
|
RLAPI void DrawTriangleFan(Vector2 *points, int pointsCount, Color color); // Draw a triangle fan defined by points (first vertex is the center) |
|
|
|
RLAPI void DrawTriangleStrip(Vector2 *points, int pointsCount, Color color); // Draw a triangle strip defined by points |
|
|
|
RLAPI void DrawTriangleFan(Vector2 *points, int pointCount, Color color); // Draw a triangle fan defined by points (first vertex is the center) |
|
|
|
RLAPI void DrawTriangleStrip(Vector2 *points, int pointCount, Color color); // Draw a triangle strip defined by points |
|
|
|
RLAPI void DrawPoly(Vector2 center, int sides, float radius, float rotation, Color color); // Draw a regular polygon (Vector version) |
|
|
|
RLAPI void DrawPolyLines(Vector2 center, int sides, float radius, float rotation, Color color); // Draw a polygon outline of n sides |
|
|
|
RLAPI void DrawPolyLinesEx(Vector2 center, int sides, float radius, float rotation, float lineThick, Color color); // Draw a polygon outline of n sides with extended parameters |
|
|
|
|
|
|
|
// Basic shapes collision detection functions |
|
|
|
RLAPI bool CheckCollisionRecs(Rectangle rec1, Rectangle rec2); // Check collision between two rectangles |
|
|
@ -275,6 +290,7 @@ RLAPI bool CheckCollisionPointRec(Vector2 point, Rectangle rec); |
|
|
|
RLAPI bool CheckCollisionPointCircle(Vector2 point, Vector2 center, float radius); // Check if point is inside circle |
|
|
|
RLAPI bool CheckCollisionPointTriangle(Vector2 point, Vector2 p1, Vector2 p2, Vector2 p3); // Check if point is inside a triangle |
|
|
|
RLAPI 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 |
|
|
|
RLAPI 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] |
|
|
|
RLAPI Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2); // Get collision rectangle for two rectangles collision |
|
|
|
|
|
|
|
//------------------------------------------------------------------------------------ |
|
|
@ -286,7 +302,9 @@ RLAPI Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2); |
|
|
|
RLAPI Image LoadImage(const char *fileName); // Load image from file into CPU memory (RAM) |
|
|
|
RLAPI Image LoadImageRaw(const char *fileName, int width, int height, int format, int headerSize); // Load image from RAW file data |
|
|
|
RLAPI Image LoadImageAnim(const char *fileName, int *frames); // Load image sequence from file (frames appended to image.data) |
|
|
|
RLAPI Image LoadImageFromMemory(const char *fileType, const unsigned char *fileData, int dataSize); // Load image from memory buffer, fileType refers to extension: i.e. ".png" |
|
|
|
RLAPI Image LoadImageFromMemory(const char *fileType, const unsigned char *fileData, int dataSize); // Load image from memory buffer, fileType refers to extension: i.e. '.png' |
|
|
|
RLAPI Image LoadImageFromTexture(Texture2D texture); // Load image from GPU texture data |
|
|
|
RLAPI Image LoadImageFromScreen(void); // Load image from screen buffer and (screenshot) |
|
|
|
RLAPI void UnloadImage(Image image); // Unload image from CPU memory (RAM) |
|
|
|
RLAPI bool ExportImage(Image image, const char *fileName); // Export image data to file, returns true on success |
|
|
|
RLAPI bool ExportImageAsCode(Image image, const char *fileName); // Export image as code file defining an array of bytes, returns true on success |
|
|
@ -298,8 +316,7 @@ RLAPI Image GenImageGradientH(int width, int height, Color left, Color right); |
|
|
|
RLAPI Image GenImageGradientRadial(int width, int height, float density, Color inner, Color outer); // Generate image: radial gradient |
|
|
|
RLAPI Image GenImageChecked(int width, int height, int checksX, int checksY, Color col1, Color col2); // Generate image: checked |
|
|
|
RLAPI Image GenImageWhiteNoise(int width, int height, float factor); // Generate image: white noise |
|
|
|
RLAPI Image GenImagePerlinNoise(int width, int height, int offsetX, int offsetY, float scale); // Generate image: perlin noise |
|
|
|
RLAPI Image GenImageCellular(int width, int height, int tileSize); // Generate image: cellular algorithm. Bigger tileSize means bigger cells |
|
|
|
RLAPI Image GenImageCellular(int width, int height, int tileSize); // Generate image: cellular algorithm, bigger tileSize means bigger cells |
|
|
|
|
|
|
|
// Image manipulation functions |
|
|
|
RLAPI Image ImageCopy(Image image); // Create an image duplicate (useful for transformations) |
|
|
@ -316,7 +333,7 @@ RLAPI void ImageAlphaPremultiply(Image *image); |
|
|
|
RLAPI void ImageResize(Image *image, int newWidth, int newHeight); // Resize image (Bicubic scaling algorithm) |
|
|
|
RLAPI void ImageResizeNN(Image *image, int newWidth,int newHeight); // Resize image (Nearest-Neighbor scaling algorithm) |
|
|
|
RLAPI void ImageResizeCanvas(Image *image, int newWidth, int newHeight, int offsetX, int offsetY, Color fill); // Resize canvas and fill with color |
|
|
|
RLAPI void ImageMipmaps(Image *image); // Generate all mipmap levels for a provided image |
|
|
|
RLAPI void ImageMipmaps(Image *image); // Compute all mipmap levels for a provided image |
|
|
|
RLAPI void ImageDither(Image *image, int rBpp, int gBpp, int bBpp, int aBpp); // Dither image data to 16bpp or lower (Floyd-Steinberg dithering) |
|
|
|
RLAPI void ImageFlipVertical(Image *image); // Flip image vertically |
|
|
|
RLAPI void ImageFlipHorizontal(Image *image); // Flip image horizontally |
|
|
@ -329,10 +346,11 @@ RLAPI void ImageColorContrast(Image *image, float contrast); |
|
|
|
RLAPI void ImageColorBrightness(Image *image, int brightness); // Modify image color: brightness (-255 to 255) |
|
|
|
RLAPI void ImageColorReplace(Image *image, Color color, Color replace); // Modify image color: replace color |
|
|
|
RLAPI Color *LoadImageColors(Image image); // Load color data from image as a Color array (RGBA - 32bit) |
|
|
|
RLAPI Color *LoadImagePalette(Image image, int maxPaletteSize, int *colorsCount); // Load colors palette from image as a Color array (RGBA - 32bit) |
|
|
|
RLAPI Color *LoadImagePalette(Image image, int maxPaletteSize, int *colorCount); // Load colors palette from image as a Color array (RGBA - 32bit) |
|
|
|
RLAPI void UnloadImageColors(Color *colors); // Unload color data loaded with LoadImageColors() |
|
|
|
RLAPI void UnloadImagePalette(Color *colors); // Unload colors palette loaded with LoadImagePalette() |
|
|
|
RLAPI Rectangle GetImageAlphaBorder(Image image, float threshold); // Get image alpha border rectangle |
|
|
|
RLAPI Color GetImageColor(Image image, int x, int y); // Get image pixel color at (x, y) position |
|
|
|
|
|
|
|
// Image drawing functions |
|
|
|
// NOTE: Image software-rendering functions (CPU) |
|
|
@ -361,8 +379,6 @@ RLAPI void UnloadTexture(Texture2D texture); |
|
|
|
RLAPI void UnloadRenderTexture(RenderTexture2D target); // Unload render texture from GPU memory (VRAM) |
|
|
|
RLAPI void UpdateTexture(Texture2D texture, const void *pixels); // Update GPU texture with new data |
|
|
|
RLAPI void UpdateTextureRec(Texture2D texture, Rectangle rec, const void *pixels); // Update GPU texture rectangle with new data |
|
|
|
RLAPI Image GetTextureData(Texture2D texture); // Get pixel data from GPU texture and return an Image |
|
|
|
RLAPI Image GetScreenData(void); // Get pixel data from screen buffer and return an Image (screenshot) |
|
|
|
|
|
|
|
// Texture configuration functions |
|
|
|
RLAPI void GenTextureMipmaps(Texture2D *texture); // Generate GPU mipmaps for a texture |
|
|
@ -378,18 +394,18 @@ RLAPI void DrawTextureQuad(Texture2D texture, Vector2 tiling, Vector2 offset, Re |
|
|
|
RLAPI void DrawTextureTiled(Texture2D texture, Rectangle source, Rectangle dest, Vector2 origin, float rotation, float scale, Color tint); // Draw part of a texture (defined by a rectangle) with rotation and scale tiled into dest. |
|
|
|
RLAPI void DrawTexturePro(Texture2D texture, Rectangle source, Rectangle dest, Vector2 origin, float rotation, Color tint); // Draw a part of a texture defined by a rectangle with 'pro' parameters |
|
|
|
RLAPI void DrawTextureNPatch(Texture2D texture, NPatchInfo nPatchInfo, Rectangle dest, Vector2 origin, float rotation, Color tint); // Draws a texture (or part of it) that stretches or shrinks nicely |
|
|
|
RLAPI void DrawTexturePoly(Texture2D texture, Vector2 center, Vector2 *points, Vector2 *texcoords, int pointsCount, Color tint); // Draw a textured polygon |
|
|
|
RLAPI void DrawTexturePoly(Texture2D texture, Vector2 center, Vector2 *points, Vector2 *texcoords, int pointCount, Color tint); // Draw a textured polygon |
|
|
|
|
|
|
|
// Color/pixel related functions |
|
|
|
RLAPI Color Fade(Color color, float alpha); // Returns color with alpha applied, alpha goes from 0.0f to 1.0f |
|
|
|
RLAPI int ColorToInt(Color color); // Returns hexadecimal value for a Color |
|
|
|
RLAPI Vector4 ColorNormalize(Color color); // Returns Color normalized as float [0..1] |
|
|
|
RLAPI Color ColorFromNormalized(Vector4 normalized); // Returns Color from normalized values [0..1] |
|
|
|
RLAPI Vector3 ColorToHSV(Color color); // Returns HSV values for a Color |
|
|
|
RLAPI Color ColorFromHSV(float hue, float saturation, float value); // Returns a Color from HSV values |
|
|
|
RLAPI Color ColorAlpha(Color color, float alpha); // Returns color with alpha applied, alpha goes from 0.0f to 1.0f |
|
|
|
RLAPI Color ColorAlphaBlend(Color dst, Color src, Color tint); // Returns src alpha-blended into dst color with tint |
|
|
|
RLAPI Color GetColor(unsigned int hexValue); // Get Color structure from hexadecimal value |
|
|
|
RLAPI Color Fade(Color color, float alpha); // Get color with alpha applied, alpha goes from 0.0f to 1.0f |
|
|
|
RLAPI int ColorToInt(Color color); // Get hexadecimal value for a Color |
|
|
|
RLAPI Vector4 ColorNormalize(Color color); // Get Color normalized as float [0..1] |
|
|
|
RLAPI Color ColorFromNormalized(Vector4 normalized); // Get Color from normalized values [0..1] |
|
|
|
RLAPI Vector3 ColorToHSV(Color color); // Get HSV values for a Color, hue [0..360], saturation/value [0..1] |
|
|
|
RLAPI Color ColorFromHSV(float hue, float saturation, float value); // Get a Color from HSV values, hue [0..360], saturation/value [0..1] |
|
|
|
RLAPI Color ColorAlpha(Color color, float alpha); // Get color with alpha applied, alpha goes from 0.0f to 1.0f |
|
|
|
RLAPI Color ColorAlphaBlend(Color dst, Color src, Color tint); // Get src alpha-blended into dst color with tint |
|
|
|
RLAPI Color GetColor(unsigned int hexValue); // Get Color structure from hexadecimal value |
|
|
|
RLAPI Color GetPixelColor(void *srcPtr, int format); // Get Color from a source pixel pointer of certain format |
|
|
|
RLAPI void SetPixelColor(void *dstPtr, Color color, int format); // Set color formatted into destination pixel pointer |
|
|
|
RLAPI int GetPixelDataSize(int width, int height, int format); // Get pixel data size in bytes for certain format |
|
|
@ -401,35 +417,45 @@ RLAPI int GetPixelDataSize(int width, int height, int format); // G |
|
|
|
// Font loading/unloading functions |
|
|
|
RLAPI Font GetFontDefault(void); // Get the default Font |
|
|
|
RLAPI Font LoadFont(const char *fileName); // Load font from file into GPU memory (VRAM) |
|
|
|
RLAPI Font LoadFontEx(const char *fileName, int fontSize, int *fontChars, int charsCount); // Load font from file with extended parameters |
|
|
|
RLAPI Font LoadFontEx(const char *fileName, int fontSize, int *fontChars, int glyphCount); // Load font from file with extended parameters |
|
|
|
RLAPI Font LoadFontFromImage(Image image, Color key, int firstChar); // Load font from Image (XNA style) |
|
|
|
RLAPI Font LoadFontFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int fontSize, int *fontChars, int charsCount); // Load font from memory buffer, fileType refers to extension: i.e. sa">".ttf"; |
|
|
|
RLAPI CharInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSize, int *fontChars, int charsCount, int type); // Load font data for further use |
|
|
|
RLAPI Image GenImageFontAtlas(const CharInfo *chars, Rectangle **recs, int charsCount, int fontSize, int padding, int packMethod); // Generate image font atlas using chars info |
|
|
|
RLAPI void UnloadFontData(CharInfo *chars, int charsCount); // Unload font chars info data (RAM) |
|
|
|
RLAPI Font LoadFontFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int fontSize, int *fontChars, int glyphCount); // Load font from memory buffer, fileType refers to extension: i.e. err">'.ttf'; |
|
|
|
RLAPI GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSize, int *fontChars, int glyphCount, int type); // Load font data for further use |
|
|
|
RLAPI Image GenImageFontAtlas(const GlyphInfo *chars, Rectangle **recs, int glyphCount, int fontSize, int padding, int packMethod); // Generate image font atlas using chars info |
|
|
|
RLAPI void UnloadFontData(GlyphInfo *chars, int glyphCount); // Unload font chars info data (RAM) |
|
|
|
RLAPI void UnloadFont(Font font); // Unload Font from GPU memory (VRAM) |
|
|
|
|
|
|
|
// Text drawing functions |
|
|
|
RLAPI void DrawFPS(int posX, int posY); // Draw current FPS |
|
|
|
RLAPI void DrawText(const char *text, int posX, int posY, int fontSize, Color color); // Draw text (using default font) |
|
|
|
RLAPI void DrawTextEx(Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint); // Draw text using font and additional parameters |
|
|
|
RLAPI void DrawTextRec(Font font, const char *text, Rectangle rec, float fontSize, float spacing, bool wordWrap, Color tint); // Draw text using font inside rectangle limits |
|
|
|
RLAPI void DrawTextEx(Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint); // Draw text using font and additional parameters |
|
|
|
RLAPI void DrawTextPro(Font font, const char *text, Vector2 position, Vector2 origin, float rotation, float fontSize, float spacing, Color tint); // Draw text using Font and pro parameters (rotation) |
|
|
|
RLAPI void DrawTextCodepoint(Font font, int codepoint, Vector2 position, float fontSize, Color tint); // Draw one character (codepoint) |
|
|
|
|
|
|
|
// Text misc. functions |
|
|
|
// Text font info functions |
|
|
|
RLAPI int MeasureText(const char *text, int fontSize); // Measure string width for default font |
|
|
|
RLAPI Vector2 MeasureTextEx(Font font, const char *text, float fontSize, float spacing); // Measure string size for Font |
|
|
|
RLAPI int GetGlyphIndex(Font font, int codepoint); // Get index position for a unicode character on font |
|
|
|
|
|
|
|
// Text strings management functions (no utf8 strings, only byte chars) |
|
|
|
RLAPI int GetGlyphIndex(Font font, int codepoint); // Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found |
|
|
|
RLAPI GlyphInfo GetGlyphInfo(Font font, int codepoint); // Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found |
|
|
|
RLAPI Rectangle GetGlyphAtlasRec(Font font, int codepoint); // Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found |
|
|
|
|
|
|
|
// Text codepoints management functions (unicode characters) |
|
|
|
RLAPI int *LoadCodepoints(const char *text, int *count); // Load all codepoints from a UTF-8 text string, codepoints count returned by parameter |
|
|
|
RLAPI void UnloadCodepoints(int *codepoints); // Unload codepoints data from memory |
|
|
|
RLAPI int GetCodepointCount(const char *text); // Get total number of codepoints in a UTF-8 encoded string |
|
|
|
RLAPI int GetCodepoint(const char *text, int *bytesProcessed); // Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure |
|
|
|
RLAPI const char *CodepointToUTF8(int codepoint, int *byteSize); // Encode one codepoint into UTF-8 byte array (array length returned as parameter) |
|
|
|
RLAPI char *TextCodepointsToUTF8(int *codepoints, int length); // Encode text as codepoints array into UTF-8 text string (WARNING: memory must be freed!) |
|
|
|
|
|
|
|
// Text strings management functions (no UTF-8 strings, only byte chars) |
|
|
|
// NOTE: Some strings allocate memory internally for returned strings, just be careful! |
|
|
|
RLAPI int TextCopy(char *dst, const char *src); // Copy one string to another, returns bytes copied |
|
|
|
RLAPI bool TextIsEqual(const char *text1, const char *text2); // Check if two text string are equal |
|
|
|
RLAPI unsigned int TextLength(const char *text); // Get text length, checks for '\0' ending |
|
|
|
RLAPI const char *TextFormat(const char *text, ...); // Text formatting with variables (sprintf style) |
|
|
|
RLAPI const char *TextFormat(const char *text, ...); // Text formatting with variables (sprintf() style) |
|
|
|
RLAPI const char *TextSubtext(const char *text, int position, int length); // Get a piece of a text string |
|
|
|
RLAPI char *TextReplace(char *text, const char *replace, const char *by); // Replace text string (memory must be freed!) |
|
|
|
RLAPI char *TextInsert(const char *text, const char *insert, int position); // Insert text in a position (memory must be freed!) |
|
|
|
RLAPI char *TextReplace(char *text, const char *replace, const char *by); // Replace text string (l">WARNING: memory must be freed!) |
|
|
|
RLAPI char *TextInsert(const char *text, const char *insert, int position); // Insert text in a position (l">WARNING: memory must be freed!) |
|
|
|
RLAPI const char *TextJoin(const char **textList, int count, const char *delimiter); // Join text strings with delimiter |
|
|
|
RLAPI const char **TextSplit(const char *text, char delimiter, int *count); // Split text into multiple strings |
|
|
|
RLAPI void TextAppend(char *text, const char *append, int *position); // Append text at specific position and move cursor! |
|
|
@ -438,13 +464,6 @@ RLAPI const char *TextToUpper(const char *text); // Get upp |
|
|
|
RLAPI const char *TextToLower(const char *text); // Get lower case version of provided string |
|
|
|
RLAPI const char *TextToPascal(const char *text); // Get Pascal case notation version of provided string |
|
|
|
RLAPI int TextToInteger(const char *text); // Get integer value from text (negative values not supported) |
|
|
|
RLAPI char *TextToUtf8(int *codepoints, int length); // Encode text codepoint into utf8 text (memory must be freed!) |
|
|
|
|
|
|
|
// UTF8 text strings management functions |
|
|
|
RLAPI int *GetCodepoints(const char *text, int *count); // Get all codepoints in a string, codepoints count returned by parameters |
|
|
|
RLAPI int GetCodepointsCount(const char *text); // Get total number of characters (codepoints) in a UTF8 encoded string |
|
|
|
RLAPI int GetNextCodepoint(const char *text, int *bytesProcessed); // Returns next codepoint in a UTF8 encoded string; 0x3f('?') is returned on failure |
|
|
|
RLAPI const char *CodepointToUtf8(int codepoint, int *byteLength); // Encode codepoint into utf8 text (char array length returned as parameter) |
|
|
|
|
|
|
|
//------------------------------------------------------------------------------------ |
|
|
|
// Basic 3d Shapes Drawing Functions (Module: models) |
|
|
@ -455,17 +474,20 @@ RLAPI void DrawLine3D(Vector3 startPos, Vector3 endPos, Color color); |
|
|
|
RLAPI void DrawPoint3D(Vector3 position, Color color); // Draw a point in 3D space, actually a small line |
|
|
|
RLAPI void DrawCircle3D(Vector3 center, float radius, Vector3 rotationAxis, float rotationAngle, Color color); // Draw a circle in 3D world space |
|
|
|
RLAPI void DrawTriangle3D(Vector3 v1, Vector3 v2, Vector3 v3, Color color); // Draw a color-filled triangle (vertex in counter-clockwise order!) |
|
|
|
RLAPI void DrawTriangleStrip3D(Vector3 *points, int pointsCount, Color color); // Draw a triangle strip defined by points |
|
|
|
RLAPI void DrawTriangleStrip3D(Vector3 *points, int pointCount, Color color); // Draw a triangle strip defined by points |
|
|
|
RLAPI void DrawCube(Vector3 position, float width, float height, float length, Color color); // Draw cube |
|
|
|
RLAPI void DrawCubeV(Vector3 position, Vector3 size, Color color); // Draw cube (Vector version) |
|
|
|
RLAPI void DrawCubeWires(Vector3 position, float width, float height, float length, Color color); // Draw cube wires |
|
|
|
RLAPI void DrawCubeWiresV(Vector3 position, Vector3 size, Color color); // Draw cube wires (Vector version) |
|
|
|
RLAPI void DrawCubeTexture(Texture2D texture, Vector3 position, float width, float height, float length, Color color); // Draw cube textured |
|
|
|
RLAPI void DrawCubeTextureRec(Texture2D texture, Rectangle source, Vector3 position, float width, float height, float length, Color color); // Draw cube with a region of a texture |
|
|
|
RLAPI void DrawSphere(Vector3 centerPos, float radius, Color color); // Draw sphere |
|
|
|
RLAPI void DrawSphereEx(Vector3 centerPos, float radius, int rings, int slices, Color color); // Draw sphere with extended parameters |
|
|
|
RLAPI void DrawSphereWires(Vector3 centerPos, float radius, int rings, int slices, Color color); // Draw sphere wires |
|
|
|
RLAPI void DrawCylinder(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); // Draw a cylinder/cone |
|
|
|
RLAPI void DrawCylinderEx(Vector3 startPos, Vector3 endPos, float startRadius, float endRadius, int sides, Color color); // Draw a cylinder with base at startPos and top at endPos |
|
|
|
RLAPI void DrawCylinderWires(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); // Draw a cylinder/cone wires |
|
|
|
RLAPI void DrawCylinderWiresEx(Vector3 startPos, Vector3 endPos, float startRadius, float endRadius, int sides, Color color); // Draw a cylinder wires with base at startPos and top at endPos |
|
|
|
RLAPI void DrawPlane(Vector3 centerPos, Vector2 size, Color color); // Draw a plane XZ |
|
|
|
RLAPI void DrawRay(Ray ray, Color color); // Draw a ray line |
|
|
|
RLAPI void DrawGrid(int slices, float spacing); // Draw a grid (centered at (0, 0, 0)) |
|
|
@ -474,71 +496,71 @@ RLAPI void DrawGrid(int slices, float spacing); |
|
|
|
// Model 3d Loading and Drawing Functions (Module: models) |
|
|
|
//------------------------------------------------------------------------------------ |
|
|
|
|
|
|
|
// Model loading/unloading functions |
|
|
|
// Model management functions |
|
|
|
RLAPI Model LoadModel(const char *fileName); // Load model from files (meshes and materials) |
|
|
|
RLAPI Model LoadModelFromMesh(Mesh mesh); // Load model from generated mesh (default material) |
|
|
|
RLAPI void UnloadModel(Model model); // Unload model (including meshes) from memory (RAM and/or VRAM) |
|
|
|
RLAPI void UnloadModelKeepMeshes(Model model); // Unload model (but not meshes) from memory (RAM and/or VRAM) |
|
|
|
RLAPI BoundingBox GetModelBoundingBox(Model model); // Compute model bounding box limits (considers all meshes) |
|
|
|
|
|
|
|
// Mesh loading/unloading functions |
|
|
|
RLAPI void UploadMesh(Mesh *mesh, bool dynamic); // Upload vertex data into GPU and provided VAO/VBO ids |
|
|
|
// Model drawing functions |
|
|
|
RLAPI void DrawModel(Model model, Vector3 position, float scale, Color tint); // Draw a model (with texture if set) |
|
|
|
RLAPI void DrawModelEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model with extended parameters |
|
|
|
RLAPI void DrawModelWires(Model model, Vector3 position, float scale, Color tint); // Draw a model wires (with texture if set) |
|
|
|
RLAPI void DrawModelWiresEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model wires (with texture if set) with extended parameters |
|
|
|
RLAPI void DrawBoundingBox(BoundingBox box, Color color); // Draw bounding box (wires) |
|
|
|
RLAPI void DrawBillboard(Camera camera, Texture2D texture, Vector3 position, float size, Color tint); // Draw a billboard texture |
|
|
|
RLAPI void DrawBillboardRec(Camera camera, Texture2D texture, Rectangle source, Vector3 position, Vector2 size, Color tint); // Draw a billboard texture defined by source |
|
|
|
RLAPI void DrawBillboardPro(Camera camera, Texture2D texture, Rectangle source, Vector3 position, Vector3 up, Vector2 size, Vector2 origin, float rotation, Color tint); // Draw a billboard texture defined by source and rotation |
|
|
|
|
|
|
|
// Mesh management functions |
|
|
|
RLAPI void UploadMesh(Mesh *mesh, bool dynamic); // Upload mesh vertex data in GPU and provide VAO/VBO ids |
|
|
|
RLAPI void UpdateMeshBuffer(Mesh mesh, int index, void *data, int dataSize, int offset); // Update mesh vertex data in GPU for a specific buffer index |
|
|
|
RLAPI void UnloadMesh(Mesh mesh); // Unload mesh data from CPU and GPU |
|
|
|
RLAPI void DrawMesh(Mesh mesh, Material material, Matrix transform); // Draw a 3d mesh with material and transform |
|
|
|
RLAPI void DrawMeshInstanced(Mesh mesh, Material material, Matrix *transforms, int instances); // Draw multiple mesh instances with material and different transforms |
|
|
|
RLAPI void UnloadMesh(Mesh mesh); // Unload mesh data from CPU and GPU |
|
|
|
RLAPI bool ExportMesh(Mesh mesh, const char *fileName); // Export mesh data to file, returns true on success |
|
|
|
|
|
|
|
// Material loading/unloading functions |
|
|
|
RLAPI Material *LoadMaterials(const char *fileName, int *materialCount); // Load materials from model file |
|
|
|
RLAPI Material LoadMaterialDefault(void); // Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) |
|
|
|
RLAPI void UnloadMaterial(Material material); // Unload material from GPU memory (VRAM) |
|
|
|
RLAPI void SetMaterialTexture(Material *material, int mapType, Texture2D texture); // Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) |
|
|
|
RLAPI void SetModelMeshMaterial(Model *model, int meshId, int materialId); // Set material for a mesh |
|
|
|
|
|
|
|
// Model animations loading/unloading functions |
|
|
|
RLAPI ModelAnimation *LoadModelAnimations(const char *fileName, int *animsCount); // Load model animations from file |
|
|
|
RLAPI void UpdateModelAnimation(Model model, ModelAnimation anim, int frame); // Update model animation pose |
|
|
|
RLAPI void UnloadModelAnimation(ModelAnimation anim); // Unload animation data |
|
|
|
RLAPI void UnloadModelAnimations(ModelAnimation* animations, unsigned int count); // Unload animation array data |
|
|
|
RLAPI bool IsModelAnimationValid(Model model, ModelAnimation anim); // Check model animation skeleton match |
|
|
|
RLAPI BoundingBox GetMeshBoundingBox(Mesh mesh); // Compute mesh bounding box limits |
|
|
|
RLAPI void GenMeshTangents(Mesh *mesh); // Compute mesh tangents |
|
|
|
RLAPI void GenMeshBinormals(Mesh *mesh); // Compute mesh binormals |
|
|
|
|
|
|
|
// Mesh generation functions |
|
|
|
RLAPI Mesh GenMeshDefault(int vertexCount); // Generate an empty mesh with vertex: position, texcoords, normals, colors |
|
|
|
RLAPI Mesh GenMeshPoly(int sides, float radius); // Generate polygonal mesh |
|
|
|
RLAPI Mesh GenMeshPlane(float width, float length, int resX, int resZ); // Generate plane mesh (with subdivisions) |
|
|
|
RLAPI Mesh GenMeshCube(float width, float height, float length); // Generate cuboid mesh |
|
|
|
RLAPI Mesh GenMeshSphere(float radius, int rings, int slices); // Generate sphere mesh (standard sphere) |
|
|
|
RLAPI Mesh GenMeshHemiSphere(float radius, int rings, int slices); // Generate half-sphere mesh (no bottom cap) |
|
|
|
RLAPI Mesh GenMeshCylinder(float radius, float height, int slices); // Generate cylinder mesh |
|
|
|
RLAPI Mesh GenMeshCone(float radius, float height, int slices); // Generate cone/pyramid mesh |
|
|
|
RLAPI Mesh GenMeshTorus(float radius, float size, int radSeg, int sides); // Generate torus mesh |
|
|
|
RLAPI Mesh GenMeshKnot(float radius, float size, int radSeg, int sides); // Generate trefoil knot mesh |
|
|
|
RLAPI Mesh GenMeshHeightmap(Image heightmap, Vector3 size); // Generate heightmap mesh from image data |
|
|
|
RLAPI Mesh GenMeshCubicmap(Image cubicmap, Vector3 cubeSize); // Generate cubes-based map mesh from image data |
|
|
|
|
|
|
|
// Mesh manipulation functions |
|
|
|
RLAPI BoundingBox GetMeshBoundingBox(Mesh mesh); // Compute mesh bounding box limits |
|
|
|
RLAPI void MeshTangents(Mesh *mesh); // Compute mesh tangents |
|
|
|
RLAPI void MeshBinormals(Mesh *mesh); // Compute mesh binormals |
|
|
|
// Material loading/unloading functions |
|
|
|
RLAPI Material *LoadMaterials(const char *fileName, int *materialCount); // Load materials from model file |
|
|
|
RLAPI Material LoadMaterialDefault(void); // Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) |
|
|
|
RLAPI void UnloadMaterial(Material material); // Unload material from GPU memory (VRAM) |
|
|
|
RLAPI void SetMaterialTexture(Material *material, int mapType, Texture2D texture); // Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) |
|
|
|
RLAPI void SetModelMeshMaterial(Model *model, int meshId, int materialId); // Set material for a mesh |
|
|
|
|
|
|
|
// Model drawing functions |
|
|
|
RLAPI void DrawModel(Model model, Vector3 position, float scale, Color tint); // Draw a model (with texture if set) |
|
|
|
RLAPI void DrawModelEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model with extended parameters |
|
|
|
RLAPI void DrawModelWires(Model model, Vector3 position, float scale, Color tint); // Draw a model wires (with texture if set) |
|
|
|
RLAPI void DrawModelWiresEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model wires (with texture if set) with extended parameters |
|
|
|
RLAPI void DrawBoundingBox(BoundingBox box, Color color); // Draw bounding box (wires) |
|
|
|
RLAPI void DrawBillboard(Camera camera, Texture2D texture, Vector3 center, float size, Color tint); // Draw a billboard texture |
|
|
|
RLAPI void DrawBillboardRec(Camera camera, Texture2D texture, Rectangle source, Vector3 center, float size, Color tint); // Draw a billboard texture defined by source |
|
|
|
// Model animations loading/unloading functions |
|
|
|
RLAPI ModelAnimation *LoadModelAnimations(const char *fileName, unsigned int *animCount); // Load model animations from file |
|
|
|
RLAPI void UpdateModelAnimation(Model model, ModelAnimation anim, int frame); // Update model animation pose |
|
|
|
RLAPI void UnloadModelAnimation(ModelAnimation anim); // Unload animation data |
|
|
|
RLAPI void UnloadModelAnimations(ModelAnimation* animations, unsigned int count); // Unload animation array data |
|
|
|
RLAPI bool IsModelAnimationValid(Model model, ModelAnimation anim); // Check model animation skeleton match |
|
|
|
|
|
|
|
// Collision detection functions |
|
|
|
RLAPI bool CheckCollisionSpheres(Vector3 center1, float radius1, Vector3 center2, float radius2); // Detect collision between two spheres |
|
|
|
RLAPI bool CheckCollisionBoxes(BoundingBox box1, BoundingBox box2); // Detect collision between two bounding boxes |
|
|
|
RLAPI bool CheckCollisionBoxSphere(BoundingBox box, Vector3 center, float radius); // Detect collision between box and sphere |
|
|
|
RLAPI bool CheckCollisionRaySphere(Ray ray, Vector3 center, float radius); // Detect collision between ray and sphere |
|
|
|
RLAPI bool CheckCollisionRaySphereEx(Ray ray, Vector3 center, float radius, Vector3 *collisionPoint); // Detect collision between ray and sphere, returns collision point |
|
|
|
RLAPI bool CheckCollisionRayBox(Ray ray, BoundingBox box); // Detect collision between ray and box |
|
|
|
RLAPI RayHitInfo GetCollisionRayMesh(Ray ray, Mesh mesh, Matrix transform); // Get collision info between ray and mesh |
|
|
|
RLAPI RayHitInfo GetCollisionRayModel(Ray ray, Model model); // Get collision info between ray and model |
|
|
|
RLAPI RayHitInfo GetCollisionRayTriangle(Ray ray, Vector3 p1, Vector3 p2, Vector3 p3); // Get collision info between ray and triangle |
|
|
|
RLAPI RayHitInfo GetCollisionRayGround(Ray ray, float groundHeight); // Get collision info between ray and ground plane (Y-normal plane) |
|
|
|
RLAPI bool CheckCollisionSpheres(Vector3 center1, float radius1, Vector3 center2, float radius2); // Check collision between two spheres |
|
|
|
RLAPI bool CheckCollisionBoxes(BoundingBox box1, BoundingBox box2); // Check collision between two bounding boxes |
|
|
|
RLAPI bool CheckCollisionBoxSphere(BoundingBox box, Vector3 center, float radius); // Check collision between box and sphere |
|
|
|
RLAPI RayCollision GetRayCollisionSphere(Ray ray, Vector3 center, float radius); // Get collision info between ray and sphere |
|
|
|
RLAPI RayCollision GetRayCollisionBox(Ray ray, BoundingBox box); // Get collision info between ray and box |
|
|
|
RLAPI RayCollision GetRayCollisionModel(Ray ray, Model model); // Get collision info between ray and model |
|
|
|
RLAPI RayCollision GetRayCollisionMesh(Ray ray, Mesh mesh, Matrix transform); // Get collision info between ray and mesh |
|
|
|
RLAPI RayCollision GetRayCollisionTriangle(Ray ray, Vector3 p1, Vector3 p2, Vector3 p3); // Get collision info between ray and triangle |
|
|
|
RLAPI RayCollision GetRayCollisionQuad(Ray ray, Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4); // Get collision info between ray and quad |
|
|
|
|
|
|
|
//------------------------------------------------------------------------------------ |
|
|
|
// Audio Loading and Playing Functions (Module: audio) |
|
|
@ -552,10 +574,10 @@ RLAPI void SetMasterVolume(float volume); // Set mas |
|
|
|
|
|
|
|
// Wave/Sound loading/unloading functions |
|
|
|
RLAPI Wave LoadWave(const char *fileName); // Load wave data from file |
|
|
|
RLAPI Wave LoadWaveFromMemory(const char *fileType, const unsigned char *fileData, int dataSize); // Load wave from memory buffer, fileType refers to extension: i.e. sa">".wav"; |
|
|
|
RLAPI Wave LoadWaveFromMemory(const char *fileType, const unsigned char *fileData, int dataSize); // Load wave from memory buffer, fileType refers to extension: i.e. err">'.wav'; |
|
|
|
RLAPI Sound LoadSound(const char *fileName); // Load sound from file |
|
|
|
RLAPI Sound LoadSoundFromWave(Wave wave); // Load sound from wave data |
|
|
|
RLAPI void UpdateSound(Sound sound, const void *data, int samplesCount); // Update sound buffer with new data |
|
|
|
RLAPI void UpdateSound(Sound sound, const void *data, int sampleCount); // Update sound buffer with new data |
|
|
|
RLAPI void UnloadWave(Wave wave); // Unload wave data |
|
|
|
RLAPI void UnloadSound(Sound sound); // Unload sound |
|
|
|
RLAPI bool ExportWave(Wave wave, const char *fileName); // Export wave data to file, returns true on success |
|
|
@ -580,23 +602,24 @@ RLAPI void UnloadWaveSamples(float *samples); // Unload |
|
|
|
|
|
|
|
// Music management functions |
|
|
|
RLAPI Music LoadMusicStream(const char *fileName); // Load music stream from file |
|
|
|
RLAPI Music LoadMusicStreamFromMemory(const char *fileType, unsigned char* data, int dataSize); // Load music stream from data |
|
|
|
RLAPI Music LoadMusicStreamFromMemory(const char *fileType, unsigned char *data, int dataSize); // Load music stream from data |
|
|
|
RLAPI void UnloadMusicStream(Music music); // Unload music stream |
|
|
|
RLAPI void PlayMusicStream(Music music); // Start music playing |
|
|
|
RLAPI bool IsMusicPlaying(Music music); // Check if music is playing |
|
|
|
RLAPI bool IsMusicStreamPlaying(Music music); // Check if music is playing |
|
|
|
RLAPI void UpdateMusicStream(Music music); // Updates buffers for music streaming |
|
|
|
RLAPI void StopMusicStream(Music music); // Stop music playing |
|
|
|
RLAPI void PauseMusicStream(Music music); // Pause music playing |
|
|
|
RLAPI void ResumeMusicStream(Music music); // Resume playing paused music |
|
|
|
RLAPI void SeekMusicStream(Music music, float position); // Seek music to a position (in seconds) |
|
|
|
RLAPI void SetMusicVolume(Music music, float volume); // Set volume for music (1.0 is max level) |
|
|
|
RLAPI void SetMusicPitch(Music music, float pitch); // Set pitch for a music (1.0 is base level) |
|
|
|
RLAPI float GetMusicTimeLength(Music music); // Get music time length (in seconds) |
|
|
|
RLAPI float GetMusicTimePlayed(Music music); // Get current music time played (in seconds) |
|
|
|
|
|
|
|
// AudioStream management functions |
|
|
|
RLAPI AudioStream InitAudioStream(unsigned int sampleRate, unsigned int sampleSize, unsigned int channels); // Init audio stream (to stream raw audio pcm data) |
|
|
|
RLAPI void UpdateAudioStream(AudioStream stream, const void *data, int samplesCount); // Update audio stream buffers with data |
|
|
|
RLAPI void CloseAudioStream(AudioStream stream); // Close audio stream and free memory |
|
|
|
RLAPI AudioStream LoadAudioStream(unsigned int sampleRate, unsigned int sampleSize, unsigned int channels); // Load audio stream (to stream raw audio pcm data) |
|
|
|
RLAPI void UnloadAudioStream(AudioStream stream); // Unload audio stream and free memory |
|
|
|
RLAPI void UpdateAudioStream(AudioStream stream, const void *data, int frameCount); // Update audio stream buffers with data |
|
|
|
RLAPI bool IsAudioStreamProcessed(AudioStream stream); // Check if any audio stream buffers requires refill |
|
|
|
RLAPI void PlayAudioStream(AudioStream stream); // Play audio stream |
|
|
|
RLAPI void PauseAudioStream(AudioStream stream); // Pause audio stream |
|
|
|