From 129c44676efed37f886e9a4cd59ae71ff1112fb1 Mon Sep 17 00:00:00 2001 From: Sandra Date: Sun, 15 Mar 2026 12:09:18 +0100 Subject: [PATCH] add ARM64 Linux support, consolidate raylib to 5.5, build infrastructure - Add pre-built raylib for linux-arm64. Makefile auto-detects aarch64 and links against the right lib. - Consolidate all platforms to raylib 5.5 stable (was a mix of 5.0, 5.6-dev, and 6.0-dev). Migrate DrawRectangleRoundedLines calls to DrawRectangleRoundedLinesEx to match the 5.5 API. - Add scripts/raylib-build.sh with platform auto-detection and per-platform patch pipeline (patches/raylib/{all,linux,windows, macos}/). make raylib rebuilds for the current platform. - Add Docker crossbuild (make raylib-crossbuild) to rebuild raylib for all platforms in one command. - Add Linux ARM64 CI job using cyberjunk/gha-ubuntu-cross for multi-arch apt setup. All CI targets now build raylib from source. - Update README to note ARM64 Linux support. --- .github/workflows/build.yml | 58 +- Makefile | 17 +- README.md | 2 +- lib/raygui.h | 6 +- lib/raylib_lin/include/raylib.h | 379 +- lib/raylib_lin/include/raymath.h | 326 +- lib/raylib_lin/include/rlgl.h | 741 +- lib/raylib_lin/lib/libraylib.a | Bin 2838542 -> 2769460 bytes lib/raylib_lin_arm64/include/raylib.h | 1708 ++++ lib/raylib_lin_arm64/include/raymath.h | 2941 +++++++ lib/raylib_lin_arm64/include/rlgl.h | 5262 +++++++++++ lib/raylib_lin_arm64/lib/libraylib.a | Bin 0 -> 2823370 bytes lib/raylib_win/include/raylib.h | 3370 +++---- lib/raylib_win/include/raymath.h | 5131 ++++++----- lib/raylib_win/include/rlgl.h | 10121 ++++++++++----------- lib/raylib_win/lib/libraylib.a | Bin 2230712 -> 2049204 bytes lib/raylib_win_arm64/include/raylib.h | 3448 ++++---- lib/raylib_win_arm64/include/raymath.h | 6058 +++++++------ lib/raylib_win_arm64/include/rlgl.h | 10654 +++++++++++------------ lib/raylib_win_arm64/lib/libraylib.a | Bin 2423270 -> 2154454 bytes patches/raylib/all/.gitkeep | 0 patches/raylib/linux/.gitkeep | 0 patches/raylib/macos/.gitkeep | 0 patches/raylib/windows/.gitkeep | 0 scripts/raylib-build.sh | 105 + scripts/raylib-crossbuild.Dockerfile | 24 + scripts/raylib-crossbuild.sh | 15 + src/main.c | 6 +- src/ui.c | 24 +- 29 files changed, 30516 insertions(+), 19880 deletions(-) create mode 100644 lib/raylib_lin_arm64/include/raylib.h create mode 100644 lib/raylib_lin_arm64/include/raymath.h create mode 100644 lib/raylib_lin_arm64/include/rlgl.h create mode 100644 lib/raylib_lin_arm64/lib/libraylib.a create mode 100644 patches/raylib/all/.gitkeep create mode 100644 patches/raylib/linux/.gitkeep create mode 100644 patches/raylib/macos/.gitkeep create mode 100644 patches/raylib/windows/.gitkeep create mode 100755 scripts/raylib-build.sh create mode 100644 scripts/raylib-crossbuild.Dockerfile create mode 100755 scripts/raylib-crossbuild.sh diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 79ee093..39564f6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,6 +28,9 @@ jobs: sudo apt-get update sudo apt-get install -y gcc make libasound2-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev libxcursor-dev libxinerama-dev libwayland-dev libxkbcommon-dev libcurl4-openssl-dev + - name: Build raylib + run: make raylib + - name: Compile and Bundle Linux run: make linux @@ -38,6 +41,44 @@ jobs: path: dist/TLEscope-Linux-Portable/ retention-days: 14 + build-linux-arm64: + name: Build Linux ARM64 + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Setup ARM64 Cross-Compile + uses: cyberjunk/gha-ubuntu-cross@v5 + with: + arch: arm64 + + - name: Install ARM64 Build Dependencies + run: | + sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu + sudo apt-get install -y -o Dpkg::Options::="--force-overwrite" \ + libcurl4-openssl-dev:arm64 libgl-dev:arm64 libx11-dev:arm64 \ + libxrandr-dev:arm64 libxi-dev:arm64 libxcursor-dev:arm64 \ + libxinerama-dev:arm64 libwayland-dev:arm64 libxkbcommon-dev:arm64 + + - name: Build raylib for ARM64 + run: ./scripts/raylib-build.sh linux-arm64 + + - name: Compile and Bundle Linux ARM64 + run: | + make linux \ + CC_LINUX=aarch64-linux-gnu-gcc \ + LIB_LIN_PATH="-Ilib/raylib_lin_arm64/include -Llib/raylib_lin_arm64/lib" \ + LDFLAGS_LIN="-Ilib/raylib_lin_arm64/include -Llib/raylib_lin_arm64/lib -lraylib -lcurl -lGL -lm -lpthread -ldl -lrt -lX11" \ + DIST_LINUX=dist/TLEscope-Linux-arm64-Portable + + - name: Upload Linux ARM64 Artifact + uses: actions/upload-artifact@v4 + with: + name: TLEscope-Linux-arm64-Portable + path: dist/TLEscope-Linux-arm64-Portable/ + retention-days: 14 + build-windows: name: Build Windows runs-on: windows-latest @@ -55,6 +96,7 @@ jobs: update: true install: >- make + git mingw-w64-x86_64-gcc mingw-w64-x86_64-curl mingw-w64-x86_64-ngtcp2 @@ -66,6 +108,9 @@ jobs: mingw-w64-x86_64-nsis mingw-w64-x86_64-imagemagick + - name: Build raylib + run: make raylib + - name: Compile and Bundle Windows run: make win-installer MINGW_PREFIX=/mingw64 PKG_CONFIG_WIN=pkg-config @@ -99,6 +144,8 @@ jobs: msystem: CLANGARM64 update: true install: >- + make + git mingw-w64-clang-aarch64-make mingw-w64-clang-aarch64-clang mingw-w64-clang-aarch64-curl @@ -109,6 +156,9 @@ jobs: mingw-w64-clang-aarch64-openssl mingw-w64-clang-aarch64-pkgconf + - name: Build raylib + run: make raylib + - name: Compile and Bundle Windows ARM64 run: mingw32-make windows-arm64 @@ -121,7 +171,7 @@ jobs: release: name: Publish Release - needs: [build-linux, build-windows, build-windows-arm64] + needs: [build-linux, build-linux-arm64, build-windows, build-windows-arm64] if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/v')) runs-on: ubuntu-latest permissions: @@ -141,8 +191,10 @@ jobs: cd artifacts # The Makefile bundles into subdirectories, so we zip those folders chmod +x TLEscope-Linux-Portable/TLEscope - + chmod +x TLEscope-Linux-arm64-Portable/TLEscope + zip -r ../TLEscope-Linux-Portable.zip TLEscope-Linux-Portable/ + zip -r ../TLEscope-Linux-arm64-Portable.zip TLEscope-Linux-arm64-Portable/ zip -r ../TLEscope-Win-Portable.zip TLEscope-Win-Portable/ zip -r ../TLEscope-Win-arm64-Portable.zip TLEscope-Win-arm64-Portable/ @@ -179,6 +231,7 @@ jobs: prerelease: true files: | TLEscope-Linux-Portable.zip + TLEscope-Linux-arm64-Portable.zip TLEscope-Win-Portable.zip TLEscope-Win-arm64-Portable.zip TLEscope-Installer.exe @@ -190,6 +243,7 @@ jobs: generate_release_notes: true files: | TLEscope-Linux-Portable.zip + TLEscope-Linux-arm64-Portable.zip TLEscope-Win-Portable.zip TLEscope-Win-arm64-Portable.zip TLEscope-Installer.exe diff --git a/Makefile b/Makefile index f6bf7da..a3891a0 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,12 @@ else LIB_WIN_PATH = -Ilib/raylib_win/include -Llib/raylib_win/lib -I$(MINGW_PREFIX)/include -L$(MINGW_PREFIX)/lib endif +UNAME_M := $(shell uname -m) +ifeq ($(UNAME_M),aarch64) +LIB_LIN_PATH = -Ilib/raylib_lin_arm64/include -Llib/raylib_lin_arm64/lib +else LIB_LIN_PATH = -Ilib/raylib_lin/include -Llib/raylib_lin/lib +endif SRC = src/main.c src/astro.c src/config.c src/ui.c OBJ = $(SRC:src/%.c=build/%.o) @@ -40,7 +45,7 @@ RAYLIB_LIBS = $(shell pkg-config --libs raylib 2>/dev/null) LDFLAGS_MACOS = $(RAYLIB_LIBS) -lcurl -framework IOKit -framework Cocoa -framework OpenGL DIST_MACOS = dist/TLEscope-macOS-Portable -.PHONY: all linux macos windows windows-arm64 win-installer clean build bin install uninstall +.PHONY: all linux macos windows windows-arm64 win-installer clean build bin install uninstall raylib raylib-crossbuild all: linux @@ -117,6 +122,16 @@ build: bin: mkdir -p bin +raylib: + ./scripts/raylib-build.sh + +raylib-%: + ./scripts/raylib-build.sh $* + +raylib-crossbuild: + docker build -f scripts/raylib-crossbuild.Dockerfile -t tlescope-crossbuild . + docker run --rm -v "$(PWD)/lib:/build/lib" tlescope-crossbuild + clean: rm -rf build bin dist diff --git a/README.md b/README.md index 4bbd073..0671db8 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ TLEscope comes equipped with tools designed for RF engineers, satellite operator - **Minimal Footprint and High Performance**: Developed in pure C utilizing the Raylib framework, TLEscope maintains a minimal footprint. The application provides high-performance rendering that is likely more efficient than your standard system file browser, even with hundreds or thousands of satellites on-screen. -- **​Native OS Support**: Built for Linux, macOS, and Windows. +- **​Native OS Support**: Built for Linux (x86_64 and ARM64), macOS, and Windows. ### ​**Design Philosophy** ​Most existing orbital tracking software suffers from dated, unintuitive interfaces. TLEscope bridges this gap by prioritizing both visual clarity and ease of use. diff --git a/lib/raygui.h b/lib/raygui.h index 4681a86..30dd380 100644 --- a/lib/raygui.h +++ b/lib/raygui.h @@ -4967,11 +4967,7 @@ static void GuiDrawRectangle(Rectangle rec, int borderWidth, Color borderColor, if (borderWidth > 0) { // Draw rectangle border lines with color -#if (defined(_WIN32) || defined(_WIN64)) && !defined(_M_ARM64) - DrawRectangleRoundedLines(rec, roundness, segments, (float)borderWidth, GuiFade(borderColor, guiAlpha)); -#else - DrawRectangleRoundedLines(rec, roundness, segments, GuiFade(borderColor, guiAlpha)); -#endif + DrawRectangleRoundedLinesEx(rec, roundness, segments, (float)borderWidth, GuiFade(borderColor, guiAlpha)); } #if defined(RAYGUI_DEBUG_RECS_BOUNDS) diff --git a/lib/raylib_lin/include/raylib.h b/lib/raylib_lin/include/raylib.h index 06138ce..a26b8ce 100644 --- a/lib/raylib_lin/include/raylib.h +++ b/lib/raylib_lin/include/raylib.h @@ -1,15 +1,16 @@ /********************************************************************************************** * -* raylib v5.6-dev - A simple and easy-to-use library to enjoy videogames programming (www.raylib.com) +* raylib v5.5 - A simple and easy-to-use library to enjoy videogames programming (www.raylib.com) * * FEATURES: * - NO external dependencies, all required libraries included with raylib -* - Multiplatform: Windows, Linux, macOS, FreeBSD, Web, Android, Raspberry Pi, DRM native... +* - Multiplatform: Windows, Linux, FreeBSD, OpenBSD, NetBSD, DragonFly, +* MacOS, Haiku, Android, Raspberry Pi, DRM native, HTML5. * - Written in plain C code (C99) in PascalCase/camelCase notation * - Hardware accelerated with OpenGL (1.1, 2.1, 3.3, 4.3, ES2, ES3 - choose at compile) -* - Custom OpenGL abstraction layer (usable as standalone module): [rlgl] +* - Unique OpenGL abstraction layer (usable as standalone module): [rlgl] * - Multiple Fonts formats supported (TTF, OTF, FNT, BDF, Sprite fonts) -* - Many texture formats supportted, including compressed formats (DXT, ETC, ASTC) +* - Outstanding texture formats support, including compressed formats (DXT, ETC, ASTC) * - Full 3d support for 3d Shapes, Models, Billboards, Heightmaps and more! * - Flexible Materials system, supporting classic maps and PBR maps * - Animated 3D models supported (skeletal bones animation) (IQM, M3D, GLTF) @@ -25,21 +26,22 @@ * - One default Shader is loaded on rlglInit()->rlLoadShaderDefault() [rlgl] (OpenGL 3.3 or ES2) * - One default RenderBatch is loaded on rlglInit()->rlLoadRenderBatch() [rlgl] (OpenGL 3.3 or ES2) * -* DEPENDENCIES: -* [rcore] Depends on the selected platform backend, check rcore.c header for details -* [rlgl] glad/glad_gles2 (David Herberth - github.com/Dav1dde/glad) for OpenGL extensions loading +* DEPENDENCIES (included): +* [rcore][GLFW] rglfw (Camilla Löwy - github.com/glfw/glfw) for window/context management and input +* [rcore][RGFW] rgfw (ColleagueRiley - github.com/ColleagueRiley/RGFW) for window/context management and input +* [rlgl] glad/glad_gles2 (David Herberth - github.com/Dav1dde/glad) for OpenGL 3.3 extensions loading * [raudio] miniaudio (David Reid - github.com/mackron/miniaudio) for audio device/context management * * OPTIONAL DEPENDENCIES (included): +* [rcore] msf_gif (Miles Fogle) for GIF recording * [rcore] sinfl (Micha Mettke) for DEFLATE decompression algorithm * [rcore] sdefl (Micha Mettke) for DEFLATE compression algorithm -* [rcore] rprand (Ramon Santamaria) for pseudo-random numbers generation +* [rcore] rprand (Ramon Snatamaria) for pseudo-random numbers generation * [rtextures] qoi (Dominic Szablewski - https://phoboslab.org) for QOI image manage * [rtextures] stb_image (Sean Barret) for images loading (BMP, TGA, PNG, JPEG, HDR...) * [rtextures] stb_image_write (Sean Barret) for image writing (BMP, TGA, PNG, JPG) * [rtextures] stb_image_resize2 (Sean Barret) for image resizing algorithms * [rtextures] stb_perlin (Sean Barret) for Perlin Noise image generation -* [rtextures] rl_gputex (Ramon Santamaria) for GPU-compressed texture formats * [rtext] stb_truetype (Sean Barret) for ttf fonts loading * [rtext] stb_rect_pack (Sean Barret) for rectangles packing * [rmodels] par_shapes (Philip Rideout) for parametric 3d shapes generation @@ -61,7 +63,7 @@ * raylib is licensed under an unmodified zlib/libpng license, which is an OSI-certified, * BSD-like license that allows static linking with closed source software: * -* Copyright (c) 2013-2026 Ramon Santamaria (@raysan5) +* Copyright (c) 2013-2024 Ramon Santamaria (@raysan5) * * This software is provided "as-is", without any express or implied warranty. In no event * will the authors be held liable for any damages arising from the use of this software. @@ -86,9 +88,9 @@ #include // Required for: va_list - Only used by TraceLogCallback #define RAYLIB_VERSION_MAJOR 5 -#define RAYLIB_VERSION_MINOR 6 +#define RAYLIB_VERSION_MINOR 5 #define RAYLIB_VERSION_PATCH 0 -#define RAYLIB_VERSION "5.6-dev" +#define RAYLIB_VERSION "5.5" // Function specifiers in case library is build/used as a shared library // NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll @@ -98,13 +100,13 @@ #define __declspec(x) __attribute__((x)) #endif #if defined(BUILD_LIBTYPE_SHARED) - #define RLAPI __declspec(dllexport) // Building the library as a Win32 shared library (.dll) + #define RLAPI __declspec(dllexport) // We are building the library as a Win32 shared library (.dll) #elif defined(USE_LIBTYPE_SHARED) - #define RLAPI __declspec(dllimport) // Using the library as a Win32 shared library (.dll) + #define RLAPI __declspec(dllimport) // We are using the library as a Win32 shared library (.dll) #endif #else #if defined(BUILD_LIBTYPE_SHARED) - #define RLAPI __attribute__((visibility("default"))) // Building as a Unix shared library (.so/.dylib) + #define RLAPI __attribute__((visibility("default"))) // We are building as a Unix shared library (.so/.dylib) #endif #endif @@ -113,7 +115,7 @@ #endif //---------------------------------------------------------------------------------- -// Defines and Macros +// Some basic Defines //---------------------------------------------------------------------------------- #ifndef PI #define PI 3.14159265358979323846f @@ -156,7 +158,7 @@ #error "C++11 or later is required. Add -std=c++11" #endif -// NOTE: Set some defines with some data types declared by raylib +// NOTE: We set some defines with some data types declared by raylib // Other modules (raymath, rlgl) also require some of those types, so, // to be able to use those other modules as standalone (not depending on raylib) // this defines are very useful for internal check and avoid type (re)definitions @@ -199,7 +201,7 @@ #define RAYWHITE CLITERAL(Color){ 245, 245, 245, 255 } // My own White (raylib logo) //---------------------------------------------------------------------------------- -// Types and Structures Definition +// Structures Definition //---------------------------------------------------------------------------------- // Boolean type #if (defined(__STDC__) && __STDC_VERSION__ >= 199901L) || (defined(_MSC_VER) && _MSC_VER >= 1800) @@ -325,7 +327,7 @@ typedef struct Camera3D { Vector3 position; // Camera position Vector3 target; // Camera target it looks-at Vector3 up; // Camera up vector (rotation over its axis) - float fovy; // Camera field-of-view aperture in Y (degrees) in perspective, used as near plane height in world units in orthographic + float fovy; // Camera field-of-view aperture in Y (degrees) in perspective, used as near plane width in orthographic int projection; // Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC } Camera3D; @@ -333,10 +335,10 @@ typedef Camera3D Camera; // Camera type fallback, defaults to Camera3D // Camera2D, defines position/orientation in 2d space typedef struct Camera2D { - Vector2 offset; // Camera offset (screen space offset from window origin) - Vector2 target; // Camera target (world space target point that is mapped to screen space offset) - float rotation; // Camera rotation in degrees (pivots around target) - float zoom; // Camera zoom (scaling around target), must not be set to 0, set to 1.0f for no scale + Vector2 offset; // Camera offset (displacement from target) + Vector2 target; // Camera target (rotation and zoom origin) + float rotation; // Camera rotation in degrees + float zoom; // Camera zoom (scaling), should be 1.0f by default } Camera2D; // Mesh, vertex data and vao/vbo @@ -350,8 +352,8 @@ typedef struct Mesh { float *texcoords2; // Vertex texture second coordinates (UV - 2 components per vertex) (shader-location = 5) float *normals; // Vertex normals (XYZ - 3 components per vertex) (shader-location = 2) float *tangents; // Vertex tangents (XYZW - 4 components per vertex) (shader-location = 4) - unsigned char *colors; // Vertex colors (RGBA - 4 components per vertex) (shader-location = 3) - unsigned short *indices; // Vertex indices (in case vertex data comes indexed) + unsigned char *colors; // Vertex colors (RGBA - 4 components per vertex) (shader-location = 3) + unsigned short *indices; // Vertex indices (in case vertex data comes indexed) // Animation vertex data float *animVertices; // Animated vertex positions (after bones transformations) @@ -417,11 +419,11 @@ typedef struct Model { // ModelAnimation typedef struct ModelAnimation { - char name[32]; // Animation name int boneCount; // Number of bones int frameCount; // Number of animation frames BoneInfo *bones; // Bones information (skeleton) Transform **framePoses; // Poses array by frame + char name[32]; // Animation name } ModelAnimation; // Ray, ray for raycasting @@ -511,6 +513,7 @@ typedef struct VrStereoConfig { // File path list typedef struct FilePathList { + unsigned int capacity; // Filepaths max entries unsigned int count; // Filepaths entries count char **paths; // Filepaths entries } FilePathList; @@ -568,7 +571,8 @@ typedef enum { } TraceLogLevel; // Keyboard keys (US keyboard layout) -// NOTE: Use GetKeyPressed() to allow redefining required keys for alternative layouts +// NOTE: Use GetKeyPressed() to allow redefining +// required keys for alternative layouts typedef enum { KEY_NULL = 0, // Key: NULL, used for no key pressed // Alphanumeric keys @@ -739,7 +743,7 @@ typedef enum { GAMEPAD_BUTTON_RIGHT_THUMB // Gamepad joystick pressed button right } GamepadButton; -// Gamepad axes +// Gamepad axis typedef enum { GAMEPAD_AXIS_LEFT_X = 0, // Gamepad left stick X axis GAMEPAD_AXIS_LEFT_Y = 1, // Gamepad left stick Y axis @@ -797,8 +801,7 @@ typedef enum { SHADER_LOC_MAP_BRDF, // Shader location: sampler2d texture: brdf SHADER_LOC_VERTEX_BONEIDS, // Shader location: vertex attribute: boneIds SHADER_LOC_VERTEX_BONEWEIGHTS, // Shader location: vertex attribute: boneWeights - SHADER_LOC_BONE_MATRICES, // Shader location: array of matrices uniform: boneMatrices - SHADER_LOC_VERTEX_INSTANCE_TX // Shader location: vertex attribute: instanceTransform + SHADER_LOC_BONE_MATRICES // Shader location: array of matrices uniform: boneMatrices } ShaderLocationIndex; #define SHADER_LOC_MAP_DIFFUSE SHADER_LOC_MAP_ALBEDO @@ -814,10 +817,6 @@ typedef enum { SHADER_UNIFORM_IVEC2, // Shader uniform type: ivec2 (2 int) SHADER_UNIFORM_IVEC3, // Shader uniform type: ivec3 (3 int) SHADER_UNIFORM_IVEC4, // Shader uniform type: ivec4 (4 int) - SHADER_UNIFORM_UINT, // Shader uniform type: unsigned int - SHADER_UNIFORM_UIVEC2, // Shader uniform type: uivec2 (2 unsigned int) - SHADER_UNIFORM_UIVEC3, // Shader uniform type: uivec3 (3 unsigned int) - SHADER_UNIFORM_UIVEC4, // Shader uniform type: uivec4 (4 unsigned int) SHADER_UNIFORM_SAMPLER2D // Shader uniform type: sampler2d } ShaderUniformDataType; @@ -950,7 +949,7 @@ typedef void (*TraceLogCallback)(int logLevel, const char *text, va_list args); typedef unsigned char *(*LoadFileDataCallback)(const char *fileName, int *dataSize); // FileIO: Load binary data typedef bool (*SaveFileDataCallback)(const char *fileName, void *data, int dataSize); // FileIO: Save binary data typedef char *(*LoadFileTextCallback)(const char *fileName); // FileIO: Load text data -typedef bool (*SaveFileTextCallback)(const char *fileName, const char *text); // FileIO: Save text data +typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileIO: Save text data //------------------------------------------------------------------------------------ // Global Variables Definition @@ -983,7 +982,7 @@ RLAPI void ToggleFullscreen(void); // Toggle wind RLAPI void ToggleBorderlessWindowed(void); // Toggle window state: borderless windowed, resizes window to match monitor resolution RLAPI void MaximizeWindow(void); // Set window state: maximized, if resizable RLAPI void MinimizeWindow(void); // Set window state: minimized, if resizable -RLAPI void RestoreWindow(void); // Restore window from being minimized/maximized +RLAPI void RestoreWindow(void); // Set window state: not minimized/maximized RLAPI void SetWindowIcon(Image image); // Set icon for window (single image, RGBA 32bit) RLAPI void SetWindowIcons(Image *images, int count); // Set icon for window (multiple images, RGBA 32bit) RLAPI void SetWindowTitle(const char *title); // Set title for window @@ -1057,7 +1056,7 @@ RLAPI int GetShaderLocationAttrib(Shader shader, const char *attribName); // Ge RLAPI void SetShaderValue(Shader shader, int locIndex, const void *value, int uniformType); // Set shader uniform value RLAPI void SetShaderValueV(Shader shader, int locIndex, const void *value, int uniformType, int count); // Set shader uniform value vector RLAPI void SetShaderValueMatrix(Shader shader, int locIndex, Matrix mat); // Set shader uniform value (matrix 4x4) -RLAPI void SetShaderValueTexture(Shader shader, int locIndex, Texture2D texture); // Set shader uniform value and bind the texture (sampler2d) +RLAPI void SetShaderValueTexture(Shader shader, int locIndex, Texture2D texture); // Set shader uniform value for texture (sampler2d) RLAPI void UnloadShader(Shader shader); // Unload shader from GPU memory (VRAM) // Screen-space-related functions @@ -1072,106 +1071,99 @@ RLAPI Matrix GetCameraMatrix(Camera camera); // Get c RLAPI Matrix GetCameraMatrix2D(Camera2D camera); // Get camera 2d transform matrix // Timing-related functions -RLAPI void SetTargetFPS(int fps); // Set target FPS (maximum) -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() -RLAPI int GetFPS(void); // Get current FPS +RLAPI void SetTargetFPS(int fps); // Set target FPS (maximum) +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() +RLAPI int GetFPS(void); // Get current FPS // Custom frame control functions // NOTE: Those functions are intended for advanced users that want full control over the frame processing // By default EndDrawing() does this job: draws everything + SwapScreenBuffer() + manage frame timing + 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(double seconds); // Wait for some time (halt program execution) +RLAPI void SwapScreenBuffer(void); // Swap back buffer with front buffer (screen drawing) +RLAPI void PollInputEvents(void); // Register all input events +RLAPI void WaitTime(double seconds); // Wait for some time (halt program execution) // Random values generation functions -RLAPI void SetRandomSeed(unsigned int seed); // Set the seed for the random number generator -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 int GetRandomValue(int min, int max); // Get a random value between min and max (both included) RLAPI int *LoadRandomSequence(unsigned int count, int min, int max); // Load random values sequence, no values repeated -RLAPI void UnloadRandomSequence(int *sequence); // Unload random values sequence +RLAPI void UnloadRandomSequence(int *sequence); // Unload random values sequence // Misc. functions -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 OpenURL(const char *url); // Open URL with default system browser (if available) - -// Logging system -RLAPI void SetTraceLogLevel(int logLevel); // Set the current threshold (minimum) log level -RLAPI void TraceLog(int logLevel, const char *text, ...); // Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...) -RLAPI void SetTraceLogCallback(TraceLogCallback callback); // Set custom trace log - -// Memory management, using internal allocators -RLAPI void *MemAlloc(unsigned int size); // Internal memory allocator -RLAPI void *MemRealloc(void *ptr, unsigned int size); // Internal memory reallocator -RLAPI void MemFree(void *ptr); // Internal memory free +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 OpenURL(const char *url); // Open URL with default system browser (if available) + +// NOTE: Following functions implemented in module [utils] +//------------------------------------------------------------------ +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(unsigned int size); // Internal memory allocator +RLAPI void *MemRealloc(void *ptr, unsigned int size); // Internal memory reallocator +RLAPI void MemFree(void *ptr); // Internal memory free + +// Set custom callbacks +// WARNING: Callbacks setup is intended for advanced users +RLAPI void SetTraceLogCallback(TraceLogCallback callback); // Set custom trace log +RLAPI void SetLoadFileDataCallback(LoadFileDataCallback callback); // Set custom file binary data loader +RLAPI void SetSaveFileDataCallback(SaveFileDataCallback callback); // Set custom file binary data saver +RLAPI void SetLoadFileTextCallback(LoadFileTextCallback callback); // Set custom file text data loader +RLAPI void SetSaveFileTextCallback(SaveFileTextCallback callback); // Set custom file text data saver -// File system management functions +// Files management functions RLAPI unsigned char *LoadFileData(const char *fileName, int *dataSize); // Load file data as byte array (read) -RLAPI void UnloadFileData(unsigned char *data); // Unload file data allocated by LoadFileData() +RLAPI void UnloadFileData(unsigned char *data); // Unload file data allocated by LoadFileData() RLAPI bool SaveFileData(const char *fileName, void *data, int dataSize); // Save data to file from byte array (write), returns true on success RLAPI bool ExportDataAsCode(const unsigned char *data, int dataSize, const char *fileName); // Export data to code (.h), returns true on success -RLAPI char *LoadFileText(const char *fileName); // Load text data from file (read), returns a '\0' terminated string -RLAPI void UnloadFileText(char *text); // Unload file text data allocated by LoadFileText() -RLAPI bool SaveFileText(const char *fileName, const char *text); // Save text data to file (write), string must be '\0' terminated, returns true on success - -// File access custom callbacks -// WARNING: Callbacks setup is intended for advanced users -RLAPI void SetLoadFileDataCallback(LoadFileDataCallback callback); // Set custom file binary data loader -RLAPI void SetSaveFileDataCallback(SaveFileDataCallback callback); // Set custom file binary data saver -RLAPI void SetLoadFileTextCallback(LoadFileTextCallback callback); // Set custom file text data loader -RLAPI void SetSaveFileTextCallback(SaveFileTextCallback callback); // Set custom file text data saver - -RLAPI int FileRename(const char *fileName, const char *fileRename); // Rename file (if exists) -RLAPI int FileRemove(const char *fileName); // Remove file (if exists) -RLAPI int FileCopy(const char *srcPath, const char *dstPath); // Copy file from one path to another, dstPath created if it doesn't exist -RLAPI int FileMove(const char *srcPath, const char *dstPath); // Move file from one directory to another, dstPath created if it doesn't exist -RLAPI int FileTextReplace(const char *fileName, const char *search, const char *replacement); // Replace text in an existing file -RLAPI int FileTextFindIndex(const char *fileName, const char *search); // Find text in existing file -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 (recommended include point: .png, .wav) -RLAPI int GetFileLength(const char *fileName); // Get file length in bytes (NOTE: GetFileSize() conflicts with windows.h) -RLAPI long GetFileModTime(const char *fileName); // Get file modification time (last write time) -RLAPI const char *GetFileExtension(const char *fileName); // Get pointer to extension for a filename string (includes dot: '.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) -RLAPI const char *GetPrevDirectoryPath(const char *dirPath); // Get previous directory path for a given path (uses static string) -RLAPI const char *GetWorkingDirectory(void); // Get current working directory (uses static string) -RLAPI const char *GetApplicationDirectory(void); // Get the directory of the running application (uses static string) -RLAPI int MakeDirectory(const char *dirPath); // Create directories (including full path requested), returns 0 on success -RLAPI bool ChangeDirectory(const char *dirPath); // Change working directory, return true on success -RLAPI bool IsPathFile(const char *path); // Check if a given path is a file or a directory -RLAPI bool IsFileNameValid(const char *fileName); // Check if fileName is valid for the platform/OS -RLAPI FilePathList LoadDirectoryFiles(const char *dirPath); // Load directory filepaths +RLAPI char *LoadFileText(const char *fileName); // Load text data from file (read), returns a '\0' terminated string +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 +//------------------------------------------------------------------ + +// File system functions +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 int GetFileLength(const char *fileName); // Get file length in bytes (NOTE: GetFileSize() conflicts with windows.h) +RLAPI const char *GetFileExtension(const char *fileName); // Get pointer to extension for a filename string (includes dot: '.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) +RLAPI const char *GetPrevDirectoryPath(const char *dirPath); // Get previous directory path for a given path (uses static string) +RLAPI const char *GetWorkingDirectory(void); // Get current working directory (uses static string) +RLAPI const char *GetApplicationDirectory(void); // Get the directory of the running application (uses static string) +RLAPI int MakeDirectory(const char *dirPath); // Create directories (including full path requested), returns 0 on success +RLAPI bool ChangeDirectory(const char *dir); // Change working directory, return true on success +RLAPI bool IsPathFile(const char *path); // Check if a given path is a file or a directory +RLAPI bool IsFileNameValid(const char *fileName); // Check if fileName is valid for the platform/OS +RLAPI FilePathList LoadDirectoryFiles(const char *dirPath); // Load directory filepaths RLAPI FilePathList LoadDirectoryFilesEx(const char *basePath, const char *filter, bool scanSubdirs); // Load directory filepaths with extension filtering and recursive directory scan. Use 'DIR' in the filter string to include directories in the result -RLAPI void UnloadDirectoryFiles(FilePathList files); // Unload filepaths -RLAPI bool IsFileDropped(void); // Check if a file has been dropped into window -RLAPI FilePathList LoadDroppedFiles(void); // Load dropped filepaths -RLAPI void UnloadDroppedFiles(FilePathList files); // Unload dropped filepaths -RLAPI unsigned int GetDirectoryFileCount(const char *dirPath); // Get the file count in a directory -RLAPI unsigned int GetDirectoryFileCountEx(const char *basePath, const char *filter, bool scanSubdirs);// Get the file count in a directory with extension filtering and recursive directory scan. Use 'DIR' in the filter string to include directories in the result +RLAPI void UnloadDirectoryFiles(FilePathList files); // Unload filepaths +RLAPI bool IsFileDropped(void); // Check if a file has been dropped into window +RLAPI FilePathList LoadDroppedFiles(void); // Load dropped filepaths +RLAPI void UnloadDroppedFiles(FilePathList files); // Unload dropped filepaths +RLAPI long GetFileModTime(const char *fileName); // Get file modification time (last write time) // Compression/Encoding functionality RLAPI unsigned char *CompressData(const unsigned char *data, int dataSize, int *compDataSize); // Compress data (DEFLATE algorithm), memory must be MemFree() RLAPI unsigned char *DecompressData(const unsigned char *compData, int compDataSize, int *dataSize); // Decompress data (DEFLATE algorithm), memory must be MemFree() -RLAPI char *EncodeDataBase64(const unsigned char *data, int dataSize, int *outputSize); // Encode data to Base64 string (includes NULL terminator), memory must be MemFree() -RLAPI unsigned char *DecodeDataBase64(const char *text, int *outputSize); // Decode Base64 string (expected NULL terminated), memory must be MemFree() -RLAPI unsigned int ComputeCRC32(unsigned char *data, int dataSize); // Compute CRC32 hash code -RLAPI unsigned int *ComputeMD5(unsigned char *data, int dataSize); // Compute MD5 hash code, returns static int[4] (16 bytes) -RLAPI unsigned int *ComputeSHA1(unsigned char *data, int dataSize); // Compute SHA1 hash code, returns static int[5] (20 bytes) -RLAPI unsigned int *ComputeSHA256(unsigned char *data, int dataSize); // Compute SHA256 hash code, returns static int[8] (32 bytes) +RLAPI char *EncodeDataBase64(const unsigned char *data, int dataSize, int *outputSize); // Encode data to Base64 string, memory must be MemFree() +RLAPI unsigned char *DecodeDataBase64(const unsigned char *data, int *outputSize); // Decode Base64 string data, memory must be MemFree() +RLAPI unsigned int ComputeCRC32(unsigned char *data, int dataSize); // Compute CRC32 hash code +RLAPI unsigned int *ComputeMD5(unsigned char *data, int dataSize); // Compute MD5 hash code, returns static int[4] (16 bytes) +RLAPI unsigned int *ComputeSHA1(unsigned char *data, int dataSize); // Compute SHA1 hash code, returns static int[5] (20 bytes) + // Automation events functionality -RLAPI AutomationEventList LoadAutomationEventList(const char *fileName); // Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS -RLAPI void UnloadAutomationEventList(AutomationEventList list); // Unload automation events list from file -RLAPI bool ExportAutomationEventList(AutomationEventList list, const char *fileName); // Export automation events list as text file -RLAPI void SetAutomationEventList(AutomationEventList *list); // Set automation event list to record to -RLAPI void SetAutomationEventBaseFrame(int frame); // Set automation event internal base frame to start recording -RLAPI void StartAutomationEventRecording(void); // Start recording automation events (AutomationEventList must be set) -RLAPI void StopAutomationEventRecording(void); // Stop recording automation events -RLAPI void PlayAutomationEvent(AutomationEvent event); // Play a recorded automation event +RLAPI AutomationEventList LoadAutomationEventList(const char *fileName); // Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS +RLAPI void UnloadAutomationEventList(AutomationEventList list); // Unload automation events list from file +RLAPI bool ExportAutomationEventList(AutomationEventList list, const char *fileName); // Export automation events list as text file +RLAPI void SetAutomationEventList(AutomationEventList *list); // Set automation event list to record to +RLAPI void SetAutomationEventBaseFrame(int frame); // Set automation event internal base frame to start recording +RLAPI void StartAutomationEventRecording(void); // Start recording automation events (AutomationEventList must be set) +RLAPI void StopAutomationEventRecording(void); // Stop recording automation events +RLAPI void PlayAutomationEvent(AutomationEvent event); // Play a recorded automation event //------------------------------------------------------------------------------------ // Input Handling Functions (Module: core) @@ -1185,20 +1177,19 @@ RLAPI bool IsKeyReleased(int key); // Check if a key RLAPI bool IsKeyUp(int key); // Check if a key is NOT being pressed 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 -RLAPI const char *GetKeyName(int key); // Get name of a QWERTY key on the current keyboard layout (eg returns string 'q' for KEY_A on an AZERTY keyboard) RLAPI void SetExitKey(int key); // Set a custom key to exit program (default is ESC) // Input-related functions: gamepads -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); // Get axis count for a gamepad -RLAPI float GetGamepadAxisMovement(int gamepad, int axis); // Get movement value for a gamepad axis -RLAPI int SetGamepadMappings(const char *mappings); // Set internal gamepad mappings (SDL_GameControllerDB) +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); // 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) RLAPI void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor, float duration); // Set gamepad vibration for both motors (duration in seconds) // Input-related functions: mouse @@ -1227,19 +1218,19 @@ RLAPI int GetTouchPointCount(void); // Get number of t //------------------------------------------------------------------------------------ // Gestures and Touch Handling Functions (Module: rgestures) //------------------------------------------------------------------------------------ -RLAPI void SetGesturesEnabled(unsigned int flags); // Enable a set of gestures using flags -RLAPI bool IsGestureDetected(unsigned int gesture); // Check if a gesture have been detected -RLAPI int GetGestureDetected(void); // Get latest detected gesture -RLAPI float GetGestureHoldDuration(void); // Get gesture hold time in seconds -RLAPI Vector2 GetGestureDragVector(void); // Get gesture drag vector -RLAPI float GetGestureDragAngle(void); // Get gesture drag angle -RLAPI Vector2 GetGesturePinchVector(void); // Get gesture pinch delta -RLAPI float GetGesturePinchAngle(void); // Get gesture pinch angle +RLAPI void SetGesturesEnabled(unsigned int flags); // Enable a set of gestures using flags +RLAPI bool IsGestureDetected(unsigned int gesture); // Check if a gesture have been detected +RLAPI int GetGestureDetected(void); // Get latest detected gesture +RLAPI float GetGestureHoldDuration(void); // Get gesture hold time in seconds +RLAPI Vector2 GetGestureDragVector(void); // Get gesture drag vector +RLAPI float GetGestureDragAngle(void); // Get gesture drag angle +RLAPI Vector2 GetGesturePinchVector(void); // Get gesture pinch delta +RLAPI float GetGesturePinchAngle(void); // Get gesture pinch angle //------------------------------------------------------------------------------------ // Camera System Functions (Module: rcamera) //------------------------------------------------------------------------------------ -RLAPI void UpdateCamera(Camera *camera, int mode); // Update camera position for selected mode +RLAPI void UpdateCamera(Camera *camera, int mode); // Update camera position for selected mode RLAPI void UpdateCameraPro(Camera *camera, Vector3 movement, Vector3 rotation, float zoom); // Update camera movement/rotation //------------------------------------------------------------------------------------ @@ -1248,9 +1239,9 @@ RLAPI void UpdateCameraPro(Camera *camera, Vector3 movement, Vector3 rotation, f // 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 Texture2D GetShapesTexture(void); // Get texture that is used for shapes drawing -RLAPI Rectangle GetShapesTextureRectangle(void); // Get texture source rectangle that is used for shapes drawing +RLAPI void SetShapesTexture(Texture2D texture, Rectangle source); // Set texture and rectangle to be used on shapes drawing +RLAPI Texture2D GetShapesTexture(void); // Get texture that is used for shapes drawing +RLAPI Rectangle GetShapesTextureRectangle(void); // Get texture source rectangle that is used for shapes drawing // Basic shapes drawing functions RLAPI void DrawPixel(int posX, int posY, Color color); // Draw a pixel using geometry [Can be slow, use with care] @@ -1260,7 +1251,6 @@ RLAPI void DrawLineV(Vector2 startPos, Vector2 endPos, Color color); RLAPI void DrawLineEx(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw a line (using triangles/quads) RLAPI void DrawLineStrip(const Vector2 *points, int pointCount, Color color); // Draw lines sequence (using gl lines) RLAPI void DrawLineBezier(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw line segment cubic-bezier in-out interpolation -RLAPI void DrawLineDashed(Vector2 startPos, Vector2 endPos, int dashSize, int spaceSize, Color color); // Draw a dashed line 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 @@ -1269,9 +1259,7 @@ RLAPI void DrawCircleV(Vector2 center, float radius, Color color); RLAPI void DrawCircleLines(int centerX, int centerY, float radius, Color color); // Draw circle outline RLAPI void DrawCircleLinesV(Vector2 center, float radius, Color color); // Draw circle outline (Vector version) RLAPI void DrawEllipse(int centerX, int centerY, float radiusH, float radiusV, Color color); // Draw ellipse -RLAPI void DrawEllipseV(Vector2 center, float radiusH, float radiusV, Color color); // Draw ellipse (Vector version) RLAPI void DrawEllipseLines(int centerX, int centerY, float radiusH, float radiusV, Color color); // Draw ellipse outline -RLAPI void DrawEllipseLinesV(Vector2 center, float radiusH, float radiusV, Color color); // Draw ellipse outline (Vector version) RLAPI void DrawRing(Vector2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, int segments, Color color); // Draw ring RLAPI void DrawRingLines(Vector2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, int segments, Color color); // Draw ring outline RLAPI void DrawRectangle(int posX, int posY, int width, int height, Color color); // Draw a color-filled rectangle @@ -1280,7 +1268,7 @@ RLAPI void DrawRectangleRec(Rectangle rec, Color color); 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 top, Color bottom); // Draw a vertical-gradient-filled rectangle RLAPI void DrawRectangleGradientH(int posX, int posY, int width, int height, Color left, Color right); // Draw a horizontal-gradient-filled rectangle -RLAPI void DrawRectangleGradientEx(Rectangle rec, Color topLeft, Color bottomLeft, Color bottomRight, Color topRight); // Draw a gradient-filled rectangle with custom vertex colors +RLAPI void DrawRectangleGradientEx(Rectangle rec, Color topLeft, Color bottomLeft, Color topRight, Color bottomRight); // 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, 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 @@ -1295,11 +1283,11 @@ RLAPI void DrawPolyLines(Vector2 center, int sides, float radius, float rotation 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 // Splines drawing functions -RLAPI void DrawSplineLinear(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Linear, minimum 2 points -RLAPI void DrawSplineBasis(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: B-Spline, minimum 4 points -RLAPI void DrawSplineCatmullRom(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Catmull-Rom, minimum 4 points -RLAPI void DrawSplineBezierQuadratic(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] -RLAPI void DrawSplineBezierCubic(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] +RLAPI void DrawSplineLinear(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Linear, minimum 2 points +RLAPI void DrawSplineBasis(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: B-Spline, minimum 4 points +RLAPI void DrawSplineCatmullRom(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Catmull-Rom, minimum 4 points +RLAPI void DrawSplineBezierQuadratic(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] +RLAPI void DrawSplineBezierCubic(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] RLAPI void DrawSplineSegmentLinear(Vector2 p1, Vector2 p2, float thick, Color color); // Draw spline segment: Linear, 2 points RLAPI void DrawSplineSegmentBasis(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color); // Draw spline segment: B-Spline, 4 points RLAPI void DrawSplineSegmentCatmullRom(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color); // Draw spline segment: Catmull-Rom, 4 points @@ -1372,7 +1360,7 @@ RLAPI void ImageAlphaPremultiply(Image *image); RLAPI void ImageBlurGaussian(Image *image, int blurSize); // Apply Gaussian blur using a box blur approximation RLAPI void ImageKernelConvolution(Image *image, const float *kernel, int kernelSize); // Apply custom square convolution kernel to 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 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); // 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) @@ -1413,8 +1401,8 @@ RLAPI void ImageDrawRectangleLines(Image *dst, Rectangle rec, int thick, Color c RLAPI void ImageDrawTriangle(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle within an image RLAPI void ImageDrawTriangleEx(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color c1, Color c2, Color c3); // Draw triangle with interpolated colors within an image RLAPI void ImageDrawTriangleLines(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle outline within an image -RLAPI void ImageDrawTriangleFan(Image *dst, const Vector2 *points, int pointCount, Color color); // Draw a triangle fan defined by points within an image (first vertex is the center) -RLAPI void ImageDrawTriangleStrip(Image *dst, const Vector2 *points, int pointCount, Color color); // Draw a triangle strip defined by points within an image +RLAPI void ImageDrawTriangleFan(Image *dst, Vector2 *points, int pointCount, Color color); // Draw a triangle fan defined by points within an image (first vertex is the center) +RLAPI void ImageDrawTriangleStrip(Image *dst, Vector2 *points, int pointCount, Color color); // Draw a triangle strip defined by points within an image RLAPI void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color tint); // Draw a source image within a destination image (tint applied to source) RLAPI void ImageDrawText(Image *dst, const char *text, int posX, int posY, int fontSize, Color color); // Draw text (using default font) within an image (destination) RLAPI void ImageDrawTextEx(Image *dst, Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint); // Draw text (custom sprite font) within an image (destination) @@ -1429,8 +1417,8 @@ RLAPI bool IsTextureValid(Texture2D texture); RLAPI void UnloadTexture(Texture2D texture); // Unload texture from GPU memory (VRAM) RLAPI bool IsRenderTextureValid(RenderTexture2D target); // Check if a render texture is valid (loaded in GPU) 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 (pixels should be able to fill texture) -RLAPI void UpdateTextureRec(Texture2D texture, Rectangle rec, const void *pixels); // Update GPU texture rectangle with new data (pixels and rec should fit in texture) +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 // Texture configuration functions RLAPI void GenTextureMipmaps(Texture2D *texture); // Generate GPU mipmaps for a texture @@ -1471,11 +1459,11 @@ 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, const int *codepoints, int codepointCount); // Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height +RLAPI Font LoadFontEx(const char *fileName, int fontSize, int *codepoints, int codepointCount); // Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height 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, const int *codepoints, int codepointCount); // Load font from memory buffer, fileType refers to extension: i.e. '.ttf' +RLAPI Font LoadFontFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int fontSize, int *codepoints, int codepointCount); // Load font from memory buffer, fileType refers to extension: i.e. '.ttf' RLAPI bool IsFontValid(Font font); // Check if a font is valid (font data loaded, WARNING: GPU texture not checked) -RLAPI GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSize, const int *codepoints, int codepointCount, int type, int *glyphCount); // Load font data for further use +RLAPI GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSize, int *codepoints, int codepointCount, int type); // Load font data for further use RLAPI Image GenImageFontAtlas(const GlyphInfo *glyphs, Rectangle **glyphRecs, int glyphCount, int fontSize, int padding, int packMethod); // Generate image font atlas using chars info RLAPI void UnloadFontData(GlyphInfo *glyphs, int glyphCount); // Unload font chars info data (RAM) RLAPI void UnloadFont(Font font); // Unload font from GPU memory (VRAM) @@ -1498,42 +1486,37 @@ RLAPI GlyphInfo GetGlyphInfo(Font font, int codepoint); 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 char *LoadUTF8(const int *codepoints, int length); // Load UTF-8 text encoded from codepoints array -RLAPI void UnloadUTF8(char *text); // Unload UTF-8 text encoded from codepoints array -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 *codepointSize); // Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure -RLAPI int GetCodepointNext(const char *text, int *codepointSize); // Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure -RLAPI int GetCodepointPrevious(const char *text, int *codepointSize); // Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure -RLAPI const char *CodepointToUTF8(int codepoint, int *utf8Size); // Encode one codepoint into UTF-8 byte array (array length returned as parameter) +RLAPI char *LoadUTF8(const int *codepoints, int length); // Load UTF-8 text encoded from codepoints array +RLAPI void UnloadUTF8(char *text); // Unload UTF-8 text encoded from codepoints array +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 *codepointSize); // Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure +RLAPI int GetCodepointNext(const char *text, int *codepointSize); // Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure +RLAPI int GetCodepointPrevious(const char *text, int *codepointSize); // Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure +RLAPI const char *CodepointToUTF8(int codepoint, int *utf8Size); // Encode one codepoint into UTF-8 byte array (array length returned as parameter) // Text strings management functions (no UTF-8 strings, only byte chars) -// WARNING 1: Most of these functions use internal static buffers[], it's recommended to store returned data on user-side for re-use -// WARNING 2: Some strings allocate memory internally for the returned strings, those strings must be free by user using MemFree() -RLAPI char **LoadTextLines(const char *text, int *count); // Load text as separate lines ('\n') -RLAPI void UnloadTextLines(char **text, int lineCount); // Unload text lines +// 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 *TextSubtext(const char *text, int position, int length); // Get a piece of a text string -RLAPI const char *TextRemoveSpaces(const char *text); // Remove text spaces, concat words -RLAPI char *GetTextBetween(const char *text, const char *begin, const char *end); // Get text between two strings -RLAPI char *TextReplace(const char *text, const char *search, const char *replacement); // Replace text string (WARNING: memory must be freed!) -RLAPI char *TextReplaceBetween(const char *text, const char *begin, const char *end, const char *replacement); // Replace text between two specific strings (WARNING: memory must be freed!) +RLAPI char *TextReplace(const char *text, const char *replace, const char *by); // Replace text string (WARNING: memory must be freed!) RLAPI char *TextInsert(const char *text, const char *insert, int position); // Insert text in a position (WARNING: memory must be freed!) -RLAPI char *TextJoin(char **textList, int count, const char *delimiter); // Join text strings with delimiter -RLAPI char **TextSplit(const char *text, char delimiter, int *count); // Split text into multiple strings, using MAX_TEXTSPLIT_COUNT static strings -RLAPI void TextAppend(char *text, const char *append, int *position); // Append text at specific position and move cursor -RLAPI int TextFindIndex(const char *text, const char *search); // Find first text occurrence within a string, -1 if not found -RLAPI char *TextToUpper(const char *text); // Get upper case version of provided string -RLAPI char *TextToLower(const char *text); // Get lower case version of provided string -RLAPI char *TextToPascal(const char *text); // Get Pascal case notation version of provided string -RLAPI char *TextToSnake(const char *text); // Get Snake case notation version of provided string -RLAPI char *TextToCamel(const char *text); // Get Camel case notation version of provided string -RLAPI int TextToInteger(const char *text); // Get integer value from text -RLAPI float TextToFloat(const char *text); // Get float value from text +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! +RLAPI int TextFindIndex(const char *text, const char *find); // Find first text occurrence within a string +RLAPI const char *TextToUpper(const char *text); // Get upper case version of provided string +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 const char *TextToSnake(const char *text); // Get Snake case notation version of provided string +RLAPI const char *TextToCamel(const char *text); // Get Camel case notation version of provided string + +RLAPI int TextToInteger(const char *text); // Get integer value from text (negative values not supported) +RLAPI float TextToFloat(const char *text); // Get float value from text (negative values not supported) //------------------------------------------------------------------------------------ // Basic 3d Shapes Drawing Functions (Module: models) @@ -1621,21 +1604,19 @@ RLAPI void SetModelMeshMaterial(Model *model, int meshId, int materialId); RLAPI ModelAnimation *LoadModelAnimations(const char *fileName, int *animCount); // Load model animations from file RLAPI void UpdateModelAnimation(Model model, ModelAnimation anim, int frame); // Update model animation pose (CPU) RLAPI void UpdateModelAnimationBones(Model model, ModelAnimation anim, int frame); // Update model animation mesh bone matrices (GPU skinning) -RLAPI void UpdateModelAnimationBonesLerp(Model model, ModelAnimation animA, int frameA, ModelAnimation animB, int frameB, float value); // Update model animation mesh bone matrices with interpolation between two poses(GPU skinning) -RLAPI void UpdateModelVertsToCurrentBones(Model model); // Update model vertices according to mesh bone matrices (CPU) RLAPI void UnloadModelAnimation(ModelAnimation anim); // Unload animation data RLAPI void UnloadModelAnimations(ModelAnimation *animations, int animCount); // 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); // 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 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 +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 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) @@ -1657,7 +1638,7 @@ RLAPI Sound LoadSound(const char *fileName); // Load so RLAPI Sound LoadSoundFromWave(Wave wave); // Load sound from wave data RLAPI Sound LoadSoundAlias(Sound source); // Create a new sound that shares the same sample data as the source sound, does not own the sound data RLAPI bool IsSoundValid(Sound sound); // Checks if a sound is valid (data loaded and buffers initialized) -RLAPI void UpdateSound(Sound sound, const void *data, int sampleCount); // Update sound buffer with new data (default data format: 32 bit float, stereo) +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 void UnloadSoundAlias(Sound alias); // Unload a sound alias (does not deallocate sample data) @@ -1672,7 +1653,7 @@ RLAPI void ResumeSound(Sound sound); // Resume RLAPI bool IsSoundPlaying(Sound sound); // Check if a sound is currently playing RLAPI void SetSoundVolume(Sound sound, float volume); // Set volume for a sound (1.0 is max level) RLAPI void SetSoundPitch(Sound sound, float pitch); // Set pitch for a sound (1.0 is base level) -RLAPI void SetSoundPan(Sound sound, float pan); // Set pan for a sound (-1.0 left, 0.0 center, 1.0 right) +RLAPI void SetSoundPan(Sound sound, float pan); // Set pan for a sound (0.5 is center) RLAPI Wave WaveCopy(Wave wave); // Copy a wave to a new wave RLAPI void WaveCrop(Wave *wave, int initFrame, int finalFrame); // Crop a wave to defined frames range RLAPI void WaveFormat(Wave *wave, int sampleRate, int sampleSize, int channels); // Convert wave data to desired format @@ -1693,7 +1674,7 @@ RLAPI void ResumeMusicStream(Music music); // Resume 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 void SetMusicPan(Music music, float pan); // Set pan for a music (-1.0 left, 0.0 center, 1.0 right) +RLAPI void SetMusicPan(Music music, float pan); // Set pan for a music (0.5 is center) RLAPI float GetMusicTimeLength(Music music); // Get music time length (in seconds) RLAPI float GetMusicTimePlayed(Music music); // Get current music time played (in seconds) @@ -1714,10 +1695,10 @@ RLAPI void SetAudioStreamPan(AudioStream stream, float pan); // Set pan RLAPI void SetAudioStreamBufferSizeDefault(int size); // Default size for new audio streams RLAPI void SetAudioStreamCallback(AudioStream stream, AudioCallback callback); // Audio thread callback to request new data -RLAPI void AttachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Attach audio stream processor to stream, receives frames x 2 samples as 'float' (stereo) +RLAPI void AttachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Attach audio stream processor to stream, receives the samples as 'float' RLAPI void DetachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Detach audio stream processor from stream -RLAPI void AttachAudioMixedProcessor(AudioCallback processor); // Attach audio stream processor to the entire audio pipeline, receives frames x 2 samples as 'float' (stereo) +RLAPI void AttachAudioMixedProcessor(AudioCallback processor); // Attach audio stream processor to the entire audio pipeline, receives the samples as 'float' RLAPI void DetachAudioMixedProcessor(AudioCallback processor); // Detach audio stream processor from the entire audio pipeline #if defined(__cplusplus) diff --git a/lib/raylib_lin/include/raymath.h b/lib/raylib_lin/include/raymath.h index 214495a..e522113 100644 --- a/lib/raylib_lin/include/raymath.h +++ b/lib/raylib_lin/include/raymath.h @@ -19,25 +19,20 @@ * * CONFIGURATION: * #define RAYMATH_IMPLEMENTATION -* Generates the implementation of the library into the included file +* Generates the implementation of the library into the included file. * If not defined, the library is in header only mode and can be included in other headers -* or source files without problems. But only ONE file should hold the implementation +* or source files without problems. But only ONE file should hold the implementation. * * #define RAYMATH_STATIC_INLINE -* Define static inline functions code, so #include header suffices for use -* This may use up lots of memory +* Define static inline functions code, so #include header suffices for use. +* This may use up lots of memory. * * #define RAYMATH_DISABLE_CPP_OPERATORS * Disables C++ operator overloads for raymath types. * -* #define RAYMATH_USE_SIMD_INTRINSICS -* Try to enable SIMD intrinsics for MatrixMultiply() -* Note that users enabling it must be aware of the target platform where application will -* run to support the selected SIMD intrinsic, for now, only SSE is supported -* * LICENSE: zlib/libpng * -* Copyright (c) 2015-2026 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) * * This software is provided "as-is", without any express or implied warranty. In no event * will the authors be held liable for any damages arising from the use of this software. @@ -66,11 +61,11 @@ // Function specifiers definition #if defined(RAYMATH_IMPLEMENTATION) #if defined(_WIN32) && defined(BUILD_LIBTYPE_SHARED) - #define RMAPI __declspec(dllexport) extern inline // Building raylib as a Win32 shared library (.dll) + #define RMAPI __declspec(dllexport) extern inline // We are building raylib as a Win32 shared library (.dll) #elif defined(BUILD_LIBTYPE_SHARED) - #define RMAPI __attribute__((visibility("default"))) // Building raylib as a Unix shared library (.so/.dylib) + #define RMAPI __attribute__((visibility("default"))) // We are building raylib as a Unix shared library (.so/.dylib) #elif defined(_WIN32) && defined(USE_LIBTYPE_SHARED) - #define RMAPI __declspec(dllimport) // Using raylib as a Win32 shared library (.dll) + #define RMAPI __declspec(dllimport) // We are using raylib as a Win32 shared library (.dll) #else #define RMAPI extern inline // Provide external definition #endif @@ -84,6 +79,7 @@ #endif #endif + //---------------------------------------------------------------------------------- // Defines and Macros //---------------------------------------------------------------------------------- @@ -164,51 +160,16 @@ typedef struct Matrix { #endif // NOTE: Helper types to be used instead of array return types for *ToFloat functions -#if !defined(RL_FLOAT3_TYPE) typedef struct float3 { float v[3]; } float3; -#define RL_FLOAT3_TYPE -#endif -#if !defined(RL_FLOAT16_TYPE) typedef struct float16 { float v[16]; } float16; -#define RL_FLOAT16_TYPE -#endif #include // Required for: sinf(), cosf(), tan(), atan2f(), sqrtf(), floor(), fminf(), fmaxf(), fabsf() -#if defined(RAYMATH_USE_SIMD_INTRINSICS) - // SIMD is used on the most costly raymath function MatrixMultiply() - // NOTE: Only SSE intrinsics support implemented - // TODO: Consider support for other SIMD instrinsics: - // - SSEx, AVX, AVX2, FMA, NEON, RVV - /* - #if defined(__SSE4_2__) - #include - #define RAYMATH_SSE42_ENABLED - #elif defined(__SSE4_1__) - #include - #define RAYMATH_SSE41_ENABLED - #elif defined(__SSSE3__) - #include - #define RAYMATH_SSSE3_ENABLED - #elif defined(__SSE3__) - #include - #define RAYMATH_SSE3_ENABLED - #elif defined(__SSE2__) || (defined(_M_AMD64) || defined(_M_X64)) // SSE2 x64 - #include - #define RAYMATH_SSE2_ENABLED - #endif - */ - #if defined(__SSE__) || defined(_M_X64) || (defined(_M_IX86_FP) && (_M_IX86_FP >= 1)) - #include - #define RAYMATH_SSE_ENABLED - #endif -#endif - //---------------------------------------------------------------------------------- // Module Functions Definition - Utils math //---------------------------------------------------------------------------------- @@ -343,14 +304,6 @@ RMAPI float Vector2DotProduct(Vector2 v1, Vector2 v2) return result; } -// Calculate two vectors cross product -RMAPI float Vector2CrossProduct(Vector2 v1, Vector2 v2) -{ - float result = (v1.x*v2.y - v1.y*v2.x); - - return result; -} - // Calculate distance between two vectors RMAPI float Vector2Distance(Vector2 v1, Vector2 v2) { @@ -367,9 +320,8 @@ RMAPI float Vector2DistanceSqr(Vector2 v1, Vector2 v2) return result; } -// Calculate the signed angle from v1 to v2, relative to the origin (0, 0) -// NOTE: Coordinate system convention: positive X right, positive Y down -// positive angles appear clockwise, and negative angles appear counterclockwise +// Calculate angle between two vectors +// NOTE: Angle is calculated from origin point (0, 0) RMAPI float Vector2Angle(Vector2 v1, Vector2 v2) { float result = 0.0f; @@ -601,7 +553,7 @@ RMAPI int Vector2Equals(Vector2 p, Vector2 q) // v: normalized direction of the incoming ray // n: normalized normal vector of the interface of two optical media // r: ratio of the refractive index of the medium from where the ray comes -// to the refractive index of the medium on the other side of the surface +// to the refractive index of the medium on the other side of the surface RMAPI Vector2 Vector2Refract(Vector2 v, Vector2 n, float r) { Vector2 result = { 0 }; @@ -1089,7 +1041,7 @@ RMAPI Vector3 Vector3Barycenter(Vector3 p, Vector3 a, Vector3 b, Vector3 c) } // Projects a Vector3 from screen space into object space -// NOTE: Self-contained function, no other raymath functions are called +// NOTE: We are avoiding calling other raymath functions despite available RMAPI Vector3 Vector3Unproject(Vector3 source, Matrix projection, Matrix view) { Vector3 result = { 0 }; @@ -1251,7 +1203,7 @@ RMAPI int Vector3Equals(Vector3 p, Vector3 q) // v: normalized direction of the incoming ray // n: normalized normal vector of the interface of two optical media // r: ratio of the refractive index of the medium from where the ray comes -// to the refractive index of the medium on the other side of the surface +// to the refractive index of the medium on the other side of the surface RMAPI Vector3 Vector3Refract(Vector3 v, Vector3 n, float r) { Vector3 result = { 0 }; @@ -1507,35 +1459,19 @@ RMAPI int Vector4Equals(Vector4 p, Vector4 q) RMAPI float MatrixDeterminant(Matrix mat) { float result = 0.0f; -/* + // Cache the matrix values (speed optimization) float a00 = mat.m0, a01 = mat.m1, a02 = mat.m2, a03 = mat.m3; float a10 = mat.m4, a11 = mat.m5, a12 = mat.m6, a13 = mat.m7; float a20 = mat.m8, a21 = mat.m9, a22 = mat.m10, a23 = mat.m11; float a30 = mat.m12, a31 = mat.m13, a32 = mat.m14, a33 = mat.m15; - // NOTE: It takes 72 multiplication to calculate 4x4 matrix determinant result = a30*a21*a12*a03 - a20*a31*a12*a03 - a30*a11*a22*a03 + a10*a31*a22*a03 + a20*a11*a32*a03 - a10*a21*a32*a03 - a30*a21*a02*a13 + a20*a31*a02*a13 + a30*a01*a22*a13 - a00*a31*a22*a13 - a20*a01*a32*a13 + a00*a21*a32*a13 + a30*a11*a02*a23 - a10*a31*a02*a23 - a30*a01*a12*a23 + a00*a31*a12*a23 + a10*a01*a32*a23 - a00*a11*a32*a23 - a20*a11*a02*a33 + a10*a21*a02*a33 + a20*a01*a12*a33 - a00*a21*a12*a33 - a10*a01*a22*a33 + a00*a11*a22*a33; -*/ - // Using Laplace expansion (https://en.wikipedia.org/wiki/Laplace_expansion), - // previous operation can be simplified to 40 multiplications, decreasing matrix - // size from 4x4 to 2x2 using minors - - // Cache the matrix values (speed optimization) - float m0 = mat.m0, m1 = mat.m1, m2 = mat.m2, m3 = mat.m3; - float m4 = mat.m4, m5 = mat.m5, m6 = mat.m6, m7 = mat.m7; - float m8 = mat.m8, m9 = mat.m9, m10 = mat.m10, m11 = mat.m11; - float m12 = mat.m12, m13 = mat.m13, m14 = mat.m14, m15 = mat.m15; - - result = (m0*((m5*(m10*m15 - m11*m14) - m9*(m6*m15 - m7*m14) + m13*(m6*m11 - m7*m10))) - - m4*((m1*(m10*m15 - m11*m14) - m9*(m2*m15 - m3*m14) + m13*(m2*m11 - m3*m10))) + - m8*((m1*(m6*m15 - m7*m14) - m5*(m2*m15 - m3*m14) + m13*(m2*m7 - m3*m6))) - - m12*((m1*(m6*m11 - m7*m10) - m5*(m2*m11 - m3*m10) + m9*(m2*m7 - m3*m6)))); return result; } @@ -1686,64 +1622,7 @@ RMAPI Matrix MatrixSubtract(Matrix left, Matrix right) RMAPI Matrix MatrixMultiply(Matrix left, Matrix right) { Matrix result = { 0 }; - -#if defined(RAYMATH_SSE_ENABLED) - // Load left side and right side - __m128 c0 = _mm_set_ps(right.m12, right.m8, right.m4, right.m0); - __m128 c1 = _mm_set_ps(right.m13, right.m9, right.m5, right.m1); - __m128 c2 = _mm_set_ps(right.m14, right.m10, right.m6, right.m2); - __m128 c3 = _mm_set_ps(right.m15, right.m11, right.m7, right.m3); - - // Transpose so c0..c3 become *rows* of the right matrix in semantic order - _MM_TRANSPOSE4_PS(c0, c1, c2, c3); - - float tmp[4] = { 0 }; - __m128 row; - - // Row 0 of result: [m0, m1, m2, m3] - row = _mm_mul_ps(_mm_set1_ps(left.m0), c0); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m1), c1)); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m2), c2)); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m3), c3)); - _mm_storeu_ps(tmp, row); - result.m0 = tmp[0]; - result.m1 = tmp[1]; - result.m2 = tmp[2]; - result.m3 = tmp[3]; - - // Row 1 of result: [m4, m5, m6, m7] - row = _mm_mul_ps(_mm_set1_ps(left.m4), c0); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m5), c1)); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m6), c2)); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m7), c3)); - _mm_storeu_ps(tmp, row); - result.m4 = tmp[0]; - result.m5 = tmp[1]; - result.m6 = tmp[2]; - result.m7 = tmp[3]; - - // Row 2 of result: [m8, m9, m10, m11] - row = _mm_mul_ps(_mm_set1_ps(left.m8), c0); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m9), c1)); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m10), c2)); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m11), c3)); - _mm_storeu_ps(tmp, row); - result.m8 = tmp[0]; - result.m9 = tmp[1]; - result.m10 = tmp[2]; - result.m11 = tmp[3]; - - // Row 3 of result: [m12, m13, m14, m15] - row = _mm_mul_ps(_mm_set1_ps(left.m12), c0); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m13), c1)); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m14), c2)); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m15), c3)); - _mm_storeu_ps(tmp, row); - result.m12 = tmp[0]; - result.m13 = tmp[1]; - result.m14 = tmp[2]; - result.m15 = tmp[3]; -#else + result.m0 = left.m0*right.m0 + left.m1*right.m4 + left.m2*right.m8 + left.m3*right.m12; result.m1 = left.m0*right.m1 + left.m1*right.m5 + left.m2*right.m9 + left.m3*right.m13; result.m2 = left.m0*right.m2 + left.m1*right.m6 + left.m2*right.m10 + left.m3*right.m14; @@ -1760,7 +1639,6 @@ RMAPI Matrix MatrixMultiply(Matrix left, Matrix right) result.m13 = left.m12*right.m1 + left.m13*right.m5 + left.m14*right.m9 + left.m15*right.m13; result.m14 = left.m12*right.m2 + left.m13*right.m6 + left.m14*right.m10 + left.m15*right.m14; result.m15 = left.m12*right.m3 + left.m13*right.m7 + left.m14*right.m11 + left.m15*right.m15; -#endif return result; } @@ -2369,13 +2247,13 @@ RMAPI Quaternion QuaternionFromVector3ToVector3(Vector3 from, Vector3 to) { Quaternion result = { 0 }; - float cos2Theta = (from.x*to.x + from.y*to.y + from.z*to.z); // Vector3DotProduct(from, to) + float cos2Theta = (from.x*to.x + from.y*to.y + from.z*to.z); // Vector3DotProduct(from, to) Vector3 cross = { from.y*to.z - from.z*to.y, from.z*to.x - from.x*to.z, from.x*to.y - from.y*to.x }; // Vector3CrossProduct(from, to) result.x = cross.x; result.y = cross.y; result.z = cross.z; - result.w = sqrtf(cross.x*cross.x + cross.y*cross.y + cross.z*cross.z + cos2Theta*cos2Theta) + cos2Theta; + result.w = 1.0f + cos2Theta; // QuaternionNormalize(q); // NOTE: Normalize to essentially nlerp the original and identity to 0.5 @@ -2649,119 +2527,65 @@ RMAPI int QuaternionEquals(Quaternion p, Quaternion q) return result; } -// Compose a transformation matrix from rotational, translational and scaling components -// TODO: This function is not following raymath conventions defined in header: NOT self-contained -RMAPI Matrix MatrixCompose(Vector3 translation, Quaternion rotation, Vector3 scale) -{ - // Initialize vectors - Vector3 right = { 1.0f, 0.0f, 0.0f }; - Vector3 up = { 0.0f, 1.0f, 0.0f }; - Vector3 forward = { 0.0f, 0.0f, 1.0f }; - - // Scale vectors - right = Vector3Scale(right, scale.x); - up = Vector3Scale(up, scale.y); - forward = Vector3Scale(forward , scale.z); - - // Rotate vectors - right = Vector3RotateByQuaternion(right, rotation); - up = Vector3RotateByQuaternion(up, rotation); - forward = Vector3RotateByQuaternion(forward, rotation); - - // Set result matrix output - Matrix result = { - right.x, up.x, forward.x, translation.x, - right.y, up.y, forward.y, translation.y, - right.z, up.z, forward.z, translation.z, - 0.0f, 0.0f, 0.0f, 1.0f - }; - - return result; -} - -// Decompose a transformation matrix into its rotational, translational and scaling components and remove shear -// TODO: This function is not following raymath conventions defined in header: NOT self-contained +// Decompose a transformation matrix into its rotational, translational and scaling components RMAPI void MatrixDecompose(Matrix mat, Vector3 *translation, Quaternion *rotation, Vector3 *scale) { - float eps = (float)1e-9; - - // Extract Translation + // Extract translation. translation->x = mat.m12; translation->y = mat.m13; translation->z = mat.m14; - // Matrix Columns - Rotation will be extracted into here. - Vector3 matColumns[3] = { { mat.m0, mat.m4, mat.m8 }, - { mat.m1, mat.m5, mat.m9 }, - { mat.m2, mat.m6, mat.m10 } }; - - // Shear Parameters XY, XZ, and YZ (extract and ignored) - float shear[3] = { 0 }; - - // Normalized Scale Parameters - Vector3 scl = { 0 }; - - // Max-Normalizing helps numerical stability - float stabilizer = eps; - for (int i = 0; i < 3; i++) + // Extract upper-left for determinant computation + const float a = mat.m0; + const float b = mat.m4; + const float c = mat.m8; + const float d = mat.m1; + const float e = mat.m5; + const float f = mat.m9; + const float g = mat.m2; + const float h = mat.m6; + const float i = mat.m10; + const float A = e*i - f*h; + const float B = f*g - d*i; + const float C = d*h - e*g; + + // Extract scale + const float det = a*A + b*B + c*C; + Vector3 abc = { a, b, c }; + Vector3 def = { d, e, f }; + Vector3 ghi = { g, h, i }; + + float scalex = Vector3Length(abc); + float scaley = Vector3Length(def); + float scalez = Vector3Length(ghi); + Vector3 s = { scalex, scaley, scalez }; + + if (det < 0) s = Vector3Negate(s); + + *scale = s; + + // Remove scale from the matrix if it is not close to zero + Matrix clone = mat; + if (!FloatEquals(det, 0)) { - stabilizer = fmaxf(stabilizer, fabsf(matColumns[i].x)); - stabilizer = fmaxf(stabilizer, fabsf(matColumns[i].y)); - stabilizer = fmaxf(stabilizer, fabsf(matColumns[i].z)); - }; - matColumns[0] = Vector3Scale(matColumns[0], 1.0f / stabilizer); - matColumns[1] = Vector3Scale(matColumns[1], 1.0f / stabilizer); - matColumns[2] = Vector3Scale(matColumns[2], 1.0f / stabilizer); - - // X Scale - scl.x = Vector3Length(matColumns[0]); - if (scl.x > eps) matColumns[0] = Vector3Scale(matColumns[0], 1.0f / scl.x); - - // Compute XY shear and make col2 orthogonal - shear[0] = Vector3DotProduct(matColumns[0], matColumns[1]); - matColumns[1] = Vector3Subtract(matColumns[1], Vector3Scale(matColumns[0], shear[0])); - - // Y Scale - scl.y = Vector3Length(matColumns[1]); - if (scl.y > eps) - { - matColumns[1] = Vector3Scale(matColumns[1], 1.0f / scl.y); - shear[0] /= scl.y; // Correct XY shear - } - - // Compute XZ and YZ shears and make col3 orthogonal - shear[1] = Vector3DotProduct(matColumns[0], matColumns[2]); - matColumns[2] = Vector3Subtract(matColumns[2], Vector3Scale(matColumns[0], shear[1])); - shear[2] = Vector3DotProduct(matColumns[1], matColumns[2]); - matColumns[2] = Vector3Subtract(matColumns[2], Vector3Scale(matColumns[1], shear[2])); - - // Z Scale - scl.z = Vector3Length(matColumns[2]); - if (scl.z > eps) - { - matColumns[2] = Vector3Scale(matColumns[2], 1.0f / scl.z); - shear[1] /= scl.z; // Correct XZ shear - shear[2] /= scl.z; // Correct YZ shear + clone.m0 /= s.x; + clone.m4 /= s.x; + clone.m8 /= s.x; + clone.m1 /= s.y; + clone.m5 /= s.y; + clone.m9 /= s.y; + clone.m2 /= s.z; + clone.m6 /= s.z; + clone.m10 /= s.z; + + // Extract rotation + *rotation = QuaternionFromMatrix(clone); } - - // matColumns are now orthonormal in O(3). Now ensure its in SO(3) by enforcing det = 1. - if (Vector3DotProduct(matColumns[0], Vector3CrossProduct(matColumns[1], matColumns[2])) < 0) + else { - scl = Vector3Negate(scl); - matColumns[0] = Vector3Negate(matColumns[0]); - matColumns[1] = Vector3Negate(matColumns[1]); - matColumns[2] = Vector3Negate(matColumns[2]); + // Set to identity if close to zero + *rotation = QuaternionIdentity(); } - - // Set Scale - *scale = Vector3Scale(scl, stabilizer); - - // Extract Rotation - Matrix rotationMatrix = { matColumns[0].x, matColumns[0].y, matColumns[0].z, 0, - matColumns[1].x, matColumns[1].y, matColumns[1].z, 0, - matColumns[2].x, matColumns[2].y, matColumns[2].z, 0, - 0, 0, 0, 1 }; - *rotation = QuaternionFromMatrix(rotationMatrix); } #if defined(__cplusplus) && !defined(RAYMATH_DISABLE_CPP_OPERATORS) @@ -2824,7 +2648,7 @@ inline Vector2 operator * (const Vector2& lhs, const Matrix& rhs) return Vector2Transform(lhs, rhs); } -inline const Vector2& operator *= (Vector2& lhs, const Matrix& rhs) +inline const Vector2& operator -= (Vector2& lhs, const Matrix& rhs) { lhs = Vector2Transform(lhs, rhs); return lhs; @@ -2832,12 +2656,12 @@ inline const Vector2& operator *= (Vector2& lhs, const Matrix& rhs) inline Vector2 operator / (const Vector2& lhs, const float& rhs) { - return Vector2Scale(lhs, 1.0f/rhs); + return Vector2Scale(lhs, 1.0f / rhs); } inline const Vector2& operator /= (Vector2& lhs, const float& rhs) { - lhs = Vector2Scale(lhs, 1.0f/rhs); + lhs = Vector2Scale(lhs, rhs); return lhs; } @@ -2918,7 +2742,7 @@ inline Vector3 operator * (const Vector3& lhs, const Matrix& rhs) return Vector3Transform(lhs, rhs); } -inline const Vector3& operator *= (Vector3& lhs, const Matrix& rhs) +inline const Vector3& operator -= (Vector3& lhs, const Matrix& rhs) { lhs = Vector3Transform(lhs, rhs); return lhs; @@ -2926,12 +2750,12 @@ inline const Vector3& operator *= (Vector3& lhs, const Matrix& rhs) inline Vector3 operator / (const Vector3& lhs, const float& rhs) { - return Vector3Scale(lhs, 1.0f/rhs); + return Vector3Scale(lhs, 1.0f / rhs); } inline const Vector3& operator /= (Vector3& lhs, const float& rhs) { - lhs = Vector3Scale(lhs, 1.0f/rhs); + lhs = Vector3Scale(lhs, rhs); return lhs; } @@ -3010,12 +2834,12 @@ inline const Vector4& operator *= (Vector4& lhs, const Vector4& rhs) inline Vector4 operator / (const Vector4& lhs, const float& rhs) { - return Vector4Scale(lhs, 1.0f/rhs); + return Vector4Scale(lhs, 1.0f / rhs); } inline const Vector4& operator /= (Vector4& lhs, const float& rhs) { - lhs = Vector4Scale(lhs, 1.0f/rhs); + lhs = Vector4Scale(lhs, rhs); return lhs; } diff --git a/lib/raylib_lin/include/rlgl.h b/lib/raylib_lin/include/rlgl.h index 0cde3e6..756656e 100644 --- a/lib/raylib_lin/include/rlgl.h +++ b/lib/raylib_lin/include/rlgl.h @@ -3,14 +3,14 @@ * rlgl v5.0 - A multi-OpenGL abstraction layer with an immediate-mode style API * * DESCRIPTION: -* An abstraction layer for multiple OpenGL versions (1.1, 2.1, 3.3 Core, 4.3 Core, ES 2.0, ES 3.0) +* An abstraction layer for multiple OpenGL versions (1.1, 2.1, 3.3 Core, 4.3 Core, ES 2.0) * that provides a pseudo-OpenGL 1.1 immediate-mode style API (rlVertex, rlTranslate, rlRotate...) * * ADDITIONAL NOTES: * When choosing an OpenGL backend different than OpenGL 1.1, some internal buffer are * initialized on rlglInit() to accumulate vertex data * -* When an internal state change is required all the stored vertex data is rendered in batch, +* When an internal state change is required all the stored vertex data is renderer in batch, * additionally, rlDrawRenderBatchActive() could be called to force flushing of the batch * * Some resources are also loaded for convenience, here the complete list: @@ -21,7 +21,6 @@ * Internal buffer (and resources) must be manually unloaded calling rlglClose() * * CONFIGURATION: -* #define GRAPHICS_API_OPENGL_11_SOFTWARE * #define GRAPHICS_API_OPENGL_11 * #define GRAPHICS_API_OPENGL_21 * #define GRAPHICS_API_OPENGL_33 @@ -37,6 +36,10 @@ * If not defined, the library is in header only mode and can be included in other headers * or source files without problems. But only ONE file should hold the implementation * +* #define RLGL_RENDER_TEXTURES_HINT +* Enable framebuffer objects (fbo) support (enabled by default) +* Some GPUs could not support them despite the OpenGL version +* * #define RLGL_SHOW_GL_DETAILS_INFO * Show OpenGL extensions and capabilities detailed logs on init * @@ -53,8 +56,8 @@ * * #define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of internal Matrix stack * #define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported -* #define RL_CULL_DISTANCE_NEAR 0.05 // Default projection matrix near cull distance -* #define RL_CULL_DISTANCE_FAR 4000.0 // Default projection matrix far cull distance +* #define RL_CULL_DISTANCE_NEAR 0.01 // Default projection matrix near cull distance +* #define RL_CULL_DISTANCE_FAR 1000.0 // Default projection matrix far cull distance * * When loading a shader, the following vertex attributes and uniform * location names are tried to be set automatically: @@ -85,7 +88,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2014-2026 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) * * This software is provided "as-is", without any express or implied warranty. In no event * will the authors be held liable for any damages arising from the use of this software. @@ -113,11 +116,11 @@ // NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll // NOTE: visibility(default) attribute makes symbols "visible" when compiled with -fvisibility=hidden #if defined(_WIN32) && defined(BUILD_LIBTYPE_SHARED) - #define RLAPI __declspec(dllexport) // Building the library as a Win32 shared library (.dll) + #define RLAPI __declspec(dllexport) // We are building the library as a Win32 shared library (.dll) #elif defined(BUILD_LIBTYPE_SHARED) - #define RLAPI __attribute__((visibility("default"))) // Building the library as a Unix shared library (.so/.dylib) + #define RLAPI __attribute__((visibility("default"))) // We are building the library as a Unix shared library (.so/.dylib) #elif defined(_WIN32) && defined(USE_LIBTYPE_SHARED) - #define RLAPI __declspec(dllimport) // Using the library as a Win32 shared library (.dll) + #define RLAPI __declspec(dllimport) // We are using the library as a Win32 shared library (.dll) #endif // Function specifiers definition @@ -128,6 +131,7 @@ // Support TRACELOG macros #ifndef TRACELOG #define TRACELOG(level, ...) (void)0 + #define TRACELOGD(...) (void)0 #endif // Allow custom memory allocators @@ -145,8 +149,7 @@ #endif // Security check in case no GRAPHICS_API_OPENGL_* defined -#if !defined(GRAPHICS_API_OPENGL_11_SOFTWARE) && \ - !defined(GRAPHICS_API_OPENGL_11) && \ +#if !defined(GRAPHICS_API_OPENGL_11) && \ !defined(GRAPHICS_API_OPENGL_21) && \ !defined(GRAPHICS_API_OPENGL_33) && \ !defined(GRAPHICS_API_OPENGL_43) && \ @@ -156,7 +159,7 @@ #endif // Security check in case multiple GRAPHICS_API_OPENGL_* defined -#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_11_SOFTWARE) +#if defined(GRAPHICS_API_OPENGL_11) #if defined(GRAPHICS_API_OPENGL_21) #undef GRAPHICS_API_OPENGL_21 #endif @@ -171,11 +174,6 @@ #endif #endif -// Software implementation uses OpenGL 1.1 functionality -#if defined(GRAPHICS_API_OPENGL_11_SOFTWARE) - #define GRAPHICS_API_OPENGL_11 -#endif - // OpenGL 2.1 uses most of OpenGL 3.3 Core functionality // WARNING: Specific parts are checked with #if defines #if defined(GRAPHICS_API_OPENGL_21) @@ -192,6 +190,10 @@ #define GRAPHICS_API_OPENGL_ES2 #endif +// Support framebuffer objects by default +// NOTE: Some driver implementation do not support it, despite they should +#define RLGL_RENDER_TEXTURES_HINT + //---------------------------------------------------------------------------------- // Defines and Macros //---------------------------------------------------------------------------------- @@ -204,9 +206,9 @@ #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 8192 #endif #if defined(GRAPHICS_API_OPENGL_ES2) - // Reducing memory sizes for embedded systems (RPI and HTML5) + // We reduce memory sizes for embedded systems (RPI and HTML5) // NOTE: On HTML5 (emscripten) this is allocated on heap, - // by default heap is only 16MB!...just take care... + // by default it's only 16MB!...just take care... #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 2048 #endif #endif @@ -232,10 +234,10 @@ // Projection matrix culling #ifndef RL_CULL_DISTANCE_NEAR - #define RL_CULL_DISTANCE_NEAR 0.05 // Default near cull distance + #define RL_CULL_DISTANCE_NEAR 0.01 // Default near cull distance #endif #ifndef RL_CULL_DISTANCE_FAR - #define RL_CULL_DISTANCE_FAR 4000.0 // Default far cull distance + #define RL_CULL_DISTANCE_FAR 1000.0 // Default far cull distance #endif // Texture parameters (equivalent to OpenGL defines) @@ -353,9 +355,6 @@ #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS 8 #endif #endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_INSTANCE_TX - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_INSTANCE_TX 9 -#endif //---------------------------------------------------------------------------------- // Types and Structures Definition @@ -425,8 +424,7 @@ typedef struct rlRenderBatch { // OpenGL version typedef enum { - RL_OPENGL_11_SOFTWARE = 0, // Software rendering - RL_OPENGL_11, // OpenGL 1.1 + RL_OPENGL_11 = 1, // OpenGL 1.1 RL_OPENGL_21, // OpenGL 2.1 (GLSL 120) RL_OPENGL_33, // OpenGL 3.3 (GLSL 330) RL_OPENGL_43, // OpenGL 4.3 (using GLSL 330) @@ -643,8 +641,10 @@ RLAPI void rlEnableVertexBufferElement(unsigned int id); // Enable vertex buffer RLAPI void rlDisableVertexBufferElement(void); // Disable vertex buffer element (VBO element) RLAPI void rlEnableVertexAttribute(unsigned int index); // Enable vertex attribute index RLAPI void rlDisableVertexAttribute(unsigned int index); // Disable vertex attribute index +#if defined(GRAPHICS_API_OPENGL_11) RLAPI void rlEnableStatePointer(int vertexAttribType, void *buffer); // Enable attribute state pointer RLAPI void rlDisableStatePointer(int vertexAttribType); // Disable attribute state pointer +#endif // Textures state RLAPI void rlActiveTextureSlot(int slot); // Select and active a texture slot @@ -681,12 +681,9 @@ RLAPI void rlSetCullFace(int mode); // Set face culling mode RLAPI void rlEnableScissorTest(void); // Enable scissor test RLAPI void rlDisableScissorTest(void); // Disable scissor test RLAPI void rlScissor(int x, int y, int width, int height); // Scissor test -RLAPI void rlEnablePointMode(void); // Enable point mode -RLAPI void rlDisablePointMode(void); // Disable point mode -RLAPI void rlSetPointSize(float size); // Set the point drawing size -RLAPI float rlGetPointSize(void); // Get the point drawing size RLAPI void rlEnableWireMode(void); // Enable wire mode -RLAPI void rlDisableWireMode(void); // Disable wire mode +RLAPI void rlEnablePointMode(void); // Enable point mode +RLAPI void rlDisableWireMode(void); // Disable wire (and point) mode RLAPI void rlSetLineWidth(float width); // Set the line drawing width RLAPI float rlGetLineWidth(void); // Get the line drawing width RLAPI void rlEnableSmoothLines(void); // Enable line aliasing @@ -709,7 +706,6 @@ RLAPI void rlSetBlendFactorsSeparate(int glSrcRGB, int glDstRGB, int glSrcAlpha, RLAPI void rlglInit(int width, int height); // Initialize rlgl (buffers, shaders, textures, states) RLAPI void rlglClose(void); // De-initialize rlgl (buffers, shaders, textures) RLAPI void rlLoadExtensions(void *loader); // Load OpenGL extensions (loader function required) -RLAPI void *rlGetProcAddress(const char *procName); // Get OpenGL procedure address RLAPI int rlGetVersion(void); // Get current OpenGL version RLAPI void rlSetFramebufferWidth(int width); // Set current framebuffer width RLAPI int rlGetFramebufferWidth(void); // Get default framebuffer width @@ -767,17 +763,14 @@ RLAPI unsigned int rlLoadFramebuffer(void); // Loa RLAPI void rlFramebufferAttach(unsigned int fboId, unsigned int texId, int attachType, int texType, int mipLevel); // Attach texture/renderbuffer to a framebuffer RLAPI bool rlFramebufferComplete(unsigned int id); // Verify framebuffer is complete RLAPI void rlUnloadFramebuffer(unsigned int id); // Delete framebuffer from GPU -// WARNING: Copy and resize framebuffer functionality only defined for software backend -RLAPI void rlCopyFramebuffer(int x, int y, int width, int height, int format, void *pixels); // Copy framebuffer pixel data to internal buffer -RLAPI void rlResizeFramebuffer(int width, int height); // Resize internal framebuffer // Shaders management RLAPI unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode); // Load shader from code strings RLAPI unsigned int rlCompileShader(const char *shaderCode, int type); // Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER) RLAPI unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fShaderId); // Load custom shader program RLAPI void rlUnloadShaderProgram(unsigned int id); // Unload shader program -RLAPI int rlGetLocationUniform(unsigned int shaderId, const char *uniformName); // Get shader location uniform, requires shader program id -RLAPI int rlGetLocationAttrib(unsigned int shaderId, const char *attribName); // Get shader location attribute, requires shader program id +RLAPI int rlGetLocationUniform(unsigned int shaderId, const char *uniformName); // Get shader location uniform +RLAPI int rlGetLocationAttrib(unsigned int shaderId, const char *attribName); // Get shader location attribute RLAPI void rlSetUniform(int locIndex, const void *value, int uniformType, int count); // Set shader value uniform RLAPI void rlSetUniformMatrix(int locIndex, Matrix mat); // Set shader value matrix RLAPI void rlSetUniformMatrices(int locIndex, const Matrix *mat, int count); // Set shader value matrices @@ -836,32 +829,24 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad #endif #if defined(GRAPHICS_API_OPENGL_11) - #if defined(GRAPHICS_API_OPENGL_11_SOFTWARE) - #define RLSW_IMPLEMENTATION - #define SW_MALLOC(sz) RL_MALLOC(sz) - #define SW_REALLOC(ptr, newSz) RL_REALLOC(ptr, newSz) - #define SW_FREE(ptr) RL_FREE(ptr) - #include "external/rlsw.h" // OpenGL 1.1 software implementation + #if defined(__APPLE__) + #include // OpenGL 1.1 library for OSX + #include // OpenGL extensions library #else - #if defined(__APPLE__) - #include // OpenGL 1.1 library for OSX - #include // OpenGL extensions library - #else - // APIENTRY for OpenGL function pointer declarations is required - #if !defined(APIENTRY) - #if defined(_WIN32) - #define APIENTRY __stdcall - #else - #define APIENTRY - #endif + // APIENTRY for OpenGL function pointer declarations is required + #if !defined(APIENTRY) + #if defined(_WIN32) + #define APIENTRY __stdcall + #else + #define APIENTRY #endif - // WINGDIAPI definition. Some Windows OpenGL headers need it - #if !defined(WINGDIAPI) && defined(_WIN32) - #define WINGDIAPI __declspec(dllimport) - #endif - - #include // OpenGL 1.1 library #endif + // WINGDIAPI definition. Some Windows OpenGL headers need it + #if !defined(WINGDIAPI) && defined(_WIN32) + #define WINGDIAPI __declspec(dllimport) + #endif + + #include // OpenGL 1.1 library #endif #endif @@ -880,7 +865,6 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad #elif defined(GRAPHICS_API_OPENGL_ES2) // NOTE: OpenGL ES 2.0 can be enabled on Desktop platforms, // in that case, functions are loaded from a custom glad for OpenGL ES 2.0 - // TODO: OpenGL ES 2.0 support shouldn't be platform-dependant, neither require GLAD #if defined(PLATFORM_DESKTOP_GLFW) || defined(PLATFORM_DESKTOP_SDL) #define GLAD_GLES2_IMPLEMENTATION #include "external/glad_gles2.h" @@ -893,7 +877,6 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad // It seems OpenGL ES 2.0 instancing entry points are not defined on Raspberry Pi // provided headers (despite being defined in official Khronos GLES2 headers) - // TODO: Avoid raylib platform-dependant code on rlgl, it should be a completely portable library #if defined(PLATFORM_DRM) typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); @@ -901,7 +884,7 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad #endif #endif -#include // Required for: calloc(), free() +#include // Required for: malloc(), free() #include // Required for: strcmp(), strlen() [Used in rlglInit(), on extensions loading] #include // Required for: sqrtf(), sinf(), cosf(), floor(), log() @@ -1015,9 +998,6 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad #ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS "vertexBoneWeights" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS #endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_INSTANCE_TX - #define RL_DEFAULT_SHADER_ATTRIB_NAME_INSTANCE_TX "instanceTransform" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_INSTANCE_TX -#endif #ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_MVP #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix @@ -1051,18 +1031,13 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad #endif //---------------------------------------------------------------------------------- -// Module Types and Structures Definition +// Types and Structures Definition //---------------------------------------------------------------------------------- #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - -typedef void *(*rlglLoadProc)(const char *name); // OpenGL extension functions loader signature (same as GLADloadproc) - typedef struct rlglData { rlRenderBatch *currentBatch; // Current render batch rlRenderBatch defaultBatch; // Default internal render batch - rlglLoadProc loader; // OpenGL function loader - struct { int vertexCounter; // Current active render batch vertex counter (generic, used for all batches) float texcoordx, texcoordy; // Current active texture coordinate (added on glVertex*()) @@ -1078,7 +1053,6 @@ typedef struct rlglData { Matrix stack[RL_MAX_MATRIX_STACK_SIZE];// Matrix stack for push/pop int stackCounter; // Matrix stack counter - unsigned int currentTextureId; // Current texture id to be used on glBegin unsigned int defaultTextureId; // Default texture used on shapes/poly drawing (required by shader) unsigned int activeTextureId[RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS]; // Active texture ids to be enabled on batch drawing (0 active by default) unsigned int defaultVShaderId; // Default vertex shader id (used by default shader program) @@ -1133,6 +1107,8 @@ typedef struct rlglData { } ExtSupported; // Extensions supported flags } rlglData; +typedef void *(*rlglLoadProc)(const char *name); // OpenGL extension functions loader signature (same as GLADloadproc) + #endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 //---------------------------------------------------------------------------------- @@ -1144,7 +1120,6 @@ static double rlCullDistanceFar = RL_CULL_DISTANCE_FAR; #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) static rlglData RLGL = { 0 }; #endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 -static bool isGpuReady = false; #if defined(GRAPHICS_API_OPENGL_ES2) && !defined(GRAPHICS_API_OPENGL_ES3) // NOTE: VAO functionality is exposed through extensions (OES) @@ -1159,7 +1134,7 @@ static PFNGLVERTEXATTRIBDIVISOREXTPROC glVertexAttribDivisor = NULL; #endif //---------------------------------------------------------------------------------- -// Module Functions Declaration +// Module specific Functions Declaration //---------------------------------------------------------------------------------- #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) static void rlLoadShaderDefault(void); // Load default shader @@ -1171,16 +1146,16 @@ static const char *rlGetCompressedFormatName(int format); // Get compressed form static int rlGetPixelDataSize(int width, int height, int format); // Get pixel data size in bytes (image or texture) -static Matrix rlMatrixIdentity(void); // Get identity matrix -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) // Auxiliar matrix math functions -typedef struct rl_float16 { float v[16]; } rl_float16; +typedef struct rl_float16 { + float v[16]; +} rl_float16; static rl_float16 rlMatrixToFloatV(Matrix mat); // Get float array of matrix data #define rlMatrixToFloat(mat) (rlMatrixToFloatV(mat).v) // Get float vector for Matrix +static Matrix rlMatrixIdentity(void); // Get identity matrix static Matrix rlMatrixMultiply(Matrix left, Matrix right); // Multiply two matrices static Matrix rlMatrixTranspose(Matrix mat); // Transposes provided matrix static Matrix rlMatrixInvert(Matrix mat); // Invert provided matrix -#endif //---------------------------------------------------------------------------------- // Module Functions Definition - Matrix operations @@ -1244,7 +1219,7 @@ void rlPushMatrix(void) RLGL.State.stackCounter++; } -// Pop latest inserted matrix from RLGL.State.stack +// Pop lattest inserted matrix from RLGL.State.stack void rlPopMatrix(void) { if (RLGL.State.stackCounter > 0) @@ -1270,14 +1245,14 @@ void rlLoadIdentity(void) // Multiply the current matrix by a translation matrix void rlTranslatef(float x, float y, float z) { - Matrix matTranslation = rlMatrixIdentity(); - - // Set translation component of matrix - matTranslation.m12 = x; - matTranslation.m13 = y; - matTranslation.m14 = z; + Matrix matTranslation = { + 1.0f, 0.0f, 0.0f, x, + 0.0f, 1.0f, 0.0f, y, + 0.0f, 0.0f, 1.0f, z, + 0.0f, 0.0f, 0.0f, 1.0f + }; - // NOTE: Transposing matrix by multiplication order + // NOTE: We transpose matrix with multiplication order *RLGL.State.currentMatrix = rlMatrixMultiply(matTranslation, *RLGL.State.currentMatrix); } @@ -1322,21 +1297,21 @@ void rlRotatef(float angle, float x, float y, float z) matRotation.m14 = 0.0f; matRotation.m15 = 1.0f; - // NOTE: Transposing matrix by multiplication order + // NOTE: We transpose matrix with multiplication order *RLGL.State.currentMatrix = rlMatrixMultiply(matRotation, *RLGL.State.currentMatrix); } // Multiply the current matrix by a scaling matrix void rlScalef(float x, float y, float z) { - Matrix matScale = rlMatrixIdentity(); - - // Set scale component of matrix - matScale.m0 = x; - matScale.m5 = y; - matScale.m10 = z; + Matrix matScale = { + x, 0.0f, 0.0f, 0.0f, + 0.0f, y, 0.0f, 0.0f, + 0.0f, 0.0f, z, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + }; - // NOTE: Transposing matrix by multiplication order + // NOTE: We transpose matrix with multiplication order *RLGL.State.currentMatrix = rlMatrixMultiply(matScale, *RLGL.State.currentMatrix); } @@ -1344,7 +1319,6 @@ void rlScalef(float x, float y, float z) void rlMultMatrixf(const float *matf) { // Matrix creation from array - // Conversion from column-major to row-major memory order Matrix mat = { matf[0], matf[4], matf[8], matf[12], matf[1], matf[5], matf[9], matf[13], matf[2], matf[6], matf[10], matf[14], @@ -1418,6 +1392,7 @@ void rlOrtho(double left, double right, double bottom, double top, double znear, #endif // Set the viewport area (transformation from normalized device coordinates to window coordinates) +// NOTE: We store current viewport dimensions void rlViewport(int x, int y, int width, int height) { glViewport(x, y, width, height); @@ -1498,8 +1473,8 @@ void rlBegin(int mode) if (RLGL.currentBatch->drawCounter >= RL_DEFAULT_BATCH_DRAWCALLS) rlDrawRenderBatch(RLGL.currentBatch); RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode = mode; - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = RLGL.State.currentTextureId; - RLGL.State.currentTextureId = RLGL.State.defaultTextureId; + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount = 0; + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = RLGL.State.defaultTextureId; } } @@ -1528,9 +1503,9 @@ void rlVertex3f(float x, float y, float z) tz = RLGL.State.transform.m2*x + RLGL.State.transform.m6*y + RLGL.State.transform.m10*z + RLGL.State.transform.m14; } - // WARNING: Be careful with primitives breaking when launching a new batch! + // WARNING: We can't break primitives when launching a new batch // RL_LINES comes in pairs, RL_TRIANGLES come in groups of 3 vertices and RL_QUADS come in groups of 4 vertices - // Checking current draw.mode when a new vertex is required and finish the batch only if the draw.mode draw.vertexCount is %2, %3 or %4 + // We must check current draw.mode when a new vertex is required and finish the batch only if the draw.mode draw.vertexCount is %2, %3 or %4 if (RLGL.State.vertexCounter > (RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4 - 4)) { if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) && @@ -1538,7 +1513,7 @@ void rlVertex3f(float x, float y, float z) { // Reached the maximum number of vertices for RL_LINES drawing // Launch a draw call but keep current state for next vertices comming - // NOTE: Adding +1 vertex to the check for some safety + // NOTE: We add +1 vertex to the check for security rlCheckRenderBatchLimit(2 + 1); } else if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) && @@ -1658,13 +1633,12 @@ void rlSetTexture(unsigned int id) #if defined(GRAPHICS_API_OPENGL_11) rlDisableTexture(); #else - // NOTE: If quads batch limit is reached, force a draw call and next batch starts + // NOTE: If quads batch limit is reached, we force a draw call and next batch starts if (RLGL.State.vertexCounter >= RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4) { rlDrawRenderBatch(RLGL.currentBatch); } - RLGL.State.currentTextureId = RLGL.State.defaultTextureId; #endif } else @@ -1672,7 +1646,6 @@ void rlSetTexture(unsigned int id) #if defined(GRAPHICS_API_OPENGL_11) rlEnableTexture(id); #else - RLGL.State.currentTextureId = id; if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId != id) { if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount > 0) @@ -1691,9 +1664,6 @@ void rlSetTexture(unsigned int id) RLGL.State.vertexCounter += RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment; RLGL.currentBatch->drawCounter++; - - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode = RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 2].mode; - } } @@ -1753,6 +1723,11 @@ void rlTextureParameters(unsigned int id, int param, int value) { glBindTexture(GL_TEXTURE_2D, id); +#if !defined(GRAPHICS_API_OPENGL_11) + // Reset anisotropy filter, in case it was set + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0f); +#endif + switch (param) { case RL_TEXTURE_WRAP_S: @@ -1766,15 +1741,13 @@ void rlTextureParameters(unsigned int id, int param, int value) #endif } else glTexParameteri(GL_TEXTURE_2D, param, value); + } break; case RL_TEXTURE_MAG_FILTER: case RL_TEXTURE_MIN_FILTER: glTexParameteri(GL_TEXTURE_2D, param, value); break; case RL_TEXTURE_FILTER_ANISOTROPIC: { #if !defined(GRAPHICS_API_OPENGL_11) - // Reset anisotropy filter, in case it was set - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0f); - if (value <= RLGL.ExtSupported.maxAnisotropyLevel) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); else if (RLGL.ExtSupported.maxAnisotropyLevel > 0.0f) { @@ -1813,6 +1786,7 @@ void rlCubemapParameters(unsigned int id, int param, int value) else TRACELOG(RL_LOG_WARNING, "GL: Clamp mirror wrap mode not supported (GL_MIRROR_CLAMP_EXT)"); } else glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); + } break; case RL_TEXTURE_MAG_FILTER: case RL_TEXTURE_MIN_FILTER: glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); break; @@ -1855,7 +1829,7 @@ void rlDisableShader(void) // Enable rendering to texture (fbo) void rlEnableFramebuffer(unsigned int id) { -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) glBindFramebuffer(GL_FRAMEBUFFER, id); #endif } @@ -1864,7 +1838,7 @@ void rlEnableFramebuffer(unsigned int id) unsigned int rlGetActiveFramebuffer(void) { GLint fboId = 0; -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT) glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &fboId); #endif return fboId; @@ -1873,7 +1847,7 @@ unsigned int rlGetActiveFramebuffer(void) // Disable rendering to texture void rlDisableFramebuffer(void) { -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) glBindFramebuffer(GL_FRAMEBUFFER, 0); #endif } @@ -1881,7 +1855,7 @@ void rlDisableFramebuffer(void) // Blit active framebuffer to main framebuffer void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask) { -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT) glBlitFramebuffer(srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, bufferMask, GL_NEAREST); #endif } @@ -1889,7 +1863,7 @@ void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX // Bind framebuffer object (fbo) void rlBindFramebuffer(unsigned int target, unsigned int framebuffer) { -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) glBindFramebuffer(target, framebuffer); #endif } @@ -1898,7 +1872,7 @@ void rlBindFramebuffer(unsigned int target, unsigned int framebuffer) // NOTE: One color buffer is always active by default void rlActiveDrawBuffers(int count) { -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) +#if ((defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT)) // NOTE: Maximum number of draw buffers supported is implementation dependant, // it can be queried with glGet*() but it must be at least 8 //GLint maxDrawBuffers = 0; @@ -1906,10 +1880,20 @@ void rlActiveDrawBuffers(int count) if (count > 0) { - if (count > 8) TRACELOG(RL_LOG_WARNING, "GL: Max color buffers limited to 8"); + if (count > 8) TRACELOG(LOG_WARNING, "GL: Max color buffers limited to 8"); else { unsigned int buffers[8] = { +#if defined(GRAPHICS_API_OPENGL_ES3) + GL_COLOR_ATTACHMENT0_EXT, + GL_COLOR_ATTACHMENT1_EXT, + GL_COLOR_ATTACHMENT2_EXT, + GL_COLOR_ATTACHMENT3_EXT, + GL_COLOR_ATTACHMENT4_EXT, + GL_COLOR_ATTACHMENT5_EXT, + GL_COLOR_ATTACHMENT6_EXT, + GL_COLOR_ATTACHMENT7_EXT, +#else GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2, @@ -1918,12 +1902,17 @@ void rlActiveDrawBuffers(int count) GL_COLOR_ATTACHMENT5, GL_COLOR_ATTACHMENT6, GL_COLOR_ATTACHMENT7, +#endif }; +#if defined(GRAPHICS_API_OPENGL_ES3) + glDrawBuffersEXT(count, buffers); +#else glDrawBuffers(count, buffers); +#endif } } - else TRACELOG(RL_LOG_WARNING, "GL: One color buffer active by default"); + else TRACELOG(LOG_WARNING, "GL: One color buffer active by default"); #endif } @@ -1987,15 +1976,6 @@ void rlEnableWireMode(void) #endif } -// Disable wire mode -void rlDisableWireMode(void) -{ -#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) - // NOTE: glPolygonMode() not available on OpenGL ES - glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); -#endif -} - // Enable point mode void rlEnablePointMode(void) { @@ -2006,8 +1986,8 @@ void rlEnablePointMode(void) #endif } -// Disable point mode -void rlDisablePointMode(void) +// Disable wire mode +void rlDisableWireMode(void) { #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) // NOTE: glPolygonMode() not available on OpenGL ES @@ -2026,25 +2006,6 @@ float rlGetLineWidth(void) return width; } -// Set the point drawing size -void rlSetPointSize(float size) -{ -#if defined(GRAPHICS_API_OPENGL_11) - glPointSize(size); -#endif -} - -// Get the point drawing size -float rlGetPointSize(void) -{ - float size = 1; -#if defined(GRAPHICS_API_OPENGL_11) - glGetFloatv(GL_POINT_SIZE, &size); -#endif - return size; - -} - // Enable line aliasing void rlEnableSmoothLines(void) { @@ -2150,12 +2111,14 @@ void rlSetBlendMode(int mode) { // NOTE: Using GL blend src/dst factors and GL equation configured with rlSetBlendFactors() glBlendFunc(RLGL.State.glBlendSrcFactor, RLGL.State.glBlendDstFactor); glBlendEquation(RLGL.State.glBlendEquation); + } break; case RL_BLEND_CUSTOM_SEPARATE: { // NOTE: Using GL blend src/dst factors and GL equation configured with rlSetBlendFactorsSeparate() glBlendFuncSeparate(RLGL.State.glBlendSrcFactorRGB, RLGL.State.glBlendDestFactorRGB, RLGL.State.glBlendSrcFactorAlpha, RLGL.State.glBlendDestFactorAlpha); glBlendEquationSeparate(RLGL.State.glBlendEquationRGB, RLGL.State.glBlendEquationAlpha); + } break; default: break; } @@ -2259,10 +2222,10 @@ static void GLAPIENTRY rlDebugMessageCallback(GLenum source, GLenum type, GLuint default: break; } - TRACELOG(RL_LOG_WARNING, "GL: OpenGL debug message: %s", message); - TRACELOG(RL_LOG_WARNING, " > Type: %s", msgType); - TRACELOG(RL_LOG_WARNING, " > Source = %s", msgSource); - TRACELOG(RL_LOG_WARNING, " > Severity = %s", msgSeverity); + TRACELOG(LOG_WARNING, "GL: OpenGL debug message: %s", message); + TRACELOG(LOG_WARNING, " > Type: %s", msgType); + TRACELOG(LOG_WARNING, " > Source = %s", msgSource); + TRACELOG(LOG_WARNING, " > Severity = %s", msgSeverity); } #endif @@ -2273,8 +2236,6 @@ static void GLAPIENTRY rlDebugMessageCallback(GLenum source, GLenum type, GLuint // Initialize rlgl: OpenGL extensions, default buffers/shaders/textures, OpenGL states void rlglInit(int width, int height) { - isGpuReady = true; - // Enable OpenGL debug context if required #if defined(RLGL_ENABLE_OPENGL_DEBUG_CONTEXT) && defined(GRAPHICS_API_OPENGL_43) if ((glDebugMessageCallback != NULL) && (glDebugMessageControl != NULL)) @@ -2294,7 +2255,6 @@ void rlglInit(int width, int height) // Init default white texture unsigned char pixels[4] = { 255, 255, 255, 255 }; // 1 pixel RGBA (4 bytes) RLGL.State.defaultTextureId = rlLoadTexture(pixels, 1, 1, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, 1); - RLGL.State.currentTextureId = RLGL.State.defaultTextureId; if (RLGL.State.defaultTextureId != 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Default texture loaded successfully", RLGL.State.defaultTextureId); else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load default texture"); @@ -2322,16 +2282,6 @@ void rlglInit(int width, int height) RLGL.State.currentMatrix = &RLGL.State.modelview; #endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 -#if defined(GRAPHICS_API_OPENGL_11_SOFTWARE) - // Initialize software renderer backend - int result = swInit(width, height); - if (result == 0) - { - TRACELOG(RL_LOG_ERROR, "RLSW: Software renderer initialization failed!"); - exit(-1); - } -#endif - // Initialize OpenGL default states //---------------------------------------------------------- // Init state: Depth test @@ -2348,28 +2298,30 @@ void rlglInit(int width, int height) glFrontFace(GL_CCW); // Front face are defined counter clockwise (default) glEnable(GL_CULL_FACE); // Enable backface culling + // Init state: Cubemap seamless +#if defined(GRAPHICS_API_OPENGL_33) + glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS); // Seamless cubemaps (not supported on OpenGL ES 2.0) +#endif + #if defined(GRAPHICS_API_OPENGL_11) // Init state: Color hints (deprecated in OpenGL 3.0+) glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Improve quality of color and texture coordinate interpolation glShadeModel(GL_SMOOTH); // Smooth shading between vertex (vertex colors interpolation) #endif -#if defined(GRAPHICS_API_OPENGL_33) - // Init state: Cubemap seamless - glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS); // Seamless cubemaps (not supported on OpenGL ES 2.0) -#endif + #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) // Store screen size into global variables RLGL.State.framebufferWidth = width; RLGL.State.framebufferHeight = height; + + TRACELOG(RL_LOG_INFO, "RLGL: Default OpenGL state initialized successfully"); + //---------------------------------------------------------- #endif // Init state: Color/Depth buffers clear glClearColor(0.0f, 0.0f, 0.0f, 1.0f); // Set clear color (black) glClearDepth(1.0f); // Set clear depth value (default) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear color and depth buffers (depth buffer required for 3D) - - TRACELOG(RL_LOG_INFO, "RLGL: Default OpenGL state initialized successfully"); - //---------------------------------------------------------- } // Vertex Buffer Object deinitialization (memory free) @@ -2378,16 +2330,11 @@ void rlglClose(void) #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) rlUnloadRenderBatch(RLGL.defaultBatch); - rlUnloadShaderDefault(); // Unload default shader + rlUnloadShaderDefault(); // Unload default shader glDeleteTextures(1, &RLGL.State.defaultTextureId); // Unload default texture TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Default texture unloaded successfully", RLGL.State.defaultTextureId); #endif - -#if defined(GRAPHICS_API_OPENGL_11_SOFTWARE) - swClose(); // Unload sofware renderer resources -#endif - isGpuReady = false; } // Load OpenGL extensions @@ -2481,16 +2428,16 @@ void rlLoadExtensions(void *loader) // Get supported extensions list GLint numExt = 0; - const char **extList = (const char **)RL_CALLOC(512, sizeof(const char *)); // Allocate 512 strings pointers (2 KB) + const char **extList = RL_MALLOC(512*sizeof(const char *)); // Allocate 512 strings pointers (2 KB) const char *extensions = (const char *)glGetString(GL_EXTENSIONS); // One big const string - // NOTE: String duplication rquired because glGetString() returns a const string - int extensionsLength = (int)strlen(extensions); // Get extensions string size in bytes - char *extensionsDup = (char *)RL_CALLOC(extensionsLength + 1, sizeof(char)); // Allocate space for copy with additional EOL byte - strncpy(extensionsDup, extensions, extensionsLength); + // NOTE: We have to duplicate string because glGetString() returns a const string + int size = strlen(extensions) + 1; // Get extensions string size in bytes + char *extensionsDup = (char *)RL_CALLOC(size, sizeof(char)); + strcpy(extensionsDup, extensions); extList[numExt] = extensionsDup; - for (int i = 0; i < extensionsLength; i++) + for (int i = 0; i < size; i++) { if (extensionsDup[i] == ' ') { @@ -2525,7 +2472,7 @@ void rlLoadExtensions(void *loader) } // Check instanced rendering support - if (strstr(extList[i], (const char *)"instanced_arrays") != NULL) // Broad check for instanced_arrays + if (strstr(extList[i], (const char*)"instanced_arrays") != NULL) // Broad check for instanced_arrays { // Specific check if (strcmp(extList[i], (const char *)"GL_ANGLE_instanced_arrays") == 0) // ANGLE @@ -2558,7 +2505,7 @@ void rlLoadExtensions(void *loader) glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedEXT"); glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedEXT"); } - else if (strcmp(extList[i], (const char *)"GL_NV_draw_instanced") == 0) + else if (strcmp(extList[i], (const char*)"GL_NV_draw_instanced") == 0) { glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedNV"); glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedNV"); @@ -2578,11 +2525,11 @@ void rlLoadExtensions(void *loader) // Check depth texture support if (strcmp(extList[i], (const char *)"GL_OES_depth_texture") == 0) RLGL.ExtSupported.texDepth = true; - if (strcmp(extList[i], (const char *)"GL_WEBGL_depth_texture") == 0) RLGL.ExtSupported.texDepthWebGL = true; // WebGL requires unsized internal format + if (strcmp(extList[i], (const char *)"GL_WEBGL_depth_texture") == 0) RLGL.ExtSupported.texDepthWebGL = true; // WebGL requires unsized internal format if (RLGL.ExtSupported.texDepthWebGL) RLGL.ExtSupported.texDepth = true; - if (strcmp(extList[i], (const char *)"GL_OES_depth24") == 0) RLGL.ExtSupported.maxDepthBits = 24; // Not available on WebGL - if (strcmp(extList[i], (const char *)"GL_OES_depth32") == 0) RLGL.ExtSupported.maxDepthBits = 32; // Not available on WebGL + if (strcmp(extList[i], (const char *)"GL_OES_depth24") == 0) RLGL.ExtSupported.maxDepthBits = 24; // Not available on WebGL + if (strcmp(extList[i], (const char *)"GL_OES_depth32") == 0) RLGL.ExtSupported.maxDepthBits = 32; // Not available on WebGL // Check texture compression support: DXT if ((strcmp(extList[i], (const char *)"GL_EXT_texture_compression_s3tc") == 0) || @@ -2624,8 +2571,6 @@ void rlLoadExtensions(void *loader) TRACELOG(RL_LOG_INFO, " > GLSL: %s", glGetString(GL_SHADING_LANGUAGE_VERSION)); #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - RLGL.loader = (rlglLoadProc)loader; - // NOTE: Anisotropy levels capability is an extension #ifndef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF @@ -2683,24 +2628,11 @@ void rlLoadExtensions(void *loader) #endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 } -// Get OpenGL procedure address -void *rlGetProcAddress(const char *procName) -{ - void *func = NULL; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - func = RLGL.loader(procName); -#endif - return func; -} - // Get current OpenGL version int rlGetVersion(void) { int glVersion = 0; - -#if defined(GRAPHICS_API_OPENGL_11_SOFTWARE) - glVersion = RL_OPENGL_11_SOFTWARE; -#elif defined(GRAPHICS_API_OPENGL_11) +#if defined(GRAPHICS_API_OPENGL_11) glVersion = RL_OPENGL_11; #endif #if defined(GRAPHICS_API_OPENGL_21) @@ -2792,26 +2724,25 @@ int *rlGetShaderLocsDefault(void) rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements) { rlRenderBatch batch = { 0 }; - if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return batch; } #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) // Initialize CPU (RAM) vertex buffers (position, texcoord, color data and indexes) //-------------------------------------------------------------------------------------------- - batch.vertexBuffer = (rlVertexBuffer *)RL_CALLOC(numBuffers, sizeof(rlVertexBuffer)); + batch.vertexBuffer = (rlVertexBuffer *)RL_MALLOC(numBuffers*sizeof(rlVertexBuffer)); for (int i = 0; i < numBuffers; i++) { batch.vertexBuffer[i].elementCount = bufferElements; - batch.vertexBuffer[i].vertices = (float *)RL_CALLOC(bufferElements*3*4, sizeof(float)); // 3 float by vertex, 4 vertex by quad - batch.vertexBuffer[i].texcoords = (float *)RL_CALLOC(bufferElements*2*4, sizeof(float)); // 2 float by texcoord, 4 texcoord by quad - batch.vertexBuffer[i].normals = (float *)RL_CALLOC(bufferElements*3*4, sizeof(float)); // 3 float by vertex, 4 vertex by quad - batch.vertexBuffer[i].colors = (unsigned char *)RL_CALLOC(bufferElements*4*4, sizeof(unsigned char)); // 4 float by color, 4 colors by quad + batch.vertexBuffer[i].vertices = (float *)RL_MALLOC(bufferElements*3*4*sizeof(float)); // 3 float by vertex, 4 vertex by quad + batch.vertexBuffer[i].texcoords = (float *)RL_MALLOC(bufferElements*2*4*sizeof(float)); // 2 float by texcoord, 4 texcoord by quad + batch.vertexBuffer[i].normals = (float *)RL_MALLOC(bufferElements*3*4*sizeof(float)); // 3 float by vertex, 4 vertex by quad + batch.vertexBuffer[i].colors = (unsigned char *)RL_MALLOC(bufferElements*4*4*sizeof(unsigned char)); // 4 float by color, 4 colors by quad #if defined(GRAPHICS_API_OPENGL_33) - batch.vertexBuffer[i].indices = (unsigned int *)RL_CALLOC(bufferElements*6, sizeof(unsigned int)); // 6 int by quad (indices) + batch.vertexBuffer[i].indices = (unsigned int *)RL_MALLOC(bufferElements*6*sizeof(unsigned int)); // 6 int by quad (indices) #endif #if defined(GRAPHICS_API_OPENGL_ES2) - batch.vertexBuffer[i].indices = (unsigned short *)RL_CALLOC(bufferElements*6, sizeof(unsigned short)); // 6 int by quad (indices) + batch.vertexBuffer[i].indices = (unsigned short *)RL_MALLOC(bufferElements*6*sizeof(unsigned short)); // 6 int by quad (indices) #endif for (int j = 0; j < (3*4*bufferElements); j++) batch.vertexBuffer[i].vertices[j] = 0.0f; @@ -2899,7 +2830,7 @@ rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements) // Init draw calls tracking system //-------------------------------------------------------------------------------------------- - batch.draws = (rlDrawCall *)RL_CALLOC(RL_DEFAULT_BATCH_DRAWCALLS, sizeof(rlDrawCall)); + batch.draws = (rlDrawCall *)RL_MALLOC(RL_DEFAULT_BATCH_DRAWCALLS*sizeof(rlDrawCall)); for (int i = 0; i < RL_DEFAULT_BATCH_DRAWCALLS; i++) { @@ -2915,7 +2846,7 @@ rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements) batch.bufferCount = numBuffers; // Record buffer count batch.drawCounter = 1; // Reset draws counter - batch.currentDepth = -1.0f; // Reset depth value + batch.currentDepth = -1.0f; // Reset depth value //-------------------------------------------------------------------------------------------- #endif @@ -2969,20 +2900,18 @@ void rlUnloadRenderBatch(rlRenderBatch batch) } // Draw render batch -// NOTE: Batch is reseted and current buffer is updated (for multi-buffer config) +// NOTE: We require a pointer to reset batch and increase current buffer (multi-buffer) void rlDrawRenderBatch(rlRenderBatch *batch) { #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) // Update batch vertex buffers //------------------------------------------------------------------------------------------------------------ // NOTE: If there is not vertex data, buffers doesn't need to be updated (vertexCount > 0) + // TODO: If no data changed on the CPU arrays --> No need to re-update GPU arrays (use a change detector flag?) if (RLGL.State.vertexCounter > 0) { // Activate elements VAO if (RLGL.ExtSupported.vao) glBindVertexArray(batch->vertexBuffer[batch->currentBuffer].vaoId); - - // TODO: If no data changed on the CPU arrays there is no need to re-upload data to GPU, - // a flag can be used to detect changes but it would imply keeping a copy buffer and memcmp() both, does it worth it? // Vertex positions buffer glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[0]); @@ -3006,17 +2935,18 @@ void rlDrawRenderBatch(rlRenderBatch *batch) // NOTE: glMapBuffer() causes sync issue // If GPU is working with this buffer, glMapBuffer() will wait(stall) until GPU to finish its job - // To avoid waiting (idle), glBufferData() can bee called first with NULL pointer before glMapBuffer() - // Doing that, the previous data in PBO will be discarded and glMapBuffer() returns a new + // To avoid waiting (idle), you can call first glBufferData() with NULL pointer before glMapBuffer() + // If you do that, the previous data in PBO will be discarded and glMapBuffer() returns a new // allocated pointer immediately even if GPU is still working with the previous data // Another option: map the buffer object into client's memory - //batch->vertexBuffer[batch->currentBuffer].vertices = (float *)glMapBuffer(GL_ARRAY_BUFFER, GL_READ_WRITE); - //if (batch->vertexBuffer[batch->currentBuffer].vertices) - //{ - // Update vertex data - //} - //glUnmapBuffer(GL_ARRAY_BUFFER); + // Probably this code could be moved somewhere else... + // batch->vertexBuffer[batch->currentBuffer].vertices = (float *)glMapBuffer(GL_ARRAY_BUFFER, GL_READ_WRITE); + // if (batch->vertexBuffer[batch->currentBuffer].vertices) + // { + // Update vertex data + // } + // glUnmapBuffer(GL_ARRAY_BUFFER); // Unbind the current VAO if (RLGL.ExtSupported.vao) glBindVertexArray(0); @@ -3124,14 +3054,14 @@ void rlDrawRenderBatch(rlRenderBatch *batch) for (int i = 0, vertexOffset = 0; i < batch->drawCounter; i++) { - // Bind current draw call texture, activated as GL_TEXTURE0 and bound to sampler2D texture0 by default + // Bind current draw call texture, activated as GL_TEXTURE0 and Bound to sampler2D texture0 by default glBindTexture(GL_TEXTURE_2D, batch->draws[i].textureId); if ((batch->draws[i].mode == RL_LINES) || (batch->draws[i].mode == RL_TRIANGLES)) glDrawArrays(batch->draws[i].mode, vertexOffset, batch->draws[i].vertexCount); else { #if defined(GRAPHICS_API_OPENGL_33) - // The number of indices to be processed needs to be defined: elementCount*6 + // We need to define the number of indices to be processed: elementCount*6 // NOTE: The final parameter tells the GPU the offset in bytes from the // start of the index buffer to the location of the first index to process glDrawElements(GL_TRIANGLES, batch->draws[i].vertexCount/4*6, GL_UNSIGNED_INT, (GLvoid *)(vertexOffset/4*6*sizeof(GLuint))); @@ -3232,7 +3162,7 @@ bool rlCheckRenderBatchLimit(int vCount) rlDrawRenderBatch(RLGL.currentBatch); // NOTE: Stereo rendering is checked inside - // Restore state of last batch so new vertices can be added + // Restore state of last batch so we can continue adding vertices RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode = currentMode; RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = currentTexture; } @@ -3247,7 +3177,6 @@ bool rlCheckRenderBatchLimit(int vCount) unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipmapCount) { unsigned int id = 0; - if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return id; } glBindTexture(GL_TEXTURE_2D, 0); // Free any old binding @@ -3301,7 +3230,6 @@ unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipWidth = width; int mipHeight = height; int mipOffset = 0; // Mipmap data offset, only used for tracelog - (void)mipOffset; // Used to avoid gcc warnings about unused variable // NOTE: Added pointer math separately from function to avoid UBSAN complaining unsigned char *dataPtr = NULL; @@ -3315,7 +3243,7 @@ unsigned int rlLoadTexture(const void *data, int width, int height, int format, unsigned int glInternalFormat, glFormat, glType; rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); - TRACELOG(RL_LOG_DEBUG, "TEXTURE: Load mipmap level %i (%i x %i), size: %i, offset: %i", i, mipWidth, mipHeight, mipSize, mipOffset); + TRACELOGD("TEXTURE: Load mipmap level %i (%i x %i), size: %i, offset: %i", i, mipWidth, mipHeight, mipSize, mipOffset); if (glInternalFormat != 0) { @@ -3344,8 +3272,8 @@ unsigned int rlLoadTexture(const void *data, int width, int height, int format, mipWidth /= 2; mipHeight /= 2; - mipOffset += mipSize; // Increment offset position to next mipmap - if (data != NULL) dataPtr += mipSize; // Increment data pointer to next mipmap + mipOffset += mipSize; // Increment offset position to next mipmap + if (data != NULL) dataPtr += mipSize; // Increment data pointer to next mipmap // Security check for NPOT textures if (mipWidth < 1) mipWidth = 1; @@ -3379,22 +3307,13 @@ unsigned int rlLoadTexture(const void *data, int width, int height, int format, #if defined(GRAPHICS_API_OPENGL_33) if (mipmapCount > 1) { - // Activate trilinear filtering if mipmaps are available + // Activate Trilinear filtering if mipmaps are available glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); - - // Define the maximum number of mipmap levels to be used, 0 is base texture size - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 0); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, mipmapCount - 1); - - // Check if the loaded texture with mipmaps is complete, - // uncomplete textures will draw in black if mipmap filtering is required - //GLint complete = 0; - //glGetTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_IMMUTABLE_FORMAT, &complete); } #endif - // At this point texture is loaded in GPU and texture parameters configured + // At this point we have the texture loaded in GPU and texture parameters configured // NOTE: If mipmaps were not in data, they are not generated automatically @@ -3412,17 +3331,16 @@ unsigned int rlLoadTexture(const void *data, int width, int height, int format, unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer) { unsigned int id = 0; - if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return id; } #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // In case depth textures were not supported, force renderbuffer usage + // In case depth textures not supported, we force renderbuffer usage if (!RLGL.ExtSupported.texDepth) useRenderBuffer = true; - // NOTE: Letting the implementation to choose the best bit-depth + // NOTE: We let the implementation to choose the best bit-depth // Possible formats: GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32 and GL_DEPTH_COMPONENT32F unsigned int glInternalFormat = GL_DEPTH_COMPONENT; -#if defined(GRAPHICS_API_OPENGL_ES2) +#if (defined(GRAPHICS_API_OPENGL_ES2) || defined(GRAPHICS_API_OPENGL_ES3)) // WARNING: WebGL platform requires unsized internal format definition (GL_DEPTH_COMPONENT) // while other platforms using OpenGL ES 2.0 require/support sized internal formats depending on the GPU capabilities if (!RLGL.ExtSupported.texDepthWebGL || useRenderBuffer) @@ -3432,13 +3350,6 @@ unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer) else glInternalFormat = GL_DEPTH_COMPONENT16; } #endif -#if defined(GRAPHICS_API_OPENGL_ES3) - // NOTE: This sized internal format should also work for WebGL 2.0 - // WARNING: Specification only allows GL_DEPTH_COMPONENT32F for GL_FLOAT type - // REF: https://registry.khronos.org/OpenGL-Refpages/es3.0/html/glTexImage2D.xhtml - if (RLGL.ExtSupported.maxDepthBits == 24) glInternalFormat = GL_DEPTH_COMPONENT24; - else glInternalFormat = GL_DEPTH_COMPONENT16; -#endif if (!useRenderBuffer && RLGL.ExtSupported.texDepth) { @@ -3478,7 +3389,6 @@ unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer) unsigned int rlLoadTextureCubemap(const void *data, int size, int format, int mipmapCount) { unsigned int id = 0; - if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return id; } #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) int mipSize = size; @@ -3507,9 +3417,9 @@ unsigned int rlLoadTextureCubemap(const void *data, int size, int format, int mi { if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) { - if ((format == RL_PIXELFORMAT_UNCOMPRESSED_R32) || + if ((format == RL_PIXELFORMAT_UNCOMPRESSED_R32) || (format == RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32) || - (format == RL_PIXELFORMAT_UNCOMPRESSED_R16) || + (format == RL_PIXELFORMAT_UNCOMPRESSED_R16) || (format == RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16)) TRACELOG(RL_LOG_WARNING, "TEXTURES: Cubemap requested format not supported"); else glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, glFormat, glType, NULL); } @@ -3571,7 +3481,7 @@ unsigned int rlLoadTextureCubemap(const void *data, int size, int format, int mi } // Update already loaded texture in GPU with new data -// WARNING: Not possible to know safely if internal texture format is the expected one... +// NOTE: We don't know safely if internal texture format is the expected one... void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data) { glBindTexture(GL_TEXTURE_2D, id); @@ -3705,7 +3615,7 @@ void *rlReadTexturePixels(unsigned int id, int width, int height, int format) #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) glBindTexture(GL_TEXTURE_2D, id); - // NOTE: Using texture id, some texture info can be retrieved (but not on OpenGL ES 2.0) + // NOTE: Using texture id, we can retrieve some texture info (but not on OpenGL ES 2.0) // Possible texture info: GL_TEXTURE_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE //int width, height, format; //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &width); @@ -3724,7 +3634,7 @@ void *rlReadTexturePixels(unsigned int id, int width, int height, int format) if ((glInternalFormat != 0) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)) { - pixels = RL_CALLOC(size, 1); + pixels = RL_MALLOC(size); glGetTexImage(GL_TEXTURE_2D, 0, glFormat, glType, pixels); } else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Data retrieval not suported for pixel format (%i)", id, format); @@ -3738,7 +3648,7 @@ void *rlReadTexturePixels(unsigned int id, int width, int height, int format) // Two possible Options: // 1 - Bind texture to color fbo attachment and glReadPixels() // 2 - Create an fbo, activate it, render quad with texture, glReadPixels() - // Using Option 1, just need to care for texture format on retrieval + // We are using Option 1, just need to care for texture format on retrieval // NOTE: This behaviour could be conditioned by graphic driver... unsigned int fboId = rlLoadFramebuffer(); @@ -3748,8 +3658,8 @@ void *rlReadTexturePixels(unsigned int id, int width, int height, int format) // Attach our texture to FBO glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, id, 0); - // Reading data as RGBA because FBO texture is configured as RGBA, despite binding another texture format - pixels = RL_CALLOC(rlGetPixelDataSize(width, height, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8), 1); + // We read data as RGBA because FBO texture is configured as RGBA, despite binding another texture format + pixels = (unsigned char *)RL_MALLOC(rlGetPixelDataSize(width, height, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8)); glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, pixels); glBindFramebuffer(GL_FRAMEBUFFER, 0); @@ -3761,58 +3671,32 @@ void *rlReadTexturePixels(unsigned int id, int width, int height, int format) return pixels; } -// Copy framebuffer pixel data to internal buffer -void rlCopyFramebuffer(int x, int y, int width, int height, int format, void *pixels) -{ -#if defined(GRAPHICS_API_OPENGL_11_SOFTWARE) - unsigned int glInternalFormat, glFormat, glType; - rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); // Get OpenGL texture format - swCopyFramebuffer(x, y, width, height, glFormat, glType, pixels); -#endif -} - -// Resize internal framebuffer -void rlResizeFramebuffer(int width, int height) -{ -#if defined(GRAPHICS_API_OPENGL_11_SOFTWARE) - swResizeFramebuffer(width, height); -#endif -} - // Read screen pixel data (color buffer) unsigned char *rlReadScreenPixels(int width, int height) { - unsigned char *imgData = (unsigned char *)RL_CALLOC(width*height*4, sizeof(unsigned char)); + unsigned char *screenData = (unsigned char *)RL_CALLOC(width*height*4, sizeof(unsigned char)); + + // NOTE 1: glReadPixels returns image flipped vertically -> (0,0) is the bottom left corner of the framebuffer + // NOTE 2: We are getting alpha channel! Be careful, it can be transparent if not cleared properly! + glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, screenData); - // NOTE: glReadPixels() returns image flipped vertically -> (0,0) is the bottom left corner of the framebuffer - // WARNING: Getting alpha channel! Be careful, it can be transparent if not cleared properly! - glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, imgData); + // Flip image vertically! + unsigned char *imgData = (unsigned char *)RL_MALLOC(width*height*4*sizeof(unsigned char)); - // Flip image vertically - // NOTE: Alpha value has already been applied to RGB in framebuffer, not needed anymore - for (int y = height - 1; y >= height/2; y--) + for (int y = height - 1; y >= 0; y--) { - for (int x = 0; x < (width*4); x += 4) + for (int x = 0; x < (width*4); x++) { - unsigned int s = ((height - 1) - y)*width*4 + x; - unsigned int e = y*width*4 + x; - - unsigned char r = imgData[s]; - unsigned char g = imgData[s+1]; - unsigned char b = imgData[s+2]; - - imgData[s] = imgData[e]; - imgData[s+1] = imgData[e+1]; - imgData[s+2] = imgData[e+2]; - imgData[s+3] = 255; // Set alpha component value to 255 (no trasparent image retrieval) - - imgData[e] = r; - imgData[e+1] = g; - imgData[e+2] = b; - imgData[e+3] = 255; // Ditto + imgData[((height - 1) - y)*width*4 + x] = screenData[(y*width*4) + x]; // Flip line + + // Set alpha component value to 255 (no trasparent image retrieval) + // NOTE: Alpha value has already been applied to RGB in framebuffer, we don't need it! + if (((x + 1)%4) == 0) imgData[((height - 1) - y)*width*4 + x] = 255; } } + RL_FREE(screenData); + return imgData; // NOTE: image data should be freed } @@ -3823,9 +3707,8 @@ unsigned char *rlReadScreenPixels(int width, int height) unsigned int rlLoadFramebuffer(void) { unsigned int fboId = 0; - if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return fboId; } -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) glGenFramebuffers(1, &fboId); // Create the framebuffer object glBindFramebuffer(GL_FRAMEBUFFER, 0); // Unbind any framebuffer #endif @@ -3837,7 +3720,7 @@ unsigned int rlLoadFramebuffer(void) // NOTE: Attach type: 0-Color, 1-Depth renderbuffer, 2-Depth texture void rlFramebufferAttach(unsigned int fboId, unsigned int texId, int attachType, int texType, int mipLevel) { -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) glBindFramebuffer(GL_FRAMEBUFFER, fboId); switch (attachType) @@ -3854,16 +3737,19 @@ void rlFramebufferAttach(unsigned int fboId, unsigned int texId, int attachType, if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_TEXTURE_2D, texId, mipLevel); else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_RENDERBUFFER, texId); else if (texType >= RL_ATTACHMENT_CUBEMAP_POSITIVE_X) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_TEXTURE_CUBE_MAP_POSITIVE_X + texType, texId, mipLevel); + } break; case RL_ATTACHMENT_DEPTH: { if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, texId, mipLevel); else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, texId); + } break; case RL_ATTACHMENT_STENCIL: { if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D, texId, mipLevel); else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, texId); + } break; default: break; } @@ -3877,7 +3763,7 @@ bool rlFramebufferComplete(unsigned int id) { bool result = false; -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) glBindFramebuffer(GL_FRAMEBUFFER, id); GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); @@ -3908,15 +3794,15 @@ bool rlFramebufferComplete(unsigned int id) // NOTE: All attached textures/cubemaps/renderbuffers are also deleted void rlUnloadFramebuffer(unsigned int id) { -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) // Query depth attachment to automatically delete texture/renderbuffer - int depthType = 0; + int depthType = 0, depthId = 0; glBindFramebuffer(GL_FRAMEBUFFER, id); // Bind framebuffer to query depth texture type glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &depthType); + // TODO: Review warning retrieving object name in WebGL // WARNING: WebGL: INVALID_ENUM: getFramebufferAttachmentParameter: invalid parameter name - // REF: https://registry.khronos.org/webgl/specs/latest/1.0/ - int depthId = 0; + // https://registry.khronos.org/webgl/specs/latest/1.0/ glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, &depthId); unsigned int depthIdU = (unsigned int)depthId; @@ -3939,7 +3825,6 @@ void rlUnloadFramebuffer(unsigned int id) unsigned int rlLoadVertexBuffer(const void *buffer, int size, bool dynamic) { unsigned int id = 0; - if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return id; } #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) glGenBuffers(1, &id); @@ -3954,7 +3839,6 @@ unsigned int rlLoadVertexBuffer(const void *buffer, int size, bool dynamic) unsigned int rlLoadVertexBufferElement(const void *buffer, int size, bool dynamic) { unsigned int id = 0; - if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return id; } #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) glGenBuffers(1, &id); @@ -4075,7 +3959,7 @@ void rlDrawVertexArrayElements(int offset, int count, const void *buffer) void rlDrawVertexArrayInstanced(int offset, int count, int instances) { #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glDrawArraysInstanced(GL_TRIANGLES, offset, count, instances); + glDrawArraysInstanced(GL_TRIANGLES, 0, count, instances); #endif } @@ -4091,10 +3975,10 @@ void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffe #endif } +#if defined(GRAPHICS_API_OPENGL_11) // Enable vertex state pointer void rlEnableStatePointer(int vertexAttribType, void *buffer) { -#if defined(GRAPHICS_API_OPENGL_11) if (buffer != NULL) glEnableClientState(vertexAttribType); switch (vertexAttribType) { @@ -4105,27 +3989,25 @@ void rlEnableStatePointer(int vertexAttribType, void *buffer) //case GL_INDEX_ARRAY: if (buffer != NULL) glIndexPointer(GL_SHORT, 0, buffer); break; // Indexed colors default: break; } -#endif } // Disable vertex state pointer void rlDisableStatePointer(int vertexAttribType) { -#if defined(GRAPHICS_API_OPENGL_11) glDisableClientState(vertexAttribType); -#endif } +#endif // Load vertex array object (VAO) unsigned int rlLoadVertexArray(void) { unsigned int vaoId = 0; - if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return vaoId; } - #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if (RLGL.ExtSupported.vao) glGenVertexArrays(1, &vaoId); + if (RLGL.ExtSupported.vao) + { + glGenVertexArrays(1, &vaoId); + } #endif - return vaoId; } @@ -4180,7 +4062,6 @@ void rlUnloadVertexBuffer(unsigned int vboId) unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode) { unsigned int id = 0; - if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return id; } #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) unsigned int vertexShaderId = 0; @@ -4196,15 +4077,15 @@ unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode) if (fsCode != NULL) fragmentShaderId = rlCompileShader(fsCode, GL_FRAGMENT_SHADER); else fragmentShaderId = RLGL.State.defaultFShaderId; - // In case vertex and fragment shader are the default ones, no need to recompile, just assign the default shader program id + // In case vertex and fragment shader are the default ones, no need to recompile, we can just assign the default shader program id if ((vertexShaderId == RLGL.State.defaultVShaderId) && (fragmentShaderId == RLGL.State.defaultFShaderId)) id = RLGL.State.defaultShaderId; else if ((vertexShaderId > 0) && (fragmentShaderId > 0)) { - // One of or both shader are new, a new shader program needs to be compiled + // One of or both shader are new, we need to compile a new shader program id = rlLoadShaderProgram(vertexShaderId, fragmentShaderId); - // Detaching and deleting vertex/fragment shaders (if not default ones) - // WARNING: Detach shader before deletion to make sure memory is freed + // We can detach and delete vertex/fragment shaders (if not default ones) + // NOTE: We detach shader before deletion to make sure memory is freed if (vertexShaderId != RLGL.State.defaultVShaderId) { // WARNING: Shader program linkage could fail and returned id is 0 @@ -4218,10 +4099,10 @@ unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode) glDeleteShader(fragmentShaderId); } - // In case shader program loading failed, assign default shader + // In case shader program loading failed, we assign default shader if (id == 0) { - // In case shader loading fails, reassigning default shader + // In case shader loading fails, we return the default shader TRACELOG(RL_LOG_WARNING, "SHADER: Failed to load custom shader code, using default shader"); id = RLGL.State.defaultShaderId; } @@ -4244,7 +4125,7 @@ unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode) glGetActiveUniform(id, i, sizeof(name) - 1, &namelen, &num, &type, name); name[namelen] = 0; - TRACELOG(RL_LOG_DEBUG, "SHADER: [ID %i] Active uniform (%s) set at location: %i", id, name, glGetUniformLocation(id, name)); + TRACELOGD("SHADER: [ID %i] Active uniform (%s) set at location: %i", id, name, glGetUniformLocation(id, name)); } } */ @@ -4257,122 +4138,117 @@ unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode) // Compile custom shader and return shader id unsigned int rlCompileShader(const char *shaderCode, int type) { - unsigned int shaderId = 0; + unsigned int shader = 0; #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - shaderId = glCreateShader(type); - glShaderSource(shaderId, 1, &shaderCode, NULL); + shader = glCreateShader(type); + glShaderSource(shader, 1, &shaderCode, NULL); GLint success = 0; - glCompileShader(shaderId); - glGetShaderiv(shaderId, GL_COMPILE_STATUS, &success); + glCompileShader(shader); + glGetShaderiv(shader, GL_COMPILE_STATUS, &success); if (success == GL_FALSE) { switch (type) { - case GL_VERTEX_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile vertex shader code", shaderId); break; - case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile fragment shader code", shaderId); break; + case GL_VERTEX_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile vertex shader code", shader); break; + case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile fragment shader code", shader); break; //case GL_GEOMETRY_SHADER: #if defined(GRAPHICS_API_OPENGL_43) - case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile compute shader code", shaderId); break; + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile compute shader code", shader); break; #elif defined(GRAPHICS_API_OPENGL_33) - case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43", shaderId); break; + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43", shader); break; #endif default: break; } int maxLength = 0; - glGetShaderiv(shaderId, GL_INFO_LOG_LENGTH, &maxLength); + glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &maxLength); if (maxLength > 0) { int length = 0; char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); - glGetShaderInfoLog(shaderId, maxLength, &length, log); - TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Compile error: %s", shaderId, log); + glGetShaderInfoLog(shader, maxLength, &length, log); + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Compile error: %s", shader, log); RL_FREE(log); } - // Unload object allocated by glCreateShader(), - // despite failing in the compilation process - glDeleteShader(shaderId); - shaderId = 0; + shader = 0; } else { switch (type) { - case GL_VERTEX_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Vertex shader compiled successfully", shaderId); break; - case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Fragment shader compiled successfully", shaderId); break; + case GL_VERTEX_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Vertex shader compiled successfully", shader); break; + case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Fragment shader compiled successfully", shader); break; //case GL_GEOMETRY_SHADER: #if defined(GRAPHICS_API_OPENGL_43) - case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader compiled successfully", shaderId); break; + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader compiled successfully", shader); break; #elif defined(GRAPHICS_API_OPENGL_33) - case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43", shaderId); break; + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43", shader); break; #endif default: break; } } #endif - return shaderId; + return shader; } // Load custom shader strings and return program id unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fShaderId) { - unsigned int programId = 0; - if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return programId; } + unsigned int program = 0; #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) GLint success = 0; - programId = glCreateProgram(); + program = glCreateProgram(); - glAttachShader(programId, vShaderId); - glAttachShader(programId, fShaderId); + glAttachShader(program, vShaderId); + glAttachShader(program, fShaderId); // NOTE: Default attribute shader locations must be Bound before linking - glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION); - glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD); - glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL, RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL); - glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR, RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR); - glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT, RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT); - glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2); - glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_INSTANCE_TX, RL_DEFAULT_SHADER_ATTRIB_NAME_INSTANCE_TX); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL, RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR, RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT, RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2); #ifdef RL_SUPPORT_MESH_GPU_SKINNING - glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS, RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS); - glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS, RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS, RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS, RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS); #endif // NOTE: If some attrib name is no found on the shader, it locations becomes -1 - glLinkProgram(programId); + glLinkProgram(program); // NOTE: All uniform variables are intitialised to 0 when a program links - glGetProgramiv(programId, GL_LINK_STATUS, &success); + glGetProgramiv(program, GL_LINK_STATUS, &success); if (success == GL_FALSE) { - TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to link shader program", programId); + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to link shader program", program); int maxLength = 0; - glGetProgramiv(programId, GL_INFO_LOG_LENGTH, &maxLength); + glGetProgramiv(program, GL_INFO_LOG_LENGTH, &maxLength); if (maxLength > 0) { int length = 0; char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); - glGetProgramInfoLog(programId, maxLength, &length, log); - TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Link error: %s", programId, log); + glGetProgramInfoLog(program, maxLength, &length, log); + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Link error: %s", program, log); RL_FREE(log); } - glDeleteProgram(programId); + glDeleteProgram(program); - programId = 0; + program = 0; } else { @@ -4381,10 +4257,10 @@ unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fShaderId) //GLint binarySize = 0; //glGetProgramiv(id, GL_PROGRAM_BINARY_LENGTH, &binarySize); - TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Program shader loaded successfully", programId); + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Program shader loaded successfully", program); } #endif - return programId; + return program; } // Unload shader program @@ -4398,7 +4274,6 @@ void rlUnloadShaderProgram(unsigned int id) } // Get shader location uniform -// NOTE: First parameter refers to shader program id int rlGetLocationUniform(unsigned int shaderId, const char *uniformName) { int location = -1; @@ -4412,7 +4287,6 @@ int rlGetLocationUniform(unsigned int shaderId, const char *uniformName) } // Get shader location attribute -// NOTE: First parameter refers to shader program id int rlGetLocationAttrib(unsigned int shaderId, const char *attribName) { int location = -1; @@ -4447,6 +4321,8 @@ void rlSetUniform(int locIndex, const void *value, int uniformType, int count) #endif case RL_SHADER_UNIFORM_SAMPLER2D: glUniform1iv(locIndex, count, (int *)value); break; default: TRACELOG(RL_LOG_WARNING, "SHADER: Failed to set uniform value, data type not recognized"); + + // TODO: Support glUniform1uiv(), glUniform2uiv(), glUniform3uiv(), glUniform4uiv() } #endif } @@ -4470,7 +4346,13 @@ void rlSetVertexAttributeDefault(int locIndex, const void *value, int attribType void rlSetUniformMatrix(int locIndex, Matrix mat) { #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glUniformMatrix4fv(locIndex, 1, false, rlMatrixToFloat(mat)); + float matfloat[16] = { + mat.m0, mat.m1, mat.m2, mat.m3, + mat.m4, mat.m5, mat.m6, mat.m7, + mat.m8, mat.m9, mat.m10, mat.m11, + mat.m12, mat.m13, mat.m14, mat.m15 + }; + glUniformMatrix4fv(locIndex, 1, false, matfloat); #endif } @@ -4530,37 +4412,37 @@ void rlSetShader(unsigned int id, int *locs) // Load compute shader program unsigned int rlLoadComputeShaderProgram(unsigned int shaderId) { - unsigned int programId = 0; + unsigned int program = 0; #if defined(GRAPHICS_API_OPENGL_43) GLint success = 0; - programId = glCreateProgram(); - glAttachShader(programId, shaderId); - glLinkProgram(programId); + program = glCreateProgram(); + glAttachShader(program, shaderId); + glLinkProgram(program); // NOTE: All uniform variables are intitialised to 0 when a program links - glGetProgramiv(programId, GL_LINK_STATUS, &success); + glGetProgramiv(program, GL_LINK_STATUS, &success); if (success == GL_FALSE) { - TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to link compute shader program", programId); + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to link compute shader program", program); int maxLength = 0; - glGetProgramiv(programId, GL_INFO_LOG_LENGTH, &maxLength); + glGetProgramiv(program, GL_INFO_LOG_LENGTH, &maxLength); if (maxLength > 0) { int length = 0; char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); - glGetProgramInfoLog(programId, maxLength, &length, log); - TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Link error: %s", programId, log); + glGetProgramInfoLog(program, maxLength, &length, log); + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Link error: %s", program, log); RL_FREE(log); } - glDeleteProgram(programId); + glDeleteProgram(program); - programId = 0; + program = 0; } else { @@ -4569,13 +4451,13 @@ unsigned int rlLoadComputeShaderProgram(unsigned int shaderId) //GLint binarySize = 0; //glGetProgramiv(id, GL_PROGRAM_BINARY_LENGTH, &binarySize); - TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader program loaded successfully", programId); + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader program loaded successfully", program); } #else TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43"); #endif - return programId; + return program; } // Dispatch compute shader (equivalent to *draw* for graphics pilepine) @@ -4743,9 +4625,9 @@ Matrix rlGetMatrixTransform(void) Matrix mat = rlMatrixIdentity(); #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) // TODO: Consider possible transform matrices in the RLGL.State.stack + // Is this the right order? or should we start with the first stored matrix instead of the last one? //Matrix matStackTransform = rlMatrixIdentity(); //for (int i = RLGL.State.stackCounter; i > 0; i--) matStackTransform = rlMatrixMultiply(RLGL.State.stack[i], matStackTransform); - mat = RLGL.State.transform; #endif return mat; @@ -4958,7 +4840,7 @@ const char *rlGetPixelFormatName(unsigned int format) } //---------------------------------------------------------------------------------- -// Module Functions Definition +// Module specific Functions Definition //---------------------------------------------------------------------------------- #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) // Load default shader (just vertex positioning and texture coloring) @@ -5216,57 +5098,32 @@ static int rlGetPixelDataSize(int width, int height, int format) case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: - case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: // 8 bytes per each 4x4 block - { - int blockWidth = (width + 3)/4; - int blockHeight = (height + 3)/4; - dataSize = blockWidth*blockHeight*8; - } break; + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: bpp = 4; break; case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: - case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: // 16 bytes per each 4x4 block - { - int blockWidth = (width + 3)/4; - int blockHeight = (height + 3)/4; - dataSize = blockWidth*blockHeight*16; - } break; - case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: // 4 bytes per each 4x4 block - { - int blockWidth = (width + 3)/4; - int blockHeight = (height + 3)/4; - dataSize = blockWidth*blockHeight*4; - } break; + case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: bpp = 8; break; + case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: bpp = 2; break; default: break; } - // Compute dataSize for uncompressed texture data (no blocks) - if ((format >= RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) && - (format <= RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16)) + double bytesPerPixel = (double)bpp/8.0; + dataSize = (int)(bytesPerPixel*width*height); // Total data size in bytes + + // Most compressed formats works on 4x4 blocks, + // if texture is smaller, minimum dataSize is 8 or 16 + if ((width < 4) && (height < 4)) { - double bytesPerPixel = (double)bpp/8.0; - dataSize = (int)(bytesPerPixel*width*height); // Total data size in bytes + if ((format >= RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) && (format < RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA)) dataSize = 8; + else if ((format >= RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA) && (format < RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA)) dataSize = 16; } return dataSize; } // Auxiliar math functions -//------------------------------------------------------------------------------- -// Get identity matrix -static Matrix rlMatrixIdentity(void) -{ - Matrix matIdentity = { 0 }; - matIdentity.m0 = 1.0f; - matIdentity.m5 = 1.0f; - matIdentity.m10 = 1.0f; - matIdentity.m15 = 1.0f; - return matIdentity; -} -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) // Get float array of matrix data -// Explicit conversion to column-major memory layout static rl_float16 rlMatrixToFloatV(Matrix mat) { rl_float16 result = { 0 }; @@ -5291,6 +5148,19 @@ static rl_float16 rlMatrixToFloatV(Matrix mat) return result; } +// Get identity matrix +static Matrix rlMatrixIdentity(void) +{ + Matrix result = { + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + }; + + return result; +} + // Get two matrix multiplication // NOTE: When multiplying matrices... the order matters! static Matrix rlMatrixMultiply(Matrix left, Matrix right) @@ -5388,6 +5258,5 @@ static Matrix rlMatrixInvert(Matrix mat) return result; } -#endif -#endif // RLGL_IMPLEMENTATION \ No newline at end of file +#endif // RLGL_IMPLEMENTATION diff --git a/lib/raylib_lin/lib/libraylib.a b/lib/raylib_lin/lib/libraylib.a index a4254d458982737289dc09cec675d8e4bc4e2dd8..e8388b75955061bcc7c3f68b4d998e708dc367fc 100644 GIT binary patch literal 2769460 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 z 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%0DS?fXb4*S)A-XpMKBh;)9`m1MUyZG~@3T#WYW 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

Ntr2ds_0H!v4(Q7T`i2BBO^y^~)gfZqlQ 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

vvxlufY*Cy>Oglw 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%0DW$J--%F$~-?lVlosR!0O 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 nBJ8jyd4j($W!wXxy-b%rx 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≧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 z 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
yUqBj zs(YrY5*7_!QC$A<3RUY+?$I*JtBPBuH~S-n~7&(%IPhbsmnUHnSH~fJhb_RXuSKSRKX3R^P4JQFznk ztB!Hu)p4WQgVk4{X4I-!ECi(#4NR&-8NWT#y^%Vm?P6`T zIzz*tL@Rn1Q(}%<&(elY2+58HGH@cn*Nzjjak^QYk$P(NuYnrS)#9zxmwqa>rK8Us z^@(L$tdV+>*VpMQHRYi*c~Lp;Sh)`)i!dUeepy0O^(yc0k(XBXyBWvC_!euVo@hoo z){#tPCYVHyUrs%s&@|VE9w?f6u?F^rQ|QzkQ&AUqjcJmJhM^DDcK6$NA+=9)AN+{= zS*($IlF4-UbYK1cWzfbf;F#T-x>r6fF5e7^3RhDm>~fVT6T$v$5DmI3VV_IaJSRC_ z!akp$c5%&eD=scn%`<7g&o^nm7PU+APTH^O<2oBn7su7UwJM($mxIhEhvOn1*uwen zor*l=$3hsu=l_&K^YGeWb9tKHn30GNr{uKv_2wxxf&C81$7xQh^^2Vo5os=F&emP zV-hT;ej_OwDp_C9sRcl#Yt{Jr*IiDX^0^fGQfAy9J%6+|_qw4FC$sO&hh4c3ugQHq zY9c<-)d#<^2LxNj8u;7;Sp?1E_ep_bnw|t7G4z{ZpW&g1oamCAhDJ5s&iizgTPx3! zi;9NY(_xxCZEl}9x7VU-a{Z7^Y*Vz!%7J>T`QAL*UQ&oYx!RO(;lN{@VYsBBo;)HX zt+mj8?>2A|+fETTu{Pe7k5H%3gVkt$uhvLthrHpvE^qmb6-2`9J%NO5C7%ddn0r+P z*|=>s=#iyN+6nP!M$*Zr$Gc?t45b9&w9T_*xuLESVLPolxjv;;0NPd>Ufr5~M9gJX zo?Wj?g77YUsLp(acj=dMh3lOaNmj2VY!76s`+^I0N`Pi?qjkde!RY!a3464AjqH&i z>>J{>mfnsYeI=Dfh%ZaZFaAzrcvIdZFN+|tszcY>Ra;yI+Gk7kr(c|ekG%=e^?4$v zzFD#obXKif*4%XW$;9b&*RA=TZp_}==|1WtX<9pLbGy`?9y+qP$aRKtpU^%f7+EK! zLRQ-d4px5!3zfWSKmscaBxq$1_W9*{GH&g)Kx%To#eF!{{g7|7_10J4;T`9pG=806 z2ui!S)KaJpxfRo}PuJYKn;Z>$G;?_kN^@7L9*5k-=&1I}g|@6{k(V3!@CY~031=bV zvh1BBt@4JIPp-1uD!4Z5C(#x`mEkUwuT^XY``s;=VAI_J2sYiEda#K}=K$E`Z?IjT za1Bs>rZYh9){&3MZG`sOX;oiK!z=H^P7cj_s^|x6bVuX;rKlATWEzImerGV0ag|fg zQUc)LLCjKV>H03W5!x4D9=(YYl*iS(_pZD6ci_#nhu@|5Cir(?hIaBht(E*%y^TDm zw~z-mK^(ZlT&v%W&0s$dKSBc)cgV~8yyS&Z;W?oAv_1p&7g#p5mp5aTGChh&kR_2F9V?qJAfJ(53$aURqWOZ~W32RKUIfooUCte9Y&7CA)Y8wk#D7~mKU zLwC5_IT_zo@C&6a2YS#UwDv?}4UR5atU^2FRi^Iw8#fAb8~P{KAu7<0>{`m!|To z_qi^$VdJ>B4?TYrmoQ||@cMkO;)Wf8-Wzsl)|!)+u3=|P3pd!r9uy5$m}_a^{oP4> z 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

FVaUm@gXD7A-w4eR&ysE9)JEVOPm*<{UWfys+b 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

?hFSqWn_G9 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 diff --git a/lib/raylib_lin_arm64/include/raylib.h b/lib/raylib_lin_arm64/include/raylib.h new file mode 100644 index 0000000..a26b8ce --- /dev/null +++ b/lib/raylib_lin_arm64/include/raylib.h @@ -0,0 +1,1708 @@ +/********************************************************************************************** +* +* raylib v5.5 - A simple and easy-to-use library to enjoy videogames programming (www.raylib.com) +* +* FEATURES: +* - NO external dependencies, all required libraries included with raylib +* - Multiplatform: Windows, Linux, FreeBSD, OpenBSD, NetBSD, DragonFly, +* MacOS, Haiku, Android, Raspberry Pi, DRM native, HTML5. +* - Written in plain C code (C99) in PascalCase/camelCase notation +* - Hardware accelerated with OpenGL (1.1, 2.1, 3.3, 4.3, ES2, ES3 - choose at compile) +* - Unique OpenGL abstraction layer (usable as standalone module): [rlgl] +* - Multiple Fonts formats supported (TTF, OTF, FNT, BDF, Sprite fonts) +* - Outstanding texture formats support, including compressed formats (DXT, ETC, ASTC) +* - Full 3d support for 3d Shapes, Models, Billboards, Heightmaps and more! +* - Flexible Materials system, supporting classic maps and PBR maps +* - Animated 3D models supported (skeletal bones animation) (IQM, M3D, GLTF) +* - Shaders support, including Model shaders and Postprocessing shaders +* - Powerful math module for Vector, Matrix and Quaternion operations: [raymath] +* - Audio loading and playing with streaming support (WAV, OGG, MP3, FLAC, QOA, XM, MOD) +* - VR stereo rendering with configurable HMD device parameters +* - Bindings to multiple programming languages available! +* +* NOTES: +* - One default Font is loaded on InitWindow()->LoadFontDefault() [core, text] +* - One default Texture2D is loaded on rlglInit(), 1x1 white pixel R8G8B8A8 [rlgl] (OpenGL 3.3 or ES2) +* - One default Shader is loaded on rlglInit()->rlLoadShaderDefault() [rlgl] (OpenGL 3.3 or ES2) +* - One default RenderBatch is loaded on rlglInit()->rlLoadRenderBatch() [rlgl] (OpenGL 3.3 or ES2) +* +* DEPENDENCIES (included): +* [rcore][GLFW] rglfw (Camilla Löwy - github.com/glfw/glfw) for window/context management and input +* [rcore][RGFW] rgfw (ColleagueRiley - github.com/ColleagueRiley/RGFW) for window/context management and input +* [rlgl] glad/glad_gles2 (David Herberth - github.com/Dav1dde/glad) for OpenGL 3.3 extensions loading +* [raudio] miniaudio (David Reid - github.com/mackron/miniaudio) for audio device/context management +* +* OPTIONAL DEPENDENCIES (included): +* [rcore] msf_gif (Miles Fogle) for GIF recording +* [rcore] sinfl (Micha Mettke) for DEFLATE decompression algorithm +* [rcore] sdefl (Micha Mettke) for DEFLATE compression algorithm +* [rcore] rprand (Ramon Snatamaria) for pseudo-random numbers generation +* [rtextures] qoi (Dominic Szablewski - https://phoboslab.org) for QOI image manage +* [rtextures] stb_image (Sean Barret) for images loading (BMP, TGA, PNG, JPEG, HDR...) +* [rtextures] stb_image_write (Sean Barret) for image writing (BMP, TGA, PNG, JPG) +* [rtextures] stb_image_resize2 (Sean Barret) for image resizing algorithms +* [rtextures] stb_perlin (Sean Barret) for Perlin Noise image generation +* [rtext] stb_truetype (Sean Barret) for ttf fonts loading +* [rtext] stb_rect_pack (Sean Barret) for rectangles packing +* [rmodels] par_shapes (Philip Rideout) for parametric 3d shapes generation +* [rmodels] tinyobj_loader_c (Syoyo Fujita) for models loading (OBJ, MTL) +* [rmodels] cgltf (Johannes Kuhlmann) for models loading (glTF) +* [rmodels] m3d (bzt) for models loading (M3D, https://bztsrc.gitlab.io/model3d) +* [rmodels] vox_loader (Johann Nadalutti) for models loading (VOX) +* [raudio] dr_wav (David Reid) for WAV audio file loading +* [raudio] dr_flac (David Reid) for FLAC audio file loading +* [raudio] dr_mp3 (David Reid) for MP3 audio file loading +* [raudio] stb_vorbis (Sean Barret) for OGG audio loading +* [raudio] jar_xm (Joshua Reisenauer) for XM audio module loading +* [raudio] jar_mod (Joshua Reisenauer) for MOD audio module loading +* [raudio] qoa (Dominic Szablewski - https://phoboslab.org) for QOA audio manage +* +* +* LICENSE: zlib/libpng +* +* raylib is licensed under an unmodified zlib/libpng license, which is an OSI-certified, +* BSD-like license that allows static linking with closed source software: +* +* Copyright (c) 2013-2024 Ramon Santamaria (@raysan5) +* +* This software is provided "as-is", without any express or implied warranty. In no event +* will the authors be held liable for any damages arising from the use of this software. +* +* Permission is granted to anyone to use this software for any purpose, including commercial +* applications, and to alter it and redistribute it freely, subject to the following restrictions: +* +* 1. The origin of this software must not be misrepresented; you must not claim that you +* wrote the original software. If you use this software in a product, an acknowledgment +* in the product documentation would be appreciated but is not required. +* +* 2. Altered source versions must be plainly marked as such, and must not be misrepresented +* as being the original software. +* +* 3. This notice may not be removed or altered from any source distribution. +* +**********************************************************************************************/ + +#ifndef RAYLIB_H +#define RAYLIB_H + +#include // Required for: va_list - Only used by TraceLogCallback + +#define RAYLIB_VERSION_MAJOR 5 +#define RAYLIB_VERSION_MINOR 5 +#define RAYLIB_VERSION_PATCH 0 +#define RAYLIB_VERSION "5.5" + +// Function specifiers in case library is build/used as a shared library +// NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll +// NOTE: visibility("default") attribute makes symbols "visible" when compiled with -fvisibility=hidden +#if defined(_WIN32) + #if defined(__TINYC__) + #define __declspec(x) __attribute__((x)) + #endif + #if defined(BUILD_LIBTYPE_SHARED) + #define RLAPI __declspec(dllexport) // We are building the library as a Win32 shared library (.dll) + #elif defined(USE_LIBTYPE_SHARED) + #define RLAPI __declspec(dllimport) // We are using the library as a Win32 shared library (.dll) + #endif +#else + #if defined(BUILD_LIBTYPE_SHARED) + #define RLAPI __attribute__((visibility("default"))) // We are building as a Unix shared library (.so/.dylib) + #endif +#endif + +#ifndef RLAPI + #define RLAPI // Functions defined as 'extern' by default (implicit specifiers) +#endif + +//---------------------------------------------------------------------------------- +// Some basic Defines +//---------------------------------------------------------------------------------- +#ifndef PI + #define PI 3.14159265358979323846f +#endif +#ifndef DEG2RAD + #define DEG2RAD (PI/180.0f) +#endif +#ifndef RAD2DEG + #define RAD2DEG (180.0f/PI) +#endif + +// Allow custom memory allocators +// NOTE: Require recompiling raylib sources +#ifndef RL_MALLOC + #define RL_MALLOC(sz) malloc(sz) +#endif +#ifndef RL_CALLOC + #define RL_CALLOC(n,sz) calloc(n,sz) +#endif +#ifndef RL_REALLOC + #define RL_REALLOC(ptr,sz) realloc(ptr,sz) +#endif +#ifndef RL_FREE + #define RL_FREE(ptr) free(ptr) +#endif + +// NOTE: MSVC C++ compiler does not support compound literals (C99 feature) +// Plain structures in C++ (without constructors) can be initialized with { } +// This is called aggregate initialization (C++11 feature) +#if defined(__cplusplus) + #define CLITERAL(type) type +#else + #define CLITERAL(type) (type) +#endif + +// Some compilers (mostly macos clang) default to C++98, +// where aggregate initialization can't be used +// So, give a more clear error stating how to fix this +#if !defined(_MSC_VER) && (defined(__cplusplus) && __cplusplus < 201103L) + #error "C++11 or later is required. Add -std=c++11" +#endif + +// NOTE: We set some defines with some data types declared by raylib +// Other modules (raymath, rlgl) also require some of those types, so, +// to be able to use those other modules as standalone (not depending on raylib) +// this defines are very useful for internal check and avoid type (re)definitions +#define RL_COLOR_TYPE +#define RL_RECTANGLE_TYPE +#define RL_VECTOR2_TYPE +#define RL_VECTOR3_TYPE +#define RL_VECTOR4_TYPE +#define RL_QUATERNION_TYPE +#define RL_MATRIX_TYPE + +// Some Basic Colors +// NOTE: Custom raylib color palette for amazing visuals on WHITE background +#define LIGHTGRAY CLITERAL(Color){ 200, 200, 200, 255 } // Light Gray +#define GRAY CLITERAL(Color){ 130, 130, 130, 255 } // Gray +#define DARKGRAY CLITERAL(Color){ 80, 80, 80, 255 } // Dark Gray +#define YELLOW CLITERAL(Color){ 253, 249, 0, 255 } // Yellow +#define GOLD CLITERAL(Color){ 255, 203, 0, 255 } // Gold +#define ORANGE CLITERAL(Color){ 255, 161, 0, 255 } // Orange +#define PINK CLITERAL(Color){ 255, 109, 194, 255 } // Pink +#define RED CLITERAL(Color){ 230, 41, 55, 255 } // Red +#define MAROON CLITERAL(Color){ 190, 33, 55, 255 } // Maroon +#define GREEN CLITERAL(Color){ 0, 228, 48, 255 } // Green +#define LIME CLITERAL(Color){ 0, 158, 47, 255 } // Lime +#define DARKGREEN CLITERAL(Color){ 0, 117, 44, 255 } // Dark Green +#define SKYBLUE CLITERAL(Color){ 102, 191, 255, 255 } // Sky Blue +#define BLUE CLITERAL(Color){ 0, 121, 241, 255 } // Blue +#define DARKBLUE CLITERAL(Color){ 0, 82, 172, 255 } // Dark Blue +#define PURPLE CLITERAL(Color){ 200, 122, 255, 255 } // Purple +#define VIOLET CLITERAL(Color){ 135, 60, 190, 255 } // Violet +#define DARKPURPLE CLITERAL(Color){ 112, 31, 126, 255 } // Dark Purple +#define BEIGE CLITERAL(Color){ 211, 176, 131, 255 } // Beige +#define BROWN CLITERAL(Color){ 127, 106, 79, 255 } // Brown +#define DARKBROWN CLITERAL(Color){ 76, 63, 47, 255 } // Dark Brown + +#define WHITE CLITERAL(Color){ 255, 255, 255, 255 } // White +#define BLACK CLITERAL(Color){ 0, 0, 0, 255 } // Black +#define BLANK CLITERAL(Color){ 0, 0, 0, 0 } // Blank (Transparent) +#define MAGENTA CLITERAL(Color){ 255, 0, 255, 255 } // Magenta +#define RAYWHITE CLITERAL(Color){ 245, 245, 245, 255 } // My own White (raylib logo) + +//---------------------------------------------------------------------------------- +// Structures Definition +//---------------------------------------------------------------------------------- +// Boolean type +#if (defined(__STDC__) && __STDC_VERSION__ >= 199901L) || (defined(_MSC_VER) && _MSC_VER >= 1800) + #include +#elif !defined(__cplusplus) && !defined(bool) + typedef enum bool { false = 0, true = !false } bool; + #define RL_BOOL_TYPE +#endif + +// Vector2, 2 components +typedef struct Vector2 { + float x; // Vector x component + float y; // Vector y component +} Vector2; + +// Vector3, 3 components +typedef struct Vector3 { + float x; // Vector x component + float y; // Vector y component + float z; // Vector z component +} Vector3; + +// Vector4, 4 components +typedef struct Vector4 { + float x; // Vector x component + float y; // Vector y component + float z; // Vector z component + float w; // Vector w component +} Vector4; + +// Quaternion, 4 components (Vector4 alias) +typedef Vector4 Quaternion; + +// Matrix, 4x4 components, column major, OpenGL style, right-handed +typedef struct Matrix { + float m0, m4, m8, m12; // Matrix first row (4 components) + float m1, m5, m9, m13; // Matrix second row (4 components) + float m2, m6, m10, m14; // Matrix third row (4 components) + float m3, m7, m11, m15; // Matrix fourth row (4 components) +} Matrix; + +// Color, 4 components, R8G8B8A8 (32bit) +typedef struct Color { + unsigned char r; // Color red value + unsigned char g; // Color green value + unsigned char b; // Color blue value + unsigned char a; // Color alpha value +} Color; + +// Rectangle, 4 components +typedef struct Rectangle { + float x; // Rectangle top-left corner position x + float y; // Rectangle top-left corner position y + float width; // Rectangle width + float height; // Rectangle height +} Rectangle; + +// Image, pixel data stored in CPU memory (RAM) +typedef struct Image { + void *data; // Image raw data + int width; // Image base width + int height; // Image base height + int mipmaps; // Mipmap levels, 1 by default + int format; // Data format (PixelFormat type) +} Image; + +// Texture, tex data stored in GPU memory (VRAM) +typedef struct Texture { + unsigned int id; // OpenGL texture id + int width; // Texture base width + int height; // Texture base height + int mipmaps; // Mipmap levels, 1 by default + int format; // Data format (PixelFormat type) +} Texture; + +// Texture2D, same as Texture +typedef Texture Texture2D; + +// TextureCubemap, same as Texture +typedef Texture TextureCubemap; + +// RenderTexture, fbo for texture rendering +typedef struct RenderTexture { + unsigned int id; // OpenGL framebuffer object id + Texture texture; // Color buffer attachment texture + Texture depth; // Depth buffer attachment texture +} RenderTexture; + +// RenderTexture2D, same as RenderTexture +typedef RenderTexture RenderTexture2D; + +// NPatchInfo, n-patch layout info +typedef struct NPatchInfo { + Rectangle source; // Texture source rectangle + int left; // Left border offset + int top; // Top border offset + int right; // Right border offset + int bottom; // Bottom border offset + int layout; // Layout of the n-patch: 3x3, 1x3 or 3x1 +} NPatchInfo; + +// GlyphInfo, font characters glyphs info +typedef struct GlyphInfo { + int value; // Character value (Unicode) + int offsetX; // Character offset X when drawing + int offsetY; // Character offset Y when drawing + int advanceX; // Character advance position X + Image image; // Character image data +} GlyphInfo; + +// Font, font texture and GlyphInfo array data +typedef struct Font { + int baseSize; // Base size (default chars height) + int glyphCount; // Number of glyph characters + int glyphPadding; // Padding around the glyph characters + Texture2D texture; // Texture atlas containing the glyphs + Rectangle *recs; // Rectangles in texture for the glyphs + GlyphInfo *glyphs; // Glyphs info data +} Font; + +// Camera, defines position/orientation in 3d space +typedef struct Camera3D { + Vector3 position; // Camera position + Vector3 target; // Camera target it looks-at + Vector3 up; // Camera up vector (rotation over its axis) + float fovy; // Camera field-of-view aperture in Y (degrees) in perspective, used as near plane width in orthographic + int projection; // Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC +} Camera3D; + +typedef Camera3D Camera; // Camera type fallback, defaults to Camera3D + +// Camera2D, defines position/orientation in 2d space +typedef struct Camera2D { + Vector2 offset; // Camera offset (displacement from target) + Vector2 target; // Camera target (rotation and zoom origin) + float rotation; // Camera rotation in degrees + float zoom; // Camera zoom (scaling), should be 1.0f by default +} Camera2D; + +// Mesh, vertex data and vao/vbo +typedef struct Mesh { + int vertexCount; // Number of vertices stored in arrays + int triangleCount; // Number of triangles stored (indexed or not) + + // Vertex attributes data + float *vertices; // Vertex position (XYZ - 3 components per vertex) (shader-location = 0) + float *texcoords; // Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1) + float *texcoords2; // Vertex texture second coordinates (UV - 2 components per vertex) (shader-location = 5) + float *normals; // Vertex normals (XYZ - 3 components per vertex) (shader-location = 2) + float *tangents; // Vertex tangents (XYZW - 4 components per vertex) (shader-location = 4) + unsigned char *colors; // Vertex colors (RGBA - 4 components per vertex) (shader-location = 3) + unsigned short *indices; // Vertex indices (in case vertex data comes indexed) + + // Animation vertex data + float *animVertices; // Animated vertex positions (after bones transformations) + float *animNormals; // Animated normals (after bones transformations) + unsigned char *boneIds; // Vertex bone ids, max 255 bone ids, up to 4 bones influence by vertex (skinning) (shader-location = 6) + float *boneWeights; // Vertex bone weight, up to 4 bones influence by vertex (skinning) (shader-location = 7) + Matrix *boneMatrices; // Bones animated transformation matrices + int boneCount; // Number of bones + + // OpenGL identifiers + unsigned int vaoId; // OpenGL Vertex Array Object id + unsigned int *vboId; // OpenGL Vertex Buffer Objects id (default vertex data) +} Mesh; + +// Shader +typedef struct Shader { + unsigned int id; // Shader program id + int *locs; // Shader locations array (RL_MAX_SHADER_LOCATIONS) +} Shader; + +// MaterialMap +typedef struct MaterialMap { + Texture2D texture; // Material map texture + Color color; // Material map color + float value; // Material map value +} MaterialMap; + +// Material, includes shader and maps +typedef struct Material { + Shader shader; // Material shader + MaterialMap *maps; // Material maps array (MAX_MATERIAL_MAPS) + float params[4]; // Material generic parameters (if required) +} Material; + +// Transform, vertex transformation data +typedef struct Transform { + Vector3 translation; // Translation + Quaternion rotation; // Rotation + Vector3 scale; // Scale +} Transform; + +// Bone, skeletal animation bone +typedef struct BoneInfo { + char name[32]; // Bone name + int parent; // Bone parent +} BoneInfo; + +// Model, meshes, materials and animation data +typedef struct Model { + Matrix transform; // Local transform matrix + + int meshCount; // Number of meshes + int materialCount; // Number of materials + Mesh *meshes; // Meshes array + Material *materials; // Materials array + int *meshMaterial; // Mesh material number + + // Animation data + int boneCount; // Number of bones + BoneInfo *bones; // Bones information (skeleton) + Transform *bindPose; // Bones base transformation (pose) +} Model; + +// ModelAnimation +typedef struct ModelAnimation { + int boneCount; // Number of bones + int frameCount; // Number of animation frames + BoneInfo *bones; // Bones information (skeleton) + Transform **framePoses; // Poses array by frame + char name[32]; // Animation name +} ModelAnimation; + +// Ray, ray for raycasting +typedef struct Ray { + Vector3 position; // Ray position (origin) + Vector3 direction; // Ray direction (normalized) +} Ray; + +// RayCollision, ray hit information +typedef struct RayCollision { + bool hit; // Did the ray hit something? + float distance; // Distance to the nearest hit + Vector3 point; // Point of the nearest hit + Vector3 normal; // Surface normal of hit +} RayCollision; + +// BoundingBox +typedef struct BoundingBox { + Vector3 min; // Minimum vertex box-corner + Vector3 max; // Maximum vertex box-corner +} BoundingBox; + +// Wave, audio wave data +typedef struct Wave { + unsigned int frameCount; // Total number of frames (considering channels) + unsigned int sampleRate; // Frequency (samples per second) + unsigned int sampleSize; // Bit depth (bits per sample): 8, 16, 32 (24 not supported) + unsigned int channels; // Number of channels (1-mono, 2-stereo, ...) + void *data; // Buffer data pointer +} Wave; + +// Opaque structs declaration +// NOTE: Actual structs are defined internally in raudio module +typedef struct rAudioBuffer rAudioBuffer; +typedef struct rAudioProcessor rAudioProcessor; + +// AudioStream, custom audio stream +typedef struct AudioStream { + rAudioBuffer *buffer; // Pointer to internal data used by the audio system + rAudioProcessor *processor; // Pointer to internal data processor, useful for audio effects + + unsigned int sampleRate; // Frequency (samples per second) + unsigned int sampleSize; // Bit depth (bits per sample): 8, 16, 32 (24 not supported) + unsigned int channels; // Number of channels (1-mono, 2-stereo, ...) +} AudioStream; + +// Sound +typedef struct Sound { + AudioStream stream; // Audio stream + unsigned int frameCount; // Total number of frames (considering channels) +} Sound; + +// Music, audio stream, anything longer than ~10 seconds should be streamed +typedef struct Music { + AudioStream stream; // Audio stream + unsigned int frameCount; // Total number of frames (considering channels) + bool looping; // Music looping enable + + int ctxType; // Type of music context (audio filetype) + void *ctxData; // Audio context data, depends on type +} Music; + +// VrDeviceInfo, Head-Mounted-Display device parameters +typedef struct VrDeviceInfo { + int hResolution; // Horizontal resolution in pixels + int vResolution; // Vertical resolution in pixels + float hScreenSize; // Horizontal size in meters + float vScreenSize; // Vertical size in meters + float eyeToScreenDistance; // Distance between eye and display in meters + float lensSeparationDistance; // Lens separation distance in meters + float interpupillaryDistance; // IPD (distance between pupils) in meters + float lensDistortionValues[4]; // Lens distortion constant parameters + float chromaAbCorrection[4]; // Chromatic aberration correction parameters +} VrDeviceInfo; + +// VrStereoConfig, VR stereo rendering configuration for simulator +typedef struct VrStereoConfig { + Matrix projection[2]; // VR projection matrices (per eye) + Matrix viewOffset[2]; // VR view offset matrices (per eye) + float leftLensCenter[2]; // VR left lens center + float rightLensCenter[2]; // VR right lens center + float leftScreenCenter[2]; // VR left screen center + float rightScreenCenter[2]; // VR right screen center + float scale[2]; // VR distortion scale + float scaleIn[2]; // VR distortion scale in +} VrStereoConfig; + +// File path list +typedef struct FilePathList { + unsigned int capacity; // Filepaths max entries + unsigned int count; // Filepaths entries count + char **paths; // Filepaths entries +} FilePathList; + +// Automation event +typedef struct AutomationEvent { + unsigned int frame; // Event frame + unsigned int type; // Event type (AutomationEventType) + int params[4]; // Event parameters (if required) +} AutomationEvent; + +// Automation event list +typedef struct AutomationEventList { + unsigned int capacity; // Events max entries (MAX_AUTOMATION_EVENTS) + unsigned int count; // Events entries count + AutomationEvent *events; // Events entries +} AutomationEventList; + +//---------------------------------------------------------------------------------- +// Enumerators Definition +//---------------------------------------------------------------------------------- +// System/Window config flags +// NOTE: Every bit registers one state (use it with bit masks) +// By default all flags are set to 0 +typedef enum { + FLAG_VSYNC_HINT = 0x00000040, // Set to try enabling V-Sync on GPU + FLAG_FULLSCREEN_MODE = 0x00000002, // Set to run program in fullscreen + FLAG_WINDOW_RESIZABLE = 0x00000004, // Set to allow resizable window + FLAG_WINDOW_UNDECORATED = 0x00000008, // Set to disable window decoration (frame and buttons) + FLAG_WINDOW_HIDDEN = 0x00000080, // Set to hide window + FLAG_WINDOW_MINIMIZED = 0x00000200, // Set to minimize window (iconify) + FLAG_WINDOW_MAXIMIZED = 0x00000400, // Set to maximize window (expanded to monitor) + FLAG_WINDOW_UNFOCUSED = 0x00000800, // Set to window non focused + FLAG_WINDOW_TOPMOST = 0x00001000, // Set to window always on top + FLAG_WINDOW_ALWAYS_RUN = 0x00000100, // Set to allow windows running while minimized + FLAG_WINDOW_TRANSPARENT = 0x00000010, // Set to allow transparent framebuffer + FLAG_WINDOW_HIGHDPI = 0x00002000, // Set to support HighDPI + FLAG_WINDOW_MOUSE_PASSTHROUGH = 0x00004000, // Set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED + FLAG_BORDERLESS_WINDOWED_MODE = 0x00008000, // Set to run program in borderless windowed mode + FLAG_MSAA_4X_HINT = 0x00000020, // Set to try enabling MSAA 4X + FLAG_INTERLACED_HINT = 0x00010000 // Set to try enabling interlaced video format (for V3D) +} ConfigFlags; + +// Trace log level +// NOTE: Organized by priority level +typedef enum { + LOG_ALL = 0, // Display all logs + LOG_TRACE, // Trace logging, intended for internal use only + LOG_DEBUG, // Debug logging, used for internal debugging, it should be disabled on release builds + LOG_INFO, // Info logging, used for program execution info + LOG_WARNING, // Warning logging, used on recoverable failures + LOG_ERROR, // Error logging, used on unrecoverable failures + LOG_FATAL, // Fatal logging, used to abort program: exit(EXIT_FAILURE) + LOG_NONE // Disable logging +} TraceLogLevel; + +// Keyboard keys (US keyboard layout) +// NOTE: Use GetKeyPressed() to allow redefining +// required keys for alternative layouts +typedef enum { + KEY_NULL = 0, // Key: NULL, used for no key pressed + // Alphanumeric keys + KEY_APOSTROPHE = 39, // Key: ' + KEY_COMMA = 44, // Key: , + KEY_MINUS = 45, // Key: - + KEY_PERIOD = 46, // Key: . + KEY_SLASH = 47, // Key: / + KEY_ZERO = 48, // Key: 0 + KEY_ONE = 49, // Key: 1 + KEY_TWO = 50, // Key: 2 + KEY_THREE = 51, // Key: 3 + KEY_FOUR = 52, // Key: 4 + KEY_FIVE = 53, // Key: 5 + KEY_SIX = 54, // Key: 6 + KEY_SEVEN = 55, // Key: 7 + KEY_EIGHT = 56, // Key: 8 + KEY_NINE = 57, // Key: 9 + KEY_SEMICOLON = 59, // Key: ; + KEY_EQUAL = 61, // Key: = + KEY_A = 65, // Key: A | a + KEY_B = 66, // Key: B | b + KEY_C = 67, // Key: C | c + KEY_D = 68, // Key: D | d + KEY_E = 69, // Key: E | e + KEY_F = 70, // Key: F | f + KEY_G = 71, // Key: G | g + KEY_H = 72, // Key: H | h + KEY_I = 73, // Key: I | i + KEY_J = 74, // Key: J | j + KEY_K = 75, // Key: K | k + KEY_L = 76, // Key: L | l + KEY_M = 77, // Key: M | m + KEY_N = 78, // Key: N | n + KEY_O = 79, // Key: O | o + KEY_P = 80, // Key: P | p + KEY_Q = 81, // Key: Q | q + KEY_R = 82, // Key: R | r + KEY_S = 83, // Key: S | s + KEY_T = 84, // Key: T | t + KEY_U = 85, // Key: U | u + KEY_V = 86, // Key: V | v + KEY_W = 87, // Key: W | w + KEY_X = 88, // Key: X | x + KEY_Y = 89, // Key: Y | y + KEY_Z = 90, // Key: Z | z + KEY_LEFT_BRACKET = 91, // Key: [ + KEY_BACKSLASH = 92, // Key: '\' + KEY_RIGHT_BRACKET = 93, // Key: ] + KEY_GRAVE = 96, // Key: ` + // Function keys + KEY_SPACE = 32, // Key: Space + KEY_ESCAPE = 256, // Key: Esc + KEY_ENTER = 257, // Key: Enter + KEY_TAB = 258, // Key: Tab + KEY_BACKSPACE = 259, // Key: Backspace + KEY_INSERT = 260, // Key: Ins + KEY_DELETE = 261, // Key: Del + KEY_RIGHT = 262, // Key: Cursor right + KEY_LEFT = 263, // Key: Cursor left + KEY_DOWN = 264, // Key: Cursor down + KEY_UP = 265, // Key: Cursor up + KEY_PAGE_UP = 266, // Key: Page up + KEY_PAGE_DOWN = 267, // Key: Page down + KEY_HOME = 268, // Key: Home + KEY_END = 269, // Key: End + KEY_CAPS_LOCK = 280, // Key: Caps lock + KEY_SCROLL_LOCK = 281, // Key: Scroll down + KEY_NUM_LOCK = 282, // Key: Num lock + KEY_PRINT_SCREEN = 283, // Key: Print screen + KEY_PAUSE = 284, // Key: Pause + KEY_F1 = 290, // Key: F1 + KEY_F2 = 291, // Key: F2 + KEY_F3 = 292, // Key: F3 + KEY_F4 = 293, // Key: F4 + KEY_F5 = 294, // Key: F5 + KEY_F6 = 295, // Key: F6 + KEY_F7 = 296, // Key: F7 + KEY_F8 = 297, // Key: F8 + KEY_F9 = 298, // Key: F9 + KEY_F10 = 299, // Key: F10 + KEY_F11 = 300, // Key: F11 + KEY_F12 = 301, // Key: F12 + KEY_LEFT_SHIFT = 340, // Key: Shift left + KEY_LEFT_CONTROL = 341, // Key: Control left + KEY_LEFT_ALT = 342, // Key: Alt left + KEY_LEFT_SUPER = 343, // Key: Super left + KEY_RIGHT_SHIFT = 344, // Key: Shift right + KEY_RIGHT_CONTROL = 345, // Key: Control right + KEY_RIGHT_ALT = 346, // Key: Alt right + KEY_RIGHT_SUPER = 347, // Key: Super right + KEY_KB_MENU = 348, // Key: KB menu + // Keypad keys + KEY_KP_0 = 320, // Key: Keypad 0 + KEY_KP_1 = 321, // Key: Keypad 1 + KEY_KP_2 = 322, // Key: Keypad 2 + KEY_KP_3 = 323, // Key: Keypad 3 + KEY_KP_4 = 324, // Key: Keypad 4 + KEY_KP_5 = 325, // Key: Keypad 5 + KEY_KP_6 = 326, // Key: Keypad 6 + KEY_KP_7 = 327, // Key: Keypad 7 + KEY_KP_8 = 328, // Key: Keypad 8 + KEY_KP_9 = 329, // Key: Keypad 9 + KEY_KP_DECIMAL = 330, // Key: Keypad . + KEY_KP_DIVIDE = 331, // Key: Keypad / + KEY_KP_MULTIPLY = 332, // Key: Keypad * + KEY_KP_SUBTRACT = 333, // Key: Keypad - + KEY_KP_ADD = 334, // Key: Keypad + + KEY_KP_ENTER = 335, // Key: Keypad Enter + KEY_KP_EQUAL = 336, // Key: Keypad = + // Android key buttons + KEY_BACK = 4, // Key: Android back button + KEY_MENU = 5, // Key: Android menu button + KEY_VOLUME_UP = 24, // Key: Android volume up button + KEY_VOLUME_DOWN = 25 // Key: Android volume down button +} KeyboardKey; + +// Add backwards compatibility support for deprecated names +#define MOUSE_LEFT_BUTTON MOUSE_BUTTON_LEFT +#define MOUSE_RIGHT_BUTTON MOUSE_BUTTON_RIGHT +#define MOUSE_MIDDLE_BUTTON MOUSE_BUTTON_MIDDLE + +// Mouse buttons +typedef enum { + MOUSE_BUTTON_LEFT = 0, // Mouse button left + MOUSE_BUTTON_RIGHT = 1, // Mouse button right + MOUSE_BUTTON_MIDDLE = 2, // Mouse button middle (pressed wheel) + MOUSE_BUTTON_SIDE = 3, // Mouse button side (advanced mouse device) + MOUSE_BUTTON_EXTRA = 4, // Mouse button extra (advanced mouse device) + MOUSE_BUTTON_FORWARD = 5, // Mouse button forward (advanced mouse device) + MOUSE_BUTTON_BACK = 6, // Mouse button back (advanced mouse device) +} MouseButton; + +// Mouse cursor +typedef enum { + MOUSE_CURSOR_DEFAULT = 0, // Default pointer shape + MOUSE_CURSOR_ARROW = 1, // Arrow shape + MOUSE_CURSOR_IBEAM = 2, // Text writing cursor shape + MOUSE_CURSOR_CROSSHAIR = 3, // Cross shape + MOUSE_CURSOR_POINTING_HAND = 4, // Pointing hand cursor + MOUSE_CURSOR_RESIZE_EW = 5, // Horizontal resize/move arrow shape + MOUSE_CURSOR_RESIZE_NS = 6, // Vertical resize/move arrow shape + MOUSE_CURSOR_RESIZE_NWSE = 7, // Top-left to bottom-right diagonal resize/move arrow shape + MOUSE_CURSOR_RESIZE_NESW = 8, // The top-right to bottom-left diagonal resize/move arrow shape + MOUSE_CURSOR_RESIZE_ALL = 9, // The omnidirectional resize/move cursor shape + MOUSE_CURSOR_NOT_ALLOWED = 10 // The operation-not-allowed shape +} MouseCursor; + +// Gamepad buttons +typedef enum { + GAMEPAD_BUTTON_UNKNOWN = 0, // Unknown button, just for error checking + GAMEPAD_BUTTON_LEFT_FACE_UP, // Gamepad left DPAD up button + GAMEPAD_BUTTON_LEFT_FACE_RIGHT, // Gamepad left DPAD right button + GAMEPAD_BUTTON_LEFT_FACE_DOWN, // Gamepad left DPAD down button + GAMEPAD_BUTTON_LEFT_FACE_LEFT, // Gamepad left DPAD left button + GAMEPAD_BUTTON_RIGHT_FACE_UP, // Gamepad right button up (i.e. PS3: Triangle, Xbox: Y) + GAMEPAD_BUTTON_RIGHT_FACE_RIGHT, // Gamepad right button right (i.e. PS3: Circle, Xbox: B) + GAMEPAD_BUTTON_RIGHT_FACE_DOWN, // Gamepad right button down (i.e. PS3: Cross, Xbox: A) + GAMEPAD_BUTTON_RIGHT_FACE_LEFT, // Gamepad right button left (i.e. PS3: Square, Xbox: X) + GAMEPAD_BUTTON_LEFT_TRIGGER_1, // Gamepad top/back trigger left (first), it could be a trailing button + GAMEPAD_BUTTON_LEFT_TRIGGER_2, // Gamepad top/back trigger left (second), it could be a trailing button + GAMEPAD_BUTTON_RIGHT_TRIGGER_1, // Gamepad top/back trigger right (first), it could be a trailing button + GAMEPAD_BUTTON_RIGHT_TRIGGER_2, // Gamepad top/back trigger right (second), it could be a trailing button + GAMEPAD_BUTTON_MIDDLE_LEFT, // Gamepad center buttons, left one (i.e. PS3: Select) + GAMEPAD_BUTTON_MIDDLE, // Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX) + GAMEPAD_BUTTON_MIDDLE_RIGHT, // Gamepad center buttons, right one (i.e. PS3: Start) + GAMEPAD_BUTTON_LEFT_THUMB, // Gamepad joystick pressed button left + GAMEPAD_BUTTON_RIGHT_THUMB // Gamepad joystick pressed button right +} GamepadButton; + +// Gamepad axis +typedef enum { + GAMEPAD_AXIS_LEFT_X = 0, // Gamepad left stick X axis + GAMEPAD_AXIS_LEFT_Y = 1, // Gamepad left stick Y axis + GAMEPAD_AXIS_RIGHT_X = 2, // Gamepad right stick X axis + GAMEPAD_AXIS_RIGHT_Y = 3, // Gamepad right stick Y axis + GAMEPAD_AXIS_LEFT_TRIGGER = 4, // Gamepad back trigger left, pressure level: [1..-1] + GAMEPAD_AXIS_RIGHT_TRIGGER = 5 // Gamepad back trigger right, pressure level: [1..-1] +} GamepadAxis; + +// Material map index +typedef enum { + MATERIAL_MAP_ALBEDO = 0, // Albedo material (same as: MATERIAL_MAP_DIFFUSE) + MATERIAL_MAP_METALNESS, // Metalness material (same as: MATERIAL_MAP_SPECULAR) + MATERIAL_MAP_NORMAL, // Normal material + MATERIAL_MAP_ROUGHNESS, // Roughness material + MATERIAL_MAP_OCCLUSION, // Ambient occlusion material + MATERIAL_MAP_EMISSION, // Emission material + MATERIAL_MAP_HEIGHT, // Heightmap material + MATERIAL_MAP_CUBEMAP, // Cubemap material (NOTE: Uses GL_TEXTURE_CUBE_MAP) + MATERIAL_MAP_IRRADIANCE, // Irradiance material (NOTE: Uses GL_TEXTURE_CUBE_MAP) + MATERIAL_MAP_PREFILTER, // Prefilter material (NOTE: Uses GL_TEXTURE_CUBE_MAP) + MATERIAL_MAP_BRDF // Brdf material +} MaterialMapIndex; + +#define MATERIAL_MAP_DIFFUSE MATERIAL_MAP_ALBEDO +#define MATERIAL_MAP_SPECULAR MATERIAL_MAP_METALNESS + +// Shader location index +typedef enum { + SHADER_LOC_VERTEX_POSITION = 0, // Shader location: vertex attribute: position + SHADER_LOC_VERTEX_TEXCOORD01, // Shader location: vertex attribute: texcoord01 + SHADER_LOC_VERTEX_TEXCOORD02, // Shader location: vertex attribute: texcoord02 + SHADER_LOC_VERTEX_NORMAL, // Shader location: vertex attribute: normal + SHADER_LOC_VERTEX_TANGENT, // Shader location: vertex attribute: tangent + SHADER_LOC_VERTEX_COLOR, // Shader location: vertex attribute: color + SHADER_LOC_MATRIX_MVP, // Shader location: matrix uniform: model-view-projection + SHADER_LOC_MATRIX_VIEW, // Shader location: matrix uniform: view (camera transform) + SHADER_LOC_MATRIX_PROJECTION, // Shader location: matrix uniform: projection + SHADER_LOC_MATRIX_MODEL, // Shader location: matrix uniform: model (transform) + SHADER_LOC_MATRIX_NORMAL, // Shader location: matrix uniform: normal + SHADER_LOC_VECTOR_VIEW, // Shader location: vector uniform: view + SHADER_LOC_COLOR_DIFFUSE, // Shader location: vector uniform: diffuse color + SHADER_LOC_COLOR_SPECULAR, // Shader location: vector uniform: specular color + SHADER_LOC_COLOR_AMBIENT, // Shader location: vector uniform: ambient color + SHADER_LOC_MAP_ALBEDO, // Shader location: sampler2d texture: albedo (same as: SHADER_LOC_MAP_DIFFUSE) + SHADER_LOC_MAP_METALNESS, // Shader location: sampler2d texture: metalness (same as: SHADER_LOC_MAP_SPECULAR) + SHADER_LOC_MAP_NORMAL, // Shader location: sampler2d texture: normal + SHADER_LOC_MAP_ROUGHNESS, // Shader location: sampler2d texture: roughness + SHADER_LOC_MAP_OCCLUSION, // Shader location: sampler2d texture: occlusion + SHADER_LOC_MAP_EMISSION, // Shader location: sampler2d texture: emission + SHADER_LOC_MAP_HEIGHT, // Shader location: sampler2d texture: height + SHADER_LOC_MAP_CUBEMAP, // Shader location: samplerCube texture: cubemap + SHADER_LOC_MAP_IRRADIANCE, // Shader location: samplerCube texture: irradiance + SHADER_LOC_MAP_PREFILTER, // Shader location: samplerCube texture: prefilter + SHADER_LOC_MAP_BRDF, // Shader location: sampler2d texture: brdf + SHADER_LOC_VERTEX_BONEIDS, // Shader location: vertex attribute: boneIds + SHADER_LOC_VERTEX_BONEWEIGHTS, // Shader location: vertex attribute: boneWeights + SHADER_LOC_BONE_MATRICES // Shader location: array of matrices uniform: boneMatrices +} ShaderLocationIndex; + +#define SHADER_LOC_MAP_DIFFUSE SHADER_LOC_MAP_ALBEDO +#define SHADER_LOC_MAP_SPECULAR SHADER_LOC_MAP_METALNESS + +// Shader uniform data type +typedef enum { + SHADER_UNIFORM_FLOAT = 0, // Shader uniform type: float + SHADER_UNIFORM_VEC2, // Shader uniform type: vec2 (2 float) + SHADER_UNIFORM_VEC3, // Shader uniform type: vec3 (3 float) + SHADER_UNIFORM_VEC4, // Shader uniform type: vec4 (4 float) + SHADER_UNIFORM_INT, // Shader uniform type: int + SHADER_UNIFORM_IVEC2, // Shader uniform type: ivec2 (2 int) + SHADER_UNIFORM_IVEC3, // Shader uniform type: ivec3 (3 int) + SHADER_UNIFORM_IVEC4, // Shader uniform type: ivec4 (4 int) + SHADER_UNIFORM_SAMPLER2D // Shader uniform type: sampler2d +} ShaderUniformDataType; + +// Shader attribute data types +typedef enum { + SHADER_ATTRIB_FLOAT = 0, // Shader attribute type: float + SHADER_ATTRIB_VEC2, // Shader attribute type: vec2 (2 float) + SHADER_ATTRIB_VEC3, // Shader attribute type: vec3 (3 float) + SHADER_ATTRIB_VEC4 // Shader attribute type: vec4 (4 float) +} ShaderAttributeDataType; + +// Pixel formats +// NOTE: Support depends on OpenGL version and platform +typedef enum { + PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1, // 8 bit per pixel (no alpha) + PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA, // 8*2 bpp (2 channels) + PIXELFORMAT_UNCOMPRESSED_R5G6B5, // 16 bpp + PIXELFORMAT_UNCOMPRESSED_R8G8B8, // 24 bpp + PIXELFORMAT_UNCOMPRESSED_R5G5B5A1, // 16 bpp (1 bit alpha) + PIXELFORMAT_UNCOMPRESSED_R4G4B4A4, // 16 bpp (4 bit alpha) + PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, // 32 bpp + PIXELFORMAT_UNCOMPRESSED_R32, // 32 bpp (1 channel - float) + PIXELFORMAT_UNCOMPRESSED_R32G32B32, // 32*3 bpp (3 channels - float) + PIXELFORMAT_UNCOMPRESSED_R32G32B32A32, // 32*4 bpp (4 channels - float) + PIXELFORMAT_UNCOMPRESSED_R16, // 16 bpp (1 channel - half float) + PIXELFORMAT_UNCOMPRESSED_R16G16B16, // 16*3 bpp (3 channels - half float) + PIXELFORMAT_UNCOMPRESSED_R16G16B16A16, // 16*4 bpp (4 channels - half float) + PIXELFORMAT_COMPRESSED_DXT1_RGB, // 4 bpp (no alpha) + PIXELFORMAT_COMPRESSED_DXT1_RGBA, // 4 bpp (1 bit alpha) + PIXELFORMAT_COMPRESSED_DXT3_RGBA, // 8 bpp + PIXELFORMAT_COMPRESSED_DXT5_RGBA, // 8 bpp + PIXELFORMAT_COMPRESSED_ETC1_RGB, // 4 bpp + PIXELFORMAT_COMPRESSED_ETC2_RGB, // 4 bpp + PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA, // 8 bpp + PIXELFORMAT_COMPRESSED_PVRT_RGB, // 4 bpp + PIXELFORMAT_COMPRESSED_PVRT_RGBA, // 4 bpp + PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA, // 8 bpp + PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA // 2 bpp +} PixelFormat; + +// Texture parameters: filter mode +// NOTE 1: Filtering considers mipmaps if available in the texture +// NOTE 2: Filter is accordingly set for minification and magnification +typedef enum { + TEXTURE_FILTER_POINT = 0, // No filter, just pixel approximation + TEXTURE_FILTER_BILINEAR, // Linear filtering + TEXTURE_FILTER_TRILINEAR, // Trilinear filtering (linear with mipmaps) + TEXTURE_FILTER_ANISOTROPIC_4X, // Anisotropic filtering 4x + TEXTURE_FILTER_ANISOTROPIC_8X, // Anisotropic filtering 8x + TEXTURE_FILTER_ANISOTROPIC_16X, // Anisotropic filtering 16x +} TextureFilter; + +// Texture parameters: wrap mode +typedef enum { + TEXTURE_WRAP_REPEAT = 0, // Repeats texture in tiled mode + TEXTURE_WRAP_CLAMP, // Clamps texture to edge pixel in tiled mode + TEXTURE_WRAP_MIRROR_REPEAT, // Mirrors and repeats the texture in tiled mode + TEXTURE_WRAP_MIRROR_CLAMP // Mirrors and clamps to border the texture in tiled mode +} TextureWrap; + +// Cubemap layouts +typedef enum { + CUBEMAP_LAYOUT_AUTO_DETECT = 0, // Automatically detect layout type + CUBEMAP_LAYOUT_LINE_VERTICAL, // Layout is defined by a vertical line with faces + CUBEMAP_LAYOUT_LINE_HORIZONTAL, // Layout is defined by a horizontal line with faces + CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR, // Layout is defined by a 3x4 cross with cubemap faces + CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE // Layout is defined by a 4x3 cross with cubemap faces +} CubemapLayout; + +// Font type, defines generation method +typedef enum { + FONT_DEFAULT = 0, // Default font generation, anti-aliased + FONT_BITMAP, // Bitmap font generation, no anti-aliasing + FONT_SDF // SDF font generation, requires external shader +} FontType; + +// Color blending modes (pre-defined) +typedef enum { + BLEND_ALPHA = 0, // Blend textures considering alpha (default) + BLEND_ADDITIVE, // Blend textures adding colors + BLEND_MULTIPLIED, // Blend textures multiplying colors + BLEND_ADD_COLORS, // Blend textures adding colors (alternative) + BLEND_SUBTRACT_COLORS, // Blend textures subtracting colors (alternative) + BLEND_ALPHA_PREMULTIPLY, // Blend premultiplied textures considering alpha + BLEND_CUSTOM, // Blend textures using custom src/dst factors (use rlSetBlendFactors()) + BLEND_CUSTOM_SEPARATE // Blend textures using custom rgb/alpha separate src/dst factors (use rlSetBlendFactorsSeparate()) +} BlendMode; + +// Gesture +// NOTE: Provided as bit-wise flags to enable only desired gestures +typedef enum { + GESTURE_NONE = 0, // No gesture + GESTURE_TAP = 1, // Tap gesture + GESTURE_DOUBLETAP = 2, // Double tap gesture + GESTURE_HOLD = 4, // Hold gesture + GESTURE_DRAG = 8, // Drag gesture + GESTURE_SWIPE_RIGHT = 16, // Swipe right gesture + GESTURE_SWIPE_LEFT = 32, // Swipe left gesture + GESTURE_SWIPE_UP = 64, // Swipe up gesture + GESTURE_SWIPE_DOWN = 128, // Swipe down gesture + GESTURE_PINCH_IN = 256, // Pinch in gesture + GESTURE_PINCH_OUT = 512 // Pinch out gesture +} Gesture; + +// Camera system modes +typedef enum { + CAMERA_CUSTOM = 0, // Camera custom, controlled by user (UpdateCamera() does nothing) + CAMERA_FREE, // Camera free mode + CAMERA_ORBITAL, // Camera orbital, around target, zoom supported + CAMERA_FIRST_PERSON, // Camera first person + CAMERA_THIRD_PERSON // Camera third person +} CameraMode; + +// Camera projection +typedef enum { + CAMERA_PERSPECTIVE = 0, // Perspective projection + CAMERA_ORTHOGRAPHIC // Orthographic projection +} CameraProjection; + +// N-patch layout +typedef enum { + NPATCH_NINE_PATCH = 0, // Npatch layout: 3x3 tiles + NPATCH_THREE_PATCH_VERTICAL, // Npatch layout: 1x3 tiles + NPATCH_THREE_PATCH_HORIZONTAL // Npatch layout: 3x1 tiles +} NPatchLayout; + +// Callbacks to hook some internal functions +// WARNING: These callbacks are intended for advanced users +typedef void (*TraceLogCallback)(int logLevel, const char *text, va_list args); // Logging: Redirect trace log messages +typedef unsigned char *(*LoadFileDataCallback)(const char *fileName, int *dataSize); // FileIO: Load binary data +typedef bool (*SaveFileDataCallback)(const char *fileName, void *data, int dataSize); // FileIO: Save binary data +typedef char *(*LoadFileTextCallback)(const char *fileName); // FileIO: Load text data +typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileIO: Save text data + +//------------------------------------------------------------------------------------ +// Global Variables Definition +//------------------------------------------------------------------------------------ +// It's lonely here... + +//------------------------------------------------------------------------------------ +// Window and Graphics Device Functions (Module: core) +//------------------------------------------------------------------------------------ + +#if defined(__cplusplus) +extern "C" { // Prevents name mangling of functions +#endif + +// Window-related functions +RLAPI void InitWindow(int width, int height, const char *title); // Initialize window and OpenGL context +RLAPI void CloseWindow(void); // Close window and unload OpenGL context +RLAPI bool WindowShouldClose(void); // Check if application should close (KEY_ESCAPE pressed or windows close icon clicked) +RLAPI bool IsWindowReady(void); // Check if window has been initialized successfully +RLAPI bool IsWindowFullscreen(void); // Check if window is currently fullscreen +RLAPI bool IsWindowHidden(void); // Check if window is currently hidden +RLAPI bool IsWindowMinimized(void); // Check if window is currently minimized +RLAPI bool IsWindowMaximized(void); // Check if window is currently maximized +RLAPI bool IsWindowFocused(void); // Check if window is currently focused +RLAPI bool IsWindowResized(void); // Check if window has been resized last frame +RLAPI bool IsWindowState(unsigned int flag); // Check if one specific window flag is enabled +RLAPI void SetWindowState(unsigned int flags); // Set window configuration state using flags +RLAPI void ClearWindowState(unsigned int flags); // Clear window configuration state flags +RLAPI void ToggleFullscreen(void); // Toggle window state: fullscreen/windowed, resizes monitor to match window resolution +RLAPI void ToggleBorderlessWindowed(void); // Toggle window state: borderless windowed, resizes window to match monitor resolution +RLAPI void MaximizeWindow(void); // Set window state: maximized, if resizable +RLAPI void MinimizeWindow(void); // Set window state: minimized, if resizable +RLAPI void RestoreWindow(void); // Set window state: not minimized/maximized +RLAPI void SetWindowIcon(Image image); // Set icon for window (single image, RGBA 32bit) +RLAPI void SetWindowIcons(Image *images, int count); // Set icon for window (multiple images, RGBA 32bit) +RLAPI void SetWindowTitle(const char *title); // Set title for window +RLAPI void SetWindowPosition(int x, int y); // Set window position on screen +RLAPI void SetWindowMonitor(int monitor); // Set monitor for the current window +RLAPI void SetWindowMinSize(int width, int height); // Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE) +RLAPI void SetWindowMaxSize(int width, int height); // Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE) +RLAPI void SetWindowSize(int width, int height); // Set window dimensions +RLAPI void SetWindowOpacity(float opacity); // Set window opacity [0.0f..1.0f] +RLAPI void SetWindowFocused(void); // Set window focused +RLAPI void *GetWindowHandle(void); // Get native window handle +RLAPI int GetScreenWidth(void); // Get current screen width +RLAPI int GetScreenHeight(void); // Get current screen height +RLAPI int GetRenderWidth(void); // Get current render width (it considers HiDPI) +RLAPI int GetRenderHeight(void); // Get current render height (it considers HiDPI) +RLAPI int GetMonitorCount(void); // Get number of connected monitors +RLAPI int GetCurrentMonitor(void); // Get current monitor where window is placed +RLAPI Vector2 GetMonitorPosition(int monitor); // Get specified monitor position +RLAPI int GetMonitorWidth(int monitor); // Get specified monitor width (current video mode used by monitor) +RLAPI int GetMonitorHeight(int monitor); // Get specified monitor height (current video mode used by monitor) +RLAPI int GetMonitorPhysicalWidth(int monitor); // Get specified monitor physical width in millimetres +RLAPI int GetMonitorPhysicalHeight(int monitor); // Get specified monitor physical height in millimetres +RLAPI int GetMonitorRefreshRate(int monitor); // Get specified monitor refresh rate +RLAPI Vector2 GetWindowPosition(void); // Get window position XY on monitor +RLAPI Vector2 GetWindowScaleDPI(void); // Get window scale DPI factor +RLAPI const char *GetMonitorName(int monitor); // Get the human-readable, UTF-8 encoded name of the specified monitor +RLAPI void SetClipboardText(const char *text); // Set clipboard text content +RLAPI const char *GetClipboardText(void); // Get clipboard text content +RLAPI Image GetClipboardImage(void); // Get clipboard image content +RLAPI void EnableEventWaiting(void); // Enable waiting for events on EndDrawing(), no automatic event polling +RLAPI void DisableEventWaiting(void); // Disable waiting for events on EndDrawing(), automatic events polling + +// 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 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); // Begin 2D mode with custom camera (2D) +RLAPI void EndMode2D(void); // Ends 2D mode with custom camera +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); // 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, 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 +RLAPI void BeginVrStereoMode(VrStereoConfig config); // Begin stereo rendering (requires VR simulator) +RLAPI void EndVrStereoMode(void); // End stereo rendering (requires VR simulator) + +// VR stereo config functions for VR simulator +RLAPI VrStereoConfig LoadVrStereoConfig(VrDeviceInfo device); // Load VR stereo config for VR simulator device parameters +RLAPI void UnloadVrStereoConfig(VrStereoConfig config); // Unload VR stereo config + +// Shader management functions +// NOTE: Shader functionality is not available on OpenGL 1.1 +RLAPI Shader LoadShader(const char *vsFileName, const char *fsFileName); // Load shader from files and bind default locations +RLAPI Shader LoadShaderFromMemory(const char *vsCode, const char *fsCode); // Load shader from code strings and bind default locations +RLAPI bool IsShaderValid(Shader shader); // Check if a shader is valid (loaded on GPU) +RLAPI int GetShaderLocation(Shader shader, const char *uniformName); // Get shader uniform location +RLAPI int GetShaderLocationAttrib(Shader shader, const char *attribName); // Get shader attribute location +RLAPI void SetShaderValue(Shader shader, int locIndex, const void *value, int uniformType); // Set shader uniform value +RLAPI void SetShaderValueV(Shader shader, int locIndex, const void *value, int uniformType, int count); // Set shader uniform value vector +RLAPI void SetShaderValueMatrix(Shader shader, int locIndex, Matrix mat); // Set shader uniform value (matrix 4x4) +RLAPI void SetShaderValueTexture(Shader shader, int locIndex, Texture2D texture); // Set shader uniform value for texture (sampler2d) +RLAPI void UnloadShader(Shader shader); // Unload shader from GPU memory (VRAM) + +// Screen-space-related functions +#define GetMouseRay GetScreenToWorldRay // Compatibility hack for previous raylib versions +RLAPI Ray GetScreenToWorldRay(Vector2 position, Camera camera); // Get a ray trace from screen position (i.e mouse) +RLAPI Ray GetScreenToWorldRayEx(Vector2 position, Camera camera, int width, int height); // Get a ray trace from screen position (i.e mouse) in a viewport +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 +RLAPI Matrix GetCameraMatrix(Camera camera); // Get camera transform matrix (view matrix) +RLAPI Matrix GetCameraMatrix2D(Camera2D camera); // Get camera 2d transform matrix + +// Timing-related functions +RLAPI void SetTargetFPS(int fps); // Set target FPS (maximum) +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() +RLAPI int GetFPS(void); // Get current FPS + +// Custom frame control functions +// NOTE: Those functions are intended for advanced users that want full control over the frame processing +// By default EndDrawing() does this job: draws everything + SwapScreenBuffer() + manage frame timing + 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(double seconds); // Wait for some time (halt program execution) + +// Random values generation functions +RLAPI void SetRandomSeed(unsigned int seed); // Set the seed for the random number generator +RLAPI int GetRandomValue(int min, int max); // Get a random value between min and max (both included) +RLAPI int *LoadRandomSequence(unsigned int count, int min, int max); // Load random values sequence, no values repeated +RLAPI void UnloadRandomSequence(int *sequence); // Unload random values sequence + +// Misc. functions +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 OpenURL(const char *url); // Open URL with default system browser (if available) + +// NOTE: Following functions implemented in module [utils] +//------------------------------------------------------------------ +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(unsigned int size); // Internal memory allocator +RLAPI void *MemRealloc(void *ptr, unsigned int size); // Internal memory reallocator +RLAPI void MemFree(void *ptr); // Internal memory free + +// Set custom callbacks +// WARNING: Callbacks setup is intended for advanced users +RLAPI void SetTraceLogCallback(TraceLogCallback callback); // Set custom trace log +RLAPI void SetLoadFileDataCallback(LoadFileDataCallback callback); // Set custom file binary data loader +RLAPI void SetSaveFileDataCallback(SaveFileDataCallback callback); // Set custom file binary data saver +RLAPI void SetLoadFileTextCallback(LoadFileTextCallback callback); // Set custom file text data loader +RLAPI void SetSaveFileTextCallback(SaveFileTextCallback callback); // Set custom file text data saver + +// Files management functions +RLAPI unsigned char *LoadFileData(const char *fileName, int *dataSize); // Load file data as byte array (read) +RLAPI void UnloadFileData(unsigned char *data); // Unload file data allocated by LoadFileData() +RLAPI bool SaveFileData(const char *fileName, void *data, int dataSize); // Save data to file from byte array (write), returns true on success +RLAPI bool ExportDataAsCode(const unsigned char *data, int dataSize, const char *fileName); // Export data to code (.h), returns true on success +RLAPI char *LoadFileText(const char *fileName); // Load text data from file (read), returns a '\0' terminated string +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 +//------------------------------------------------------------------ + +// File system functions +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 int GetFileLength(const char *fileName); // Get file length in bytes (NOTE: GetFileSize() conflicts with windows.h) +RLAPI const char *GetFileExtension(const char *fileName); // Get pointer to extension for a filename string (includes dot: '.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) +RLAPI const char *GetPrevDirectoryPath(const char *dirPath); // Get previous directory path for a given path (uses static string) +RLAPI const char *GetWorkingDirectory(void); // Get current working directory (uses static string) +RLAPI const char *GetApplicationDirectory(void); // Get the directory of the running application (uses static string) +RLAPI int MakeDirectory(const char *dirPath); // Create directories (including full path requested), returns 0 on success +RLAPI bool ChangeDirectory(const char *dir); // Change working directory, return true on success +RLAPI bool IsPathFile(const char *path); // Check if a given path is a file or a directory +RLAPI bool IsFileNameValid(const char *fileName); // Check if fileName is valid for the platform/OS +RLAPI FilePathList LoadDirectoryFiles(const char *dirPath); // Load directory filepaths +RLAPI FilePathList LoadDirectoryFilesEx(const char *basePath, const char *filter, bool scanSubdirs); // Load directory filepaths with extension filtering and recursive directory scan. Use 'DIR' in the filter string to include directories in the result +RLAPI void UnloadDirectoryFiles(FilePathList files); // Unload filepaths +RLAPI bool IsFileDropped(void); // Check if a file has been dropped into window +RLAPI FilePathList LoadDroppedFiles(void); // Load dropped filepaths +RLAPI void UnloadDroppedFiles(FilePathList files); // Unload dropped filepaths +RLAPI long GetFileModTime(const char *fileName); // Get file modification time (last write time) + +// Compression/Encoding functionality +RLAPI unsigned char *CompressData(const unsigned char *data, int dataSize, int *compDataSize); // Compress data (DEFLATE algorithm), memory must be MemFree() +RLAPI unsigned char *DecompressData(const unsigned char *compData, int compDataSize, int *dataSize); // Decompress data (DEFLATE algorithm), memory must be MemFree() +RLAPI char *EncodeDataBase64(const unsigned char *data, int dataSize, int *outputSize); // Encode data to Base64 string, memory must be MemFree() +RLAPI unsigned char *DecodeDataBase64(const unsigned char *data, int *outputSize); // Decode Base64 string data, memory must be MemFree() +RLAPI unsigned int ComputeCRC32(unsigned char *data, int dataSize); // Compute CRC32 hash code +RLAPI unsigned int *ComputeMD5(unsigned char *data, int dataSize); // Compute MD5 hash code, returns static int[4] (16 bytes) +RLAPI unsigned int *ComputeSHA1(unsigned char *data, int dataSize); // Compute SHA1 hash code, returns static int[5] (20 bytes) + + +// Automation events functionality +RLAPI AutomationEventList LoadAutomationEventList(const char *fileName); // Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS +RLAPI void UnloadAutomationEventList(AutomationEventList list); // Unload automation events list from file +RLAPI bool ExportAutomationEventList(AutomationEventList list, const char *fileName); // Export automation events list as text file +RLAPI void SetAutomationEventList(AutomationEventList *list); // Set automation event list to record to +RLAPI void SetAutomationEventBaseFrame(int frame); // Set automation event internal base frame to start recording +RLAPI void StartAutomationEventRecording(void); // Start recording automation events (AutomationEventList must be set) +RLAPI void StopAutomationEventRecording(void); // Stop recording automation events +RLAPI void PlayAutomationEvent(AutomationEvent event); // Play a recorded automation event + +//------------------------------------------------------------------------------------ +// Input Handling Functions (Module: core) +//------------------------------------------------------------------------------------ + +// Input-related functions: keyboard +RLAPI bool IsKeyPressed(int key); // Check if a key has been pressed once +RLAPI bool IsKeyPressedRepeat(int key); // Check if a key has been pressed again +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 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 +RLAPI void SetExitKey(int key); // Set a custom key to exit program (default is ESC) + +// Input-related functions: gamepads +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); // 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) +RLAPI void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor, float duration); // Set gamepad vibration for both motors (duration in seconds) + +// Input-related functions: mouse +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); // Get mouse wheel movement for X or Y, whichever is larger +RLAPI Vector2 GetMouseWheelMoveV(void); // Get mouse wheel movement for both X and Y +RLAPI void SetMouseCursor(int cursor); // Set mouse cursor + +// Input-related functions: touch +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: rgestures) +//------------------------------------------------------------------------------------ +RLAPI void SetGesturesEnabled(unsigned int flags); // Enable a set of gestures using flags +RLAPI bool IsGestureDetected(unsigned int gesture); // Check if a gesture have been detected +RLAPI int GetGestureDetected(void); // Get latest detected gesture +RLAPI float GetGestureHoldDuration(void); // Get gesture hold time in seconds +RLAPI Vector2 GetGestureDragVector(void); // Get gesture drag vector +RLAPI float GetGestureDragAngle(void); // Get gesture drag angle +RLAPI Vector2 GetGesturePinchVector(void); // Get gesture pinch delta +RLAPI float GetGesturePinchAngle(void); // Get gesture pinch angle + +//------------------------------------------------------------------------------------ +// Camera System Functions (Module: rcamera) +//------------------------------------------------------------------------------------ +RLAPI void UpdateCamera(Camera *camera, int mode); // Update camera position for selected mode +RLAPI void UpdateCameraPro(Camera *camera, Vector3 movement, Vector3 rotation, float zoom); // Update camera movement/rotation + +//------------------------------------------------------------------------------------ +// Basic Shapes Drawing Functions (Module: shapes) +//------------------------------------------------------------------------------------ +// 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 Texture2D GetShapesTexture(void); // Get texture that is used for shapes drawing +RLAPI Rectangle GetShapesTextureRectangle(void); // Get texture source rectangle that is used for shapes drawing + +// Basic shapes drawing functions +RLAPI void DrawPixel(int posX, int posY, Color color); // Draw a pixel using geometry [Can be slow, use with care] +RLAPI void DrawPixelV(Vector2 position, Color color); // Draw a pixel using geometry (Vector version) [Can be slow, use with care] +RLAPI void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw a line +RLAPI void DrawLineV(Vector2 startPos, Vector2 endPos, Color color); // Draw a line (using gl lines) +RLAPI void DrawLineEx(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw a line (using triangles/quads) +RLAPI void DrawLineStrip(const Vector2 *points, int pointCount, Color color); // Draw lines sequence (using gl lines) +RLAPI void DrawLineBezier(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw line segment cubic-bezier in-out interpolation +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 +RLAPI void DrawCircleGradient(int centerX, int centerY, float radius, Color inner, Color outer); // Draw a gradient-filled circle +RLAPI void DrawCircleV(Vector2 center, float radius, Color color); // Draw a color-filled circle (Vector version) +RLAPI void DrawCircleLines(int centerX, int centerY, float radius, Color color); // Draw circle outline +RLAPI void DrawCircleLinesV(Vector2 center, float radius, Color color); // Draw circle outline (Vector version) +RLAPI void DrawEllipse(int centerX, int centerY, float radiusH, float radiusV, Color color); // Draw ellipse +RLAPI void DrawEllipseLines(int centerX, int centerY, float radiusH, float radiusV, Color color); // Draw ellipse outline +RLAPI void DrawRing(Vector2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, int segments, Color color); // Draw ring +RLAPI void DrawRingLines(Vector2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, int segments, Color color); // Draw ring outline +RLAPI void DrawRectangle(int posX, int posY, int width, int height, Color color); // Draw a color-filled rectangle +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 top, Color bottom); // Draw a vertical-gradient-filled rectangle +RLAPI void DrawRectangleGradientH(int posX, int posY, int width, int height, Color left, Color right); // Draw a horizontal-gradient-filled rectangle +RLAPI void DrawRectangleGradientEx(Rectangle rec, Color topLeft, Color bottomLeft, Color topRight, Color bottomRight); // 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, 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, Color color); // Draw rectangle lines with rounded edges +RLAPI void DrawRectangleRoundedLinesEx(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(const Vector2 *points, int pointCount, Color color); // Draw a triangle fan defined by points (first vertex is the center) +RLAPI void DrawTriangleStrip(const 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 + +// Splines drawing functions +RLAPI void DrawSplineLinear(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Linear, minimum 2 points +RLAPI void DrawSplineBasis(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: B-Spline, minimum 4 points +RLAPI void DrawSplineCatmullRom(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Catmull-Rom, minimum 4 points +RLAPI void DrawSplineBezierQuadratic(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] +RLAPI void DrawSplineBezierCubic(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] +RLAPI void DrawSplineSegmentLinear(Vector2 p1, Vector2 p2, float thick, Color color); // Draw spline segment: Linear, 2 points +RLAPI void DrawSplineSegmentBasis(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color); // Draw spline segment: B-Spline, 4 points +RLAPI void DrawSplineSegmentCatmullRom(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color); // Draw spline segment: Catmull-Rom, 4 points +RLAPI void DrawSplineSegmentBezierQuadratic(Vector2 p1, Vector2 c2, Vector2 p3, float thick, Color color); // Draw spline segment: Quadratic Bezier, 2 points, 1 control point +RLAPI void DrawSplineSegmentBezierCubic(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, float thick, Color color); // Draw spline segment: Cubic Bezier, 2 points, 2 control points + +// Spline segment point evaluation functions, for a given t [0.0f .. 1.0f] +RLAPI Vector2 GetSplinePointLinear(Vector2 startPos, Vector2 endPos, float t); // Get (evaluate) spline point: Linear +RLAPI Vector2 GetSplinePointBasis(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float t); // Get (evaluate) spline point: B-Spline +RLAPI Vector2 GetSplinePointCatmullRom(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float t); // Get (evaluate) spline point: Catmull-Rom +RLAPI Vector2 GetSplinePointBezierQuad(Vector2 p1, Vector2 c2, Vector2 p3, float t); // Get (evaluate) spline point: Quadratic Bezier +RLAPI Vector2 GetSplinePointBezierCubic(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, float t); // Get (evaluate) spline point: Cubic Bezier + +// Basic shapes collision detection functions +RLAPI bool CheckCollisionRecs(Rectangle rec1, Rectangle rec2); // Check collision between two rectangles +RLAPI bool CheckCollisionCircles(Vector2 center1, float radius1, Vector2 center2, float radius2); // Check collision between two circles +RLAPI bool CheckCollisionCircleRec(Vector2 center, float radius, Rectangle rec); // Check collision between circle and rectangle +RLAPI bool CheckCollisionCircleLine(Vector2 center, float radius, Vector2 p1, Vector2 p2); // Check if circle collides with a line created betweeen two points [p1] and [p2] +RLAPI bool CheckCollisionPointRec(Vector2 point, Rectangle rec); // Check if point is inside rectangle +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 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 bool CheckCollisionPointPoly(Vector2 point, const Vector2 *points, int pointCount); // Check if point is within a polygon described by array of vertices +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 Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2); // Get collision rectangle for two rectangles collision + +//------------------------------------------------------------------------------------ +// Texture Loading and Drawing Functions (Module: textures) +//------------------------------------------------------------------------------------ + +// Image loading functions +// NOTE: These functions do not require GPU access +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 LoadImageAnimFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int *frames); // Load image sequence from memory buffer +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 bool IsImageValid(Image image); // Check if an image is valid (data and parameters) +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 unsigned char *ExportImageToMemory(Image image, const char *fileType, int *fileSize); // Export image to memory buffer +RLAPI bool ExportImageAsCode(Image image, const char *fileName); // Export image as code file defining an array of bytes, returns true on success + +// Image generation functions +RLAPI Image GenImageColor(int width, int height, Color color); // Generate image: plain color +RLAPI Image GenImageGradientLinear(int width, int height, int direction, Color start, Color end); // Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient +RLAPI Image GenImageGradientRadial(int width, int height, float density, Color inner, Color outer); // Generate image: radial gradient +RLAPI Image GenImageGradientSquare(int width, int height, float density, Color inner, Color outer); // Generate image: square 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 GenImageText(int width, int height, const char *text); // Generate image: grayscale image from text data + +// Image manipulation functions +RLAPI Image ImageCopy(Image image); // Create an image duplicate (useful for transformations) +RLAPI Image ImageFromImage(Image image, Rectangle rec); // Create an image from another image piece +RLAPI Image ImageFromChannel(Image image, int selectedChannel); // Create an image from a selected channel of another image (GRAYSCALE) +RLAPI Image ImageText(const char *text, int fontSize, Color color); // Create an image from text (default font) +RLAPI Image ImageTextEx(Font font, const char *text, float fontSize, float spacing, Color tint); // Create an image from text (custom sprite font) +RLAPI void ImageFormat(Image *image, int newFormat); // Convert image data to desired format +RLAPI void ImageToPOT(Image *image, Color fill); // Convert image to POT (power-of-two) +RLAPI void ImageCrop(Image *image, Rectangle crop); // Crop an image to a defined rectangle +RLAPI void ImageAlphaCrop(Image *image, float threshold); // Crop image depending on alpha value +RLAPI void ImageAlphaClear(Image *image, Color color, float threshold); // Clear alpha channel to desired color +RLAPI void ImageAlphaMask(Image *image, Image alphaMask); // Apply alpha mask to image +RLAPI void ImageAlphaPremultiply(Image *image); // Premultiply alpha channel +RLAPI void ImageBlurGaussian(Image *image, int blurSize); // Apply Gaussian blur using a box blur approximation +RLAPI void ImageKernelConvolution(Image *image, const float *kernel, int kernelSize); // Apply custom square convolution kernel to 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); // 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 +RLAPI void ImageRotate(Image *image, int degrees); // Rotate image by input angle in degrees (-359 to 359) +RLAPI void ImageRotateCW(Image *image); // Rotate image clockwise 90deg +RLAPI void ImageRotateCCW(Image *image); // Rotate image counter-clockwise 90deg +RLAPI void ImageColorTint(Image *image, Color color); // Modify image color: tint +RLAPI void ImageColorInvert(Image *image); // Modify image color: invert +RLAPI void ImageColorGrayscale(Image *image); // Modify image color: grayscale +RLAPI void ImageColorContrast(Image *image, float contrast); // Modify image color: contrast (-100 to 100) +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 *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) +RLAPI void ImageClearBackground(Image *dst, Color color); // Clear image background with given color +RLAPI void ImageDrawPixel(Image *dst, int posX, int posY, Color color); // Draw pixel within an image +RLAPI void ImageDrawPixelV(Image *dst, Vector2 position, Color color); // Draw pixel within an image (Vector version) +RLAPI void ImageDrawLine(Image *dst, int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw line within an image +RLAPI void ImageDrawLineV(Image *dst, Vector2 start, Vector2 end, Color color); // Draw line within an image (Vector version) +RLAPI void ImageDrawLineEx(Image *dst, Vector2 start, Vector2 end, int thick, Color color); // Draw a line defining thickness within an image +RLAPI void ImageDrawCircle(Image *dst, int centerX, int centerY, int radius, Color color); // Draw a filled circle within an image +RLAPI void ImageDrawCircleV(Image *dst, Vector2 center, int radius, Color color); // Draw a filled circle within an image (Vector version) +RLAPI void ImageDrawCircleLines(Image *dst, int centerX, int centerY, int radius, Color color); // Draw circle outline within an image +RLAPI void ImageDrawCircleLinesV(Image *dst, Vector2 center, int radius, Color color); // Draw circle outline within an image (Vector version) +RLAPI void ImageDrawRectangle(Image *dst, int posX, int posY, int width, int height, Color color); // Draw rectangle within an image +RLAPI void ImageDrawRectangleV(Image *dst, Vector2 position, Vector2 size, Color color); // Draw rectangle within an image (Vector version) +RLAPI void ImageDrawRectangleRec(Image *dst, Rectangle rec, Color color); // Draw rectangle within an image +RLAPI void ImageDrawRectangleLines(Image *dst, Rectangle rec, int thick, Color color); // Draw rectangle lines within an image +RLAPI void ImageDrawTriangle(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle within an image +RLAPI void ImageDrawTriangleEx(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color c1, Color c2, Color c3); // Draw triangle with interpolated colors within an image +RLAPI void ImageDrawTriangleLines(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle outline within an image +RLAPI void ImageDrawTriangleFan(Image *dst, Vector2 *points, int pointCount, Color color); // Draw a triangle fan defined by points within an image (first vertex is the center) +RLAPI void ImageDrawTriangleStrip(Image *dst, Vector2 *points, int pointCount, Color color); // Draw a triangle strip defined by points within an image +RLAPI void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color tint); // Draw a source image within a destination image (tint applied to source) +RLAPI void ImageDrawText(Image *dst, const char *text, int posX, int posY, int fontSize, Color color); // Draw text (using default font) within an image (destination) +RLAPI void ImageDrawTextEx(Image *dst, Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint); // Draw text (custom sprite font) within an image (destination) + +// Texture loading functions +// NOTE: These functions require GPU access +RLAPI Texture2D LoadTexture(const char *fileName); // Load texture from file into GPU memory (VRAM) +RLAPI Texture2D LoadTextureFromImage(Image image); // Load texture from image data +RLAPI TextureCubemap LoadTextureCubemap(Image image, int layout); // Load cubemap from image, multiple image cubemap layouts supported +RLAPI RenderTexture2D LoadRenderTexture(int width, int height); // Load texture for rendering (framebuffer) +RLAPI bool IsTextureValid(Texture2D texture); // Check if a texture is valid (loaded in GPU) +RLAPI void UnloadTexture(Texture2D texture); // Unload texture from GPU memory (VRAM) +RLAPI bool IsRenderTextureValid(RenderTexture2D target); // Check if a render texture is valid (loaded in GPU) +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 + +// Texture configuration functions +RLAPI void GenTextureMipmaps(Texture2D *texture); // Generate GPU mipmaps for a texture +RLAPI void SetTextureFilter(Texture2D texture, int filter); // Set texture scaling filter mode +RLAPI void SetTextureWrap(Texture2D texture, int wrap); // Set texture wrapping mode + +// Texture drawing functions +RLAPI void DrawTexture(Texture2D texture, int posX, int posY, Color tint); // Draw a Texture2D +RLAPI void DrawTextureV(Texture2D texture, Vector2 position, Color tint); // Draw a Texture2D with position defined as Vector2 +RLAPI void DrawTextureEx(Texture2D texture, Vector2 position, float rotation, float scale, Color tint); // Draw a Texture2D with extended parameters +RLAPI void DrawTextureRec(Texture2D texture, Rectangle source, Vector2 position, Color tint); // Draw a part of a texture defined by a rectangle +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 + +// Color/pixel related functions +RLAPI bool ColorIsEqual(Color col1, Color col2); // Check if two colors are equal +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 (0xRRGGBBAA) +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 ColorTint(Color color, Color tint); // Get color multiplied with another color +RLAPI Color ColorBrightness(Color color, float factor); // Get color with brightness correction, brightness factor goes from -1.0f to 1.0f +RLAPI Color ColorContrast(Color color, float contrast); // Get color with contrast correction, contrast values between -1.0f and 1.0f +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 ColorLerp(Color color1, Color color2, float factor); // Get color lerp interpolation between two colors, factor [0.0f..1.0f] +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 + +//------------------------------------------------------------------------------------ +// Font Loading and Text Drawing Functions (Module: text) +//------------------------------------------------------------------------------------ + +// 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 *codepoints, int codepointCount); // Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height +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 *codepoints, int codepointCount); // Load font from memory buffer, fileType refers to extension: i.e. '.ttf' +RLAPI bool IsFontValid(Font font); // Check if a font is valid (font data loaded, WARNING: GPU texture not checked) +RLAPI GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSize, int *codepoints, int codepointCount, int type); // Load font data for further use +RLAPI Image GenImageFontAtlas(const GlyphInfo *glyphs, Rectangle **glyphRecs, int glyphCount, int fontSize, int padding, int packMethod); // Generate image font atlas using chars info +RLAPI void UnloadFontData(GlyphInfo *glyphs, int glyphCount); // Unload font chars info data (RAM) +RLAPI void UnloadFont(Font font); // Unload font from GPU memory (VRAM) +RLAPI bool ExportFontAsCode(Font font, const char *fileName); // Export font as code file, returns true on success + +// 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 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) +RLAPI void DrawTextCodepoints(Font font, const int *codepoints, int codepointCount, Vector2 position, float fontSize, float spacing, Color tint); // Draw multiple character (codepoint) + +// Text font info functions +RLAPI void SetTextLineSpacing(int spacing); // Set vertical line spacing when drawing with line-breaks +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 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 char *LoadUTF8(const int *codepoints, int length); // Load UTF-8 text encoded from codepoints array +RLAPI void UnloadUTF8(char *text); // Unload UTF-8 text encoded from codepoints array +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 *codepointSize); // Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure +RLAPI int GetCodepointNext(const char *text, int *codepointSize); // Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure +RLAPI int GetCodepointPrevious(const char *text, int *codepointSize); // Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure +RLAPI const char *CodepointToUTF8(int codepoint, int *utf8Size); // Encode one codepoint into UTF-8 byte array (array length returned as parameter) + +// 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 *TextSubtext(const char *text, int position, int length); // Get a piece of a text string +RLAPI char *TextReplace(const char *text, const char *replace, const char *by); // Replace text string (WARNING: memory must be freed!) +RLAPI char *TextInsert(const char *text, const char *insert, int position); // Insert text in a position (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! +RLAPI int TextFindIndex(const char *text, const char *find); // Find first text occurrence within a string +RLAPI const char *TextToUpper(const char *text); // Get upper case version of provided string +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 const char *TextToSnake(const char *text); // Get Snake case notation version of provided string +RLAPI const char *TextToCamel(const char *text); // Get Camel case notation version of provided string + +RLAPI int TextToInteger(const char *text); // Get integer value from text (negative values not supported) +RLAPI float TextToFloat(const char *text); // Get float value from text (negative values not supported) + +//------------------------------------------------------------------------------------ +// Basic 3d Shapes Drawing Functions (Module: models) +//------------------------------------------------------------------------------------ + +// Basic geometric 3D shapes drawing functions +RLAPI void DrawLine3D(Vector3 startPos, Vector3 endPos, Color color); // Draw a line in 3D world space +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(const 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 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 DrawCapsule(Vector3 startPos, Vector3 endPos, float radius, int slices, int rings, Color color); // Draw a capsule with the center of its sphere caps at startPos and endPos +RLAPI void DrawCapsuleWires(Vector3 startPos, Vector3 endPos, float radius, int slices, int rings, Color color); // Draw capsule wireframe with the center of its sphere caps at startPos and 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)) + +//------------------------------------------------------------------------------------ +// Model 3d Loading and Drawing Functions (Module: models) +//------------------------------------------------------------------------------------ + +// 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 bool IsModelValid(Model model); // Check if a model is valid (loaded in GPU, VAO/VBOs) +RLAPI void UnloadModel(Model model); // Unload model (including meshes) from memory (RAM and/or VRAM) +RLAPI BoundingBox GetModelBoundingBox(Model model); // Compute model bounding box limits (considers all meshes) + +// 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 DrawModelPoints(Model model, Vector3 position, float scale, Color tint); // Draw a model as points +RLAPI void DrawModelPointsEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model as points with extended parameters +RLAPI void DrawBoundingBox(BoundingBox box, Color color); // Draw bounding box (wires) +RLAPI void DrawBillboard(Camera camera, Texture2D texture, Vector3 position, float scale, 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, const 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, const Matrix *transforms, int instances); // Draw multiple mesh instances with material and different transforms +RLAPI BoundingBox GetMeshBoundingBox(Mesh mesh); // Compute mesh bounding box limits +RLAPI void GenMeshTangents(Mesh *mesh); // Compute mesh tangents +RLAPI bool ExportMesh(Mesh mesh, const char *fileName); // Export mesh data to file, returns true on success +RLAPI bool ExportMeshAsCode(Mesh mesh, const char *fileName); // Export mesh as code file (.h) defining multiple arrays of vertex attributes + +// Mesh generation functions +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 + +// 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 bool IsMaterialValid(Material material); // Check if a material is valid (shader assigned, map textures loaded in GPU) +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 *animCount); // Load model animations from file +RLAPI void UpdateModelAnimation(Model model, ModelAnimation anim, int frame); // Update model animation pose (CPU) +RLAPI void UpdateModelAnimationBones(Model model, ModelAnimation anim, int frame); // Update model animation mesh bone matrices (GPU skinning) +RLAPI void UnloadModelAnimation(ModelAnimation anim); // Unload animation data +RLAPI void UnloadModelAnimations(ModelAnimation *animations, int animCount); // 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); // 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 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) +//------------------------------------------------------------------------------------ +typedef void (*AudioCallback)(void *bufferData, unsigned int frames); + +// Audio device management functions +RLAPI void InitAudioDevice(void); // Initialize audio device and context +RLAPI void CloseAudioDevice(void); // Close the audio device and context +RLAPI bool IsAudioDeviceReady(void); // Check if audio device has been initialized successfully +RLAPI void SetMasterVolume(float volume); // Set master volume (listener) +RLAPI float GetMasterVolume(void); // Get master volume (listener) + +// 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. '.wav' +RLAPI bool IsWaveValid(Wave wave); // Checks if wave data is valid (data loaded and parameters) +RLAPI Sound LoadSound(const char *fileName); // Load sound from file +RLAPI Sound LoadSoundFromWave(Wave wave); // Load sound from wave data +RLAPI Sound LoadSoundAlias(Sound source); // Create a new sound that shares the same sample data as the source sound, does not own the sound data +RLAPI bool IsSoundValid(Sound sound); // Checks if a sound is valid (data loaded and buffers initialized) +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 void UnloadSoundAlias(Sound alias); // Unload a sound alias (does not deallocate sample data) +RLAPI bool ExportWave(Wave wave, const char *fileName); // Export wave data to file, returns true on success +RLAPI bool ExportWaveAsCode(Wave wave, const char *fileName); // Export wave sample data to code (.h), returns true on success + +// Wave/Sound management functions +RLAPI void PlaySound(Sound sound); // Play a sound +RLAPI void StopSound(Sound sound); // Stop playing a sound +RLAPI void PauseSound(Sound sound); // Pause a sound +RLAPI void ResumeSound(Sound sound); // Resume a paused sound +RLAPI bool IsSoundPlaying(Sound sound); // Check if a sound is currently playing +RLAPI void SetSoundVolume(Sound sound, float volume); // Set volume for a sound (1.0 is max level) +RLAPI void SetSoundPitch(Sound sound, float pitch); // Set pitch for a sound (1.0 is base level) +RLAPI void SetSoundPan(Sound sound, float pan); // Set pan for a sound (0.5 is center) +RLAPI Wave WaveCopy(Wave wave); // Copy a wave to a new wave +RLAPI void WaveCrop(Wave *wave, int initFrame, int finalFrame); // Crop a wave to defined frames range +RLAPI void WaveFormat(Wave *wave, int sampleRate, int sampleSize, int channels); // Convert wave data to desired format +RLAPI float *LoadWaveSamples(Wave wave); // Load samples data from wave as a 32bit float data array +RLAPI void UnloadWaveSamples(float *samples); // Unload samples data loaded with LoadWaveSamples() + +// Music management functions +RLAPI Music LoadMusicStream(const char *fileName); // Load music stream from file +RLAPI Music LoadMusicStreamFromMemory(const char *fileType, const unsigned char *data, int dataSize); // Load music stream from data +RLAPI bool IsMusicValid(Music music); // Checks if a music stream is valid (context and buffers initialized) +RLAPI void UnloadMusicStream(Music music); // Unload music stream +RLAPI void PlayMusicStream(Music music); // Start music 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 void SetMusicPan(Music music, float pan); // Set pan for a music (0.5 is center) +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 LoadAudioStream(unsigned int sampleRate, unsigned int sampleSize, unsigned int channels); // Load audio stream (to stream raw audio pcm data) +RLAPI bool IsAudioStreamValid(AudioStream stream); // Checks if an audio stream is valid (buffers initialized) +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 +RLAPI void ResumeAudioStream(AudioStream stream); // Resume audio stream +RLAPI bool IsAudioStreamPlaying(AudioStream stream); // Check if audio stream is playing +RLAPI void StopAudioStream(AudioStream stream); // Stop audio stream +RLAPI void SetAudioStreamVolume(AudioStream stream, float volume); // Set volume for audio stream (1.0 is max level) +RLAPI void SetAudioStreamPitch(AudioStream stream, float pitch); // Set pitch for audio stream (1.0 is base level) +RLAPI void SetAudioStreamPan(AudioStream stream, float pan); // Set pan for audio stream (0.5 is centered) +RLAPI void SetAudioStreamBufferSizeDefault(int size); // Default size for new audio streams +RLAPI void SetAudioStreamCallback(AudioStream stream, AudioCallback callback); // Audio thread callback to request new data + +RLAPI void AttachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Attach audio stream processor to stream, receives the samples as 'float' +RLAPI void DetachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Detach audio stream processor from stream + +RLAPI void AttachAudioMixedProcessor(AudioCallback processor); // Attach audio stream processor to the entire audio pipeline, receives the samples as 'float' +RLAPI void DetachAudioMixedProcessor(AudioCallback processor); // Detach audio stream processor from the entire audio pipeline + +#if defined(__cplusplus) +} +#endif + +#endif // RAYLIB_H diff --git a/lib/raylib_lin_arm64/include/raymath.h b/lib/raylib_lin_arm64/include/raymath.h new file mode 100644 index 0000000..e522113 --- /dev/null +++ b/lib/raylib_lin_arm64/include/raymath.h @@ -0,0 +1,2941 @@ +/********************************************************************************************** +* +* raymath v2.0 - Math functions to work with Vector2, Vector3, Matrix and Quaternions +* +* CONVENTIONS: +* - Matrix structure is defined as row-major (memory layout) but parameters naming AND all +* math operations performed by the library consider the structure as it was column-major +* It is like transposed versions of the matrices are used for all the maths +* It benefits some functions making them cache-friendly and also avoids matrix +* transpositions sometimes required by OpenGL +* Example: In memory order, row0 is [m0 m4 m8 m12] but in semantic math row0 is [m0 m1 m2 m3] +* - Functions are always self-contained, no function use another raymath function inside, +* required code is directly re-implemented inside +* - Functions input parameters are always received by value (2 unavoidable exceptions) +* - Functions use always a "result" variable for return (except C++ operators) +* - Functions are always defined inline +* - Angles are always in radians (DEG2RAD/RAD2DEG macros provided for convenience) +* - No compound literals used to make sure libray is compatible with C++ +* +* CONFIGURATION: +* #define RAYMATH_IMPLEMENTATION +* Generates the implementation of the library into the included file. +* If not defined, the library is in header only mode and can be included in other headers +* or source files without problems. But only ONE file should hold the implementation. +* +* #define RAYMATH_STATIC_INLINE +* Define static inline functions code, so #include header suffices for use. +* This may use up lots of memory. +* +* #define RAYMATH_DISABLE_CPP_OPERATORS +* Disables C++ operator overloads for raymath types. +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) +* +* This software is provided "as-is", without any express or implied warranty. In no event +* will the authors be held liable for any damages arising from the use of this software. +* +* Permission is granted to anyone to use this software for any purpose, including commercial +* applications, and to alter it and redistribute it freely, subject to the following restrictions: +* +* 1. The origin of this software must not be misrepresented; you must not claim that you +* wrote the original software. If you use this software in a product, an acknowledgment +* in the product documentation would be appreciated but is not required. +* +* 2. Altered source versions must be plainly marked as such, and must not be misrepresented +* as being the original software. +* +* 3. This notice may not be removed or altered from any source distribution. +* +**********************************************************************************************/ + +#ifndef RAYMATH_H +#define RAYMATH_H + +#if defined(RAYMATH_IMPLEMENTATION) && defined(RAYMATH_STATIC_INLINE) + #error "Specifying both RAYMATH_IMPLEMENTATION and RAYMATH_STATIC_INLINE is contradictory" +#endif + +// Function specifiers definition +#if defined(RAYMATH_IMPLEMENTATION) + #if defined(_WIN32) && defined(BUILD_LIBTYPE_SHARED) + #define RMAPI __declspec(dllexport) extern inline // We are building raylib as a Win32 shared library (.dll) + #elif defined(BUILD_LIBTYPE_SHARED) + #define RMAPI __attribute__((visibility("default"))) // We are building raylib as a Unix shared library (.so/.dylib) + #elif defined(_WIN32) && defined(USE_LIBTYPE_SHARED) + #define RMAPI __declspec(dllimport) // We are using raylib as a Win32 shared library (.dll) + #else + #define RMAPI extern inline // Provide external definition + #endif +#elif defined(RAYMATH_STATIC_INLINE) + #define RMAPI static inline // Functions may be inlined, no external out-of-line definition +#else + #if defined(__TINYC__) + #define RMAPI static inline // plain inline not supported by tinycc (See issue #435) + #else + #define RMAPI inline // Functions may be inlined or external definition used + #endif +#endif + + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- +#ifndef PI + #define PI 3.14159265358979323846f +#endif + +#ifndef EPSILON + #define EPSILON 0.000001f +#endif + +#ifndef DEG2RAD + #define DEG2RAD (PI/180.0f) +#endif + +#ifndef RAD2DEG + #define RAD2DEG (180.0f/PI) +#endif + +// Get float vector for Matrix +#ifndef MatrixToFloat + #define MatrixToFloat(mat) (MatrixToFloatV(mat).v) +#endif + +// Get float vector for Vector3 +#ifndef Vector3ToFloat + #define Vector3ToFloat(vec) (Vector3ToFloatV(vec).v) +#endif + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +#if !defined(RL_VECTOR2_TYPE) +// Vector2 type +typedef struct Vector2 { + float x; + float y; +} Vector2; +#define RL_VECTOR2_TYPE +#endif + +#if !defined(RL_VECTOR3_TYPE) +// Vector3 type +typedef struct Vector3 { + float x; + float y; + float z; +} Vector3; +#define RL_VECTOR3_TYPE +#endif + +#if !defined(RL_VECTOR4_TYPE) +// Vector4 type +typedef struct Vector4 { + float x; + float y; + float z; + float w; +} Vector4; +#define RL_VECTOR4_TYPE +#endif + +#if !defined(RL_QUATERNION_TYPE) +// Quaternion type +typedef Vector4 Quaternion; +#define RL_QUATERNION_TYPE +#endif + +#if !defined(RL_MATRIX_TYPE) +// Matrix type (OpenGL style 4x4 - right handed, column major) +typedef struct Matrix { + float m0, m4, m8, m12; // Matrix first row (4 components) + float m1, m5, m9, m13; // Matrix second row (4 components) + float m2, m6, m10, m14; // Matrix third row (4 components) + float m3, m7, m11, m15; // Matrix fourth row (4 components) +} Matrix; +#define RL_MATRIX_TYPE +#endif + +// NOTE: Helper types to be used instead of array return types for *ToFloat functions +typedef struct float3 { + float v[3]; +} float3; + +typedef struct float16 { + float v[16]; +} float16; + +#include // Required for: sinf(), cosf(), tan(), atan2f(), sqrtf(), floor(), fminf(), fmaxf(), fabsf() + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Utils math +//---------------------------------------------------------------------------------- + +// Clamp float value +RMAPI float Clamp(float value, float min, float max) +{ + float result = (value < min)? min : value; + + if (result > max) result = max; + + return result; +} + +// Calculate linear interpolation between two floats +RMAPI float Lerp(float start, float end, float amount) +{ + float result = start + amount*(end - start); + + return result; +} + +// Normalize input value within input range +RMAPI float Normalize(float value, float start, float end) +{ + float result = (value - start)/(end - start); + + return result; +} + +// Remap input value within input range to output range +RMAPI float Remap(float value, float inputStart, float inputEnd, float outputStart, float outputEnd) +{ + float result = (value - inputStart)/(inputEnd - inputStart)*(outputEnd - outputStart) + outputStart; + + return result; +} + +// Wrap input value from min to max +RMAPI float Wrap(float value, float min, float max) +{ + float result = value - (max - min)*floorf((value - min)/(max - min)); + + return result; +} + +// Check whether two given floats are almost equal +RMAPI int FloatEquals(float x, float y) +{ +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + int result = (fabsf(x - y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(x), fabsf(y)))); + + return result; +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Vector2 math +//---------------------------------------------------------------------------------- + +// Vector with components value 0.0f +RMAPI Vector2 Vector2Zero(void) +{ + Vector2 result = { 0.0f, 0.0f }; + + return result; +} + +// Vector with components value 1.0f +RMAPI Vector2 Vector2One(void) +{ + Vector2 result = { 1.0f, 1.0f }; + + return result; +} + +// Add two vectors (v1 + v2) +RMAPI Vector2 Vector2Add(Vector2 v1, Vector2 v2) +{ + Vector2 result = { v1.x + v2.x, v1.y + v2.y }; + + return result; +} + +// Add vector and float value +RMAPI Vector2 Vector2AddValue(Vector2 v, float add) +{ + Vector2 result = { v.x + add, v.y + add }; + + return result; +} + +// Subtract two vectors (v1 - v2) +RMAPI Vector2 Vector2Subtract(Vector2 v1, Vector2 v2) +{ + Vector2 result = { v1.x - v2.x, v1.y - v2.y }; + + return result; +} + +// Subtract vector by float value +RMAPI Vector2 Vector2SubtractValue(Vector2 v, float sub) +{ + Vector2 result = { v.x - sub, v.y - sub }; + + return result; +} + +// Calculate vector length +RMAPI float Vector2Length(Vector2 v) +{ + float result = sqrtf((v.x*v.x) + (v.y*v.y)); + + return result; +} + +// Calculate vector square length +RMAPI float Vector2LengthSqr(Vector2 v) +{ + float result = (v.x*v.x) + (v.y*v.y); + + return result; +} + +// Calculate two vectors dot product +RMAPI float Vector2DotProduct(Vector2 v1, Vector2 v2) +{ + float result = (v1.x*v2.x + v1.y*v2.y); + + return result; +} + +// Calculate distance between two vectors +RMAPI float Vector2Distance(Vector2 v1, Vector2 v2) +{ + float result = sqrtf((v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y)); + + return result; +} + +// Calculate square distance between two vectors +RMAPI float Vector2DistanceSqr(Vector2 v1, Vector2 v2) +{ + float result = ((v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y)); + + return result; +} + +// Calculate angle between two vectors +// NOTE: Angle is calculated from origin point (0, 0) +RMAPI float Vector2Angle(Vector2 v1, Vector2 v2) +{ + float result = 0.0f; + + float dot = v1.x*v2.x + v1.y*v2.y; + float det = v1.x*v2.y - v1.y*v2.x; + + result = atan2f(det, dot); + + return result; +} + +// Calculate angle defined by a two vectors line +// NOTE: Parameters need to be normalized +// Current implementation should be aligned with glm::angle +RMAPI float Vector2LineAngle(Vector2 start, Vector2 end) +{ + float result = 0.0f; + + // TODO(10/9/2023): Currently angles move clockwise, determine if this is wanted behavior + result = -atan2f(end.y - start.y, end.x - start.x); + + return result; +} + +// Scale vector (multiply by value) +RMAPI Vector2 Vector2Scale(Vector2 v, float scale) +{ + Vector2 result = { v.x*scale, v.y*scale }; + + return result; +} + +// Multiply vector by vector +RMAPI Vector2 Vector2Multiply(Vector2 v1, Vector2 v2) +{ + Vector2 result = { v1.x*v2.x, v1.y*v2.y }; + + return result; +} + +// Negate vector +RMAPI Vector2 Vector2Negate(Vector2 v) +{ + Vector2 result = { -v.x, -v.y }; + + return result; +} + +// Divide vector by vector +RMAPI Vector2 Vector2Divide(Vector2 v1, Vector2 v2) +{ + Vector2 result = { v1.x/v2.x, v1.y/v2.y }; + + return result; +} + +// Normalize provided vector +RMAPI Vector2 Vector2Normalize(Vector2 v) +{ + Vector2 result = { 0 }; + float length = sqrtf((v.x*v.x) + (v.y*v.y)); + + if (length > 0) + { + float ilength = 1.0f/length; + result.x = v.x*ilength; + result.y = v.y*ilength; + } + + return result; +} + +// Transforms a Vector2 by a given Matrix +RMAPI Vector2 Vector2Transform(Vector2 v, Matrix mat) +{ + Vector2 result = { 0 }; + + float x = v.x; + float y = v.y; + float z = 0; + + result.x = mat.m0*x + mat.m4*y + mat.m8*z + mat.m12; + result.y = mat.m1*x + mat.m5*y + mat.m9*z + mat.m13; + + return result; +} + +// Calculate linear interpolation between two vectors +RMAPI Vector2 Vector2Lerp(Vector2 v1, Vector2 v2, float amount) +{ + Vector2 result = { 0 }; + + result.x = v1.x + amount*(v2.x - v1.x); + result.y = v1.y + amount*(v2.y - v1.y); + + return result; +} + +// Calculate reflected vector to normal +RMAPI Vector2 Vector2Reflect(Vector2 v, Vector2 normal) +{ + Vector2 result = { 0 }; + + float dotProduct = (v.x*normal.x + v.y*normal.y); // Dot product + + result.x = v.x - (2.0f*normal.x)*dotProduct; + result.y = v.y - (2.0f*normal.y)*dotProduct; + + return result; +} + +// Get min value for each pair of components +RMAPI Vector2 Vector2Min(Vector2 v1, Vector2 v2) +{ + Vector2 result = { 0 }; + + result.x = fminf(v1.x, v2.x); + result.y = fminf(v1.y, v2.y); + + return result; +} + +// Get max value for each pair of components +RMAPI Vector2 Vector2Max(Vector2 v1, Vector2 v2) +{ + Vector2 result = { 0 }; + + result.x = fmaxf(v1.x, v2.x); + result.y = fmaxf(v1.y, v2.y); + + return result; +} + +// Rotate vector by angle +RMAPI Vector2 Vector2Rotate(Vector2 v, float angle) +{ + Vector2 result = { 0 }; + + float cosres = cosf(angle); + float sinres = sinf(angle); + + result.x = v.x*cosres - v.y*sinres; + result.y = v.x*sinres + v.y*cosres; + + return result; +} + +// Move Vector towards target +RMAPI Vector2 Vector2MoveTowards(Vector2 v, Vector2 target, float maxDistance) +{ + Vector2 result = { 0 }; + + float dx = target.x - v.x; + float dy = target.y - v.y; + float value = (dx*dx) + (dy*dy); + + if ((value == 0) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target; + + float dist = sqrtf(value); + + result.x = v.x + dx/dist*maxDistance; + result.y = v.y + dy/dist*maxDistance; + + return result; +} + +// Invert the given vector +RMAPI Vector2 Vector2Invert(Vector2 v) +{ + Vector2 result = { 1.0f/v.x, 1.0f/v.y }; + + return result; +} + +// Clamp the components of the vector between +// min and max values specified by the given vectors +RMAPI Vector2 Vector2Clamp(Vector2 v, Vector2 min, Vector2 max) +{ + Vector2 result = { 0 }; + + result.x = fminf(max.x, fmaxf(min.x, v.x)); + result.y = fminf(max.y, fmaxf(min.y, v.y)); + + return result; +} + +// Clamp the magnitude of the vector between two min and max values +RMAPI Vector2 Vector2ClampValue(Vector2 v, float min, float max) +{ + Vector2 result = v; + + float length = (v.x*v.x) + (v.y*v.y); + if (length > 0.0f) + { + length = sqrtf(length); + + float scale = 1; // By default, 1 as the neutral element. + if (length < min) + { + scale = min/length; + } + else if (length > max) + { + scale = max/length; + } + + result.x = v.x*scale; + result.y = v.y*scale; + } + + return result; +} + +// Check whether two given vectors are almost equal +RMAPI int Vector2Equals(Vector2 p, Vector2 q) +{ +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + int result = ((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && + ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))); + + return result; +} + +// Compute the direction of a refracted ray +// v: normalized direction of the incoming ray +// n: normalized normal vector of the interface of two optical media +// r: ratio of the refractive index of the medium from where the ray comes +// to the refractive index of the medium on the other side of the surface +RMAPI Vector2 Vector2Refract(Vector2 v, Vector2 n, float r) +{ + Vector2 result = { 0 }; + + float dot = v.x*n.x + v.y*n.y; + float d = 1.0f - r*r*(1.0f - dot*dot); + + if (d >= 0.0f) + { + d = sqrtf(d); + v.x = r*v.x - (r*dot + d)*n.x; + v.y = r*v.y - (r*dot + d)*n.y; + + result = v; + } + + return result; +} + + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Vector3 math +//---------------------------------------------------------------------------------- + +// Vector with components value 0.0f +RMAPI Vector3 Vector3Zero(void) +{ + Vector3 result = { 0.0f, 0.0f, 0.0f }; + + return result; +} + +// Vector with components value 1.0f +RMAPI Vector3 Vector3One(void) +{ + Vector3 result = { 1.0f, 1.0f, 1.0f }; + + return result; +} + +// Add two vectors +RMAPI Vector3 Vector3Add(Vector3 v1, Vector3 v2) +{ + Vector3 result = { v1.x + v2.x, v1.y + v2.y, v1.z + v2.z }; + + return result; +} + +// Add vector and float value +RMAPI Vector3 Vector3AddValue(Vector3 v, float add) +{ + Vector3 result = { v.x + add, v.y + add, v.z + add }; + + return result; +} + +// Subtract two vectors +RMAPI Vector3 Vector3Subtract(Vector3 v1, Vector3 v2) +{ + Vector3 result = { v1.x - v2.x, v1.y - v2.y, v1.z - v2.z }; + + return result; +} + +// Subtract vector by float value +RMAPI Vector3 Vector3SubtractValue(Vector3 v, float sub) +{ + Vector3 result = { v.x - sub, v.y - sub, v.z - sub }; + + return result; +} + +// Multiply vector by scalar +RMAPI Vector3 Vector3Scale(Vector3 v, float scalar) +{ + Vector3 result = { v.x*scalar, v.y*scalar, v.z*scalar }; + + return result; +} + +// Multiply vector by vector +RMAPI Vector3 Vector3Multiply(Vector3 v1, Vector3 v2) +{ + Vector3 result = { v1.x*v2.x, v1.y*v2.y, v1.z*v2.z }; + + return result; +} + +// Calculate two vectors cross product +RMAPI Vector3 Vector3CrossProduct(Vector3 v1, Vector3 v2) +{ + Vector3 result = { v1.y*v2.z - v1.z*v2.y, v1.z*v2.x - v1.x*v2.z, v1.x*v2.y - v1.y*v2.x }; + + return result; +} + +// Calculate one vector perpendicular vector +RMAPI Vector3 Vector3Perpendicular(Vector3 v) +{ + Vector3 result = { 0 }; + + float min = fabsf(v.x); + Vector3 cardinalAxis = {1.0f, 0.0f, 0.0f}; + + if (fabsf(v.y) < min) + { + min = fabsf(v.y); + Vector3 tmp = {0.0f, 1.0f, 0.0f}; + cardinalAxis = tmp; + } + + if (fabsf(v.z) < min) + { + Vector3 tmp = {0.0f, 0.0f, 1.0f}; + cardinalAxis = tmp; + } + + // Cross product between vectors + result.x = v.y*cardinalAxis.z - v.z*cardinalAxis.y; + result.y = v.z*cardinalAxis.x - v.x*cardinalAxis.z; + result.z = v.x*cardinalAxis.y - v.y*cardinalAxis.x; + + return result; +} + +// Calculate vector length +RMAPI float Vector3Length(const Vector3 v) +{ + float result = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + + return result; +} + +// Calculate vector square length +RMAPI float Vector3LengthSqr(const Vector3 v) +{ + float result = v.x*v.x + v.y*v.y + v.z*v.z; + + return result; +} + +// Calculate two vectors dot product +RMAPI float Vector3DotProduct(Vector3 v1, Vector3 v2) +{ + float result = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); + + return result; +} + +// Calculate distance between two vectors +RMAPI float Vector3Distance(Vector3 v1, Vector3 v2) +{ + float result = 0.0f; + + float dx = v2.x - v1.x; + float dy = v2.y - v1.y; + float dz = v2.z - v1.z; + result = sqrtf(dx*dx + dy*dy + dz*dz); + + return result; +} + +// Calculate square distance between two vectors +RMAPI float Vector3DistanceSqr(Vector3 v1, Vector3 v2) +{ + float result = 0.0f; + + float dx = v2.x - v1.x; + float dy = v2.y - v1.y; + float dz = v2.z - v1.z; + result = dx*dx + dy*dy + dz*dz; + + return result; +} + +// Calculate angle between two vectors +RMAPI float Vector3Angle(Vector3 v1, Vector3 v2) +{ + float result = 0.0f; + + Vector3 cross = { v1.y*v2.z - v1.z*v2.y, v1.z*v2.x - v1.x*v2.z, v1.x*v2.y - v1.y*v2.x }; + float len = sqrtf(cross.x*cross.x + cross.y*cross.y + cross.z*cross.z); + float dot = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); + result = atan2f(len, dot); + + return result; +} + +// Negate provided vector (invert direction) +RMAPI Vector3 Vector3Negate(Vector3 v) +{ + Vector3 result = { -v.x, -v.y, -v.z }; + + return result; +} + +// Divide vector by vector +RMAPI Vector3 Vector3Divide(Vector3 v1, Vector3 v2) +{ + Vector3 result = { v1.x/v2.x, v1.y/v2.y, v1.z/v2.z }; + + return result; +} + +// Normalize provided vector +RMAPI Vector3 Vector3Normalize(Vector3 v) +{ + Vector3 result = v; + + float length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + if (length != 0.0f) + { + float ilength = 1.0f/length; + + result.x *= ilength; + result.y *= ilength; + result.z *= ilength; + } + + return result; +} + +//Calculate the projection of the vector v1 on to v2 +RMAPI Vector3 Vector3Project(Vector3 v1, Vector3 v2) +{ + Vector3 result = { 0 }; + + float v1dv2 = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); + float v2dv2 = (v2.x*v2.x + v2.y*v2.y + v2.z*v2.z); + + float mag = v1dv2/v2dv2; + + result.x = v2.x*mag; + result.y = v2.y*mag; + result.z = v2.z*mag; + + return result; +} + +//Calculate the rejection of the vector v1 on to v2 +RMAPI Vector3 Vector3Reject(Vector3 v1, Vector3 v2) +{ + Vector3 result = { 0 }; + + float v1dv2 = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); + float v2dv2 = (v2.x*v2.x + v2.y*v2.y + v2.z*v2.z); + + float mag = v1dv2/v2dv2; + + result.x = v1.x - (v2.x*mag); + result.y = v1.y - (v2.y*mag); + result.z = v1.z - (v2.z*mag); + + return result; +} + +// Orthonormalize provided vectors +// Makes vectors normalized and orthogonal to each other +// Gram-Schmidt function implementation +RMAPI void Vector3OrthoNormalize(Vector3 *v1, Vector3 *v2) +{ + float length = 0.0f; + float ilength = 0.0f; + + // Vector3Normalize(*v1); + Vector3 v = *v1; + length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + if (length == 0.0f) length = 1.0f; + ilength = 1.0f/length; + v1->x *= ilength; + v1->y *= ilength; + v1->z *= ilength; + + // Vector3CrossProduct(*v1, *v2) + Vector3 vn1 = { v1->y*v2->z - v1->z*v2->y, v1->z*v2->x - v1->x*v2->z, v1->x*v2->y - v1->y*v2->x }; + + // Vector3Normalize(vn1); + v = vn1; + length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + if (length == 0.0f) length = 1.0f; + ilength = 1.0f/length; + vn1.x *= ilength; + vn1.y *= ilength; + vn1.z *= ilength; + + // Vector3CrossProduct(vn1, *v1) + Vector3 vn2 = { vn1.y*v1->z - vn1.z*v1->y, vn1.z*v1->x - vn1.x*v1->z, vn1.x*v1->y - vn1.y*v1->x }; + + *v2 = vn2; +} + +// Transforms a Vector3 by a given Matrix +RMAPI Vector3 Vector3Transform(Vector3 v, Matrix mat) +{ + Vector3 result = { 0 }; + + float x = v.x; + float y = v.y; + float z = v.z; + + result.x = mat.m0*x + mat.m4*y + mat.m8*z + mat.m12; + result.y = mat.m1*x + mat.m5*y + mat.m9*z + mat.m13; + result.z = mat.m2*x + mat.m6*y + mat.m10*z + mat.m14; + + return result; +} + +// Transform a vector by quaternion rotation +RMAPI Vector3 Vector3RotateByQuaternion(Vector3 v, Quaternion q) +{ + Vector3 result = { 0 }; + + result.x = v.x*(q.x*q.x + q.w*q.w - q.y*q.y - q.z*q.z) + v.y*(2*q.x*q.y - 2*q.w*q.z) + v.z*(2*q.x*q.z + 2*q.w*q.y); + result.y = v.x*(2*q.w*q.z + 2*q.x*q.y) + v.y*(q.w*q.w - q.x*q.x + q.y*q.y - q.z*q.z) + v.z*(-2*q.w*q.x + 2*q.y*q.z); + result.z = v.x*(-2*q.w*q.y + 2*q.x*q.z) + v.y*(2*q.w*q.x + 2*q.y*q.z)+ v.z*(q.w*q.w - q.x*q.x - q.y*q.y + q.z*q.z); + + return result; +} + +// Rotates a vector around an axis +RMAPI Vector3 Vector3RotateByAxisAngle(Vector3 v, Vector3 axis, float angle) +{ + // Using Euler-Rodrigues Formula + // Ref.: https://en.wikipedia.org/w/index.php?title=Euler%E2%80%93Rodrigues_formula + + Vector3 result = v; + + // Vector3Normalize(axis); + float length = sqrtf(axis.x*axis.x + axis.y*axis.y + axis.z*axis.z); + if (length == 0.0f) length = 1.0f; + float ilength = 1.0f/length; + axis.x *= ilength; + axis.y *= ilength; + axis.z *= ilength; + + angle /= 2.0f; + float a = sinf(angle); + float b = axis.x*a; + float c = axis.y*a; + float d = axis.z*a; + a = cosf(angle); + Vector3 w = { b, c, d }; + + // Vector3CrossProduct(w, v) + Vector3 wv = { w.y*v.z - w.z*v.y, w.z*v.x - w.x*v.z, w.x*v.y - w.y*v.x }; + + // Vector3CrossProduct(w, wv) + Vector3 wwv = { w.y*wv.z - w.z*wv.y, w.z*wv.x - w.x*wv.z, w.x*wv.y - w.y*wv.x }; + + // Vector3Scale(wv, 2*a) + a *= 2; + wv.x *= a; + wv.y *= a; + wv.z *= a; + + // Vector3Scale(wwv, 2) + wwv.x *= 2; + wwv.y *= 2; + wwv.z *= 2; + + result.x += wv.x; + result.y += wv.y; + result.z += wv.z; + + result.x += wwv.x; + result.y += wwv.y; + result.z += wwv.z; + + return result; +} + +// Move Vector towards target +RMAPI Vector3 Vector3MoveTowards(Vector3 v, Vector3 target, float maxDistance) +{ + Vector3 result = { 0 }; + + float dx = target.x - v.x; + float dy = target.y - v.y; + float dz = target.z - v.z; + float value = (dx*dx) + (dy*dy) + (dz*dz); + + if ((value == 0) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target; + + float dist = sqrtf(value); + + result.x = v.x + dx/dist*maxDistance; + result.y = v.y + dy/dist*maxDistance; + result.z = v.z + dz/dist*maxDistance; + + return result; +} + +// Calculate linear interpolation between two vectors +RMAPI Vector3 Vector3Lerp(Vector3 v1, Vector3 v2, float amount) +{ + Vector3 result = { 0 }; + + result.x = v1.x + amount*(v2.x - v1.x); + result.y = v1.y + amount*(v2.y - v1.y); + result.z = v1.z + amount*(v2.z - v1.z); + + return result; +} + +// Calculate cubic hermite interpolation between two vectors and their tangents +// as described in the GLTF 2.0 specification: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#interpolation-cubic +RMAPI Vector3 Vector3CubicHermite(Vector3 v1, Vector3 tangent1, Vector3 v2, Vector3 tangent2, float amount) +{ + Vector3 result = { 0 }; + + float amountPow2 = amount*amount; + float amountPow3 = amount*amount*amount; + + result.x = (2*amountPow3 - 3*amountPow2 + 1)*v1.x + (amountPow3 - 2*amountPow2 + amount)*tangent1.x + (-2*amountPow3 + 3*amountPow2)*v2.x + (amountPow3 - amountPow2)*tangent2.x; + result.y = (2*amountPow3 - 3*amountPow2 + 1)*v1.y + (amountPow3 - 2*amountPow2 + amount)*tangent1.y + (-2*amountPow3 + 3*amountPow2)*v2.y + (amountPow3 - amountPow2)*tangent2.y; + result.z = (2*amountPow3 - 3*amountPow2 + 1)*v1.z + (amountPow3 - 2*amountPow2 + amount)*tangent1.z + (-2*amountPow3 + 3*amountPow2)*v2.z + (amountPow3 - amountPow2)*tangent2.z; + + return result; +} + +// Calculate reflected vector to normal +RMAPI Vector3 Vector3Reflect(Vector3 v, Vector3 normal) +{ + Vector3 result = { 0 }; + + // I is the original vector + // N is the normal of the incident plane + // R = I - (2*N*(DotProduct[I, N])) + + float dotProduct = (v.x*normal.x + v.y*normal.y + v.z*normal.z); + + result.x = v.x - (2.0f*normal.x)*dotProduct; + result.y = v.y - (2.0f*normal.y)*dotProduct; + result.z = v.z - (2.0f*normal.z)*dotProduct; + + return result; +} + +// Get min value for each pair of components +RMAPI Vector3 Vector3Min(Vector3 v1, Vector3 v2) +{ + Vector3 result = { 0 }; + + result.x = fminf(v1.x, v2.x); + result.y = fminf(v1.y, v2.y); + result.z = fminf(v1.z, v2.z); + + return result; +} + +// Get max value for each pair of components +RMAPI Vector3 Vector3Max(Vector3 v1, Vector3 v2) +{ + Vector3 result = { 0 }; + + result.x = fmaxf(v1.x, v2.x); + result.y = fmaxf(v1.y, v2.y); + result.z = fmaxf(v1.z, v2.z); + + return result; +} + +// Compute barycenter coordinates (u, v, w) for point p with respect to triangle (a, b, c) +// NOTE: Assumes P is on the plane of the triangle +RMAPI Vector3 Vector3Barycenter(Vector3 p, Vector3 a, Vector3 b, Vector3 c) +{ + Vector3 result = { 0 }; + + Vector3 v0 = { b.x - a.x, b.y - a.y, b.z - a.z }; // Vector3Subtract(b, a) + Vector3 v1 = { c.x - a.x, c.y - a.y, c.z - a.z }; // Vector3Subtract(c, a) + Vector3 v2 = { p.x - a.x, p.y - a.y, p.z - a.z }; // Vector3Subtract(p, a) + float d00 = (v0.x*v0.x + v0.y*v0.y + v0.z*v0.z); // Vector3DotProduct(v0, v0) + float d01 = (v0.x*v1.x + v0.y*v1.y + v0.z*v1.z); // Vector3DotProduct(v0, v1) + float d11 = (v1.x*v1.x + v1.y*v1.y + v1.z*v1.z); // Vector3DotProduct(v1, v1) + float d20 = (v2.x*v0.x + v2.y*v0.y + v2.z*v0.z); // Vector3DotProduct(v2, v0) + float d21 = (v2.x*v1.x + v2.y*v1.y + v2.z*v1.z); // Vector3DotProduct(v2, v1) + + float denom = d00*d11 - d01*d01; + + result.y = (d11*d20 - d01*d21)/denom; + result.z = (d00*d21 - d01*d20)/denom; + result.x = 1.0f - (result.z + result.y); + + return result; +} + +// Projects a Vector3 from screen space into object space +// NOTE: We are avoiding calling other raymath functions despite available +RMAPI Vector3 Vector3Unproject(Vector3 source, Matrix projection, Matrix view) +{ + Vector3 result = { 0 }; + + // Calculate unprojected matrix (multiply view matrix by projection matrix) and invert it + Matrix matViewProj = { // MatrixMultiply(view, projection); + view.m0*projection.m0 + view.m1*projection.m4 + view.m2*projection.m8 + view.m3*projection.m12, + view.m0*projection.m1 + view.m1*projection.m5 + view.m2*projection.m9 + view.m3*projection.m13, + view.m0*projection.m2 + view.m1*projection.m6 + view.m2*projection.m10 + view.m3*projection.m14, + view.m0*projection.m3 + view.m1*projection.m7 + view.m2*projection.m11 + view.m3*projection.m15, + view.m4*projection.m0 + view.m5*projection.m4 + view.m6*projection.m8 + view.m7*projection.m12, + view.m4*projection.m1 + view.m5*projection.m5 + view.m6*projection.m9 + view.m7*projection.m13, + view.m4*projection.m2 + view.m5*projection.m6 + view.m6*projection.m10 + view.m7*projection.m14, + view.m4*projection.m3 + view.m5*projection.m7 + view.m6*projection.m11 + view.m7*projection.m15, + view.m8*projection.m0 + view.m9*projection.m4 + view.m10*projection.m8 + view.m11*projection.m12, + view.m8*projection.m1 + view.m9*projection.m5 + view.m10*projection.m9 + view.m11*projection.m13, + view.m8*projection.m2 + view.m9*projection.m6 + view.m10*projection.m10 + view.m11*projection.m14, + view.m8*projection.m3 + view.m9*projection.m7 + view.m10*projection.m11 + view.m11*projection.m15, + view.m12*projection.m0 + view.m13*projection.m4 + view.m14*projection.m8 + view.m15*projection.m12, + view.m12*projection.m1 + view.m13*projection.m5 + view.m14*projection.m9 + view.m15*projection.m13, + view.m12*projection.m2 + view.m13*projection.m6 + view.m14*projection.m10 + view.m15*projection.m14, + view.m12*projection.m3 + view.m13*projection.m7 + view.m14*projection.m11 + view.m15*projection.m15 }; + + // Calculate inverted matrix -> MatrixInvert(matViewProj); + // Cache the matrix values (speed optimization) + float a00 = matViewProj.m0, a01 = matViewProj.m1, a02 = matViewProj.m2, a03 = matViewProj.m3; + float a10 = matViewProj.m4, a11 = matViewProj.m5, a12 = matViewProj.m6, a13 = matViewProj.m7; + float a20 = matViewProj.m8, a21 = matViewProj.m9, a22 = matViewProj.m10, a23 = matViewProj.m11; + float a30 = matViewProj.m12, a31 = matViewProj.m13, a32 = matViewProj.m14, a33 = matViewProj.m15; + + float b00 = a00*a11 - a01*a10; + float b01 = a00*a12 - a02*a10; + float b02 = a00*a13 - a03*a10; + float b03 = a01*a12 - a02*a11; + float b04 = a01*a13 - a03*a11; + float b05 = a02*a13 - a03*a12; + float b06 = a20*a31 - a21*a30; + float b07 = a20*a32 - a22*a30; + float b08 = a20*a33 - a23*a30; + float b09 = a21*a32 - a22*a31; + float b10 = a21*a33 - a23*a31; + float b11 = a22*a33 - a23*a32; + + // Calculate the invert determinant (inlined to avoid double-caching) + float invDet = 1.0f/(b00*b11 - b01*b10 + b02*b09 + b03*b08 - b04*b07 + b05*b06); + + Matrix matViewProjInv = { + (a11*b11 - a12*b10 + a13*b09)*invDet, + (-a01*b11 + a02*b10 - a03*b09)*invDet, + (a31*b05 - a32*b04 + a33*b03)*invDet, + (-a21*b05 + a22*b04 - a23*b03)*invDet, + (-a10*b11 + a12*b08 - a13*b07)*invDet, + (a00*b11 - a02*b08 + a03*b07)*invDet, + (-a30*b05 + a32*b02 - a33*b01)*invDet, + (a20*b05 - a22*b02 + a23*b01)*invDet, + (a10*b10 - a11*b08 + a13*b06)*invDet, + (-a00*b10 + a01*b08 - a03*b06)*invDet, + (a30*b04 - a31*b02 + a33*b00)*invDet, + (-a20*b04 + a21*b02 - a23*b00)*invDet, + (-a10*b09 + a11*b07 - a12*b06)*invDet, + (a00*b09 - a01*b07 + a02*b06)*invDet, + (-a30*b03 + a31*b01 - a32*b00)*invDet, + (a20*b03 - a21*b01 + a22*b00)*invDet }; + + // Create quaternion from source point + Quaternion quat = { source.x, source.y, source.z, 1.0f }; + + // Multiply quat point by unprojecte matrix + Quaternion qtransformed = { // QuaternionTransform(quat, matViewProjInv) + matViewProjInv.m0*quat.x + matViewProjInv.m4*quat.y + matViewProjInv.m8*quat.z + matViewProjInv.m12*quat.w, + matViewProjInv.m1*quat.x + matViewProjInv.m5*quat.y + matViewProjInv.m9*quat.z + matViewProjInv.m13*quat.w, + matViewProjInv.m2*quat.x + matViewProjInv.m6*quat.y + matViewProjInv.m10*quat.z + matViewProjInv.m14*quat.w, + matViewProjInv.m3*quat.x + matViewProjInv.m7*quat.y + matViewProjInv.m11*quat.z + matViewProjInv.m15*quat.w }; + + // Normalized world points in vectors + result.x = qtransformed.x/qtransformed.w; + result.y = qtransformed.y/qtransformed.w; + result.z = qtransformed.z/qtransformed.w; + + return result; +} + +// Get Vector3 as float array +RMAPI float3 Vector3ToFloatV(Vector3 v) +{ + float3 buffer = { 0 }; + + buffer.v[0] = v.x; + buffer.v[1] = v.y; + buffer.v[2] = v.z; + + return buffer; +} + +// Invert the given vector +RMAPI Vector3 Vector3Invert(Vector3 v) +{ + Vector3 result = { 1.0f/v.x, 1.0f/v.y, 1.0f/v.z }; + + return result; +} + +// Clamp the components of the vector between +// min and max values specified by the given vectors +RMAPI Vector3 Vector3Clamp(Vector3 v, Vector3 min, Vector3 max) +{ + Vector3 result = { 0 }; + + result.x = fminf(max.x, fmaxf(min.x, v.x)); + result.y = fminf(max.y, fmaxf(min.y, v.y)); + result.z = fminf(max.z, fmaxf(min.z, v.z)); + + return result; +} + +// Clamp the magnitude of the vector between two values +RMAPI Vector3 Vector3ClampValue(Vector3 v, float min, float max) +{ + Vector3 result = v; + + float length = (v.x*v.x) + (v.y*v.y) + (v.z*v.z); + if (length > 0.0f) + { + length = sqrtf(length); + + float scale = 1; // By default, 1 as the neutral element. + if (length < min) + { + scale = min/length; + } + else if (length > max) + { + scale = max/length; + } + + result.x = v.x*scale; + result.y = v.y*scale; + result.z = v.z*scale; + } + + return result; +} + +// Check whether two given vectors are almost equal +RMAPI int Vector3Equals(Vector3 p, Vector3 q) +{ +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + int result = ((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && + ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && + ((fabsf(p.z - q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))); + + return result; +} + +// Compute the direction of a refracted ray +// v: normalized direction of the incoming ray +// n: normalized normal vector of the interface of two optical media +// r: ratio of the refractive index of the medium from where the ray comes +// to the refractive index of the medium on the other side of the surface +RMAPI Vector3 Vector3Refract(Vector3 v, Vector3 n, float r) +{ + Vector3 result = { 0 }; + + float dot = v.x*n.x + v.y*n.y + v.z*n.z; + float d = 1.0f - r*r*(1.0f - dot*dot); + + if (d >= 0.0f) + { + d = sqrtf(d); + v.x = r*v.x - (r*dot + d)*n.x; + v.y = r*v.y - (r*dot + d)*n.y; + v.z = r*v.z - (r*dot + d)*n.z; + + result = v; + } + + return result; +} + + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Vector4 math +//---------------------------------------------------------------------------------- + +RMAPI Vector4 Vector4Zero(void) +{ + Vector4 result = { 0.0f, 0.0f, 0.0f, 0.0f }; + return result; +} + +RMAPI Vector4 Vector4One(void) +{ + Vector4 result = { 1.0f, 1.0f, 1.0f, 1.0f }; + return result; +} + +RMAPI Vector4 Vector4Add(Vector4 v1, Vector4 v2) +{ + Vector4 result = { + v1.x + v2.x, + v1.y + v2.y, + v1.z + v2.z, + v1.w + v2.w + }; + return result; +} + +RMAPI Vector4 Vector4AddValue(Vector4 v, float add) +{ + Vector4 result = { + v.x + add, + v.y + add, + v.z + add, + v.w + add + }; + return result; +} + +RMAPI Vector4 Vector4Subtract(Vector4 v1, Vector4 v2) +{ + Vector4 result = { + v1.x - v2.x, + v1.y - v2.y, + v1.z - v2.z, + v1.w - v2.w + }; + return result; +} + +RMAPI Vector4 Vector4SubtractValue(Vector4 v, float add) +{ + Vector4 result = { + v.x - add, + v.y - add, + v.z - add, + v.w - add + }; + return result; +} + +RMAPI float Vector4Length(Vector4 v) +{ + float result = sqrtf((v.x*v.x) + (v.y*v.y) + (v.z*v.z) + (v.w*v.w)); + return result; +} + +RMAPI float Vector4LengthSqr(Vector4 v) +{ + float result = (v.x*v.x) + (v.y*v.y) + (v.z*v.z) + (v.w*v.w); + return result; +} + +RMAPI float Vector4DotProduct(Vector4 v1, Vector4 v2) +{ + float result = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z + v1.w*v2.w); + return result; +} + +// Calculate distance between two vectors +RMAPI float Vector4Distance(Vector4 v1, Vector4 v2) +{ + float result = sqrtf( + (v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y) + + (v1.z - v2.z)*(v1.z - v2.z) + (v1.w - v2.w)*(v1.w - v2.w)); + return result; +} + +// Calculate square distance between two vectors +RMAPI float Vector4DistanceSqr(Vector4 v1, Vector4 v2) +{ + float result = + (v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y) + + (v1.z - v2.z)*(v1.z - v2.z) + (v1.w - v2.w)*(v1.w - v2.w); + + return result; +} + +RMAPI Vector4 Vector4Scale(Vector4 v, float scale) +{ + Vector4 result = { v.x*scale, v.y*scale, v.z*scale, v.w*scale }; + return result; +} + +// Multiply vector by vector +RMAPI Vector4 Vector4Multiply(Vector4 v1, Vector4 v2) +{ + Vector4 result = { v1.x*v2.x, v1.y*v2.y, v1.z*v2.z, v1.w*v2.w }; + return result; +} + +// Negate vector +RMAPI Vector4 Vector4Negate(Vector4 v) +{ + Vector4 result = { -v.x, -v.y, -v.z, -v.w }; + return result; +} + +// Divide vector by vector +RMAPI Vector4 Vector4Divide(Vector4 v1, Vector4 v2) +{ + Vector4 result = { v1.x/v2.x, v1.y/v2.y, v1.z/v2.z, v1.w/v2.w }; + return result; +} + +// Normalize provided vector +RMAPI Vector4 Vector4Normalize(Vector4 v) +{ + Vector4 result = { 0 }; + float length = sqrtf((v.x*v.x) + (v.y*v.y) + (v.z*v.z) + (v.w*v.w)); + + if (length > 0) + { + float ilength = 1.0f/length; + result.x = v.x*ilength; + result.y = v.y*ilength; + result.z = v.z*ilength; + result.w = v.w*ilength; + } + + return result; +} + +// Get min value for each pair of components +RMAPI Vector4 Vector4Min(Vector4 v1, Vector4 v2) +{ + Vector4 result = { 0 }; + + result.x = fminf(v1.x, v2.x); + result.y = fminf(v1.y, v2.y); + result.z = fminf(v1.z, v2.z); + result.w = fminf(v1.w, v2.w); + + return result; +} + +// Get max value for each pair of components +RMAPI Vector4 Vector4Max(Vector4 v1, Vector4 v2) +{ + Vector4 result = { 0 }; + + result.x = fmaxf(v1.x, v2.x); + result.y = fmaxf(v1.y, v2.y); + result.z = fmaxf(v1.z, v2.z); + result.w = fmaxf(v1.w, v2.w); + + return result; +} + +// Calculate linear interpolation between two vectors +RMAPI Vector4 Vector4Lerp(Vector4 v1, Vector4 v2, float amount) +{ + Vector4 result = { 0 }; + + result.x = v1.x + amount*(v2.x - v1.x); + result.y = v1.y + amount*(v2.y - v1.y); + result.z = v1.z + amount*(v2.z - v1.z); + result.w = v1.w + amount*(v2.w - v1.w); + + return result; +} + +// Move Vector towards target +RMAPI Vector4 Vector4MoveTowards(Vector4 v, Vector4 target, float maxDistance) +{ + Vector4 result = { 0 }; + + float dx = target.x - v.x; + float dy = target.y - v.y; + float dz = target.z - v.z; + float dw = target.w - v.w; + float value = (dx*dx) + (dy*dy) + (dz*dz) + (dw*dw); + + if ((value == 0) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target; + + float dist = sqrtf(value); + + result.x = v.x + dx/dist*maxDistance; + result.y = v.y + dy/dist*maxDistance; + result.z = v.z + dz/dist*maxDistance; + result.w = v.w + dw/dist*maxDistance; + + return result; +} + +// Invert the given vector +RMAPI Vector4 Vector4Invert(Vector4 v) +{ + Vector4 result = { 1.0f/v.x, 1.0f/v.y, 1.0f/v.z, 1.0f/v.w }; + return result; +} + +// Check whether two given vectors are almost equal +RMAPI int Vector4Equals(Vector4 p, Vector4 q) +{ +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + int result = ((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && + ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && + ((fabsf(p.z - q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))) && + ((fabsf(p.w - q.w)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.w), fabsf(q.w))))); + return result; +} + + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Matrix math +//---------------------------------------------------------------------------------- + +// Compute matrix determinant +RMAPI float MatrixDeterminant(Matrix mat) +{ + float result = 0.0f; + + // Cache the matrix values (speed optimization) + float a00 = mat.m0, a01 = mat.m1, a02 = mat.m2, a03 = mat.m3; + float a10 = mat.m4, a11 = mat.m5, a12 = mat.m6, a13 = mat.m7; + float a20 = mat.m8, a21 = mat.m9, a22 = mat.m10, a23 = mat.m11; + float a30 = mat.m12, a31 = mat.m13, a32 = mat.m14, a33 = mat.m15; + + result = a30*a21*a12*a03 - a20*a31*a12*a03 - a30*a11*a22*a03 + a10*a31*a22*a03 + + a20*a11*a32*a03 - a10*a21*a32*a03 - a30*a21*a02*a13 + a20*a31*a02*a13 + + a30*a01*a22*a13 - a00*a31*a22*a13 - a20*a01*a32*a13 + a00*a21*a32*a13 + + a30*a11*a02*a23 - a10*a31*a02*a23 - a30*a01*a12*a23 + a00*a31*a12*a23 + + a10*a01*a32*a23 - a00*a11*a32*a23 - a20*a11*a02*a33 + a10*a21*a02*a33 + + a20*a01*a12*a33 - a00*a21*a12*a33 - a10*a01*a22*a33 + a00*a11*a22*a33; + + return result; +} + +// Get the trace of the matrix (sum of the values along the diagonal) +RMAPI float MatrixTrace(Matrix mat) +{ + float result = (mat.m0 + mat.m5 + mat.m10 + mat.m15); + + return result; +} + +// Transposes provided matrix +RMAPI Matrix MatrixTranspose(Matrix mat) +{ + Matrix result = { 0 }; + + result.m0 = mat.m0; + result.m1 = mat.m4; + result.m2 = mat.m8; + result.m3 = mat.m12; + result.m4 = mat.m1; + result.m5 = mat.m5; + result.m6 = mat.m9; + result.m7 = mat.m13; + result.m8 = mat.m2; + result.m9 = mat.m6; + result.m10 = mat.m10; + result.m11 = mat.m14; + result.m12 = mat.m3; + result.m13 = mat.m7; + result.m14 = mat.m11; + result.m15 = mat.m15; + + return result; +} + +// Invert provided matrix +RMAPI Matrix MatrixInvert(Matrix mat) +{ + Matrix result = { 0 }; + + // Cache the matrix values (speed optimization) + float a00 = mat.m0, a01 = mat.m1, a02 = mat.m2, a03 = mat.m3; + float a10 = mat.m4, a11 = mat.m5, a12 = mat.m6, a13 = mat.m7; + float a20 = mat.m8, a21 = mat.m9, a22 = mat.m10, a23 = mat.m11; + float a30 = mat.m12, a31 = mat.m13, a32 = mat.m14, a33 = mat.m15; + + float b00 = a00*a11 - a01*a10; + float b01 = a00*a12 - a02*a10; + float b02 = a00*a13 - a03*a10; + float b03 = a01*a12 - a02*a11; + float b04 = a01*a13 - a03*a11; + float b05 = a02*a13 - a03*a12; + float b06 = a20*a31 - a21*a30; + float b07 = a20*a32 - a22*a30; + float b08 = a20*a33 - a23*a30; + float b09 = a21*a32 - a22*a31; + float b10 = a21*a33 - a23*a31; + float b11 = a22*a33 - a23*a32; + + // Calculate the invert determinant (inlined to avoid double-caching) + float invDet = 1.0f/(b00*b11 - b01*b10 + b02*b09 + b03*b08 - b04*b07 + b05*b06); + + result.m0 = (a11*b11 - a12*b10 + a13*b09)*invDet; + result.m1 = (-a01*b11 + a02*b10 - a03*b09)*invDet; + result.m2 = (a31*b05 - a32*b04 + a33*b03)*invDet; + result.m3 = (-a21*b05 + a22*b04 - a23*b03)*invDet; + result.m4 = (-a10*b11 + a12*b08 - a13*b07)*invDet; + result.m5 = (a00*b11 - a02*b08 + a03*b07)*invDet; + result.m6 = (-a30*b05 + a32*b02 - a33*b01)*invDet; + result.m7 = (a20*b05 - a22*b02 + a23*b01)*invDet; + result.m8 = (a10*b10 - a11*b08 + a13*b06)*invDet; + result.m9 = (-a00*b10 + a01*b08 - a03*b06)*invDet; + result.m10 = (a30*b04 - a31*b02 + a33*b00)*invDet; + result.m11 = (-a20*b04 + a21*b02 - a23*b00)*invDet; + result.m12 = (-a10*b09 + a11*b07 - a12*b06)*invDet; + result.m13 = (a00*b09 - a01*b07 + a02*b06)*invDet; + result.m14 = (-a30*b03 + a31*b01 - a32*b00)*invDet; + result.m15 = (a20*b03 - a21*b01 + a22*b00)*invDet; + + return result; +} + +// Get identity matrix +RMAPI Matrix MatrixIdentity(void) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; + + return result; +} + +// Add two matrices +RMAPI Matrix MatrixAdd(Matrix left, Matrix right) +{ + Matrix result = { 0 }; + + result.m0 = left.m0 + right.m0; + result.m1 = left.m1 + right.m1; + result.m2 = left.m2 + right.m2; + result.m3 = left.m3 + right.m3; + result.m4 = left.m4 + right.m4; + result.m5 = left.m5 + right.m5; + result.m6 = left.m6 + right.m6; + result.m7 = left.m7 + right.m7; + result.m8 = left.m8 + right.m8; + result.m9 = left.m9 + right.m9; + result.m10 = left.m10 + right.m10; + result.m11 = left.m11 + right.m11; + result.m12 = left.m12 + right.m12; + result.m13 = left.m13 + right.m13; + result.m14 = left.m14 + right.m14; + result.m15 = left.m15 + right.m15; + + return result; +} + +// Subtract two matrices (left - right) +RMAPI Matrix MatrixSubtract(Matrix left, Matrix right) +{ + Matrix result = { 0 }; + + result.m0 = left.m0 - right.m0; + result.m1 = left.m1 - right.m1; + result.m2 = left.m2 - right.m2; + result.m3 = left.m3 - right.m3; + result.m4 = left.m4 - right.m4; + result.m5 = left.m5 - right.m5; + result.m6 = left.m6 - right.m6; + result.m7 = left.m7 - right.m7; + result.m8 = left.m8 - right.m8; + result.m9 = left.m9 - right.m9; + result.m10 = left.m10 - right.m10; + result.m11 = left.m11 - right.m11; + result.m12 = left.m12 - right.m12; + result.m13 = left.m13 - right.m13; + result.m14 = left.m14 - right.m14; + result.m15 = left.m15 - right.m15; + + return result; +} + +// Get two matrix multiplication +// NOTE: When multiplying matrices... the order matters! +RMAPI Matrix MatrixMultiply(Matrix left, Matrix right) +{ + Matrix result = { 0 }; + + result.m0 = left.m0*right.m0 + left.m1*right.m4 + left.m2*right.m8 + left.m3*right.m12; + result.m1 = left.m0*right.m1 + left.m1*right.m5 + left.m2*right.m9 + left.m3*right.m13; + result.m2 = left.m0*right.m2 + left.m1*right.m6 + left.m2*right.m10 + left.m3*right.m14; + result.m3 = left.m0*right.m3 + left.m1*right.m7 + left.m2*right.m11 + left.m3*right.m15; + result.m4 = left.m4*right.m0 + left.m5*right.m4 + left.m6*right.m8 + left.m7*right.m12; + result.m5 = left.m4*right.m1 + left.m5*right.m5 + left.m6*right.m9 + left.m7*right.m13; + result.m6 = left.m4*right.m2 + left.m5*right.m6 + left.m6*right.m10 + left.m7*right.m14; + result.m7 = left.m4*right.m3 + left.m5*right.m7 + left.m6*right.m11 + left.m7*right.m15; + result.m8 = left.m8*right.m0 + left.m9*right.m4 + left.m10*right.m8 + left.m11*right.m12; + result.m9 = left.m8*right.m1 + left.m9*right.m5 + left.m10*right.m9 + left.m11*right.m13; + result.m10 = left.m8*right.m2 + left.m9*right.m6 + left.m10*right.m10 + left.m11*right.m14; + result.m11 = left.m8*right.m3 + left.m9*right.m7 + left.m10*right.m11 + left.m11*right.m15; + result.m12 = left.m12*right.m0 + left.m13*right.m4 + left.m14*right.m8 + left.m15*right.m12; + result.m13 = left.m12*right.m1 + left.m13*right.m5 + left.m14*right.m9 + left.m15*right.m13; + result.m14 = left.m12*right.m2 + left.m13*right.m6 + left.m14*right.m10 + left.m15*right.m14; + result.m15 = left.m12*right.m3 + left.m13*right.m7 + left.m14*right.m11 + left.m15*right.m15; + + return result; +} + +// Get translation matrix +RMAPI Matrix MatrixTranslate(float x, float y, float z) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, x, + 0.0f, 1.0f, 0.0f, y, + 0.0f, 0.0f, 1.0f, z, + 0.0f, 0.0f, 0.0f, 1.0f }; + + return result; +} + +// Create rotation matrix from axis and angle +// NOTE: Angle should be provided in radians +RMAPI Matrix MatrixRotate(Vector3 axis, float angle) +{ + Matrix result = { 0 }; + + float x = axis.x, y = axis.y, z = axis.z; + + float lengthSquared = x*x + y*y + z*z; + + if ((lengthSquared != 1.0f) && (lengthSquared != 0.0f)) + { + float ilength = 1.0f/sqrtf(lengthSquared); + x *= ilength; + y *= ilength; + z *= ilength; + } + + float sinres = sinf(angle); + float cosres = cosf(angle); + float t = 1.0f - cosres; + + result.m0 = x*x*t + cosres; + result.m1 = y*x*t + z*sinres; + result.m2 = z*x*t - y*sinres; + result.m3 = 0.0f; + + result.m4 = x*y*t - z*sinres; + result.m5 = y*y*t + cosres; + result.m6 = z*y*t + x*sinres; + result.m7 = 0.0f; + + result.m8 = x*z*t + y*sinres; + result.m9 = y*z*t - x*sinres; + result.m10 = z*z*t + cosres; + result.m11 = 0.0f; + + result.m12 = 0.0f; + result.m13 = 0.0f; + result.m14 = 0.0f; + result.m15 = 1.0f; + + return result; +} + +// Get x-rotation matrix +// NOTE: Angle must be provided in radians +RMAPI Matrix MatrixRotateX(float angle) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() + + float cosres = cosf(angle); + float sinres = sinf(angle); + + result.m5 = cosres; + result.m6 = sinres; + result.m9 = -sinres; + result.m10 = cosres; + + return result; +} + +// Get y-rotation matrix +// NOTE: Angle must be provided in radians +RMAPI Matrix MatrixRotateY(float angle) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() + + float cosres = cosf(angle); + float sinres = sinf(angle); + + result.m0 = cosres; + result.m2 = -sinres; + result.m8 = sinres; + result.m10 = cosres; + + return result; +} + +// Get z-rotation matrix +// NOTE: Angle must be provided in radians +RMAPI Matrix MatrixRotateZ(float angle) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() + + float cosres = cosf(angle); + float sinres = sinf(angle); + + result.m0 = cosres; + result.m1 = sinres; + result.m4 = -sinres; + result.m5 = cosres; + + return result; +} + + +// Get xyz-rotation matrix +// NOTE: Angle must be provided in radians +RMAPI Matrix MatrixRotateXYZ(Vector3 angle) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() + + float cosz = cosf(-angle.z); + float sinz = sinf(-angle.z); + float cosy = cosf(-angle.y); + float siny = sinf(-angle.y); + float cosx = cosf(-angle.x); + float sinx = sinf(-angle.x); + + result.m0 = cosz*cosy; + result.m1 = (cosz*siny*sinx) - (sinz*cosx); + result.m2 = (cosz*siny*cosx) + (sinz*sinx); + + result.m4 = sinz*cosy; + result.m5 = (sinz*siny*sinx) + (cosz*cosx); + result.m6 = (sinz*siny*cosx) - (cosz*sinx); + + result.m8 = -siny; + result.m9 = cosy*sinx; + result.m10= cosy*cosx; + + return result; +} + +// Get zyx-rotation matrix +// NOTE: Angle must be provided in radians +RMAPI Matrix MatrixRotateZYX(Vector3 angle) +{ + Matrix result = { 0 }; + + float cz = cosf(angle.z); + float sz = sinf(angle.z); + float cy = cosf(angle.y); + float sy = sinf(angle.y); + float cx = cosf(angle.x); + float sx = sinf(angle.x); + + result.m0 = cz*cy; + result.m4 = cz*sy*sx - cx*sz; + result.m8 = sz*sx + cz*cx*sy; + result.m12 = 0; + + result.m1 = cy*sz; + result.m5 = cz*cx + sz*sy*sx; + result.m9 = cx*sz*sy - cz*sx; + result.m13 = 0; + + result.m2 = -sy; + result.m6 = cy*sx; + result.m10 = cy*cx; + result.m14 = 0; + + result.m3 = 0; + result.m7 = 0; + result.m11 = 0; + result.m15 = 1; + + return result; +} + +// Get scaling matrix +RMAPI Matrix MatrixScale(float x, float y, float z) +{ + Matrix result = { x, 0.0f, 0.0f, 0.0f, + 0.0f, y, 0.0f, 0.0f, + 0.0f, 0.0f, z, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; + + return result; +} + +// Get perspective projection matrix +RMAPI Matrix MatrixFrustum(double left, double right, double bottom, double top, double nearPlane, double farPlane) +{ + Matrix result = { 0 }; + + float rl = (float)(right - left); + float tb = (float)(top - bottom); + float fn = (float)(farPlane - nearPlane); + + result.m0 = ((float)nearPlane*2.0f)/rl; + result.m1 = 0.0f; + result.m2 = 0.0f; + result.m3 = 0.0f; + + result.m4 = 0.0f; + result.m5 = ((float)nearPlane*2.0f)/tb; + result.m6 = 0.0f; + result.m7 = 0.0f; + + result.m8 = ((float)right + (float)left)/rl; + result.m9 = ((float)top + (float)bottom)/tb; + result.m10 = -((float)farPlane + (float)nearPlane)/fn; + result.m11 = -1.0f; + + result.m12 = 0.0f; + result.m13 = 0.0f; + result.m14 = -((float)farPlane*(float)nearPlane*2.0f)/fn; + result.m15 = 0.0f; + + return result; +} + +// Get perspective projection matrix +// NOTE: Fovy angle must be provided in radians +RMAPI Matrix MatrixPerspective(double fovY, double aspect, double nearPlane, double farPlane) +{ + Matrix result = { 0 }; + + double top = nearPlane*tan(fovY*0.5); + double bottom = -top; + double right = top*aspect; + double left = -right; + + // MatrixFrustum(-right, right, -top, top, near, far); + float rl = (float)(right - left); + float tb = (float)(top - bottom); + float fn = (float)(farPlane - nearPlane); + + result.m0 = ((float)nearPlane*2.0f)/rl; + result.m5 = ((float)nearPlane*2.0f)/tb; + result.m8 = ((float)right + (float)left)/rl; + result.m9 = ((float)top + (float)bottom)/tb; + result.m10 = -((float)farPlane + (float)nearPlane)/fn; + result.m11 = -1.0f; + result.m14 = -((float)farPlane*(float)nearPlane*2.0f)/fn; + + return result; +} + +// Get orthographic projection matrix +RMAPI Matrix MatrixOrtho(double left, double right, double bottom, double top, double nearPlane, double farPlane) +{ + Matrix result = { 0 }; + + float rl = (float)(right - left); + float tb = (float)(top - bottom); + float fn = (float)(farPlane - nearPlane); + + result.m0 = 2.0f/rl; + result.m1 = 0.0f; + result.m2 = 0.0f; + result.m3 = 0.0f; + result.m4 = 0.0f; + result.m5 = 2.0f/tb; + result.m6 = 0.0f; + result.m7 = 0.0f; + result.m8 = 0.0f; + result.m9 = 0.0f; + result.m10 = -2.0f/fn; + result.m11 = 0.0f; + result.m12 = -((float)left + (float)right)/rl; + result.m13 = -((float)top + (float)bottom)/tb; + result.m14 = -((float)farPlane + (float)nearPlane)/fn; + result.m15 = 1.0f; + + return result; +} + +// Get camera look-at matrix (view matrix) +RMAPI Matrix MatrixLookAt(Vector3 eye, Vector3 target, Vector3 up) +{ + Matrix result = { 0 }; + + float length = 0.0f; + float ilength = 0.0f; + + // Vector3Subtract(eye, target) + Vector3 vz = { eye.x - target.x, eye.y - target.y, eye.z - target.z }; + + // Vector3Normalize(vz) + Vector3 v = vz; + length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + if (length == 0.0f) length = 1.0f; + ilength = 1.0f/length; + vz.x *= ilength; + vz.y *= ilength; + vz.z *= ilength; + + // Vector3CrossProduct(up, vz) + Vector3 vx = { up.y*vz.z - up.z*vz.y, up.z*vz.x - up.x*vz.z, up.x*vz.y - up.y*vz.x }; + + // Vector3Normalize(x) + v = vx; + length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + if (length == 0.0f) length = 1.0f; + ilength = 1.0f/length; + vx.x *= ilength; + vx.y *= ilength; + vx.z *= ilength; + + // Vector3CrossProduct(vz, vx) + Vector3 vy = { vz.y*vx.z - vz.z*vx.y, vz.z*vx.x - vz.x*vx.z, vz.x*vx.y - vz.y*vx.x }; + + result.m0 = vx.x; + result.m1 = vy.x; + result.m2 = vz.x; + result.m3 = 0.0f; + result.m4 = vx.y; + result.m5 = vy.y; + result.m6 = vz.y; + result.m7 = 0.0f; + result.m8 = vx.z; + result.m9 = vy.z; + result.m10 = vz.z; + result.m11 = 0.0f; + result.m12 = -(vx.x*eye.x + vx.y*eye.y + vx.z*eye.z); // Vector3DotProduct(vx, eye) + result.m13 = -(vy.x*eye.x + vy.y*eye.y + vy.z*eye.z); // Vector3DotProduct(vy, eye) + result.m14 = -(vz.x*eye.x + vz.y*eye.y + vz.z*eye.z); // Vector3DotProduct(vz, eye) + result.m15 = 1.0f; + + return result; +} + +// Get float array of matrix data +RMAPI float16 MatrixToFloatV(Matrix mat) +{ + float16 result = { 0 }; + + result.v[0] = mat.m0; + result.v[1] = mat.m1; + result.v[2] = mat.m2; + result.v[3] = mat.m3; + result.v[4] = mat.m4; + result.v[5] = mat.m5; + result.v[6] = mat.m6; + result.v[7] = mat.m7; + result.v[8] = mat.m8; + result.v[9] = mat.m9; + result.v[10] = mat.m10; + result.v[11] = mat.m11; + result.v[12] = mat.m12; + result.v[13] = mat.m13; + result.v[14] = mat.m14; + result.v[15] = mat.m15; + + return result; +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Quaternion math +//---------------------------------------------------------------------------------- + +// Add two quaternions +RMAPI Quaternion QuaternionAdd(Quaternion q1, Quaternion q2) +{ + Quaternion result = {q1.x + q2.x, q1.y + q2.y, q1.z + q2.z, q1.w + q2.w}; + + return result; +} + +// Add quaternion and float value +RMAPI Quaternion QuaternionAddValue(Quaternion q, float add) +{ + Quaternion result = {q.x + add, q.y + add, q.z + add, q.w + add}; + + return result; +} + +// Subtract two quaternions +RMAPI Quaternion QuaternionSubtract(Quaternion q1, Quaternion q2) +{ + Quaternion result = {q1.x - q2.x, q1.y - q2.y, q1.z - q2.z, q1.w - q2.w}; + + return result; +} + +// Subtract quaternion and float value +RMAPI Quaternion QuaternionSubtractValue(Quaternion q, float sub) +{ + Quaternion result = {q.x - sub, q.y - sub, q.z - sub, q.w - sub}; + + return result; +} + +// Get identity quaternion +RMAPI Quaternion QuaternionIdentity(void) +{ + Quaternion result = { 0.0f, 0.0f, 0.0f, 1.0f }; + + return result; +} + +// Computes the length of a quaternion +RMAPI float QuaternionLength(Quaternion q) +{ + float result = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + + return result; +} + +// Normalize provided quaternion +RMAPI Quaternion QuaternionNormalize(Quaternion q) +{ + Quaternion result = { 0 }; + + float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + if (length == 0.0f) length = 1.0f; + float ilength = 1.0f/length; + + result.x = q.x*ilength; + result.y = q.y*ilength; + result.z = q.z*ilength; + result.w = q.w*ilength; + + return result; +} + +// Invert provided quaternion +RMAPI Quaternion QuaternionInvert(Quaternion q) +{ + Quaternion result = q; + + float lengthSq = q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w; + + if (lengthSq != 0.0f) + { + float invLength = 1.0f/lengthSq; + + result.x *= -invLength; + result.y *= -invLength; + result.z *= -invLength; + result.w *= invLength; + } + + return result; +} + +// Calculate two quaternion multiplication +RMAPI Quaternion QuaternionMultiply(Quaternion q1, Quaternion q2) +{ + Quaternion result = { 0 }; + + float qax = q1.x, qay = q1.y, qaz = q1.z, qaw = q1.w; + float qbx = q2.x, qby = q2.y, qbz = q2.z, qbw = q2.w; + + result.x = qax*qbw + qaw*qbx + qay*qbz - qaz*qby; + result.y = qay*qbw + qaw*qby + qaz*qbx - qax*qbz; + result.z = qaz*qbw + qaw*qbz + qax*qby - qay*qbx; + result.w = qaw*qbw - qax*qbx - qay*qby - qaz*qbz; + + return result; +} + +// Scale quaternion by float value +RMAPI Quaternion QuaternionScale(Quaternion q, float mul) +{ + Quaternion result = { 0 }; + + result.x = q.x*mul; + result.y = q.y*mul; + result.z = q.z*mul; + result.w = q.w*mul; + + return result; +} + +// Divide two quaternions +RMAPI Quaternion QuaternionDivide(Quaternion q1, Quaternion q2) +{ + Quaternion result = { q1.x/q2.x, q1.y/q2.y, q1.z/q2.z, q1.w/q2.w }; + + return result; +} + +// Calculate linear interpolation between two quaternions +RMAPI Quaternion QuaternionLerp(Quaternion q1, Quaternion q2, float amount) +{ + Quaternion result = { 0 }; + + result.x = q1.x + amount*(q2.x - q1.x); + result.y = q1.y + amount*(q2.y - q1.y); + result.z = q1.z + amount*(q2.z - q1.z); + result.w = q1.w + amount*(q2.w - q1.w); + + return result; +} + +// Calculate slerp-optimized interpolation between two quaternions +RMAPI Quaternion QuaternionNlerp(Quaternion q1, Quaternion q2, float amount) +{ + Quaternion result = { 0 }; + + // QuaternionLerp(q1, q2, amount) + result.x = q1.x + amount*(q2.x - q1.x); + result.y = q1.y + amount*(q2.y - q1.y); + result.z = q1.z + amount*(q2.z - q1.z); + result.w = q1.w + amount*(q2.w - q1.w); + + // QuaternionNormalize(q); + Quaternion q = result; + float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + if (length == 0.0f) length = 1.0f; + float ilength = 1.0f/length; + + result.x = q.x*ilength; + result.y = q.y*ilength; + result.z = q.z*ilength; + result.w = q.w*ilength; + + return result; +} + +// Calculates spherical linear interpolation between two quaternions +RMAPI Quaternion QuaternionSlerp(Quaternion q1, Quaternion q2, float amount) +{ + Quaternion result = { 0 }; + +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + float cosHalfTheta = q1.x*q2.x + q1.y*q2.y + q1.z*q2.z + q1.w*q2.w; + + if (cosHalfTheta < 0) + { + q2.x = -q2.x; q2.y = -q2.y; q2.z = -q2.z; q2.w = -q2.w; + cosHalfTheta = -cosHalfTheta; + } + + if (fabsf(cosHalfTheta) >= 1.0f) result = q1; + else if (cosHalfTheta > 0.95f) result = QuaternionNlerp(q1, q2, amount); + else + { + float halfTheta = acosf(cosHalfTheta); + float sinHalfTheta = sqrtf(1.0f - cosHalfTheta*cosHalfTheta); + + if (fabsf(sinHalfTheta) < EPSILON) + { + result.x = (q1.x*0.5f + q2.x*0.5f); + result.y = (q1.y*0.5f + q2.y*0.5f); + result.z = (q1.z*0.5f + q2.z*0.5f); + result.w = (q1.w*0.5f + q2.w*0.5f); + } + else + { + float ratioA = sinf((1 - amount)*halfTheta)/sinHalfTheta; + float ratioB = sinf(amount*halfTheta)/sinHalfTheta; + + result.x = (q1.x*ratioA + q2.x*ratioB); + result.y = (q1.y*ratioA + q2.y*ratioB); + result.z = (q1.z*ratioA + q2.z*ratioB); + result.w = (q1.w*ratioA + q2.w*ratioB); + } + } + + return result; +} + +// Calculate quaternion cubic spline interpolation using Cubic Hermite Spline algorithm +// as described in the GLTF 2.0 specification: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#interpolation-cubic +RMAPI Quaternion QuaternionCubicHermiteSpline(Quaternion q1, Quaternion outTangent1, Quaternion q2, Quaternion inTangent2, float t) +{ + float t2 = t*t; + float t3 = t2*t; + float h00 = 2*t3 - 3*t2 + 1; + float h10 = t3 - 2*t2 + t; + float h01 = -2*t3 + 3*t2; + float h11 = t3 - t2; + + Quaternion p0 = QuaternionScale(q1, h00); + Quaternion m0 = QuaternionScale(outTangent1, h10); + Quaternion p1 = QuaternionScale(q2, h01); + Quaternion m1 = QuaternionScale(inTangent2, h11); + + Quaternion result = { 0 }; + + result = QuaternionAdd(p0, m0); + result = QuaternionAdd(result, p1); + result = QuaternionAdd(result, m1); + result = QuaternionNormalize(result); + + return result; +} + +// Calculate quaternion based on the rotation from one vector to another +RMAPI Quaternion QuaternionFromVector3ToVector3(Vector3 from, Vector3 to) +{ + Quaternion result = { 0 }; + + float cos2Theta = (from.x*to.x + from.y*to.y + from.z*to.z); // Vector3DotProduct(from, to) + Vector3 cross = { from.y*to.z - from.z*to.y, from.z*to.x - from.x*to.z, from.x*to.y - from.y*to.x }; // Vector3CrossProduct(from, to) + + result.x = cross.x; + result.y = cross.y; + result.z = cross.z; + result.w = 1.0f + cos2Theta; + + // QuaternionNormalize(q); + // NOTE: Normalize to essentially nlerp the original and identity to 0.5 + Quaternion q = result; + float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + if (length == 0.0f) length = 1.0f; + float ilength = 1.0f/length; + + result.x = q.x*ilength; + result.y = q.y*ilength; + result.z = q.z*ilength; + result.w = q.w*ilength; + + return result; +} + +// Get a quaternion for a given rotation matrix +RMAPI Quaternion QuaternionFromMatrix(Matrix mat) +{ + Quaternion result = { 0 }; + + float fourWSquaredMinus1 = mat.m0 + mat.m5 + mat.m10; + float fourXSquaredMinus1 = mat.m0 - mat.m5 - mat.m10; + float fourYSquaredMinus1 = mat.m5 - mat.m0 - mat.m10; + float fourZSquaredMinus1 = mat.m10 - mat.m0 - mat.m5; + + int biggestIndex = 0; + float fourBiggestSquaredMinus1 = fourWSquaredMinus1; + if (fourXSquaredMinus1 > fourBiggestSquaredMinus1) + { + fourBiggestSquaredMinus1 = fourXSquaredMinus1; + biggestIndex = 1; + } + + if (fourYSquaredMinus1 > fourBiggestSquaredMinus1) + { + fourBiggestSquaredMinus1 = fourYSquaredMinus1; + biggestIndex = 2; + } + + if (fourZSquaredMinus1 > fourBiggestSquaredMinus1) + { + fourBiggestSquaredMinus1 = fourZSquaredMinus1; + biggestIndex = 3; + } + + float biggestVal = sqrtf(fourBiggestSquaredMinus1 + 1.0f)*0.5f; + float mult = 0.25f/biggestVal; + + switch (biggestIndex) + { + case 0: + result.w = biggestVal; + result.x = (mat.m6 - mat.m9)*mult; + result.y = (mat.m8 - mat.m2)*mult; + result.z = (mat.m1 - mat.m4)*mult; + break; + case 1: + result.x = biggestVal; + result.w = (mat.m6 - mat.m9)*mult; + result.y = (mat.m1 + mat.m4)*mult; + result.z = (mat.m8 + mat.m2)*mult; + break; + case 2: + result.y = biggestVal; + result.w = (mat.m8 - mat.m2)*mult; + result.x = (mat.m1 + mat.m4)*mult; + result.z = (mat.m6 + mat.m9)*mult; + break; + case 3: + result.z = biggestVal; + result.w = (mat.m1 - mat.m4)*mult; + result.x = (mat.m8 + mat.m2)*mult; + result.y = (mat.m6 + mat.m9)*mult; + break; + } + + return result; +} + +// Get a matrix for a given quaternion +RMAPI Matrix QuaternionToMatrix(Quaternion q) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() + + float a2 = q.x*q.x; + float b2 = q.y*q.y; + float c2 = q.z*q.z; + float ac = q.x*q.z; + float ab = q.x*q.y; + float bc = q.y*q.z; + float ad = q.w*q.x; + float bd = q.w*q.y; + float cd = q.w*q.z; + + result.m0 = 1 - 2*(b2 + c2); + result.m1 = 2*(ab + cd); + result.m2 = 2*(ac - bd); + + result.m4 = 2*(ab - cd); + result.m5 = 1 - 2*(a2 + c2); + result.m6 = 2*(bc + ad); + + result.m8 = 2*(ac + bd); + result.m9 = 2*(bc - ad); + result.m10 = 1 - 2*(a2 + b2); + + return result; +} + +// Get rotation quaternion for an angle and axis +// NOTE: Angle must be provided in radians +RMAPI Quaternion QuaternionFromAxisAngle(Vector3 axis, float angle) +{ + Quaternion result = { 0.0f, 0.0f, 0.0f, 1.0f }; + + float axisLength = sqrtf(axis.x*axis.x + axis.y*axis.y + axis.z*axis.z); + + if (axisLength != 0.0f) + { + angle *= 0.5f; + + float length = 0.0f; + float ilength = 0.0f; + + // Vector3Normalize(axis) + length = axisLength; + if (length == 0.0f) length = 1.0f; + ilength = 1.0f/length; + axis.x *= ilength; + axis.y *= ilength; + axis.z *= ilength; + + float sinres = sinf(angle); + float cosres = cosf(angle); + + result.x = axis.x*sinres; + result.y = axis.y*sinres; + result.z = axis.z*sinres; + result.w = cosres; + + // QuaternionNormalize(q); + Quaternion q = result; + length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + if (length == 0.0f) length = 1.0f; + ilength = 1.0f/length; + result.x = q.x*ilength; + result.y = q.y*ilength; + result.z = q.z*ilength; + result.w = q.w*ilength; + } + + return result; +} + +// Get the rotation angle and axis for a given quaternion +RMAPI void QuaternionToAxisAngle(Quaternion q, Vector3 *outAxis, float *outAngle) +{ + if (fabsf(q.w) > 1.0f) + { + // QuaternionNormalize(q); + float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + if (length == 0.0f) length = 1.0f; + float ilength = 1.0f/length; + + q.x = q.x*ilength; + q.y = q.y*ilength; + q.z = q.z*ilength; + q.w = q.w*ilength; + } + + Vector3 resAxis = { 0.0f, 0.0f, 0.0f }; + float resAngle = 2.0f*acosf(q.w); + float den = sqrtf(1.0f - q.w*q.w); + + if (den > EPSILON) + { + resAxis.x = q.x/den; + resAxis.y = q.y/den; + resAxis.z = q.z/den; + } + else + { + // This occurs when the angle is zero. + // Not a problem: just set an arbitrary normalized axis. + resAxis.x = 1.0f; + } + + *outAxis = resAxis; + *outAngle = resAngle; +} + +// Get the quaternion equivalent to Euler angles +// NOTE: Rotation order is ZYX +RMAPI Quaternion QuaternionFromEuler(float pitch, float yaw, float roll) +{ + Quaternion result = { 0 }; + + float x0 = cosf(pitch*0.5f); + float x1 = sinf(pitch*0.5f); + float y0 = cosf(yaw*0.5f); + float y1 = sinf(yaw*0.5f); + float z0 = cosf(roll*0.5f); + float z1 = sinf(roll*0.5f); + + result.x = x1*y0*z0 - x0*y1*z1; + result.y = x0*y1*z0 + x1*y0*z1; + result.z = x0*y0*z1 - x1*y1*z0; + result.w = x0*y0*z0 + x1*y1*z1; + + return result; +} + +// Get the Euler angles equivalent to quaternion (roll, pitch, yaw) +// NOTE: Angles are returned in a Vector3 struct in radians +RMAPI Vector3 QuaternionToEuler(Quaternion q) +{ + Vector3 result = { 0 }; + + // Roll (x-axis rotation) + float x0 = 2.0f*(q.w*q.x + q.y*q.z); + float x1 = 1.0f - 2.0f*(q.x*q.x + q.y*q.y); + result.x = atan2f(x0, x1); + + // Pitch (y-axis rotation) + float y0 = 2.0f*(q.w*q.y - q.z*q.x); + y0 = y0 > 1.0f ? 1.0f : y0; + y0 = y0 < -1.0f ? -1.0f : y0; + result.y = asinf(y0); + + // Yaw (z-axis rotation) + float z0 = 2.0f*(q.w*q.z + q.x*q.y); + float z1 = 1.0f - 2.0f*(q.y*q.y + q.z*q.z); + result.z = atan2f(z0, z1); + + return result; +} + +// Transform a quaternion given a transformation matrix +RMAPI Quaternion QuaternionTransform(Quaternion q, Matrix mat) +{ + Quaternion result = { 0 }; + + result.x = mat.m0*q.x + mat.m4*q.y + mat.m8*q.z + mat.m12*q.w; + result.y = mat.m1*q.x + mat.m5*q.y + mat.m9*q.z + mat.m13*q.w; + result.z = mat.m2*q.x + mat.m6*q.y + mat.m10*q.z + mat.m14*q.w; + result.w = mat.m3*q.x + mat.m7*q.y + mat.m11*q.z + mat.m15*q.w; + + return result; +} + +// Check whether two given quaternions are almost equal +RMAPI int QuaternionEquals(Quaternion p, Quaternion q) +{ +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + int result = (((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && + ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && + ((fabsf(p.z - q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))) && + ((fabsf(p.w - q.w)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.w), fabsf(q.w)))))) || + (((fabsf(p.x + q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && + ((fabsf(p.y + q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && + ((fabsf(p.z + q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))) && + ((fabsf(p.w + q.w)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.w), fabsf(q.w)))))); + + return result; +} + +// Decompose a transformation matrix into its rotational, translational and scaling components +RMAPI void MatrixDecompose(Matrix mat, Vector3 *translation, Quaternion *rotation, Vector3 *scale) +{ + // Extract translation. + translation->x = mat.m12; + translation->y = mat.m13; + translation->z = mat.m14; + + // Extract upper-left for determinant computation + const float a = mat.m0; + const float b = mat.m4; + const float c = mat.m8; + const float d = mat.m1; + const float e = mat.m5; + const float f = mat.m9; + const float g = mat.m2; + const float h = mat.m6; + const float i = mat.m10; + const float A = e*i - f*h; + const float B = f*g - d*i; + const float C = d*h - e*g; + + // Extract scale + const float det = a*A + b*B + c*C; + Vector3 abc = { a, b, c }; + Vector3 def = { d, e, f }; + Vector3 ghi = { g, h, i }; + + float scalex = Vector3Length(abc); + float scaley = Vector3Length(def); + float scalez = Vector3Length(ghi); + Vector3 s = { scalex, scaley, scalez }; + + if (det < 0) s = Vector3Negate(s); + + *scale = s; + + // Remove scale from the matrix if it is not close to zero + Matrix clone = mat; + if (!FloatEquals(det, 0)) + { + clone.m0 /= s.x; + clone.m4 /= s.x; + clone.m8 /= s.x; + clone.m1 /= s.y; + clone.m5 /= s.y; + clone.m9 /= s.y; + clone.m2 /= s.z; + clone.m6 /= s.z; + clone.m10 /= s.z; + + // Extract rotation + *rotation = QuaternionFromMatrix(clone); + } + else + { + // Set to identity if close to zero + *rotation = QuaternionIdentity(); + } +} + +#if defined(__cplusplus) && !defined(RAYMATH_DISABLE_CPP_OPERATORS) + +// Optional C++ math operators +//------------------------------------------------------------------------------- + +// Vector2 operators +static constexpr Vector2 Vector2Zeros = { 0, 0 }; +static constexpr Vector2 Vector2Ones = { 1, 1 }; +static constexpr Vector2 Vector2UnitX = { 1, 0 }; +static constexpr Vector2 Vector2UnitY = { 0, 1 }; + +inline Vector2 operator + (const Vector2& lhs, const Vector2& rhs) +{ + return Vector2Add(lhs, rhs); +} + +inline const Vector2& operator += (Vector2& lhs, const Vector2& rhs) +{ + lhs = Vector2Add(lhs, rhs); + return lhs; +} + +inline Vector2 operator - (const Vector2& lhs, const Vector2& rhs) +{ + return Vector2Subtract(lhs, rhs); +} + +inline const Vector2& operator -= (Vector2& lhs, const Vector2& rhs) +{ + lhs = Vector2Subtract(lhs, rhs); + return lhs; +} + +inline Vector2 operator * (const Vector2& lhs, const float& rhs) +{ + return Vector2Scale(lhs, rhs); +} + +inline const Vector2& operator *= (Vector2& lhs, const float& rhs) +{ + lhs = Vector2Scale(lhs, rhs); + return lhs; +} + +inline Vector2 operator * (const Vector2& lhs, const Vector2& rhs) +{ + return Vector2Multiply(lhs, rhs); +} + +inline const Vector2& operator *= (Vector2& lhs, const Vector2& rhs) +{ + lhs = Vector2Multiply(lhs, rhs); + return lhs; +} + +inline Vector2 operator * (const Vector2& lhs, const Matrix& rhs) +{ + return Vector2Transform(lhs, rhs); +} + +inline const Vector2& operator -= (Vector2& lhs, const Matrix& rhs) +{ + lhs = Vector2Transform(lhs, rhs); + return lhs; +} + +inline Vector2 operator / (const Vector2& lhs, const float& rhs) +{ + return Vector2Scale(lhs, 1.0f / rhs); +} + +inline const Vector2& operator /= (Vector2& lhs, const float& rhs) +{ + lhs = Vector2Scale(lhs, rhs); + return lhs; +} + +inline Vector2 operator / (const Vector2& lhs, const Vector2& rhs) +{ + return Vector2Divide(lhs, rhs); +} + +inline const Vector2& operator /= (Vector2& lhs, const Vector2& rhs) +{ + lhs = Vector2Divide(lhs, rhs); + return lhs; +} + +inline bool operator == (const Vector2& lhs, const Vector2& rhs) +{ + return FloatEquals(lhs.x, rhs.x) && FloatEquals(lhs.y, rhs.y); +} + +inline bool operator != (const Vector2& lhs, const Vector2& rhs) +{ + return !FloatEquals(lhs.x, rhs.x) || !FloatEquals(lhs.y, rhs.y); +} + +// Vector3 operators +static constexpr Vector3 Vector3Zeros = { 0, 0, 0 }; +static constexpr Vector3 Vector3Ones = { 1, 1, 1 }; +static constexpr Vector3 Vector3UnitX = { 1, 0, 0 }; +static constexpr Vector3 Vector3UnitY = { 0, 1, 0 }; +static constexpr Vector3 Vector3UnitZ = { 0, 0, 1 }; + +inline Vector3 operator + (const Vector3& lhs, const Vector3& rhs) +{ + return Vector3Add(lhs, rhs); +} + +inline const Vector3& operator += (Vector3& lhs, const Vector3& rhs) +{ + lhs = Vector3Add(lhs, rhs); + return lhs; +} + +inline Vector3 operator - (const Vector3& lhs, const Vector3& rhs) +{ + return Vector3Subtract(lhs, rhs); +} + +inline const Vector3& operator -= (Vector3& lhs, const Vector3& rhs) +{ + lhs = Vector3Subtract(lhs, rhs); + return lhs; +} + +inline Vector3 operator * (const Vector3& lhs, const float& rhs) +{ + return Vector3Scale(lhs, rhs); +} + +inline const Vector3& operator *= (Vector3& lhs, const float& rhs) +{ + lhs = Vector3Scale(lhs, rhs); + return lhs; +} + +inline Vector3 operator * (const Vector3& lhs, const Vector3& rhs) +{ + return Vector3Multiply(lhs, rhs); +} + +inline const Vector3& operator *= (Vector3& lhs, const Vector3& rhs) +{ + lhs = Vector3Multiply(lhs, rhs); + return lhs; +} + +inline Vector3 operator * (const Vector3& lhs, const Matrix& rhs) +{ + return Vector3Transform(lhs, rhs); +} + +inline const Vector3& operator -= (Vector3& lhs, const Matrix& rhs) +{ + lhs = Vector3Transform(lhs, rhs); + return lhs; +} + +inline Vector3 operator / (const Vector3& lhs, const float& rhs) +{ + return Vector3Scale(lhs, 1.0f / rhs); +} + +inline const Vector3& operator /= (Vector3& lhs, const float& rhs) +{ + lhs = Vector3Scale(lhs, rhs); + return lhs; +} + +inline Vector3 operator / (const Vector3& lhs, const Vector3& rhs) +{ + return Vector3Divide(lhs, rhs); +} + +inline const Vector3& operator /= (Vector3& lhs, const Vector3& rhs) +{ + lhs = Vector3Divide(lhs, rhs); + return lhs; +} + +inline bool operator == (const Vector3& lhs, const Vector3& rhs) +{ + return FloatEquals(lhs.x, rhs.x) && FloatEquals(lhs.y, rhs.y) && FloatEquals(lhs.z, rhs.z); +} + +inline bool operator != (const Vector3& lhs, const Vector3& rhs) +{ + return !FloatEquals(lhs.x, rhs.x) || !FloatEquals(lhs.y, rhs.y) || !FloatEquals(lhs.z, rhs.z); +} + +// Vector4 operators +static constexpr Vector4 Vector4Zeros = { 0, 0, 0, 0 }; +static constexpr Vector4 Vector4Ones = { 1, 1, 1, 1 }; +static constexpr Vector4 Vector4UnitX = { 1, 0, 0, 0 }; +static constexpr Vector4 Vector4UnitY = { 0, 1, 0, 0 }; +static constexpr Vector4 Vector4UnitZ = { 0, 0, 1, 0 }; +static constexpr Vector4 Vector4UnitW = { 0, 0, 0, 1 }; + +inline Vector4 operator + (const Vector4& lhs, const Vector4& rhs) +{ + return Vector4Add(lhs, rhs); +} + +inline const Vector4& operator += (Vector4& lhs, const Vector4& rhs) +{ + lhs = Vector4Add(lhs, rhs); + return lhs; +} + +inline Vector4 operator - (const Vector4& lhs, const Vector4& rhs) +{ + return Vector4Subtract(lhs, rhs); +} + +inline const Vector4& operator -= (Vector4& lhs, const Vector4& rhs) +{ + lhs = Vector4Subtract(lhs, rhs); + return lhs; +} + +inline Vector4 operator * (const Vector4& lhs, const float& rhs) +{ + return Vector4Scale(lhs, rhs); +} + +inline const Vector4& operator *= (Vector4& lhs, const float& rhs) +{ + lhs = Vector4Scale(lhs, rhs); + return lhs; +} + +inline Vector4 operator * (const Vector4& lhs, const Vector4& rhs) +{ + return Vector4Multiply(lhs, rhs); +} + +inline const Vector4& operator *= (Vector4& lhs, const Vector4& rhs) +{ + lhs = Vector4Multiply(lhs, rhs); + return lhs; +} + +inline Vector4 operator / (const Vector4& lhs, const float& rhs) +{ + return Vector4Scale(lhs, 1.0f / rhs); +} + +inline const Vector4& operator /= (Vector4& lhs, const float& rhs) +{ + lhs = Vector4Scale(lhs, rhs); + return lhs; +} + +inline Vector4 operator / (const Vector4& lhs, const Vector4& rhs) +{ + return Vector4Divide(lhs, rhs); +} + +inline const Vector4& operator /= (Vector4& lhs, const Vector4& rhs) +{ + lhs = Vector4Divide(lhs, rhs); + return lhs; +} + +inline bool operator == (const Vector4& lhs, const Vector4& rhs) +{ + return FloatEquals(lhs.x, rhs.x) && FloatEquals(lhs.y, rhs.y) && FloatEquals(lhs.z, rhs.z) && FloatEquals(lhs.w, rhs.w); +} + +inline bool operator != (const Vector4& lhs, const Vector4& rhs) +{ + return !FloatEquals(lhs.x, rhs.x) || !FloatEquals(lhs.y, rhs.y) || !FloatEquals(lhs.z, rhs.z) || !FloatEquals(lhs.w, rhs.w); +} + +// Quaternion operators +static constexpr Quaternion QuaternionZeros = { 0, 0, 0, 0 }; +static constexpr Quaternion QuaternionOnes = { 1, 1, 1, 1 }; +static constexpr Quaternion QuaternionUnitX = { 0, 0, 0, 1 }; + +inline Quaternion operator + (const Quaternion& lhs, const float& rhs) +{ + return QuaternionAddValue(lhs, rhs); +} + +inline const Quaternion& operator += (Quaternion& lhs, const float& rhs) +{ + lhs = QuaternionAddValue(lhs, rhs); + return lhs; +} + +inline Quaternion operator - (const Quaternion& lhs, const float& rhs) +{ + return QuaternionSubtractValue(lhs, rhs); +} + +inline const Quaternion& operator -= (Quaternion& lhs, const float& rhs) +{ + lhs = QuaternionSubtractValue(lhs, rhs); + return lhs; +} + +inline Quaternion operator * (const Quaternion& lhs, const Matrix& rhs) +{ + return QuaternionTransform(lhs, rhs); +} + +inline const Quaternion& operator *= (Quaternion& lhs, const Matrix& rhs) +{ + lhs = QuaternionTransform(lhs, rhs); + return lhs; +} + +// Matrix operators +inline Matrix operator + (const Matrix& lhs, const Matrix& rhs) +{ + return MatrixAdd(lhs, rhs); +} + +inline const Matrix& operator += (Matrix& lhs, const Matrix& rhs) +{ + lhs = MatrixAdd(lhs, rhs); + return lhs; +} + +inline Matrix operator - (const Matrix& lhs, const Matrix& rhs) +{ + return MatrixSubtract(lhs, rhs); +} + +inline const Matrix& operator -= (Matrix& lhs, const Matrix& rhs) +{ + lhs = MatrixSubtract(lhs, rhs); + return lhs; +} + +inline Matrix operator * (const Matrix& lhs, const Matrix& rhs) +{ + return MatrixMultiply(lhs, rhs); +} + +inline const Matrix& operator *= (Matrix& lhs, const Matrix& rhs) +{ + lhs = MatrixMultiply(lhs, rhs); + return lhs; +} +//------------------------------------------------------------------------------- +#endif // C++ operators + +#endif // RAYMATH_H diff --git a/lib/raylib_lin_arm64/include/rlgl.h b/lib/raylib_lin_arm64/include/rlgl.h new file mode 100644 index 0000000..756656e --- /dev/null +++ b/lib/raylib_lin_arm64/include/rlgl.h @@ -0,0 +1,5262 @@ +/********************************************************************************************** +* +* rlgl v5.0 - A multi-OpenGL abstraction layer with an immediate-mode style API +* +* DESCRIPTION: +* An abstraction layer for multiple OpenGL versions (1.1, 2.1, 3.3 Core, 4.3 Core, ES 2.0) +* that provides a pseudo-OpenGL 1.1 immediate-mode style API (rlVertex, rlTranslate, rlRotate...) +* +* ADDITIONAL NOTES: +* When choosing an OpenGL backend different than OpenGL 1.1, some internal buffer are +* initialized on rlglInit() to accumulate vertex data +* +* When an internal state change is required all the stored vertex data is renderer in batch, +* additionally, rlDrawRenderBatchActive() could be called to force flushing of the batch +* +* Some resources are also loaded for convenience, here the complete list: +* - Default batch (RLGL.defaultBatch): RenderBatch system to accumulate vertex data +* - Default texture (RLGL.defaultTextureId): 1x1 white pixel R8G8B8A8 +* - Default shader (RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs) +* +* Internal buffer (and resources) must be manually unloaded calling rlglClose() +* +* CONFIGURATION: +* #define GRAPHICS_API_OPENGL_11 +* #define GRAPHICS_API_OPENGL_21 +* #define GRAPHICS_API_OPENGL_33 +* #define GRAPHICS_API_OPENGL_43 +* #define GRAPHICS_API_OPENGL_ES2 +* #define GRAPHICS_API_OPENGL_ES3 +* Use selected OpenGL graphics backend, should be supported by platform +* Those preprocessor defines are only used on rlgl module, if OpenGL version is +* required by any other module, use rlGetVersion() to check it +* +* #define RLGL_IMPLEMENTATION +* Generates the implementation of the library into the included file +* If not defined, the library is in header only mode and can be included in other headers +* or source files without problems. But only ONE file should hold the implementation +* +* #define RLGL_RENDER_TEXTURES_HINT +* Enable framebuffer objects (fbo) support (enabled by default) +* Some GPUs could not support them despite the OpenGL version +* +* #define RLGL_SHOW_GL_DETAILS_INFO +* Show OpenGL extensions and capabilities detailed logs on init +* +* #define RLGL_ENABLE_OPENGL_DEBUG_CONTEXT +* Enable debug context (only available on OpenGL 4.3) +* +* rlgl capabilities could be customized just defining some internal +* values before library inclusion (default values listed): +* +* #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 8192 // Default internal render batch elements limits +* #define RL_DEFAULT_BATCH_BUFFERS 1 // Default number of batch buffers (multi-buffering) +* #define RL_DEFAULT_BATCH_DRAWCALLS 256 // Default number of batch draw calls (by state changes: mode, texture) +* #define RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS 4 // Maximum number of textures units that can be activated on batch drawing (SetShaderValueTexture()) +* +* #define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of internal Matrix stack +* #define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported +* #define RL_CULL_DISTANCE_NEAR 0.01 // Default projection matrix near cull distance +* #define RL_CULL_DISTANCE_FAR 1000.0 // Default projection matrix far cull distance +* +* When loading a shader, the following vertex attributes and uniform +* location names are tried to be set automatically: +* +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS "vertexBoneIds" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS "vertexBoneWeights" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL "matModel" // model matrix +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView))) +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color) +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_BONE_MATRICES "boneMatrices" // bone matrices +* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0) +* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 "texture1" // texture1 (texture slot active 1) +* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 "texture2" // texture2 (texture slot active 2) +* +* DEPENDENCIES: +* - OpenGL libraries (depending on platform and OpenGL version selected) +* - GLAD OpenGL extensions loading library (only for OpenGL 3.3 Core, 4.3 Core) +* +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) +* +* This software is provided "as-is", without any express or implied warranty. In no event +* will the authors be held liable for any damages arising from the use of this software. +* +* Permission is granted to anyone to use this software for any purpose, including commercial +* applications, and to alter it and redistribute it freely, subject to the following restrictions: +* +* 1. The origin of this software must not be misrepresented; you must not claim that you +* wrote the original software. If you use this software in a product, an acknowledgment +* in the product documentation would be appreciated but is not required. +* +* 2. Altered source versions must be plainly marked as such, and must not be misrepresented +* as being the original software. +* +* 3. This notice may not be removed or altered from any source distribution. +* +**********************************************************************************************/ + +#ifndef RLGL_H +#define RLGL_H + +#define RLGL_VERSION "5.0" + +// Function specifiers in case library is build/used as a shared library +// NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll +// NOTE: visibility(default) attribute makes symbols "visible" when compiled with -fvisibility=hidden +#if defined(_WIN32) && defined(BUILD_LIBTYPE_SHARED) + #define RLAPI __declspec(dllexport) // We are building the library as a Win32 shared library (.dll) +#elif defined(BUILD_LIBTYPE_SHARED) + #define RLAPI __attribute__((visibility("default"))) // We are building the library as a Unix shared library (.so/.dylib) +#elif defined(_WIN32) && defined(USE_LIBTYPE_SHARED) + #define RLAPI __declspec(dllimport) // We are using the library as a Win32 shared library (.dll) +#endif + +// Function specifiers definition +#ifndef RLAPI + #define RLAPI // Functions defined as 'extern' by default (implicit specifiers) +#endif + +// Support TRACELOG macros +#ifndef TRACELOG + #define TRACELOG(level, ...) (void)0 + #define TRACELOGD(...) (void)0 +#endif + +// Allow custom memory allocators +#ifndef RL_MALLOC + #define RL_MALLOC(sz) malloc(sz) +#endif +#ifndef RL_CALLOC + #define RL_CALLOC(n,sz) calloc(n,sz) +#endif +#ifndef RL_REALLOC + #define RL_REALLOC(n,sz) realloc(n,sz) +#endif +#ifndef RL_FREE + #define RL_FREE(p) free(p) +#endif + +// Security check in case no GRAPHICS_API_OPENGL_* defined +#if !defined(GRAPHICS_API_OPENGL_11) && \ + !defined(GRAPHICS_API_OPENGL_21) && \ + !defined(GRAPHICS_API_OPENGL_33) && \ + !defined(GRAPHICS_API_OPENGL_43) && \ + !defined(GRAPHICS_API_OPENGL_ES2) && \ + !defined(GRAPHICS_API_OPENGL_ES3) + #define GRAPHICS_API_OPENGL_33 +#endif + +// Security check in case multiple GRAPHICS_API_OPENGL_* defined +#if defined(GRAPHICS_API_OPENGL_11) + #if defined(GRAPHICS_API_OPENGL_21) + #undef GRAPHICS_API_OPENGL_21 + #endif + #if defined(GRAPHICS_API_OPENGL_33) + #undef GRAPHICS_API_OPENGL_33 + #endif + #if defined(GRAPHICS_API_OPENGL_43) + #undef GRAPHICS_API_OPENGL_43 + #endif + #if defined(GRAPHICS_API_OPENGL_ES2) + #undef GRAPHICS_API_OPENGL_ES2 + #endif +#endif + +// OpenGL 2.1 uses most of OpenGL 3.3 Core functionality +// WARNING: Specific parts are checked with #if defines +#if defined(GRAPHICS_API_OPENGL_21) + #define GRAPHICS_API_OPENGL_33 +#endif + +// OpenGL 4.3 uses OpenGL 3.3 Core functionality +#if defined(GRAPHICS_API_OPENGL_43) + #define GRAPHICS_API_OPENGL_33 +#endif + +// OpenGL ES 3.0 uses OpenGL ES 2.0 functionality (and more) +#if defined(GRAPHICS_API_OPENGL_ES3) + #define GRAPHICS_API_OPENGL_ES2 +#endif + +// Support framebuffer objects by default +// NOTE: Some driver implementation do not support it, despite they should +#define RLGL_RENDER_TEXTURES_HINT + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- + +// Default internal render batch elements limits +#ifndef RL_DEFAULT_BATCH_BUFFER_ELEMENTS + #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + // This is the maximum amount of elements (quads) per batch + // NOTE: Be careful with text, every letter maps to a quad + #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 8192 + #endif + #if defined(GRAPHICS_API_OPENGL_ES2) + // We reduce memory sizes for embedded systems (RPI and HTML5) + // NOTE: On HTML5 (emscripten) this is allocated on heap, + // by default it's only 16MB!...just take care... + #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 2048 + #endif +#endif +#ifndef RL_DEFAULT_BATCH_BUFFERS + #define RL_DEFAULT_BATCH_BUFFERS 1 // Default number of batch buffers (multi-buffering) +#endif +#ifndef RL_DEFAULT_BATCH_DRAWCALLS + #define RL_DEFAULT_BATCH_DRAWCALLS 256 // Default number of batch draw calls (by state changes: mode, texture) +#endif +#ifndef RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS + #define RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS 4 // Maximum number of textures units that can be activated on batch drawing (SetShaderValueTexture()) +#endif + +// Internal Matrix stack +#ifndef RL_MAX_MATRIX_STACK_SIZE + #define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of Matrix stack +#endif + +// Shader limits +#ifndef RL_MAX_SHADER_LOCATIONS + #define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported +#endif + +// Projection matrix culling +#ifndef RL_CULL_DISTANCE_NEAR + #define RL_CULL_DISTANCE_NEAR 0.01 // Default near cull distance +#endif +#ifndef RL_CULL_DISTANCE_FAR + #define RL_CULL_DISTANCE_FAR 1000.0 // Default far cull distance +#endif + +// Texture parameters (equivalent to OpenGL defines) +#define RL_TEXTURE_WRAP_S 0x2802 // GL_TEXTURE_WRAP_S +#define RL_TEXTURE_WRAP_T 0x2803 // GL_TEXTURE_WRAP_T +#define RL_TEXTURE_MAG_FILTER 0x2800 // GL_TEXTURE_MAG_FILTER +#define RL_TEXTURE_MIN_FILTER 0x2801 // GL_TEXTURE_MIN_FILTER + +#define RL_TEXTURE_FILTER_NEAREST 0x2600 // GL_NEAREST +#define RL_TEXTURE_FILTER_LINEAR 0x2601 // GL_LINEAR +#define RL_TEXTURE_FILTER_MIP_NEAREST 0x2700 // GL_NEAREST_MIPMAP_NEAREST +#define RL_TEXTURE_FILTER_NEAREST_MIP_LINEAR 0x2702 // GL_NEAREST_MIPMAP_LINEAR +#define RL_TEXTURE_FILTER_LINEAR_MIP_NEAREST 0x2701 // GL_LINEAR_MIPMAP_NEAREST +#define RL_TEXTURE_FILTER_MIP_LINEAR 0x2703 // GL_LINEAR_MIPMAP_LINEAR +#define RL_TEXTURE_FILTER_ANISOTROPIC 0x3000 // Anisotropic filter (custom identifier) +#define RL_TEXTURE_MIPMAP_BIAS_RATIO 0x4000 // Texture mipmap bias, percentage ratio (custom identifier) + +#define RL_TEXTURE_WRAP_REPEAT 0x2901 // GL_REPEAT +#define RL_TEXTURE_WRAP_CLAMP 0x812F // GL_CLAMP_TO_EDGE +#define RL_TEXTURE_WRAP_MIRROR_REPEAT 0x8370 // GL_MIRRORED_REPEAT +#define RL_TEXTURE_WRAP_MIRROR_CLAMP 0x8742 // GL_MIRROR_CLAMP_EXT + +// Matrix modes (equivalent to OpenGL) +#define RL_MODELVIEW 0x1700 // GL_MODELVIEW +#define RL_PROJECTION 0x1701 // GL_PROJECTION +#define RL_TEXTURE 0x1702 // GL_TEXTURE + +// Primitive assembly draw modes +#define RL_LINES 0x0001 // GL_LINES +#define RL_TRIANGLES 0x0004 // GL_TRIANGLES +#define RL_QUADS 0x0007 // GL_QUADS + +// GL equivalent data types +#define RL_UNSIGNED_BYTE 0x1401 // GL_UNSIGNED_BYTE +#define RL_FLOAT 0x1406 // GL_FLOAT + +// GL buffer usage hint +#define RL_STREAM_DRAW 0x88E0 // GL_STREAM_DRAW +#define RL_STREAM_READ 0x88E1 // GL_STREAM_READ +#define RL_STREAM_COPY 0x88E2 // GL_STREAM_COPY +#define RL_STATIC_DRAW 0x88E4 // GL_STATIC_DRAW +#define RL_STATIC_READ 0x88E5 // GL_STATIC_READ +#define RL_STATIC_COPY 0x88E6 // GL_STATIC_COPY +#define RL_DYNAMIC_DRAW 0x88E8 // GL_DYNAMIC_DRAW +#define RL_DYNAMIC_READ 0x88E9 // GL_DYNAMIC_READ +#define RL_DYNAMIC_COPY 0x88EA // GL_DYNAMIC_COPY + +// GL Shader type +#define RL_FRAGMENT_SHADER 0x8B30 // GL_FRAGMENT_SHADER +#define RL_VERTEX_SHADER 0x8B31 // GL_VERTEX_SHADER +#define RL_COMPUTE_SHADER 0x91B9 // GL_COMPUTE_SHADER + +// GL blending factors +#define RL_ZERO 0 // GL_ZERO +#define RL_ONE 1 // GL_ONE +#define RL_SRC_COLOR 0x0300 // GL_SRC_COLOR +#define RL_ONE_MINUS_SRC_COLOR 0x0301 // GL_ONE_MINUS_SRC_COLOR +#define RL_SRC_ALPHA 0x0302 // GL_SRC_ALPHA +#define RL_ONE_MINUS_SRC_ALPHA 0x0303 // GL_ONE_MINUS_SRC_ALPHA +#define RL_DST_ALPHA 0x0304 // GL_DST_ALPHA +#define RL_ONE_MINUS_DST_ALPHA 0x0305 // GL_ONE_MINUS_DST_ALPHA +#define RL_DST_COLOR 0x0306 // GL_DST_COLOR +#define RL_ONE_MINUS_DST_COLOR 0x0307 // GL_ONE_MINUS_DST_COLOR +#define RL_SRC_ALPHA_SATURATE 0x0308 // GL_SRC_ALPHA_SATURATE +#define RL_CONSTANT_COLOR 0x8001 // GL_CONSTANT_COLOR +#define RL_ONE_MINUS_CONSTANT_COLOR 0x8002 // GL_ONE_MINUS_CONSTANT_COLOR +#define RL_CONSTANT_ALPHA 0x8003 // GL_CONSTANT_ALPHA +#define RL_ONE_MINUS_CONSTANT_ALPHA 0x8004 // GL_ONE_MINUS_CONSTANT_ALPHA + +// GL blending functions/equations +#define RL_FUNC_ADD 0x8006 // GL_FUNC_ADD +#define RL_MIN 0x8007 // GL_MIN +#define RL_MAX 0x8008 // GL_MAX +#define RL_FUNC_SUBTRACT 0x800A // GL_FUNC_SUBTRACT +#define RL_FUNC_REVERSE_SUBTRACT 0x800B // GL_FUNC_REVERSE_SUBTRACT +#define RL_BLEND_EQUATION 0x8009 // GL_BLEND_EQUATION +#define RL_BLEND_EQUATION_RGB 0x8009 // GL_BLEND_EQUATION_RGB // (Same as BLEND_EQUATION) +#define RL_BLEND_EQUATION_ALPHA 0x883D // GL_BLEND_EQUATION_ALPHA +#define RL_BLEND_DST_RGB 0x80C8 // GL_BLEND_DST_RGB +#define RL_BLEND_SRC_RGB 0x80C9 // GL_BLEND_SRC_RGB +#define RL_BLEND_DST_ALPHA 0x80CA // GL_BLEND_DST_ALPHA +#define RL_BLEND_SRC_ALPHA 0x80CB // GL_BLEND_SRC_ALPHA +#define RL_BLEND_COLOR 0x8005 // GL_BLEND_COLOR + +#define RL_READ_FRAMEBUFFER 0x8CA8 // GL_READ_FRAMEBUFFER +#define RL_DRAW_FRAMEBUFFER 0x8CA9 // GL_DRAW_FRAMEBUFFER + +// Default shader vertex attribute locations +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION 0 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD 1 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL 2 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR 3 +#endif + #ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT +#define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT 4 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 5 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_INDICES + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_INDICES 6 +#endif +#ifdef RL_SUPPORT_MESH_GPU_SKINNING +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS 7 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS 8 +#endif +#endif + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +#if (defined(__STDC__) && __STDC_VERSION__ >= 199901L) || (defined(_MSC_VER) && _MSC_VER >= 1800) + #include +#elif !defined(__cplusplus) && !defined(bool) && !defined(RL_BOOL_TYPE) + // Boolean type +typedef enum bool { false = 0, true = !false } bool; +#endif + +#if !defined(RL_MATRIX_TYPE) +// Matrix, 4x4 components, column major, OpenGL style, right handed +typedef struct Matrix { + float m0, m4, m8, m12; // Matrix first row (4 components) + float m1, m5, m9, m13; // Matrix second row (4 components) + float m2, m6, m10, m14; // Matrix third row (4 components) + float m3, m7, m11, m15; // Matrix fourth row (4 components) +} Matrix; +#define RL_MATRIX_TYPE +#endif + +// Dynamic vertex buffers (position + texcoords + colors + indices arrays) +typedef struct rlVertexBuffer { + int elementCount; // Number of elements in the buffer (QUADS) + + float *vertices; // Vertex position (XYZ - 3 components per vertex) (shader-location = 0) + float *texcoords; // Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1) + float *normals; // Vertex normal (XYZ - 3 components per vertex) (shader-location = 2) + unsigned char *colors; // Vertex colors (RGBA - 4 components per vertex) (shader-location = 3) +#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + unsigned int *indices; // Vertex indices (in case vertex data comes indexed) (6 indices per quad) +#endif +#if defined(GRAPHICS_API_OPENGL_ES2) + unsigned short *indices; // Vertex indices (in case vertex data comes indexed) (6 indices per quad) +#endif + unsigned int vaoId; // OpenGL Vertex Array Object id + unsigned int vboId[5]; // OpenGL Vertex Buffer Objects id (5 types of vertex data) +} rlVertexBuffer; + +// Draw call type +// NOTE: Only texture changes register a new draw, other state-change-related elements are not +// used at this moment (vaoId, shaderId, matrices), raylib just forces a batch draw call if any +// of those state-change happens (this is done in core module) +typedef struct rlDrawCall { + int mode; // Drawing mode: LINES, TRIANGLES, QUADS + int vertexCount; // Number of vertex of the draw + int vertexAlignment; // Number of vertex required for index alignment (LINES, TRIANGLES) + //unsigned int vaoId; // Vertex array id to be used on the draw -> Using RLGL.currentBatch->vertexBuffer.vaoId + //unsigned int shaderId; // Shader id to be used on the draw -> Using RLGL.currentShaderId + unsigned int textureId; // Texture id to be used on the draw -> Use to create new draw call if changes + + //Matrix projection; // Projection matrix for this draw -> Using RLGL.projection by default + //Matrix modelview; // Modelview matrix for this draw -> Using RLGL.modelview by default +} rlDrawCall; + +// rlRenderBatch type +typedef struct rlRenderBatch { + int bufferCount; // Number of vertex buffers (multi-buffering support) + int currentBuffer; // Current buffer tracking in case of multi-buffering + rlVertexBuffer *vertexBuffer; // Dynamic buffer(s) for vertex data + + rlDrawCall *draws; // Draw calls array, depends on textureId + int drawCounter; // Draw calls counter + float currentDepth; // Current depth value for next draw +} rlRenderBatch; + +// OpenGL version +typedef enum { + RL_OPENGL_11 = 1, // OpenGL 1.1 + RL_OPENGL_21, // OpenGL 2.1 (GLSL 120) + RL_OPENGL_33, // OpenGL 3.3 (GLSL 330) + RL_OPENGL_43, // OpenGL 4.3 (using GLSL 330) + RL_OPENGL_ES_20, // OpenGL ES 2.0 (GLSL 100) + RL_OPENGL_ES_30 // OpenGL ES 3.0 (GLSL 300 es) +} rlGlVersion; + +// Trace log level +// NOTE: Organized by priority level +typedef enum { + RL_LOG_ALL = 0, // Display all logs + RL_LOG_TRACE, // Trace logging, intended for internal use only + RL_LOG_DEBUG, // Debug logging, used for internal debugging, it should be disabled on release builds + RL_LOG_INFO, // Info logging, used for program execution info + RL_LOG_WARNING, // Warning logging, used on recoverable failures + RL_LOG_ERROR, // Error logging, used on unrecoverable failures + RL_LOG_FATAL, // Fatal logging, used to abort program: exit(EXIT_FAILURE) + RL_LOG_NONE // Disable logging +} rlTraceLogLevel; + +// Texture pixel formats +// NOTE: Support depends on OpenGL version +typedef enum { + RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1, // 8 bit per pixel (no alpha) + RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA, // 8*2 bpp (2 channels) + RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5, // 16 bpp + RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8, // 24 bpp + RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1, // 16 bpp (1 bit alpha) + RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4, // 16 bpp (4 bit alpha) + RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, // 32 bpp + RL_PIXELFORMAT_UNCOMPRESSED_R32, // 32 bpp (1 channel - float) + RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32, // 32*3 bpp (3 channels - float) + RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32, // 32*4 bpp (4 channels - float) + RL_PIXELFORMAT_UNCOMPRESSED_R16, // 16 bpp (1 channel - half float) + RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16, // 16*3 bpp (3 channels - half float) + RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16, // 16*4 bpp (4 channels - half float) + RL_PIXELFORMAT_COMPRESSED_DXT1_RGB, // 4 bpp (no alpha) + RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA, // 4 bpp (1 bit alpha) + RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA, // 8 bpp + RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA, // 8 bpp + RL_PIXELFORMAT_COMPRESSED_ETC1_RGB, // 4 bpp + RL_PIXELFORMAT_COMPRESSED_ETC2_RGB, // 4 bpp + RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA, // 8 bpp + RL_PIXELFORMAT_COMPRESSED_PVRT_RGB, // 4 bpp + RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA, // 4 bpp + RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA, // 8 bpp + RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA // 2 bpp +} rlPixelFormat; + +// Texture parameters: filter mode +// NOTE 1: Filtering considers mipmaps if available in the texture +// NOTE 2: Filter is accordingly set for minification and magnification +typedef enum { + RL_TEXTURE_FILTER_POINT = 0, // No filter, just pixel approximation + RL_TEXTURE_FILTER_BILINEAR, // Linear filtering + RL_TEXTURE_FILTER_TRILINEAR, // Trilinear filtering (linear with mipmaps) + RL_TEXTURE_FILTER_ANISOTROPIC_4X, // Anisotropic filtering 4x + RL_TEXTURE_FILTER_ANISOTROPIC_8X, // Anisotropic filtering 8x + RL_TEXTURE_FILTER_ANISOTROPIC_16X, // Anisotropic filtering 16x +} rlTextureFilter; + +// Color blending modes (pre-defined) +typedef enum { + RL_BLEND_ALPHA = 0, // Blend textures considering alpha (default) + RL_BLEND_ADDITIVE, // Blend textures adding colors + RL_BLEND_MULTIPLIED, // Blend textures multiplying colors + RL_BLEND_ADD_COLORS, // Blend textures adding colors (alternative) + RL_BLEND_SUBTRACT_COLORS, // Blend textures subtracting colors (alternative) + RL_BLEND_ALPHA_PREMULTIPLY, // Blend premultiplied textures considering alpha + RL_BLEND_CUSTOM, // Blend textures using custom src/dst factors (use rlSetBlendFactors()) + RL_BLEND_CUSTOM_SEPARATE // Blend textures using custom src/dst factors (use rlSetBlendFactorsSeparate()) +} rlBlendMode; + +// Shader location point type +typedef enum { + RL_SHADER_LOC_VERTEX_POSITION = 0, // Shader location: vertex attribute: position + RL_SHADER_LOC_VERTEX_TEXCOORD01, // Shader location: vertex attribute: texcoord01 + RL_SHADER_LOC_VERTEX_TEXCOORD02, // Shader location: vertex attribute: texcoord02 + RL_SHADER_LOC_VERTEX_NORMAL, // Shader location: vertex attribute: normal + RL_SHADER_LOC_VERTEX_TANGENT, // Shader location: vertex attribute: tangent + RL_SHADER_LOC_VERTEX_COLOR, // Shader location: vertex attribute: color + RL_SHADER_LOC_MATRIX_MVP, // Shader location: matrix uniform: model-view-projection + RL_SHADER_LOC_MATRIX_VIEW, // Shader location: matrix uniform: view (camera transform) + RL_SHADER_LOC_MATRIX_PROJECTION, // Shader location: matrix uniform: projection + RL_SHADER_LOC_MATRIX_MODEL, // Shader location: matrix uniform: model (transform) + RL_SHADER_LOC_MATRIX_NORMAL, // Shader location: matrix uniform: normal + RL_SHADER_LOC_VECTOR_VIEW, // Shader location: vector uniform: view + RL_SHADER_LOC_COLOR_DIFFUSE, // Shader location: vector uniform: diffuse color + RL_SHADER_LOC_COLOR_SPECULAR, // Shader location: vector uniform: specular color + RL_SHADER_LOC_COLOR_AMBIENT, // Shader location: vector uniform: ambient color + RL_SHADER_LOC_MAP_ALBEDO, // Shader location: sampler2d texture: albedo (same as: RL_SHADER_LOC_MAP_DIFFUSE) + RL_SHADER_LOC_MAP_METALNESS, // Shader location: sampler2d texture: metalness (same as: RL_SHADER_LOC_MAP_SPECULAR) + RL_SHADER_LOC_MAP_NORMAL, // Shader location: sampler2d texture: normal + RL_SHADER_LOC_MAP_ROUGHNESS, // Shader location: sampler2d texture: roughness + RL_SHADER_LOC_MAP_OCCLUSION, // Shader location: sampler2d texture: occlusion + RL_SHADER_LOC_MAP_EMISSION, // Shader location: sampler2d texture: emission + RL_SHADER_LOC_MAP_HEIGHT, // Shader location: sampler2d texture: height + RL_SHADER_LOC_MAP_CUBEMAP, // Shader location: samplerCube texture: cubemap + RL_SHADER_LOC_MAP_IRRADIANCE, // Shader location: samplerCube texture: irradiance + RL_SHADER_LOC_MAP_PREFILTER, // Shader location: samplerCube texture: prefilter + RL_SHADER_LOC_MAP_BRDF // Shader location: sampler2d texture: brdf +} rlShaderLocationIndex; + +#define RL_SHADER_LOC_MAP_DIFFUSE RL_SHADER_LOC_MAP_ALBEDO +#define RL_SHADER_LOC_MAP_SPECULAR RL_SHADER_LOC_MAP_METALNESS + +// Shader uniform data type +typedef enum { + RL_SHADER_UNIFORM_FLOAT = 0, // Shader uniform type: float + RL_SHADER_UNIFORM_VEC2, // Shader uniform type: vec2 (2 float) + RL_SHADER_UNIFORM_VEC3, // Shader uniform type: vec3 (3 float) + RL_SHADER_UNIFORM_VEC4, // Shader uniform type: vec4 (4 float) + RL_SHADER_UNIFORM_INT, // Shader uniform type: int + RL_SHADER_UNIFORM_IVEC2, // Shader uniform type: ivec2 (2 int) + RL_SHADER_UNIFORM_IVEC3, // Shader uniform type: ivec3 (3 int) + RL_SHADER_UNIFORM_IVEC4, // Shader uniform type: ivec4 (4 int) + RL_SHADER_UNIFORM_UINT, // Shader uniform type: unsigned int + RL_SHADER_UNIFORM_UIVEC2, // Shader uniform type: uivec2 (2 unsigned int) + RL_SHADER_UNIFORM_UIVEC3, // Shader uniform type: uivec3 (3 unsigned int) + RL_SHADER_UNIFORM_UIVEC4, // Shader uniform type: uivec4 (4 unsigned int) + RL_SHADER_UNIFORM_SAMPLER2D // Shader uniform type: sampler2d +} rlShaderUniformDataType; + +// Shader attribute data types +typedef enum { + RL_SHADER_ATTRIB_FLOAT = 0, // Shader attribute type: float + RL_SHADER_ATTRIB_VEC2, // Shader attribute type: vec2 (2 float) + RL_SHADER_ATTRIB_VEC3, // Shader attribute type: vec3 (3 float) + RL_SHADER_ATTRIB_VEC4 // Shader attribute type: vec4 (4 float) +} rlShaderAttributeDataType; + +// Framebuffer attachment type +// NOTE: By default up to 8 color channels defined, but it can be more +typedef enum { + RL_ATTACHMENT_COLOR_CHANNEL0 = 0, // Framebuffer attachment type: color 0 + RL_ATTACHMENT_COLOR_CHANNEL1 = 1, // Framebuffer attachment type: color 1 + RL_ATTACHMENT_COLOR_CHANNEL2 = 2, // Framebuffer attachment type: color 2 + RL_ATTACHMENT_COLOR_CHANNEL3 = 3, // Framebuffer attachment type: color 3 + RL_ATTACHMENT_COLOR_CHANNEL4 = 4, // Framebuffer attachment type: color 4 + RL_ATTACHMENT_COLOR_CHANNEL5 = 5, // Framebuffer attachment type: color 5 + RL_ATTACHMENT_COLOR_CHANNEL6 = 6, // Framebuffer attachment type: color 6 + RL_ATTACHMENT_COLOR_CHANNEL7 = 7, // Framebuffer attachment type: color 7 + RL_ATTACHMENT_DEPTH = 100, // Framebuffer attachment type: depth + RL_ATTACHMENT_STENCIL = 200, // Framebuffer attachment type: stencil +} rlFramebufferAttachType; + +// Framebuffer texture attachment type +typedef enum { + RL_ATTACHMENT_CUBEMAP_POSITIVE_X = 0, // Framebuffer texture attachment type: cubemap, +X side + RL_ATTACHMENT_CUBEMAP_NEGATIVE_X = 1, // Framebuffer texture attachment type: cubemap, -X side + RL_ATTACHMENT_CUBEMAP_POSITIVE_Y = 2, // Framebuffer texture attachment type: cubemap, +Y side + RL_ATTACHMENT_CUBEMAP_NEGATIVE_Y = 3, // Framebuffer texture attachment type: cubemap, -Y side + RL_ATTACHMENT_CUBEMAP_POSITIVE_Z = 4, // Framebuffer texture attachment type: cubemap, +Z side + RL_ATTACHMENT_CUBEMAP_NEGATIVE_Z = 5, // Framebuffer texture attachment type: cubemap, -Z side + RL_ATTACHMENT_TEXTURE2D = 100, // Framebuffer texture attachment type: texture2d + RL_ATTACHMENT_RENDERBUFFER = 200, // Framebuffer texture attachment type: renderbuffer +} rlFramebufferAttachTextureType; + +// Face culling mode +typedef enum { + RL_CULL_FACE_FRONT = 0, + RL_CULL_FACE_BACK +} rlCullMode; + +//------------------------------------------------------------------------------------ +// Functions Declaration - Matrix operations +//------------------------------------------------------------------------------------ + +#if defined(__cplusplus) +extern "C" { // Prevents name mangling of functions +#endif + +RLAPI void rlMatrixMode(int mode); // Choose the current matrix to be transformed +RLAPI void rlPushMatrix(void); // Push the current matrix to stack +RLAPI void rlPopMatrix(void); // Pop latest inserted matrix from stack +RLAPI void rlLoadIdentity(void); // Reset current matrix to identity matrix +RLAPI void rlTranslatef(float x, float y, float z); // Multiply the current matrix by a translation matrix +RLAPI void rlRotatef(float angle, float x, float y, float z); // Multiply the current matrix by a rotation matrix +RLAPI void rlScalef(float x, float y, float z); // Multiply the current matrix by a scaling matrix +RLAPI void rlMultMatrixf(const float *matf); // Multiply the current matrix by another matrix +RLAPI void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar); +RLAPI void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar); +RLAPI void rlViewport(int x, int y, int width, int height); // Set the viewport area +RLAPI void rlSetClipPlanes(double nearPlane, double farPlane); // Set clip planes distances +RLAPI double rlGetCullDistanceNear(void); // Get cull plane distance near +RLAPI double rlGetCullDistanceFar(void); // Get cull plane distance far + +//------------------------------------------------------------------------------------ +// Functions Declaration - Vertex level operations +//------------------------------------------------------------------------------------ +RLAPI void rlBegin(int mode); // Initialize drawing mode (how to organize vertex) +RLAPI void rlEnd(void); // Finish vertex providing +RLAPI void rlVertex2i(int x, int y); // Define one vertex (position) - 2 int +RLAPI void rlVertex2f(float x, float y); // Define one vertex (position) - 2 float +RLAPI void rlVertex3f(float x, float y, float z); // Define one vertex (position) - 3 float +RLAPI void rlTexCoord2f(float x, float y); // Define one vertex (texture coordinate) - 2 float +RLAPI void rlNormal3f(float x, float y, float z); // Define one vertex (normal) - 3 float +RLAPI void rlColor4ub(unsigned char r, unsigned char g, unsigned char b, unsigned char a); // Define one vertex (color) - 4 byte +RLAPI void rlColor3f(float x, float y, float z); // Define one vertex (color) - 3 float +RLAPI void rlColor4f(float x, float y, float z, float w); // Define one vertex (color) - 4 float + +//------------------------------------------------------------------------------------ +// Functions Declaration - OpenGL style functions (common to 1.1, 3.3+, ES2) +// NOTE: This functions are used to completely abstract raylib code from OpenGL layer, +// some of them are direct wrappers over OpenGL calls, some others are custom +//------------------------------------------------------------------------------------ + +// Vertex buffers state +RLAPI bool rlEnableVertexArray(unsigned int vaoId); // Enable vertex array (VAO, if supported) +RLAPI void rlDisableVertexArray(void); // Disable vertex array (VAO, if supported) +RLAPI void rlEnableVertexBuffer(unsigned int id); // Enable vertex buffer (VBO) +RLAPI void rlDisableVertexBuffer(void); // Disable vertex buffer (VBO) +RLAPI void rlEnableVertexBufferElement(unsigned int id); // Enable vertex buffer element (VBO element) +RLAPI void rlDisableVertexBufferElement(void); // Disable vertex buffer element (VBO element) +RLAPI void rlEnableVertexAttribute(unsigned int index); // Enable vertex attribute index +RLAPI void rlDisableVertexAttribute(unsigned int index); // Disable vertex attribute index +#if defined(GRAPHICS_API_OPENGL_11) +RLAPI void rlEnableStatePointer(int vertexAttribType, void *buffer); // Enable attribute state pointer +RLAPI void rlDisableStatePointer(int vertexAttribType); // Disable attribute state pointer +#endif + +// Textures state +RLAPI void rlActiveTextureSlot(int slot); // Select and active a texture slot +RLAPI void rlEnableTexture(unsigned int id); // Enable texture +RLAPI void rlDisableTexture(void); // Disable texture +RLAPI void rlEnableTextureCubemap(unsigned int id); // Enable texture cubemap +RLAPI void rlDisableTextureCubemap(void); // Disable texture cubemap +RLAPI void rlTextureParameters(unsigned int id, int param, int value); // Set texture parameters (filter, wrap) +RLAPI void rlCubemapParameters(unsigned int id, int param, int value); // Set cubemap parameters (filter, wrap) + +// Shader state +RLAPI void rlEnableShader(unsigned int id); // Enable shader program +RLAPI void rlDisableShader(void); // Disable shader program + +// Framebuffer state +RLAPI void rlEnableFramebuffer(unsigned int id); // Enable render texture (fbo) +RLAPI void rlDisableFramebuffer(void); // Disable render texture (fbo), return to default framebuffer +RLAPI unsigned int rlGetActiveFramebuffer(void); // Get the currently active render texture (fbo), 0 for default framebuffer +RLAPI void rlActiveDrawBuffers(int count); // Activate multiple draw color buffers +RLAPI void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask); // Blit active framebuffer to main framebuffer +RLAPI void rlBindFramebuffer(unsigned int target, unsigned int framebuffer); // Bind framebuffer (FBO) + +// General render state +RLAPI void rlEnableColorBlend(void); // Enable color blending +RLAPI void rlDisableColorBlend(void); // Disable color blending +RLAPI void rlEnableDepthTest(void); // Enable depth test +RLAPI void rlDisableDepthTest(void); // Disable depth test +RLAPI void rlEnableDepthMask(void); // Enable depth write +RLAPI void rlDisableDepthMask(void); // Disable depth write +RLAPI void rlEnableBackfaceCulling(void); // Enable backface culling +RLAPI void rlDisableBackfaceCulling(void); // Disable backface culling +RLAPI void rlColorMask(bool r, bool g, bool b, bool a); // Color mask control +RLAPI void rlSetCullFace(int mode); // Set face culling mode +RLAPI void rlEnableScissorTest(void); // Enable scissor test +RLAPI void rlDisableScissorTest(void); // Disable scissor test +RLAPI void rlScissor(int x, int y, int width, int height); // Scissor test +RLAPI void rlEnableWireMode(void); // Enable wire mode +RLAPI void rlEnablePointMode(void); // Enable point mode +RLAPI void rlDisableWireMode(void); // Disable wire (and point) mode +RLAPI void rlSetLineWidth(float width); // Set the line drawing width +RLAPI float rlGetLineWidth(void); // Get the line drawing width +RLAPI void rlEnableSmoothLines(void); // Enable line aliasing +RLAPI void rlDisableSmoothLines(void); // Disable line aliasing +RLAPI void rlEnableStereoRender(void); // Enable stereo rendering +RLAPI void rlDisableStereoRender(void); // Disable stereo rendering +RLAPI bool rlIsStereoRenderEnabled(void); // Check if stereo render is enabled + +RLAPI void rlClearColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a); // Clear color buffer with color +RLAPI void rlClearScreenBuffers(void); // Clear used screen buffers (color and depth) +RLAPI void rlCheckErrors(void); // Check and log OpenGL error codes +RLAPI void rlSetBlendMode(int mode); // Set blending mode +RLAPI void rlSetBlendFactors(int glSrcFactor, int glDstFactor, int glEquation); // Set blending mode factor and equation (using OpenGL factors) +RLAPI void rlSetBlendFactorsSeparate(int glSrcRGB, int glDstRGB, int glSrcAlpha, int glDstAlpha, int glEqRGB, int glEqAlpha); // Set blending mode factors and equations separately (using OpenGL factors) + +//------------------------------------------------------------------------------------ +// Functions Declaration - rlgl functionality +//------------------------------------------------------------------------------------ +// rlgl initialization functions +RLAPI void rlglInit(int width, int height); // Initialize rlgl (buffers, shaders, textures, states) +RLAPI void rlglClose(void); // De-initialize rlgl (buffers, shaders, textures) +RLAPI void rlLoadExtensions(void *loader); // Load OpenGL extensions (loader function required) +RLAPI int rlGetVersion(void); // Get current OpenGL version +RLAPI void rlSetFramebufferWidth(int width); // Set current framebuffer width +RLAPI int rlGetFramebufferWidth(void); // Get default framebuffer width +RLAPI void rlSetFramebufferHeight(int height); // Set current framebuffer height +RLAPI int rlGetFramebufferHeight(void); // Get default framebuffer height + +RLAPI unsigned int rlGetTextureIdDefault(void); // Get default texture id +RLAPI unsigned int rlGetShaderIdDefault(void); // Get default shader id +RLAPI int *rlGetShaderLocsDefault(void); // Get default shader locations + +// Render batch management +// NOTE: rlgl provides a default render batch to behave like OpenGL 1.1 immediate mode +// but this render batch API is exposed in case of custom batches are required +RLAPI rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements); // Load a render batch system +RLAPI void rlUnloadRenderBatch(rlRenderBatch batch); // Unload render batch system +RLAPI void rlDrawRenderBatch(rlRenderBatch *batch); // Draw render batch data (Update->Draw->Reset) +RLAPI void rlSetRenderBatchActive(rlRenderBatch *batch); // Set the active render batch for rlgl (NULL for default internal) +RLAPI void rlDrawRenderBatchActive(void); // Update and draw internal render batch +RLAPI bool rlCheckRenderBatchLimit(int vCount); // Check internal buffer overflow for a given number of vertex + +RLAPI void rlSetTexture(unsigned int id); // Set current texture for render batch and check buffers limits + +//------------------------------------------------------------------------------------------------------------------------ + +// Vertex buffers management +RLAPI unsigned int rlLoadVertexArray(void); // Load vertex array (vao) if supported +RLAPI unsigned int rlLoadVertexBuffer(const void *buffer, int size, bool dynamic); // Load a vertex buffer object +RLAPI unsigned int rlLoadVertexBufferElement(const void *buffer, int size, bool dynamic); // Load vertex buffer elements object +RLAPI void rlUpdateVertexBuffer(unsigned int bufferId, const void *data, int dataSize, int offset); // Update vertex buffer object data on GPU buffer +RLAPI void rlUpdateVertexBufferElements(unsigned int id, const void *data, int dataSize, int offset); // Update vertex buffer elements data on GPU buffer +RLAPI void rlUnloadVertexArray(unsigned int vaoId); // Unload vertex array (vao) +RLAPI void rlUnloadVertexBuffer(unsigned int vboId); // Unload vertex buffer object +RLAPI void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, int offset); // Set vertex attribute data configuration +RLAPI void rlSetVertexAttributeDivisor(unsigned int index, int divisor); // Set vertex attribute data divisor +RLAPI void rlSetVertexAttributeDefault(int locIndex, const void *value, int attribType, int count); // Set vertex attribute default value, when attribute to provided +RLAPI void rlDrawVertexArray(int offset, int count); // Draw vertex array (currently active vao) +RLAPI void rlDrawVertexArrayElements(int offset, int count, const void *buffer); // Draw vertex array elements +RLAPI void rlDrawVertexArrayInstanced(int offset, int count, int instances); // Draw vertex array (currently active vao) with instancing +RLAPI void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffer, int instances); // Draw vertex array elements with instancing + +// Textures management +RLAPI unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipmapCount); // Load texture data +RLAPI unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer); // Load depth texture/renderbuffer (to be attached to fbo) +RLAPI unsigned int rlLoadTextureCubemap(const void *data, int size, int format, int mipmapCount); // Load texture cubemap data +RLAPI void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data); // Update texture with new data on GPU +RLAPI void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType); // Get OpenGL internal formats +RLAPI const char *rlGetPixelFormatName(unsigned int format); // Get name string for pixel format +RLAPI void rlUnloadTexture(unsigned int id); // Unload texture from GPU memory +RLAPI void rlGenTextureMipmaps(unsigned int id, int width, int height, int format, int *mipmaps); // Generate mipmap data for selected texture +RLAPI void *rlReadTexturePixels(unsigned int id, int width, int height, int format); // Read texture pixel data +RLAPI unsigned char *rlReadScreenPixels(int width, int height); // Read screen pixel data (color buffer) + +// Framebuffer management (fbo) +RLAPI unsigned int rlLoadFramebuffer(void); // Load an empty framebuffer +RLAPI void rlFramebufferAttach(unsigned int fboId, unsigned int texId, int attachType, int texType, int mipLevel); // Attach texture/renderbuffer to a framebuffer +RLAPI bool rlFramebufferComplete(unsigned int id); // Verify framebuffer is complete +RLAPI void rlUnloadFramebuffer(unsigned int id); // Delete framebuffer from GPU + +// Shaders management +RLAPI unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode); // Load shader from code strings +RLAPI unsigned int rlCompileShader(const char *shaderCode, int type); // Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER) +RLAPI unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fShaderId); // Load custom shader program +RLAPI void rlUnloadShaderProgram(unsigned int id); // Unload shader program +RLAPI int rlGetLocationUniform(unsigned int shaderId, const char *uniformName); // Get shader location uniform +RLAPI int rlGetLocationAttrib(unsigned int shaderId, const char *attribName); // Get shader location attribute +RLAPI void rlSetUniform(int locIndex, const void *value, int uniformType, int count); // Set shader value uniform +RLAPI void rlSetUniformMatrix(int locIndex, Matrix mat); // Set shader value matrix +RLAPI void rlSetUniformMatrices(int locIndex, const Matrix *mat, int count); // Set shader value matrices +RLAPI void rlSetUniformSampler(int locIndex, unsigned int textureId); // Set shader value sampler +RLAPI void rlSetShader(unsigned int id, int *locs); // Set shader currently active (id and locations) + +// Compute shader management +RLAPI unsigned int rlLoadComputeShaderProgram(unsigned int shaderId); // Load compute shader program +RLAPI void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ); // Dispatch compute shader (equivalent to *draw* for graphics pipeline) + +// Shader buffer storage object management (ssbo) +RLAPI unsigned int rlLoadShaderBuffer(unsigned int size, const void *data, int usageHint); // Load shader storage buffer object (SSBO) +RLAPI void rlUnloadShaderBuffer(unsigned int ssboId); // Unload shader storage buffer object (SSBO) +RLAPI void rlUpdateShaderBuffer(unsigned int id, const void *data, unsigned int dataSize, unsigned int offset); // Update SSBO buffer data +RLAPI void rlBindShaderBuffer(unsigned int id, unsigned int index); // Bind SSBO buffer +RLAPI void rlReadShaderBuffer(unsigned int id, void *dest, unsigned int count, unsigned int offset); // Read SSBO buffer data (GPU->CPU) +RLAPI void rlCopyShaderBuffer(unsigned int destId, unsigned int srcId, unsigned int destOffset, unsigned int srcOffset, unsigned int count); // Copy SSBO data between buffers +RLAPI unsigned int rlGetShaderBufferSize(unsigned int id); // Get SSBO buffer size + +// Buffer management +RLAPI void rlBindImageTexture(unsigned int id, unsigned int index, int format, bool readonly); // Bind image texture + +// Matrix state management +RLAPI Matrix rlGetMatrixModelview(void); // Get internal modelview matrix +RLAPI Matrix rlGetMatrixProjection(void); // Get internal projection matrix +RLAPI Matrix rlGetMatrixTransform(void); // Get internal accumulated transform matrix +RLAPI Matrix rlGetMatrixProjectionStereo(int eye); // Get internal projection matrix for stereo render (selected eye) +RLAPI Matrix rlGetMatrixViewOffsetStereo(int eye); // Get internal view offset matrix for stereo render (selected eye) +RLAPI void rlSetMatrixProjection(Matrix proj); // Set a custom projection matrix (replaces internal projection matrix) +RLAPI void rlSetMatrixModelview(Matrix view); // Set a custom modelview matrix (replaces internal modelview matrix) +RLAPI void rlSetMatrixProjectionStereo(Matrix right, Matrix left); // Set eyes projection matrices for stereo rendering +RLAPI void rlSetMatrixViewOffsetStereo(Matrix right, Matrix left); // Set eyes view offsets matrices for stereo rendering + +// Quick and dirty cube/quad buffers load->draw->unload +RLAPI void rlLoadDrawCube(void); // Load and draw a cube +RLAPI void rlLoadDrawQuad(void); // Load and draw a quad + +#if defined(__cplusplus) +} +#endif + +#endif // RLGL_H + +/*********************************************************************************** +* +* RLGL IMPLEMENTATION +* +************************************************************************************/ + +#if defined(RLGL_IMPLEMENTATION) + +// Expose OpenGL functions from glad in raylib +#if defined(BUILD_LIBTYPE_SHARED) + #define GLAD_API_CALL_EXPORT + #define GLAD_API_CALL_EXPORT_BUILD +#endif + +#if defined(GRAPHICS_API_OPENGL_11) + #if defined(__APPLE__) + #include // OpenGL 1.1 library for OSX + #include // OpenGL extensions library + #else + // APIENTRY for OpenGL function pointer declarations is required + #if !defined(APIENTRY) + #if defined(_WIN32) + #define APIENTRY __stdcall + #else + #define APIENTRY + #endif + #endif + // WINGDIAPI definition. Some Windows OpenGL headers need it + #if !defined(WINGDIAPI) && defined(_WIN32) + #define WINGDIAPI __declspec(dllimport) + #endif + + #include // OpenGL 1.1 library + #endif +#endif + +#if defined(GRAPHICS_API_OPENGL_33) + #define GLAD_MALLOC RL_MALLOC + #define GLAD_FREE RL_FREE + + #define GLAD_GL_IMPLEMENTATION + #include "external/glad.h" // GLAD extensions loading library, includes OpenGL headers +#endif + +#if defined(GRAPHICS_API_OPENGL_ES3) + #include // OpenGL ES 3.0 library + #define GL_GLEXT_PROTOTYPES + #include // OpenGL ES 2.0 extensions library +#elif defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: OpenGL ES 2.0 can be enabled on Desktop platforms, + // in that case, functions are loaded from a custom glad for OpenGL ES 2.0 + #if defined(PLATFORM_DESKTOP_GLFW) || defined(PLATFORM_DESKTOP_SDL) + #define GLAD_GLES2_IMPLEMENTATION + #include "external/glad_gles2.h" + #else + #define GL_GLEXT_PROTOTYPES + //#include // EGL library -> not required, platform layer + #include // OpenGL ES 2.0 library + #include // OpenGL ES 2.0 extensions library + #endif + + // It seems OpenGL ES 2.0 instancing entry points are not defined on Raspberry Pi + // provided headers (despite being defined in official Khronos GLES2 headers) + #if defined(PLATFORM_DRM) + typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); + typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); + typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISOREXTPROC) (GLuint index, GLuint divisor); + #endif +#endif + +#include // Required for: malloc(), free() +#include // Required for: strcmp(), strlen() [Used in rlglInit(), on extensions loading] +#include // Required for: sqrtf(), sinf(), cosf(), floor(), log() + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- +#ifndef PI + #define PI 3.14159265358979323846f +#endif +#ifndef DEG2RAD + #define DEG2RAD (PI/180.0f) +#endif +#ifndef RAD2DEG + #define RAD2DEG (180.0f/PI) +#endif + +#ifndef GL_SHADING_LANGUAGE_VERSION + #define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#endif + +#ifndef GL_COMPRESSED_RGB_S3TC_DXT1_EXT + #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#endif +#ifndef GL_COMPRESSED_RGBA_S3TC_DXT1_EXT + #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#endif +#ifndef GL_COMPRESSED_RGBA_S3TC_DXT3_EXT + #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#endif +#ifndef GL_COMPRESSED_RGBA_S3TC_DXT5_EXT + #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 +#endif +#ifndef GL_ETC1_RGB8_OES + #define GL_ETC1_RGB8_OES 0x8D64 +#endif +#ifndef GL_COMPRESSED_RGB8_ETC2 + #define GL_COMPRESSED_RGB8_ETC2 0x9274 +#endif +#ifndef GL_COMPRESSED_RGBA8_ETC2_EAC + #define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 +#endif +#ifndef GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG + #define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 +#endif +#ifndef GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG + #define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 +#endif +#ifndef GL_COMPRESSED_RGBA_ASTC_4x4_KHR + #define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93b0 +#endif +#ifndef GL_COMPRESSED_RGBA_ASTC_8x8_KHR + #define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93b7 +#endif + +#ifndef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT + #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF +#endif +#ifndef GL_TEXTURE_MAX_ANISOTROPY_EXT + #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#endif + +#ifndef GL_PROGRAM_POINT_SIZE + #define GL_PROGRAM_POINT_SIZE 0x8642 +#endif + +#ifndef GL_LINE_WIDTH + #define GL_LINE_WIDTH 0x0B21 +#endif + +#if defined(GRAPHICS_API_OPENGL_11) + #define GL_UNSIGNED_SHORT_5_6_5 0x8363 + #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 + #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#endif + +#if defined(GRAPHICS_API_OPENGL_21) + #define GL_LUMINANCE 0x1909 + #define GL_LUMINANCE_ALPHA 0x190A +#endif + +#if defined(GRAPHICS_API_OPENGL_ES2) + #define glClearDepth glClearDepthf + #if !defined(GRAPHICS_API_OPENGL_ES3) + #define GL_READ_FRAMEBUFFER GL_FRAMEBUFFER + #define GL_DRAW_FRAMEBUFFER GL_FRAMEBUFFER + #endif +#endif + +// Default shader vertex attribute names to set location points +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION + #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD + #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL + #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR + #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT + #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 + #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS + #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS "vertexBoneIds" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS + #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS "vertexBoneWeights" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS +#endif + +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_MVP + #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW + #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION + #define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL + #define RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL "matModel" // model matrix +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL + #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView)) +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR + #define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color) +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_BONE_MATRICES + #define RL_DEFAULT_SHADER_UNIFORM_NAME_BONE_MATRICES "boneMatrices" // bone matrices +#endif +#ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 + #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0) +#endif +#ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 + #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 "texture1" // texture1 (texture slot active 1) +#endif +#ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 + #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 "texture2" // texture2 (texture slot active 2) +#endif + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +typedef struct rlglData { + rlRenderBatch *currentBatch; // Current render batch + rlRenderBatch defaultBatch; // Default internal render batch + + struct { + int vertexCounter; // Current active render batch vertex counter (generic, used for all batches) + float texcoordx, texcoordy; // Current active texture coordinate (added on glVertex*()) + float normalx, normaly, normalz; // Current active normal (added on glVertex*()) + unsigned char colorr, colorg, colorb, colora; // Current active color (added on glVertex*()) + + int currentMatrixMode; // Current matrix mode + Matrix *currentMatrix; // Current matrix pointer + Matrix modelview; // Default modelview matrix + Matrix projection; // Default projection matrix + Matrix transform; // Transform matrix to be used with rlTranslate, rlRotate, rlScale + bool transformRequired; // Require transform matrix application to current draw-call vertex (if required) + Matrix stack[RL_MAX_MATRIX_STACK_SIZE];// Matrix stack for push/pop + int stackCounter; // Matrix stack counter + + unsigned int defaultTextureId; // Default texture used on shapes/poly drawing (required by shader) + unsigned int activeTextureId[RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS]; // Active texture ids to be enabled on batch drawing (0 active by default) + unsigned int defaultVShaderId; // Default vertex shader id (used by default shader program) + unsigned int defaultFShaderId; // Default fragment shader id (used by default shader program) + unsigned int defaultShaderId; // Default shader program id, supports vertex color and diffuse texture + int *defaultShaderLocs; // Default shader locations pointer to be used on rendering + unsigned int currentShaderId; // Current shader id to be used on rendering (by default, defaultShaderId) + int *currentShaderLocs; // Current shader locations pointer to be used on rendering (by default, defaultShaderLocs) + + bool stereoRender; // Stereo rendering flag + Matrix projectionStereo[2]; // VR stereo rendering eyes projection matrices + Matrix viewOffsetStereo[2]; // VR stereo rendering eyes view offset matrices + + // Blending variables + int currentBlendMode; // Blending mode active + int glBlendSrcFactor; // Blending source factor + int glBlendDstFactor; // Blending destination factor + int glBlendEquation; // Blending equation + int glBlendSrcFactorRGB; // Blending source RGB factor + int glBlendDestFactorRGB; // Blending destination RGB factor + int glBlendSrcFactorAlpha; // Blending source alpha factor + int glBlendDestFactorAlpha; // Blending destination alpha factor + int glBlendEquationRGB; // Blending equation for RGB + int glBlendEquationAlpha; // Blending equation for alpha + bool glCustomBlendModeModified; // Custom blending factor and equation modification status + + int framebufferWidth; // Current framebuffer width + int framebufferHeight; // Current framebuffer height + + } State; // Renderer state + struct { + bool vao; // VAO support (OpenGL ES2 could not support VAO extension) (GL_ARB_vertex_array_object) + bool instancing; // Instancing supported (GL_ANGLE_instanced_arrays, GL_EXT_draw_instanced + GL_EXT_instanced_arrays) + bool texNPOT; // NPOT textures full support (GL_ARB_texture_non_power_of_two, GL_OES_texture_npot) + bool texDepth; // Depth textures supported (GL_ARB_depth_texture, GL_OES_depth_texture) + bool texDepthWebGL; // Depth textures supported WebGL specific (GL_WEBGL_depth_texture) + bool texFloat32; // float textures support (32 bit per channel) (GL_OES_texture_float) + bool texFloat16; // half float textures support (16 bit per channel) (GL_OES_texture_half_float) + bool texCompDXT; // DDS texture compression support (GL_EXT_texture_compression_s3tc, GL_WEBGL_compressed_texture_s3tc, GL_WEBKIT_WEBGL_compressed_texture_s3tc) + bool texCompETC1; // ETC1 texture compression support (GL_OES_compressed_ETC1_RGB8_texture, GL_WEBGL_compressed_texture_etc1) + bool texCompETC2; // ETC2/EAC texture compression support (GL_ARB_ES3_compatibility) + bool texCompPVRT; // PVR texture compression support (GL_IMG_texture_compression_pvrtc) + bool texCompASTC; // ASTC texture compression support (GL_KHR_texture_compression_astc_hdr, GL_KHR_texture_compression_astc_ldr) + bool texMirrorClamp; // Clamp mirror wrap mode supported (GL_EXT_texture_mirror_clamp) + bool texAnisoFilter; // Anisotropic texture filtering support (GL_EXT_texture_filter_anisotropic) + bool computeShader; // Compute shaders support (GL_ARB_compute_shader) + bool ssbo; // Shader storage buffer object support (GL_ARB_shader_storage_buffer_object) + + float maxAnisotropyLevel; // Maximum anisotropy level supported (minimum is 2.0f) + int maxDepthBits; // Maximum bits for depth component + + } ExtSupported; // Extensions supported flags +} rlglData; + +typedef void *(*rlglLoadProc)(const char *name); // OpenGL extension functions loader signature (same as GLADloadproc) + +#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +static double rlCullDistanceNear = RL_CULL_DISTANCE_NEAR; +static double rlCullDistanceFar = RL_CULL_DISTANCE_FAR; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +static rlglData RLGL = { 0 }; +#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 + +#if defined(GRAPHICS_API_OPENGL_ES2) && !defined(GRAPHICS_API_OPENGL_ES3) +// NOTE: VAO functionality is exposed through extensions (OES) +static PFNGLGENVERTEXARRAYSOESPROC glGenVertexArrays = NULL; +static PFNGLBINDVERTEXARRAYOESPROC glBindVertexArray = NULL; +static PFNGLDELETEVERTEXARRAYSOESPROC glDeleteVertexArrays = NULL; + +// NOTE: Instancing functionality could also be available through extension +static PFNGLDRAWARRAYSINSTANCEDEXTPROC glDrawArraysInstanced = NULL; +static PFNGLDRAWELEMENTSINSTANCEDEXTPROC glDrawElementsInstanced = NULL; +static PFNGLVERTEXATTRIBDIVISOREXTPROC glVertexAttribDivisor = NULL; +#endif + +//---------------------------------------------------------------------------------- +// Module specific Functions Declaration +//---------------------------------------------------------------------------------- +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +static void rlLoadShaderDefault(void); // Load default shader +static void rlUnloadShaderDefault(void); // Unload default shader +#if defined(RLGL_SHOW_GL_DETAILS_INFO) +static const char *rlGetCompressedFormatName(int format); // Get compressed format official GL identifier name +#endif // RLGL_SHOW_GL_DETAILS_INFO +#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 + +static int rlGetPixelDataSize(int width, int height, int format); // Get pixel data size in bytes (image or texture) + +// Auxiliar matrix math functions +typedef struct rl_float16 { + float v[16]; +} rl_float16; +static rl_float16 rlMatrixToFloatV(Matrix mat); // Get float array of matrix data +#define rlMatrixToFloat(mat) (rlMatrixToFloatV(mat).v) // Get float vector for Matrix +static Matrix rlMatrixIdentity(void); // Get identity matrix +static Matrix rlMatrixMultiply(Matrix left, Matrix right); // Multiply two matrices +static Matrix rlMatrixTranspose(Matrix mat); // Transposes provided matrix +static Matrix rlMatrixInvert(Matrix mat); // Invert provided matrix + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Matrix operations +//---------------------------------------------------------------------------------- + +#if defined(GRAPHICS_API_OPENGL_11) +// Fallback to OpenGL 1.1 function calls +//--------------------------------------- +void rlMatrixMode(int mode) +{ + switch (mode) + { + case RL_PROJECTION: glMatrixMode(GL_PROJECTION); break; + case RL_MODELVIEW: glMatrixMode(GL_MODELVIEW); break; + case RL_TEXTURE: glMatrixMode(GL_TEXTURE); break; + default: break; + } +} + +void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar) +{ + glFrustum(left, right, bottom, top, znear, zfar); +} + +void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar) +{ + glOrtho(left, right, bottom, top, znear, zfar); +} + +void rlPushMatrix(void) { glPushMatrix(); } +void rlPopMatrix(void) { glPopMatrix(); } +void rlLoadIdentity(void) { glLoadIdentity(); } +void rlTranslatef(float x, float y, float z) { glTranslatef(x, y, z); } +void rlRotatef(float angle, float x, float y, float z) { glRotatef(angle, x, y, z); } +void rlScalef(float x, float y, float z) { glScalef(x, y, z); } +void rlMultMatrixf(const float *matf) { glMultMatrixf(matf); } +#endif +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +// Choose the current matrix to be transformed +void rlMatrixMode(int mode) +{ + if (mode == RL_PROJECTION) RLGL.State.currentMatrix = &RLGL.State.projection; + else if (mode == RL_MODELVIEW) RLGL.State.currentMatrix = &RLGL.State.modelview; + //else if (mode == RL_TEXTURE) // Not supported + + RLGL.State.currentMatrixMode = mode; +} + +// Push the current matrix into RLGL.State.stack +void rlPushMatrix(void) +{ + if (RLGL.State.stackCounter >= RL_MAX_MATRIX_STACK_SIZE) TRACELOG(RL_LOG_ERROR, "RLGL: Matrix stack overflow (RL_MAX_MATRIX_STACK_SIZE)"); + + if (RLGL.State.currentMatrixMode == RL_MODELVIEW) + { + RLGL.State.transformRequired = true; + RLGL.State.currentMatrix = &RLGL.State.transform; + } + + RLGL.State.stack[RLGL.State.stackCounter] = *RLGL.State.currentMatrix; + RLGL.State.stackCounter++; +} + +// Pop lattest inserted matrix from RLGL.State.stack +void rlPopMatrix(void) +{ + if (RLGL.State.stackCounter > 0) + { + Matrix mat = RLGL.State.stack[RLGL.State.stackCounter - 1]; + *RLGL.State.currentMatrix = mat; + RLGL.State.stackCounter--; + } + + if ((RLGL.State.stackCounter == 0) && (RLGL.State.currentMatrixMode == RL_MODELVIEW)) + { + RLGL.State.currentMatrix = &RLGL.State.modelview; + RLGL.State.transformRequired = false; + } +} + +// Reset current matrix to identity matrix +void rlLoadIdentity(void) +{ + *RLGL.State.currentMatrix = rlMatrixIdentity(); +} + +// Multiply the current matrix by a translation matrix +void rlTranslatef(float x, float y, float z) +{ + Matrix matTranslation = { + 1.0f, 0.0f, 0.0f, x, + 0.0f, 1.0f, 0.0f, y, + 0.0f, 0.0f, 1.0f, z, + 0.0f, 0.0f, 0.0f, 1.0f + }; + + // NOTE: We transpose matrix with multiplication order + *RLGL.State.currentMatrix = rlMatrixMultiply(matTranslation, *RLGL.State.currentMatrix); +} + +// Multiply the current matrix by a rotation matrix +// NOTE: The provided angle must be in degrees +void rlRotatef(float angle, float x, float y, float z) +{ + Matrix matRotation = rlMatrixIdentity(); + + // Axis vector (x, y, z) normalization + float lengthSquared = x*x + y*y + z*z; + if ((lengthSquared != 1.0f) && (lengthSquared != 0.0f)) + { + float inverseLength = 1.0f/sqrtf(lengthSquared); + x *= inverseLength; + y *= inverseLength; + z *= inverseLength; + } + + // Rotation matrix generation + float sinres = sinf(DEG2RAD*angle); + float cosres = cosf(DEG2RAD*angle); + float t = 1.0f - cosres; + + matRotation.m0 = x*x*t + cosres; + matRotation.m1 = y*x*t + z*sinres; + matRotation.m2 = z*x*t - y*sinres; + matRotation.m3 = 0.0f; + + matRotation.m4 = x*y*t - z*sinres; + matRotation.m5 = y*y*t + cosres; + matRotation.m6 = z*y*t + x*sinres; + matRotation.m7 = 0.0f; + + matRotation.m8 = x*z*t + y*sinres; + matRotation.m9 = y*z*t - x*sinres; + matRotation.m10 = z*z*t + cosres; + matRotation.m11 = 0.0f; + + matRotation.m12 = 0.0f; + matRotation.m13 = 0.0f; + matRotation.m14 = 0.0f; + matRotation.m15 = 1.0f; + + // NOTE: We transpose matrix with multiplication order + *RLGL.State.currentMatrix = rlMatrixMultiply(matRotation, *RLGL.State.currentMatrix); +} + +// Multiply the current matrix by a scaling matrix +void rlScalef(float x, float y, float z) +{ + Matrix matScale = { + x, 0.0f, 0.0f, 0.0f, + 0.0f, y, 0.0f, 0.0f, + 0.0f, 0.0f, z, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + }; + + // NOTE: We transpose matrix with multiplication order + *RLGL.State.currentMatrix = rlMatrixMultiply(matScale, *RLGL.State.currentMatrix); +} + +// Multiply the current matrix by another matrix +void rlMultMatrixf(const float *matf) +{ + // Matrix creation from array + Matrix mat = { matf[0], matf[4], matf[8], matf[12], + matf[1], matf[5], matf[9], matf[13], + matf[2], matf[6], matf[10], matf[14], + matf[3], matf[7], matf[11], matf[15] }; + + *RLGL.State.currentMatrix = rlMatrixMultiply(mat, *RLGL.State.currentMatrix); +} + +// Multiply the current matrix by a perspective matrix generated by parameters +void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar) +{ + Matrix matFrustum = { 0 }; + + float rl = (float)(right - left); + float tb = (float)(top - bottom); + float fn = (float)(zfar - znear); + + matFrustum.m0 = ((float) znear*2.0f)/rl; + matFrustum.m1 = 0.0f; + matFrustum.m2 = 0.0f; + matFrustum.m3 = 0.0f; + + matFrustum.m4 = 0.0f; + matFrustum.m5 = ((float) znear*2.0f)/tb; + matFrustum.m6 = 0.0f; + matFrustum.m7 = 0.0f; + + matFrustum.m8 = ((float)right + (float)left)/rl; + matFrustum.m9 = ((float)top + (float)bottom)/tb; + matFrustum.m10 = -((float)zfar + (float)znear)/fn; + matFrustum.m11 = -1.0f; + + matFrustum.m12 = 0.0f; + matFrustum.m13 = 0.0f; + matFrustum.m14 = -((float)zfar*(float)znear*2.0f)/fn; + matFrustum.m15 = 0.0f; + + *RLGL.State.currentMatrix = rlMatrixMultiply(*RLGL.State.currentMatrix, matFrustum); +} + +// Multiply the current matrix by an orthographic matrix generated by parameters +void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar) +{ + // NOTE: If left-right and top-botton values are equal it could create a division by zero, + // response to it is platform/compiler dependant + Matrix matOrtho = { 0 }; + + float rl = (float)(right - left); + float tb = (float)(top - bottom); + float fn = (float)(zfar - znear); + + matOrtho.m0 = 2.0f/rl; + matOrtho.m1 = 0.0f; + matOrtho.m2 = 0.0f; + matOrtho.m3 = 0.0f; + matOrtho.m4 = 0.0f; + matOrtho.m5 = 2.0f/tb; + matOrtho.m6 = 0.0f; + matOrtho.m7 = 0.0f; + matOrtho.m8 = 0.0f; + matOrtho.m9 = 0.0f; + matOrtho.m10 = -2.0f/fn; + matOrtho.m11 = 0.0f; + matOrtho.m12 = -((float)left + (float)right)/rl; + matOrtho.m13 = -((float)top + (float)bottom)/tb; + matOrtho.m14 = -((float)zfar + (float)znear)/fn; + matOrtho.m15 = 1.0f; + + *RLGL.State.currentMatrix = rlMatrixMultiply(*RLGL.State.currentMatrix, matOrtho); +} +#endif + +// Set the viewport area (transformation from normalized device coordinates to window coordinates) +// NOTE: We store current viewport dimensions +void rlViewport(int x, int y, int width, int height) +{ + glViewport(x, y, width, height); +} + +// Set clip planes distances +void rlSetClipPlanes(double nearPlane, double farPlane) +{ + rlCullDistanceNear = nearPlane; + rlCullDistanceFar = farPlane; +} + +// Get cull plane distance near +double rlGetCullDistanceNear(void) +{ + return rlCullDistanceNear; +} + +// Get cull plane distance far +double rlGetCullDistanceFar(void) +{ + return rlCullDistanceFar; +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Vertex level operations +//---------------------------------------------------------------------------------- +#if defined(GRAPHICS_API_OPENGL_11) +// Fallback to OpenGL 1.1 function calls +//--------------------------------------- +void rlBegin(int mode) +{ + switch (mode) + { + case RL_LINES: glBegin(GL_LINES); break; + case RL_TRIANGLES: glBegin(GL_TRIANGLES); break; + case RL_QUADS: glBegin(GL_QUADS); break; + default: break; + } +} + +void rlEnd(void) { glEnd(); } +void rlVertex2i(int x, int y) { glVertex2i(x, y); } +void rlVertex2f(float x, float y) { glVertex2f(x, y); } +void rlVertex3f(float x, float y, float z) { glVertex3f(x, y, z); } +void rlTexCoord2f(float x, float y) { glTexCoord2f(x, y); } +void rlNormal3f(float x, float y, float z) { glNormal3f(x, y, z); } +void rlColor4ub(unsigned char r, unsigned char g, unsigned char b, unsigned char a) { glColor4ub(r, g, b, a); } +void rlColor3f(float x, float y, float z) { glColor3f(x, y, z); } +void rlColor4f(float x, float y, float z, float w) { glColor4f(x, y, z, w); } +#endif +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +// Initialize drawing mode (how to organize vertex) +void rlBegin(int mode) +{ + // Draw mode can be RL_LINES, RL_TRIANGLES and RL_QUADS + // NOTE: In all three cases, vertex are accumulated over default internal vertex buffer + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode != mode) + { + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount > 0) + { + // Make sure current RLGL.currentBatch->draws[i].vertexCount is aligned a multiple of 4, + // that way, following QUADS drawing will keep aligned with index processing + // It implies adding some extra alignment vertex at the end of the draw, + // those vertex are not processed but they are considered as an additional offset + // for the next set of vertex to be drawn + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount : RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4); + else if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? 1 : (4 - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4))); + else RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = 0; + + if (!rlCheckRenderBatchLimit(RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment)) + { + RLGL.State.vertexCounter += RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment; + RLGL.currentBatch->drawCounter++; + } + } + + if (RLGL.currentBatch->drawCounter >= RL_DEFAULT_BATCH_DRAWCALLS) rlDrawRenderBatch(RLGL.currentBatch); + + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode = mode; + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount = 0; + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = RLGL.State.defaultTextureId; + } +} + +// Finish vertex providing +void rlEnd(void) +{ + // NOTE: Depth increment is dependant on rlOrtho(): z-near and z-far values, + // as well as depth buffer bit-depth (16bit or 24bit or 32bit) + // Correct increment formula would be: depthInc = (zfar - znear)/pow(2, bits) + RLGL.currentBatch->currentDepth += (1.0f/20000.0f); +} + +// Define one vertex (position) +// NOTE: Vertex position data is the basic information required for drawing +void rlVertex3f(float x, float y, float z) +{ + float tx = x; + float ty = y; + float tz = z; + + // Transform provided vector if required + if (RLGL.State.transformRequired) + { + tx = RLGL.State.transform.m0*x + RLGL.State.transform.m4*y + RLGL.State.transform.m8*z + RLGL.State.transform.m12; + ty = RLGL.State.transform.m1*x + RLGL.State.transform.m5*y + RLGL.State.transform.m9*z + RLGL.State.transform.m13; + tz = RLGL.State.transform.m2*x + RLGL.State.transform.m6*y + RLGL.State.transform.m10*z + RLGL.State.transform.m14; + } + + // WARNING: We can't break primitives when launching a new batch + // RL_LINES comes in pairs, RL_TRIANGLES come in groups of 3 vertices and RL_QUADS come in groups of 4 vertices + // We must check current draw.mode when a new vertex is required and finish the batch only if the draw.mode draw.vertexCount is %2, %3 or %4 + if (RLGL.State.vertexCounter > (RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4 - 4)) + { + if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) && + (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%2 == 0)) + { + // Reached the maximum number of vertices for RL_LINES drawing + // Launch a draw call but keep current state for next vertices comming + // NOTE: We add +1 vertex to the check for security + rlCheckRenderBatchLimit(2 + 1); + } + else if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) && + (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%3 == 0)) + { + rlCheckRenderBatchLimit(3 + 1); + } + else if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_QUADS) && + (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4 == 0)) + { + rlCheckRenderBatchLimit(4 + 1); + } + } + + // Add vertices + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter] = tx; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter + 1] = ty; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter + 2] = tz; + + // Add current texcoord + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter] = RLGL.State.texcoordx; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter + 1] = RLGL.State.texcoordy; + + // Add current normal + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter] = RLGL.State.normalx; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter + 1] = RLGL.State.normaly; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter + 2] = RLGL.State.normalz; + + // Add current color + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter] = RLGL.State.colorr; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 1] = RLGL.State.colorg; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 2] = RLGL.State.colorb; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 3] = RLGL.State.colora; + + RLGL.State.vertexCounter++; + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount++; +} + +// Define one vertex (position) +void rlVertex2f(float x, float y) +{ + rlVertex3f(x, y, RLGL.currentBatch->currentDepth); +} + +// Define one vertex (position) +void rlVertex2i(int x, int y) +{ + rlVertex3f((float)x, (float)y, RLGL.currentBatch->currentDepth); +} + +// Define one vertex (texture coordinate) +// NOTE: Texture coordinates are limited to QUADS only +void rlTexCoord2f(float x, float y) +{ + RLGL.State.texcoordx = x; + RLGL.State.texcoordy = y; +} + +// Define one vertex (normal) +// NOTE: Normals limited to TRIANGLES only? +void rlNormal3f(float x, float y, float z) +{ + float normalx = x; + float normaly = y; + float normalz = z; + if (RLGL.State.transformRequired) + { + normalx = RLGL.State.transform.m0*x + RLGL.State.transform.m4*y + RLGL.State.transform.m8*z; + normaly = RLGL.State.transform.m1*x + RLGL.State.transform.m5*y + RLGL.State.transform.m9*z; + normalz = RLGL.State.transform.m2*x + RLGL.State.transform.m6*y + RLGL.State.transform.m10*z; + } + float length = sqrtf(normalx*normalx + normaly*normaly + normalz*normalz); + if (length != 0.0f) + { + float ilength = 1.0f/length; + normalx *= ilength; + normaly *= ilength; + normalz *= ilength; + } + RLGL.State.normalx = normalx; + RLGL.State.normaly = normaly; + RLGL.State.normalz = normalz; +} + +// Define one vertex (color) +void rlColor4ub(unsigned char x, unsigned char y, unsigned char z, unsigned char w) +{ + RLGL.State.colorr = x; + RLGL.State.colorg = y; + RLGL.State.colorb = z; + RLGL.State.colora = w; +} + +// Define one vertex (color) +void rlColor4f(float r, float g, float b, float a) +{ + rlColor4ub((unsigned char)(r*255), (unsigned char)(g*255), (unsigned char)(b*255), (unsigned char)(a*255)); +} + +// Define one vertex (color) +void rlColor3f(float x, float y, float z) +{ + rlColor4ub((unsigned char)(x*255), (unsigned char)(y*255), (unsigned char)(z*255), 255); +} + +#endif + +//-------------------------------------------------------------------------------------- +// Module Functions Definition - OpenGL style functions (common to 1.1, 3.3+, ES2) +//-------------------------------------------------------------------------------------- + +// Set current texture to use +void rlSetTexture(unsigned int id) +{ + if (id == 0) + { +#if defined(GRAPHICS_API_OPENGL_11) + rlDisableTexture(); +#else + // NOTE: If quads batch limit is reached, we force a draw call and next batch starts + if (RLGL.State.vertexCounter >= + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4) + { + rlDrawRenderBatch(RLGL.currentBatch); + } +#endif + } + else + { +#if defined(GRAPHICS_API_OPENGL_11) + rlEnableTexture(id); +#else + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId != id) + { + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount > 0) + { + // Make sure current RLGL.currentBatch->draws[i].vertexCount is aligned a multiple of 4, + // that way, following QUADS drawing will keep aligned with index processing + // It implies adding some extra alignment vertex at the end of the draw, + // those vertex are not processed but they are considered as an additional offset + // for the next set of vertex to be drawn + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount : RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4); + else if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? 1 : (4 - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4))); + else RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = 0; + + if (!rlCheckRenderBatchLimit(RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment)) + { + RLGL.State.vertexCounter += RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment; + + RLGL.currentBatch->drawCounter++; + } + } + + if (RLGL.currentBatch->drawCounter >= RL_DEFAULT_BATCH_DRAWCALLS) rlDrawRenderBatch(RLGL.currentBatch); + + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = id; + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount = 0; + } +#endif + } +} + +// Select and active a texture slot +void rlActiveTextureSlot(int slot) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glActiveTexture(GL_TEXTURE0 + slot); +#endif +} + +// Enable texture +void rlEnableTexture(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_11) + glEnable(GL_TEXTURE_2D); +#endif + glBindTexture(GL_TEXTURE_2D, id); +} + +// Disable texture +void rlDisableTexture(void) +{ +#if defined(GRAPHICS_API_OPENGL_11) + glDisable(GL_TEXTURE_2D); +#endif + glBindTexture(GL_TEXTURE_2D, 0); +} + +// Enable texture cubemap +void rlEnableTextureCubemap(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindTexture(GL_TEXTURE_CUBE_MAP, id); +#endif +} + +// Disable texture cubemap +void rlDisableTextureCubemap(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindTexture(GL_TEXTURE_CUBE_MAP, 0); +#endif +} + +// Set texture parameters (wrap mode/filter mode) +void rlTextureParameters(unsigned int id, int param, int value) +{ + glBindTexture(GL_TEXTURE_2D, id); + +#if !defined(GRAPHICS_API_OPENGL_11) + // Reset anisotropy filter, in case it was set + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0f); +#endif + + switch (param) + { + case RL_TEXTURE_WRAP_S: + case RL_TEXTURE_WRAP_T: + { + if (value == RL_TEXTURE_WRAP_MIRROR_CLAMP) + { +#if !defined(GRAPHICS_API_OPENGL_11) + if (RLGL.ExtSupported.texMirrorClamp) glTexParameteri(GL_TEXTURE_2D, param, value); + else TRACELOG(RL_LOG_WARNING, "GL: Clamp mirror wrap mode not supported (GL_MIRROR_CLAMP_EXT)"); +#endif + } + else glTexParameteri(GL_TEXTURE_2D, param, value); + + } break; + case RL_TEXTURE_MAG_FILTER: + case RL_TEXTURE_MIN_FILTER: glTexParameteri(GL_TEXTURE_2D, param, value); break; + case RL_TEXTURE_FILTER_ANISOTROPIC: + { +#if !defined(GRAPHICS_API_OPENGL_11) + if (value <= RLGL.ExtSupported.maxAnisotropyLevel) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); + else if (RLGL.ExtSupported.maxAnisotropyLevel > 0.0f) + { + TRACELOG(RL_LOG_WARNING, "GL: Maximum anisotropic filter level supported is %iX", id, (int)RLGL.ExtSupported.maxAnisotropyLevel); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); + } + else TRACELOG(RL_LOG_WARNING, "GL: Anisotropic filtering not supported"); +#endif + } break; +#if defined(GRAPHICS_API_OPENGL_33) + case RL_TEXTURE_MIPMAP_BIAS_RATIO: glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_LOD_BIAS, value/100.0f); +#endif + default: break; + } + + glBindTexture(GL_TEXTURE_2D, 0); +} + +// Set cubemap parameters (wrap mode/filter mode) +void rlCubemapParameters(unsigned int id, int param, int value) +{ +#if !defined(GRAPHICS_API_OPENGL_11) + glBindTexture(GL_TEXTURE_CUBE_MAP, id); + + // Reset anisotropy filter, in case it was set + glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0f); + + switch (param) + { + case RL_TEXTURE_WRAP_S: + case RL_TEXTURE_WRAP_T: + { + if (value == RL_TEXTURE_WRAP_MIRROR_CLAMP) + { + if (RLGL.ExtSupported.texMirrorClamp) glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); + else TRACELOG(RL_LOG_WARNING, "GL: Clamp mirror wrap mode not supported (GL_MIRROR_CLAMP_EXT)"); + } + else glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); + + } break; + case RL_TEXTURE_MAG_FILTER: + case RL_TEXTURE_MIN_FILTER: glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); break; + case RL_TEXTURE_FILTER_ANISOTROPIC: + { + if (value <= RLGL.ExtSupported.maxAnisotropyLevel) glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); + else if (RLGL.ExtSupported.maxAnisotropyLevel > 0.0f) + { + TRACELOG(RL_LOG_WARNING, "GL: Maximum anisotropic filter level supported is %iX", id, (int)RLGL.ExtSupported.maxAnisotropyLevel); + glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); + } + else TRACELOG(RL_LOG_WARNING, "GL: Anisotropic filtering not supported"); + } break; +#if defined(GRAPHICS_API_OPENGL_33) + case RL_TEXTURE_MIPMAP_BIAS_RATIO: glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_LOD_BIAS, value/100.0f); +#endif + default: break; + } + + glBindTexture(GL_TEXTURE_CUBE_MAP, 0); +#endif +} + +// Enable shader program +void rlEnableShader(unsigned int id) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) + glUseProgram(id); +#endif +} + +// Disable shader program +void rlDisableShader(void) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) + glUseProgram(0); +#endif +} + +// Enable rendering to texture (fbo) +void rlEnableFramebuffer(unsigned int id) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) + glBindFramebuffer(GL_FRAMEBUFFER, id); +#endif +} + +// return the active render texture (fbo) +unsigned int rlGetActiveFramebuffer(void) +{ + GLint fboId = 0; +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT) + glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &fboId); +#endif + return fboId; +} + +// Disable rendering to texture +void rlDisableFramebuffer(void) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) + glBindFramebuffer(GL_FRAMEBUFFER, 0); +#endif +} + +// Blit active framebuffer to main framebuffer +void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT) + glBlitFramebuffer(srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, bufferMask, GL_NEAREST); +#endif +} + +// Bind framebuffer object (fbo) +void rlBindFramebuffer(unsigned int target, unsigned int framebuffer) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) + glBindFramebuffer(target, framebuffer); +#endif +} + +// Activate multiple draw color buffers +// NOTE: One color buffer is always active by default +void rlActiveDrawBuffers(int count) +{ +#if ((defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT)) + // NOTE: Maximum number of draw buffers supported is implementation dependant, + // it can be queried with glGet*() but it must be at least 8 + //GLint maxDrawBuffers = 0; + //glGetIntegerv(GL_MAX_DRAW_BUFFERS, &maxDrawBuffers); + + if (count > 0) + { + if (count > 8) TRACELOG(LOG_WARNING, "GL: Max color buffers limited to 8"); + else + { + unsigned int buffers[8] = { +#if defined(GRAPHICS_API_OPENGL_ES3) + GL_COLOR_ATTACHMENT0_EXT, + GL_COLOR_ATTACHMENT1_EXT, + GL_COLOR_ATTACHMENT2_EXT, + GL_COLOR_ATTACHMENT3_EXT, + GL_COLOR_ATTACHMENT4_EXT, + GL_COLOR_ATTACHMENT5_EXT, + GL_COLOR_ATTACHMENT6_EXT, + GL_COLOR_ATTACHMENT7_EXT, +#else + GL_COLOR_ATTACHMENT0, + GL_COLOR_ATTACHMENT1, + GL_COLOR_ATTACHMENT2, + GL_COLOR_ATTACHMENT3, + GL_COLOR_ATTACHMENT4, + GL_COLOR_ATTACHMENT5, + GL_COLOR_ATTACHMENT6, + GL_COLOR_ATTACHMENT7, +#endif + }; + +#if defined(GRAPHICS_API_OPENGL_ES3) + glDrawBuffersEXT(count, buffers); +#else + glDrawBuffers(count, buffers); +#endif + } + } + else TRACELOG(LOG_WARNING, "GL: One color buffer active by default"); +#endif +} + +//---------------------------------------------------------------------------------- +// General render state configuration +//---------------------------------------------------------------------------------- + +// Enable color blending +void rlEnableColorBlend(void) { glEnable(GL_BLEND); } + +// Disable color blending +void rlDisableColorBlend(void) { glDisable(GL_BLEND); } + +// Enable depth test +void rlEnableDepthTest(void) { glEnable(GL_DEPTH_TEST); } + +// Disable depth test +void rlDisableDepthTest(void) { glDisable(GL_DEPTH_TEST); } + +// Enable depth write +void rlEnableDepthMask(void) { glDepthMask(GL_TRUE); } + +// Disable depth write +void rlDisableDepthMask(void) { glDepthMask(GL_FALSE); } + +// Enable backface culling +void rlEnableBackfaceCulling(void) { glEnable(GL_CULL_FACE); } + +// Disable backface culling +void rlDisableBackfaceCulling(void) { glDisable(GL_CULL_FACE); } + +// Set color mask active for screen read/draw +void rlColorMask(bool r, bool g, bool b, bool a) { glColorMask(r, g, b, a); } + +// Set face culling mode +void rlSetCullFace(int mode) +{ + switch (mode) + { + case RL_CULL_FACE_BACK: glCullFace(GL_BACK); break; + case RL_CULL_FACE_FRONT: glCullFace(GL_FRONT); break; + default: break; + } +} + +// Enable scissor test +void rlEnableScissorTest(void) { glEnable(GL_SCISSOR_TEST); } + +// Disable scissor test +void rlDisableScissorTest(void) { glDisable(GL_SCISSOR_TEST); } + +// Scissor test +void rlScissor(int x, int y, int width, int height) { glScissor(x, y, width, height); } + +// Enable wire mode +void rlEnableWireMode(void) +{ +#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + // NOTE: glPolygonMode() not available on OpenGL ES + glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); +#endif +} + +// Enable point mode +void rlEnablePointMode(void) +{ +#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + // NOTE: glPolygonMode() not available on OpenGL ES + glPolygonMode(GL_FRONT_AND_BACK, GL_POINT); + glEnable(GL_PROGRAM_POINT_SIZE); +#endif +} + +// Disable wire mode +void rlDisableWireMode(void) +{ +#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + // NOTE: glPolygonMode() not available on OpenGL ES + glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); +#endif +} + +// Set the line drawing width +void rlSetLineWidth(float width) { glLineWidth(width); } + +// Get the line drawing width +float rlGetLineWidth(void) +{ + float width = 0; + glGetFloatv(GL_LINE_WIDTH, &width); + return width; +} + +// Enable line aliasing +void rlEnableSmoothLines(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_11) + glEnable(GL_LINE_SMOOTH); +#endif +} + +// Disable line aliasing +void rlDisableSmoothLines(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_11) + glDisable(GL_LINE_SMOOTH); +#endif +} + +// Enable stereo rendering +void rlEnableStereoRender(void) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) + RLGL.State.stereoRender = true; +#endif +} + +// Disable stereo rendering +void rlDisableStereoRender(void) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) + RLGL.State.stereoRender = false; +#endif +} + +// Check if stereo render is enabled +bool rlIsStereoRenderEnabled(void) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) + return RLGL.State.stereoRender; +#else + return false; +#endif +} + +// Clear color buffer with color +void rlClearColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a) +{ + // Color values clamp to 0.0f(0) and 1.0f(255) + float cr = (float)r/255; + float cg = (float)g/255; + float cb = (float)b/255; + float ca = (float)a/255; + + glClearColor(cr, cg, cb, ca); +} + +// Clear used screen buffers (color and depth) +void rlClearScreenBuffers(void) +{ + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear used buffers: Color and Depth (Depth is used for 3D) + //glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); // Stencil buffer not used... +} + +// Check and log OpenGL error codes +void rlCheckErrors(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + int check = 1; + while (check) + { + const GLenum err = glGetError(); + switch (err) + { + case GL_NO_ERROR: check = 0; break; + case 0x0500: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_ENUM"); break; + case 0x0501: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_VALUE"); break; + case 0x0502: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_OPERATION"); break; + case 0x0503: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_STACK_OVERFLOW"); break; + case 0x0504: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_STACK_UNDERFLOW"); break; + case 0x0505: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_OUT_OF_MEMORY"); break; + case 0x0506: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_FRAMEBUFFER_OPERATION"); break; + default: TRACELOG(RL_LOG_WARNING, "GL: Error detected: Unknown error code: %x", err); break; + } + } +#endif +} + +// Set blend mode +void rlSetBlendMode(int mode) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if ((RLGL.State.currentBlendMode != mode) || ((mode == RL_BLEND_CUSTOM || mode == RL_BLEND_CUSTOM_SEPARATE) && RLGL.State.glCustomBlendModeModified)) + { + rlDrawRenderBatch(RLGL.currentBatch); + + switch (mode) + { + case RL_BLEND_ALPHA: glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; + case RL_BLEND_ADDITIVE: glBlendFunc(GL_SRC_ALPHA, GL_ONE); glBlendEquation(GL_FUNC_ADD); break; + case RL_BLEND_MULTIPLIED: glBlendFunc(GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; + case RL_BLEND_ADD_COLORS: glBlendFunc(GL_ONE, GL_ONE); glBlendEquation(GL_FUNC_ADD); break; + case RL_BLEND_SUBTRACT_COLORS: glBlendFunc(GL_ONE, GL_ONE); glBlendEquation(GL_FUNC_SUBTRACT); break; + case RL_BLEND_ALPHA_PREMULTIPLY: glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; + case RL_BLEND_CUSTOM: + { + // NOTE: Using GL blend src/dst factors and GL equation configured with rlSetBlendFactors() + glBlendFunc(RLGL.State.glBlendSrcFactor, RLGL.State.glBlendDstFactor); glBlendEquation(RLGL.State.glBlendEquation); + + } break; + case RL_BLEND_CUSTOM_SEPARATE: + { + // NOTE: Using GL blend src/dst factors and GL equation configured with rlSetBlendFactorsSeparate() + glBlendFuncSeparate(RLGL.State.glBlendSrcFactorRGB, RLGL.State.glBlendDestFactorRGB, RLGL.State.glBlendSrcFactorAlpha, RLGL.State.glBlendDestFactorAlpha); + glBlendEquationSeparate(RLGL.State.glBlendEquationRGB, RLGL.State.glBlendEquationAlpha); + + } break; + default: break; + } + + RLGL.State.currentBlendMode = mode; + RLGL.State.glCustomBlendModeModified = false; + } +#endif +} + +// Set blending mode factor and equation +void rlSetBlendFactors(int glSrcFactor, int glDstFactor, int glEquation) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if ((RLGL.State.glBlendSrcFactor != glSrcFactor) || + (RLGL.State.glBlendDstFactor != glDstFactor) || + (RLGL.State.glBlendEquation != glEquation)) + { + RLGL.State.glBlendSrcFactor = glSrcFactor; + RLGL.State.glBlendDstFactor = glDstFactor; + RLGL.State.glBlendEquation = glEquation; + + RLGL.State.glCustomBlendModeModified = true; + } +#endif +} + +// Set blending mode factor and equation separately for RGB and alpha +void rlSetBlendFactorsSeparate(int glSrcRGB, int glDstRGB, int glSrcAlpha, int glDstAlpha, int glEqRGB, int glEqAlpha) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if ((RLGL.State.glBlendSrcFactorRGB != glSrcRGB) || + (RLGL.State.glBlendDestFactorRGB != glDstRGB) || + (RLGL.State.glBlendSrcFactorAlpha != glSrcAlpha) || + (RLGL.State.glBlendDestFactorAlpha != glDstAlpha) || + (RLGL.State.glBlendEquationRGB != glEqRGB) || + (RLGL.State.glBlendEquationAlpha != glEqAlpha)) + { + RLGL.State.glBlendSrcFactorRGB = glSrcRGB; + RLGL.State.glBlendDestFactorRGB = glDstRGB; + RLGL.State.glBlendSrcFactorAlpha = glSrcAlpha; + RLGL.State.glBlendDestFactorAlpha = glDstAlpha; + RLGL.State.glBlendEquationRGB = glEqRGB; + RLGL.State.glBlendEquationAlpha = glEqAlpha; + + RLGL.State.glCustomBlendModeModified = true; + } +#endif +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition - OpenGL Debug +//---------------------------------------------------------------------------------- +#if defined(RLGL_ENABLE_OPENGL_DEBUG_CONTEXT) && defined(GRAPHICS_API_OPENGL_43) +static void GLAPIENTRY rlDebugMessageCallback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam) +{ + // Ignore non-significant error/warning codes (NVidia drivers) + // NOTE: Here there are the details with a sample output: + // - #131169 - Framebuffer detailed info: The driver allocated storage for renderbuffer 2. (severity: low) + // - #131185 - Buffer detailed info: Buffer object 1 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_ENUM_88e4) + // will use VIDEO memory as the source for buffer object operations. (severity: low) + // - #131218 - Program/shader state performance warning: Vertex shader in program 7 is being recompiled based on GL state. (severity: medium) + // - #131204 - Texture state usage warning: The texture object (0) bound to texture image unit 0 does not have + // a defined base level and cannot be used for texture mapping. (severity: low) + if ((id == 131169) || (id == 131185) || (id == 131218) || (id == 131204)) return; + + const char *msgSource = NULL; + switch (source) + { + case GL_DEBUG_SOURCE_API: msgSource = "API"; break; + case GL_DEBUG_SOURCE_WINDOW_SYSTEM: msgSource = "WINDOW_SYSTEM"; break; + case GL_DEBUG_SOURCE_SHADER_COMPILER: msgSource = "SHADER_COMPILER"; break; + case GL_DEBUG_SOURCE_THIRD_PARTY: msgSource = "THIRD_PARTY"; break; + case GL_DEBUG_SOURCE_APPLICATION: msgSource = "APPLICATION"; break; + case GL_DEBUG_SOURCE_OTHER: msgSource = "OTHER"; break; + default: break; + } + + const char *msgType = NULL; + switch (type) + { + case GL_DEBUG_TYPE_ERROR: msgType = "ERROR"; break; + case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: msgType = "DEPRECATED_BEHAVIOR"; break; + case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: msgType = "UNDEFINED_BEHAVIOR"; break; + case GL_DEBUG_TYPE_PORTABILITY: msgType = "PORTABILITY"; break; + case GL_DEBUG_TYPE_PERFORMANCE: msgType = "PERFORMANCE"; break; + case GL_DEBUG_TYPE_MARKER: msgType = "MARKER"; break; + case GL_DEBUG_TYPE_PUSH_GROUP: msgType = "PUSH_GROUP"; break; + case GL_DEBUG_TYPE_POP_GROUP: msgType = "POP_GROUP"; break; + case GL_DEBUG_TYPE_OTHER: msgType = "OTHER"; break; + default: break; + } + + const char *msgSeverity = "DEFAULT"; + switch (severity) + { + case GL_DEBUG_SEVERITY_LOW: msgSeverity = "LOW"; break; + case GL_DEBUG_SEVERITY_MEDIUM: msgSeverity = "MEDIUM"; break; + case GL_DEBUG_SEVERITY_HIGH: msgSeverity = "HIGH"; break; + case GL_DEBUG_SEVERITY_NOTIFICATION: msgSeverity = "NOTIFICATION"; break; + default: break; + } + + TRACELOG(LOG_WARNING, "GL: OpenGL debug message: %s", message); + TRACELOG(LOG_WARNING, " > Type: %s", msgType); + TRACELOG(LOG_WARNING, " > Source = %s", msgSource); + TRACELOG(LOG_WARNING, " > Severity = %s", msgSeverity); +} +#endif + +//---------------------------------------------------------------------------------- +// Module Functions Definition - rlgl functionality +//---------------------------------------------------------------------------------- + +// Initialize rlgl: OpenGL extensions, default buffers/shaders/textures, OpenGL states +void rlglInit(int width, int height) +{ + // Enable OpenGL debug context if required +#if defined(RLGL_ENABLE_OPENGL_DEBUG_CONTEXT) && defined(GRAPHICS_API_OPENGL_43) + if ((glDebugMessageCallback != NULL) && (glDebugMessageControl != NULL)) + { + glDebugMessageCallback(rlDebugMessageCallback, 0); + // glDebugMessageControl(GL_DEBUG_SOURCE_API, GL_DEBUG_TYPE_ERROR, GL_DEBUG_SEVERITY_HIGH, 0, 0, GL_TRUE); + + // Debug context options: + // - GL_DEBUG_OUTPUT - Faster version but not useful for breakpoints + // - GL_DEBUG_OUTPUT_SYNCHRONUS - Callback is in sync with errors, so a breakpoint can be placed on the callback in order to get a stacktrace for the GL error + glEnable(GL_DEBUG_OUTPUT); + glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS); + } +#endif + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Init default white texture + unsigned char pixels[4] = { 255, 255, 255, 255 }; // 1 pixel RGBA (4 bytes) + RLGL.State.defaultTextureId = rlLoadTexture(pixels, 1, 1, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, 1); + + if (RLGL.State.defaultTextureId != 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Default texture loaded successfully", RLGL.State.defaultTextureId); + else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load default texture"); + + // Init default Shader (customized for GL 3.3 and ES2) + // Loaded: RLGL.State.defaultShaderId + RLGL.State.defaultShaderLocs + rlLoadShaderDefault(); + RLGL.State.currentShaderId = RLGL.State.defaultShaderId; + RLGL.State.currentShaderLocs = RLGL.State.defaultShaderLocs; + + // Init default vertex arrays buffers + // Simulate that the default shader has the location RL_SHADER_LOC_VERTEX_NORMAL to bind the normal buffer for the default render batch + RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL] = RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL; + RLGL.defaultBatch = rlLoadRenderBatch(RL_DEFAULT_BATCH_BUFFERS, RL_DEFAULT_BATCH_BUFFER_ELEMENTS); + RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL] = -1; + RLGL.currentBatch = &RLGL.defaultBatch; + + // Init stack matrices (emulating OpenGL 1.1) + for (int i = 0; i < RL_MAX_MATRIX_STACK_SIZE; i++) RLGL.State.stack[i] = rlMatrixIdentity(); + + // Init internal matrices + RLGL.State.transform = rlMatrixIdentity(); + RLGL.State.projection = rlMatrixIdentity(); + RLGL.State.modelview = rlMatrixIdentity(); + RLGL.State.currentMatrix = &RLGL.State.modelview; +#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 + + // Initialize OpenGL default states + //---------------------------------------------------------- + // Init state: Depth test + glDepthFunc(GL_LEQUAL); // Type of depth testing to apply + glDisable(GL_DEPTH_TEST); // Disable depth testing for 2D (only used for 3D) + + // Init state: Blending mode + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // Color blending function (how colors are mixed) + glEnable(GL_BLEND); // Enable color blending (required to work with transparencies) + + // Init state: Culling + // NOTE: All shapes/models triangles are drawn CCW + glCullFace(GL_BACK); // Cull the back face (default) + glFrontFace(GL_CCW); // Front face are defined counter clockwise (default) + glEnable(GL_CULL_FACE); // Enable backface culling + + // Init state: Cubemap seamless +#if defined(GRAPHICS_API_OPENGL_33) + glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS); // Seamless cubemaps (not supported on OpenGL ES 2.0) +#endif + +#if defined(GRAPHICS_API_OPENGL_11) + // Init state: Color hints (deprecated in OpenGL 3.0+) + glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Improve quality of color and texture coordinate interpolation + glShadeModel(GL_SMOOTH); // Smooth shading between vertex (vertex colors interpolation) +#endif + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Store screen size into global variables + RLGL.State.framebufferWidth = width; + RLGL.State.framebufferHeight = height; + + TRACELOG(RL_LOG_INFO, "RLGL: Default OpenGL state initialized successfully"); + //---------------------------------------------------------- +#endif + + // Init state: Color/Depth buffers clear + glClearColor(0.0f, 0.0f, 0.0f, 1.0f); // Set clear color (black) + glClearDepth(1.0f); // Set clear depth value (default) + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear color and depth buffers (depth buffer required for 3D) +} + +// Vertex Buffer Object deinitialization (memory free) +void rlglClose(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + rlUnloadRenderBatch(RLGL.defaultBatch); + + rlUnloadShaderDefault(); // Unload default shader + + glDeleteTextures(1, &RLGL.State.defaultTextureId); // Unload default texture + TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Default texture unloaded successfully", RLGL.State.defaultTextureId); +#endif +} + +// Load OpenGL extensions +// NOTE: External loader function must be provided +void rlLoadExtensions(void *loader) +{ +#if defined(GRAPHICS_API_OPENGL_33) // Also defined for GRAPHICS_API_OPENGL_21 + // NOTE: glad is generated and contains only required OpenGL 3.3 Core extensions (and lower versions) + if (gladLoadGL((GLADloadfunc)loader) == 0) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL extensions"); + else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL extensions loaded successfully"); + + // Get number of supported extensions + GLint numExt = 0; + glGetIntegerv(GL_NUM_EXTENSIONS, &numExt); + TRACELOG(RL_LOG_INFO, "GL: Supported extensions count: %i", numExt); + +#if defined(RLGL_SHOW_GL_DETAILS_INFO) + // Get supported extensions list + // WARNING: glGetStringi() not available on OpenGL 2.1 + TRACELOG(RL_LOG_INFO, "GL: OpenGL extensions:"); + for (int i = 0; i < numExt; i++) TRACELOG(RL_LOG_INFO, " %s", glGetStringi(GL_EXTENSIONS, i)); +#endif + +#if defined(GRAPHICS_API_OPENGL_21) + // Register supported extensions flags + // Optional OpenGL 2.1 extensions + RLGL.ExtSupported.vao = GLAD_GL_ARB_vertex_array_object; + RLGL.ExtSupported.instancing = (GLAD_GL_EXT_draw_instanced && GLAD_GL_ARB_instanced_arrays); + RLGL.ExtSupported.texNPOT = GLAD_GL_ARB_texture_non_power_of_two; + RLGL.ExtSupported.texFloat32 = GLAD_GL_ARB_texture_float; + RLGL.ExtSupported.texFloat16 = GLAD_GL_ARB_texture_float; + RLGL.ExtSupported.texDepth = GLAD_GL_ARB_depth_texture; + RLGL.ExtSupported.maxDepthBits = 32; + RLGL.ExtSupported.texAnisoFilter = GLAD_GL_EXT_texture_filter_anisotropic; + RLGL.ExtSupported.texMirrorClamp = GLAD_GL_EXT_texture_mirror_clamp; +#else + // Register supported extensions flags + // OpenGL 3.3 extensions supported by default (core) + RLGL.ExtSupported.vao = true; + RLGL.ExtSupported.instancing = true; + RLGL.ExtSupported.texNPOT = true; + RLGL.ExtSupported.texFloat32 = true; + RLGL.ExtSupported.texFloat16 = true; + RLGL.ExtSupported.texDepth = true; + RLGL.ExtSupported.maxDepthBits = 32; + RLGL.ExtSupported.texAnisoFilter = true; + RLGL.ExtSupported.texMirrorClamp = true; +#endif + + // Optional OpenGL 3.3 extensions + RLGL.ExtSupported.texCompASTC = GLAD_GL_KHR_texture_compression_astc_hdr && GLAD_GL_KHR_texture_compression_astc_ldr; + RLGL.ExtSupported.texCompDXT = GLAD_GL_EXT_texture_compression_s3tc; // Texture compression: DXT + RLGL.ExtSupported.texCompETC2 = GLAD_GL_ARB_ES3_compatibility; // Texture compression: ETC2/EAC + #if defined(GRAPHICS_API_OPENGL_43) + RLGL.ExtSupported.computeShader = GLAD_GL_ARB_compute_shader; + RLGL.ExtSupported.ssbo = GLAD_GL_ARB_shader_storage_buffer_object; + #endif + +#endif // GRAPHICS_API_OPENGL_33 + +#if defined(GRAPHICS_API_OPENGL_ES3) + // Register supported extensions flags + // OpenGL ES 3.0 extensions supported by default (or it should be) + RLGL.ExtSupported.vao = true; + RLGL.ExtSupported.instancing = true; + RLGL.ExtSupported.texNPOT = true; + RLGL.ExtSupported.texFloat32 = true; + RLGL.ExtSupported.texFloat16 = true; + RLGL.ExtSupported.texDepth = true; + RLGL.ExtSupported.texDepthWebGL = true; + RLGL.ExtSupported.maxDepthBits = 24; + RLGL.ExtSupported.texAnisoFilter = true; + RLGL.ExtSupported.texMirrorClamp = true; + // TODO: Check for additional OpenGL ES 3.0 supported extensions: + //RLGL.ExtSupported.texCompDXT = true; + //RLGL.ExtSupported.texCompETC1 = true; + //RLGL.ExtSupported.texCompETC2 = true; + //RLGL.ExtSupported.texCompPVRT = true; + //RLGL.ExtSupported.texCompASTC = true; + //RLGL.ExtSupported.maxAnisotropyLevel = true; + //RLGL.ExtSupported.computeShader = true; + //RLGL.ExtSupported.ssbo = true; + +#elif defined(GRAPHICS_API_OPENGL_ES2) + + #if defined(PLATFORM_DESKTOP_GLFW) || defined(PLATFORM_DESKTOP_SDL) + // TODO: Support GLAD loader for OpenGL ES 3.0 + if (gladLoadGLES2((GLADloadfunc)loader) == 0) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL ES2.0 functions"); + else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL ES 2.0 loaded successfully"); + #endif + + // Get supported extensions list + GLint numExt = 0; + const char **extList = RL_MALLOC(512*sizeof(const char *)); // Allocate 512 strings pointers (2 KB) + const char *extensions = (const char *)glGetString(GL_EXTENSIONS); // One big const string + + // NOTE: We have to duplicate string because glGetString() returns a const string + int size = strlen(extensions) + 1; // Get extensions string size in bytes + char *extensionsDup = (char *)RL_CALLOC(size, sizeof(char)); + strcpy(extensionsDup, extensions); + extList[numExt] = extensionsDup; + + for (int i = 0; i < size; i++) + { + if (extensionsDup[i] == ' ') + { + extensionsDup[i] = '\0'; + numExt++; + extList[numExt] = &extensionsDup[i + 1]; + } + } + + TRACELOG(RL_LOG_INFO, "GL: Supported extensions count: %i", numExt); + +#if defined(RLGL_SHOW_GL_DETAILS_INFO) + TRACELOG(RL_LOG_INFO, "GL: OpenGL extensions:"); + for (int i = 0; i < numExt; i++) TRACELOG(RL_LOG_INFO, " %s", extList[i]); +#endif + + // Check required extensions + for (int i = 0; i < numExt; i++) + { + // Check VAO support + // NOTE: Only check on OpenGL ES, OpenGL 3.3 has VAO support as core feature + if (strcmp(extList[i], (const char *)"GL_OES_vertex_array_object") == 0) + { + // The extension is supported by our hardware and driver, try to get related functions pointers + // NOTE: emscripten does not support VAOs natively, it uses emulation and it reduces overall performance... + glGenVertexArrays = (PFNGLGENVERTEXARRAYSOESPROC)((rlglLoadProc)loader)("glGenVertexArraysOES"); + glBindVertexArray = (PFNGLBINDVERTEXARRAYOESPROC)((rlglLoadProc)loader)("glBindVertexArrayOES"); + glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSOESPROC)((rlglLoadProc)loader)("glDeleteVertexArraysOES"); + //glIsVertexArray = (PFNGLISVERTEXARRAYOESPROC)loader("glIsVertexArrayOES"); // NOTE: Fails in WebGL, omitted + + if ((glGenVertexArrays != NULL) && (glBindVertexArray != NULL) && (glDeleteVertexArrays != NULL)) RLGL.ExtSupported.vao = true; + } + + // Check instanced rendering support + if (strstr(extList[i], (const char*)"instanced_arrays") != NULL) // Broad check for instanced_arrays + { + // Specific check + if (strcmp(extList[i], (const char *)"GL_ANGLE_instanced_arrays") == 0) // ANGLE + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedANGLE"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedANGLE"); + glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorANGLE"); + } + else if (strcmp(extList[i], (const char *)"GL_EXT_instanced_arrays") == 0) // EXT + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedEXT"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedEXT"); + glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorEXT"); + } + else if (strcmp(extList[i], (const char *)"GL_NV_instanced_arrays") == 0) // NVIDIA GLES + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedNV"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedNV"); + glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorNV"); + } + + // The feature will only be marked as supported if the elements from GL_XXX_instanced_arrays are present + if ((glDrawArraysInstanced != NULL) && (glDrawElementsInstanced != NULL) && (glVertexAttribDivisor != NULL)) RLGL.ExtSupported.instancing = true; + } + else if (strstr(extList[i], (const char *)"draw_instanced") != NULL) + { + // GL_ANGLE_draw_instanced doesn't exist + if (strcmp(extList[i], (const char *)"GL_EXT_draw_instanced") == 0) + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedEXT"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedEXT"); + } + else if (strcmp(extList[i], (const char*)"GL_NV_draw_instanced") == 0) + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedNV"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedNV"); + } + + // But the functions will at least be loaded if only GL_XX_EXT_draw_instanced exist + if ((glDrawArraysInstanced != NULL) && (glDrawElementsInstanced != NULL) && (glVertexAttribDivisor != NULL)) RLGL.ExtSupported.instancing = true; + } + + // Check NPOT textures support + // NOTE: Only check on OpenGL ES, OpenGL 3.3 has NPOT textures full support as core feature + if (strcmp(extList[i], (const char *)"GL_OES_texture_npot") == 0) RLGL.ExtSupported.texNPOT = true; + + // Check texture float support + if (strcmp(extList[i], (const char *)"GL_OES_texture_float") == 0) RLGL.ExtSupported.texFloat32 = true; + if (strcmp(extList[i], (const char *)"GL_OES_texture_half_float") == 0) RLGL.ExtSupported.texFloat16 = true; + + // Check depth texture support + if (strcmp(extList[i], (const char *)"GL_OES_depth_texture") == 0) RLGL.ExtSupported.texDepth = true; + if (strcmp(extList[i], (const char *)"GL_WEBGL_depth_texture") == 0) RLGL.ExtSupported.texDepthWebGL = true; // WebGL requires unsized internal format + if (RLGL.ExtSupported.texDepthWebGL) RLGL.ExtSupported.texDepth = true; + + if (strcmp(extList[i], (const char *)"GL_OES_depth24") == 0) RLGL.ExtSupported.maxDepthBits = 24; // Not available on WebGL + if (strcmp(extList[i], (const char *)"GL_OES_depth32") == 0) RLGL.ExtSupported.maxDepthBits = 32; // Not available on WebGL + + // Check texture compression support: DXT + if ((strcmp(extList[i], (const char *)"GL_EXT_texture_compression_s3tc") == 0) || + (strcmp(extList[i], (const char *)"GL_WEBGL_compressed_texture_s3tc") == 0) || + (strcmp(extList[i], (const char *)"GL_WEBKIT_WEBGL_compressed_texture_s3tc") == 0)) RLGL.ExtSupported.texCompDXT = true; + + // Check texture compression support: ETC1 + if ((strcmp(extList[i], (const char *)"GL_OES_compressed_ETC1_RGB8_texture") == 0) || + (strcmp(extList[i], (const char *)"GL_WEBGL_compressed_texture_etc1") == 0)) RLGL.ExtSupported.texCompETC1 = true; + + // Check texture compression support: ETC2/EAC + if (strcmp(extList[i], (const char *)"GL_ARB_ES3_compatibility") == 0) RLGL.ExtSupported.texCompETC2 = true; + + // Check texture compression support: PVR + if (strcmp(extList[i], (const char *)"GL_IMG_texture_compression_pvrtc") == 0) RLGL.ExtSupported.texCompPVRT = true; + + // Check texture compression support: ASTC + if (strcmp(extList[i], (const char *)"GL_KHR_texture_compression_astc_hdr") == 0) RLGL.ExtSupported.texCompASTC = true; + + // Check anisotropic texture filter support + if (strcmp(extList[i], (const char *)"GL_EXT_texture_filter_anisotropic") == 0) RLGL.ExtSupported.texAnisoFilter = true; + + // Check clamp mirror wrap mode support + if (strcmp(extList[i], (const char *)"GL_EXT_texture_mirror_clamp") == 0) RLGL.ExtSupported.texMirrorClamp = true; + } + + // Free extensions pointers + RL_FREE(extList); + RL_FREE(extensionsDup); // Duplicated string must be deallocated +#endif // GRAPHICS_API_OPENGL_ES2 + + // Check OpenGL information and capabilities + //------------------------------------------------------------------------------ + // Show current OpenGL and GLSL version + TRACELOG(RL_LOG_INFO, "GL: OpenGL device information:"); + TRACELOG(RL_LOG_INFO, " > Vendor: %s", glGetString(GL_VENDOR)); + TRACELOG(RL_LOG_INFO, " > Renderer: %s", glGetString(GL_RENDERER)); + TRACELOG(RL_LOG_INFO, " > Version: %s", glGetString(GL_VERSION)); + TRACELOG(RL_LOG_INFO, " > GLSL: %s", glGetString(GL_SHADING_LANGUAGE_VERSION)); + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: Anisotropy levels capability is an extension + #ifndef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT + #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF + #endif + glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &RLGL.ExtSupported.maxAnisotropyLevel); + +#if defined(RLGL_SHOW_GL_DETAILS_INFO) + // Show some OpenGL GPU capabilities + TRACELOG(RL_LOG_INFO, "GL: OpenGL capabilities:"); + GLint capability = 0; + glGetIntegerv(GL_MAX_TEXTURE_SIZE, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_SIZE: %i", capability); + glGetIntegerv(GL_MAX_CUBE_MAP_TEXTURE_SIZE, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_CUBE_MAP_TEXTURE_SIZE: %i", capability); + glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_IMAGE_UNITS: %i", capability); + glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_VERTEX_ATTRIBS: %i", capability); + #if !defined(GRAPHICS_API_OPENGL_ES2) + glGetIntegerv(GL_MAX_UNIFORM_BLOCK_SIZE, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_UNIFORM_BLOCK_SIZE: %i", capability); + glGetIntegerv(GL_MAX_DRAW_BUFFERS, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_DRAW_BUFFERS: %i", capability); + if (RLGL.ExtSupported.texAnisoFilter) TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_MAX_ANISOTROPY: %.0f", RLGL.ExtSupported.maxAnisotropyLevel); + #endif + glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &capability); + TRACELOG(RL_LOG_INFO, " GL_NUM_COMPRESSED_TEXTURE_FORMATS: %i", capability); + GLint *compFormats = (GLint *)RL_CALLOC(capability, sizeof(GLint)); + glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS, compFormats); + for (int i = 0; i < capability; i++) TRACELOG(RL_LOG_INFO, " %s", rlGetCompressedFormatName(compFormats[i])); + RL_FREE(compFormats); + +#if defined(GRAPHICS_API_OPENGL_43) + glGetIntegerv(GL_MAX_VERTEX_ATTRIB_BINDINGS, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_VERTEX_ATTRIB_BINDINGS: %i", capability); + glGetIntegerv(GL_MAX_UNIFORM_LOCATIONS, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_UNIFORM_LOCATIONS: %i", capability); +#endif // GRAPHICS_API_OPENGL_43 +#else // RLGL_SHOW_GL_DETAILS_INFO + + // Show some basic info about GL supported features + if (RLGL.ExtSupported.vao) TRACELOG(RL_LOG_INFO, "GL: VAO extension detected, VAO functions loaded successfully"); + else TRACELOG(RL_LOG_WARNING, "GL: VAO extension not found, VAO not supported"); + if (RLGL.ExtSupported.texNPOT) TRACELOG(RL_LOG_INFO, "GL: NPOT textures extension detected, full NPOT textures supported"); + else TRACELOG(RL_LOG_WARNING, "GL: NPOT textures extension not found, limited NPOT support (no-mipmaps, no-repeat)"); + if (RLGL.ExtSupported.texCompDXT) TRACELOG(RL_LOG_INFO, "GL: DXT compressed textures supported"); + if (RLGL.ExtSupported.texCompETC1) TRACELOG(RL_LOG_INFO, "GL: ETC1 compressed textures supported"); + if (RLGL.ExtSupported.texCompETC2) TRACELOG(RL_LOG_INFO, "GL: ETC2/EAC compressed textures supported"); + if (RLGL.ExtSupported.texCompPVRT) TRACELOG(RL_LOG_INFO, "GL: PVRT compressed textures supported"); + if (RLGL.ExtSupported.texCompASTC) TRACELOG(RL_LOG_INFO, "GL: ASTC compressed textures supported"); + if (RLGL.ExtSupported.computeShader) TRACELOG(RL_LOG_INFO, "GL: Compute shaders supported"); + if (RLGL.ExtSupported.ssbo) TRACELOG(RL_LOG_INFO, "GL: Shader storage buffer objects supported"); +#endif // RLGL_SHOW_GL_DETAILS_INFO + +#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 +} + +// Get current OpenGL version +int rlGetVersion(void) +{ + int glVersion = 0; +#if defined(GRAPHICS_API_OPENGL_11) + glVersion = RL_OPENGL_11; +#endif +#if defined(GRAPHICS_API_OPENGL_21) + glVersion = RL_OPENGL_21; +#elif defined(GRAPHICS_API_OPENGL_43) + glVersion = RL_OPENGL_43; +#elif defined(GRAPHICS_API_OPENGL_33) + glVersion = RL_OPENGL_33; +#endif +#if defined(GRAPHICS_API_OPENGL_ES3) + glVersion = RL_OPENGL_ES_30; +#elif defined(GRAPHICS_API_OPENGL_ES2) + glVersion = RL_OPENGL_ES_20; +#endif + + return glVersion; +} + +// Set current framebuffer width +void rlSetFramebufferWidth(int width) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.framebufferWidth = width; +#endif +} + +// Set current framebuffer height +void rlSetFramebufferHeight(int height) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.framebufferHeight = height; +#endif +} + +// Get default framebuffer width +int rlGetFramebufferWidth(void) +{ + int width = 0; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + width = RLGL.State.framebufferWidth; +#endif + return width; +} + +// Get default framebuffer height +int rlGetFramebufferHeight(void) +{ + int height = 0; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + height = RLGL.State.framebufferHeight; +#endif + return height; +} + +// Get default internal texture (white texture) +// NOTE: Default texture is a 1x1 pixel UNCOMPRESSED_R8G8B8A8 +unsigned int rlGetTextureIdDefault(void) +{ + unsigned int id = 0; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + id = RLGL.State.defaultTextureId; +#endif + return id; +} + +// Get default shader id +unsigned int rlGetShaderIdDefault(void) +{ + unsigned int id = 0; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + id = RLGL.State.defaultShaderId; +#endif + return id; +} + +// Get default shader locs +int *rlGetShaderLocsDefault(void) +{ + int *locs = NULL; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + locs = RLGL.State.defaultShaderLocs; +#endif + return locs; +} + +// Render batch management +//------------------------------------------------------------------------------------------------ +// Load render batch +rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements) +{ + rlRenderBatch batch = { 0 }; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Initialize CPU (RAM) vertex buffers (position, texcoord, color data and indexes) + //-------------------------------------------------------------------------------------------- + batch.vertexBuffer = (rlVertexBuffer *)RL_MALLOC(numBuffers*sizeof(rlVertexBuffer)); + + for (int i = 0; i < numBuffers; i++) + { + batch.vertexBuffer[i].elementCount = bufferElements; + + batch.vertexBuffer[i].vertices = (float *)RL_MALLOC(bufferElements*3*4*sizeof(float)); // 3 float by vertex, 4 vertex by quad + batch.vertexBuffer[i].texcoords = (float *)RL_MALLOC(bufferElements*2*4*sizeof(float)); // 2 float by texcoord, 4 texcoord by quad + batch.vertexBuffer[i].normals = (float *)RL_MALLOC(bufferElements*3*4*sizeof(float)); // 3 float by vertex, 4 vertex by quad + batch.vertexBuffer[i].colors = (unsigned char *)RL_MALLOC(bufferElements*4*4*sizeof(unsigned char)); // 4 float by color, 4 colors by quad +#if defined(GRAPHICS_API_OPENGL_33) + batch.vertexBuffer[i].indices = (unsigned int *)RL_MALLOC(bufferElements*6*sizeof(unsigned int)); // 6 int by quad (indices) +#endif +#if defined(GRAPHICS_API_OPENGL_ES2) + batch.vertexBuffer[i].indices = (unsigned short *)RL_MALLOC(bufferElements*6*sizeof(unsigned short)); // 6 int by quad (indices) +#endif + + for (int j = 0; j < (3*4*bufferElements); j++) batch.vertexBuffer[i].vertices[j] = 0.0f; + for (int j = 0; j < (2*4*bufferElements); j++) batch.vertexBuffer[i].texcoords[j] = 0.0f; + for (int j = 0; j < (3*4*bufferElements); j++) batch.vertexBuffer[i].normals[j] = 0.0f; + for (int j = 0; j < (4*4*bufferElements); j++) batch.vertexBuffer[i].colors[j] = 0; + + int k = 0; + + // Indices can be initialized right now + for (int j = 0; j < (6*bufferElements); j += 6) + { + batch.vertexBuffer[i].indices[j] = 4*k; + batch.vertexBuffer[i].indices[j + 1] = 4*k + 1; + batch.vertexBuffer[i].indices[j + 2] = 4*k + 2; + batch.vertexBuffer[i].indices[j + 3] = 4*k; + batch.vertexBuffer[i].indices[j + 4] = 4*k + 2; + batch.vertexBuffer[i].indices[j + 5] = 4*k + 3; + + k++; + } + + RLGL.State.vertexCounter = 0; + } + + TRACELOG(RL_LOG_INFO, "RLGL: Render batch vertex buffers loaded successfully in RAM (CPU)"); + //-------------------------------------------------------------------------------------------- + + // Upload to GPU (VRAM) vertex data and initialize VAOs/VBOs + //-------------------------------------------------------------------------------------------- + for (int i = 0; i < numBuffers; i++) + { + if (RLGL.ExtSupported.vao) + { + // Initialize Quads VAO + glGenVertexArrays(1, &batch.vertexBuffer[i].vaoId); + glBindVertexArray(batch.vertexBuffer[i].vaoId); + } + + // Quads - Vertex buffers binding and attributes enable + // Vertex position buffer (shader-location = 0) + glGenBuffers(1, &batch.vertexBuffer[i].vboId[0]); + glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[0]); + glBufferData(GL_ARRAY_BUFFER, bufferElements*3*4*sizeof(float), batch.vertexBuffer[i].vertices, GL_DYNAMIC_DRAW); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION], 3, GL_FLOAT, 0, 0, 0); + + // Vertex texcoord buffer (shader-location = 1) + glGenBuffers(1, &batch.vertexBuffer[i].vboId[1]); + glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[1]); + glBufferData(GL_ARRAY_BUFFER, bufferElements*2*4*sizeof(float), batch.vertexBuffer[i].texcoords, GL_DYNAMIC_DRAW); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01], 2, GL_FLOAT, 0, 0, 0); + + // Vertex normal buffer (shader-location = 2) + glGenBuffers(1, &batch.vertexBuffer[i].vboId[2]); + glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[2]); + glBufferData(GL_ARRAY_BUFFER, bufferElements*3*4*sizeof(float), batch.vertexBuffer[i].normals, GL_DYNAMIC_DRAW); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL], 3, GL_FLOAT, 0, 0, 0); + + // Vertex color buffer (shader-location = 3) + glGenBuffers(1, &batch.vertexBuffer[i].vboId[3]); + glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[3]); + glBufferData(GL_ARRAY_BUFFER, bufferElements*4*4*sizeof(unsigned char), batch.vertexBuffer[i].colors, GL_DYNAMIC_DRAW); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR], 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0); + + // Fill index buffer + glGenBuffers(1, &batch.vertexBuffer[i].vboId[4]); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[4]); +#if defined(GRAPHICS_API_OPENGL_33) + glBufferData(GL_ELEMENT_ARRAY_BUFFER, bufferElements*6*sizeof(int), batch.vertexBuffer[i].indices, GL_STATIC_DRAW); +#endif +#if defined(GRAPHICS_API_OPENGL_ES2) + glBufferData(GL_ELEMENT_ARRAY_BUFFER, bufferElements*6*sizeof(short), batch.vertexBuffer[i].indices, GL_STATIC_DRAW); +#endif + } + + TRACELOG(RL_LOG_INFO, "RLGL: Render batch vertex buffers loaded successfully in VRAM (GPU)"); + + // Unbind the current VAO + if (RLGL.ExtSupported.vao) glBindVertexArray(0); + //-------------------------------------------------------------------------------------------- + + // Init draw calls tracking system + //-------------------------------------------------------------------------------------------- + batch.draws = (rlDrawCall *)RL_MALLOC(RL_DEFAULT_BATCH_DRAWCALLS*sizeof(rlDrawCall)); + + for (int i = 0; i < RL_DEFAULT_BATCH_DRAWCALLS; i++) + { + batch.draws[i].mode = RL_QUADS; + batch.draws[i].vertexCount = 0; + batch.draws[i].vertexAlignment = 0; + //batch.draws[i].vaoId = 0; + //batch.draws[i].shaderId = 0; + batch.draws[i].textureId = RLGL.State.defaultTextureId; + //batch.draws[i].RLGL.State.projection = rlMatrixIdentity(); + //batch.draws[i].RLGL.State.modelview = rlMatrixIdentity(); + } + + batch.bufferCount = numBuffers; // Record buffer count + batch.drawCounter = 1; // Reset draws counter + batch.currentDepth = -1.0f; // Reset depth value + //-------------------------------------------------------------------------------------------- +#endif + + return batch; +} + +// Unload default internal buffers vertex data from CPU and GPU +void rlUnloadRenderBatch(rlRenderBatch batch) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Unbind everything + glBindBuffer(GL_ARRAY_BUFFER, 0); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); + + // Unload all vertex buffers data + for (int i = 0; i < batch.bufferCount; i++) + { + // Unbind VAO attribs data + if (RLGL.ExtSupported.vao) + { + glBindVertexArray(batch.vertexBuffer[i].vaoId); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR); + glBindVertexArray(0); + } + + // Delete VBOs from GPU (VRAM) + glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[0]); + glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[1]); + glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[2]); + glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[3]); + glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[4]); + + // Delete VAOs from GPU (VRAM) + if (RLGL.ExtSupported.vao) glDeleteVertexArrays(1, &batch.vertexBuffer[i].vaoId); + + // Free vertex arrays memory from CPU (RAM) + RL_FREE(batch.vertexBuffer[i].vertices); + RL_FREE(batch.vertexBuffer[i].texcoords); + RL_FREE(batch.vertexBuffer[i].normals); + RL_FREE(batch.vertexBuffer[i].colors); + RL_FREE(batch.vertexBuffer[i].indices); + } + + // Unload arrays + RL_FREE(batch.vertexBuffer); + RL_FREE(batch.draws); +#endif +} + +// Draw render batch +// NOTE: We require a pointer to reset batch and increase current buffer (multi-buffer) +void rlDrawRenderBatch(rlRenderBatch *batch) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Update batch vertex buffers + //------------------------------------------------------------------------------------------------------------ + // NOTE: If there is not vertex data, buffers doesn't need to be updated (vertexCount > 0) + // TODO: If no data changed on the CPU arrays --> No need to re-update GPU arrays (use a change detector flag?) + if (RLGL.State.vertexCounter > 0) + { + // Activate elements VAO + if (RLGL.ExtSupported.vao) glBindVertexArray(batch->vertexBuffer[batch->currentBuffer].vaoId); + + // Vertex positions buffer + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[0]); + glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*3*sizeof(float), batch->vertexBuffer[batch->currentBuffer].vertices); + //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].vertices, GL_DYNAMIC_DRAW); // Update all buffer + + // Texture coordinates buffer + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[1]); + glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*2*sizeof(float), batch->vertexBuffer[batch->currentBuffer].texcoords); + //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*2*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].texcoords, GL_DYNAMIC_DRAW); // Update all buffer + + // Normals buffer + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[2]); + glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*3*sizeof(float), batch->vertexBuffer[batch->currentBuffer].normals); + //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].normals, GL_DYNAMIC_DRAW); // Update all buffer + + // Colors buffer + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[3]); + glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*4*sizeof(unsigned char), batch->vertexBuffer[batch->currentBuffer].colors); + //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*4*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].colors, GL_DYNAMIC_DRAW); // Update all buffer + + // NOTE: glMapBuffer() causes sync issue + // If GPU is working with this buffer, glMapBuffer() will wait(stall) until GPU to finish its job + // To avoid waiting (idle), you can call first glBufferData() with NULL pointer before glMapBuffer() + // If you do that, the previous data in PBO will be discarded and glMapBuffer() returns a new + // allocated pointer immediately even if GPU is still working with the previous data + + // Another option: map the buffer object into client's memory + // Probably this code could be moved somewhere else... + // batch->vertexBuffer[batch->currentBuffer].vertices = (float *)glMapBuffer(GL_ARRAY_BUFFER, GL_READ_WRITE); + // if (batch->vertexBuffer[batch->currentBuffer].vertices) + // { + // Update vertex data + // } + // glUnmapBuffer(GL_ARRAY_BUFFER); + + // Unbind the current VAO + if (RLGL.ExtSupported.vao) glBindVertexArray(0); + } + //------------------------------------------------------------------------------------------------------------ + + // Draw batch vertex buffers (considering VR stereo if required) + //------------------------------------------------------------------------------------------------------------ + Matrix matProjection = RLGL.State.projection; + Matrix matModelView = RLGL.State.modelview; + + int eyeCount = 1; + if (RLGL.State.stereoRender) eyeCount = 2; + + for (int eye = 0; eye < eyeCount; eye++) + { + if (eyeCount == 2) + { + // Setup current eye viewport (half screen width) + rlViewport(eye*RLGL.State.framebufferWidth/2, 0, RLGL.State.framebufferWidth/2, RLGL.State.framebufferHeight); + + // Set current eye view offset to modelview matrix + rlSetMatrixModelview(rlMatrixMultiply(matModelView, RLGL.State.viewOffsetStereo[eye])); + // Set current eye projection matrix + rlSetMatrixProjection(RLGL.State.projectionStereo[eye]); + } + + // Draw buffers + if (RLGL.State.vertexCounter > 0) + { + // Set current shader and upload current MVP matrix + glUseProgram(RLGL.State.currentShaderId); + + // Create modelview-projection matrix and upload to shader + Matrix matMVP = rlMatrixMultiply(RLGL.State.modelview, RLGL.State.projection); + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MVP], 1, false, rlMatrixToFloat(matMVP)); + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_PROJECTION] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_PROJECTION], 1, false, rlMatrixToFloat(RLGL.State.projection)); + } + + // WARNING: For the following setup of the view, model, and normal matrices, it is expected that + // transformations and rendering occur between rlPushMatrix() and rlPopMatrix() + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_VIEW] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_VIEW], 1, false, rlMatrixToFloat(RLGL.State.modelview)); + } + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MODEL] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MODEL], 1, false, rlMatrixToFloat(RLGL.State.transform)); + } + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_NORMAL] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_NORMAL], 1, false, rlMatrixToFloat(rlMatrixTranspose(rlMatrixInvert(RLGL.State.transform)))); + } + + if (RLGL.ExtSupported.vao) glBindVertexArray(batch->vertexBuffer[batch->currentBuffer].vaoId); + else + { + // Bind vertex attrib: position (shader-location = 0) + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[0]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION], 3, GL_FLOAT, 0, 0, 0); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION]); + + // Bind vertex attrib: texcoord (shader-location = 1) + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[1]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01], 2, GL_FLOAT, 0, 0, 0); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01]); + + // Bind vertex attrib: normal (shader-location = 2) + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[2]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL], 3, GL_FLOAT, 0, 0, 0); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL]); + + // Bind vertex attrib: color (shader-location = 3) + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[3]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR], 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR]); + + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[4]); + } + + // Setup some default shader values + glUniform4f(RLGL.State.currentShaderLocs[RL_SHADER_LOC_COLOR_DIFFUSE], 1.0f, 1.0f, 1.0f, 1.0f); + glUniform1i(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MAP_DIFFUSE], 0); // Active default sampler2D: texture0 + + // Activate additional sampler textures + // Those additional textures will be common for all draw calls of the batch + for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) + { + if (RLGL.State.activeTextureId[i] > 0) + { + glActiveTexture(GL_TEXTURE0 + 1 + i); + glBindTexture(GL_TEXTURE_2D, RLGL.State.activeTextureId[i]); + } + } + + // Activate default sampler2D texture0 (one texture is always active for default batch shader) + // NOTE: Batch system accumulates calls by texture0 changes, additional textures are enabled for all the draw calls + glActiveTexture(GL_TEXTURE0); + + for (int i = 0, vertexOffset = 0; i < batch->drawCounter; i++) + { + // Bind current draw call texture, activated as GL_TEXTURE0 and Bound to sampler2D texture0 by default + glBindTexture(GL_TEXTURE_2D, batch->draws[i].textureId); + + if ((batch->draws[i].mode == RL_LINES) || (batch->draws[i].mode == RL_TRIANGLES)) glDrawArrays(batch->draws[i].mode, vertexOffset, batch->draws[i].vertexCount); + else + { + #if defined(GRAPHICS_API_OPENGL_33) + // We need to define the number of indices to be processed: elementCount*6 + // NOTE: The final parameter tells the GPU the offset in bytes from the + // start of the index buffer to the location of the first index to process + glDrawElements(GL_TRIANGLES, batch->draws[i].vertexCount/4*6, GL_UNSIGNED_INT, (GLvoid *)(vertexOffset/4*6*sizeof(GLuint))); + #endif + #if defined(GRAPHICS_API_OPENGL_ES2) + glDrawElements(GL_TRIANGLES, batch->draws[i].vertexCount/4*6, GL_UNSIGNED_SHORT, (GLvoid *)(vertexOffset/4*6*sizeof(GLushort))); + #endif + } + + vertexOffset += (batch->draws[i].vertexCount + batch->draws[i].vertexAlignment); + } + + if (!RLGL.ExtSupported.vao) + { + glBindBuffer(GL_ARRAY_BUFFER, 0); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); + } + + glBindTexture(GL_TEXTURE_2D, 0); // Unbind textures + } + + if (RLGL.ExtSupported.vao) glBindVertexArray(0); // Unbind VAO + + glUseProgram(0); // Unbind shader program + } + + // Restore viewport to default measures + if (eyeCount == 2) rlViewport(0, 0, RLGL.State.framebufferWidth, RLGL.State.framebufferHeight); + //------------------------------------------------------------------------------------------------------------ + + // Reset batch buffers + //------------------------------------------------------------------------------------------------------------ + // Reset vertex counter for next frame + RLGL.State.vertexCounter = 0; + + // Reset depth for next draw + batch->currentDepth = -1.0f; + + // Restore projection/modelview matrices + RLGL.State.projection = matProjection; + RLGL.State.modelview = matModelView; + + // Reset RLGL.currentBatch->draws array + for (int i = 0; i < RL_DEFAULT_BATCH_DRAWCALLS; i++) + { + batch->draws[i].mode = RL_QUADS; + batch->draws[i].vertexCount = 0; + batch->draws[i].textureId = RLGL.State.defaultTextureId; + } + + // Reset active texture units for next batch + for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) RLGL.State.activeTextureId[i] = 0; + + // Reset draws counter to one draw for the batch + batch->drawCounter = 1; + //------------------------------------------------------------------------------------------------------------ + + // Change to next buffer in the list (in case of multi-buffering) + batch->currentBuffer++; + if (batch->currentBuffer >= batch->bufferCount) batch->currentBuffer = 0; +#endif +} + +// Set the active render batch for rlgl +void rlSetRenderBatchActive(rlRenderBatch *batch) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + rlDrawRenderBatch(RLGL.currentBatch); + + if (batch != NULL) RLGL.currentBatch = batch; + else RLGL.currentBatch = &RLGL.defaultBatch; +#endif +} + +// Update and draw internal render batch +void rlDrawRenderBatchActive(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + rlDrawRenderBatch(RLGL.currentBatch); // NOTE: Stereo rendering is checked inside +#endif +} + +// Check internal buffer overflow for a given number of vertex +// and force a rlRenderBatch draw call if required +bool rlCheckRenderBatchLimit(int vCount) +{ + bool overflow = false; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if ((RLGL.State.vertexCounter + vCount) >= + (RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4)) + { + overflow = true; + + // Store current primitive drawing mode and texture id + int currentMode = RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode; + int currentTexture = RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId; + + rlDrawRenderBatch(RLGL.currentBatch); // NOTE: Stereo rendering is checked inside + + // Restore state of last batch so we can continue adding vertices + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode = currentMode; + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = currentTexture; + } +#endif + + return overflow; +} + +// Textures data management +//----------------------------------------------------------------------------------------- +// Convert image data to OpenGL texture (returns OpenGL valid Id) +unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipmapCount) +{ + unsigned int id = 0; + + glBindTexture(GL_TEXTURE_2D, 0); // Free any old binding + + // Check texture format support by OpenGL 1.1 (compressed textures not supported) +#if defined(GRAPHICS_API_OPENGL_11) + if (format >= RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) + { + TRACELOG(RL_LOG_WARNING, "GL: OpenGL 1.1 does not support GPU compressed texture formats"); + return id; + } +#else + if ((!RLGL.ExtSupported.texCompDXT) && ((format == RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA) || + (format == RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA) || (format == RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA))) + { + TRACELOG(RL_LOG_WARNING, "GL: DXT compressed texture format not supported"); + return id; + } +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if ((!RLGL.ExtSupported.texCompETC1) && (format == RL_PIXELFORMAT_COMPRESSED_ETC1_RGB)) + { + TRACELOG(RL_LOG_WARNING, "GL: ETC1 compressed texture format not supported"); + return id; + } + + if ((!RLGL.ExtSupported.texCompETC2) && ((format == RL_PIXELFORMAT_COMPRESSED_ETC2_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA))) + { + TRACELOG(RL_LOG_WARNING, "GL: ETC2 compressed texture format not supported"); + return id; + } + + if ((!RLGL.ExtSupported.texCompPVRT) && ((format == RL_PIXELFORMAT_COMPRESSED_PVRT_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA))) + { + TRACELOG(RL_LOG_WARNING, "GL: PVRT compressed texture format not supported"); + return id; + } + + if ((!RLGL.ExtSupported.texCompASTC) && ((format == RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA) || (format == RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA))) + { + TRACELOG(RL_LOG_WARNING, "GL: ASTC compressed texture format not supported"); + return id; + } +#endif +#endif // GRAPHICS_API_OPENGL_11 + + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + + glGenTextures(1, &id); // Generate texture id + + glBindTexture(GL_TEXTURE_2D, id); + + int mipWidth = width; + int mipHeight = height; + int mipOffset = 0; // Mipmap data offset, only used for tracelog + + // NOTE: Added pointer math separately from function to avoid UBSAN complaining + unsigned char *dataPtr = NULL; + if (data != NULL) dataPtr = (unsigned char *)data; + + // Load the different mipmap levels + for (int i = 0; i < mipmapCount; i++) + { + unsigned int mipSize = rlGetPixelDataSize(mipWidth, mipHeight, format); + + unsigned int glInternalFormat, glFormat, glType; + rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); + + TRACELOGD("TEXTURE: Load mipmap level %i (%i x %i), size: %i, offset: %i", i, mipWidth, mipHeight, mipSize, mipOffset); + + if (glInternalFormat != 0) + { + if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) glTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, glFormat, glType, dataPtr); +#if !defined(GRAPHICS_API_OPENGL_11) + else glCompressedTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, mipSize, dataPtr); +#endif + +#if defined(GRAPHICS_API_OPENGL_33) + if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) + { + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ONE }; + glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); + } + else if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA) + { +#if defined(GRAPHICS_API_OPENGL_21) + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ALPHA }; +#elif defined(GRAPHICS_API_OPENGL_33) + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_GREEN }; +#endif + glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); + } +#endif + } + + mipWidth /= 2; + mipHeight /= 2; + mipOffset += mipSize; // Increment offset position to next mipmap + if (data != NULL) dataPtr += mipSize; // Increment data pointer to next mipmap + + // Security check for NPOT textures + if (mipWidth < 1) mipWidth = 1; + if (mipHeight < 1) mipHeight = 1; + } + + // Texture parameters configuration + // NOTE: glTexParameteri does NOT affect texture uploading, just the way it's used +#if defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: OpenGL ES 2.0 with no GL_OES_texture_npot support (i.e. WebGL) has limited NPOT support, so CLAMP_TO_EDGE must be used + if (RLGL.ExtSupported.texNPOT) + { + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); // Set texture to repeat on x-axis + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); // Set texture to repeat on y-axis + } + else + { + // NOTE: If using negative texture coordinates (LoadOBJ()), it does not work! + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); // Set texture to clamp on x-axis + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); // Set texture to clamp on y-axis + } +#else + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); // Set texture to repeat on x-axis + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); // Set texture to repeat on y-axis +#endif + + // Magnification and minification filters + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); // Alternative: GL_LINEAR + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); // Alternative: GL_LINEAR + +#if defined(GRAPHICS_API_OPENGL_33) + if (mipmapCount > 1) + { + // Activate Trilinear filtering if mipmaps are available + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); + } +#endif + + // At this point we have the texture loaded in GPU and texture parameters configured + + // NOTE: If mipmaps were not in data, they are not generated automatically + + // Unbind current texture + glBindTexture(GL_TEXTURE_2D, 0); + + if (id > 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Texture loaded successfully (%ix%i | %s | %i mipmaps)", id, width, height, rlGetPixelFormatName(format), mipmapCount); + else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load texture"); + + return id; +} + +// Load depth texture/renderbuffer (to be attached to fbo) +// WARNING: OpenGL ES 2.0 requires GL_OES_depth_texture and WebGL requires WEBGL_depth_texture extensions +unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer) +{ + unsigned int id = 0; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // In case depth textures not supported, we force renderbuffer usage + if (!RLGL.ExtSupported.texDepth) useRenderBuffer = true; + + // NOTE: We let the implementation to choose the best bit-depth + // Possible formats: GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32 and GL_DEPTH_COMPONENT32F + unsigned int glInternalFormat = GL_DEPTH_COMPONENT; + +#if (defined(GRAPHICS_API_OPENGL_ES2) || defined(GRAPHICS_API_OPENGL_ES3)) + // WARNING: WebGL platform requires unsized internal format definition (GL_DEPTH_COMPONENT) + // while other platforms using OpenGL ES 2.0 require/support sized internal formats depending on the GPU capabilities + if (!RLGL.ExtSupported.texDepthWebGL || useRenderBuffer) + { + if (RLGL.ExtSupported.maxDepthBits == 32) glInternalFormat = GL_DEPTH_COMPONENT32_OES; + else if (RLGL.ExtSupported.maxDepthBits == 24) glInternalFormat = GL_DEPTH_COMPONENT24_OES; + else glInternalFormat = GL_DEPTH_COMPONENT16; + } +#endif + + if (!useRenderBuffer && RLGL.ExtSupported.texDepth) + { + glGenTextures(1, &id); + glBindTexture(GL_TEXTURE_2D, id); + glTexImage2D(GL_TEXTURE_2D, 0, glInternalFormat, width, height, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, NULL); + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + + glBindTexture(GL_TEXTURE_2D, 0); + + TRACELOG(RL_LOG_INFO, "TEXTURE: Depth texture loaded successfully"); + } + else + { + // Create the renderbuffer that will serve as the depth attachment for the framebuffer + // NOTE: A renderbuffer is simpler than a texture and could offer better performance on embedded devices + glGenRenderbuffers(1, &id); + glBindRenderbuffer(GL_RENDERBUFFER, id); + glRenderbufferStorage(GL_RENDERBUFFER, glInternalFormat, width, height); + + glBindRenderbuffer(GL_RENDERBUFFER, 0); + + TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Depth renderbuffer loaded successfully (%i bits)", id, (RLGL.ExtSupported.maxDepthBits >= 24)? RLGL.ExtSupported.maxDepthBits : 16); + } +#endif + + return id; +} + +// Load texture cubemap +// NOTE: Cubemap data is expected to be 6 images in a single data array (one after the other), +// expected the following convention: +X, -X, +Y, -Y, +Z, -Z +unsigned int rlLoadTextureCubemap(const void *data, int size, int format, int mipmapCount) +{ + unsigned int id = 0; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + int mipSize = size; + + // NOTE: Added pointer math separately from function to avoid UBSAN complaining + unsigned char *dataPtr = NULL; + if (data != NULL) dataPtr = (unsigned char *)data; + + unsigned int dataSize = rlGetPixelDataSize(size, size, format); + + glGenTextures(1, &id); + glBindTexture(GL_TEXTURE_CUBE_MAP, id); + + unsigned int glInternalFormat, glFormat, glType; + rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); + + if (glInternalFormat != 0) + { + // Load cubemap faces/mipmaps + for (int i = 0; i < 6*mipmapCount; i++) + { + int mipmapLevel = i/6; + int face = i%6; + + if (data == NULL) + { + if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) + { + if ((format == RL_PIXELFORMAT_UNCOMPRESSED_R32) || + (format == RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32) || + (format == RL_PIXELFORMAT_UNCOMPRESSED_R16) || + (format == RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16)) TRACELOG(RL_LOG_WARNING, "TEXTURES: Cubemap requested format not supported"); + else glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, glFormat, glType, NULL); + } + else TRACELOG(RL_LOG_WARNING, "TEXTURES: Empty cubemap creation does not support compressed format"); + } + else + { + if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, glFormat, glType, (unsigned char *)dataPtr + face*dataSize); + else glCompressedTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, dataSize, (unsigned char *)dataPtr + face*dataSize); + } + +#if defined(GRAPHICS_API_OPENGL_33) + if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) + { + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ONE }; + glTexParameteriv(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); + } + else if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA) + { +#if defined(GRAPHICS_API_OPENGL_21) + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ALPHA }; +#elif defined(GRAPHICS_API_OPENGL_33) + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_GREEN }; +#endif + glTexParameteriv(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); + } +#endif + if (face == 5) + { + mipSize /= 2; + if (data != NULL) dataPtr += dataSize*6; // Increment data pointer to next mipmap + + // Security check for NPOT textures + if (mipSize < 1) mipSize = 1; + + dataSize = rlGetPixelDataSize(mipSize, mipSize, format); + } + } + } + + // Set cubemap texture sampling parameters + if (mipmapCount > 1) glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); + else glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + + glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); +#if defined(GRAPHICS_API_OPENGL_33) + glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE); // Flag not supported on OpenGL ES 2.0 +#endif + + glBindTexture(GL_TEXTURE_CUBE_MAP, 0); +#endif + + if (id > 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Cubemap texture loaded successfully (%ix%i)", id, size, size); + else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load cubemap texture"); + + return id; +} + +// Update already loaded texture in GPU with new data +// NOTE: We don't know safely if internal texture format is the expected one... +void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data) +{ + glBindTexture(GL_TEXTURE_2D, id); + + unsigned int glInternalFormat, glFormat, glType; + rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); + + if ((glInternalFormat != 0) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)) + { + glTexSubImage2D(GL_TEXTURE_2D, 0, offsetX, offsetY, width, height, glFormat, glType, data); + } + else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Failed to update for current texture format (%i)", id, format); +} + +// Get OpenGL internal formats and data type from raylib PixelFormat +void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType) +{ + *glInternalFormat = 0; + *glFormat = 0; + *glType = 0; + + switch (format) + { + #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_21) || defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: on OpenGL ES 2.0 (WebGL), internalFormat must match format and options allowed are: GL_LUMINANCE, GL_RGB, GL_RGBA + case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: *glInternalFormat = GL_LUMINANCE_ALPHA; *glFormat = GL_LUMINANCE_ALPHA; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_UNSIGNED_SHORT_5_6_5; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_5_5_5_1; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_4_4_4_4; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_BYTE; break; + #if !defined(GRAPHICS_API_OPENGL_11) + #if defined(GRAPHICS_API_OPENGL_ES3) + case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_R32F_EXT; *glFormat = GL_RED_EXT; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB32F_EXT; *glFormat = GL_RGB; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA32F_EXT; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_R16F_EXT; *glFormat = GL_RED_EXT; *glType = GL_HALF_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB16F_EXT; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA16F_EXT; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT; break; + #else + case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float + #if defined(GRAPHICS_API_OPENGL_21) + case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_HALF_FLOAT_ARB; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT_ARB; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT_ARB; break; + #else // defined(GRAPHICS_API_OPENGL_ES2) + case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float + #endif + #endif + #endif + #elif defined(GRAPHICS_API_OPENGL_33) + case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: *glInternalFormat = GL_R8; *glFormat = GL_RED; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: *glInternalFormat = GL_RG8; *glFormat = GL_RG; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: *glInternalFormat = GL_RGB565; *glFormat = GL_RGB; *glType = GL_UNSIGNED_SHORT_5_6_5; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: *glInternalFormat = GL_RGB8; *glFormat = GL_RGB; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: *glInternalFormat = GL_RGB5_A1; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_5_5_5_1; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: *glInternalFormat = GL_RGBA4; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_4_4_4_4; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: *glInternalFormat = GL_RGBA8; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_R32F; *glFormat = GL_RED; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB32F; *glFormat = GL_RGB; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA32F; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_R16F; *glFormat = GL_RED; *glType = GL_HALF_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB16F; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA16F; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT; break; + #endif + #if !defined(GRAPHICS_API_OPENGL_11) + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGB_S3TC_DXT1_EXT; break; + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT; break; + case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT; break; + case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT; break; + case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: if (RLGL.ExtSupported.texCompETC1) *glInternalFormat = GL_ETC1_RGB8_OES; break; // NOTE: Requires OpenGL ES 2.0 or OpenGL 4.3 + case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: if (RLGL.ExtSupported.texCompETC2) *glInternalFormat = GL_COMPRESSED_RGB8_ETC2; break; // NOTE: Requires OpenGL ES 3.0 or OpenGL 4.3 + case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: if (RLGL.ExtSupported.texCompETC2) *glInternalFormat = GL_COMPRESSED_RGBA8_ETC2_EAC; break; // NOTE: Requires OpenGL ES 3.0 or OpenGL 4.3 + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: if (RLGL.ExtSupported.texCompPVRT) *glInternalFormat = GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG; break; // NOTE: Requires PowerVR GPU + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: if (RLGL.ExtSupported.texCompPVRT) *glInternalFormat = GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; break; // NOTE: Requires PowerVR GPU + case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: if (RLGL.ExtSupported.texCompASTC) *glInternalFormat = GL_COMPRESSED_RGBA_ASTC_4x4_KHR; break; // NOTE: Requires OpenGL ES 3.1 or OpenGL 4.3 + case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: if (RLGL.ExtSupported.texCompASTC) *glInternalFormat = GL_COMPRESSED_RGBA_ASTC_8x8_KHR; break; // NOTE: Requires OpenGL ES 3.1 or OpenGL 4.3 + #endif + default: TRACELOG(RL_LOG_WARNING, "TEXTURE: Current format not supported (%i)", format); break; + } +} + +// Unload texture from GPU memory +void rlUnloadTexture(unsigned int id) +{ + glDeleteTextures(1, &id); +} + +// Generate mipmap data for selected texture +// NOTE: Only supports GPU mipmap generation +void rlGenTextureMipmaps(unsigned int id, int width, int height, int format, int *mipmaps) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindTexture(GL_TEXTURE_2D, id); + + // Check if texture is power-of-two (POT) + bool texIsPOT = false; + + if (((width > 0) && ((width & (width - 1)) == 0)) && + ((height > 0) && ((height & (height - 1)) == 0))) texIsPOT = true; + + if ((texIsPOT) || (RLGL.ExtSupported.texNPOT)) + { + //glHint(GL_GENERATE_MIPMAP_HINT, GL_DONT_CARE); // Hint for mipmaps generation algorithm: GL_FASTEST, GL_NICEST, GL_DONT_CARE + glGenerateMipmap(GL_TEXTURE_2D); // Generate mipmaps automatically + + #define MIN(a,b) (((a)<(b))? (a):(b)) + #define MAX(a,b) (((a)>(b))? (a):(b)) + + *mipmaps = 1 + (int)floor(log(MAX(width, height))/log(2)); + TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Mipmaps generated automatically, total: %i", id, *mipmaps); + } + else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Failed to generate mipmaps", id); + + glBindTexture(GL_TEXTURE_2D, 0); +#else + TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] GPU mipmap generation not supported", id); +#endif +} + +// Read texture pixel data +void *rlReadTexturePixels(unsigned int id, int width, int height, int format) +{ + void *pixels = NULL; + +#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + glBindTexture(GL_TEXTURE_2D, id); + + // NOTE: Using texture id, we can retrieve some texture info (but not on OpenGL ES 2.0) + // Possible texture info: GL_TEXTURE_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE + //int width, height, format; + //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &width); + //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &height); + //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_INTERNAL_FORMAT, &format); + + // NOTE: Each row written to or read from by OpenGL pixel operations like glGetTexImage are aligned to a 4 byte boundary by default, which may add some padding + // Use glPixelStorei to modify padding with the GL_[UN]PACK_ALIGNMENT setting + // GL_PACK_ALIGNMENT affects operations that read from OpenGL memory (glReadPixels, glGetTexImage, etc.) + // GL_UNPACK_ALIGNMENT affects operations that write to OpenGL memory (glTexImage, etc.) + glPixelStorei(GL_PACK_ALIGNMENT, 1); + + unsigned int glInternalFormat, glFormat, glType; + rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); + unsigned int size = rlGetPixelDataSize(width, height, format); + + if ((glInternalFormat != 0) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)) + { + pixels = RL_MALLOC(size); + glGetTexImage(GL_TEXTURE_2D, 0, glFormat, glType, pixels); + } + else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Data retrieval not suported for pixel format (%i)", id, format); + + glBindTexture(GL_TEXTURE_2D, 0); +#endif + +#if defined(GRAPHICS_API_OPENGL_ES2) + // glGetTexImage() is not available on OpenGL ES 2.0 + // Texture width and height are required on OpenGL ES 2.0, there is no way to get it from texture id + // Two possible Options: + // 1 - Bind texture to color fbo attachment and glReadPixels() + // 2 - Create an fbo, activate it, render quad with texture, glReadPixels() + // We are using Option 1, just need to care for texture format on retrieval + // NOTE: This behaviour could be conditioned by graphic driver... + unsigned int fboId = rlLoadFramebuffer(); + + glBindFramebuffer(GL_FRAMEBUFFER, fboId); + glBindTexture(GL_TEXTURE_2D, 0); + + // Attach our texture to FBO + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, id, 0); + + // We read data as RGBA because FBO texture is configured as RGBA, despite binding another texture format + pixels = (unsigned char *)RL_MALLOC(rlGetPixelDataSize(width, height, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8)); + glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, pixels); + + glBindFramebuffer(GL_FRAMEBUFFER, 0); + + // Clean up temporal fbo + rlUnloadFramebuffer(fboId); +#endif + + return pixels; +} + +// Read screen pixel data (color buffer) +unsigned char *rlReadScreenPixels(int width, int height) +{ + unsigned char *screenData = (unsigned char *)RL_CALLOC(width*height*4, sizeof(unsigned char)); + + // NOTE 1: glReadPixels returns image flipped vertically -> (0,0) is the bottom left corner of the framebuffer + // NOTE 2: We are getting alpha channel! Be careful, it can be transparent if not cleared properly! + glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, screenData); + + // Flip image vertically! + unsigned char *imgData = (unsigned char *)RL_MALLOC(width*height*4*sizeof(unsigned char)); + + for (int y = height - 1; y >= 0; y--) + { + for (int x = 0; x < (width*4); x++) + { + imgData[((height - 1) - y)*width*4 + x] = screenData[(y*width*4) + x]; // Flip line + + // Set alpha component value to 255 (no trasparent image retrieval) + // NOTE: Alpha value has already been applied to RGB in framebuffer, we don't need it! + if (((x + 1)%4) == 0) imgData[((height - 1) - y)*width*4 + x] = 255; + } + } + + RL_FREE(screenData); + + return imgData; // NOTE: image data should be freed +} + +// Framebuffer management (fbo) +//----------------------------------------------------------------------------------------- +// Load a framebuffer to be used for rendering +// NOTE: No textures attached +unsigned int rlLoadFramebuffer(void) +{ + unsigned int fboId = 0; + +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) + glGenFramebuffers(1, &fboId); // Create the framebuffer object + glBindFramebuffer(GL_FRAMEBUFFER, 0); // Unbind any framebuffer +#endif + + return fboId; +} + +// Attach color buffer texture to an fbo (unloads previous attachment) +// NOTE: Attach type: 0-Color, 1-Depth renderbuffer, 2-Depth texture +void rlFramebufferAttach(unsigned int fboId, unsigned int texId, int attachType, int texType, int mipLevel) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) + glBindFramebuffer(GL_FRAMEBUFFER, fboId); + + switch (attachType) + { + case RL_ATTACHMENT_COLOR_CHANNEL0: + case RL_ATTACHMENT_COLOR_CHANNEL1: + case RL_ATTACHMENT_COLOR_CHANNEL2: + case RL_ATTACHMENT_COLOR_CHANNEL3: + case RL_ATTACHMENT_COLOR_CHANNEL4: + case RL_ATTACHMENT_COLOR_CHANNEL5: + case RL_ATTACHMENT_COLOR_CHANNEL6: + case RL_ATTACHMENT_COLOR_CHANNEL7: + { + if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_TEXTURE_2D, texId, mipLevel); + else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_RENDERBUFFER, texId); + else if (texType >= RL_ATTACHMENT_CUBEMAP_POSITIVE_X) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_TEXTURE_CUBE_MAP_POSITIVE_X + texType, texId, mipLevel); + + } break; + case RL_ATTACHMENT_DEPTH: + { + if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, texId, mipLevel); + else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, texId); + + } break; + case RL_ATTACHMENT_STENCIL: + { + if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D, texId, mipLevel); + else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, texId); + + } break; + default: break; + } + + glBindFramebuffer(GL_FRAMEBUFFER, 0); +#endif +} + +// Verify render texture is complete +bool rlFramebufferComplete(unsigned int id) +{ + bool result = false; + +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) + glBindFramebuffer(GL_FRAMEBUFFER, id); + + GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); + + if (status != GL_FRAMEBUFFER_COMPLETE) + { + switch (status) + { + case GL_FRAMEBUFFER_UNSUPPORTED: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer is unsupported", id); break; + case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has incomplete attachment", id); break; +#if defined(GRAPHICS_API_OPENGL_ES2) + case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has incomplete dimensions", id); break; +#endif + case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has a missing attachment", id); break; + default: break; + } + } + + glBindFramebuffer(GL_FRAMEBUFFER, 0); + + result = (status == GL_FRAMEBUFFER_COMPLETE); +#endif + + return result; +} + +// Unload framebuffer from GPU memory +// NOTE: All attached textures/cubemaps/renderbuffers are also deleted +void rlUnloadFramebuffer(unsigned int id) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) + // Query depth attachment to automatically delete texture/renderbuffer + int depthType = 0, depthId = 0; + glBindFramebuffer(GL_FRAMEBUFFER, id); // Bind framebuffer to query depth texture type + glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &depthType); + + // TODO: Review warning retrieving object name in WebGL + // WARNING: WebGL: INVALID_ENUM: getFramebufferAttachmentParameter: invalid parameter name + // https://registry.khronos.org/webgl/specs/latest/1.0/ + glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, &depthId); + + unsigned int depthIdU = (unsigned int)depthId; + if (depthType == GL_RENDERBUFFER) glDeleteRenderbuffers(1, &depthIdU); + else if (depthType == GL_TEXTURE) glDeleteTextures(1, &depthIdU); + + // NOTE: If a texture object is deleted while its image is attached to the *currently bound* framebuffer, + // the texture image is automatically detached from the currently bound framebuffer + + glBindFramebuffer(GL_FRAMEBUFFER, 0); + glDeleteFramebuffers(1, &id); + + TRACELOG(RL_LOG_INFO, "FBO: [ID %i] Unloaded framebuffer from VRAM (GPU)", id); +#endif +} + +// Vertex data management +//----------------------------------------------------------------------------------------- +// Load a new attributes buffer +unsigned int rlLoadVertexBuffer(const void *buffer, int size, bool dynamic) +{ + unsigned int id = 0; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glGenBuffers(1, &id); + glBindBuffer(GL_ARRAY_BUFFER, id); + glBufferData(GL_ARRAY_BUFFER, size, buffer, dynamic? GL_DYNAMIC_DRAW : GL_STATIC_DRAW); +#endif + + return id; +} + +// Load a new attributes element buffer +unsigned int rlLoadVertexBufferElement(const void *buffer, int size, bool dynamic) +{ + unsigned int id = 0; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glGenBuffers(1, &id); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, size, buffer, dynamic? GL_DYNAMIC_DRAW : GL_STATIC_DRAW); +#endif + + return id; +} + +// Enable vertex buffer (VBO) +void rlEnableVertexBuffer(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ARRAY_BUFFER, id); +#endif +} + +// Disable vertex buffer (VBO) +void rlDisableVertexBuffer(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ARRAY_BUFFER, 0); +#endif +} + +// Enable vertex buffer element (VBO element) +void rlEnableVertexBufferElement(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); +#endif +} + +// Disable vertex buffer element (VBO element) +void rlDisableVertexBufferElement(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); +#endif +} + +// Update vertex buffer with new data +// NOTE: dataSize and offset must be provided in bytes +void rlUpdateVertexBuffer(unsigned int id, const void *data, int dataSize, int offset) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ARRAY_BUFFER, id); + glBufferSubData(GL_ARRAY_BUFFER, offset, dataSize, data); +#endif +} + +// Update vertex buffer elements with new data +// NOTE: dataSize and offset must be provided in bytes +void rlUpdateVertexBufferElements(unsigned int id, const void *data, int dataSize, int offset) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); + glBufferSubData(GL_ELEMENT_ARRAY_BUFFER, offset, dataSize, data); +#endif +} + +// Enable vertex array object (VAO) +bool rlEnableVertexArray(unsigned int vaoId) +{ + bool result = false; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if (RLGL.ExtSupported.vao) + { + glBindVertexArray(vaoId); + result = true; + } +#endif + return result; +} + +// Disable vertex array object (VAO) +void rlDisableVertexArray(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if (RLGL.ExtSupported.vao) glBindVertexArray(0); +#endif +} + +// Enable vertex attribute index +void rlEnableVertexAttribute(unsigned int index) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glEnableVertexAttribArray(index); +#endif +} + +// Disable vertex attribute index +void rlDisableVertexAttribute(unsigned int index) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glDisableVertexAttribArray(index); +#endif +} + +// Draw vertex array +void rlDrawVertexArray(int offset, int count) +{ + glDrawArrays(GL_TRIANGLES, offset, count); +} + +// Draw vertex array elements +void rlDrawVertexArrayElements(int offset, int count, const void *buffer) +{ + // NOTE: Added pointer math separately from function to avoid UBSAN complaining + unsigned short *bufferPtr = (unsigned short *)buffer; + if (offset > 0) bufferPtr += offset; + + glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)bufferPtr); +} + +// Draw vertex array instanced +void rlDrawVertexArrayInstanced(int offset, int count, int instances) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glDrawArraysInstanced(GL_TRIANGLES, 0, count, instances); +#endif +} + +// Draw vertex array elements instanced +void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffer, int instances) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: Added pointer math separately from function to avoid UBSAN complaining + unsigned short *bufferPtr = (unsigned short *)buffer; + if (offset > 0) bufferPtr += offset; + + glDrawElementsInstanced(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)bufferPtr, instances); +#endif +} + +#if defined(GRAPHICS_API_OPENGL_11) +// Enable vertex state pointer +void rlEnableStatePointer(int vertexAttribType, void *buffer) +{ + if (buffer != NULL) glEnableClientState(vertexAttribType); + switch (vertexAttribType) + { + case GL_VERTEX_ARRAY: glVertexPointer(3, GL_FLOAT, 0, buffer); break; + case GL_TEXTURE_COORD_ARRAY: glTexCoordPointer(2, GL_FLOAT, 0, buffer); break; + case GL_NORMAL_ARRAY: if (buffer != NULL) glNormalPointer(GL_FLOAT, 0, buffer); break; + case GL_COLOR_ARRAY: if (buffer != NULL) glColorPointer(4, GL_UNSIGNED_BYTE, 0, buffer); break; + //case GL_INDEX_ARRAY: if (buffer != NULL) glIndexPointer(GL_SHORT, 0, buffer); break; // Indexed colors + default: break; + } +} + +// Disable vertex state pointer +void rlDisableStatePointer(int vertexAttribType) +{ + glDisableClientState(vertexAttribType); +} +#endif + +// Load vertex array object (VAO) +unsigned int rlLoadVertexArray(void) +{ + unsigned int vaoId = 0; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if (RLGL.ExtSupported.vao) + { + glGenVertexArrays(1, &vaoId); + } +#endif + return vaoId; +} + +// Set vertex attribute +void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, int offset) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: Data type could be: GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT + // Additional types (depends on OpenGL version or extensions): + // - GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, + // - GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_10F_11F_11F_REV + + size_t offsetNative = offset; + glVertexAttribPointer(index, compSize, type, normalized, stride, (void *)offsetNative); +#endif +} + +// Set vertex attribute divisor +void rlSetVertexAttributeDivisor(unsigned int index, int divisor) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glVertexAttribDivisor(index, divisor); +#endif +} + +// Unload vertex array object (VAO) +void rlUnloadVertexArray(unsigned int vaoId) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if (RLGL.ExtSupported.vao) + { + glBindVertexArray(0); + glDeleteVertexArrays(1, &vaoId); + TRACELOG(RL_LOG_INFO, "VAO: [ID %i] Unloaded vertex array data from VRAM (GPU)", vaoId); + } +#endif +} + +// Unload vertex buffer (VBO) +void rlUnloadVertexBuffer(unsigned int vboId) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glDeleteBuffers(1, &vboId); + //TRACELOG(RL_LOG_INFO, "VBO: Unloaded vertex data from VRAM (GPU)"); +#endif +} + +// Shaders management +//----------------------------------------------------------------------------------------------- +// Load shader from code strings +// NOTE: If shader string is NULL, using default vertex/fragment shaders +unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode) +{ + unsigned int id = 0; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + unsigned int vertexShaderId = 0; + unsigned int fragmentShaderId = 0; + + // Compile vertex shader (if provided) + // NOTE: If not vertex shader is provided, use default one + if (vsCode != NULL) vertexShaderId = rlCompileShader(vsCode, GL_VERTEX_SHADER); + else vertexShaderId = RLGL.State.defaultVShaderId; + + // Compile fragment shader (if provided) + // NOTE: If not vertex shader is provided, use default one + if (fsCode != NULL) fragmentShaderId = rlCompileShader(fsCode, GL_FRAGMENT_SHADER); + else fragmentShaderId = RLGL.State.defaultFShaderId; + + // In case vertex and fragment shader are the default ones, no need to recompile, we can just assign the default shader program id + if ((vertexShaderId == RLGL.State.defaultVShaderId) && (fragmentShaderId == RLGL.State.defaultFShaderId)) id = RLGL.State.defaultShaderId; + else if ((vertexShaderId > 0) && (fragmentShaderId > 0)) + { + // One of or both shader are new, we need to compile a new shader program + id = rlLoadShaderProgram(vertexShaderId, fragmentShaderId); + + // We can detach and delete vertex/fragment shaders (if not default ones) + // NOTE: We detach shader before deletion to make sure memory is freed + if (vertexShaderId != RLGL.State.defaultVShaderId) + { + // WARNING: Shader program linkage could fail and returned id is 0 + if (id > 0) glDetachShader(id, vertexShaderId); + glDeleteShader(vertexShaderId); + } + if (fragmentShaderId != RLGL.State.defaultFShaderId) + { + // WARNING: Shader program linkage could fail and returned id is 0 + if (id > 0) glDetachShader(id, fragmentShaderId); + glDeleteShader(fragmentShaderId); + } + + // In case shader program loading failed, we assign default shader + if (id == 0) + { + // In case shader loading fails, we return the default shader + TRACELOG(RL_LOG_WARNING, "SHADER: Failed to load custom shader code, using default shader"); + id = RLGL.State.defaultShaderId; + } + /* + else + { + // Get available shader uniforms + // NOTE: This information is useful for debug... + int uniformCount = -1; + glGetProgramiv(id, GL_ACTIVE_UNIFORMS, &uniformCount); + + for (int i = 0; i < uniformCount; i++) + { + int namelen = -1; + int num = -1; + char name[256] = { 0 }; // Assume no variable names longer than 256 + GLenum type = GL_ZERO; + + // Get the name of the uniforms + glGetActiveUniform(id, i, sizeof(name) - 1, &namelen, &num, &type, name); + + name[namelen] = 0; + TRACELOGD("SHADER: [ID %i] Active uniform (%s) set at location: %i", id, name, glGetUniformLocation(id, name)); + } + } + */ + } +#endif + + return id; +} + +// Compile custom shader and return shader id +unsigned int rlCompileShader(const char *shaderCode, int type) +{ + unsigned int shader = 0; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + shader = glCreateShader(type); + glShaderSource(shader, 1, &shaderCode, NULL); + + GLint success = 0; + glCompileShader(shader); + glGetShaderiv(shader, GL_COMPILE_STATUS, &success); + + if (success == GL_FALSE) + { + switch (type) + { + case GL_VERTEX_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile vertex shader code", shader); break; + case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile fragment shader code", shader); break; + //case GL_GEOMETRY_SHADER: + #if defined(GRAPHICS_API_OPENGL_43) + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile compute shader code", shader); break; + #elif defined(GRAPHICS_API_OPENGL_33) + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43", shader); break; + #endif + default: break; + } + + int maxLength = 0; + glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &maxLength); + + if (maxLength > 0) + { + int length = 0; + char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); + glGetShaderInfoLog(shader, maxLength, &length, log); + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Compile error: %s", shader, log); + RL_FREE(log); + } + + shader = 0; + } + else + { + switch (type) + { + case GL_VERTEX_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Vertex shader compiled successfully", shader); break; + case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Fragment shader compiled successfully", shader); break; + //case GL_GEOMETRY_SHADER: + #if defined(GRAPHICS_API_OPENGL_43) + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader compiled successfully", shader); break; + #elif defined(GRAPHICS_API_OPENGL_33) + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43", shader); break; + #endif + default: break; + } + } +#endif + + return shader; +} + +// Load custom shader strings and return program id +unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fShaderId) +{ + unsigned int program = 0; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + GLint success = 0; + program = glCreateProgram(); + + glAttachShader(program, vShaderId); + glAttachShader(program, fShaderId); + + // NOTE: Default attribute shader locations must be Bound before linking + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL, RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR, RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT, RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2); + +#ifdef RL_SUPPORT_MESH_GPU_SKINNING + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS, RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS, RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS); +#endif + + // NOTE: If some attrib name is no found on the shader, it locations becomes -1 + + glLinkProgram(program); + + // NOTE: All uniform variables are intitialised to 0 when a program links + + glGetProgramiv(program, GL_LINK_STATUS, &success); + + if (success == GL_FALSE) + { + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to link shader program", program); + + int maxLength = 0; + glGetProgramiv(program, GL_INFO_LOG_LENGTH, &maxLength); + + if (maxLength > 0) + { + int length = 0; + char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); + glGetProgramInfoLog(program, maxLength, &length, log); + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Link error: %s", program, log); + RL_FREE(log); + } + + glDeleteProgram(program); + + program = 0; + } + else + { + // Get the size of compiled shader program (not available on OpenGL ES 2.0) + // NOTE: If GL_LINK_STATUS is GL_FALSE, program binary length is zero + //GLint binarySize = 0; + //glGetProgramiv(id, GL_PROGRAM_BINARY_LENGTH, &binarySize); + + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Program shader loaded successfully", program); + } +#endif + return program; +} + +// Unload shader program +void rlUnloadShaderProgram(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glDeleteProgram(id); + + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Unloaded shader program data from VRAM (GPU)", id); +#endif +} + +// Get shader location uniform +int rlGetLocationUniform(unsigned int shaderId, const char *uniformName) +{ + int location = -1; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + location = glGetUniformLocation(shaderId, uniformName); + + //if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader uniform: %s", shaderId, uniformName); + //else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader uniform (%s) set at location: %i", shaderId, uniformName, location); +#endif + return location; +} + +// Get shader location attribute +int rlGetLocationAttrib(unsigned int shaderId, const char *attribName) +{ + int location = -1; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + location = glGetAttribLocation(shaderId, attribName); + + //if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader attribute: %s", shaderId, attribName); + //else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader attribute (%s) set at location: %i", shaderId, attribName, location); +#endif + return location; +} + +// Set shader value uniform +void rlSetUniform(int locIndex, const void *value, int uniformType, int count) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + switch (uniformType) + { + case RL_SHADER_UNIFORM_FLOAT: glUniform1fv(locIndex, count, (float *)value); break; + case RL_SHADER_UNIFORM_VEC2: glUniform2fv(locIndex, count, (float *)value); break; + case RL_SHADER_UNIFORM_VEC3: glUniform3fv(locIndex, count, (float *)value); break; + case RL_SHADER_UNIFORM_VEC4: glUniform4fv(locIndex, count, (float *)value); break; + case RL_SHADER_UNIFORM_INT: glUniform1iv(locIndex, count, (int *)value); break; + case RL_SHADER_UNIFORM_IVEC2: glUniform2iv(locIndex, count, (int *)value); break; + case RL_SHADER_UNIFORM_IVEC3: glUniform3iv(locIndex, count, (int *)value); break; + case RL_SHADER_UNIFORM_IVEC4: glUniform4iv(locIndex, count, (int *)value); break; + #if !defined(GRAPHICS_API_OPENGL_ES2) + case RL_SHADER_UNIFORM_UINT: glUniform1uiv(locIndex, count, (unsigned int *)value); break; + case RL_SHADER_UNIFORM_UIVEC2: glUniform2uiv(locIndex, count, (unsigned int *)value); break; + case RL_SHADER_UNIFORM_UIVEC3: glUniform3uiv(locIndex, count, (unsigned int *)value); break; + case RL_SHADER_UNIFORM_UIVEC4: glUniform4uiv(locIndex, count, (unsigned int *)value); break; + #endif + case RL_SHADER_UNIFORM_SAMPLER2D: glUniform1iv(locIndex, count, (int *)value); break; + default: TRACELOG(RL_LOG_WARNING, "SHADER: Failed to set uniform value, data type not recognized"); + + // TODO: Support glUniform1uiv(), glUniform2uiv(), glUniform3uiv(), glUniform4uiv() + } +#endif +} + +// Set shader value attribute +void rlSetVertexAttributeDefault(int locIndex, const void *value, int attribType, int count) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + switch (attribType) + { + case RL_SHADER_ATTRIB_FLOAT: if (count == 1) glVertexAttrib1fv(locIndex, (float *)value); break; + case RL_SHADER_ATTRIB_VEC2: if (count == 2) glVertexAttrib2fv(locIndex, (float *)value); break; + case RL_SHADER_ATTRIB_VEC3: if (count == 3) glVertexAttrib3fv(locIndex, (float *)value); break; + case RL_SHADER_ATTRIB_VEC4: if (count == 4) glVertexAttrib4fv(locIndex, (float *)value); break; + default: TRACELOG(RL_LOG_WARNING, "SHADER: Failed to set attrib default value, data type not recognized"); + } +#endif +} + +// Set shader value uniform matrix +void rlSetUniformMatrix(int locIndex, Matrix mat) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + float matfloat[16] = { + mat.m0, mat.m1, mat.m2, mat.m3, + mat.m4, mat.m5, mat.m6, mat.m7, + mat.m8, mat.m9, mat.m10, mat.m11, + mat.m12, mat.m13, mat.m14, mat.m15 + }; + glUniformMatrix4fv(locIndex, 1, false, matfloat); +#endif +} + +// Set shader value uniform matrix +void rlSetUniformMatrices(int locIndex, const Matrix *matrices, int count) +{ +#if defined(GRAPHICS_API_OPENGL_33) + glUniformMatrix4fv(locIndex, count, true, (const float *)matrices); +#elif defined(GRAPHICS_API_OPENGL_ES2) + // WARNING: WebGL does not support Matrix transpose ("true" parameter) + // REF: https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/uniformMatrix + glUniformMatrix4fv(locIndex, count, false, (const float *)matrices); +#endif +} + +// Set shader value uniform sampler +void rlSetUniformSampler(int locIndex, unsigned int textureId) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Check if texture is already active + for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) + { + if (RLGL.State.activeTextureId[i] == textureId) + { + glUniform1i(locIndex, 1 + i); + return; + } + } + + // Register a new active texture for the internal batch system + // NOTE: Default texture is always activated as GL_TEXTURE0 + for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) + { + if (RLGL.State.activeTextureId[i] == 0) + { + glUniform1i(locIndex, 1 + i); // Activate new texture unit + RLGL.State.activeTextureId[i] = textureId; // Save texture id for binding on drawing + break; + } + } +#endif +} + +// Set shader currently active (id and locations) +void rlSetShader(unsigned int id, int *locs) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if (RLGL.State.currentShaderId != id) + { + rlDrawRenderBatch(RLGL.currentBatch); + RLGL.State.currentShaderId = id; + RLGL.State.currentShaderLocs = locs; + } +#endif +} + +// Load compute shader program +unsigned int rlLoadComputeShaderProgram(unsigned int shaderId) +{ + unsigned int program = 0; + +#if defined(GRAPHICS_API_OPENGL_43) + GLint success = 0; + program = glCreateProgram(); + glAttachShader(program, shaderId); + glLinkProgram(program); + + // NOTE: All uniform variables are intitialised to 0 when a program links + + glGetProgramiv(program, GL_LINK_STATUS, &success); + + if (success == GL_FALSE) + { + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to link compute shader program", program); + + int maxLength = 0; + glGetProgramiv(program, GL_INFO_LOG_LENGTH, &maxLength); + + if (maxLength > 0) + { + int length = 0; + char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); + glGetProgramInfoLog(program, maxLength, &length, log); + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Link error: %s", program, log); + RL_FREE(log); + } + + glDeleteProgram(program); + + program = 0; + } + else + { + // Get the size of compiled shader program (not available on OpenGL ES 2.0) + // NOTE: If GL_LINK_STATUS is GL_FALSE, program binary length is zero + //GLint binarySize = 0; + //glGetProgramiv(id, GL_PROGRAM_BINARY_LENGTH, &binarySize); + + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader program loaded successfully", program); + } +#else + TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43"); +#endif + + return program; +} + +// Dispatch compute shader (equivalent to *draw* for graphics pilepine) +void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glDispatchCompute(groupX, groupY, groupZ); +#endif +} + +// Load shader storage buffer object (SSBO) +unsigned int rlLoadShaderBuffer(unsigned int size, const void *data, int usageHint) +{ + unsigned int ssbo = 0; + +#if defined(GRAPHICS_API_OPENGL_43) + glGenBuffers(1, &ssbo); + glBindBuffer(GL_SHADER_STORAGE_BUFFER, ssbo); + glBufferData(GL_SHADER_STORAGE_BUFFER, size, data, usageHint? usageHint : RL_STREAM_COPY); + if (data == NULL) glClearBufferData(GL_SHADER_STORAGE_BUFFER, GL_R8UI, GL_RED_INTEGER, GL_UNSIGNED_BYTE, NULL); // Clear buffer data to 0 + glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0); +#else + TRACELOG(RL_LOG_WARNING, "SSBO: SSBO not enabled. Define GRAPHICS_API_OPENGL_43"); +#endif + + return ssbo; +} + +// Unload shader storage buffer object (SSBO) +void rlUnloadShaderBuffer(unsigned int ssboId) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glDeleteBuffers(1, &ssboId); +#else + TRACELOG(RL_LOG_WARNING, "SSBO: SSBO not enabled. Define GRAPHICS_API_OPENGL_43"); +#endif + +} + +// Update SSBO buffer data +void rlUpdateShaderBuffer(unsigned int id, const void *data, unsigned int dataSize, unsigned int offset) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); + glBufferSubData(GL_SHADER_STORAGE_BUFFER, offset, dataSize, data); +#endif +} + +// Get SSBO buffer size +unsigned int rlGetShaderBufferSize(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_43) + GLint64 size = 0; + glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); + glGetBufferParameteri64v(GL_SHADER_STORAGE_BUFFER, GL_BUFFER_SIZE, &size); + return (size > 0)? (unsigned int)size : 0; +#else + return 0; +#endif +} + +// Read SSBO buffer data (GPU->CPU) +void rlReadShaderBuffer(unsigned int id, void *dest, unsigned int count, unsigned int offset) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); + glGetBufferSubData(GL_SHADER_STORAGE_BUFFER, offset, count, dest); +#endif +} + +// Bind SSBO buffer +void rlBindShaderBuffer(unsigned int id, unsigned int index) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glBindBufferBase(GL_SHADER_STORAGE_BUFFER, index, id); +#endif +} + +// Copy SSBO buffer data +void rlCopyShaderBuffer(unsigned int destId, unsigned int srcId, unsigned int destOffset, unsigned int srcOffset, unsigned int count) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glBindBuffer(GL_COPY_READ_BUFFER, srcId); + glBindBuffer(GL_COPY_WRITE_BUFFER, destId); + glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, srcOffset, destOffset, count); +#endif +} + +// Bind image texture +void rlBindImageTexture(unsigned int id, unsigned int index, int format, bool readonly) +{ +#if defined(GRAPHICS_API_OPENGL_43) + unsigned int glInternalFormat = 0, glFormat = 0, glType = 0; + + rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); + glBindImageTexture(index, id, 0, 0, 0, readonly? GL_READ_ONLY : GL_READ_WRITE, glInternalFormat); +#else + TRACELOG(RL_LOG_WARNING, "TEXTURE: Image texture binding not enabled. Define GRAPHICS_API_OPENGL_43"); +#endif +} + +// Matrix state management +//----------------------------------------------------------------------------------------- +// Get internal modelview matrix +Matrix rlGetMatrixModelview(void) +{ + Matrix matrix = rlMatrixIdentity(); +#if defined(GRAPHICS_API_OPENGL_11) + float mat[16]; + glGetFloatv(GL_MODELVIEW_MATRIX, mat); + matrix.m0 = mat[0]; + matrix.m1 = mat[1]; + matrix.m2 = mat[2]; + matrix.m3 = mat[3]; + matrix.m4 = mat[4]; + matrix.m5 = mat[5]; + matrix.m6 = mat[6]; + matrix.m7 = mat[7]; + matrix.m8 = mat[8]; + matrix.m9 = mat[9]; + matrix.m10 = mat[10]; + matrix.m11 = mat[11]; + matrix.m12 = mat[12]; + matrix.m13 = mat[13]; + matrix.m14 = mat[14]; + matrix.m15 = mat[15]; +#else + matrix = RLGL.State.modelview; +#endif + return matrix; +} + +// Get internal projection matrix +Matrix rlGetMatrixProjection(void) +{ +#if defined(GRAPHICS_API_OPENGL_11) + float mat[16]; + glGetFloatv(GL_PROJECTION_MATRIX,mat); + Matrix m; + m.m0 = mat[0]; + m.m1 = mat[1]; + m.m2 = mat[2]; + m.m3 = mat[3]; + m.m4 = mat[4]; + m.m5 = mat[5]; + m.m6 = mat[6]; + m.m7 = mat[7]; + m.m8 = mat[8]; + m.m9 = mat[9]; + m.m10 = mat[10]; + m.m11 = mat[11]; + m.m12 = mat[12]; + m.m13 = mat[13]; + m.m14 = mat[14]; + m.m15 = mat[15]; + return m; +#else + return RLGL.State.projection; +#endif +} + +// Get internal accumulated transform matrix +Matrix rlGetMatrixTransform(void) +{ + Matrix mat = rlMatrixIdentity(); +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // TODO: Consider possible transform matrices in the RLGL.State.stack + // Is this the right order? or should we start with the first stored matrix instead of the last one? + //Matrix matStackTransform = rlMatrixIdentity(); + //for (int i = RLGL.State.stackCounter; i > 0; i--) matStackTransform = rlMatrixMultiply(RLGL.State.stack[i], matStackTransform); + mat = RLGL.State.transform; +#endif + return mat; +} + +// Get internal projection matrix for stereo render (selected eye) +Matrix rlGetMatrixProjectionStereo(int eye) +{ + Matrix mat = rlMatrixIdentity(); +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + mat = RLGL.State.projectionStereo[eye]; +#endif + return mat; +} + +// Get internal view offset matrix for stereo render (selected eye) +Matrix rlGetMatrixViewOffsetStereo(int eye) +{ + Matrix mat = rlMatrixIdentity(); +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + mat = RLGL.State.viewOffsetStereo[eye]; +#endif + return mat; +} + +// Set a custom modelview matrix (replaces internal modelview matrix) +void rlSetMatrixModelview(Matrix view) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.modelview = view; +#endif +} + +// Set a custom projection matrix (replaces internal projection matrix) +void rlSetMatrixProjection(Matrix projection) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.projection = projection; +#endif +} + +// Set eyes projection matrices for stereo rendering +void rlSetMatrixProjectionStereo(Matrix right, Matrix left) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.projectionStereo[0] = right; + RLGL.State.projectionStereo[1] = left; +#endif +} + +// Set eyes view offsets matrices for stereo rendering +void rlSetMatrixViewOffsetStereo(Matrix right, Matrix left) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.viewOffsetStereo[0] = right; + RLGL.State.viewOffsetStereo[1] = left; +#endif +} + +// Load and draw a quad in NDC +void rlLoadDrawQuad(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + unsigned int quadVAO = 0; + unsigned int quadVBO = 0; + + float vertices[] = { + // Positions Texcoords + -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, + -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, + 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, + 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, + }; + + // Gen VAO to contain VBO + glGenVertexArrays(1, &quadVAO); + glBindVertexArray(quadVAO); + + // Gen and fill vertex buffer (VBO) + glGenBuffers(1, &quadVBO); + glBindBuffer(GL_ARRAY_BUFFER, quadVBO); + glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), &vertices, GL_STATIC_DRAW); + + // Bind vertex attributes (position, texcoords) + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, 3, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)0); // Positions + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, 2, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)(3*sizeof(float))); // Texcoords + + // Draw quad + glBindVertexArray(quadVAO); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); + glBindVertexArray(0); + + // Delete buffers (VBO and VAO) + glDeleteBuffers(1, &quadVBO); + glDeleteVertexArrays(1, &quadVAO); +#endif +} + +// Load and draw a cube in NDC +void rlLoadDrawCube(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + unsigned int cubeVAO = 0; + unsigned int cubeVBO = 0; + + float vertices[] = { + // Positions Normals Texcoords + -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, + 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f, + 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f, + 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f, + -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, + -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f, + -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, + 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, + 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, + 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, + -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, + -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, + -1.0f, 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + -1.0f, 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 1.0f, + -1.0f, -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + -1.0f, -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + -1.0f, -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, + -1.0f, 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + 1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, + 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + 1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, + -1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, + 1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 1.0f, + 1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f, + 1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f, + -1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, + -1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, + -1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, + 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, + 1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, + 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, + -1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, + -1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f + }; + + // Gen VAO to contain VBO + glGenVertexArrays(1, &cubeVAO); + glBindVertexArray(cubeVAO); + + // Gen and fill vertex buffer (VBO) + glGenBuffers(1, &cubeVBO); + glBindBuffer(GL_ARRAY_BUFFER, cubeVBO); + glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); + + // Bind vertex attributes (position, normals, texcoords) + glBindVertexArray(cubeVAO); + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)0); // Positions + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(3*sizeof(float))); // Normals + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, 2, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(6*sizeof(float))); // Texcoords + glBindBuffer(GL_ARRAY_BUFFER, 0); + glBindVertexArray(0); + + // Draw cube + glBindVertexArray(cubeVAO); + glDrawArrays(GL_TRIANGLES, 0, 36); + glBindVertexArray(0); + + // Delete VBO and VAO + glDeleteBuffers(1, &cubeVBO); + glDeleteVertexArrays(1, &cubeVAO); +#endif +} + +// Get name string for pixel format +const char *rlGetPixelFormatName(unsigned int format) +{ + switch (format) + { + case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: return "GRAYSCALE"; break; // 8 bit per pixel (no alpha) + case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: return "GRAY_ALPHA"; break; // 8*2 bpp (2 channels) + case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: return "R5G6B5"; break; // 16 bpp + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: return "R8G8B8"; break; // 24 bpp + case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: return "R5G5B5A1"; break; // 16 bpp (1 bit alpha) + case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: return "R4G4B4A4"; break; // 16 bpp (4 bit alpha) + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: return "R8G8B8A8"; break; // 32 bpp + case RL_PIXELFORMAT_UNCOMPRESSED_R32: return "R32"; break; // 32 bpp (1 channel - float) + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: return "R32G32B32"; break; // 32*3 bpp (3 channels - float) + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: return "R32G32B32A32"; break; // 32*4 bpp (4 channels - float) + case RL_PIXELFORMAT_UNCOMPRESSED_R16: return "R16"; break; // 16 bpp (1 channel - half float) + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: return "R16G16B16"; break; // 16*3 bpp (3 channels - half float) + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: return "R16G16B16A16"; break; // 16*4 bpp (4 channels - half float) + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: return "DXT1_RGB"; break; // 4 bpp (no alpha) + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: return "DXT1_RGBA"; break; // 4 bpp (1 bit alpha) + case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: return "DXT3_RGBA"; break; // 8 bpp + case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: return "DXT5_RGBA"; break; // 8 bpp + case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: return "ETC1_RGB"; break; // 4 bpp + case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: return "ETC2_RGB"; break; // 4 bpp + case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: return "ETC2_RGBA"; break; // 8 bpp + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: return "PVRT_RGB"; break; // 4 bpp + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: return "PVRT_RGBA"; break; // 4 bpp + case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: return "ASTC_4x4_RGBA"; break; // 8 bpp + case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: return "ASTC_8x8_RGBA"; break; // 2 bpp + default: return "UNKNOWN"; break; + } +} + +//---------------------------------------------------------------------------------- +// Module specific Functions Definition +//---------------------------------------------------------------------------------- +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +// Load default shader (just vertex positioning and texture coloring) +// NOTE: This shader program is used for internal buffers +// NOTE: Loaded: RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs +static void rlLoadShaderDefault(void) +{ + RLGL.State.defaultShaderLocs = (int *)RL_CALLOC(RL_MAX_SHADER_LOCATIONS, sizeof(int)); + + // NOTE: All locations must be reseted to -1 (no location) + for (int i = 0; i < RL_MAX_SHADER_LOCATIONS; i++) RLGL.State.defaultShaderLocs[i] = -1; + + // Vertex shader directly defined, no external file required + const char *defaultVShaderCode = +#if defined(GRAPHICS_API_OPENGL_21) + "#version 120 \n" + "attribute vec3 vertexPosition; \n" + "attribute vec2 vertexTexCoord; \n" + "attribute vec4 vertexColor; \n" + "varying vec2 fragTexCoord; \n" + "varying vec4 fragColor; \n" +#elif defined(GRAPHICS_API_OPENGL_33) + "#version 330 \n" + "in vec3 vertexPosition; \n" + "in vec2 vertexTexCoord; \n" + "in vec4 vertexColor; \n" + "out vec2 fragTexCoord; \n" + "out vec4 fragColor; \n" +#endif + +#if defined(GRAPHICS_API_OPENGL_ES3) + "#version 300 es \n" + "precision mediump float; \n" // Precision required for OpenGL ES3 (WebGL 2) (on some browsers) + "in vec3 vertexPosition; \n" + "in vec2 vertexTexCoord; \n" + "in vec4 vertexColor; \n" + "out vec2 fragTexCoord; \n" + "out vec4 fragColor; \n" +#elif defined(GRAPHICS_API_OPENGL_ES2) + "#version 100 \n" + "precision mediump float; \n" // Precision required for OpenGL ES2 (WebGL) (on some browsers) + "attribute vec3 vertexPosition; \n" + "attribute vec2 vertexTexCoord; \n" + "attribute vec4 vertexColor; \n" + "varying vec2 fragTexCoord; \n" + "varying vec4 fragColor; \n" +#endif + + "uniform mat4 mvp; \n" + "void main() \n" + "{ \n" + " fragTexCoord = vertexTexCoord; \n" + " fragColor = vertexColor; \n" + " gl_Position = mvp*vec4(vertexPosition, 1.0); \n" + "} \n"; + + // Fragment shader directly defined, no external file required + const char *defaultFShaderCode = +#if defined(GRAPHICS_API_OPENGL_21) + "#version 120 \n" + "varying vec2 fragTexCoord; \n" + "varying vec4 fragColor; \n" + "uniform sampler2D texture0; \n" + "uniform vec4 colDiffuse; \n" + "void main() \n" + "{ \n" + " vec4 texelColor = texture2D(texture0, fragTexCoord); \n" + " gl_FragColor = texelColor*colDiffuse*fragColor; \n" + "} \n"; +#elif defined(GRAPHICS_API_OPENGL_33) + "#version 330 \n" + "in vec2 fragTexCoord; \n" + "in vec4 fragColor; \n" + "out vec4 finalColor; \n" + "uniform sampler2D texture0; \n" + "uniform vec4 colDiffuse; \n" + "void main() \n" + "{ \n" + " vec4 texelColor = texture(texture0, fragTexCoord); \n" + " finalColor = texelColor*colDiffuse*fragColor; \n" + "} \n"; +#endif + +#if defined(GRAPHICS_API_OPENGL_ES3) + "#version 300 es \n" + "precision mediump float; \n" // Precision required for OpenGL ES3 (WebGL 2) + "in vec2 fragTexCoord; \n" + "in vec4 fragColor; \n" + "out vec4 finalColor; \n" + "uniform sampler2D texture0; \n" + "uniform vec4 colDiffuse; \n" + "void main() \n" + "{ \n" + " vec4 texelColor = texture(texture0, fragTexCoord); \n" + " finalColor = texelColor*colDiffuse*fragColor; \n" + "} \n"; +#elif defined(GRAPHICS_API_OPENGL_ES2) + "#version 100 \n" + "precision mediump float; \n" // Precision required for OpenGL ES2 (WebGL) + "varying vec2 fragTexCoord; \n" + "varying vec4 fragColor; \n" + "uniform sampler2D texture0; \n" + "uniform vec4 colDiffuse; \n" + "void main() \n" + "{ \n" + " vec4 texelColor = texture2D(texture0, fragTexCoord); \n" + " gl_FragColor = texelColor*colDiffuse*fragColor; \n" + "} \n"; +#endif + + // NOTE: Compiled vertex/fragment shaders are not deleted, + // they are kept for re-use as default shaders in case some shader loading fails + RLGL.State.defaultVShaderId = rlCompileShader(defaultVShaderCode, GL_VERTEX_SHADER); // Compile default vertex shader + RLGL.State.defaultFShaderId = rlCompileShader(defaultFShaderCode, GL_FRAGMENT_SHADER); // Compile default fragment shader + + RLGL.State.defaultShaderId = rlLoadShaderProgram(RLGL.State.defaultVShaderId, RLGL.State.defaultFShaderId); + + if (RLGL.State.defaultShaderId > 0) + { + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Default shader loaded successfully", RLGL.State.defaultShaderId); + + // Set default shader locations: attributes locations + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_POSITION] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_COLOR] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR); + + // Set default shader locations: uniform locations + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MATRIX_MVP] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_UNIFORM_NAME_MVP); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_COLOR_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MAP_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0); + } + else TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to load default shader", RLGL.State.defaultShaderId); +} + +// Unload default shader +// NOTE: Unloads: RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs +static void rlUnloadShaderDefault(void) +{ + glUseProgram(0); + + glDetachShader(RLGL.State.defaultShaderId, RLGL.State.defaultVShaderId); + glDetachShader(RLGL.State.defaultShaderId, RLGL.State.defaultFShaderId); + glDeleteShader(RLGL.State.defaultVShaderId); + glDeleteShader(RLGL.State.defaultFShaderId); + + glDeleteProgram(RLGL.State.defaultShaderId); + + RL_FREE(RLGL.State.defaultShaderLocs); + + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Default shader unloaded successfully", RLGL.State.defaultShaderId); +} + +#if defined(RLGL_SHOW_GL_DETAILS_INFO) +// Get compressed format official GL identifier name +static const char *rlGetCompressedFormatName(int format) +{ + switch (format) + { + // GL_EXT_texture_compression_s3tc + case 0x83F0: return "GL_COMPRESSED_RGB_S3TC_DXT1_EXT"; break; + case 0x83F1: return "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT"; break; + case 0x83F2: return "GL_COMPRESSED_RGBA_S3TC_DXT3_EXT"; break; + case 0x83F3: return "GL_COMPRESSED_RGBA_S3TC_DXT5_EXT"; break; + // GL_3DFX_texture_compression_FXT1 + case 0x86B0: return "GL_COMPRESSED_RGB_FXT1_3DFX"; break; + case 0x86B1: return "GL_COMPRESSED_RGBA_FXT1_3DFX"; break; + // GL_IMG_texture_compression_pvrtc + case 0x8C00: return "GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG"; break; + case 0x8C01: return "GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG"; break; + case 0x8C02: return "GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG"; break; + case 0x8C03: return "GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG"; break; + // GL_OES_compressed_ETC1_RGB8_texture + case 0x8D64: return "GL_ETC1_RGB8_OES"; break; + // GL_ARB_texture_compression_rgtc + case 0x8DBB: return "GL_COMPRESSED_RED_RGTC1"; break; + case 0x8DBC: return "GL_COMPRESSED_SIGNED_RED_RGTC1"; break; + case 0x8DBD: return "GL_COMPRESSED_RG_RGTC2"; break; + case 0x8DBE: return "GL_COMPRESSED_SIGNED_RG_RGTC2"; break; + // GL_ARB_texture_compression_bptc + case 0x8E8C: return "GL_COMPRESSED_RGBA_BPTC_UNORM_ARB"; break; + case 0x8E8D: return "GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB"; break; + case 0x8E8E: return "GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB"; break; + case 0x8E8F: return "GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB"; break; + // GL_ARB_ES3_compatibility + case 0x9274: return "GL_COMPRESSED_RGB8_ETC2"; break; + case 0x9275: return "GL_COMPRESSED_SRGB8_ETC2"; break; + case 0x9276: return "GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"; break; + case 0x9277: return "GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"; break; + case 0x9278: return "GL_COMPRESSED_RGBA8_ETC2_EAC"; break; + case 0x9279: return "GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"; break; + case 0x9270: return "GL_COMPRESSED_R11_EAC"; break; + case 0x9271: return "GL_COMPRESSED_SIGNED_R11_EAC"; break; + case 0x9272: return "GL_COMPRESSED_RG11_EAC"; break; + case 0x9273: return "GL_COMPRESSED_SIGNED_RG11_EAC"; break; + // GL_KHR_texture_compression_astc_hdr + case 0x93B0: return "GL_COMPRESSED_RGBA_ASTC_4x4_KHR"; break; + case 0x93B1: return "GL_COMPRESSED_RGBA_ASTC_5x4_KHR"; break; + case 0x93B2: return "GL_COMPRESSED_RGBA_ASTC_5x5_KHR"; break; + case 0x93B3: return "GL_COMPRESSED_RGBA_ASTC_6x5_KHR"; break; + case 0x93B4: return "GL_COMPRESSED_RGBA_ASTC_6x6_KHR"; break; + case 0x93B5: return "GL_COMPRESSED_RGBA_ASTC_8x5_KHR"; break; + case 0x93B6: return "GL_COMPRESSED_RGBA_ASTC_8x6_KHR"; break; + case 0x93B7: return "GL_COMPRESSED_RGBA_ASTC_8x8_KHR"; break; + case 0x93B8: return "GL_COMPRESSED_RGBA_ASTC_10x5_KHR"; break; + case 0x93B9: return "GL_COMPRESSED_RGBA_ASTC_10x6_KHR"; break; + case 0x93BA: return "GL_COMPRESSED_RGBA_ASTC_10x8_KHR"; break; + case 0x93BB: return "GL_COMPRESSED_RGBA_ASTC_10x10_KHR"; break; + case 0x93BC: return "GL_COMPRESSED_RGBA_ASTC_12x10_KHR"; break; + case 0x93BD: return "GL_COMPRESSED_RGBA_ASTC_12x12_KHR"; break; + case 0x93D0: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"; break; + case 0x93D1: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"; break; + case 0x93D2: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"; break; + case 0x93D3: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"; break; + case 0x93D4: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"; break; + case 0x93D5: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"; break; + case 0x93D6: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"; break; + case 0x93D7: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"; break; + case 0x93D8: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"; break; + case 0x93D9: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"; break; + case 0x93DA: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"; break; + case 0x93DB: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"; break; + case 0x93DC: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"; break; + case 0x93DD: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"; break; + default: return "GL_COMPRESSED_UNKNOWN"; break; + } +} +#endif // RLGL_SHOW_GL_DETAILS_INFO + +#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 + +// Get pixel data size in bytes (image or texture) +// NOTE: Size depends on pixel format +static int rlGetPixelDataSize(int width, int height, int format) +{ + int dataSize = 0; // Size in bytes + int bpp = 0; // Bits per pixel + + switch (format) + { + case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: bpp = 8; break; + case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: + case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: + case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: + case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: bpp = 16; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: bpp = 32; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: bpp = 24; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32: bpp = 32; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: bpp = 32*3; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: bpp = 32*4; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16: bpp = 16; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: bpp = 16*3; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: bpp = 16*4; break; + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: + case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: + case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: bpp = 4; break; + case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: + case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: + case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: + case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: bpp = 8; break; + case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: bpp = 2; break; + default: break; + } + + double bytesPerPixel = (double)bpp/8.0; + dataSize = (int)(bytesPerPixel*width*height); // Total data size in bytes + + // Most compressed formats works on 4x4 blocks, + // if texture is smaller, minimum dataSize is 8 or 16 + if ((width < 4) && (height < 4)) + { + if ((format >= RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) && (format < RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA)) dataSize = 8; + else if ((format >= RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA) && (format < RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA)) dataSize = 16; + } + + return dataSize; +} + +// Auxiliar math functions + +// Get float array of matrix data +static rl_float16 rlMatrixToFloatV(Matrix mat) +{ + rl_float16 result = { 0 }; + + result.v[0] = mat.m0; + result.v[1] = mat.m1; + result.v[2] = mat.m2; + result.v[3] = mat.m3; + result.v[4] = mat.m4; + result.v[5] = mat.m5; + result.v[6] = mat.m6; + result.v[7] = mat.m7; + result.v[8] = mat.m8; + result.v[9] = mat.m9; + result.v[10] = mat.m10; + result.v[11] = mat.m11; + result.v[12] = mat.m12; + result.v[13] = mat.m13; + result.v[14] = mat.m14; + result.v[15] = mat.m15; + + return result; +} + +// Get identity matrix +static Matrix rlMatrixIdentity(void) +{ + Matrix result = { + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + }; + + return result; +} + +// Get two matrix multiplication +// NOTE: When multiplying matrices... the order matters! +static Matrix rlMatrixMultiply(Matrix left, Matrix right) +{ + Matrix result = { 0 }; + + result.m0 = left.m0*right.m0 + left.m1*right.m4 + left.m2*right.m8 + left.m3*right.m12; + result.m1 = left.m0*right.m1 + left.m1*right.m5 + left.m2*right.m9 + left.m3*right.m13; + result.m2 = left.m0*right.m2 + left.m1*right.m6 + left.m2*right.m10 + left.m3*right.m14; + result.m3 = left.m0*right.m3 + left.m1*right.m7 + left.m2*right.m11 + left.m3*right.m15; + result.m4 = left.m4*right.m0 + left.m5*right.m4 + left.m6*right.m8 + left.m7*right.m12; + result.m5 = left.m4*right.m1 + left.m5*right.m5 + left.m6*right.m9 + left.m7*right.m13; + result.m6 = left.m4*right.m2 + left.m5*right.m6 + left.m6*right.m10 + left.m7*right.m14; + result.m7 = left.m4*right.m3 + left.m5*right.m7 + left.m6*right.m11 + left.m7*right.m15; + result.m8 = left.m8*right.m0 + left.m9*right.m4 + left.m10*right.m8 + left.m11*right.m12; + result.m9 = left.m8*right.m1 + left.m9*right.m5 + left.m10*right.m9 + left.m11*right.m13; + result.m10 = left.m8*right.m2 + left.m9*right.m6 + left.m10*right.m10 + left.m11*right.m14; + result.m11 = left.m8*right.m3 + left.m9*right.m7 + left.m10*right.m11 + left.m11*right.m15; + result.m12 = left.m12*right.m0 + left.m13*right.m4 + left.m14*right.m8 + left.m15*right.m12; + result.m13 = left.m12*right.m1 + left.m13*right.m5 + left.m14*right.m9 + left.m15*right.m13; + result.m14 = left.m12*right.m2 + left.m13*right.m6 + left.m14*right.m10 + left.m15*right.m14; + result.m15 = left.m12*right.m3 + left.m13*right.m7 + left.m14*right.m11 + left.m15*right.m15; + + return result; +} + +// Transposes provided matrix +static Matrix rlMatrixTranspose(Matrix mat) +{ + Matrix result = { 0 }; + + result.m0 = mat.m0; + result.m1 = mat.m4; + result.m2 = mat.m8; + result.m3 = mat.m12; + result.m4 = mat.m1; + result.m5 = mat.m5; + result.m6 = mat.m9; + result.m7 = mat.m13; + result.m8 = mat.m2; + result.m9 = mat.m6; + result.m10 = mat.m10; + result.m11 = mat.m14; + result.m12 = mat.m3; + result.m13 = mat.m7; + result.m14 = mat.m11; + result.m15 = mat.m15; + + return result; +} + +// Invert provided matrix +static Matrix rlMatrixInvert(Matrix mat) +{ + Matrix result = { 0 }; + + // Cache the matrix values (speed optimization) + float a00 = mat.m0, a01 = mat.m1, a02 = mat.m2, a03 = mat.m3; + float a10 = mat.m4, a11 = mat.m5, a12 = mat.m6, a13 = mat.m7; + float a20 = mat.m8, a21 = mat.m9, a22 = mat.m10, a23 = mat.m11; + float a30 = mat.m12, a31 = mat.m13, a32 = mat.m14, a33 = mat.m15; + + float b00 = a00*a11 - a01*a10; + float b01 = a00*a12 - a02*a10; + float b02 = a00*a13 - a03*a10; + float b03 = a01*a12 - a02*a11; + float b04 = a01*a13 - a03*a11; + float b05 = a02*a13 - a03*a12; + float b06 = a20*a31 - a21*a30; + float b07 = a20*a32 - a22*a30; + float b08 = a20*a33 - a23*a30; + float b09 = a21*a32 - a22*a31; + float b10 = a21*a33 - a23*a31; + float b11 = a22*a33 - a23*a32; + + // Calculate the invert determinant (inlined to avoid double-caching) + float invDet = 1.0f/(b00*b11 - b01*b10 + b02*b09 + b03*b08 - b04*b07 + b05*b06); + + result.m0 = (a11*b11 - a12*b10 + a13*b09)*invDet; + result.m1 = (-a01*b11 + a02*b10 - a03*b09)*invDet; + result.m2 = (a31*b05 - a32*b04 + a33*b03)*invDet; + result.m3 = (-a21*b05 + a22*b04 - a23*b03)*invDet; + result.m4 = (-a10*b11 + a12*b08 - a13*b07)*invDet; + result.m5 = (a00*b11 - a02*b08 + a03*b07)*invDet; + result.m6 = (-a30*b05 + a32*b02 - a33*b01)*invDet; + result.m7 = (a20*b05 - a22*b02 + a23*b01)*invDet; + result.m8 = (a10*b10 - a11*b08 + a13*b06)*invDet; + result.m9 = (-a00*b10 + a01*b08 - a03*b06)*invDet; + result.m10 = (a30*b04 - a31*b02 + a33*b00)*invDet; + result.m11 = (-a20*b04 + a21*b02 - a23*b00)*invDet; + result.m12 = (-a10*b09 + a11*b07 - a12*b06)*invDet; + result.m13 = (a00*b09 - a01*b07 + a02*b06)*invDet; + result.m14 = (-a30*b03 + a31*b01 - a32*b00)*invDet; + result.m15 = (a20*b03 - a21*b01 + a22*b00)*invDet; + + return result; +} + +#endif // RLGL_IMPLEMENTATION diff --git a/lib/raylib_lin_arm64/lib/libraylib.a b/lib/raylib_lin_arm64/lib/libraylib.a new file mode 100644 index 0000000000000000000000000000000000000000..8ad762b73c81eadeee1c20d021e5825e04005766 GIT binary patch literal 2823370 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 r*0W=J(?IoS3iP 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

UOwk<9@@YD*w5j&rMY=4wUxTv zeCC(1Z5rlZJw&lczXOiadIav>@u|N@-URp^uqQk5B<%9E|K@Sz)TT4-jzd0Ww%ps8 z5Am&JOTFiLlEwpG#1Dq)yrk#fvZjywlBmzuY=jK(JTKlGh@;#O8Dl^4r0ho<+?IaD zGata%kNq3+Nu-Tuj@^duS>u@--aLY1Q;9bPn63DjutU*!Sp3&T#xpk|{|xQTerl8X z7TD}r{+WA;FTHCwJC}!^p}t>tJKNL${$n4;`^hF*<=MZ)vot>W9Nwko*~n0AIL?5A zJbwJS#`{529|HUt49U0Tp2vIN2>Uba{nQr0Z$F;9hvmTG=Pn(ecG|L@W4!+w$Q1_g z_ZV!XM)1#Xqjo>E(YWJ7@Il=HztSD>J^h8ir9VX+hlTa?7r-U@eH^+ad(LFN6yo54g2k{I1h6ToVq4*#T|qvn0pT$Hjs~DKjdt>NB(vC{s_Kz z{?NPbb>nlIm|)F~rjmls7u%M}WImK!$n*IP2yEk07Si%?IEU z_3{DuKsk-)J_N+ebYDZhOPpU%G=%&ovJdqAFW2*20OvpPhkv*RaYD!8V+Cy08g|Da z1D+nd;;=@{LBZ?Ojv;@UU(P0n|M0#Y$9`xxo>J_&Ugy{|-a2I0)$1S*)YHz_QHSh0 za-1X=%HL$Ky@upb?3) z?|=BB-=rSi_?zz{wuWG~|IL9rwxLb;Sl`Ra4!;J>mH$S&gk1M$!d<}ctF-bS ztvsZaX~UlTGwv?n_iMEB>$GxAD<`$`fL7k2m3M08U0V4{txOx--5+vBxj%p6F5ve? zTKQ_NJgJrAT6wQl?$^qrT6sh(cWUJ=TKQ6~{93JityZ?QGGrsq$JEM*3HE#fS~;kd zo3wIBD>rN97OlKiE4OOpby|77R>rP6nd9TpxBFW%hjy z-9Ixv!@2z85p*TFm`-O)C1Y^su$3!W`9j$$6s>e&aW2CO(^)H*&y{njx!fDG8H3eJ zr}9)U#h$cMRx$f$i`h~+o58PAVX>Ib@_I9=+#D{J3s!1wu8>ZZv#LVLn!#(z2k44? zxUi5drpmcOo*)#*cm&>zO zof>nwQkl1hA;t^&a`p(iUYuQ=&*sZkrjX@>&Zp+H7z*0UWh??lF`Lh1i@E$PfWaQ3 zUa@}hc4l(3^)xe6q=u&#XJ)bl);u0tbVdoq93V(97V);SRaz|0q|zAS3>!llP^0&k z4-~U0jI4zI9nR%5g~OfJLheX*PBsgOpgf;iK-E;4Pop(g$j{=HY(T2t1G&<|Tg7GIsPnUqB9FQD0=7*-;4P6FQ>Ytbq46;Zlhet}7Ie>-N7|XMn zpD*C9dMlfK`2-(n%o+s_9mG8*GQq z5^IO%H?^=Zmjn6(wXONZ60i=drC7i;%*{#c!YJ~ze&k{+VGYq|Fp(HbY`6A|?j9Z6 zH_9-RUE+5QWAE;%-MbP~0@A8{Bt7k1qq?Hrk-41rMs!Q}7TcN(hcPRY*61R7MA$!; z9Lbha)_egAy^znP4Xm1MF`t^dbarm$@TH|<`cmA>l?%l!Y1S1{vNpWR8r?HI>{Fiu zMN~I(Bq(s=Tu! zHk_3D!hGsTZk|yP{kh6J?&pq_u>7*t<(9o=h6X6gmsvZ8C#FVXN?bmw)f454dX@0Y z`^vY8WH`Lz1=-{)s&cg24}i=nScP@8;&KJ>XTwiR6RDH7)&OqE$w<@ zaCk6Az?m;(N>qC@`*9%$>B!gs#+KZDv0;ErfRxH!NLYKXdf-)M43F~KX)peyeuhIZ}} z70}w3LTfA{Vg-W>xOCaO%}Fk%osa*&y%>|z~&EJD&zx-h>mmnES{ zh$N+jY?@QBa&BHwcP3BpdBgOSa74DwbWs-*H( zVfqaa5in$z)aZ<#dX*z!ki^9v>k_a?V=$=_I6aqx<_fc5lXE2DEgU#nV!uVNsJGME zY#w3_6X%Q(FjW$cr~|Ukq8px(5xk^;3CRa+Ur4zNkX30Z;boqF&lOS`Oo973qTQGR z08KnwT3lEt6fw61H>drXYzk8Y>4jr}s}>)hQ}a-^$l62i_b$#I1PJwKtm&gn2+R~A z%oM4Ys8N8xTs)jBaRF%_v?4b>$5CklNHCwu9~EErmPQb18174ngKm$xbo6DjiNOqz@1`$rofb zye54Bk~b*;vYmw@EuwM`m$OH}w&sp@Lcj%90Xn5}4(JVCglIYIfb)KuZnO_+mo2r@ zV)_6H%2*s+8rB42!b=V}2-6TbSQlg$`8-L{moW~^L&|c-pkzqgzUeYUpH>f99sM5PcZ&;6q@=T9#bPS?i+5F->6iia(z}-FdINPF1-uq*~ zTr5FOP4R>m4={Pu!Nq*Vda0}@X@!6Nm<5@vjQ7twM3v3ERY)_vk}ntS{ZyZ?biE7o zeuq;DeC42uU$om3EEXH66I)v)3SE+h)IpV(BUBieA z3yu4EaGnCARg7(b4U`X)C?H-1;lVY&v4w0N`m04Q^B@ z&@iy0xPxFqgx_OZBI>O`dK%O9fjiIR58;f*-UOOS7yX$>9%ZlTM|y{88GRI5!oP zK=cZaJN*+q;b8Eg>*Bs(A>w_+ScMsji7XAjO|}Cr#@YgAXNw@pjJbmYgLzByTFp)q zAL25ev|#Xoi1sO8fYDM9MwLvG^RPYLHLMI&o2N+U=qRt6yS5!=hq=b;C_}y z2KqW(EF8=-JL&A)&TM%IgNCv15FTdbq|?-3z6@r#P@om>*MtCyTrag>hW4HLuJ4hK z%og^)9M@<;Au^X!KxcgWAReeu-?b(j*d>&-ueHi3L8mnfkw^Ai5eK}h;yG9AwH|fB zo6(t_!&9+D|5PSBy*N7s41tY@jYM4ckOjISt~<+@)n?ZRCnu)-u9Lk_ET*ZMxy8}} zRw@?e=+W7^I2L%(03Ay+O!K0%;l*bcax{q1(3yZyPUDb`7FAlz@cz$@?p>6U4|8E6bSSFqQT8m77S+lDrR- zKNS80^yVyHjCq^S5&_5i#83V{d7ZrvW0GaOZ=iqJvHVIoh(87Un)op-zR9;npQHTC zm`^@qW@w z*=ssxtPV2Z^Y!7ZZ&rq0Nq#in|OEI3a4 zJCqMtNFQ0WU0)My2(q6}J6sgYiI>AxBn3A{O1E1bOd+WMxe|Ls_{TsNqY<~~4A)2S zZ$6bSl(g%_pJ5P4&1u((Kg0Yq2gGphP&d8)vqO9u(|o4Xcrev?ANkOxcEv^qh6nk5 zVF#^p*Mavw=C4#nHKj%=F!5!la70?)B!)@2RcnWASvgQrX8RIM1U4#WVJyRTkaqMs zatGlSTLPnFQ`}%x({3c4A{g@cSaN7`yX8zfw^&N0&zczK5q3-1hg6Hz+GEe-eJmcr z{XU6i5a5L2li|sp{J}gC*bX}a{W)^P#;2a&d=?Gg=j8LXzHPx@F9jl8%7`#;@%7Am z@EW^o+v{F?$pt>+Ac>PS-6Avu(DjberEGz~$-CVmql}Owxnmmo2cS2{(g?#haiK%Z2)@#zrT|S(P;geio5}b^I-M>9LVj$ zbb;iL5)3;|m=5RrFIIq^kQ&Na{msv6~T+WhZBF;%sFG1xJC?#n3^l7 z#9_PiFg{v86|#OB`s3z;9c&9v~g?gAgo4f2T?X|I^<8x&_Au7FP$W~OL>*_6q0oH{uJ_9t`M^& zb})yMV;(Xbe!}^JY!6{Ah{1v(QD|rwHb}P+I`Ljc$A^Wlg{Xv(C{T~OWx&e=!86VR z-eOECW0yVGiO}+T4q@fxLFKtZ*+Yj>p2!xVwn6|E@9Brg!-Wgp9-nZ$TG9ehZ-7T# ziP@uz_@F&;-TMHp^LDr(q#nZc5!guMoTahnlVFGaEWi%~!hI@}MUKpnRDL!2+mZt2 zC<8815U0pX{?Yg%<4;1?%D8!otNs)TppxQGO~a~-rqGV}`jIf(8d7mxNT}lV?77(J z&f!6)MYvRjb6K?OcYlgF+3Z}^=ch7J=7FO3`##Ub;Ofsa30vaHxbSred;tJt{{dG% zU$Tm4-kgdWoM$1U;*w;=ai}poGhw;&U;n83_()Xt9&mA$rLRE z{zf3~%;7D#wuRyIE@qZ3k~xiqe?rgTi$qd(#+T&UWU{HVq=-OF#>k->pF|-U=kF$^u%rcoAj>fjDVWGEy-?lX3|F#)!bib8H%SV0nT^z#`eHrR2fFo zNi1Q;?I(b7RG-Q;SNt|B55@OVm_O?y-5(m!$`nbvg91JI^B5D8iA9VUTIJW1SYp|H z62VYK)~=e%F%qX)HFkY(uC$nf*fCS!&+Qu-rQys;+>`B9Ae(p(zpkc+H9Wbqn3^6J zN(j~CI?z!yA53D%$I1n6`kWjt6b>#fNU_0~#9$IBgno&54l2uMS${_0f=)2a#(f#j z;kxU}qDewL7;=k4 zBiv31_6hU_OXHSs+$SweJwRo)bz~%!NBmS#4t$cP%Z+b*(uQct*|?MFr@P-tNS%s` zV0^*?s07zxJ zOeT}qV!4pWE+E=bJXf3-l#vLG5Sr<^;yn5*kx-U77P@Pq-ky98BGs!GQ$=`m06$pP zYGJx~?_znTPg~P;XOgbVIak(mT%Rd#8Cb}%?+m`xdhpt@gwVhv2(m0Td?B}xbp%w# zcO7PrxwdBJQnTDYSp6~bGfWFYf-&vm}Z9eurfa~U8%Mh<<(p#)-l&V9g<8HN(D zBY_{N=P*j&>+br*@L7ZO{+wgJ1HELg-OB@K0iPk)^kd>-zXL^ZdPUD;g=C7OX|NJBp9sr^p4<%(~)_)LNY*OR1%G$%cdB(M8 zA;ZXyXD^$EXMaXGVkIyE2^ns|TcmkOGjTxR6)y}?&@307cs)^xT^9?M!{1e(d|ntj z6S72o%mFN-2(Nd_5TwX5C}u!hALf<|YJt6i;X9}%%#|tLF#&){adD^=gLO?tc>yls zx(;m5bv{ju9@4nO;Vzia#JJH@n3(`-#|!h*7@!m$sa>bO`*q&>BdHQ|a-%-i0t{o% z#E!nHxa&+x?1xb%L( zACwpxi6yQwhDPJ;(fIJtc>h=|F@QGcqsnm6kH&Tm%J!47y@OM-QPi8vz*vL`Jx*nK z88K2){A2gWh4Yx&rTWCBNVb$^!h}LTURc1Ar27LS)WCk6-E7~SLK&tW4Uc zz#y<~AUPGAm>3*o2rTbAZ^p<*2>?lIUX4qPf8wffZ@*pFr$)yTBe7xjn0Rh1u{)L+ zjLCN5dlCt}7Z{P;Jux<}+K*u|0qxxw!uqu%f!QPT5FX;);q4{{U%h8AiIC#T`;4xW zlj$&bEMt!eiRWzlKuW|RTC8#3Mx3~A=5zQH1S_-f(_)r|8L%jCIJC$@#Xq1?nxFg# z><;|pWO?B6Qi!17ZauPxZMTwm297NFEyb2?kK2kh%<3VS5Z|1^k%NggQVE5M-FM_9 zNYHSpa1RNKM;G=S*p0$lC|;)i`Vrc5L4tabI#S>OEApl7mxAjc0;aUIdD^lk<({Biti4AWE`3A^vCA2wV9u2=eVwF4sz z+X5Hf5+zft?5k^>%#Ka52HyDANw^an70cl%U@ zJwWv-uy-D!WUd6wMohH4&hk9)c!;S|Vkd(cJxKS-9$)J|waXWZwCYkEud*yML%%Sh zi`n4qRzBw!FUOy36584snPg=f3nO+ zNAKa+<1C6u>b&B5rLfBDv+GhQ#q&a4z@m0J0CC;pTtJ!TS^4cy_O@Sgzuh$-quImm zmhoKNZMj8Ryx*Y>&bWj~4pJmXPWR{o___VUjQ_akJ#KrSVD%lQM9T*h3*ptYWs)X? zkgocq(vtJUBk=cgX9s)`e2*mGyi(b=4SU z)g$AnyC(8IjO|Ip2c;~|#$UtV!uakaFqW!pNKQ7vji}vH9{kUj9F4~Wa_T!@cxM;s$ zwA(M*?HBF#i+1}(yZxfwe$j5fXt!Uq+t1tW-<@QV|8R0A(@T=$aR&dvB=;aCCK61i znTT;#gZfPV$L2r+uR%&8eJ79%fxang0)10{1Nz>>YD2Hy$$yRS9AMXXjdA^MaFpwP z@z^+PFc}|ay5r~w{~k~9j*Q3lu=_i9^YP=G%_F`UUf`R}8@}1R;hW(Fz8PNNo8bk% z*}U!8&Bu>#hG+N|?S(~qVbNY#v=>g*YN144I-|Y4H9$@o`@4W=~-Qy#B_;*r# z#~7e@k8>Rr->;_o!#k2J1>|sig5yDKc!FJrQb*s334T8z?kD8^y~C`dBLm5Ote&Vp zGC0cKhjq?f#kAJZRZkg1p)zw_3(~;o0_5}XRD8rm9;Do^t}0g46(6ziVpnFqw zc9bG#Z9Cl;$?#v>*jG4ghv`RWUw^JVP_TByqqYSxwKKJSI@~$EecJ9M2NDW)C*SL^ z{eZot8^37>1O4v9Z?=1Z3K0|*7wA{GlPbua72BtKd6{-nps^?`iG2~G?4j#kq;ZTwA3ER;=e#HeJY>PcD@R{yAQTR-6TVeS0gzer6_yB)KqBfxpu!ivG zgfNB=TFx*=!1m76!jWDtQcQ34B0!W7pxYk-^z{+$@n0XKe0f-rQ@TJ-KLY6Mqqiqg zxjr!es}?>weT_1*YU}iMbTH{zAuB^%x3aaNmWo&h4)GMLUsdRRnaAG!D? z?GH(zK=`5L32BqHxa5k`wWzW`bW6;t$No?SKDz$!?1#@X?K73|k#wIS&^i3!>qyzJ zB0h4~0O;y!U0)h~w8K7f!^*;E8FIsl5~5`-G|A^A9`#22?L5zZJX#ibDV!ueP= zI(^9sFfxHi;YJj{(~U_w9sy30UVG(FL625DoFYjpmVCV?J6&6FybY9hWBIS8WFKn9|KK1pm52+=vFSBID zGN}bbYFV2HSajCKv_6ElV7a!?GnUZSa5zY~^&(uFe(<{!W^cq<~fNBS!70G%$PSwR-C`Vad9>%U7))=AWfVo^2HAmLll zKjC;`@U5eN0*e}l?oynfO2;KVOA9=(qdg4LiVwu%i9M6no@BqZ6G8FTcx*sPMlkKL z5Ce)NplphDM;KHSj65U^B#0(UQXmnCP;-fBG)%-Is1|CjplxJDva8ZC38&r}8%qbo z9)=qF#)q$;*bKPiED{`5Fve9u;C1*!w{f@tNKDY~RPeDVER+&ML71Qn_LI|vBNmP= zI|nyHCJ8s&?q-$~7u>MD5y#hnzq=r~>VQ@a&*Xaag%=5985h(nySuN;wzqbT##S2u zCHw^2wEF}VbLjm+?8z%ESaGDuFU*&$@np2uzQj5d-qPDkz+&o)r2J5Amq+^jg;zzX zE0~#}?5cuNbCw|6O77g64$HU~MvpLlLANP{o;EsK14w28BvHrSkQ8AFFNSB-4f8v% z&~eJRoFl16q(yrva4A1s_cr11jc`3DA`qrCHlKPUG63zsl44q|YgtvSrN(0qrDRa4 z=Q0@jM?dn-->BuyvBN^eCf1) zEJPqUo?}VL8>VS;rRv5_4mU-p>u{7Vi?+*kmWtYGlA9u1=`V=7jEj!ZzCiXs(zWH5P@>jEXWc;Nx-j(gD>!!F|q{{t0~=dMk@BfV|1Bi10_dGnU+w zbekmuuQEHW*&`~;R3NMX&jCG~k7K8%rEAkNTOv za$9)34%i4HrAi-NhDYZxlU*eVknqUP2uO(ahUF#nzSRkjbZ>;~Bh%agqvVnPftWQi zwlii;j`ws;TH{DpSwU@7FD>+HuH{s3c`kU)4>6kykpxYVoYC+8W!^b^@`U(h^%| zMNSwy%Fa>n5yuBNz4(x*-Mdw7)ZlW#bOGn`jVCAR0EqE8;TAIRz_nMMVoitDw(99{ z5A08j&O$GV;x`N1smcAk(zZ~Ey*4?Guxrdu3)Pqwbl+o&Qzj)YG*zQk&VF+#M*^F; zzf;;(`in@oY>lLfOguO-yLfFI(izG5Bt2K~37=u`IVId~X+ODy&&*a|_#ihhCANaY zg&8L45nXXQY>y4rF!o{P*o=MW9LyuvlWqMmQ+AA%$0)ODJ%;I!iIzwLM|M19+exZM2 z!u;uHK64Y{ClB_Ae`gAwPOFJbcO^GL0jU(4ql1GjKO@ylK!OfmdF?@dkspjmf z2!KAa0aumztf72*i?uV0?AEYYQ^ebq1)Q-9m)WzH z-uO`BC45&BUfnZdUc0B6-sQlHq9n#~j$e_7>9Pr3w(X+vmHxbFBr0EOWX{&GATj9E#_)ypDgG{`rSnM<(+hfu)(>JkA31F2WRQk=jqu0cZ;p+l)h96!7O z3-VCaA2s9fXJK}n={s$>iFThxAq`lyL)SIxHr?=1Eo9M z%jB6(2A47d&gh39lV~_H!3&$yF5A_z+BkS4Gu;6#@$)@fL7$`D`v7)hLUH zovsQym#{nci8yRq##KmuzB5$TQP8mU`dL+4$>#&$Qgk;=Xx2)p;iQx};vYsp_&Mcj1i9=q=VFp zIH5jWvbtkOvP2W4 z@x=P$`_v2ONeiS1=Rp2)X>C;@YicDpmS>;9UVR*_^B9S<4#pBgR(uTR zj){RS){Y^ZV}YXyt>nZ|e76<#S=!6vrC6>@$fKHpRgAZC;nycW%Xv$S0aqC>jvE}J zn7QQ24U|uvPV?kCKBJNn_~3ajx3*Wqk3<&Un;72`2E7RfLY$U>ixYQXo?!TD1%2oh zyP&Gz*%<=2QzE5S<;i|@RideEBJ{Cm*hNa|o@ZBo#Ix+E03Mx7)_Bw!gT4BYN8W-e*>sYnm zY*DG^RIZ`*Rmv$nTv~C_Z-01M-At5c>BLT^RaK3%en_cDmIh6AQlqas#DlYsLuYEi zrTdh@r2$SR;c`N(OTs0U33HAWo?#Rz8s+kT=PrT^nMDUDt%=3rw8*CBSzD_}AC_|D zHffKO@fsXXg@XsPd26D81CC*I%9pJHY<82Y%he*=bvR{&-*{`p?&-zvPR7SIIB~VYvverbpXHaJ)FLWfCq?=*{Rh#@ zRD&n$l+kS>>{e-h!m7ffl(b#%b;LbFhv&K$Z$Qr|Arvo9V4sTHSu&%94kuT-cOmZ( zebL~wWpJ`9If$fzl*$V`av1gXfURL;j6^VhZZ1hFvWIJSu@>4FVz~of8{27_A zOv9nazOh7PI9-p?ts{4eQ~m z%l8fT>W6jJbPm>mj@k}qEfJfqY^GEkSE!E9UPC$G(r>!8NBB)8Uvj~1TUEIEv)Hq4 z^P!86gQ|0kbJDJJJi9X9wI|vej*bAw1`r{eF0=C?RA2!Em85dZN3oiQ2JcqZ#>HCw znBAI&OO9Vv*QFpI_+pk^$<=|DmfViHcYTspD%E5_HE|)E4NnTeO6u`_k;E&6N$5u&~M7|~t4cPOrce4v2 zVbfAK3R(INI3QB{-tVgVwfb=pp}#RYH1coFQqN~+Ij>|$&&2H z2Zda6o=>6-$&cm!I`AE_;LA$_aO$lFCw7bn3^quJvzqZp z!bj={3XjgghbT`tBk-r2@6U7S&<>=)mo~CG&cUl!brKHkntPJGd)n$r$t9!8MaB~? z6(BO{N(SfXS1QR*&5TGD>n$tbB?4(&@aj1SFUO9d=(vCv&WB};?i{?zIP7hH`*1G5 zc%;(@UXt%s(5oFd62@7NuG42%1>>t&hckQ~!fwFiO&4By;I!oVovVay*{N!B0^5d* zo%gdNsk}((CJc%mugD1+6uG{l)LtI#Rns4&+sK4!;<1r+E2ox^i^Es$4);}q!>SY~ zm0wcP>u@#rNEC@z$loMhdT?dA=b7jMf*R6rv7jc>2t`-nnT!$Cutu1{YNyQO_#^#` zneLfxoC(|0-Q5$(APIL50v0GGhr*D?;L*(kMXS(_BpC{E|nb%dL zyZq2?xg|skL-2^rD@%jLz|SCCnjgMJ`#9Vx`Bhc8S(}qPhW4Jyy)`^MBE{t-B*gV` ztTX$fq+@l^^=iQoay?3Z9)@GhpP!$@C_j7(i#+|xZv?r3sUZlLqFiGft2h}$EPmg~ z)=3mfaD}d>@~X*3bzo6-&%VSXNuQz(!6kaq;lintSW>48NG|>-{rWsRH&&d(|B!CD z3$fY7!bujI&q#tT@kpLyBjdCfgzyLYMZTP3F`N+cAyYkj)4@8fA(ig1jyNeH2gtmp z-6F54i~by)nM;*;xVg_6Au%_ioOd<4O%Nbz2cIl0!08gEpb zvo7}ujHIfM*NSCQ3*rnh;k9Tm3zIu`>g0^Q3Q3jgK+*}e`+*jLLnp+zM^Ydd)~J(- z>Ff>u@xg~oMBu~Ha6xqUSr$B21$W$Xiabv>Y^S)sa1!Ck8n9#At#h-Yi$6%XWuqdXNPO3Tn;+E9dQ+Re9y4J9FC}ki zbc^t86+)^4PMJFJ3UH#0&&Bz}sUp^;9qy^LMxNyuRslDOU$xdF!R=6`f#56$6^Z}K z&m!p;@@I;TVO8V^hGSQz7E<{Yz%8#hB*JWD+AOztTTiU5Am7Sd1u@rK$m zQE{nwEd{4-98QsHbc^GZwRul+Rl^CQG?ybpehD`}q-D~EIquAg|vhoUUMb!&Av4x zG>Jb7PANfOl>g^s!6~8#{noTsoM~_hSA`Q2Ew5&L5>kY;`}g+tNlUkoE5^I}`g(h< zMf-m$M7O?p&BlRoNeggvw0Z z3fnA!1%SihGa8GJjaob7UAR5SoQ@vLdBfXws!=5mcL%X^YmKMGeN@9K?b5Gh{%>wg zWk3>eN@4f7g;Q*^B^;kQ-hFoEnpL7u%^+D9oRt5*NAus04o(gY@0n!BiN*Ky54r*t zE8O=sZNC!pqMSh$t`?RC9FCiCeTHg6ET1qbTylpixX}-R0A3q}k8wfrcOV0&FX1e+ z#5?O~aB{*g$Eb(OsMS4;XEHXE{*qg2)t4!A74>b^4EV1ffQ+m0B4-(VuFw5t!@PYDk`oteGZlN~pfs#wK zpg<%6C4wCRNmFBd_~M)N%rja_LAi##qkWS^eZ~sIoj4}WC)EryM99%8`qit`FNyy? zJ)><;;!mh4wVjb22KpUM}Ua}uhiIU$C^pGTh6ns^1N|!=B)eV;anMMWQIXT z8cJlmG7?#+!D0S&P`xEX(+_eE{eeTVGRgj_)U!0`jQwW4>6`tEwoOj zi(%DoU2YKT#3zmXi78B8VL@0|9PY2IwvEwusKs0}W>gaPNwwZ7{whY|5x9U6)rXL zVYlY^j9KODdu-2DF_sq4PXr-rEog$B*$;CU*q5vBerLXSP@g?9rV;I(KV4Ie95< zi0?1vGP9Lh5hUXVrB^R0@F@IVnYD3mp(eA|-fIT3UY$HDc~#nv!)a~5BJu>VldQZp zNPjO-y@F~D&;ZVKS1zf>VT0j%)>LiaI2yIDwbqg6XJ$C(jD|%X9feQl;6oHx=DVNn z6Z}>3k@10XE4E`|FtKxZY@bLs!T2pj;ChkDqy99^dWE+5EJ>s+`L7N)NcBuU={yHF zU$2)Aw_dUD5Y%1Jci>xps$2#Y$z>ti0nI8*HD@_)LHt*AUE&vnB?cd5hamilkAVwL z3~aG>;8exJ%#2u`UNfqN{LGfJwsNbnQWRFro^>7XkPM!|6Qs|1TqqRFrBzJW z2>I~Q;guGA0eMp#cf7qGUP)L*64`v_s932E|E#u3PfSp& z%L02wiEKI?VWqC5dwa9R(qhR{N3}vHIN21}A5-EIDaK&ZY2cJ!jA02MkcUXxZ9BvFf=rBpnqP(foJEs+cTHI1uUM6z)6sAXBlkzX}-0f66$cmV|$ zaqhCPPT8FV7Xy9y=eUBV@r>XG{mg#60jVuiaS zec?!VmtA=}?AZ}5%y;IIeyOi;BX?Ha*%CPIct29b?q^bcqHLtN0i^fgGY^t zYG*%cNw~@N7f#XXB23%%z)ecCP>ZJLvXxOeXFH^P;N(lE6r4tAU%HNMtB$-o_6d3Z zXhf%5#cZ1SJ2k1~#K@Odi19duPKO#@T{e(-CH)@V6@HIoM1#y3C9g%h!|Xg+q@QDS z!{JBCsMhZjn^9>Z@t56XnCEFw;i}KA+de1dTI`Ksb^{PsL0>E3gv70oT%%&ogmQ?w z_Q+7=46|lz#}-d6)H?f!^sqF6@DfB`zh501o%HmH2J}eUni^e{e4>acp?w;DZgoW; zD&ZscY2YXo4UatTD`iYMS+T~A2OD6Z9!pb|Xal$IP<^A7qz@JFQF>hkd=S5M4u8}> zpL6)b#5w7o!ftL(e`??lp%0kM>PeF9@}u<4h)l5}zNH48*7)$sg{_T?sr8&F;tgn)BwPB`eEmmtZ{~2xKN61|I4L@$!^xjc*BhHE_4!7e+NW6; z^V8?k-JHXn!>8d~e(^{r!H7P(-s-^V96r^AQ(9(_QuZNz-JPRP;A?3Cr*rFWiFK#o zbZ*`Gtvl??VtSe_)7&|Bk(FI{r`;n_pERKBYm#oevIdD3+ z&OGa^8l3p{C$b;u__R9ZN*zw;^U>- z1M|63I?VjU{(dD@JV8r=E+0sEx#WX$@N!|8)PraEaq4z@TExLS{{Qh4j|%b= zE^C_nl`vQb_3 z3%O9=X3FypNwe2-;*nK83$`b@TGCHBZ`-DM9AP)}nldcsew{>W;XpoHwkERa1Np*S zVK$d7@f;4LgGsAgV8>z}ifpkfW>+OWttX#@h!UulmQ>kUWIv;I^>b(Z($U^-)ywD> zCoPgX*00`Fy^YL;78&8nPwo>{%{@yLI?`8};ZvUuO>3DYuf2>2{Ej?G-uHR;AynHtBLoSw?baoPX+w(-0tc6cU( z)nnrnA2~m7L|*-|{2NnN9OsmmaCY@zCP&*7R6k+p5@*)PY$7aImx%1A)Hosr3QkTD z*{|{m>U6^s0?1RrNyJ@-RoQMN!lx#QmGh_IWLJmNL}9U*M^?Oid1+8JXoi2bfJ@Q4 zXe7)v0kQu_@uNhF@M=7jFCWMjQ`Tn0C$Rk7r`~FMN^)vci$0WirQj46`^OymsKcrI zG{Nb#T5~Gk#MMYAkD!K6gNF)I*kO_m+YbyI1`(~5L9v=y7`4!#(+WDKkXOKulXo3{ ziP+GUdsYrcI_L6G_cIDc74Ye?dHydc|8x9Gq;hXqv_=Zkxw*|bO%hLJ~Z)vX0R9U zeuWcB%`EMM74YeevVB4lk5(;wbo`0h3@%E4=j&`=ZVnrK%cli_I1j982GD}hbOfro zS-z$^tn@pTCy{&SNvaffgDld;&*kz5Pw}By729=uk{Gz{9^o*P^R{i%=a>4QhqWV? zNiCGKMLxx3)9^yvKi#l`k1)r|(;A5NyWrzaw9_N3D7t9Vu(gM&nm$LIdH8Ivb6z0h zvyS|hJye)mWa%fodCv#{E2BB-BRq4p0w+FB!VCEb>x7pTU5yZv@~+y)G{f=T!F!dn zYxNOL7u`|t$#VEO>rcT4DR}iQm8X9FomS(R54^g21wJV`&ViTO)9+;X^1-nx4l554 zI&%!qay_M@dTHj3SW|`Tsey@ct@uT#aV0bmM~9G?B*wk#@4|I5e z*@{RM!FL6`#$lFrA%}2W)Z^*%`f$C+hhVj6PX0c9e$bNF=%{6A;DGdsz8b1)nbWj*7GEE-1FZ-pAgJaf zaq$5szJcRY1ztt_-0NbQo1?vJ+=E1#)f&U9)Cn}eNTMKe_341Ac>y5)J(-&rXvdGdv#9H$IL%D*mrcnA5mA}G^6g8O<7rJUPBO!NH z39f_$=C%`cQ}9yl_?Q_x!q!Oy2ZDgMy2f)LmEV`jTRU?&JQC@sNon&-C&t7YXS6Fv zfOUqnk_5&lkH8Wqgh;ujH_G9)wTH{!&iwC+jqZz$5}Ym-XQ?c>1ixiN=nPsdUgWBl zu>-`|MUSV`G9VBq|M}sUfEPzCI)O$oF3&EE#y!xrRvnLUkn-}G;dkzt;TyoxGEcRl zD*~@3ii@Q((}7ndTIuT#`Op3FiOzO%9o@Q0$dj_m%Y1n73i5n-3Xg`ndV6}Ec++JQ zB=5?qsY9F!l3nExTZu0+pMcyapz?Ah3;Cl=U`}T9rOKEWmDjDo=mf#F+=d1QFr_0= zNs*q$U0s^p<%Dv(F*?mwk&Wyod_74x*|ylvjrsnGcQ`L;8WVRRQ9ITL23MieK z%hGN`7|Pi12!0FDIJ{PXPO(>|u+)zEV0=)-#VELleP-w2!mz{E;o@3XmH6UybvOxx zaV&~DWtx~D!)$m)s0KrrtyPbi_A)!K28aDwBvpCsCJxHL0HRPvnyl3^zrsi@QD(Yk zHep~N47N3_Dvn)E!mIln9x=wI=(C_Z5-#WP$Uo3Zhu2IRkZO=luMqLoygp0tCvn?j z#aCw5I_R*FtL6H!Bj@-N<4-zVdK$+Ezg>)!zFm-EgwxaZ`eeD7D&s)OfyKgVgOub)3Ql2e zuRaGSZ<-((l_lkxsDM*gz496UD&*^nvk_*);%{ViqYD*j7YrI3L=}fAUSi6N4@QX-Nzk zG-&(p%$NF7191%MkrR>-C0wG@VjpXFN?0x=y9$mT-~#N@nD&D*qLOOM-T_tb*V0O^Fnt;AA`tO^+U;!%{t2_&D> zEe{?sI89)VW`R`Eu3Wy09S_VH)2YBH&dqBwIn7*GJ&M%9C?&`^LE1~^f0KA+XL)#} z)PFiTyhixC%O($}7Oe5anC4(QF@VX4f=0OG>CRju>HM_J#}Y*VH~;wH*^XQ>TPhcd z^VUFa7Ke||SrH{v$ZTqGPIzfiO;N9oP}4rK=ZDiG%?}AjiHJ01J`pAd_(ht^aVq=} z>&c%kyT<9FKy0jn0-cbySCcyXIgvDhaS7_|?>mCWsERJ&M{jUEObx!J!H1pMUctf| z4lAk0Pav>MaiYd~nV>JKg_^t!){n;E7U>mqTI6FBbVu-e5mRFA9JeNim^{APLQCX2 zRQXjRJHQN!&}$ zYZ9;1E(l2cQgnV>qwu20`4flPa%6#%w7En@pVShgD&V%Y7ThK*b*wvWn_PY1s#urd zNG*POC^rp{O)fv{R*zSOE+g@3I>Y_vVV-u3lo%mj7Ur{Ap2LPh=Dl%o9&4krx-`BE zTkNuStgK$uqN?@Cp}*K~#q8bo)-+ofj$TnHASA40fqV5?@dLSe=oRrx1r70V_u3Zh z1{S|dbaC&pVx#aqT-?P+^mtBes$+J<&WS=Xw~FI6)%iy~+ZbND=2yVQ9~bNOVw`p! z>g57eFo73=jdOjfi~DaPEDyJ;oCQ&VH)@<&ZugAnPfZBF!a{HUGs zb?(1Y@DcHvD0BFn#C<511ck7uoUP+TQkLL=F-ic#KiG5Vj zh&TyD;9ck5L|6aVq%zj5(Du92PMWH0zf<_Ib(`2PALc6p;Na_TUoNK(UZ_X-te4?S z1yJ8!#v!G!x_)k^9&y;0V=AwcyF2)SEPE`FgJ)Zi)&%UkpbgM070xbfhl11CN@5dP z`T(O3UifIjZG#q337t9tG2oVB8-CBLbFk38?>9DEr6m+%R1)AHam_^3r#W5p>%@&w;F(!unz z_%s+t@0M_aR>t>-iF|FH=itQ77}wVuqR=>;B!4>xr`m8@K0Y-l3HY0T1fM!{5@K>T zXGkTbr>{5CJF~SfVn?IVUQ!-ZbQX@9qP2Mv z5;;3`$X`-88wq?Resyo{4fkexd$!uWfEdRw=`Y>9SjrYl3n?VC%#d@dSOZ!oaaq>k zY+gdHTK16wI-So*Iv;W4*H}Kgie*nCT{4be$_+S0j`2h6r*W;rb8yn(gtGL*v-lsr z{s>Nkb4Y+}iJeDI2#howgriCjt#{>lZQ)+ifpRpS{3?o*dvcA?_m38pJC01okKDhL%tke(Hx)k=kns{by z9w}t9a~6&!={r4=#A&q9Z~Xtp&t+M7wd&z@4!?9)CL>%G>rv7z1uxpJDCm~hhvctSpPd9t zhmXv62Vs@#KS!nuM?7Ym!BpvJa-`BDc=pSxgisP*-92`i1bT#Rd*j|&b~|Z@NK*3B zp5Cth-7D=t^$4g!e3jO%)9Ln-@R9yxL~FBnF(8xBr*o;o8*(g4yOb+-?Tj8K(D+9& zG`Qp{Sl?*}Qq{02Wp@Z~r9Ac69541uMr8hgNx*4@!>N{uX4!lX$;%p$6YAJ@vxEdM zA{L;UJ9@Q>s$5!vmw1J^JGTEkE96dKmBg!j*GR#d#9lUh@r{7RbSlGADaja3a+=vznph@Tt@chf{<{BhzBx>m@#igW3)kiZ~%5 zXANWzO=OGn)hTg3A=E0S49<`0gs&?QTKk;!&wJs^He7K2c^4TkGJf!f<^T6QJWc-$ z<0a-ABWQ$-7NgZzZ?qfF745zNJp1b?JO6!8{eIf`rtxFrr^ds^ea5GZ&lvX`4;Y^} z9x}dUd?aMTxZ;1+-Tfn z++y5nyvulxahvge<96di#)pl&jE@?}jgJ{0N57wI-1mob|DA)teSf&Xcv|4Xg)W@1 zjPqTk`>+a56|6QJ5u?xOHhPUtV~g=hpZC5T*KBe9MLzed_w>2Oc{S?)5AEJH#-AH+ zHr`|$G5#;(jm9C|EgOHW)#2~T8%11Sz`r@)`@GhFH?|v>8J8PZ82!e8vBTJ9Txkp& zqsF+AFeZ$>#-wqz@mk~c#(rbk$QU!m0pkt6tw~DsQrsnKME{;=yui1v4vURg`&aLq zc=hP+U4#99dfA4w9qrwQYevg+UVMH>SI?^kNA^tR4D_-eJ-iaVOQ2_0qgT`D(Hj7f zYm8QN!T4{+Z;g`i55`gBuZ;i4c#H8tBaJH`G43_~)wmYT-C^8ge8Tvl@oD38#utt6 z7>^rY!`**o_s+jy$18UYUun-=(Rjp`Usx=U;8bU95#N`~!w~Jd z&M%A?N>sh#dNTLMtl#yaG@6?^T2X%_btE@0p7B1nqlgS7(~C1R*`jRJ=Y3?-%;w9< zbZXA`y#uNF)GY2exR>GHGAH;C+T37vnVqw8uMye+k8$oaL zyB<4|!wa4F$@=|^<#HjACBa7wi5z#MMe@~u-C2@zp zz!{gEL4KXknvzBIGlVJ`R31D6)G6f(`Q+ll0&+lQGX}ekVYvG4Jdf+5QU1JBmb0av zmx~8-T&kE&>DR{(94+O5vJPTXf1LJotk$0&#nN#41+a1TNcjt>{w^S^Y=g>- zhKdVRR`AEO#oRP|kiAFFi*{YrcaaQF{c6`Mmy;KcRqm^K1>VF{b8}?=5a9E|o2E{y z;OQ4z4BiT!`-$ufsP6%H4bOcBIQLy`zQqK)Yj~cQ6Y8oU?rV7IRPa3S#zUuyny-C0 zvU~6lX1_F%o6i;&iT}{^m@grrWCRsd{r0_%`kZ+?&oid%=6IrAFY^`kF<-T>i+Y@X z@v6AQK4QFhzjuJ*ItdY;8?Ngh#}0ak>#lx#9+P;Z`sux^;KT1TA;Mcjw9kbY*DZ0K zgbdeJ-ky{k#(`v*B{g2aTi%Kt5gdiuab4%22eZ+xL&y;FgSWn7cv}6Pdxi$odofS) zy%j4@d(QX%o`nqfkMI$Uq!t#yo80_RHa=7mb?|1GWadX1F*IZ+M!rW%wXNJsAnd{BZnCF@In=dsVG~3P3o6j}BV8+dd%$??! z&2jT#bJF~pnK!>-E|}jor_D#qJ?7(Pzsb zkIbK$1Ln`oUFI*%SDU{vuQH!83+8XlKQn)Crp-T?Ut4qSnhVVv*IZ!Uyv8=)vF3d9 z)-~Pcd)HiK-oB>8ykkw+ymQSTn|H10F+Z`U)x2*_i}~d>79jF+jAG9G_L|q4Pp(;K zKDB18`O7sM%-^heh54Ur=FQ))d7XJ(pwGNMu-ANBV6%B+;7`n30?#ww5!h(n8kjNP z7uaWhAaJpHd*Cwj!-40UcLp|@cLiq6j|8qX?+)xXj|U9%lYuSf{ec&m4+dUoejzYu zJ`@->zZmE>zZNK(-wGTsza4mk`AEPtzZNAJ%-;tNnr{kTZe1H(V_z3sZ(kp5vu_BR_S=HLwQmgm+CyXz)(^?%+r4`w$gW8WA2to_O0{r0DVpR+$5e8B!p@Im{t!H4YogI~5k7kt=$AovaY z!Qi*;&j-I_e@NkMu)iF9%Kl35d-hj@-?twQ{=oiP@Q3!-gHPMv z2>!_aX7DHWw}QX0za9K%`#ZsZv2Sf!AG)*YWud#9{y20`(}vK;nl^^+ZQ2z2c+&-; zPc(Ie?rXX*^vR}+LZ52d9Qt(A#i7qMy)yLKrb|NiH+6Z4W)tbVcaVrda5) zrvA|5P4UnZO#`7Pn+8KqHSGv}w`phSdriAS-)|ZU{h;Z}&<~q-hn{X44*jTUB=qB^ z(a=wt#zH@B8V~)f>D8g1Hzh*Xh7!T+LdoFup;rfQ2u%dv7TOcMF|;@M_RzlIO`*x) z&7rG;w}h?^z9aOS;H{z82HzEWeem6(so;A;FWT_l(3;?Fp+N9`Av5^?P%!v`P*d>s zP$>ApP;>A@p_bqsp|!yehgySohSmk|3at-*G}IovJM^63@z7}So{$~YSEcm0)%Y#1-y(0LN(D}iihWH z{AFlU@K>Q11%DlSUhp@e&fqhlOM?FqdU5c#q0PbHg}Q?O8M-+5`_M(fKZITxytetT z1J^bG_rUed|99Yq=Km3RTk|b}w>SU4ft#BDzrfAS?+Co3`F{r9)%;h1cQ?P#dT;Zs zf!mtj8F*jwy8`cTes|yl&7TR}-uyR#4>sQ)_)zob0(UfjHt^x*_XO^2ejsp9^IHNR zYyR87z0LnC@bTui20qdJcY*tw|32`^=6?u$s`(!SpKku&fzLGmQ{c1B{~Wl#`CkH` zYyQ{31I_;yc(D2Z1U}z*zwx6j*^PI%T(a?a zOZUcmT3)g7V=d=z{6tIh#!t0ew(-*~@r|Er`O=05S{~Z)U`uM_S6W`W@#`&b-uR7{ zzufrEmWwxjtL2p&zuj`t#_zOj-uRQ2H5-4`^0(%1TmELl?^@on;XhmccEj&m{?~>_ z*523g=-R*Scx>(33m#v){(>jgwq5Y#+SUucxAuYyzQ1#YmJVduf1#2FV=o!)4#8MdB-o;UeNKYwcQ=RUfbF6 zo3(2?u5Ari*R`&(u5S%mH?%fcZ)z)noYu&ry{jK{pe4ur5!|knCZTMj8)f+z4+O*-$*5_GwwO+jG zqph#pbZ_fxHhjGGwHrRs`nnDGwZ4ACr&~8}_)P2bFTB6?o{rD8ez4<#*3Wi4*!u2{ z&$pgueWCRw)nkq$M(eE|-)ueJ@vYX|JHFle zV8?e_-_`L*>r)+%w!Wj|vDSBXJl^`gjwf0_((z<#=)$L3H(K9qy`|%Ot+#c2zxA$; zAGE&w!XLJtf8o=u=?j0->ekZtcJDH?3D(_)Kg2h5ym|!cD(zees6hwf0&6+4@rJ_pRq!*RQ+GxN+U(#!c%s zZ@hWkMH`Q=d$;kib#L2v@4AaOetcc)ru)`S8J}5q-p2da{oSSq*4?o2!F8YQ_~N>j zO%Y?U-SuB>`ri77o4&vPYfV2`|MjLHuKz~U)9b(4^rQ9PYWnf|Z#Vs9 z{dbyvy8e--pRIqi>F4VoYx>3d$D96r{S!^UT>oU#uhu`+^y~HCZTijn?=?NM{`*b; zvHk~5*S4AM*R`!_zrHQdenVTZ{cUYc?KifC+TY&R+-or`s-W|4iE}+dtcON&Ee6o$a4%>uP_X zZA<%uZI`xxzRhm`LR+}~p|(i-7u%xkUux@a|8iST`&Zg}+rQejwf*6?zV@%RZEOE} z+xGVFwEb!OBW+i-KiU>+f2^&){qeSV`x9*g?N7E1wm;SO|Fif0ag|+H-T#3h37uhX z8A~f#)LW%3ZD|S_l8}~Gm|6Z`|D!=y8rIjclO^C z`?vikV_W;{WBE~kaF8!_8drCha`_azZ*MJ`g^gXrC*F4E1ikelzu68y!6Yl+e?2xc1P)KthV$k zu@j|#5WBPV4`X+g&c*6V|0s5M=~rX-l>Tw-Wa)gYzVuIGr%L}cc5msQ#qKLzh&7b{ zuh@G_|2+1-(!Yq^UwSFlSo)W-_m}=v?19q1j-4)Dj5U@1O{}@}Z(|RZJ{vnzx)hr{ z@LcRS4?G|H%z?|X&mLHgO&xe4_PGOJi~ZJt7h|74uo9a-@b%blANWS>3kUu#_B#hw zV;2wnee8D+{6p;b4tz8A#RF@xnFIej_N4>gihcROOR?WSupXN|@Q<;t9QZ%6KREF1 z*dHF)h|L}Nr`R7I_~+PH5By8)Tnr_E?8Bx17W+u)R&22J-(x>r`X8~M zFa6KhFO+V_zJ1`oVw(s4JN91(uEu^dKJl8V`0Q)$$@t1^PG>eGGuy8Wefk4e{xh@l zN^#V6Wg;55(j0x{N>%ieS6ZW=x^g5MywV}HHAG>l_G<4;B^fOmZML&Dx zy_r9E<>MI_uKaE^eC2fXi&qvhf9cAl%z>-%=!vVhMo(TXi=Mh#9*thTC3^bmP0=T= z-WEM`^hUYg`uvK{*L-?) zYj>h8HQk+09qVa+@JLTjS5HlICw&Q7PeW;`?BCLQhE`=y)gLVv5=8?g^cRoO-@=}O zc=mtO-%mzYKYZ-q!M~`AqPas}S-8IM#sltk>tFt5)hC|j?MpwpYvq+!uSDRL2)q)3 zS0eCA1YU{2D-n1l0v*x)sfBS&Ci2 z>oq*b>3JNl-PLhAX4NM%Kb7&`yFi&YyK|GCIh{6U`Ds`&ShiDnT_so^7$2h^tb^HZoJKNEaio@<=X{KQ=wxYv*)UiQ z?@JrA2{7@G^Em^y#G<3I%1>s0>W0IQUq5o)6IoC0IsR1U1D6kf9wh&A=l3~J5$cQqW-K4`L8LmStd z3t*EBs$!M9*=$MXlH+j^x)HCNR`EEU6jB=7T!q%PE$6Qf9lPTiEp*waT;EN{ZK(vh zJbEqhrJCm28t1DH=~B<)#9F{A={4;m{YI_pHVCoZA!uB=)cSIhHd;vOlSm(;*E%+h zDj#u5T7=H^FTSo&Z}2`+`3{5q+JYvo>tM3++`*0KKH5QQVbxPqXV{10>*#?tl#k>i zrCoDg>Y=M-@nN5rI}jtblR$cc(^Z-9L8VOMlr#q2nAcH#psbupW+f^iJ_pS#YmUZB zK6(A8t~>O2*2td2Ph_5a?ohJBIT4GVUHbYrT>aciwd>n}vdekM$27#1#|fW@YO*H% zd^yrxJs>^js}^jAUQ@oBcI$5&=gf6{aY{-+*X?!GhJ2m8&t>1+8il6OYj$H@m&}su z!{(r4pLyfwB`{Y95&s(12W%m|mUlSr^Csg(E}^^|IDwx1lRHik80V8W)>VK_I1;(o z)`6jHeQeEmm4Jr(af(yQcoio!g7g-jE_pvC?S*}qfo98VsBTcfALfF8BJ)wIyBuwf z#VT|zFF2O8R~NHvHh{dQNsoV*^dj1?66u3%gzB<#<9$?8&JXU$t0}ny+6k{s9kY%; zm07>{a@D>=m#byqqAqZEVBm4$&}EmWi?HMThtEe)zUQ|lAFZL;aFDFLy`98lfD+c5G#~ZUsFx^(_ z)9l*@)`szyZS;c;va!^<(}=3$+SCMe4PKY@mwN*4kK)7^UPiObx04{??!r_&xh;#?p4PhMtaEqX{6Vt@t@;mCYXGP7u@b52y3c$vBa^xj%-h-T zacJE+1BI@TQ0L*=!K^iiKLKh~)I=>vRjn^Ec9aZ6t4GO61_`&S};LG53w_HRNu z+Jrm4_J08B%WD7ov41hKaikCXbT?+G(}f4V@pYUnPf!@A+0L8j-=*oRv5?@DX9!T!GDV6Jo7ob~a9c^59R>1NZpzhG%>T=KNJ4oktBk6i> zP>{Q56ip<@gny~*2f^+WobII(f0m-%$bKX+-# zW6VQSqih@_0sFu<){s7tYU8BXU`_S`PNcDzA9nLnuQkQcY^7?r`%3y!2TjPAZlqVH z+BmLljC>axTy7V?OFGx-C8W>txgVd0f3o0HuRk1H-23?Vk9=R|vAsl+bCt}WeImd9 zxkFEI9pUK6Z!_fE9YZd+RO#qWCat;ts3VUvh4r{@-=FC7vI|J>X3?Fg^V>L~DWs!qNndcg#D?3( zA~bdMI=bE4kaIh(-|v+y5@L|2EQxlzko$#D4zwaze6=yZzZg zNiRow$bJLToqrg6WlZAy^`%LdanI!+=}qiJntAvP(rY;#>t&LEuII~0pW*b~`a6>0 zqU`4laZbzU2U>gNhh1H=EZ9~dG^44SkqkFFdRwfkh0d*O@7fy4Xr{nnt};Tp1azAj z^d?!y4sji;x$gL$>uR#@2Ud;RUVQw6@h=KABV237g=DoQ&3-1FDpPL-dO z?k#muyRYxK{`mDZhowafWJm|cm6`056<6u8FS)_~=X@VM(6+`8@c-yY#^aeCOV3uR zvM+;fD$D6y-QbR2>P9`%bA0|>dJEF|I0>Y$sN>Lel#vXcSt3s5lr|>ELEGnP<&oI< z-rYr!(TvQVy|GG~)X8AS9ax<9UB!_}S1>es*<64fXgB8RpkiNts z83#x9Jf2naMCOU-s&<1`#juJxspqQpa#uxiuH*gKA9Gt5r%YNE<_RjNk0HH}UXy*7 zuG{b|(sduf8I*EZd71rpkUkf%U+{WPpt+$cM>#iP|0w%X!#`t$R1}DvZm;K|EzKV2r4QsbgdWc(^#3AbkNJv|oD(7=5PK8KsVv%VFY`z-l zdQF2b^@;r!q&EikAAA}66G+$Pz(ExI^DmRW_A=>NKgf=ymb12B_%i9$FO%N#GU>GMdhJ^wEt@_lb-cMykqiQ-?anXP70A;$s%K)+io?|`}~|~bx)OBMdl^s zC$gWsA@k#EN=(bgPiLLl`?VLU_R)IsQ`g@=b6m0j6+J%e0lkWuf4e9_ILJZmHHVPBZ|nEMfk#gk*}%eT<_mK=ZaJE4z!zI zEA#0GrEQcDkF$`rNU#1ctaUSh`?$~dV^4kD?c(nR*llyXER<|>eb8KF zDPsD5)M-u{Pg-FLZB{99OCiA-E8JTV=f+r~493!?@554Y}WlhYD|45(bgYNn?lF^uqrYp-a z=n@%Dw;TKWpUA9#?gKvZl*GqefR^h3ooBi{$XX5OVO`RdEnF^o(yb-QIU8x&$NV3r z2ij)%LHo!P9n4YqxRubgd7V41ZhK8HlRoe=>EkbxKKC-|t1put{RlfA?)&23C7t6` ziS$)AqT|F1!iW>=+Mq)nlDayQ!4pHJ8-}jIm(#B91F5>1{|kF@I_@fTJM>!lmt3P` zO%^*yTS&v@Tm%j3gDYpfZeN4+c{YUhEa`DVZAfqN>5{KIIal0px`|(aW;>JK(7hpU zX@Zxn=)~Z}UYh1VdEH@JofzH2YZLBmm3v$DG|efiWdVrZwY-pdgf7qBLzn4}?~T9xdC+SCO?7m+@($EDL64qdc7#KX;9Pu}oE_Px(Pch6paQMK= zR>KdwF=UsMeRUf&Q>mK!M8idY0h*0e%?RD^m24x$ly(t1l!x@keChki40pB0-S_0y za#+6xePg=5kIzj_-8qH{a?)l5hb-XzGROV>LVX}L>Z%LJ^C9$0Dj3IdxC)+h{;Gt{$ z^jg({V|whR1#K1|kpY6ul0eZ?P>+8ynmyl<%P zsm$if4<#2rW8J%_>8z{en;UMw%r_I&ldV43!g&d=vr!|imMX#1zB_qVca+;(<~`I( zX>Q09L3+NIm*Bo8)y20+)>e?+McAcc;XKqi9}lrBy{aKoc*v1vYW|mNI9Bc!CwG5m z?ptX;+H_lS^Sx8NLU{W5=Tuwd@~VWsg?B>RuYNqUHo0IzxSIajpj-8Q`|ez(hV5n^ ze*U>8wDDMpUcYQ{D~PmMLpJz$)37s0ujP1d?ZovYzHRcnbvZR3_PU`v3Dx%*vX41$ zW201;y^p4R>z~Rz!^L-u3(`H*Tz;5hD&;`sPy5E{uO4>HoHONmQy(;_YbEa9F1}2N zI?j0=gQlNeQ(lwT{P}hwX$!2Ihi<@^xs0tN8N8UI=4u&HIn{NeH# zL;9f47uv{CX(Q4Z`gu6t2q;%OlCyDt?Q#uv=6xRg8hUc_`vFykbbljh^4`uuI=|qD zs@QO*y`cLL?V>7AoMbiFhx-YM6V=N*-4IAGvsFt~>NYCQ z+HtyN(5-63Xn&rRa4uLxa~rl2xUI@x|Arr<&U@citbi5RcG0`rF5;xmdWYYsgP%~x zk3F7w>{;BjSxvYInpr=FQ+uWRZ@44o_FBb@#F<~)ODmq#Gw|ab?lJR-dwT!Uvxiv0 z@$ZHmwkg-AWZjQd$u-H9l^`{<@gEaQbxS z33uUvFLt)_a7BalzC-T0mU8)m?|}~`&re*+q2w;U-3`J1Bs+rhhw9i|wjT>=hFHQg zL~n}Q=?wHZpG=(tQ@z`rPWpABb?Aq@eK$rNX8W1%+Z&7Xyv`3iaZ1m-iA8jcpC8nG zUiz|bPJ<>Z%W2RzyYq{qBd?P{ATR`UM6JcT*3?+)&-Gap;N+(h+?V&Kj(=!VKq z?4g%(hb%R7**En>gUetF$IS6{Z`_xG3#`9i+qcCV9?y1Huxq(MGVh|J`Q47%f$3uOezsGJQ<2=`GH@V>0mq9nqVw9DeBe}C#C#!xU z^Ul3=;nnr2EzqyAo<6JL`c${Wai07y;kw(q1u%a`#J-S`|QeY z8I5FoXt!_U_OS{bml@e|{XM(Mq2hFRQw2SxOOF$em(c@lWBlOmHAuY&oq07hGkiU% zDmG2yC3W2H^oEA~Jx4OliQ_Yw^yPbejzI&|1Dx~gYsekiPY;BCBx6Hl<90MFsx!1g zy60V)Dep6X9>(k$DlLjul1ppwZ{F7%Zo51@UVF5$j7+|1;>8u2Ncc9vu_?Nl9%$?L zWA~!UBac+4xwgJ<`7+PoWI}j^EBq;5x83JXm``wPcwps4p3GB5IQ1@L#egh zpGS@1nEBrCIdx2Lnr|xe)zans4r*2GjKB8oPtu>E9Qnq^OUoR;Q~Z9PyZp)L^KM1p znM_yzZ}EA=`HdeN+~nGQ%EDD_)|Ejw&2p;$(oXo^YMGaE-D-r+)icyRxlcPz>HTs% zdQEm@-kP!|Fb++T?{|~Oa(Bu3;&J2B0(2!lR!QAR#{J2*TSAA~gl-b!AD^13`w2&> zsi#~_Euwu2Z)FE}?+tbNJ^XkkRZM5xRo{KSjnqL~!1o*BT)$dP(jMHaPR)<)qZ4(% z#-BOhZV{(Dh26{Ntx*RNeR;HdH-X6e_XP4ZLJRJ+rFKwez&&v7irqs0GSc7tHMEUB&*)#OxhZn- za^dmG_lqlhk)G?UALY2^Wj=|)h=)A}eC!d}+hzyo{s_u{+GDeJ4%$LrpE=$#X#E%+ z(>qDJ3i{iCb{uuzN$W}FeBzk^P53(ap=$TxS?U02U#=U)@1zIX`uPEMN7hF;y%y=| z#uDx~I*`8X_m}q0A5Wl>&7Zrooe}5;yw26pdoX6Por_4%xt`v*H4e%0Za>9#R-mh3 zJ7zA-c6N|%?*;oLyMw-k$NR!}u>qRX`nf;Hc(*+0j_u#)>VPFjE|YrbQGR~B$N6SE zYmwJQ(hfjdo=tCjU6-+w>(2Z9LaytidHAT>cb^+flOXf2o_pS%=cVF%(dqLA#mvWL zwsl8xz@SEzZuoQKqT2On;PqLtcqsL-zMj;(fG6h+uKe_U5sB}TPEkm^ah1)A{`G3Q zMEdI9bU4~W|I%%HA}+|(?N#pWwRUodXDa&x*o`kKGne;m;9Osruj73ap807{#1%Gm zJL=wE%a0RhJMKCVy=bxh-pjsr>K*jnNNeW-@N?<{V`tw z=XS!|?H_R8nYrylt3sA(E`bBR6uLF1E7wz+I@Ck6Sa|(O|T#nlUUWg)Fz;Sy-4?acj zdE>P!_Hz^gaPt%5Pk_tkmPVaAiarhAMDq#W>ikpmyWrE{QeJ-yz5+fB{W5q*jt7I_ z{|vqf4!5GcRNm}o9QO@2LjS$sTlpSH{V4`-`##UbpLccS!6YI?l&|d|wd7B5qUrY6s1Vjyw&kCqr@J$Gxj^ztnD*0(*+MmatLzP!hSA)g%m4EW?; z&)pgWr9A^au;253=syQu-{kqYe~K=FZzH4be3bV2CU{$!7fOD=1Ag&N&)vM7^qJJJ zaXnmlpXYAwievAgUz@bsQ3tN&jQ7ZgXw^<$??+XI={MGRqe3%V9{H0&eE0^RP=s`^ zr$n>;h|}+K@$43Gd7n%9=j{&ge7ui48buE{enXUfy$AW=kATO)rN885Mt=*qOcf+wcY^05 z&N2Ak3ND{>e>HeNcscY3z#j*f&$~+;J_Ftc{p+CrD)<1n#PbF4QKR1kp9U9yZlL!Z zhdJ=q!2S<{FM~^bZU)~3m-yF$=c1yBpJ%{}z@-LvfxCG+9aH@OY4AGe`Lv(6G4M9< zT#utKfcJrmo&Ne3RfQ$WK25$n#@Em;+e8BL(1|J6(e_jHg0hji26@1z7@1^$~hi!22 z^Bv&1dwqdOeLeTxLJAN0=W<91eo#gG;_{2QM+a8N9~W=>wPfs@VTHcpvoA|NI8{ zFu3IFE8sG}mHM*;z5u=OZ-cLbOMS?s_Z$cL;sS~P_krhQ-YcB*$@&s-@&6cjjo}Y~ zH-St1&x7}YOMi6%dXjj{JxIfbAEGC zVTHdPya-&%r5e1(@cY5r4DSIS0+(|68SqJPiNiSf0=SHKUj$z_`o99t#=s@|{|#OQ zj$6K?9dNqB;5OXy9KD9@ava*ge;Doet>DAp(jKe8C&8t?G=R?;-UYr4PQ~H2p9WtC zm-_Qb@CX%0>|X?z&!Y?f3-A)?VJ`Xy@JeInzrY*7<+!=DBgdf|T7*_P?J2WXwM9OpX=Z}12H z2J!Eq5_b17&_3eXe}c<-DRzrqL*-3L*KBVL@LPzpeL3$EJGX=90W85{6ZkrK8Tg06 zW&D~1=kG>f`|`agBjBF_FGDCUfd47D^v}Y-30{jLkalzhya`o#2HC-Vk^T_!M{__=iMK$LB4M^Zk#5SJN|Z5{F*{-vF<4skD9tUW^VS0seLH zaquzlZSV>NK-N9JpLCqxZE(>a1Rue~LGpV7d<`7CMd!p0_zaHwli<_n@VddD0`Esh zQULy2;G^JW;Pc>@z-z&u2hT@C7k|D3UJPCc{eBW~e(S&|zz>3NqeI#PznwUW5X3+I zWq^NyI{b9{y94@$06$Hf{p>(s#Lq_p`u+g_`2ZgY@Mi-2*NC$}6L0kSpF=c$2fXD? z9!Nj)74UAu{|vkzycl-=mUz0jEkl3t&8hbP349J*%6A8R4V>P(?EuwFSI>=|H-Wng zvZR#nEqf<;$6NjWgZ?SHk9ayiAAo-RZC+Rg{UZVWAoNSnS3v(XcrF6d0R9>9Ht;_5 z8-EDC`gSjr{5}u91>Oxi+-^AzE${H48hjgk5_|-FKeb!dSCn`lcHRg+W%zr*3rf9S z>@1z**VFzQT<#6phW;DiD>r+9 z<<#h3z;kc)+}%@3FSDrM;W!lIfWp5YyyiBqmvQw*@UeG#E^(^{&v}>Uqy8y62|fWn z1AZ2~5fw!AKMuYHz5xA`;Ir@cK^zFagKlGVShl0!_DB!;N_@ScYx;}@%m-(v*7D~0w!OJ5&Z=5 zbn*Ep^wBYIN7~mX1NvWwJ`Z~7-@XjKZtPqR*!ep2jWzzbW&SDp_kcc|#x0J|F!Xqe z3W%r6R|)jX5Kh4UyTP|^_dx929kA01eZ?JKUkN)O4(OkNz8`wAKNZmbA@uV`&)<8I zE?@ryeGWQ|SzLnnpMZXUV7$&F&hcEh%V%f|`FaC*OPvSOZ{G+$4qgv^Wx#$7^jpw3 zLH_`F{oNk8@4up#9}L*}F!b~Hc>O5q`4iwPaHJM|3cToEukZ6u(U-x;!6%@t6`*WB;*Yw)L*u8+9>w$X!b@V#^b%X|!6>d*IsuYn`1 zQ3-h2`@I2o4-mb)9enjPIP5orUug0`>^};=1U}%CqmO~tH+vxQ90k7w?!MQFB%cRg zJmdB5`neZT{RBYI7NkJ~)B`1wZgiif>^ z2zK~8KRC|w-~-_Ifme5UAa;7dXTckx|0sC=IS+*YGI#>K3HmRAFM*>OM~mR`PA{B+ z{vW`X!7qUS8+c2X2czIww2;X8+5zuJJ%25D-v_g{{L zYf&KXyMst_0(=_*%fWFU1kd`Ax3l7(q6GLVxYXN^f?xP?FKmPU8SpLeM(~T^b$r7Q zZB6bmivA3I8hi=-Yv6+)_CUtd4e;3k&ykJjf56K=;Bq}R{+ zr|2f|RdBh^emnU3PkEul?F{(Vpyy)$L*N}B^<3)nFNz*q^q&>|PkTM8Z!`zK48HA? zqvyaEKjwkN|0VEp98mawfscbreCX#lTzv9=#@iW({nvwE1Q$EEfEWC%7mA%D;KSge zKLx%GUWoOmcCqvG-cB3p;g5q4{(|RC{wew;@HKFmw|`pff7}bDzRiKx52xCB0sJDk z`1u|1f?xD{;W=?1pFzXl48CD_HF*6mrP?_SK5KYCc;Vxz`cHsgF#Jp4TZX>~-ZuoD!f_A!!56{D!A1Wfc>S+< z;WYIB44(C?9!!E?1)lkNc+*z_;Qw`R^!aW2W6vAGe*k=T-t&I!Rz^G*ul3V0=*#~kRo@iQ59Ft} z(;Lu#B*1@`IG5MbpZnv=yzW;6`so0l3Glf9UkLEU0ROuH|JMNjZ{nP<+Q0VsT0pt% zeN+0l>%6X4t6t7tD@1Yds93kRY9Tkyse55)de@R_fB?!N1RUcUa#-v8-U&n3S% z5l>fdE1|FWd#{&zen0pO_yF?D_YHG=%D?IL<^Cyp1iTwO5Bv%6L2&8ke+7I4dz>EowsL+r_0yh2KX}UtiI&;m;U720sVKNU;MV$7y74Yf02*F4my}z zlw%2a&cAr!DD>6f6W|5#zY%^V@RDs0cHrmpV*kHAcb}W5m;VAjzvH>gx3k~k<5PSkmA?Ue)`n}dr$!X|6S~ZuYm7+n~!JiEnZ&)J3j(meya!a`IL8qx83IXB=q-+op*VF z>K=80XIFUcKL1L`{z>pc+j%I;243Fc zx%=!QrHz1Bf57t!=zjxz09@92X26TjdA<8gBJJ~6;Dh`@B-*50z6svn>$%*&yiGh^ zeZC6)#UJzfF=vg=1>f%DR@a}(qn?L4&OUnMnW(TYI@5KoySb1aLI+L<`o)gwt!VN3K-YvRbU+9N$ZT|FlgJ?)(j zfgJAYJlpL+0ykWI{Tn!6L{ds;n;ddRirUU}Er+5BKf z>pji1@A=-=6XZfyXVlW(n})jJP>Cccd^S4X430pdI9A(m^w2e>hk~KRh$@H+uQ%t( z+2->dWSJt~b%wLv((1@P*N`evoTY4^XzuRj8pE$$6%&9ODfO&3I@8liX76Zyte$h% z+fZ6c!8l8mr%lz`RL6o9hAZH;)rj-)NPEjUDu<&zUFVV&qRmy3ss~Z@-CZ3W^u`zP znU1dBR&mnA<=Se_M@X&stkF$_6=%9SA8GAL)HWyDJ4+K?r|OTEN7Op0fDtTeMd#W( zImlhzt(|i8>effv&rp@4hK8bI}ws*8A9z*S?yd~QXx&lb6Iv?}9`eLkUZ)s`mM2%}c^TG4&Jydxl24w ze)#6;-nx!0c_fEUG`Dxww^4;`af!RTp>B8eM5j;J-E*YA{=KJdonMdUN`W-kd(4H>c0$%>hqJBdVwgZnZat3OK!2=>w5In5F4+P@3M=K+sBW zN*}e-gXxQ^^rnD|Hw6morhu0>r4MxJO(FNwhr0BpKyYpf_+J|Ezck=~X&^qO=?k#5 zG?1@Qv4l#oB#^I?Kpf~h-qLj>x24bSZRvA+Tl&o2mOihyr7zms(nsL7^aXoc`uyCM zKKr+&&t-Y~T$ZQLWqJBsmZ#5UdHP(Ir_W`1`drdCuca%U^7OeZPoK+M)93Qm^trq> zeJ*cJpUYd*=knI{xx6)fE^ker%Ujdu^49dZyd`}uZ%LoaThiz9mh`#2C4DY$NuSGG z(&zG)^trq_eRj&yXQwQEcFNLchrYZkUG*tTpB?(DyR_=`xhzYcowD?WR+c`O2h->B zVESAhOrOhx>2rB7eJ&5C&(6X0nLn65mj~15GBEfB#=gMN7Z_OsGr_<(85kx5qvTEL za~T*TLqlZxvJ4H7>C2La!G~KP>wWB8qWQtJwK4r}>1#mx3Q!hxoju#zn&`dpVANMy zdLz|Lp2PdcV{}^Y&zbI|6ZqQp&hvdf;gmZQKSr>-x#ifYfhYwqn$wDokIf2i%+o$u;yK0~LtIw5t%C7F_n zlS@s>bPBgW<<(gxPp*Zeq?Hb;E1hR(H6m$17H-_~P?9DsBnj5K1hpZbkdJg_Y z?Nc>azi@{<>=p`AR|$Oj@lLla=$0e>+9&x=|Gk69-HN2|6@08I=Tz5db?0+#_5AkDnp0X+6`K zbJ_3)PBiyX*ORh?YM*IM>AvL}d)3Wuk<%XLFfXggDvnJ=H>+$>TT$;0w>9hdpFGn; zD|RZ~HTlCGw6Lw9&z|dl6iv3wYuFK9%T~0S)`HbrS(HnIs`}b>A&BzO`9y+h=5A&s zp{ALZpu5f_)Yv0QUR^KCfr5MeXx858)}&AOoICw!bK*=JEvr4`+KD?x9R)>p@Ooa) z@)i$M2iw}?Gk?4j1z1JtJ~`Rp@Di!+bbOPej+mB$b^EEK74fsQ?9Gjl_Br1{%flVK zcIoX&vaj<Ls)3S$XVnHKn``Pw0(uJrMKiP@mp?9K=EV)yParklKJT1Z}Jvqnk$QSA~ zx=@S7Zf)0@htr9v*F@D7<*80)>9prviqE8L$MFC3BfXv7bg?FJmS;Pz)25EsxqF(X zC}a+A$gh_3sM>CMQ<@(obaH3y_HilKbYhN5C3ABrw~ITX+l?aU8y@#Jx+c-^C3#EY z(^PW1j@9vs_^F=u+ICv#J$<^px9iMJ2Whs}lb}lAo^Dw5q1JCL%wPjY1*2TqQVN#~P9 z9B}pYo@Sb)@IGWJJ&3xy9`(Vj_Sdp}RrQw!c+cJU&d~1Llei2@8nk(z=46K{fC)^j z)qW@2y3TjBxPedH@;liC>Y{vtn}4Nh(;#kHPL$kF$~D>e1SA#7f=o)%6Mq_#>Vi52 zk;B><0!qr~!X+lnCtXNaar_RLkEb40L(E;g+R11{qAN=}<}!~_B8oFg6#KYqNM4XU z)p1F?Cr0kAI%#q5lX<|UZ&b3RCB7V<5(3@)k`Ye}(=-ro)+Qv)P}!!mkYoafJbj9* zgXxo`|Dk@^Usw0-$NS*okbXZDN%}-73!7@HjZO9k)%7Gr!Sfq;$<*nq5~9d)PC(cC zQ7=+K;2csa49#?t{U+5jb&{wQ^3qLoF|WkYcPF$sdH^^R=)1hck>pg> zaXg(e-8`J{r{WoK>YSTaLHJ$)&MSvQ!f#ICcwfHTG8PD<1DCCNmxW9n2giH`fS#hw(WDf(oZ$ve2E9jh>gek6cS*^ieL{6Btq`P35Vzd%j`cJ@=+2{Y|6nr9_xRiM(x&wri0nyZu6sxb8Sl{=)K^{U(zUM$JfeJ&RtlJ7}CqC z7P>8Q_biQw%vXJYFAKP9#*qxLn zwYwA3G>F?iO-_?3$9w5A%K7GwbQeNWDt)ra$+9u;m4tQYd)tyX%hh+CXzrvtP5Jgd zA8BvN)l5`-PTDPe(`YHt=hjImCZYy_swx5lC*wMMf{Y#Mqb5T9g^RaQPe}x8HAh z*WF_+^jr@#Zv?mPy-DeHe=?}_+Rl*DYc8KRc|9E$ANh0s%qTnB{;aa2`C34~9?;A0 z0@-}!p?o+F+I|JN)mH}e@;gFSKN8SS2kc)A=;ixOt$q333G07#mM?6puK~CEiGY4G zpq~loX9N0;fPOQe&$=$X|JmTyfB9V|o8NdqFW-Y?^#cKY$@RPb==xj+&i-gVs`TIV zySm3QrPq8;>9w7CrPq8N+_s}!e147drS*B>*3Uwv*Z#=wb=Wv}1oYj?zP2O3zhV91 z-?8A$`Xj%WWb-wJ0ovM`2Df(P_bY7qUQ&AP=Zdngx%}RRjf4E&g|)vGuwQ`5jn&7& zt^N9dz9FC=RC-dX>`zL4P<`$PP{-BvP<{u)`Z=%k+8_BH4D07c zz)$(T3+rdz{`C1R1h?@lQhM!wx6*4r6H2f77`Tn+Ou)`;z|JM5*ZwRjz2;dlpI;k? zY;YUT5^(EhO~6iVz)p*@v*BHEkA2FH_OoBv(OiC)!}>p>^g7P7>bNhdlzwWIya2DkOOKp||m=S9Y}j4dAxD3A6LioV!+N! zz|KxUAHBxM!TMPVZsSv}^t%2ug0r8x|LG3cNd)YSDLcAG4^1B%vH*LRC+0ndB9ar;?fPOBZpAYD>===J4v*nl#Zu3>9^xB_t zrPsVo>2-bRPic8@D2* z*ZveMz2*Z-uj4bQ^qNnB+qf+%JKFw|vZHzV_wMFP^9pd=4>W-Daq*Q>&Vc+Li;d?% zz|LggxcqwqyxHS!2lP7uz5K3=^`{^|y?yz;7ppG`=;e1{tiC>=ZvnUZwt&7bpzjap zF9h_%0sT0*tXD7W@o|{|m-TbuQvv(a0sC_S{d_>b1TOw8!=Ghv@kjWY(QiV(ZuG(< z`W}DYIR3gFWr5rFo2T@;UF0jh<`qh>?N=(j<}Kj1{dOxm+I~XW(VTz(K=P&ebU?ot z&@Tn_{CfuJ?B|2qc3KqB7YFn$;2eh==uft`fSrzjo$-L3Eyc5y{p{EKBk^%xrFenj z_$h8DtN^#|w-VgOA))NxtLvPdrh?t$YCZsN>*pZ2t)HVxugiT*={27L=ltTU@th-< z6pyJmtSI}s-mWV9n&;5>x$|c0b0N6RR}r|)SEbTx|ErZ=^Ez-oF21VI`Oy;Km%zE7 z+2fS{VG*4B8O@iKom>^4JoR#h{O(co2LD3z!VAHfc|8=sJI?Cqqlj5jZYT1jZYCc+b>Y|8v=G319k=ib}oWTd(6Jx`!@s5`Q>&h zd`{^(4kd`sywYpFVDxp+Uov{(i{PB!A5!^US6tVV%>dsH@WSHs@h<|m@vi`9f8xrY z>Hx1*T>Duc;C(ml`lI`YesK0j^HrtSY%4pOXO;NE;P`8QvcWn2n&%k(FyfhO^uqJNt)KbI zj`pWO+0nd6>9s$_O0PM6hnd?XU*qtTzI4cKk}u)(Jy~wEezqt(+MhOMNArZzYk&Hb zUh{sVm+~Djdf|iM*3ThjNBeU@+0lGd>9s#&O0W62(N80u6Gkt565RT^r0i&amX#gN z*OXrSv##`-Zy3GAZPVz5Z-HAsx0N03&yKRAd3LFxHTxf=8Z-#aceSq;Vt0S&o*U8`_rN9Xx^vv+Mj-<*L=X} zrT-Z;df`Lh*3S#dj`n9*+0lGV>9s%OO0W5Z(T}5^Od7rLDRAp&?oGS(P5YAvZpY2I z(rbSTm0t5AqnGk6HhSUoU6N`0Px?wYx7qQXzQxdO*3W9C*Z$Nfz2>z>FZU7F8NKj& za2wACWk<)eQQ6VFP3g5i9ZIixx6zke=kuR1df|QG*3W)rNBc9N>}Y;L>9s$@O0W5d z(bvGwQKJ_=25$WvS9Y{N6UvU}(@L-Xxv2D-<UY5B{vt3!ekGey%Ay+Mji0NAoSE z*ZyoPz2-YcFYP5dxLf~OFFXs}`dI>Q+Yx<1quXpds#JRIPqor(USss)Pp#1luLHM! zwkbP0ZXL>w=6y=9{pnYF%?FHL{24TQ;X~lo&vj)-`?I0!XuhrV>`yn^#g5Wz9+mlW zk@}Xz~^xB`e(raF5^ux$kk}Wou^xB^bO0W5_(MMRf88Ld{qu|!h?wfb(x%MXkZu_MHrPuxpD!t}IMlbE< zg3${f2Dg5WC_CEEQDsN-38mNmOe($RQ${awn>Kpk7s0KcGs=$kXI9zKd_n28KbMqV z^F^bNquiH_UidP&^|SGo^yS_JZp*zx>9s%IO0Rjs=%sx7j9z#@xb<^D+0k(uRCY8U zR(kEvh|+65YV>u8=a|t89|yO7PAEItpGjp$^NUKa{h3jE&1a3i4SvoUz3_Q(>*s>9 zqy4$0>}bBM^xB^lrPqAb=m+5En$Zhi2e*E1C_CDpO=U;(9i`X)M7R2SF5`7K`tvMs z8QH6J#5X)hy2FMJf-`Z=cTXn)3)9nGhd zUi&kx^qOBZ`e~H=jL{391-E|ADLdMqd1XiQMWxsNEGfO_%SJy3KUa)i_$s*db4}UN z{;VrInr|t+_Geq^HQzCMnQzDkqNP3y&noxz-1?afZqGY%z->RDuk_lV0;ShHZuAl2 zS!ndai@>d)ZQ%C0SO>VhE|UPa`RW6=`5IJu_P+`1HbY9U`30kw_BCwu!biYuzDAWD zT_47j9nB||Ui&kp^qNl_{W{`*(ddQGfLlMe6u(hjC!!x2avSSQ6<-Ip@!tTq@!wW@ z_Fwwp9i`VidZ$0G^v@FKEO4p+!n46`zH*cu9p_wSNAm)u*Z#znUh_hu&%eR@U1apa zi@~j*CCZNWr%c(=yi)14Kh;XFd5zJ_=T2*lUU(h2^|M~t(f%|jJDRsBz4oU~={4^# z`f|jx+vtTSz^$Ks%8vG@U)j-oNa?jd7nEM}VWY2spCd*ud=%XJIj`(!e-@M-&6kv3 z`?IX{ny(nWw3k(*7rq8={ajaev_Bilj^^7+ul?Ckdd;JErMCA5#4`(A+Pm;-cdZQQK0B-$kRCcsKP0Ehu9ZIkL=~jBp6GlITc=j2+ z@P2UX=YX=K{TWntG#^%a?azqPYd&i9qwsUg=!K7iTR#`U?fhX0+|D2JDt7Ce_CFuo zj$egJul+Aldd-WCeiHdAF?!);;5J|7%8vH4LfO&0M(MRbwMwsfozc(0&w8U5-T-d> z98z|)KNpl8%}149`!lBWnvWa3#BIXpg-?Q8Kc|!(?a#Ebqxr1TYk%gHUh{dQ-$XnY zj9&O9aO>xyvZMW3Qg$?7ReJ5un$l~&ZuIhnO&dlpd=uRIS^Vzw?WhFYwxbHA*Zx#0 zz2?9s#oO0W5}(aY~%Uo?8*GvL=!LI?TR%6H9qrGivZMKq(rbUBANBQI=E-t?odquE(Ub5q+vtVofLlLv zl^yL*p0cBPT{oWQKLg5+=3~mvZEAfZtJ24l?em;c zwvI~wiupSgpH`g9K(?6xp9}Cs#r5Z9wiUlc*^jCsx3NDJif1eSF2#$$?L4^{+|H9* z0{XUqzCWNJ2n>4tG_O;7ecXDb*L)tFk6WdVyQb`D`|HY%=JCTm zlWd3cCR>H#FA1dQdT<+`25=jnHl_cjveTjTnolad&hM1cYrX`|{%b!s6#qAM+^lN< z#DUifN2zZTH18@+sw*oM&y&pPVkE%S{U#6KHc<|o2) zjeZFFJfjz0VD#hA$BkZik<`f{TeUTO5X_&&R8qZeLl^ySdk8NKiZ zqaTL8(ddP@82uddZALG=+vwM!PZ+)Mexr}?^W{BY^umXXz6SaWMlXEC=;eF*MvY$h zxX~}d{)EvBpECMvo($49ZS=xtjD8OKS)&&|Z}baj?+ZpRe9`DPpb>ZK0Y=M+2A$~g#mq0KwlZqR|oX<;Oyt^%FiLiPbfaA_+5%$1eftN`+A?x z8E_d-h0iNJcZK;euU}Al%`X{!CG?9%FMJ7{^QAxUxe0FLzXfjNA0798alW$rOZS)s z&iT^34BXl;2eaKQc;xb<^dab16A0`_ME z_E*4d{aFRK^=CurUqwM{Lw(p(dd;_tUaq5U8@=!ya9e+JZ}%l+%Qp|)mTw%~#;qt| zr#N7zBA~Af=-a?;JUhT`Jo}WM<2HnN_A9;S14b`#8#H?1L*O=^7r<>ihrw+;#{>F_ zfPOZhp9|=h1NxPKKIaZ!A2?t4sP>x=ZsT77ZsT91^c-jD4~vyv^Ae+%ey_~vg_ncd z_$L&vSN@MEey`%=;5J_q;5J{=O0WIDsPvl882u#b;jGaMp98n~T2Z_~`M<90>-D+~ zWnc4crPqG$D81%Ut*;LpALim`7C6U8^K5YIe+xLbi*I?8?y(J=+lA(rl%4lcnrutT z&Nl_p^Rlv|`5HL;ugA4@aQ0vG9dP#les$dFgg=QzGNHNRl=+t3diz3?fc&wsV|XWHn6FBp9#^p}iY_?po- zLBDSF!n5x5$CrB84ShDa)I;HgMn4LDkN|+x%{V z+x+I$`JFkx`g%t(xU`GP1724GF6AP;LfLt*^0Pj`6N>Ba=NV93$N7Tdy8oP4T+&59@M*=rNBOw|ZjZYPZjT$C zO7CYDxYZX0^u+;vML=H}(ANj_4FP?BKtB-BPl4MwZwBma1?*(sn?7zi;5KfR0ey8q z-v`cq>V9cRaa~VF6xa234xHoHKgi3r0Tz`$4fef7&mFMQSLr(l20=!I_>{WSEO zMlXEZ=r2OQWAwsv8-4s_T-!u@%mbHkO?Vuf%UzGZHOh`&->6k~G;dRS?jPiLM>>>V z^FDBU+(BhW+aFSPG@k^w^>Yf`*3X%Mem0Yk zJ6p!iI^wo%>=M~rGxBzbBe+m4W_=8Ki7r~z$a4C1;*=M}J?2kTfKDgNFhMfX% zu_L@FV5i*J8Hb$;V@G&Rz)rv71*&|<1NJ8Z_NSE{o!?7}za*81o;Sg5{I|eu{Igp8 z&K$Qr%1$;o$4&DRa9jV&z-|4n1h@6SR`G5Xp9aPCxYh=4^VI=v^ECl3^%4zW z#=h_lWk=gjD6Z`f82j0{fov<8|=&&JHqFbokvuhH;kQ{@AdiJGB{kAQReCe(2kjGYc7(SmJGxvt6xa6qjQu{??>F{^4=Fp^{;aW+i~P?|p+{oFA2m*MB8 zu`hf_+0lMxwWXGew8w04DHq{+;9M@+PJ!au&thZ00dXiX_Jx-zJGvhB89Uvu({Jnu z9|+jlHg?8gXUEtP9<}@U*mhB)_)A{m9-F}Jc+moG$BXWOJ`vClfU`e(ych@P_O9pi z6X0BqnoleJtH^Vi=U-HM&1Z~$6>*z2df{{6?5CbbT~b`vpJiiz8}?U>ec|f?J6Rv_ zg<<2L4Q}I~7trSi^d;an&Sl^>&Xr34DsoM(UsNl-<~2rNneX#cYxKhFz-^ox71wcY z1Gn+%0Jrh!3+Vd;`k{dSLO?$S&i-pZR|9s|0(Le7`mKOI`(YnfTaG#4wjA@7UYA#a z(rX?!db!?IX!OF1z->8}DX!zw27XOBf?rdP0eyc!KMZc;GXieoGp_VH4iieR`J~ZH z9Hxw3_%yhU&#dA)KC9q1K5O7MKDiy~>q8#6&2L=kb-oIfUh^WOmwXi)z3>uno8Jn> zb$*+`ZGKz8ZGO80`b0oK1a9lY1#lamQKi>$7*l%9$Bka%Fk$qbO)I_T z7mZ%>HDmO`XTfcL7Zlg|T?V)LT>-cGT@UCt0{Yy}-TJ1FTM2HDTMcfHn*g_Q?gO`R z9#ncA&mpDP{DRR-Jco^5_z1X-^Qf|uLs^&mQpS`W%_o&!`!l8Vnok?O%-=2=z3>@u z>*u`Ux?DEEZMkfM+j7|n=%X%Q?p9w6Zp*O*+?Hd7((5=>D!t~_Mla=6WAwsn!EJmR z6xZ?T1Gn+%2e}Wo(^xB^VrPutD(bwTTanb07FM(S>mz5pu&x*36`MT0;e>Rj}^G%~~ zf}dMPFMJ!^`njX*Xn&#)`ub_hJqMiYiS{Q~={3(Y`fm7{Z}h?oz^$KgWk>s2sO)H7 zqV(FIGNsqN+~|kkXNA!VuLQS#Rx3N&pBiOH^LnM%{xm4P=8Z-_4nLcWUU&<*^|M=X z-7j4L=YHv1z6!XlBia{)Nt z=cai%INSf2vfr=xM-?Aboa?%5W8k(w90#}UVoK?Cc}*+5<`<2A2IV+o^ulMsZ8Tei-fYH`Cvdl6wuFubH4QFo~jc* zp3HT=>cQt83~HxUFx60ew+GUlGt(2K4m-eM3Os6418= z^ofAJFQC5=&<_Xn69N5XKtCJM&js{L0sV47zY)-H2J~5d>FYx_xUCO)0eyZzUl`CA z1@vVBeR)7%9njYV^z{LKLqOjV(02#)g8}_eKtC4Hj|cQq0sVA9KO4}`1@xB!`o(~L z6j6cN=}~_j!H7=!N%zv!D9Dg+ayjymSKG_UDt}Hg40(j*i1@z|LI2 z&O*S>Qozn~z|LyG&IY*DtN8c%xNU++`ZQ zrPsVRpsx$)$H6(yxhg(0igzh~NpZbSvIK79uncbF(AV$dz{h>RvOfmSc61!Z!EJn& zz->RX3~u|GHKo`6$-2^OzG3t=(q4>S_!hYBXSS6cz0R}a0-<32vpPNhH00he|v zJlE)l(SPO{z3_Z+>t}(oqy331JDL|Oy^dRn(raF3^yBce+~|c@fLlLn6xZ#v(b#W5 zc{LgP!aD+X`W62Lm*Xt@{;I{scgWLK)2X5=_Jh-j5i%PHKxuo=(FB|;;;=E$? z!dJmLMC0`>(FMJf-=66DIo!?8~HouGDHoxo2 zj_%Jl19r9oc5*(vJ1%gHWGe!<@hk?n@hn$*9k&Xl*Syl`C2rM5FT4ia#-{_^h3XEQO9NfmIP}$MtRix}_UZ(WgpK_(wyu#@FFiuq(z3^&q>t~I! zqy4E>b~JBLdhJi6(reyi^h5Bo#ps2%fm=TlitGB;4{qzjfU>Xszo7Km&taw4e8lJ{ z;s2=73m*fw{*N0w3$Qa`>;3nW_HKLMH?MaL*XQdRuFu!h$=^Ep*cZkYZ@Qmx z_}e^Rl;?e0raXH}^7b69NZvdR*Zo{0=l#jUb$>SDx<6&OuD1f$_0}lQ>)N9{dtLIj zu6@ayH{iP7Lvmj45nR{XhU!pZApKeT#ijxQ9`mJr0lh zBe#7^NZx!2uKSrH=lxuV>wf0ox}RH4zUbsDaNVCOT=!>>^1Kgq%CqlF-u9s(dGiCf z?oX3?o_hVH9`-inc|OOKXYWYfeqDJYdGjt@=Xpv!Jf9x*u%A<&=QE%@`-S8?@o+DP zk~hDE>paKgeBWkpy>EALy>HuJ9LCrCQ-bULsZgHRRi!-puH@~W)Ff}d2iNsB$a%dj z>7V2M;F0v3cbuM{^rYV{?8}+-m=Bzu5nT8G3aN}XHNOnkeA>yc zI{6%2@A(E??|Fgpy#HI2XD>>=5fAIxmb`fhuIExA=W}Vpb$^cGx<6eff9m81aNVB^ zxbDx0^1KgMlxH7H-uB^I^5zq`?$0eb?@#heocjaU{Yg9dRVSZ=>;7!Ob$<$!=Y80s zJbO{{wh!BqH!s0;e=6j>KXtg?pMALQPt(aCI{6M<_vZwz`_rR5@5348+53{WeK?oA z`2eo_b4kwollaod@6Qrk_b27#SDbtnuKTkN*Zs*;p7&vs^6Ul4+dgbb-nWrU2n$8uQ~ZGxb9C8uKTk?`R6}Ot&ERL%amuYNZ$6LDtYr=xb9D# zocE^z*ZXh)*Znzm@*O8XaPk*Ue&pn@oct87`+p19{hw3*`LzG{lxL59`IFbf$ZenF z@Ti|X0oVOsCg=Unz;*xE;JW_>xUP2#uInvPp4YWQdG@m8ZM_xAn^)nw-aT?&?>=1D z+koqOkDYwS$)7s;o|C_T>wXU5x}R5+=Y1Pfp8Z<#wr>;3o8Q27KWF5;pNanz?x*hO z5?uFl3vTP}J}3PABHY$%UXlDW-#;mN^F7M*KGZ4CzAt&(hlb?M58%2#EppzU3+j(P zuIppHL+WS0hUmku94uOwXiSDk#u$!|FMypyju`KptTeMOjmbbq3A z9OC2KINV+j&6Duxy!c!)aNXxMxb8#K$saoT4&3g!-Om%a-E;FE<@tV|QJ%dodApzI zk~bf~_1<2R^Zv}?xQu`7I~E3)ge6!S&qt;d<^ZxUTC6uJb&F z>pAw|dXDFm=kpp+p8Z1dc3wltn_t599LMBOog-Y=dk@$3X1?n2b6kUKJ`dOZ*@Wx< z6e-X9uuXaPlH_e4b|i0JhU@-RsAuV6iT2!8sfT@!@;sk9<=OWoZ(j#&NZ$MauJdeC z56|b2df3~P=lL8{p1mXa4nF=rk-T{quJb%2=lgac{Uv<8Y$*NaS5D7FdZu`tzmXpE znbQ+*J$|1PaJ|oIxZdYgxZdY1<$0giDbJphyxrRk$(!fly8m0`y#HmmKJOK{u6G}< z>utbwy@!vo0oU~o;kw=%xUP2!*Y(~}p4T;}Jo~-m zZC$ai4)-wXkMibmxUM%z&g)%+>w2?rUGElL*IR_^dUq(#>nc;8y&`#AS5@-nyKr4^ zot)Qu1lRSp;kw>4xURPk*Y#ddp4T;`Jo}~OZCxYDn_t0oy%Ta??>$`C8~e}U{^)vF z;JV&4T-Uosd0tnR^6cx9w{_(tZ@vN7^%lr^y%o5ww+h$w9>8_IO}MW2i1NIyHs#rm zC2#BMNZ$MeuIufQ^Lj7gy5137*Lw@s_0HhB-h0aPx?=z3>DQk!-tWiZQGb-TbtNQk zz696xrpS4{>u_Cf4zBCnhUur$pdXM3{-VR*X zdk)w24&b`pOUm=QMwDm2lDw^JEP3;5xUP3f&g+dIg?pvzO~7@%t8iU!2CnN}r#!DK zM|t)Q$=kZ}k~iOk>w1giyxt02*IR|_diR`s-N_%pqxtZ-Cr(e-={a-qeJ6hf*Ku#0 zo~hHb^8Y=4AJTB$pAEQQD;L-hLUzdCl`JCj< z3z9D(za@F|9m$uGFH7FMCiyDzdy+RlkbDjKrsU1rlCL9wEP3-&$v2SiN#1-Q`6lug zk~hDSd>i?(Aq1k~iOz{2ckZqoeLcT|>+AUhuJgQs>pbIM_hf(g@AFEL^WW!nOx~w?o;jZT z`p5eV)_HoLyV&PA-1gZ#3D=%1T=#h$uKT>@DhLA%1*xGEuQkDPo59*z5Q8u!}inK(UD z>f!UfcRcZ};T)rJKZeH5l5@`nT<>!puIIi*JzLaYa=b$R$&{~?^WQJfgzJ0`;X0qO zlfQQIiEn$dKm2)vBwWW`hU>URxW0~U!}WEnOnH92s!*Q2D)|{+&vzwnUV}&H&L1D{ zQ4fE-TBjcN1IqJ!nv`chlzi-^VSihaH$Q^wJUit4dUY!ODfIWG-~8O^xg_V;fhk>pY4&Zvv zFW`F5N0jG#az%OevE=Rj^0nm6Cvd$#x8%H^iEj_*rR!aS>v}VAUGExP*PEmK^B;z? zU*By|o;@#lTi2%K%?of{?>0HFw+7es?!k4vEx4}t2(IhxQ2zO}-V@5RcO`G@I+eV6 z53cJyC+GE!;kw>yxUP2&*Y)1Rb-ju22=^z-KcCjS1dsCUNy*!~mL+eVg6n!$$$7nb zxUP2-uInwsb-fk1uD3>cUe_Mw+3S+Gb?r;uyaCts9+LBVyKr6aDO}e(gzI`Q;kw>2 z<#}D#lxLqv-qv*^dGje;*Lz3K>rH-VxNo}NWw@?43)l6o!*#uR%JaH5DbHSzysc|X z^5#Xju6Ku=*IS3{diUYF-Zosv~sCAHNT2xaLc6-Jcz}?oXBSybrsSXRk@VjE_(DByV1a>;CLh&(gyZ?f0!TsE7TK z@;sjw<=KxUU&lP#k~cqw>pZ*Ue2!zdp5rxK&n5m{kDp@#uK5)wpLX&^xSsnqT+h8s zdEU1Q<=Lx}xAWbVym<|-`?*IwOLXpa>R~^iJkO^|dG|M(9d`>CP-jjSj74FBGKOC!}Y#xIQhJj-*)mPCtq{&drrOs z*ZX_|*ZbU~Jn!=v<=Oj^w|jdodGi7MZT6pf_&yA&hy9B3JfAV;*{>yU_jV$A^BcI% zb4ootpIho-pHrUab5D8p*msBf7M)k*c5mbG=)BkyaGmEeIp60hTwiZ@;d-BsoP68K zpE~)Tlb^u#e%`?Ke$FV*`*ufp_PONk9^OmdJk|^QulpH?>pT;1o#!&;c|Ix1v#&_r z?qOQ;=Bsd>XNG$C91-Q<0o1E|G5nS(Q8?N_r;N&ly z{MgA~JNd--Jb4~@-bdsKK{LrpL+tX=e|sN-nSIx*;gcQ z=bM(i`6^uZGebRmzH8LOo})a^XM^(WdCA-PZc5&~0M~hLlk>SB!1dgla6R`^C*O1O zBe=e9U%~YpCzR)XxS>4zRPuISw~{xX!F7M`sE5yMPCe}L?|X7Tc|Hkvv@Z4~$=i7) zC2zhA*LkMN`5ZUkdX9Oxo@2$ySDkzluIG3N*K=%Bp7-IH^6VYS+j*Tx-n_6FsDkMakUXYazJ`xEVF^@ZUlox<&TF~6cbpVyf3>^GF>^O{ng{Z{gA zd|qWHdGkBCo@4C$!#Z?7m*9FXNw}WlI`#a+hdr{lA^8uIFaN-kaj(f+(w<}U$3T= zf9jr4o_!{HdtJJdy!jli_vfB^_&&$_VY76eOK^LR?CW$%%JV#zC2y}wDao6!z;&J( za(>+?!S(*^!1ewdIQgcNKX&pRCqIPixnII{KgX2keY>VS`$Y0~zBiILpTc!NZ>fjR zeMUX(_mt=P#D3_>Jz}VBKOFYW_Q%dE4v+eyymKPq!p*UWDsBcgXp^ZJdYm()*T&>wVjD@ly$+xjT4au7yz;%CGeB?uy zy|v(aE=O=(?+M)IKYeLv>cVaQ=BMyz{%@pldvG2146fr|!EM~(OT)NhxQ%Om1K0a- zD?Ksn|4e$!@1365kA?B|ToQ1bXBquVaGR%jihB6ou8{M&XUI2cKeKQfxBKp4e(P`> z*E~->Jnl9*f8S;cZvDe&hyEk!H*ZTm`Ld8dmb`gK@)_h$ByZl8d>;8z$(#4!Z*$+^ zdfzVK(fRT|U&3u4Chs2BHG5bv^^Q&SwhO{lA6l{?94T`+QG%_SjE`^RabJUL5{C4!3ogC*ZpO z%jCTOX}GR;6|U=Dck($WUxY{V;g7oxoSvrB)21Fi_Y-6-U{JE3Ah3omw;CjCI zlz-|Re=3}tomUOdT^w%b+kz(~Z@vWA^G#9@Kkv)b!=9!*&vTXX>>0`TFwZr~n`hxV z&kb_EhnvzrvezZ)H{W)8T5!G3M{vE*C)C6D>eT7!IXy!sf9d4saJ^UeaJ^TFi>F@) zYS^D8xZbOz5xxJ-h2hF`<#}Z4tiFl$2?0t zd@d#Ox6(e;sh{^@pZeLGl;`yxQl7mf`61?iBzf~TT=(HvdS>Y9NRRm`_3%Di!K2qz z{`h!t0*O5;g zzju83XP?ZUd+Ls7haqpzMg8UB-`C;xdTw5TNBi@KG|vk83&?lL|A>4KZsR6j9>%T1 zZCvvM>f!rvNWMY+$Bv)EZQLBj?ZIta^K`n^IHA+ zC;88&aW~0%KHKE{=f&-ke-QN?k@LQd$obc~w{X4xGq~RW#4kLV|BS|6g6qdcNw|Jo zl!4oM4YAK_a62#atkb{l^ylHxef|@gX9aHK_Azc1ZsVHoQqP}K&jDQ5+l1?STW}rs z2(IHE!=w5C8I5~Ren&o%{`t$pIbBJ=`7QPQIrSti!_U)sF2Qx4Nq98Rzo4FFxb9C1 zuKSaL+qh%Qe+_Qqn&;rrxSvYn7RdjSe4F~8^{~X^N?2!!`q?XRoqrXs^RL09`Me8_ z+n}B|g&`OJJfI%-0rl{6dPP0_er-%W>^Ic&@id>A({tzaq<%3>+Ri2Ritz6%a61?C z4E$}*1+M$K1%I3Ubn<&nz5$QM{X|-C%jr3CdQRcC-Xhl9gWGz|&*8e>3%IU#2-o%A zI{BHCPyEu;=TgT!m*6%}^Aud?xekx!$@ee^kLJm~MR~q&Mar``;L*6zob2t0oWK5Z z>h$-V{%a>caq_oty(cs3;q~584}12PpWgp2_J192`){6y>;4zW`FYMS8OD6y{Nt z9`ik?r%67ieQP^@4%hb=1Gv7w7*YQB!W0+(yrMk&{{IXieeN1?eeSN|(LS%z{BNj- zU$>{!!=C!p$H!fP>$q9Co#PDWxDL1bV4jETeb|EQdW&!!w@y9${^FQ=cwHUpVLzih z?|+~2?3Ye{Crc^GGB%3^R-US=U9O2ecOWTeJeZpij!|U`C})40gvX-`!;s` z*74N%>3z#%-&WwZZ{``e?pqeF`?C(${n>Q#1t-4`*Yj<_ZJu_%hj5)|7q0U>h3h;g za2vOd{kehLxaKpsj=S`~!anP`Nw|)?>f|#{e$&Ypocsyg)-}eux^P>U`9Sh>T-;JU6==_#ToBR%HpPEQ`L z`?Cqx{VBq2f9e=_8*cMAuR8s^PXDp=chTRGe)Chf?$0$mTGyNGQa$`Qfk*3NpHZGa zKD?tmd;GUUsqR|>uKTv))M0s{i(xs{%yF8+rhZUa2waW3)k~H zhwJOu03MCY_hdwQe!aS)Jo_Cy8uz)+iaqmo57+g^ekVk9y-B#vbD8oy&m24&_s!3Y z8jEc?Jw>OdOnF{ch4Sosa9wYcdU&3P)Wd#8Jv{#l>fv#R)Wbff9{&E8*zbl-iSEy{ zX@BDI=>D*$DIcf&D&^TX;CjA!xSsD8JleOvdHA2bm7Ja(r>ExR_ndqK9*z44G;Y)B zIdpp3)H9`?Q+Tw`&w5zY@=L$%** zqy6D^-NB=E@ww08(Yn}UxRg3>9IoRg;nBGKdb>>i!w>(>-csbxd6sD`wnF|q@+^6i zdh&3c=O$d|S)?BBuaNWWe9h_KbNUaRe9Osq;L*PEd`_I6uG2H1p0}rcn~?Lm?wtO) z)4y^P&M3M+pY-IoVrlrhi?35Y`g++A@9%POdw*xX36J)H=egr}m7MpjM$Y@N2iJR2 zhwD8#b@DwYe-4l4&*P5Bd0mO$51Saxhu@DZ!K3-Gr{T8$37o+y-1gsm-RaLc{Ri-9 z{(q0|&oMdg^A&lL^4H}2{fal_+;d0H`p4mrP{t;2Oc_u;yqEz0A{FLv~Z z^6Wh)f9B*T@WuRTe`eH!|GOCXj(XVBSY*`0>&@d|biJE!UGFyB?oSf;rv$hAV_un9HSrR)X(GIQ$PFWH2h@Up8{O>r$l+~*`Yjp!^s~w z`IeJEa`Kn(Xn&&DN_)F@dL~ZKEj&8+=o+3pCp69A_VJAQz0)6iOZa)wzVSX}{vf#a zufer{10J0V_vGQ)Uxr8fz<(apKKVP*^R@ccFdyBw965h}vIf_CvIp0DasrRmyZAnk zSBCMraC^TthM&Qs`S9!iB{{C}qG$}){kewg{w&>w@pb-5xXwRAdEWmu%Cqk|`MQ%o zfk*3o0iDZ$diZtVf_m8J)WiFe{KLoByA0R$u2P=Ym7zR)5gyI|4G;gbx0cg$pjU)4}Tw8)#=%Fdb*V7^E#zG zd*Y9u%%9J310Lx0K3w-_`%kYtj9b7*PbNY=F>#avh}Le&k#Ko=`r7RdiJDejGnsmm^YlBru59vb0|ILM^4YN z^d#Op+?$T{n0K9?p7f;Ab0$6J=T6Us^yJVplpgbu(=(Qy0(!2c$Na|Wxs{$0dS=pN zK6iRze-`%Dp06r;;&6LT&6nW%oGwdG9X%=OF;6=^=Wu4SYV72%o&2qnpE>y$ zele``iNke1Nx1E2?^R)cm*KXb=Btt)A)k@F`8r(ZlY{Gg>P~*&$sfX_^Nr?eZ*8aN z*y$NK`3on14Yz$uzdDROf!n^B-@>DL^2bFp@)y&`d$B(ceb%4H>rxzU{pLxy_NS%C z-tVtUkNKM9TX-(Ak~iOg>$rJxURM#W_hB2Z_n`{6eHdUqyKvhF^BO#w&kEg#J-Cir zhwHdaxQ#o;xQB2X*SrPSagU{EhMtb}n4dU3J?Tl}xjT~{^S;w_Aw60245i2X(&-sX zPZ2%W(qlexdTynshMt-9nBO@)vA=lwd1;|14!83%Pr&uOmf?C&QgFQ|n{c})bBtSn z+qmZ2aD84%u{a_f%KQr-;{pyBgr?AZ%f|%MDlIqyOK9Q zlYAffzU0j>BtJ%eD0%Z6c(nigd4?%m_w5$0`!;v-_fCH0FT?%Rb60eR%5E-EiH96kPXVgYx|A-#q2ni}2_MbP@a7VkM0luI(-7S*Pj{g{|($;f6Qmp!ykv- zOHXnQoAg)VN9!?Pg6n-wlCRLmGikWZGmrjN={L_%5C1xS4X*bj3xAt?0=IEX7&i~M zb(t67(YkotqV&|!vn@U5J5EnUdRpkIN{@NX>8VRk7d`vZV}9WD97@jsJuT@mZ#z95 z=^3NvM0(6mot^<)&-VhZ=X>Sk$4-9gVN)2^$hoUM*ZyfaD6?@-G_PE z>reW9!oP38?e)jJ0N0)!xIPzUxZcAi+{P_o+(WpHYu<+IxF^!nKu=eC%+H*j0XaVx z6S$ts4P4J9{(r;%={_Xjx(^vAzvko*DbM$zMS1oMc(l(;4^vCLILvPdkM^1Uit^F@ z>0&>}lxM$|y#4uy6Um$3z@u|~*~9`xac!eV6k5x>ut-d&|imIr%%v^ZCvx&%X9|Vc+!Jvv5844a)QR<|)sv%jCF1_|A z;M$*Z@+(e$4Ib@J^e(D}_iI^rv_I?x%Jb{M7UkJXl#lL1`hCMa+o3#rS@L=0E0Q;_ z!u6ii;ks}8aNV~d<@vd|q&)jI<@q_CP@aA1?H)hJBwXjS29MVD3ViGk?OcWYJ;+a} zpXb@7e)c=+;rpC=){}X1egz)QlRZm$Uhg{P*>~XfJeG03Ww_ulJ04c%FUgVIMj9D<|K4_LKeOo7u}OA zT=#7quKTt_J-l!G9KIM6T&MD76a`IPBKL4D@_kRU z_?O5(m%Itr*VRL~?&pbhNAxQ-i3Jeg1Q8ewlMaGg&YuJg&m?e(XM*Pl(ez5bXN z;JQC0a^9aExISNHxISNP>fz_B=k%O8Jr|Vc=VeHF_6g%de-FxU!u7lga6PYErziFHp;UWT;M%k0R#@;uKY%Cq<3(R|)wgFgItLC*JN z==5JY{d4N!b4f3SMe2Q6h3kE&IQgoRKX&pRCx7AOhfcotj$!`MzVUhW$zM(9dk)w2 z4&b`pCH!U*%_rfS-*EDIC%^0DYfk>m$@iW7$jM(h`2;=~()BLEb-gJkzvAQz@aVkw z*Kyl$d;e0y`Xp_A{!b^aG{o&ON7^S^R>ZsF1V`SoxH zkLJ&AfB2NHH;xa6biGBm_HR?3`|I#%z5Ke-a(a%Oo)gOR>t2`g>^->cXAAe?3~u{r zeh!c3`NoI;+1rKmbkH-D9`ljYGnSqndak9%{Ko0Im7W25X3}FmcY5rbWo>^(=!xT- zXl;MYm*BcT%W&(Nq9-Li=4q!VBRzBUtVxggy3?~EJ<0bACz+QX^Mcb;l%6ztwx!2> z$LXm^PZm8@=`pW4J$30Rpl4rt%nzKNL+L4@rzJh+ZKtOrJvH>4NRRoc({m<04fOP- z$9&-Q45g=qo=fR5zjAu6rKf|QiS(FHot~NW^w4uBJ?8gLPaMDL!k(`IdJ=GZPR)~W zeNI!-GeXab^q8+YJ!{f4K~GkC%yUjpUV3Ke*_0mhEvIK&dScn|yqBcMyzKN;r6+}+ zUFk93b9(lrCxf1b^q4oDo|g3F&~qd`=EqLYiS!iE)0H0cp3~Epo+5hArN{ij>A94i z5_(3`V?K6zCel+y&yDn$-#R^a(o;vzTzbr7(S!K#rq5RbZqI2GJxg$VPR*B{o)zh7 zqbDsr<{76aD?MHGtV@sihSRetJ$>{Pq{qDI^pvD$h@KtkF|Rm1yV5g8PfdEv>rPKY zdS>W3kRJ0xr{_p|V(%Ybf7;Sx-f?=m(vw2Zsq~niIX&mnlR?iwdd!DT&q#Xm=(&;} z^J}N)MtVx zr6-G?Tj?>sb9(NjCyyTcO*Qs>nI|H6c+>Z%Nw__yMf5Dgt;c-D=~2TspWdZy^Plpgadr{`LF=IEJ7kNMQ;nMqG#J-lw* zNssxx(-VJjc>ie6R|-7|xIL%lNw_|zDe1|gXGMCB*xfD?R2przbBxMf7Y+ zkNK9yzKN;rKg6TUFk93b9(lrr-7b^^q4oDo|g2q&~qd`=EqLYiS%^Q z)0H0cp3~Epo&kE!rN{ij>A94iF?vSQV?K6zCekxU&yDn$-#R^a(vy5mcuwciV;)OA z{_$!8ZqI2NJxg$VPR*B{o)ziIp(iap<{76aD?J7DtV@sihSRetJvHH8VBoSvf7vklk%FTr!N|8*z7 z@8pl*(Rx3C=Gk+4&YYfW>iIzGnK_<(w{R}exSY>8z6rN`lK!CZx>11JIht=#&qs!# z7C)f~*Ztgv>wZ??Hf|Q`0G!#p&6Vo+f%~(qmqCdK%KxLC=Bom>)VlN7B+4v<$saiRQzzeZ@|RA2E^$!|OPl9MmPqx*nwxn10kD)}FUE3@z# z^+%t-?c>)MdvLoa<_+rkRO)HMqkF>N&v^)s_Km$yJv`3=InQ$lxBEQBJTKukPxCSL z@I37|CtFVu&qW-+Y1w+rlkjLixn~)!&qWHZ_apT*uA9 zb=(5n#%*HUEx3(qUWDuG$u?ZaEx~o%3f#u+VB9L)#x<|Ob=~~a&!O~; z(9@D0^S0B|k)8>9PNc{D)af~so;iB@(qlewdWO=I{NTl79lMks^AYv%y}E+y`Htaw zzEilJZwBMu!tH#`XK+2=JGhQJhwHfU^uq)3@Mh!YF>V5G5|g zRfFq3?7?*(8gLu8jd2g)Hm-RS9*xV-#UWhBZNYWi4&27=V%!tBjceY8>v~V&I&KfH z8*&G+Cs?!NS7(bJF~^QP0&lAZ#3 zj-i???;w99dGk}r_mJ;N-h3$eKJu56H@}hm0Qsrp&10)izds!zABWp{nXgEG zihNq~<~hmFk>8NK`L^T}9}=G5lH|>6l20MOCwcQj$!CynN#49G`5f}6k~hDQd;$5P zj zN#49E`9AW8k~cq*{0RB3FHKQK(JL>t!FyvyQbGWYe9TIqYOFkXP%t@ z9Hbq%j$4N7xD6+N;N;KXdcNmyJFlMIAGn>D`IY1c$d4s&ek=Jg@-xYs$KN~br_E=M zd;)IsF<+5<>h&eGb>x zhveFm{pZ)Q3|!Z{2G{i#ocxxPzk^5f;d4*E&y#)T^)AEp+>4aw^=?z1eb>p?oP5*C zA3FK2lRtIx11Eps>M9-G?=J)bqUXQx`8xhfYt+>A80D6DOa}hQV~)Rk%K18Mw~BMm_wzw5W&A z@rZiZdrtn$$0kUa4cGOq!gamtPCn=4i*UUs6{n}_^qj(@ zk58fxKa2SLd3*5a;}iD2(|_*t&!|88cr}Cfk9XA19{YeN`^jIAYm)PQ=)j|W=5s%R zNBhivMtMHRKIPemPX5x#-%y^%ol>5C`2(M@CXk`5sZ8{S>b29XLG~PR|wPc|K#x zvoF8q$$jAU7Rg^rzfLT{b^mwZy8ru5zTxCM@OOTgR`i_KR~IjDu@m@<#Cz~)-}w1G zC+B;90oVBt;X42H2ZjBK^1N@W@F>r|PI*4x9Oc=!oP5#Amz{jY$?s8~=UJybdk?Pn z@SJ*h{sZb^PevQ|@TU8`4A*^LhwF2x64}N@I zad`C8c;7aheBQ}d;Cc^F$^UAxv*90o^4HPpJ8x8!^u?%>gJ^8Dv;U03FH zkMF}8T=NwtUv=_FPQLBrCr}ASxPlfXAZOU`c zG3D9M;4gWYC;z(s+Uc1%J@JjO4^a=l|6PGc_krh`hU@;UQ=aFUqda>N9*z5kFonha z+#!Df`L5GnbNct4e8b5P;L-d2=EsJe{uCbVCqDFE+=q$NbK~@sKJ4*z z?Z92NBi?KTGuUH*ENIdx-xiChPs#DA zphf?^A!LMv-o0XbRX~~_r$=iTe$~n6ocxB9KY&N)$oJ&l>4|-Gn7__52iJ9N zIQgQJ-*)mHCx7DPNAPG}_!7|KzTG%IQ>Q0gc>KIp;kpmI@Mv8AczECGX*fM?Cx7hZ zdrtn$$q$|UrIXKp%;Wp83DeTbMi-z!zCOO{a zF8;%v(?56mSGU5tbe;n0#X+L-1`Z`mF>;CLH`MQ&D!J~P8FnwHiN}i$l z#6RxIx?V|Mfa^TB;5yGL_1x0__sH>AZY{PEXzGId*zFPR{@y z{kkdo_0AB#uDO6muNmwkcr^b{efXcfT}#glJrn6Mzjb<6i=kBaGXvNC+=fT<$36!1?e&0c6xTCr;eVo^qB8DJq>c+&qL|&puZ*k=Eu~-_pM9LuMb1G?*AoR_y3ym z{CT+v<=L~J9L`Jc=Q>>P=a!Q%I{AAiAKMP&YJU~}&JX`NdQL~!&t16PAM-j~@6Q2T z*VTmUxE&{d;^fcaHqR;MIe^;>rIf ztk=$^iE~+oNBQVJo0lYC%7j67ByV1UzxJVrpWiB6_jBmvFP;1i+~%Lf{HJi6zxf?p z?^V1M_TjZM&jeiOnRoJ=PQK#gt4_WFw{?}Ut^>HO%e)2Gb&bhi7?!v=usd>miell* zcyW)$joyuCe{sRF6g(Q2JuUf*%aC7{y!o2sd-zx(D|z#rT+gKmkM0|P9C8THiC<6;zn{HzdS*_~@~1r% zKfLKZPr;*c`8nNl@^vSFNO@jYi}LK}aJ%P&{9<~s0o?An`6XQUb4jj(vLA z2i@l+T=!?0^1MImaGU=O^UuL;{^lF-mplyr4q*z51sC8t?iO6nr4F}oV{Zuiwhy;) z&71I-JdBB}vG@rsxbDvpT=(aSdid8(chtlCGp8Q*(r1Ll>w0(Ky50u-B@aK1e|^z( zdJdhQ3H3x>_BMBV?wy|H&kR2~>WKE*-qy+a9&W*PpNnwa=Q8Da-zt=6KZM)s_6ojU z+=54Qj9zNZ+fM(n(|=ESetu)06&A1aUxP>c!~3ua*L^5BJterUYZiSm{NZf}ZtF7N zrGDO@8uha`sXuz%PQPJMA3LOe_9Mw>k#9@h{8;jNEH{kXhC7&Jc`2pOXBlDKif8_Lc zsh^*hQ|f0Qz@vMziH`xJ8O_M~b>kkc`xE;IkMHLaT=PjMpKx8cv+ z6a2lICHOP<1YU7^>TsR^K3wll)5#w?`956de*xF|58*ohE2n1$*ZJSUb^fu>3FoN! zI9&59aGhrwuJc@j>v}gG--7FWig2CJ4)sK1+gpVkA4)9#QwMJIZ@eM=j1#!c-@HdX zeBTCeo#zEy=Q(onS5E%c$R${@1CW{gCoJZj18lL&|f{CFR+#;L(2auhXY++t2gd^)9`mx(vnxG)^wgxsybjmraUZVF>hxbqf9fN`xs0UWeC+gJ zJN@_4-$B29QQYp2c>-T7*Zo<7>;A04?S9ra!~C;w>o;GANB0w7T3`Hx99+lUfa|yg zxQ*MuxLa@=*L)kUt=^3J@DLv*br>8AFWAq$L zkNJtyb1FSE^z@|1yzlf3q$l=~;htPbkNKt3b0s}V^o*s)eB$&>r6-G?Tj?>sb9(Nj zr+}W={~KPn?H-yZ;Cc^}aJ$bX^ejt{`HIuCDm^vyWTeMD>-6N|`aEvJ^?BTO@+Bu< zb@IDTe&5MAoP5j4A36CGC*O7QeJ6kJv~U}e9y^WIQgNIzlPiX zbg-@o-1f)(R`Mg{XOcI+mwe3L?|<&ouS@1jaGOsS`K08{SKzvzX}IoZR{9I*UzdLK zywktw^lwXl75ydYH?KJTRj0o${Y~`mOTT$j@&n`#C2!t_>wX@?bw5v~e~SK|^qZeM z{R5|eB>f4z-@lT6^NG`cr$;?2(F2UP zGx8Uc_sQQ#eh$}rHGu2A8c`2Fk5^95*y*`(@>3@t|0m)8NBi~>H2)>I&OZs)`L9q9 zeoOIU=T;rxqJI8-X_5Nbk179qb|?=&b|}x@ck<^>{t_PT!z*YXMo!O_)3f|fAAdbb z!FAuZoqWm3x19Wuli&JhkI$zF*ZI`p(LV6+r#oLSAwQP9`9$*fA06^Hk~hDV{1N6qlf3yoJbJ$Pp2uq8 zyrOeq&%*8F&lWxpvkte9Kh5*-=p6a;{{^@{*IRJC4?9l2?Br`se$UAtIr+Ae@4{^# zsvi~3$yyw{H>Eu z{fo!@SK!)TfZIL~u&yn*?X!6a9_{mc((7kMdM4aFP zT~MCiUkoYFe&^)pPJZcMKH29tg{!&vXA-XS*@W9Z+w)t1+di9b!}UJzNKXu}S7qrj z-*tNG+o?kop ziIY$Kt0(K??@Qbu=Z_zns*$uIruC+qqI+Rr*%=eZBp zd7e1=u9Gi(ei&E#x8T};>g0P)ehPo*hhd`cM=ImFxP`w+d=A&wu~hxZ{_vlFm4UzZ z;Xm{1#u{AbzvbkMPJYkH*PVP9ZtHDey{B+nuX!J?uO|cP>7wUCddx>o&scg!=((02 z^9l9*b=dO7>*rj0vgo;&9`ofd2tV2Op@4h}Zu?-Kfxpc;!gF%IEqJtV{QYdlPS2*}CAjYA4qW%M>g0Ew{3-k; z4{PFe_2Ig%bGWW+==4k+PvGp{?qS^M{X(`7ASIrIn;$?VUyb5oM*WhjOI=n01fcM3l@S%7MJ{E7or{W#>T)YcU;11h<_TVY;K0G5n zfJgT)db6G(ydXY;m&C_#e0lSko(a4z`6;|9K7+T#=kTt0>|?^b`{D`sP&^4Ai>KgI z@icrco`EOunr!=)h1@Pc>|UJ@_CtKwyNUAzi!ir3(6@jARK z-hlVToA9A{3qBTa!>8gM_*}dTPdq!EzwKuao)YiFGvWhyPJ9S2h>zeU@iDwAK7rT8 zr|_ou4Bi%>!@J`4dAYuL0-whliYMV?@f3V2o`%oGGw?+G>HW{bQ{p*zMm!JCi5K7n z@glq=UV>M}%ka8*72XuD!Q0|>cvrju?~6C#L-7`TEZ&As#XIo1co&{{&eQwfgQvv% z@QnBXo)aI!3*sYqNqh{iicjEm@hQA1K7+T#=kTt0>|^ozFP?x8#gp){cnUrhPs8Wp z8F=EkPw#&go)XW&Gvax8PP_mwh!^1{@e;f$UWV7jtMI0H4c->7!@J@Qcwf8;ABwl& zWAQe8D&B$5#k=st^Pb-S9y}%9hiAkG@SOM%UJxI_OX6dAReS=ki%;QA@fo}?Ufc@n z9Eg|UL-87XEIvp7L_C4~Ogsahi|65q#MAqqf+xk3`1ma?9)oAZEuR%nBOgY6^6_fJ z=7axW9}jdsE=UijPqQ}HQ$ zCO-Vf0p{Y(&oc-=+C9nahJR1UuTv)QqfF9=?heD2=_$CneI$&cZ6$g$fU3~IigEzzz-x$0pp6>*2iC4cVcw0RC&A~h3Gk8}#a}x4B z@#41x?~7NzHTXch{%ygB;@xiWk$C;vgOA1A-w}Kw-v7?vQ}M=W@R@k+yMoWfJO3lN z{pMS{KjZHXo{(RsC%-4S{rLozk9}|Ol;pGD7d$OqJ`0`^uYZ5=ta$4Og6G8hKNvhO z-suM~h!1}#cu{=z!@*19(;o?57Ek_Y@Tz$3$AZ_yOFtgGE?yr5Z;0o9B6w50^pn9` z;;Eks-WJbZ1n-FFe>!+qd;;%@w|^$&`{JXY4L%T${ao;&c=qRmkHpKr5PU4&ybL}O zZ{yEHn~IlzDdcD3nO_b*7oWjn^7)YdDC863<6jA$6p#IC@RWG!DtKBv|7*cB;^kit zo)vHYM(~_?cN{z~KKx(73*z(N3|oE{}a3>-k$`oi;sUN zctd>tyTO~{$(!IU@!anRZ;Myo6ucweesl1ycmp3$_rzOo3HiQw=MRDp#K&(9J`_*> zVepZ7;g5ok#jAfDd?MbS1)qxd{v`NJeEg@u=i>7}3m$t;_|aa^Q-2=*Jt3a>i{MG| z*k1-uiKphl)8hHR3Z4-!|8?-Jc>QmJ=frdO!SmvCctJeDOU z`r&OZK6sblvF9%S^D`g+H(wk)Azn@ePl~tSHF!$A`EJ3};*IDF>kn@k@!U%Ata$CE z!E@r>cMqNypS&!1LA;#~UKB6CJa|dG{fgja@xglpuZquCgV)4U?-jf*UU+5jhIl;_ zyeZy(@8B)*&Z~mA#k;Q#-VqM~0q~c;=&mm&MEY z%|KQ0W+CKj;`aBc)Ws)n4Ect5`(uMQ#Rpr#TjGr9(*p|+6f*@ zJbnNB_(Q_<>k$+D`J4Ln2>WvwQ__?D?9i`Yr?5YVPQOl3!=LA+U#Do}&yC7S{{VmP zPhQ;q+>?TMvKr=76wl%JW0%D3_br#jTb~zts^a$h=xXAPe-iR_@j8BgR6{(C--pu_ zPt`(COFW6+U(put!#m;={62xMcoN@V-V@LLt1xa~yo~Rk9*B27Kjeqv_Wipf@#zn4`=kfh>Q}OD*3q3RO*1r!v7w`Rt;EQjzdw2w*4{M+Q@Z+cvJQ4lN!<+f+ z3xg-cdtVehC7%4^;A!zLJR?3n2>Gmd;!A?(#4}$SJTG2q1}~_8S@5EG^UH&m#0&o^ zcv(Dg7`!T;{fgi<@$y#&uZ!2eDtJS@(F)!a?|yagmiYKT2XBifj)Hf@$MCLr;%h>_ zC!YJ-;C=COJNQ7n`E|jE;@z(gJ`(SLL-4Wqja;RcfTok z?Cqbv=c8{9o)Dk@_uxtK*tY~viD$nxcv`&hZNW3*^=|O2cqWI*yf|tY--yOUxp6vy%ikH79culC_|y!2ziN8>ZxI|K*qqN&b53Z;|K8+vGR+ z|IrT}{Qqcwejooo`k_lcCGU~Hg}hJx2jm0tbz0Yu{QuHCN96b9WAeWxpOF6@xy?CR z*T>ViGs>@#&&i)lJ$80c&*zXQ@c$!!D}HYDLy{a{GFklB6!|UX)8wzB`DDoPC8EX8 z%97(tL<`T6<4Z&fw>uEc^EK38puFu#^b?BYG0K<7bL3_64g8Ki+R?` z@ujJSH^}j&riC}jKZM3@k=vKDqMy(ve=X%ZS~TljBQYi=qMf z2IYt3cK4#6Fe1m7#1=hc^4C$%gdATITjZzY_!8Q}XXO0%!_LV+l=|%sMEB>z$P@Vg zkuTxrMgt_t@hPgsxGC~yQ$9@|C(n>Shuq%RMB_dinP>pJlaa^CR~DnkVo?WiEGyo? zzi*4%>qu3+fI01pZ^K*SCHRTB-3fa=w0ZV0SsUN{8lFI(c?{pjup%CZXT=lnP4Oh$ z=4<_{aC;ujTks?4vG4QfiYM{)=5z67_^r5oJ=+e?#-Z5Ov8|hhpLGUG*Jl{+zCJ@%g)k`P_)#zFY8kBK&CckG&-P`>Oadd{aCFuZf?+?dt;8U&K2i z`+UCnENpf`8sp^`$jLN$Ns!H`#hNCJFgBs z3B10VU%}VJlWQSg6tBYT;*<9Y`L_5S{8YU1z9E05{(iyl#Jliiysq2)H}C<@y7(!4 zTYTmHL;s$54}K(m@c|)!CZ6~}%wK#Pek*TI)O9B&bNF zl0q#CH8&8gZE#8otrl#P_|fWBt5dOZXQW&{+B#L+3XXNA&Ttb@v1qIEmCJ{Df9vdX zl9Q7-|M}1RywCIUJmH?R_Sf2Luf5jVYp=bJ1)pN+RU7}@YF*D<7yNw-zSaddYIXic zUGO(8_$w}W#+5pM(gibAI-*myp&DZs0S$2($=SyGE@Yyc-lIt`);(~Ws@C`2bF$=!U1+QD6>#^-AyWPDD zHN3*In{4=v*1~Iv3;vb`-|T{yd`Z`{-39Nm;Ky9>IoIp_D=hoVZg=iiHGHEBKI29W zf7S(m$b!G_f*-Qr$6WBT|E24hV%ckUyUE2GZn)qZA{riX!C$xFQ5U?fUgv+*1%JhY zXIb{3-R>V7b^g^Z`21Tn{2>?om<4~)1z);M=YPuu-)q6oxZty!bp9!p{b=K}*MiS> z!ROqj^WW%#zi7d2yVb5Ice#bXEB`7B{-O*1x&?pB1rL2q*W--TH{8*cYM_usS?$Pir7yOt7Pq^T>-K+B_UGO(8xSFEV zZ9M<@ZT%i{!7J|5aKi=fvfvRHJnK6;f13-w&4NGbf=~Ib&cD|M-)O-Px!`>kJn$J^ z&c=Vr{rbJc1#kNY4WH|RAF|*}UGTo|>HPP(;B^}{{Bak2n+1Q#1)tKP^B;D>+bnn> zsMBry-?!i;E_mJdb-uYS_=^^NsS94bN$0=M1>a!7A9ulzS@4%!@EbQ<_`Bc_S@1x? zQ2gJr;3Y2jvp=x#cfmij;IF&jOSkI$Dm1kI4=s4H3!Z#P=eyno4|QtzS{HnU1%Jo| zFYeO$6E1j{1wZ71*LCasfw2Cy$I<_=elKyspR(ZByWoc&(fL=q;MYB>;ax6x)?*s} ziVJ?g9%hA(l!`z&~y3m$nw=YP}%f60RHb-^!= z>HLRWaQi%|zeuOsc&aD$d$9|?)Pm1(!T)H%Z*#$)eM;A}*#$rRw1&Uvf*a3h_#qd3 z^|KltDAvC=o~!;*zt3>NSNuZ5=eyt~&uRE=F8KQve4`6~-8P-yf1due+nxJ@elKys zXK&Z=`EGbz!&kfDGhWp22VL+7E%#wVK4@3*<&FIn)7F8HclI{$VT zJhEHE54+)eG(2~z{x8NVT;1vgTe%nuG*R#Tc7the?HoVP(&v(J!x8PA1{Lw?Ye3uLU zmIXiTf=Axb`ExHA+HUc?`hC6&p0waAT=0^^I=}6=v+@7q5e?6}aA^IFLUGOd|*ynv0{7q{UJNHtv*uegB#M;E3?SemO!Jl=(AF?)b zGiDC0=kYX+PlXG9CSAjqy5J94oA3|1;L-6`zg+M$7W|M4uFlo@{bfV(Sz*D8UGSs@ zpX-9J&CvB6cEQU^HGIabq4oF8(C{u7e3i9vopIUF{2MOS`72!TrDYl(alvzEX?WBH zFSFo}y5Jd?>HM#_;1%T>e#`}5TB+eB^ilXSuD?=`9`hT;=lrt_D$ z;4_wM`1LM$+t)R`%>`e((#k)3X#LyPX!vRu{JOOot}a}8=kitc4g9Y9y8c~iKYjhC z+v+b|b<^rq>O%8zN&TvNbz#HGmAv0BFH+``3oGnb`}e}em8;5}FOoy*GRyFE;cd4! z*5Bp^e*JcJVdL$~m*4a?8vNSrt8TjR>d$}if|aZ48=I`GH!WR!^VjQ_-=w?vfAoKd z(n5jJu38N1{e7E0*1O-8FQ0dT87_Fqe4TTJ6~r}>bZIAG<;%5x#f%ZS&w96iF8-Dt z7sD=KCAeOdn9C!z|KL5kN2|x_g3`XUVVAet7xf}Acl#^u(e11Ay`&EQv&-8M5l52K zQZF`G+2wy|#qHV&c6qCI^YiQSJhT;XvI0vI1$IgOYnQj7*YY6crGL(UFKyL5vbsNz zWRIWydjlyWm4DMJZ_~-Hz;56Ez0E4`rr(EF`G^YvyPRF$Ej)}gei`4_;}^2lVbZ@e z{_OHLUai0ce|P)WJ+2{!i?DWiikSb_^8ZNfU;Kh@-#(Wv?Mqke@^<_G08HAq%p;!k zzl|~7{tO#n{YqZ>Xa7Fncs3KP|6a7pJ7Mx{m$TtdSuj^ORl+L2(UNy|ej9)L{bxLk z)c-ek=>9)jsB=pHGx)R1+x-`O+-*yV>)zGVj(E4?k|N8RVm)vyQ$_sD5C}jS-SpPVlHRQ6gG7~m)R#{o) zW%3wFYq@g%RbJ0vjUM&FuY&C{VU|&0!=wHEbqU|%H@xJnUj3Pg;VEk3!TjjL#mcv=m~s)1sypaYv4$x|g`IxL zO!u4V)s&AYHBai0d}sUnbBg_HL6u)MC%mez7noAfh35s-0x->jAtuy-M}hJ;MX9@* zcB@KMv%zy!nQHb>-%h2P{^gVYx@x~pi|`B|WF>w6QfWu(`-FDrV`b4(YC$pY4;Mri zwkYqiR{B}BO*OY=wcS8l9n!Dbgj&!@zdYn?DOSxTv=t6`(rbWM`#tGi`ex^m^l9J_ zUF*r0w$85k)e~oZs^jP)&lAV!ORT^DflXc`mGouCp5wV;cc@(*QWv#&y+?W{sJbOy zqp}s8y1=JOsbxLTVC87lu~=muNoJ@zA2@i(@7=g0SWn(CI8@OlXOzLIAsA8(K~G72 zP|7qyD=D{&{!1GN&rxM6<7+{$5eY7b9#P6J85Lb9X$6A!+5Wn(0hh8N+L5wR$};8~ z;f1rvm@Gvb@WBLdYwD(-jkFgDM1tXxNKnSc#x-$rxX@4$sy%~IpX~#=G13asF_VL`1OFOxdAnj%ezH_YK8h#_RqgLllWFKW> zL6)bvr?0<`xtrzd?=O?Ig6*m~l7a?~JiAWz*VWTcscW(F9Kpz_yBS>eShR0}_Tkgy zNgK?Q^sBm2^g+fT1Yg*AABJZd1HN>h-GU{ty4h}*C>6_Zv z5UdfpnY8qow6y7?prsRj0Deq@Z|760*_Uy5&`}Nj{7{ZV?J-}sLvNm@^?Kv$UNI2{P;zlyR7GhJV$w! z`i_6KhC26{buxCTf*Jf>%wHLQ75vTS&){#4N_j%end?*s;}owN$6qdg#r$2Y;^7Q| zdyjc-4Zb83bprmB{KxoxZ)u^KzhSJ3 z*N;`HzX20@6$00WKw?YH2DLQ=j&SaiB16z6S!$e-N+`8WWNDT19ciV05BOBWmx6a^+UZ~9h zyV0}YH0^-XL}`y$;FzMFHtG#4f4lS%&ELK_gE__=Urb%lyKZrScgBWt`=riVkJ=`( z+!OG%3#@jIvAqDAsL=W?GXI1<}+oq4z+3zm>n(SnbaL7c2i^XMSbnM@PBy|EHDz zEq-mfd6V>mzNkY+%5c!>?3xz`=FZ7{l{yOUCz(4nUbRinB`@>H6PrX|8hedYD>6Ou zj;6KwK6>!|dF0II8r5;YJLyO_JSg+2figY5oS2l6c4eNO%r{bJ*X%XNsS0`~p<@;F zG=HI|{0i+vmnmi3DRkvGF1n20$}{{j-y2_sQEI#{)1msB*(WTzFFV4on--wdV>R)uYV3-;%s4*|{+JH~B)R&R=Ba zPu$6umxC%n+JV8eDLRc+e_=4Oc(9FZ;DVb0p6^K?X+xf+ul3+c`*G1VrVSvtgKxdr zccXH&S!Z+~d=8#AEuzx?Pb_-eDK-RYmBP10$b!PPYc|zHM3;NpO&vB4eFHs&|H(J; zT%K+z$ym!AG?Wjozo#^!`YrNWRALMx_xZh7Z_xO$YPUPMN@=SX>m9Obl z@aDYd#L!xQ=Do#6{3d?CjSPEi?U;O(H9Fs$u`WHzoUU2Bc9VB$gIuw=Ei^87QRBEN zi?C*CGmvh)6sb4_9@17Xzn<%il&?<9xJT%-7r3NheWwfF*mE8J>#!T)(V81`7quw= z5utriKy~uZ`g^w z`qMwQ<+Z5MP1s)8sQ#wVAJ>_9iOnoLF1E7F1toI<9@|AeaH*)DqB2{K`I^Jg^?B9k zRkJEm)E#F2GY5Bs1EC;ev%|}uq=id(5Ae>PyoY#~{Dq{~0z;1OFnGR_ zvgh+RCr}ieN*!$#Q-jP`($5Pv2F?$LD~f{fHg%kj4RjuDBRc|G|9h|r!WE%lE%o>) zFLf8vR%1yad8O^bU@^bNf#P6INpWzF;L3BciEnXGmCz5`@=?Fns?+R?1O>2Gm3Bg5G1fy>@yy)du1%OFkd9G2T@>*TGzv;C-pLq6VA3 zI#3@}FZFPQt|4fMjfqVvV|{kb3j=yl^q}a*!&Cjs|8mi&;YKVSK^V4@NmnLjUm z2xRcbb0K|`-`sE{I3FDFk7NbLE)B|GuP>{Vb-{$BZ<4t_3yfu5!x|wljbHl1{6A|{ z)(6K^{{@xHgWWv)sM|~3HMCnq-ST^VNY|ZC-8JAWf4x_$v+Jn4$CrsLn-trMEbG0R z`UE$rpE^GTC$7V&Q`Dy_Zih~hAm^RxR`7cpzbC=(1m&k!Q$K%fjbsJD@81|>DQ}mV zLmg6vEvC9VX!8O71pjpKf2Fc1_#}TbD7!J-6nq~VkY|D98Al!Sr`;BOlDdmYx5_R^ z2RSGw|2Uh0;- z(m&Ra6Bv6F-?7y9yUJUGPw-bgb{RAhy3_~5V{bKoa~*V6&~ZF}VQ@6~ld-gEjcxxx z7h@@Oj*h*}8m~w&GPa5FiVPdC&oN&0)Dbo7$)TQXbIdNJoqtkf+( zQIjLV!&B!l53Xb$T*W-Ndbz!J(stdySZlIDf51^}1zC%U%@H2wX%D||MiOkUzx!MJ z!^X^ZPll&GI@)*|S@LvrbTz*oerx#k@>|QV@9Ah^;Vie}=U}r?#$%O{`rw1j5wA+U2TwY6x!BOy%%x5oLhw+% z*v{bKwQwkVGql~=AG@9K+PgP7>;HI!`pahHr*ZW0Q|ezma{VnM)UVf9*md}!)Mk4f zH9%whI?^xrK3;%Ly9=5g&r~UUot%(Z8i+IX)HQg;k#ljS0ui`=)&q^wK~kWRVjaSH+E+C+uz&Q z{rx9C?!Ma}+R>a`hS8uwZ^7~wJ&e2IWuQJdbYh`ocHD0ih@Phbm_gMuk(A_Ymx_6uX{5jxWD%B+O(}# zsz7^<8ryD++qFgA=h+%P+h6`atnZ^%d|QkcYbv!7TPk&MOtsj)jJx-U7uw^Ntz&%f z3F2E}eC_!Zp)X=jO23@^C3;rICkov~X0&=#nXEIUuA@G0>H1|26)h#Ic}ecIcXh!} zHQ2PW)(A5mB1=VvCwlZ4ac5eJ{Wo+FN?;ps%Bs-yYht z$FP(3k6}j~xY-j=?ol1}r}`f_##(sWShX$nNFa6UXMxn|Cj+T7&jeCi@aHY|u@=th z%v=0D)!f7H6xKnrFITe`|Jl>5((pZO^)y4Hx|3T2slLuYsujOpRaBS37iE^oq0FB$ z)U12Se%|Y8|JR?WRK3?T?;850m@A1IPdovCBD6 z+G&I7^}GvSo6k`lGJZ!HJDH!g^fO?Dg7R$e{8An^bx`eyIQo3}xw&U=qTidLm6Sb5 z+1}@%+auJmNp-wNx#U!1N5YG5ayq}G`MrqWG_^x$Cbat^<(>HSeAHiOzV@EgCi%9DnlYgre3+2_lT35{Q3{TMwzu_gM+n9Eon zT-FC2Shp_ZTwJ`DHV^uylrBTIodz!TRF6}2-x#Ahj`O~9j8WP0D|i}wWbVEycv9{( zW%iF!vu08*k`67&`y0~g)4`uQigS&-#3!`oTx2YHM}hZw;GHJzoC}}k7!_6Eeh{1` zzx08%Y#M%wWui-E9tqyv^uHCn_kwrNx#$(zfj_hCXAk}80iWL^KjQemo`bJiyqXp! z-qd@AQfaic44T&+_f3wqtYaU8x;LG_f6Geh{wj5+s8?w6BK1hQYVvl$Gt#e(^eYS< z?0!Yy$LHZiS=Za;eondL*g@Ud!~3;ngnqT2ultpMY|Ldn*gDd$A5(|@yoG0bj2_@w zWbHv;PU#`^e6{ch^budG)D!L>Q!e9rh&m`AuSQNnpLjL=Vx+5ha*Pr8APjZ>^^zu}*c=BI92Ey02py^}XjCU3wKZ%VFQB(kt;3 zz3cOr&cQA`2fx91zlx8;)*FleK7j9I41SQ&_@PGOhw_J1eA%5v+wqlk)Le|r*(g4J zU(Fki3cowD9IB!pOR=SPq3e2?V}gJ2+Lrxo zM!4M{@VD2ZPvN%|euuaZTuofSrvTrQ=sjtF*E`sz^i}-6?sjW7jNI<#pq586_jmT` zxj#gf|5T;QsIwJ$9#)y@|4N?3LiE*ImEB_Dcdwb_O#3$ zVzcamkB+v_MUT%-r5>4!PM(WSo{LVNo3d?@M6f+jXvKYS-@CdeEbu zU$oY<6~7oheeBZ=?bA1HHvFg9S}_|Ju`Q$?dyg&)+;yFUdvyn~*~M0>#&6xg8mxY4 z{dSqlBJ0I3Xs{Mgs`Cb2k6trq8*vo-d!u9B%#C_*`ciH*-ixi*WMjz`OZ)puURp3VtFKyT^KKxerLfSsbzRd~R zX{GJ3Pdz^g+36W$q_BVHvDYv`XcNXRchbgSFGcb^e7CWw2Rli|s`GcVDqeTsCw)BG zSPQ-OntUa=3cYNc`y4on582+g5uC(6HNZEtG-CSjJ;+7jk(2aA_HG2{K5#zn8x?zp zzqfhzd!qZqR(?o)Gd@+?&jMWS?yQP+kH7fe(B3m z@Sj6}A7$;>ijTVL-NeG9Je)94nN+J+ySmc3CrnUtOxn z4}W_J7LYu70Cd>*`|;F}wK>gCZ(G4wxzhyr5G498q=?VC^i@B$uPpU|zDszo^r($2D#n|Lwt)GNn**ucH z{uFg?!`CyRignZn)CFHJ6j`$#T1A)Dn`6?=ypB*u#IMSPpP4%y-IU$Sb6bXj|Dlh` z|2eUHEdEdWO#Y|d%qCd_3vE(GMoR24;eC4!2s{9+5SX3EZ{@MyWe(WWLia zA#*+7AKf>FU%_?dIhpO5>6z`3LKQy=4;{tkYw>0sSqGiE?poRBf%e(d-;IookXPY9 zo9t8VtW}TH7Dcx-D)n+pRDIOAaqE^|?EfV8uC!a#qAC^b_4ua5y6>v*t5VrVx`>@o zjC&9Ar%GiVsl}cl&%^`t^YqFq(M!1lYjxp0;j^=Aeq-`q{~qsaXV;8<;%u$AL-rkN zz)NhUgI9}vF8ig}Xc>POT+BWbC~$A^s+U)K)x5>Z`%&+?(S<87U6*&P zh&{TD=)MMIwD6$4Htzi0%nEcGe5HK|I`-rmw)M0hp!aI+Z>nK$U-Gr0yUwop+!Nr} zA^Ql@uJr#r_->3E)joRZP1_HkiPlspJ$Emyw}^_o9=zNCZt}w1Dz#27J{z1{EBXlc=6dmhcI-I zy?B}1&%(=zyUJd~&(*OKo3lXaJ$w3T@}uyX@Pmwp^h187Uilr62iP;VzH;xEBx|*A zQ1p_}v&)*(yNb086#hHLoK7*PXVd3J;M>VOeYF&S267=!+cf5WP4Wulwzc+8GQQ)$ z;}CpxkTGe1M@=6~t&uv1d5=G@G_$m?{Dv`7UtUupr0TwT_nJ+=^yYxWH_bWU11yop z8Y7I&eTCRETEG38wX<=yzf8u|h9!V8XG&R1GM!|f2b<2yAGg!aRb`q72h)B*S|V>a z{3+lnUzMQ?%)OV1*oJ~Lc1zAl#-ZEB6ZzLOMb%vaZB`<~LaeLQXVk0^bO~Wgwg|0= z{~Dl6xr0Vk%9KTB-b~gf)GIi5c~$$RjC&|Y?T|Y67xa~Lm)V3CUv5*BHRT=9=>=~# zbh^W&Q#g+`H*^wwd&_N_zY7lmZ^lKQ6a$+kaFYuxC$%!ok9vuO`1b7#4 zn?Aogsp<2t(8t*iCH=_P{gAb{+1G-heLV?3gxC|1zW&-({zFM)uRzj%MOyJAvc4V4 zPj8*oZDaQg8yipN(6I?+s#%6(Y(6;h>0=}M!PysL6&|3xiOX}DgJY6>Z}^zB5*sOF zlFS%7CfU#};u@0)z(yLAbl@Y6$td8)2xHQZ9T0Jh$xWX!CR?Q+7H`RzIQzI+(ya0N ztt;(*Nh{F(PsmuTA3hcYyO{H2yQKR(!^W!FO81a{-g-|*aih+o{lEBNkqM(>rm%ZV-JhKas+ z!#)@RCNW~}d|fq8G*1 zJ%gPaLiQ)Wr%c^gfGzMeJ~OfJ`rB1J54x}}=!hV*v2Oe4LQTcy`D z=UTc{ZIiGP*7JG1V9YM(PswYRZfBI_0L3E4K$^fS=xO#fwK zV>tUj(19th{$G-1ZX89H3C=?Ex2?OBvL!Zew!ABhiV=nXPXt1xm5?d>|Uif8lQ!<-a6z0+c*jrJ{-tsWNg)bsG zwr-cb!<<-w@IAVH(1z0R$-t3k!{C{~X?GZWJn+Z}@G-zo!yl5S=TBDbHs~Sau@5?H zJ+AxqE&3)ted*K7uC%T2nsKhy<9l6cn;mI8NPB}h&}#Rcv8u`gbK8jM-sspq+&!Wu{`Y{I_Y8SDmha9qLcMp9P+ATUq z%g#<@XNY;en(_W2ey8ZN)u!yMPS>(CG>-OWiY+bUnjL$DHVv`m%(aPz{X}41=Nd%A z9|Rr&K9o1IW8Vjkd>g>I@0iBv&)}?(Q_`03>V+~cmhC0FUix#8^^dbZ3#|UULb^%w z>F5tf9evnU#zlJE_K?RZXU?*IS9-i~{^ydD0r(S4U=dkfD*;M3?0=%|Ur1R%S_9_WYn z`;k-FsT%n5ouv6wZUg5SOY4<7SQYELfv zhRK7i=iqM?nZp`Z{5AMN;lZq!cL)z^*jaRH7cv505d5QIeZWHa&Ib8U!#@Td83F#j z)G-459pFjedJg5p=3D$K`n$`tO{f=s{a^5!En8U!o3iyK@)S1?r$L%UgPo*nf5A{1 zd9Cypr2P8fArkj=N^*P0aLaE+ForroJwUjP<@Z)M)Vr|_FXzTTcWS;Cnjk?HZcdpAMWh$*PQ(&c2D%P z>{BG46rDV&DazSS8E2BSy+oaqt_ylcR3pejl^#Kp*ZlOqV?i=eyWh&i6mL-o@YR zO#g%HU2JO`SJ7{0*K8k<%jQ1xNHzuX_FeLOXQcVWt?fVB#kwRq>10ynRcP1<>)lADMqqcsw_H-J#ilPM)98E zHpeqo9*NhIxoO%QjHfyOmg;%;9kDa8FD5Tx?vbZ5f4H5oi@6sH-Lp{e6}&#p=J+=4 z*fxSa7wva@F52(*Tom5bHpfc?bJ5N-+~&}6xAs22Z7bV8GTScNHBs*ei%l$cw8S)s zuWJ!9QhZ(G(G_BM$Xea@j}6Fkcw6izy?2yr#s=%XBjhBuLJRh;%$5Dj6gliNIKc4f6M-*bHD%;ucLG z5cT#@ZIA2KIhTGPkZs8so-&d|AX5du+ zHnH=MqlYB!#>VjPgw z*RB3{kUpx&)8WTfAB=U<zE?FnayQIr`ZfDv%u6OZ$x_w*ku#YQtxWvVXFY6#Sv^_r_X5G+>jj&jJUc{l> zcDu|E@gqm^pC!JAiQ~ee<_?_QIpuZ;!9cf*WHQ=Mmru^h67FTuHgzwC64t zWuA=$k9^WU>))8?vnW@Pr9NVBr|x0lb!^0eHqZ9Yij!vsd1MT2`6E70iLtQbHEg>< ze6@wZ?RVh`$>%I<$7{&=+3P8H9^nZ$On9Qk-rtazBxn^uha@@IEd6icS!8Jno9|BE zU-+c|d2?NeZ0f?!>%{)@Fg{_G)jlwP1A6S(>+aaxApT{Uzj;T9eXJASkbQwTyis*7 z=XJP~L+stIQ~hOTY!~$$G}lP@k9eKJ$vb@zJ%N>vewhw^&x)h z^yosHwi36aRQAhX{;+>rK}dZRA)PbaA0>%RFPNe}s>i?9E8~F)H;#c-%?Xh^6=l)thF(2tqoF%s6WaBxE=ef+M4AZxAnt5Tzxk1N` zZSXwj#8Yp7S*5tkWZ&rZo{mwC$OhJ|2e5rlNnfu+ULvp6b(}X@G>#aH@lOcf5Ab=q z%s1i~eR-v4@QtLfsZZix=Npt+hl(U_Jv+7zUD3n7hv<;MQtuh+ed{YaJ}B8J>zd4_ z$Q)Jo1NIB*e3ROZrf+D!%jdM6l=z&iUnRy!+eD9IkA#N!dNuqfz)e5okaej}dw?`m z?v|rju@0+D;{*hQ?G>g(Sow3L|Dleeh&QCY)4%M@}XMV@2O z>o|Qr&AOqFwPzpkFUtsEO@gENCJp=|z1TStHy1^w%|N$EOjv|x*)xi;|0ZkBKKABT z6L0=dx_Kwhgah8prsOovYnt@VX}`Ydo7)TE|5n5DbJaj^bfEUNX2s@0qX@p;UWx6e zUGaU@3T(8~U!dWi1)cytsIN4<9C(O$bvOJH;3_a2J{`EM)7<&b15Uh7sY+L6GF~zc z-?heJ8nWR{<^-~?Im-O*lV|S02=QEi{m{jGE_;w-k3PurKl6J%zj1z@G`%01+VUeZ zMx}&qzi{PgbLL?VNS-IibJKd&v7}M-@1#M#Cl2R}>(ta+xFI+o-}{9RW2Jt5tmImc-0a@y*p zOz4WfaiK@GvcBHNX@$a!_VzYDON$;RK zHiVYY>KJ}eq2-xNO}bETR+GY?v59%`C0{0eU1`dlo(rr!hYLmSNNlh0aCYooY%GyG zz4X_HwE|0U$Ary`@BUS{A#34?W1jY5TMh6OJ|^jxtcQ=X@0tR)8t}%JAZ|?aMKOF~ z*SXKCbM}RO<>E^z@MSl#ZmVkrZ^P$luWlkHT>Kl%Y4M}&z4EB_Cy9@>$|y`liw*{-9&fD>a>UBeq4@@S1CbDq=jn#7}sU zpI?>za&WIjP8&@Ta~}0%u{MI|jiur3jl$oIMGG?e18lRSx6pTZoWG7F>zcl)@bq-% zjn7xw1J9(8yPIhLDE3bZx}IR{PR}#Y4Myq$;K$HG_ri1cG^ma?b8Ls|-oLPBP@m~5 zZzHB){W-FKl^tVUyg+1Vw>9_ksArNj@5KN4>TW%Uv%u*neonFfY`&af@#UF3y@$8c zo703&GUt=Qe5z(X317-tHQ~!v*~6m`qQ{^6Q1j&?@!qyNkELG6eDqm39wM(X z;n6eDCI!AHv2FAk5Z~RUdJXs;`kK7ZNad+X=Ke%0;~cfdIZRp+eU>$%j4$KEeKApD zOw>kVPQ|v>8;ZydK6D{vmGS^VphSz}CDDn}6OD z*r6Q~6YH!){D;nW@gF+hMP^>^kb&Yqbf$~EbiT`)-}x?j%lR(;L+88r51sGgKXktT z*7Yv?3}OS@G~elZ7yH4P{(|{FsN0`&rHenysr#RFrT@(J{)j7or|W$y@3u|O_;4O- zFxFjsJmAJYs>eL{5_X&!=s|bb{!wI$8DCrhuZoXIbnOS6!8ncF!7g2B>)fp&eU|cV z=D|?kr^E&4#Xf`IU)Dw|NA;D6s201&DAHq(v{SdN#wd3DyKZKp1)NN zA1QX;xhE-OD|@Q?-U)pc>kw;*d(lz%gxHhJjPAPyJ6gsoi7k}4hV?UcoA^Wq_S3QD z`dM?>{_n40kLYoC#Q!2E@3QJyS?-AAn6At?j$abT(PhPPgfG%ImAaU5N8W0?B0F}8 zHTHU6UB{Tu02aajEcD0zXRV{*=L1g+@mFhj2zYV?cph*yWG$leX8{k506$0IL)Iud ze?aPgl5@JGX@A?K*z)%^{bW6^<2-ci_}%DH+s>md(>E#mk8&Z6*1z4`2El6w)t*fCP)1C%S?qvL)D z&IK@z%dBzy2hwxbON_lWcG&)&B7ET38IdCO{AI|A6YQNmTMHjeQx~?9>~(HuPuq^SuP@ZL zU!qXthwPom80E$~(etKlj;(3KwgBs5-(x5r<;FGxPYl@)(RKU-@Z<>a`+#F_JJzB) z|2p8T4`<0<^Dn`1aILEO<}T7hel;t^xP+QC{birZNrQu|)k0Hs-*>sv-jX!ru+T+# z$XV`RB@LTU(u9YcX}_1WnL15)$cEEaI|8lFHs@rwnzcZ{3=D(H4q!IZ}jF6|q%46b79?=W#J{1TqXDoclBQ~NvSJxfU zb2aoq|79ZkZ6D|L@MAH29m1BD{h=^Ct=A`6)|!ZQAH4lXcw1y;;#}4z?87VBZ$=*2 z`_0CiI!>+&9_Y5>WY0tPoI?`(z`DZrr7nOc#r9%7J^-5!Oktl5%1!M`A5+RwT7i0|C&=Witak>Tn8WTlHg z{K_Iv#~h!%#*@2^^!`?-m9?BlB`dQqx<@?IWRm+6IFfX@3IE$szLu&X&X)UcJr}8v*C?| zS9OSueuCdq=)z;@MA>&Z!MtUo2%9Y%p2>_AqE}6S3x1&S&`Ro#*YuT}{s-TbCiau- z%J5Zu(U*mfpMcyAuo zc2+DRby)gb>JWZ&xASEyPsD0R_EX(?K5ylTT6z9sggjSTdAh7TA~W6f%(n6*tUMw! z-Faq`hdV!JC9OO%9z*j?ij|TlIYh2#S{Dm^1pWyE7r*z=HG(daBkcu;kIw|D3wT)U zPS&yCd{57fO7IB@ZkMaLj9c__Y*K@}zr4|fe(vtw^RdLUXU6PuuUT_yx?S$>Pbug1 z4k@?CD)$+?+-?<@m;r+}tC@#Y*aSTx?*7G=5Z)AD((+!1J%G(Ea+<%6BsTWxXH@*m zKdbmb>=X0;gs-a9;MpZTSFRF%x>@s+Gqx~9Y>3E!FVpsb4EPK-gv4@u1{r`Yq33o^ zY!5b7MDzxJVjK1=U~)!6F%JYM#?z7oIk6W=6CZB`{bSQ?ibd-r@p2+xW#4}{wuRmQ z8u~B$ZS|b7onrN0Y?S4vbpMfigMKvZpyNBatBCT>xs%7bWJJmpEkJx53|(dDvaHd=tAeNesr&zD|m*1uitO``LR~^OV6EBfFpXx$x{E z?kVv#jh~z^boL>eJ|udzY!EyA_)a7KeSY0^>L&Il-{uqObOHO!q8m=48wPmfQ|Kf% z?f{+c(0JIoA%qX!O{ZP##|WL28N)WH8$LS%ohpEZpp#9HpIG!z#G=~tnB$_ykA)t0 zX*|S!lRkfu-_yi+p801Ze)6kEY5{iX-d-R3JVW){3# z0Q(&1z^Rsgts;;3drz}&d>0#8e7tMc`#X|`<>SSMerL9kdPC*6%XzqJhcDkln%K?~ z3nhFhK3;{)z!$qw{JE#G)#VO0;rn-4Ta;LKwD7t3TPIugth|fA)%ng|%)l8~u|>|V zdBuzobLJ7-+4(MZhx1+Zfb;!`>s|b<&UCSzo$sROobP{jz5mJezMpq{JmpM+eUFLl zYZRM@I9qH8uX)Bp?lpLUJ49?f%bwv!Kg3 zcW|fDe(HFRJC16gJwA5gcC46yC47A^cwOl-k7XY|>8*N0Y$ogo?te1Zez7q1 zNL%7Vwd-l|<{jC^n19J^Q{--R;a4bA?qd(qasP`RuV0(vWtUBo*Sy07y4Wy9tc$>8 zy(2cN857{Edc)59KJWzPBo<2Y$$H1W^UChO+>@i^&T#HuR|)P;hxa_(ldQOVx(7Qs z`5befZ^1}klH8eyjbh%R7~u}ZsF!!{P?Wmudq?g2Hl+T;nd+?EjbXOIo#_G21O_T; z=hNCdNP9;e?NxzSpd@Ivd4=`tX!mfYaaOmz*QAxxe=R(7c&cytUy9UOxhqI;IJVN$ zalFxkETb-~uW4pqmj&&(1iPC^vB953=Ow`n;S8V;eSgMU7arbqsN(X@nb3-C=J?!<2z8wxhT zchmU271}0EI>Q$>jW3!ra6h)~ySHV>QT(Kbr+T?d+qYbJARv6Wt1u|?AjH_qo$P_? zhTvFua@w?M!D*yT12zpZ2^elhogFJbMVs^MMcK|1%5+Rte`hsZN9Z{)6eYre?0 z5$eZ=xgY$(U^U+h2-BA^-!M=ax=%IJ3hA4C3t>92vfwrJPxj^BFZVBZ)^9&cyW^;H z{@5AZ8Gm8$smd9_4bx@>Ll#~h>aC`|<kYDj_h2lWi{8fo?FgFx3@5-0`JwN@3=7xfe)am1U2Q~b9`QCxF z;o(~dqNDn2eZ-`V;vOOo_Z*KV?q$pqC((_Er;erlH10@G=Z^Go=J;wkZ*XlDdoK7z z<(?wp)$SktXklyoXI~HT&58j17a1^)wl|18$|wwO0Jg!w7aQP#4e-Et_~L2k`7~)y z1A7|Su_EqGWt}SDx`@rc!JDYnclcdaizHcDyUPD{g@cSNj(+e-!{Pnl7^?Xm^_FyCFVZIFzhS!K;LGIkn z*piR$A_)H_Id7^mmIr@NzTZ>+uiVjcq7nJZdj0`917Bbu$C*p{$SflqOkSjR^v@)Y z<`K!06T^?sT1f0Nd@Ki5N8Y>r52QQr?y~Sc2;RNmo#b9!Q>OC$u%0XU1_rc{Z;C0I z4}m6=wyK1?`oYbV=jf7w{8hvA3yo9>cl1ksne(;emvJ*?T!T4JRSEa@OSgsaHSozi_+&n^;wpIPYIsQQR=SeCW}ms&OdXs1_b7PH1Fy+< z_Sgr*);NZLMef71d8<&`!QX^Eu&*Z*KA@c9&byv5(Riy@rRblj+wJ@Z#|*t!qldkf zql+ZAwVFGuxNnYmAUa$26s0cvUJd=c%hGN3UG4e~c>5lVk@Ak=n=_BZzPqr||LwGz zFaBU*jekrU_l1`>+*~8D5=lO75cC z(E8HCxpU&&)!WpB>}w#d`1}z|eYg_tVci!H@ zc3I=LDet_-lD&D4s=0S^NBz7)$t>q#n(){ zBzC*pZ!x)4Xew*g&EMxvu7|mA*~^(Y&X29<{;t~o{_+;i$Zfz5kMMl}U!tge&pE#K zCF6`8jTy#{hAd;pid~GyfxDPw(jq)7^)sAnfeHAv@N^F)DX~vFG;H|(Le%Rp!@9nfH@_3?&@6=#- z$$7!^d9Eob41SsV!~A`bci(i{skoHCOK7hw_(nx}@Qt*Yd=KTa;AJJVc)r+tZmXyW zUU}bn%v0tiWot_Ljt*sN0yBfZDJc*BhO#v!=LdgE`fuoiJclc0(M}nCpd9%^q_xpj z8+~pgkLZd)3&txrat`E{@wU`tC7bw=+SEQi`WLcmPK9+mlW~+%Hd^%9`%Lf z3n5?VSLA%?P|Q0t;7c?+d{d|k9fg$IQC~=V=c^re!gFF%ioGUlkreSn_ML&kpHBN( zY)tW;vrk^iw>RKJU+Ids@e{FDU3vGUeD)Db#sAv`OquKa=)yNtUwOmbS!|2*O(~Vl z{dlS=`Pi*KW< zmaKepKaG23a$7w4{cBXbpO{X3f3&4u7QYtr-t=)P2FoM zk3GK>zOWSQ`_q3`@n+;kbhHugr9IgX_n3QV@*P!TpNa4LtWU?DUcqk?AJ$#)W|COU z2!2%T(^U3LcT^;Am$ICh8pFPg_|e z=D(uiwD_t<4*y)VzYZcn<@^H*T_?kc*0hx~>KllvCzGUE5OpJlz@ zgAVO1;vQl8*jY>c#E|1>>>zHfqmH=7&I00g&<4s1uEZ#qxJI~FNn(V#w~HO#j-dKmK_#tMDW z)Wvrba|d_Q3vD-i1$@D6#>d1AzF@>x)`Z%HCz9~6b3BtD z_m|n@^ga4(_eFRj0xcPniILwGR>+-3ckT(bA8U!mS90b|e7>?D@64aD^7qnjDbu*S zusz~el|l!z>@$O9e?eK{2}5`Ro=Biu1#b_r==eFBU*#LFQjYc5yf>iHY5vfC`zo5g zQL%2>9Tl97u88ove1KnO$$hmQ#Q%2e^yZu2@qL;$PEk&H(yr@{-IukS^>ZK7Ecifp z51+`w#IjWtH&EB}UX}h0i{Co&XUKO@WxwGN^+1b#J>bNh)AJg47n$|k4}I&GMk)%M zA{EvC>h$_$A+GDycdJ)pJ8bwb%0A6`7b&}LS)@Y7Sl7`yqz(^ttf7vBR{Mhc2Y>Ca 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�^xy!x1C9}$g_cAt} zGxbat?FYH9=RSpw&VQZCOJ^J&h)<;MbL?bUFc{XocUCkq(KBVAF6k`$EWeMHrOWKH zG&!u2HSr~3Vvh=H;unXh1HEXQvu`_~OGS&4^)Hcwf%-$Pe;Ksqt|0@mJor=nl5Nb$ zPo!;PD4+-F56DM_9nTW8)rHQSt&%<>`ZE<>Z_$PamFCo<4d}dHUFl@^m{eHo<6Eaim?~a#_vtUCwxkI}{x4LiQj7 z=qSWBO76$^sxCgAcQf(TU=D1C-qE30uX8)xx`N3~N8VHX`qWt7r=4~47|*Py=u<@< zqmOdW`q@uT`)CQW*>IgBRML1g{HJyM40u;j#|C{*{_&siQ+vy{Uz!k4MOID6f8G3S zFMYG~i#wP3#|HLKB8M<*d~`T_i8&<&WyZfyIob?-F0Q>g;JTgq;_S;s*#kHEHQlY$ z8D#FJ9y6VBd=*vZTPlP9#nJ+Nv>WhQ*n#d_Kz{mr&YE-JcbuQgwcmL!?mN8uhWHa@zRi75IUTT9hmakaKYx$Ncy(D$W5L z>ss=!tG;PoedMJ3Z)o`6O5SWL(cL#l8U9Hm|zUd;DY$CtQguRgHKH$DKKpp$WpUt+ykOL?_3p8uJn&UsX?RC0y}>&$+5-0HXcrycQ6 zs5~&f9-6O*=If#PdT72Lny*h^0L`lJ$_e`lIj_Gtyx{5hiW(H%20V@~-+Poq0-=J^5WyqhzOj*W-TD%b;{ zo@(|&1uu<#ycu1anyKsfz|t0L&eE~?Ww8Eeze3~CKH>X~0Ul3YA$RY09yu5ek^4n+ zWg6eOzOw%0Khw{-JQHu5wxLhW5B1NRBYy3J6Du4aKC`>EU{<&6%*>lW4YU{<8qxC< z(P1IB-Y0!$75v^`JpBRU3)!C}SC&5+f(|ub7txM#i1n13QF{IY&zkRosWaCo7aSQc z5g%DX43jI<6C)BVPTJ(^w{>QpDcPa*6JPbZed{kvs(x%-o!5b@{p`22maA@m^3&8k zhVy+j&%`HtdRpra`K%%B((h>}dXo|V&+zu~$(le(!VI+%QJ+b--~*YGUH@tm#%Hp~ zTMKN;giJ7rKbBLj&Hv!LUDR(;pE0c^QNHWKcR}CX!gnnnH{llf`ew#|5q(m=8;w=t zKc8pyBbIrdqUT%GuXq7IZei0hWKQ&2u9GhBj@FrQaiJ+#e4`0({q3NIsnu;Ie;QIe zBYKYshce%f*Z23Icpj_gC5+|c*K|i8GT}paO_;N28FUJqz~90Y__5gsP4T`5I!bjl~8o$PK^f2WwX1vg^o)7UnnzHwm zm?q{%TCnYsFC1`c0Y+ZG|3bO;gZ)!$GUIrY=VE+q76ZSp!xOx6yLm4koTy+**%+|1 zfK?2bm2s9|inBjzGJSbjbr2sD%hdUMo};&&fc1-dzT?F6Z}fbZ39pA%y!L*mfL-d%rpPAbhx;SjNH$X4Ilc zykyZs{z83MWIm1WSyAJE?pjqcf%W#ui-O52WPQ#=Y7AZ9R&rqdsHFexM|SnX|60ju zD*gctuQD@{x&QjeF3IsG*t&+iNjo&h*mGPM`oU^vU&haQ!u8Cl7~i$~iXA!d!1=y( ze?tzs@3?^c@>93xIPLHM1@bFv7Bbl0736BRzm7ltCFRH8tS&$P*39zbeOHzr7Y(Iu zH=P~xeIqoF26M)iuK8T|f5&tlt2JqSq@DG~NOm|6*}*iwn@ZT7_@^$>+ROfE`kb%K zTl~W0t`hi7t(8++kUF0=vi+RoBzVrCu1SeE3hiWmY(!FeaESHsb>hWdFu9G-18W-| zcs6j}y&zgO#N;P_#knODhdo!a;wk_5S-B>>q1itkI^Rj0{14?i~9Fsp$Ot}>E zk!&u+9kEUzzcY@cVGeczydH3UV|5WS= zbuX27m$2U7pt_|yy!4~Cn^<2tqhVC?P?>DpT3bsx21ECz3$r2a#BKxr4AU3+#hK2^j~ZeTu5 zoM4AnaKD24iXgdfxNqP-l$uw?JV=`O2y8Z1q8A!NMh&lJy@3aZtsI-!M(%UC&&MZS z_xR99kTDGBd(6YWLf*HzDecw#U|v<|)BYPYuRQuQ`Qr=9;?}~{*tU{jj;U?UWxYYZ zvpLUfIb#kG$6X=Z^Szm9hr6(=8sPIPecC{u@UuuyG?S7(lbfhH&kiq#?#N>is5uWF zEnl$7W^V|+>LA~5`_bRmenY1HuHJc7*omgZkzc0KHhH>|#mh$|4}zmK^*VDG*qY#f zl|4YcTlg2|MH_iH&O>hd7x>$9|D@8LO=WW~@Rbzo8f^;d ze4}b3O-``W(K7nei6X z_L~uXU5vB5dHkI1oDag8UDIDf)(Zt+0KR#FE5PXrE3bCq#OF(v4P92NGUc2hGOIbi zFcf^AGC2XAN%NlaUHgZ3?1k^lA~$Q>rRWlzt(vsWsE;<6&G~4-@Y?8-yEbdgsn4CW zxs7q}ftP!AM4EF7Uw|%N37WlDhFAEY!wB=EVW==|Xr<=WC#}(mx%6`t{cNM34`=$h zi+*CTO5QWHAhDNzX2V~yb}0AcPbYlU+$;Chsvc2vdZO|E%U&KSM~yYyNww$Wg>G+ za_6`VeI0_n4&n>_Qn~1BOoqP3IrQag@z1%Dwf7))o9`sZ1r`z&It-U2Vm&$eCYebEq_$Z?<5+L0>kbUNgay{~LPZKg}s}yjG56 z%*yNi4r6`|{Jj9JlM}v@Jp4DbnUT(zSHMFaR(;qwH<-N4m~(0yY?FNcBX(FcKGgc+ znu*O5=B&7Ce${Kx;vQ2x;~e6GAImWXU$92hzA*83CC?9C5qOyYp9k08eAoj|eahtQ z(D_P3u?MagmXl~RgZjPmWtj_)2+~e!w zt)=6TzxJ=kR`q>sH#f6KInShjKn}ot@R7sUu})^m3|+q93{P$__%)`0iN^Dn8Tf<@ zvXh(MJv&Km%Cz3=jO-(qAba_-Zy=wIy{DD)?MBHifbDFEo14j>(=nIadnw9Uv+S^$ zZHHA~?_=b5DQYYE+#QP#`_O56|H!#Sf8f_`@Cz|hQrLrsKtKGq>s8v_&|Z=JWyhE5 zzTMGr&+9Y&$pG_aX7l7H8jeM~8=9BZHstsNGmXEt_vMObH{?$t4qNikkUpEaI^}cq zRgKssb~7h#Bd@{>(B5~0@Xuj+i74`WK4*xn#YPg%aqnxmZ{YtHljqot<>McNr}q8< z`*F8u#Mc;VUslrl#}oHG^uLGx_t5`roK~2#?x`0Kz=u47%=a37A7pZBU*-2G<1<6; zQRcIkjWW7_e&UWE;K%qAvX@&6CRb@~*#ND8^JKrtb$lzIH}nHO&G}`GZ?Wb`W)$yO z0xSjR;!oR6#eVXJm#LL6TQ$IV=_kKd zck?GV-D4rgoCi$CaE13KU+TSp^YXA|g7YAB>gqL1-wm*yG!8qj)OiQ(rgDp?N7?6F zRNB(rwPcZVju^CDxy|9}Q%V~Lhw%3u+tI3h4s3}v`JAIcJN3NxnZa8u&L6X8na$PA zEyeT1>FXi(Wmt=_Z;Y<|EHpN^_P(mA?Df)@WN7p7~-@td(b zwxc^o;NLo*u*KlZg}$ou2U9+?0~v(<6IX|AfM@!RKha)y&Q8U~)(|%lL9e+Q-f|@| zY_ItTAy1l)dgel;t15XraCnt>znJh~_vBxllh}hDxQ8_)2u$G}TY`&k-5iHkuJ{=8 z)`HtN$GgflqfaI|i>*((;kF4a-63;MA_5*>%ReV^u9cU#;xfDHb=HI{$OR!?i@gl` zh`#NN$uOq)nnK3(41GlJS@>tpl>HX8!JZB_t077G2=8Vcl`I@F*s;1Ukb^<`BXEiVr{ z{bOnmg5xe|2>MEQvF1xpJOZzd=h;tp<(a4Bc{N%Cdw(taznuN)3H zE$2)d-^65?vltF>g{SH~&%Sni^F_}-=3))=&YtP=(}T!MFERguLuYn}M$VFr(zRJm zW?gY@mI39@lP>sDc~^;DYlq`+kxTasxIK(b&uV$FJ7iZST8C@jw8-%{m}R;y6K-d6 zwZ8oPr9Sh@rIGyhYweukTln4O;=Sv#@;{Y3_m@*H_fKcv75V*!YvJS0w-Mf%%>TL% zac_Pfy4FySMLm|OzSHEWo&R>~uHhZOyL^9|c-Pr~s&MPdiBm_#T_N6`{O!l@6dppr z`xtchY2uL{@9Uo?TUn6YpwO~w|Aa2fMlh!bb8e_q+ zr7kg&Ll%ByJNf1LMzYMg%!R|(ne;LF zzQIpkKn~dd9UJ=Slja6ASdVL zqW1>fz}b9(ebwSSk^4ShfIlkDo^F|36}C)G<^ifeWA z>DcL}ee9849j!VHA2Qg3l(+2~we&4vp z9?2a;?6B;tOW8}ice-6gtQNM>qJ(3|cXIY%OU|?*zq*y=GudA|GO7Kd|K#^6e(c#h z`KF?@uRSi=uU^3i7ek(MRduxbK3k>pdM)kG_{UaipRFByxUpl!9kZ!lwqMx{4=?f~ z(-KE1IAvgfQumdc{G2uHpCbBMR@@#&_bMQ>m|q^}n7o zul_z#!PZ-5;cE}Il7?MXYDr? zU!?py?s&#rWOiOM)~?c7Rewb05BA&P2bhb8D!Y_Rs(}4T$x9>HGjj3)rmws%d}!u% z;c94L2=EXbBqx-UyJFr@N1g^Jrt!=4|I~T7k8=BgM+)9boj3GcH^Pzk;b#uawMU8^ zjs7;eQs-dHSM-y>$Bp|a?s)fI;EFxanDWvnFl))2332Gx(-YHK%iR6P34KQX4?gUf z;Ad+DzZ3fTQ{;&t?UZ2qA|KKXz}1n(KLXw)yUPZ8l)c4Qfl>Pv=7t)|2GN-dB`;zl zw1&>9l?`_%edys^@rzHe$2K3G9=vzRPhvM~tS`U2#Eut^M;>wd8AJ|Kj%fBr9N&lk zp#I)DcIVNX?aqDhp#w9J|M?a_jRd*U7TWZc@pmku@B3M&J_9a#=NQVvyWoQdW|*{W z8HcbD;iJ_l-}3$N0KrRRisYNXypOSW3>|6DLGfzmvCeH`jo<1k>SHW(ZysUm?7|CE z=toXoV^8m~IlJeV}^N=_+d_=ePjdSWq*ZxuC&IZd?CRR z>;p)*HiO}DoG)j8H0fhK^z7K!Mt8(~<2WDO3Y1fB4}8`#6L&V)AKfW=t`)f@EnlEgpX^EpsmEJ~jymhm_>P%_h|7deI~ni2wIO;xa*K;_gla~{8|4Sp5Kobi||5NinR$DR}h&PhU1BIe~Wv$%*+@;z_jkE50<3 zd0ct;y}9xYd%yM{A|KYNJ{wKEdq01VQ}=tMBMCPB&z&ASEdLVzLzZBT=I8k=M{k^$ zj^eiyy=k8Eyl#pP|3tc-9Cgv*zzsi~_;@qJiDPZZ-I&HN?m+(|yAJlZ?OL3N&71Xk zhH2l$f?A~V7UhMP*a-I<=rH%ypgN z7~>nART{meEG^z1r7hv`25{JNQ%Ps^mJ<0&cgE_t2Dsi>f^TfRQ{O3PPmJ&68~qvj zrT!@IX!aPeb$z7)`Jy3Om5kJ$*@q_fXJ zz$ftDA$Ui}d;(lozZ9FUwoM{7y)4~zxPO!S(#mxaIE*e64$XzpWfzCFpLgmzXWju@ z=WNc4L`#`D!}?ziU3s|)EXF(#W1jKp%ZB^98_o>(>@wTmr%aq2pvw+&wh-eJj0C$= z;UpLcUtRF$zXu*s;Fyj3HCgoc!@ciMf1)=JCO_kw&)7EfAROW6M?Z7GQSe~DgQF&J zB!87tVY`ucg70^@X49+i@A=GiK^Mr_$x!^ zr|so(*^m9JCRe%rIGb_!u=E23!_xPU8J2zqzOdYf&5&GJ%g6y3CvRdy$*^>+bXdB+ zd{{bq&M;)acwHR7yBcFQ^-{Oy0&#)Pc~IbDYP9Yq{JWULH*zf~!A2?B%ROV-iOXS~ z_2P0)&_X!5uKvtp$}Y40eagh(AEBwob##zL88?^8ywid~qQ zzZb$sZn~*ceq1s5V(b>@zBUGb#12MmgG>Ld_&Ev>UjPp_IG6^F-%Hu8k*R&F%D-0f zz;Wnu_)VRLv!U5DC)dMGoekhA)a-vE(rliv23d)&Tg(%{W0m&Cvd7}vaptkeK5?d4 zt66`2@ZBhKqx>FsLv!p2?R@0e%j-*t zgnR4Rwbz0y z`6 zjmSsZr}Ueu(p$+*+;Hi2-RsdS8n{>7iu`0*5BE+aPgu1~kRD?aLu;Vy63I_0#HRn>$#;I{@9)D1r zmg>*0dn@_O#Ix{0IkJ|1dUblSU-#WumcI9Y+=q&ziT_gN2HSc7YjqIod=L1J)YzB zQ}4tRy!buUt#`^N;GUCxB6o-9hmM~dz9*;1RoF}{=Koye0^wsnGJk)+1#2h%kNt+- zGY$Lh*!3!~$#GRX^y`OR$Q9^7*d9ka`1!$K9lyJdV)_(>7d!Q2zE>Qg`@LCJK^>P5 zN1kqQVza*TIxxKrnc?SuEkk$qcQjDvtK?C-m2(hPhO=~d@5ZzUc5ZuPJN}jSuy^cD z6}H`^HsRsZT$r8-XReH{{Yt?U{xX+wII`twKIQy}K6jE&x#LUjKjBM`Oxn4U_6r3U z;4PXETx2&;U*2?R!>sB8&)NRn>c0iQb=y`R5aZY=v-$l(>dp4?mJDS2`<=C|g*8ok z5H8LAY=Gu8uZH7^Cwvo4^;&5NeyDB@^!Q$Z>7N37=CX|2_A>0 zcI^Y##b!la{_WO?q40@VUQVJS^~&NX`nAcQTxu_#xS2B!`@}m!@Ca->34F}@J_qdD z#g_w)?^WeCU(pWP3Wa~`E3IoB-&Exq0WNDPcQ(BG?DzVgDQ_-%qL=fkBO}euiL|fv z?odUPK1S1TOo<+sezc$Y=)D`lv-+8zxq9yvNABJ0y8#>ziZb>SaRU}}O7_+a%p4s_ zYx(h|KX-H_4?cp2@OpgdPfvpNA=Xj(#UEXiyKz|F$#Cz1=6kVgd2OrRp0OF&v&N!N z?ZW=G3;Wlu31(T{(e)aGy|OP(Muwd^PFwaa`BlC8&U>rR<{Jm@ z`yc9FMt**5W*wcbR`oUvb6bYlN>5_3x(L@)qj}i=WzGatuF9V&sqTeH!^uKG$jsJtqx+ zeMbEX;w#);w_uW2ja<};$@mg?p*pH{H_>?ebBr*Gk!<9bL;QLZ`Z}i zb)!ERzjtQi7kTIZD1NE`RQ&q>q4>T2qops0v*dl%G$=S5!>w6BlqFnaDs7da@KGtG< zjj}n#n_Ieb?1>3vweEKIB{waYe;A+K^q8RCG=8GpB%K}kr0-4aH}sLZe^8))bjoLX zC_b2v#C{}upjYl(_^ro_swh8}@<%8`;t6D@;z}=P83)uWU;ETeoTISSH?D6oeevc{ zIp2BtbJ{3}9xzS3P;+ZDW5*V>OE!Di!P&>&rG9zkS5lriJym`D33+VB;A^7(F#jvH z=Pkd`#qhRbbP96bG+O>P)_}r}6-QYEh)L7F^H%KmT0_*I6t?CkDlXZv6g|P12|Hw; zr#`xWk0|99w1JA3dR?(6a4c4W^izI}qnUXon*-)Ghd;1P~| zr)v{+2f03w)!x0Cdk>a^89EE};^u46Gd>YxB@dmdi-~r%MoZ?hpkK97gZ?S_Jpj#W z98HWPj{bv8u}kZng23X=i4Nbadh6-*ed@F8b zUcBrx*ooqGo8VQ?aIdmjH`Ts)p`K63#BRO`z0*9n@_937Xa!cxxWIeKti*E-{j=e(gNMTnGvfnoq zSY29Sn%GO#c~P~&NyLOSpo{v)^+n--#9bwN(DT~xUuZ!0?0sz3#@@&L{4VF0vr*%e z9SuK@9Vzx%d$9F-WBYt&Y(Z$=%c-KVeUY)LPV!Yb^3DH-mOrRJf71Va$6VN&m9v3;fYBx$&*Hu0n`p%=NUiNmf<v=FDw=fJj-@nhnleO*r&V8N9uZgcX^Sn zv%AZSO*lBggbn+g;vH^&a^IH57=64eV!XEH&#ZQe=Y*^1jcXzWsb@bqav;C~u z-8FI9EUXUe*y8S(Vsnn&-5pb0&anmEF~(rw(-30}7GsDp28%Jo7=y(aVvHfm82*KG zKwl+pV~=f;|5TKl@G~aGAWVW^Z;wudb+?Ox?4odop#;rtZnqJ)62GQ}=A@ zo=n}dse3YY&!+Ag>aGu(Q89kod{!dgsi(ZE0iSsvbqUr!>JqGd)b+Puy&{gUg~@ed z6_yc4M=lK3-@K05#decbV|C1~vYSi|ImECD%RXC!jQk?>&~@j8ImPthC**J4H)kYz za3O0#(Z;U9!vjT}J&R3Ba=NqjUSdqLx#7}eAMjvrr}Bt@Y~^9}{-eYpr18Pp3QTmi zo^o%zil6Okuh^Y?cH`Uhy50FgbKdw3#ku2G6y=O(-+a7jE+{m|Di#`I1{;iW_?q$2 z?ZLz%Q}IL#`79UUKai^MC;t-~U4@_0H-;lm;7@Rf*aH0Oh-JhFiyV=X1^q7{TCB3H z*L67~$!j&sezrBoH~tlLpH{{hY93Y?rH#na=4XAJNf`;+qaw{C3nlCA`9oVtyxGQw z!WWpAd0y5Wsm*D)40+I3TNcFUj4_!Pmz8jTK`(yK20vm0%vQY|eby}hc(VSvsR`fW z`e$qKiJ3^<$`jpYOyirx8l2oHd`{PnH#k1&bToFY%Pt3IG9z#O+nGD zRX4Tg@~u;cdHNf`4wOC=euybnl@x>JlNn*%IEHhhaOz{CU&O%lMH<^^u?q* z=%31HpHBVs`k3PR=sdf#4_v&_Xm`F&-Fq&w)5pF*&cvm5=fO+t^r05oLoUN-zth52 zJ}>+6qe&yz z9{H5r*)TK^*i=VcEV-)Ykq7oFaFM`|rp8a+MEqzxe3zTifk<;;JUmD_YXWap_>v3o ziK;Py!0WX6fX`QZ;7a=7&+mAH{4K}O?f1zCXOiN4Oy!YJ5u1)b&Jl35gZ?PT%f30+ zGe_qzN9Uf%vGl;n@?Q@!k!;QfZoUCtTZim-9kO4pBl~5~apTBHuH9F9qI~Ou@c%A& zo|mgb_7LTl3BglC=nk?o_TF4}q5SE8NnG_x^pzNTdG!Rd@Y_5~FJ^ysROr} z%i!0c=5+ zmC2tdd!hCbq{Di4Ucp9st;*Gb=el<$mYECex zW1`7%>izk7U*7fVN51#&)_6@{2>navna|2MozEY`o)IKIl^D_x?F3V%BSwtNd}2n` zPHVfncE*TzX_(57c4E;J>uC-1+WaZnZDWHigKx4==fq13m%n4I$Cqw$p6!fhV1Qof%LTW!YQNXE0d_NAua za>nsI^vxbbW6;=3>cNBXCw;A^dE}g)@0iZp=`Z`i#N&HdW@>97$a<`tRN8;2W_<{~_~c3JuzXch4=^v` zMX3iE18bOb&swl(8Mc>%{IaaZE^G)X)-~p9}ntPr0;M4$Lb~q0ec+JOnPM1xI&`Htb^@Ywq6kc5`^DzMWyDo~3^nB^N*mI=sYF&^&Nf&m@eRF(X zzRt>a`0`r#H!(oSl5S2!_&vVi_`4Nyjt>7Vf5<;x`NN;f!>5ydBFkS`n~GfI@OOOF z1M;C;<+B2DbZ6D4a{P}*oz&8|LVN|B#)%{@6eB(I@$N&*~3-F26iZbueII} z85=O<|1@?k^^!Y*x;0K;rDM0R)APMwGU@v(tUR zDVoQXJOoi_`oPVf+<556Sv0-+WSVyEhJs(_?4jo}G9&HE=BV#Q6B?Vwpg#2b^RRoL zI6KMtuVD7P0N-<7gushz{X z1-Msol2sO5ip~g^v_nri)0;iqf5GPj9w2+Pe6IEGfpX5G&4Sx1;C3%L#O?)di_ZYJ z^v~WOW|m`Xbz$bfx8X*30p~XP^Bi8Faj4A!TO@jxGfy6M_p9AL5-Wl|CRSe4xedGU z0DYo&W!p2gFVp|riML#M867{fOO{A&M|aVStLAGm$oknZDxNKT?v}yEcFUgM2xe!p`P#OA#W~V zZP~!P4JHSjJ*P5yE&W06h%%1oM>F?~O|d}z z4y~FD-j(x5cz5_ZdtV-3UkSdYZ>5+!o?R3Crd8JS%W%duKQFASiC*DcLzgb@t}r<} ztrwM3z@G?4BjNI>&-t(7(&p}1Fq8=Wxw$)J=j=4!7LT+NK{G2{ZgSjuf|-5Ado$P1 z+f7dW^E21GGuNl6pZd&#*kb4Zd)@aw>J0MUqMe$N)E&Rx`9H=u{J)7bRT$HR4)Too zWu(dGUf=4!+!rqopN$=J9rqUZ>Q`uFO}K`44SM(c%fpll&)2tI?1SM8qi;`d@0P=Q z@6YN-jDCdT^A6jWKGf|CmM6+b`Vw|fJOsE2PQZ-03cvk~^KJE?&E8)z_fMU#<*bFW zxq}1vzRSD2@BxTDZilNEkPA{Y{Wkab&27{DTilb^GX~u%Kb`cYIQMEd$TfR@+dOOU zDauv6&;s7un3p-gTl^u9Z)Y-}>WPWdf7Pa<@r$(K?r{ z4Ca64>kZa?)8xrJ>Vu&^A6NB3eW@O4?R_(7<_4&zy2#qQk$YcJO*k^4cuuVeR8|-B zuFT9GRLuVqD9ioe2{qw!&nljCt~ID~(q+xv)j@0TVEJMMYr=l&t)6J@{TyP%H@3+IV zg8s_t!)EVBaN;}6JJo;8>>Yd-^&dkQ;k#EEkLsz;vGzVnyTd4>a>|vUd&MrQzUuwp zmVBmq_om)u%KZo5M@(L2#N-CpYft!c&8XS*w>nhbDBbqfBE@ItRBlB^j!?gE!L3#D zJ${vUuka3h?hU~y{sZ-MvQfw#)*Kfybf zy0FtHU+0~26bQeA7A&ZG9eDr1461z59$7ik=TE$ae)SIP?{G6Rv75X_dnum}90R~l z*B=7se9IR&_bTS88IdSw{ks7;{?;0imgRUL4&R#Tr(mOYU&yt?!t>?y z)1!-OljqRU_Q7`ewoE@?$&~-aFgvV%M(C&Da4UZBs%txItorivupR!Vqm!nedwF?6 zHgMriF^048{Sgk;AN6~XLlXobaBaNI6zKU)`u_R^=DT5@?IAvuch!HzU*pyOxw18D zUU_qh{3n&mZGUCMUrlo3pZli@9-^_2P}C_;#oj)9EB6LEpGyqc^ErBt?udV--gn(^lGiG>>|L|>bN6%Z z?mj!*a?tEOmwR)F{3GS2vgL@`d)0kBALYOID961;3@>)5%2g5m_rcrl<$phXHVSriXKE+97-Nr~3DRh!DECzSU-^#$Y( z)}gXsxbaum!Py(@XfMT|g?JL=9%sIcX^d8_EvGE+s(B~6HI1<<13!GpXDVO%xG5-q zr@32o`H>xNGrq*yF(=Av&Z+!UoaL@Qv}NkB8s}F5=R(2RKzq>z<%|C-2Ok#dsX#V) z0C~5Eoar;VW+Xo4AM5mAdrji8R^xqDPZ4*nxEHTJAN56;8|B7V`P7gTZK-{=wPCpY z5R2gRg?;PD<&@KSYt;(M{|K5@J^Jri@>a60hn3grhuo8AtmDwf$w&Qm^H&{MNfx@! zOnqZg-kooqKj_Xs&&a>Ce-VC4@0d=>;gTPQ5^EB`XZ%b2E~F0C9pSnbdi7xF!DQVM zx1aL{U{YTdqECX!x`$5u=Z>MiYCX0+)z^|K?`v#u#*DqJatyeC>S4t*x^u)D8s8Oc zWdE1gsrHBc#QcKK+sxcN@OjR6eBt&lop_hSyNL;Z_?-FJlnQ**QB*l(gxNVbV0NDE zAHCyWC!3x5gUrqiL9XyWwYPRbaB&Qoq+)_8kR9_C6KXuS9$FC!%e<59Fok!GtRW#}kRIys;p3J4jm7`YIN1x`NL-JP{vopzD)!53+q37kM^A4v zlxb7rP(ReBpLdd1kew^HouSPha{PF0zM0jg{O}boQ6v10Y%Q6>TvIvW(!%!pP2ka0 zYIiQZk~0p=(NW0nv#s28ZaXJ)e-8JRnfpp3+uxk7Qq%c8z7wrF_1eBl&C4#z;`15k zqFhg-;@*+7FS476$tO39l~A7cVc7p~Bwupy5qxGxjv;PUV|3?5%12Jm%)C&}8;!d+ z4;wEuWzp6;=7n3{#Z77mdlbxzY&h*6?#f-9bzd2@;Y;*&vy%fy?M!fRnkt|j=D6e6 zb31c33(h@bun#-!S(WX~d35)VR0Fm7Z_eWhgh+f23w>h}69Ne^Dh>k#x&=%=JlbBmRLU}Gt{&}S%gXflN zZ_EdtgOu(1sM*p!-JR3Uck2K2uJE?)Cft58dx5I!FX+k_v&WKS3PQ;DA?6l)H4A$m zX)95VU(uT%+g!*jFWEjFy1K=LP0{7uUG>xfpYr-7yr({HU*`0s_#>rV7t?m+l(r+Z z{jLema@JdyXKdqMF@TGSzxm@i=wY{Xh0APmi@eGHglL@nNL}?^;b33?)UN5+)!)J< z@4)N?U5FNXZy=qZhdE>cLSi@1$3(KrdKs`~k%gP9(l$`#G|$m1CosLYz@(v!3n6vCSiclS}8r zn>^a;p}$uxn7CPXsBPdUM7!b{rSxqta6it3YmD!fbI&R-DPyaGS05bIW(8Qa(neA>59M9x1U_xM?J zOa@!~b!?H0_)$059FJ{bpJCh=pQ z7x1mvq$q=uo_LD& zz>_mvo-wYYkrAzArPeOEq8<*_H!5vDpcq*vZ1V;92)uGky0Xi&o_D9$odc_xZd>4?OMt zPujB@$YH&D)#uZ0iE z*P<_#o5XB9j>H*mio>;CiZyU*i2G8NK%7?l-<_SFe2vJb60EL~Nt& zyL`!<{E3Od=pgwS9pqc+5QES`a>*lCozY(;GimQzXCGFhzli?w*7Q$X`!C9;=IX01 zZ-`X|zwZmL{puOs|CslWpW*#ac)#Wh?;rDr*M9R1?^p7E-5K7m=KZ%$e{VsDp`ZDX z^=i69TYa316zL8=N1Gk*Q}zkJTei*bmR(Q1-^1q;oK{2s>oWY67@LKyYx?H~c^`zY zul>>K^#z~f+kZR5`(N<>r)PM-gZKaI^!Mww`%mZ38J#}ZXEj{{Ul+eM`Q+~^G>J#y zsi($(X|GHE6rO*Kk# z4Ri0+rhId~{Ur3NO8W9ujlXE_E<2rgT0Y}LMlN^)y{s9YC0u=-^OkhqT7N}Y`+nz+G;+7&Ncb`NDIXUbkf*&}9)4m-(NZ@zF0}FFJzH;*G$SH9vYIv_zfJb(yi_YptS{#`)zNE&1)upNE{!j-wj9DPOAgvj&MM(-MfNP;>7Nz{ zH}YY%_i;~Oop~WTKqgjxiE)MI5L%MKR(re$IW{rd$COnv1nZM z>&9Nmr^fY{*u*|;{gIaLdaizGmU3UQkn7@08k~HO=GnEkv@fY>ZU8UDCOfeO9?$W3 zjkjle(w?#7L-Y^p!$a+NR9yN$=|jecVwL=JG!L?Q8#08G7b5Pf_-0Hvnj9*{1^t^X zODy!~!j7kjS@w9xR$s8O3m$oYeO_4OKYi>ca@TmgTE1_Rg;>J|{J!GKcLE+F;(so@ zR}H|E_uf6{@LkYOE+O%j`KlB3M4 zOYs~o-j#o4AU_IybMq_c%s=Mc+!oI5vuSf>o*UQwDds{UeP86mub(S2Lb8T_M|l=K zc~^AI^djEZQr>Ix!+y7t?=Isz1U&M-p4?76(~fslJDLj@e8_%@->aV=rY~Muum60< z9=FDMqEE8ve$fAdjoQopR?i-s)&Cz;Mq_}kvV1q(b$VdGojoAYNFik<^R~jPqaR<~ z9U`w?^;CRUp@&86CwP5nDGxU8hBn)_lMK@PA=uRqH&{ed15^FF9Q>I?nYDw_~IHh!CI z9itonnftHN$FH#`G??)@{pJ3H`m20J9-k>&VJ&1`n;RoXe$6L0++#I|h(U<03^m7V zL&P3f`4(5=7S1yZ^Py)KAIR{tV^uL@Mg|{6rZ;7Z9S6t8$zkT*17k?heJ}fvcRxPs zzBucCbk==A*1clty>DIp#jR80_1^mc^M?;BV77qVUweR&y_95?Hz7*d5t6BHjck$k5eBK=TQmldZ{y($sU&^}g z&bn9Zo>yM$zjy!ZtovVN-9Mjozb)%tzT8oA6&m=6JFowjE6-;96n*!)XXxhlytmri zy?R&ln>kKQc+@weDVjH<$-;&n8^ZnY8BGn?#dDyO70j0vkNT4GMHBsQz)!xx<{dVf zt*KE94YE%w`JaO5)XPj)6Z&-{^7*KU-C7cvJ+nJT>_Kq$`U+Hnkj_-qdo0-+R-sZMeFGL6*qw zXBR%(A^ZoeC#gsLl>GmenbFk7e3N{clQW~KCJ0YjJmDU}HG)5sFMmeU2K2TN?O8)- zG->RTL(4Mv%uD!#hr1KHh^KEzwoz`z!^jxYThu1JcCXG~DmP|G@9m}&-hM~?4&|Tl zcSH}~-(<)ys`Y5okmAJ4_>%Em6Z>{e?mppYC#JIKbLJWHPIPjPZ)aPCSUg|6Gd_jf z{K}U|f8zgLlU@pJmVMrZaXexrAK>|7_WV4bg_*#kg;*rMMJ_4qh(aT`QRZ=#tux6r zyM`zKlmA@bUF9Ab({T&`zl4485c|EaWX}0s`rg5&<|7B2KHcEt!%}XUT@Qd8Z%z=e zlS~meVbOMUSzS{UoyMfD4M&HYME;YJbmPNyO&*@3@6KVv%h^iF$BU#zDbvT+BCg}J${70cm_7|U7ydhlV5&w zaPps;<}cog|K~<z*??frb|<5)J$3H~Bwin%F<9ENiFkr-=KV zYno;@=g*n>nTG#|z5f7@s@nR1@qOAPA(Rk83kVZB2$+yULfRyg(4~fA%}g3Z(ntY< zQ6>--1(jlls{zXut_2aVMp1?)7Ay$1D_28NvC~ONneVsuIcHi1F8BRE|L=L;=X-OW zlQU=6wbx#I?X}lldz~e@;AhXi*ngD;{OrFf+r*~p?D^s#~P-57lGVcU#d z&7Bu!uc-;m9;CIUfK~pCGpQ$#4z_H8W~5t&G^t3FHK^aJRJ2!wjt%?*d$-WDq0N4P zhwu-2T#yC(xhx?J>Fz%4Cy1*C;hQP%v#?e59Sy6(u$~V?J4AdV=p@eGq!;uKem*E| zSZezoGf&XD8|dq5@cVdsQ`|V%avYcZhIK$2pTqv+fD4YO=P>Wr0G?--u!ZAk+y$}9 zjzOl%gLmQES7GAXoTWJpCzlRtsQIJn@V%`4$9V?Bs`oQYm4*;j>3qKx?>*e!EqL$E zDr=CQXyoB-rnsLvuwa8M#7#yY)>QTh=5@l>5fWfVU+5wGG9m7nuIjhxc7Y$%;0)dF z-yx&X@1EwRo2DZjXo_ee`!7dSKKd`!4OegAJxhE4xi>2{p)G#5B0btDTUccW(9=su zvs_E#Xm2`eLmCnGfXCajNU@p4IokIwwLs@cVX5e^pMguViK4i_A#V#l0U1(fM;n;iS{f+!Jc&|r!S^t_6 zm&pb%V7B{1EgBytUS|Oxz7uKuFy1P8nQ4b%gA+*Q*2`jG7U+fHOt%GmTTf48oPkDo znb>z>wr6;m9Dn#OUFHzTBaoH+F%M-zjz$%KqzLs%x{onyaYj|}CDpc%kEiS+)N zc41+E_(Djvtq2u?*V%xD`@hHj48CN!&<5AL>tB< zA8;Qm@v99~*fU?8YvXk{RybPqFGGt+)gzrM}G$N_OV-(-ILp&%jij^8>X#dr3V(3Sf6r4t zV?44dzYUh{GWnmyWEsnJo%)?n{r^Q*e zQ<;070-yM8Jl3SoU_PUH4d2?~-^z)@yoR_tY*AQG7)*85qI$;d+hbQRaddvEM^-f@RcVPGgo)qbt9mJTz~F zsCvs;;AzRAv0C_a8Upx8wzfy&2^tH7oGN3iDX_zRHpsN@C!BBGyX3?YoO2J(hL422 zD!(o#`mUI?tBNhmw%r>lfloXelopsB0-6E8pfUu|oB$hNIx`H%K^YS0#2Ss$&)1TA;fXMOR|3$=vg?$;%IFnAe|L^4X{~@!`|E^+AA5bPndqL;#`1kOz0|JbJm z|HnDkTC^Q})Q;CtCxL^t4vt zeZsKDL_45|R`CTqf9M^@1ZUhH#OeJy6fj+_U*AO9FybTB_j)~UWxa}cl3U~OWRN+R zLpEChnM?q^v-aYKknf?V)yBfHUMyN42kX#3f&Qk(fF35u z-MD8Q@(qPw0FU(GJwtI$-6ITqWGH0MK+Nk80FG+FHc?SFq(I&n3cdXVC1BO{>5Rt_ zj1vbc8}#sYpz~o9e8=@qWR>mE?)y_Ntg_0& zDk;cR*}sIvfq$=sJuT-?WNZ8(jakre3VcgQb4`^2IMa|#eFD1c51PX`>w@!VQThK& zYaIF|`U5x)L;nPz|H1@(s}Fr61mQQz6@u`)H}p6d8~$e;8I(o{!TXR2zpaE!&=;~z zU&u3kDG%b>L8sLY`re_<6A!1zrghiDu5g)xa{VKsV1gqK4vIllip% zL%b0(Jk2>cx7EEyzBllFxh9bO(b9egzOOzk8*9BRtobZ&V?JU%R$1Pb8%gI*whX%N zSKVV%b@2Ll)5qE|>^tedMbtGI-+#OZ<8+8%`(iojflL=X4{K0;4*eP5|6~3Ko}xJr zG7q0W;Tx^{E-o*oFFl66%Do#fCu=g}pV%uWUc2{*BU={R)%$%Q_rZMSKNp1qR_b_=qi`J-=T5YN4PQf(OTCCUsWFKTyCrG(sk2Xl=RW( zunuJ?$D)<93+3oK8-2}8>s34S->KkJ0&qh0>2aj*1fF=f9#(B&hw3wzZBK?Q@C#^+ z)_$~3)bX!>OM(2v>$*_dBdtZcRE8$R1|X`|u5m zwei8D^!<6$*~fyPc?#c1Y9xCks{0t8ynSz_HL5x~e6Jc|(2oJ9uKgEkX9#d{9=IU< zbo~I|O$c9H`3Zb+)-w8jOe&`#U7v|PRkHa5OxSZk-Q|G40`M-%Wo;DTrhOg4gSro_>Muyf=?i-o$c-80pm7}!z!NX)IL?$) zd7fwDY2O3z;9R`>xpKm-lcu1%c9{JS>E);}2{boxU*V@T{fXB9Tt7znp}$*`4c!v$ zQ>gu=(uc7fi$1qkT1)vbW_dq4UT2_J>`^Ze>P+-37U~=aKm+TAI!aUjINmRjjj*am ztX~D&^T(NU4}?9hH+)QJG^y?h>E&f_o=}(d)c88@GO}Ml_@J~l;aOWJ)>&SeSeFX>fA2hH z2Gd%?gGKDXzjLF<+cenKw&C2aAIS`^KDL4vqwnD3)NOwNI1EF-c;>}ihBlLa)_2)z zygLqQ3|(tllDVmTou-`S$R^Z#V;sg?%sKEbXE@Tj|JM6Pr)dlD(U*0IvuvF}c^+A| zHK1|X3jt`mXCJupIXzBqx4Z6|X>h1IRn;e-d;PjCfxBN?HC`Q4`WSU!5BM0)XS?UE z_rqQ~r(5bD&oNjH9;o`F(9Wj1;fV0z;sq-H4`YtE&Pb1A=yxk)F=eyUGks`&}-E9Euvw!3)xsV=OA>i0Jpu}AE}!TgD^Z_)5^ zs*Aceuk&?+!QwSHxR=udb`~$8PrdWGmv89?diW;nZq{Q6zRMif#~N&^)9HHt6j$Bk z$3w-n513)INp+n>T?9Yb<^+Wqop$$Rr*aN+m3zJOXSmAthR@k2K4?y-UFtiX#)NGX z8Y6dNyy9uuqmEn9pvU-ir$5R^@fXo1__c)(3V-Zdh~P^Bn0wmcynEo5Mx2$PJ^f4A zmxTTsK4zq0jgmY}ub{H z44OVJbsx3~PqKZbJVfX9@HMB+O^`t}n=1wL1aJo*3h&~aKfW0_ypIKVTlO?-T(%jv zJ~nPv;woW3MPsBQOP!-ErAnM-krJo(r4IM;WX~~AYiCMxZsr8EeInXE32mpn(D9gO zRiD4!yo&ZwcHG^)mkxgz+HSiWei_jg%iFAxuSJ35FgL!g!-28?#lMlC(q65fEqhG# zO}!n~_W&>Y)`BO0N4Q`|+tJU<-n()iQ$A`lU~i;7KP&RNzcY8<JtgfP+j(5x< zKX}qp7|t#O2Yikv*-~A@?B{kwdbu{O+)I#&$==J7KFhadko0r>%e?GOJJou2M$?P1t6!(81+-#DWE znG=AU{Qqq7w#fkxB_BTx@Xd1`?dgVZWv=r93&EkoK>Og=0s~|oPH)S@Jn2o7>z#Nb zIzpf9xO6?>xB+lP0uJD&#H}73Cs%?)kEcHO#@X#CNAExCmo{q>ti{e_d=VUKyF7hh z^}UO2=^FrCx?~^Dlj{MqZYM)L8M05ECZ{{cH|q1bHrb7N&6mF`g6|mMV9Ep8oJBjPY%RuerWhYt!B-=`biA@ep^vX5^Dc_ifg=K!H5szqKdI zflj5a2l9uY9^SsYge`qLLw5!ntII*RtsNU>@8EH zclkd8x705K+{&jhs+B#=2pzFrCVfZAMD>G?!DAY;f?1ul8>_Q~g2(hz{ix|a(i#`g z_jOXX0AJiUlG^vKbp!dW@eZT%wKYHBR(%nZ-qt%E*-wytB&7i^xZOU5xv#m2zf*s7 z0}pragCm$DLZEXXdL*2IFA$5B-dM z{WV;R8cwo-lPuuG3Y=ItPEtT4$cg4`d1p(df2^Z@SfOoQd|SZ=GwBz4ZNDx9`10k}ocQ&#?+$y2QKBuW-soG)D2w zDcG&~u`Tt`iC8eloPw@IpNqZY^l-v81N`3KPTS4LZ2Fc9ktEBcZNYbaIo+tR>T4=b z*xlukE-14L@S)d3V?_V0Ki%a4cYFE}9b)U}RozvrnJBRf!4-q3yNX}l0J2I03mXsHMI2lz%^SMZN+ z=qsJ}^){FcEXFBgJgd%^jxMmvSk4w&h?eDNLhHNpZ)(>y^ksGD`@;t({IAn|w2z_jmQTciF4ifW*7LCo}c*UdGJm0HFF&E z-!TcYAY@j;T?q7?zaZSZUEpCcuq|1Lxiv$Nvr&7H$GvVnj3G`<2Yno58X6O@1^A8d zXeGTx8<|G!6Oz%q=gbT64c%}9d}c?IOiy~TZcaL;whV7@WRU%q4wv2*Qx3sK~A!l^~KL~-G)fG0|-Jn12zJ+*A6KIa~07%cr2Vbu| ztjeBGg6^IG{XI&0_I89z);M}uk6xGV?uuKQdCt&1uxwGEnPsVcJChA?m>caA?^nwN zt-#N?-N0UEatfZp%Ph#AXb-j}vd_~R>|e+Yp{V<2(8aPD!kOhbtCiJn`BU_Lm(*#( zp%mcTK11Mg=(4B9Gsi>JcwJAIx=~cqJT0neewEIo!UoG(#wkgS|CP?(K<5&poY_3o ztBfc`O%tQ2X_gz#h*4f?Yz8&Wa)X-YQ@=A=NpAHV^i$(M^;6?R1J3Lj?^Q;R05wf$ zfSM++-I;zf-O9*mr^e^CQ{%S>o>_jIR~g#^)im1!d78`FgkLt*B(axGl7L&pE#a1N zE4U4~{a&W?kko$BNU|{5cdNcdj%AzTs=>#P;~h8+N$G8hrTrdbjWC^T%V0yYa6WXi zVKz2Bg|Rr&$1D>&oDt`H!NoeLaETo_T<{^Vc3EDBGyN8*>3)Q)+=zPNtApxUlZ`cB zYL1pCPt6mW)1k9znQ8qp*o|lPvpsbW_I*ymr=l}GV;^&RAloXmB|~C?Hqf1(p8VBa zE&U_#$Lg8B>s8Y~iu8R~KxTpsd#y)3-G`k-`>q7n8_4H?Ej#%kjl!5{KDc_u(St9Q z_C&kmK<7R1?15)J_){ecQ3#C?gZEoXTy&8kx60xLf|v);1Oj(d92js$){3* zgJW2K*fktbU5{WN${~g<_#J1Cs2t*Zc$FuXOFp#LJAhQhbvt!;1`-v+0qJIi-6d%r#> zf_1$1ZiCmpQpkdXZg`FTAa)hoo4HemoAO@?w_7k)RNbkkj)QzU5&b%4Bg`S{`))3) z{cj0}tOOZO{ia&mHHqq*72g}tYLy#S`Bb0GC%I*G2DPQtZDp*hHobwm?n%X|8;&d-Q! z;q%)b34Ojw>hgS5*Iu=dr3mj$NM}X)_)cb>73G6JI?K<+yysp%#tUDgKt_*(yi!-* z4!RELJSw2?ptEaK-kp$1n;=i>dsO7R*|{#!6W`d%&RnW#-CIqWVSHQ}`jaM%^HFV=4GcW$ct3iaCWzMJcP z9>aN2(wPb1=OWILR^ui+qs@0%V^f(pUG>3%vvQgrk7wZT1hQ?$GSGBA&crMOP1~{7 zShgItRhUm}ms)pHTI%=BOOGv4^Y`QVPa{l+S6{!mc!FyU#n)y%G@XLcO{Z|pYcp5- zX-|O-!P>G1Y{Ov>5dgao+9N0rH8su;HofcrZP?xZ0meT5b(`+)3%e)_WL-K7O12Xw z*gn9fW1$sKK^W9WU%$}V6WDw#+=O(s_)don-|3+Eu&P?{;)26^x|JhS-X$Ad_q<6f8gyY2p63i^q`$I+?5=0c}mWl3H4(wYr28e|);-}{1rzEBRv6WYl7Kdsk8 zYbgqMU(f36SmI0IIm77t0`NgUOxJ@L!86=-P_=j`d5-*a>HMJIixca@=Fh}85a53Z zeyS;)bRA)x*Uk_+zgC)!?{a11yIeQ}x**%QJaho^XTvWG)`G)y{Snz-U_G~k>Z`|| zhmI4_*qR#j!!F2XH9!Sc$V&9&$_EO=Ya&3Vu zMu2V~ZTW)UY0XA?NC!agwf-#1_LHd+HiHYvHeva36F)B_0H-+5TSsXsu~)aGo2hP5 zsHyJprKY+ufZ3N!hcgi1Z=SgDrRV>F&S}DTE6V0{t;;_@;M`_5@ahYvw3p>wHuX;> z@Vo?gUIaWZ?uWT(9gAB!47d+vM0b2mdc2dTj9J}{<`^^Zn+E)*1HWS-Tc$d7H#%Q& zZ=>E%&^d5lQ4Dpv>y&9eqx~iwMt$xyVvnEjO?+Puqds7mPfuZ-5Pk{oq$j5HG#Dps zaIV7xx*SHb{w6+l)c*Y1N1a&9#R%Wrcf~%ZasLT;D(`Q6t6YE%(1vf7d-t__y-%Uu z6{t%OtMgGW+7#o_#)}TLu?y%8Z9^Sc$G542^iyx6>;fOp-g#YW-?yoc_z<;|aH;?P7xGNzZBygOuFbn2?SxaDGjktD zRF0}kQ|l+Z{-NQO!-4)JxEbK4wC>|bhne8GjQWT3`nCO7tvwcm`J%y_5w4G!X#A$K zugE(fyXtZt=?5=@pQ>%s=AdifA$A}8hP8pW%~epGpj?HYK?67ZJA;4Ky4 zEsue>kc_Y6-h$uMHeWo%7e64rY%{jyE4!S0rE41=;)~ayk7q0aUsKBatXzB-*$HV89 z#^Ccz1 z6(;bFT{w%eFVwWO1MKo?J?4%h%Q@dX%N?G_z_aQA$LwpYli~aV@iEZy8VS5WA0z)0 zUgi#m&cCRS^xxkCu5gYYm6y%CMi`ComB7H?XuNS+!Sid3W!=7%)(Ssh{Y&THL7!i2 zzQYpRZ$3QOz)sl#eOoowBoxo=yMpb(rlpg?2Oo#+XEkgWMY9C6|wdi$Ow7T?tDR+6c3uO2Z$iK%R&tdL^4prD{#P=l$wjHQ{8Tb|GpZlw* zr)Mzm2ibaAH>{87847+zPw1^`@pRv#(ec%UcIm%Kx2pfvpCni6ziC~l|0dfS{kQ%+ zg)n_RuCKvqU8nhK8rBW;Yu9YV>i0sIXD~r0&tAqH1=%@dYts*{kL&Te%&V`uA5n8toPAcP3cQp2PkN+N|n;HQy4tj|Z~nqxN2TeWtEQkD1%zyX`ty9UrcK z``?(?wNFR=M6^~9TGRW5=*%(+fdwQ(5wuhz%i zX$)sA77|_dh3|wEjBlMz$ks#uP3MT{ci`?_2hC z`J2+uT2mXkVL$jHzTXy#{ovk4$W3cZacC3C2b_PRO`JBKz#6#6GGXSNW!?B*(#5-b zkS>nP`>+T9%?!97D^=FomMUxO<5k{EdF#h9;0V6WCb7mlpfl)+Jfu@M{zJ8?C4IIL z{EcvD{6|1z%-;hVx&H>>!i2MOB#RI}Ho<>7&1J_SPf@+J@1@TpNhr6e*i_e3Db`~|hxL=tUg8l*e{3Ai`JnA*aIOo!tnf|3qtHe4?gd{i{F{b-0dp$O z4br)o`gl_#=84~oc(;qDIE%wC20o?g(56ZB{Xa^ZPjqVrFZW|H4aKNWqje+Bz^y)u zb8w(_249AKLF=}2c!JiC;rtK5Ncv;=R8xQ3aP|%1zVLG`I5ARkDsdADyn3u>Q{u{v*iV$Ods|6J%oYa?N6 zSEQ@e=A8AgdDVZDuO5{jsx~n0a~S2La@_GGNG?4~7ubVVZ#F?c!$Qcvp_Swf_+8!X zaJ(V-!%w2jap&xJwVpk^pKY62BhiS5T@YZUdAO@rov)*g^#b`uanTT;djY$Sx7Sgg z=DX*S!|;tqb^vAYmxpzEVPzZJ?DMT9{)Bqh%tRmP?LG(m z>+L39o$TK3w0`9tXb+3kep8x=aPxRPSUdVXO8t#? zvIu0RaQHi75y(ux37iOIrr*K1M`?M9>5S6yLat+@w7l3`W}~#cu&ZFBw7k9XJ5tL_ zO5#W@uMxl9|0Ds@G!p^80qtqW+5?&()EvUPu^v$R^=5sTk@aH(*dR894P(QZD2!y` zY!uA(VpuF2!xC5$GqF^b#>TSoY$6=VPi9ltGzNzhY&M(AZf3W#+nI%Bu^g7i<}=LV zLIEpcC9IT{vqfwPTgs}~-OR?8vl@0UTge_^tJy;s9_!d6>@oHPdx~vjPqSLKnLWo| zU@t-$_Y!-BZDZR3%MSKW_7;1a?PTvUJKMwdvG>^r>?3xNeab#(U$7(WEA|ch7dy(n zXZ7qjJIQ`xr`WITclIYc&Cas(>>_JmmsvAwMQ4h#!M|PmjzPg8-Fk%f?qlpXV9=0Z z!$*cQmUpG7QBg6mV-k`~scB=!PneaQlC_aN)v_1+q@8 z3+vAYv+G$rOK1192SMqZF@2haNx~c&oBA^zqGJ(tUx%&N^q}(+UpjU%L-Y5ScZ|e3M1ktj4=BD6JVhKAMpRj z`G0!9P56mr0j<;0cq! z58!r&%>ggC4V)kwd?23{uwt~J0^|QqjQ(nj{rfQTAH=v{4_w&UyBO7Pvc3Q7uN`Q? zYyXQ|@e2C~c<%F{jAzjI|NHyn|BV(r2?|~hN`4R&eIF>h8WesfD7^v{Uku96#|X&A zNVp9nVh%>ebc~Qm7%Ax(G07M?aTr077)c{Aq6TARg<*vC!bt0i5!VSLF90J@LSNu- zuw)2m-zm6jk6wLPy6bn?fWgB?gr}yaM&gc1jZ00yGnpZG6kEntV20g**>p6nt(Zx7 zV6^RGpRs{ZyEz;frVvPu*|1FlUtY?qQ?0OcgDNrxf*;|i_^=Zr!9H!g%>$I`jbNM40%O^k=~eFo$7B& z>z&^HUH|P>j(b_WOg)|c^pTze@PGgQ4+H<7!GIu&68>cEkIDY+gF<@rHVz4oHI1L< z{Tk$qnQJMrF=xtYc&lZ4EPu1Z@o%_^ey*wAX8*ii#c0|~-~#X9_gy-MZQ(6xbHdNb z(cz~@_Xyu+m}a=3)G9YBf>I|}$kB46v|Cyw&6U*jh1SeFinB6HN{h2|%gQn{i;9a& zD8@THyP~YTxR8fu7Z;W1E-BB+_Lh_Qfql`rnM+1 z)0&f$S!6BGUzD4fV=cF4<`tI~T2Y?0pv;Q$s7=&1YM1>sc-NZE*vh$>Q5Fj<2p?@^ ze`2Q-T(0x=;KY3~$7Cst9aRYKoZLnE*;=UuXiny0>w?^hlFZDKih{CS6iI(b$6qsx zOL75IesK}tEG#L=1$f!kf`Tk-_5v;4Vk_DS@Z6HRigMMLi6V-M%k%T{vw3;E8aH^# ziYrP1R(?@lv0DwU{AKw?3%p}J@I5cL9Bs?9Rus^aw=uscCwGZQ!%&`%Z#BJ^4wbrq zR@<+q%Pp!XBpd)`yi`zu3sY|8<(Fj=R&uHH$|{Sp=a&{26<0vlL4QbBnp;f=r}RiCKj^$49!-Tx-si(v{`r zF38NP1UX+hKTmUodYo_+<`x#0Ruc9Y%PC!KU6e^tRJHTHFt^;w@xhzlCVf^#ULIOV zS@57r)zb9*p7AB+rFuQia`l1F$&wH2?D-W%3-ol0OY=b&)L5-x4Ne~J2Dh57A|j?J zH?zDr6CLj(eP&+dsH?_T#6(>^{)+j5H;!^AN?rJL3(s_d&GHL#vdc5e%5zI1GttD- z@JwPAjO7<)7gXfXFwHD0E-eQh3Xy{P#jPB)%`@EjZq3fFD6A-;!BkpN1V%V7vn0DP zGq2QI2;wZRAkyT27#C#)#pPgk1;yYO;4aj|^K-2wnFZF$;tIEPS@{bqK#f<7FDS{2 zXcLR_=U*Xwo;AM+)N;l0%1Xe$tOfZ?k*FXaDDst>#3J(%Du z06MHRh;;VF8AeGl??tue$|7RaYJH|J%wLkJr?|HAFc7rz^arh#=#SP*qytv}{P;t{ z)Q0c0`q4vD=ncQ|;Q!SmOyjSa+4HSMMY#p&lldTDmG>3oS{D&-RsU#h(f0nw)?p;m z`;1f5+bQ0pm9Yy?JHm0Z-FV`5|D*CLtqnI6P|Su~{fp{3Df#vl16Y_Sa&rI9$-NriO`d<& zFZsI11|~;udo(%ri4MuOeG`)7FE2?R6W=v?!oK^GpZ;NXa?!1QlLu8EP5$%Aq~t{V z@Z^mN&zb-OVE!C%H0)+zKuI@ z9DA|n0k&k_I5oc=`P=VdY$EdCj{Gm1nW^(W^cwP?Ph;aBNM~=oxu4npOlPL&)0smW z$G$NhU{QMh7m>dQ@~0uc7594N58KB|kiYi#G?+@{(CIz8FPT$yhf{^`Y{dp z!?pZ9@yyr<1w}fueUirP@xa-M{p?`Jv8=W=jh*~-EHfk?uw_4t{6sGn$qwx`{=dZ zK6?xKUwm*sE2tXF{+)e*4Z9clZK%KA#MoBkznscgBJ#hmhuO9O{_oP5sXNM;l*ZZz zz0Wox|L1S)XVbFBviI^2*t*rY<^L!0|BCz($bSU+w*!AifWHqx%l>K1*yVk88tq^6 z!+!Sp#IY>D811h{{#w*;NBw({AN|hyBY*22W_kzt4GVC|NTi+(R5nRrL_sX565x@2=6^6{YZ+(4n(}yZ%F;<$Nmp5|lXPuw_YRGr;ZY(#z zI?ugyxbx~m%s%y@?;gl2EH}EplW^w#4*svp)ilBCb0i7wKt00M zl`RE(hHGVN;aZ<#iGekz-jgWD84h8|8Q}_7Nm9??3int}d)8Z;i>X~*(z?=@&*u`3 zRuIDTa*MF;v}W@q76)F1Uk!IFLxZ360ShZ~D{_5_h$zoXZsigz!3BA-SQEt1R=!T< zcyg6jQe5UH*J}8nXboocm%biCc{<(e2;hW(a4jES7V-7H+j5oQaL2R9JIVJ{uC*Xr z716Qu&o9o&EQ6?vK3ApmGCYb4QAk;KX?_U_=I+Jw`~~?XnX0T)6!QM?NX4v%n6BJ>W|B}F~lxtegTyES=UU&*;rpiSz^SM6^uVsq6?Nl8Iv=Az;P ztoykx#sdA)ZYB7$GfjPHJVm2?#++g)~9Vyi+WrOIk)WEsP?6b za*juJ=|p_TOI1aRPL(TMEk6ys(kxZorOlYM^ySkVJX&r4RFw z2xX$(+R`r*vly>b!>2RcUHw4my~^cE+Y-zjszyRvFjBfJ=~FdTt&Tq}oi>kYk*@se ztfc25cr`sTG_XZnOQP$3sX$jgq$^!Os)1ZC( zRi8IM*Wl*a^y$~Fevj$LEu5#%s?02}EXj4Mt(geeX`L?PmT(KW>CXkPT8|Grw3WNu z5Q6+VzBobY`d^YO^|G{j^mIDlI%+r^^p9X7I0-(2lWrG$?$QGfZ^O^p@+?w+Wabnv zE>fpOwLIdFZIbGW64ZCCS_Gs`IUDUZ)I5@6IpV;8_z7)WZ3H(tqfGwq4b7G=HZjZqnB60&= z-1Hu$7rrmuh2MPNnSQHf(0{IL@_Kj0s`1$7`Mk?6+{yH$SgM2I(ZYDRTN)i+4vSkF z9BCw@Se8b8(PT&<19moI*x(<$Ofp1C3&Bc9}ztHtZ{pKJbZn>sVI z5Svz+9{TnFB42)yPDg;}+VYjn#~zJqKLq)%ASV#t_23hJZnWxezCstM4-B{$}@8j##!!S z$RF4WQP-$${jb*tF)pV7o2M1n`&{BuT$ErRN8d&E=+`Tx&$gD7SCr;z6}aG3H)xzBvauXdbsYbcLze|jWR>nX9$!=98^YOmrv;L$ge7Uh+B zhx5%pAK`pI*(;nkOWk75bYFtI`b*!JCi@AuH9945!;gD8oQ~B^E6*%fOP`kyvh=Fp zKc-*onZqr8W*$sEFi;43t`|@#fH#ZahMGy+Z}-tIP4Ajjwiv4uO?g5&)o@OLu5RYy zB=zW3UT1!bwP)m5r=PjpO*0gMEnbus=9Ml}%{CV@~ z<~7aRnr&TeA-3+eZnn<0AX^t(u;V0!E+FbA|E35@Ej310U>*6^01k2pPk3HhY_qx_TnvwTYaMgCR(P5xc}L;h3#OFq5tblRDHXVT8@JDYZH z-?_B&`_89b*moiA;=YS%m-bysYk02VWW#{QoW|!GPc{y?oOAiP%O@`nXv%4NuIXgc zfaaX$N1AsuA89_{9MTfilF?G$@<_{$mLo0aTS8i+S~FV9TUWPkY<;P9XY0Y%qpiQU zHn+BS^mYt)BseBJZgmtmsz6(7KwY(t7aiL`X?D=q=b*BB(A#NH9Co|zs;aE2s9IQ6 zSe0LuTV<`ft?H(#Syj`kZmgP6m0p!nl~k2bHKr=IDyAx`YE)Ht)yS&hRl}-=R1K;c zP}Q%>*xaZ2y5`=^y_!Rtdp7rI?%v$3xodMsbC>4e=FT9*P6?fMc1-BFvqM6Mo$V9a z?+i=`+}SRn-Ohl7fSvvc{yY6{_3Q0-)UeTTtD(2ysIpPHRq3r9l{d<_%Dv^I(nhI3 znk)^M+DpHS2gR4f)nb7-SsX657k?KH3NHz(g>oTB$Pm(mC}DsQBFMsdoV+>0_QBHl zIh^XL0d19lx-2*!G!2wy0*!@(%8a15AW+;@`3Ko)EJhOk=bMgbxpy@_#N#<1x=Mad zhgXTe1~|(80~|d5Dsb@ltH8nIeZb+IWVwA2=hCq8A%yvE52*n%3(KrIoOg4?>dFSZ z*m0l6eGp+QDO~@9tvLNOY47l30S>8#{e&?0I}-Vx)XL1$loU}?uUCI?xDCx;3m6{ z(YO8jQs=mY&0|&4Xww$7ma-vhX_AM zV;yMhWHj_`INh6!hWeqQe}*t-KtnUo(4#nA|9l_D{uze$qoE%SVeE(DjNKB!*d$Ow zT|8skQ(zS^p0T^9!V%IO#%{1M_Gvz2S&#!A%g`A7p*ubP05&7N6F}qm_lU%ccf8t< zTnvLK>=YHQK!YIK;%`&rHJEh=ieAH`+4WSa(1u27yjK2*BC#`2KGRo+$V)i#P$ z_lYUe^2wt7X-yJ0a(R(m@9YJFv}#-x>!GgEOE4o#|m?)bb3I+@QywmYj9YtW=+who;+k{&^XROzz0|E>X`?VNmqwJ0qh1B_&4RK6yfPymfYT-PD}u=7D9=4^&o1-+SWz z=&EnmMcky*(8kq?S+8RXPyWi{bAqUqx+-} z8lBiBVsxKJ6Gj(*HGcHw6SGEN`Y?O+{g0Q9esx6k==av$Ke~Lyy3s%RZyf#J@E1mp zYuq-vvU2C>*0(+wJ#OEZqu0H7Vst~<+0ph;A$I-U0kMsR!Lf$3y<)RM2F1?)Aw2e* z+Y(~eZ5SVW_PJTHk@scC7ELRSJ?vKc~srSeIZN$2`J73-qm;LecaZj$@7S|zgXI!57gSfzPU&f8< zeH_Zb_bj0_kP-XnO-mdARH>H7M>F>fvoA5-;L{Fruw#*aBLc-EMogzPa( z_ADF|ztcA6m!9{Jd0$*N=DTGZ#(ezL^JBibZQGc?4!<+zb^i~>tn~kK%ro`J$M`*S zX3VWySp4ToK>Y20bdK+o-z&am`M~%Vb9nr`x8mcizm1E(@t2JF+jeEeZ@hD1{IbVv z@o%458Q=Kz+W2uZHpHjg@qGN?VcX)5Z+s^{_|pUN-9I`KZ+!ZAeDvHi@h_}k34i~$ zf5H=cIwvfT@0B3T7?_X|6rNzMj!*bt+qi@uw`L@qs>(_@616blvl3gvV;`ST)sAO{H3Q7=LS5V zcy`aLi47y)NtA9nkXU%*k;Gej9#1^<(doonVp-DS2mO;G3p*#RsSiyWd}ct>$SpS{ z-Pa{P>7)2@NjHwnNE+Q>O{)2ONz%guZAoR7E0d1TS(|k9!>5uOzj-dH@ZndJdNsVA z^k|<0Ns*n7Bz6D#SW;rm>7@6AS#oKvfAad&&dJxm9-92AeL(VS6*nYrKRPBkR~VOk z-RYUhO>bC}n=B>C;1tQ8{DD*nFzE$fphFI@qrqlUPA(K%IlBH;4=1B%Fi%oi7Fwb3 zQ?*K(i9GV_GqAdZM={n?Zh%r&o&}2n@_nEhN^|`irS}X6zb1QX=oxcWPNlv(OC>|% z%;G#v*MNks_CrJx?O1{=510IgizL6%-*8zREnzEN!OuUSU10kT9XkcF z&cRX_SBU;jPrBWrI(G6(+mVT0WuXQG|KrX8=oHYPkx>b0V`5l){^vaIGx=tb{;rhT zt&reup(rFKY3$?yS4yp(JTe&kQ7hHZZ`i1q$xkyqm^>2%1$XP+Z^+1)7`roAP26YD z$k?=uyihF|c~G}MN@~{*5O?g@F*rE5M~@zT`t%txWC(sU#HoLX4hjki2?;@T@7}!! z3>d(hME^qZr6}z<6fe(Nq*@-LjYi|JVZ*3A_jD-Ot6roVK72T;`VZ+`@Hxx#*_3YG zx*=(7EZo_-{i*17R;@M*P^PA)dZz=3&W0mJzkdDD4uVfD!`V^<`9L1%0}-g%y%^v4 zbC%~U(g*UK^yW1;fIohcj}{{Q&j`6I3%_chd-xX{AQa%E zNTK3N@mHkClXobd*C;>FODn|r02t&Wq=U+80%^I4KijVE>0$P_%O9{`xZz{_)Pw%J zA6__e_nPF{yAij$*S<%0AHMme-G|@UyW8=>cf0?(|NQPxE*bX7ja~L=`IC{~g#0Gt zHz9ut@~0p_R%o^qLC6n%_)XW41finbCIh zu2oN%pP#+Kynn#c=I$43&5wQbtT}G;3+BsJTgpS)`xXt$ezGqdHD_st({`Os{5@u0cOme0(;zVwB8LlBRCCxlxBOnYucdn?rGEwZ%=p zDU9MM4e&LH5*SS55ZSWM@tG)^wJG z?61}G_@2MVZz`M0q_U_!Uw>3Kl}Tm&W9!zaDHZoceQcN$HE=?3)MqiLA}>vOEAsx8 zD-EpMHS7i^vm2(yd_1z>#7!faXdBrta?;4ZjSCxzwb;m25g(7ZW$dOAHf9@P51%xm zEAyQTU=#Jz+%0II(2p=T1o` zyFxlGoNo>TNGmB;>;Yx$|=Q@3!q9*>NovJ0G=4>iBfc&?#P<8?XBsej4L%qk^u z61HvGxzwj>Iqj7(O{2Oss;Jz96 zINWi#Z@@hmw-Gl9b^49$+|~+3c-UIum4PYqn{-Tclb%Vx@spO*Tqi|&TcB^EvfyJB zpPhsAFt>M1Aq;*X9Y#Fs@r2roeTFCL1>slK5sl}^cxK|c3D5O-7UJ0t&+qYEi08w2 zevBu4c01xx@%~nag9gEFynlh`NIaJ!{9c4l2H-mY(0qhHf$*CU{&$2IB78l<-v_{B znjMa(5ub(lAcUVr_&*Uo5#jsMka&FT{UqXhBfbIg{)nH8@D~w24f?-raO9bQa`&O! z>wugSX!txd{7E=oTLGQmU2taj0^)B*{9VYm0{M<%`s|AjTHg*m;bt^^0Lndzat9#a zQRMp<`g0JRO}0SLmhd6Hw-7%b@j=LU8u_LHVcYOg8VhuawfIP84&dDgcyB~~ucN*> zA&hN-!_a5@;$#jGJp^!l1GtW2W*mTzbDV{PvW`DH9G?t=Ui4ds!vMH011>wtHKE)= z&{6*Dn8WeoNXB{{g6^0)8}Z!BBH)4Z699@Q*=v7*=K_{%%49d&GuSlSB-1#P89XbY zHr5tx8&!+_F3T`B#6GaL|I=aizO2u*-u6&a&(E>X7T%SG)CYgw`SYOqPOQ_Aj+PF! z?N4EU?TL1*T}i+x|M~u>{cL_Aesu2sJodFFD@=JyE|;U^2FWfxfOGdlq|4aPdO@^_ zw~AxLP_bF47xrVX;}PL5?4!*TOu|UvI-!Hm3SIeecpdu)y5SwzrmSU;Lt}g&ysj*P zdrN@N06v=q?eZjy6f@X+0vZ<$4K!`n0etACY10niLtEVoTI(M0#Rl-9%MON4JBW3H zhPwl<_V6PW2<ko1NRBTY{C{ zEuH1g&N7^Nu8MIcRJSf{ohhfuGvtBtbZNTO71uP`EaR-I6eUN>v#^twE<_8d(f}z% zOc6tH5wIp|BX)En#0aqqF13AOynV7`W^0$$LoIsSyxXI<(+Q(T4={0gYqV@_C5Wau zVKQShDu5?dN|k1b>0$=pnu$F|KqV1OCQ0THMMzx$l_d28HPA))mK@KvX0@iYMsTc$ zwR+?Iiv6tNdw1(hDO!51HBFi!4FrxYZ>j zP;u;Q>EE)ac~kS+=Ko3m2(4#YjEip=|Tq+O7HC8E6{A53Q z5UvbmCidhla z(}3X_!a%`{o!ev0hnj&|4Xfc&D)w?C!RM&A-Dz2IoNIZuWoC=ivb%YEb1FZ4_F0E9EkIG_D+68A>`@6|Iy?>NQwWud(u2xdc}QTGd_bE-sY( zq--e$t$3{^O_(8ATc%5c#6e<~WRa|*RU9Zx6S|4r#IBMVl-;?7=s5~4qBe5c5l3Of z_7@{CX8C9Z?Z}QYjIF~h>srcMB3i;)f?L#4tJ5{L6M~9-CHkpuod@qNbL2eCCFA7T za;}ssmEjsK&yuM%)Hj2r9BC~2s=E}?O7NEmenN(nE~QDwTC&6}v|x~E(O|ctbwr7r z3OViRbVrmo0HZTSjMQjPCY}TOGdT8NioO_i;o0+9=Tpu{oaZzs2g%N{CtRJY3N0s_ z%uQ0$_RA|Sn=cEO&o+M1xV>?0m)(535@>y_7V^}@By5NOCZ zJZE^;Fvjqx;U>doWwSC2*ZJni=F(<|+$y)gc%vC698K~rm~wm~r!;>meJcGM*YxHe z#P5agg};Q)gv-Ly!kMPur1zvo=^5!2={xCN=~dyV&>%l7AC#?4r{w8P%cNz}%eej} ze=P5mi{*>bMd?@J7vYldv+$5~LHbtuo0KWtEqx@tBb}F~O1m#7OXtLM;y2QR(n~^- za8|rQTzmPn_>=IVuu=L^dRu&3{93w8Iw_tMS4)M`3Gsxu0au;0RXQW|6*}Sihj_a< zMf^bgN=y<*LRvU3){Do4K0-(FOYt`GfLJ9S5#JJ5i8qQ{#HYmf#RB25kSM+>ej$7z zj1Ue9cjDR)>ElW9?_z?GAS@Lt#T~*9;d4kGFA5I``-I8DKZOOtEwJLbU$DcI$d0x0#cucqt7C(!@2{tLA%I=Hpl-DlCDVr{?y|_*ps#ITGp~NZ+FIq27zqnRj zEBC~;MhQ@Al<~@7CFSCBdAU3US2eC$;a*5Qj|l69dxW{5UzM|z3*&@bVYVv99+G<5WSi`d%ZjTTF5+DVT(6z?#rsp`0pR~B z;P=ts`yM=>&q1DZtih4n^kw6bhNy-emm)8nxVZk}%!|Pn&t5omVb6t47y2nAX?XA{ z8WXtmIaX{r-n^%Ib8~g`!e(pp^yZZ2h~_Yu&j`(DnvOMn(X`W0YsxaZ?O3K2{c(RbQG+Yr(eENNx2+xIqY(xGD7Km`H=Faa;I{gB3!;z zc~N;l*#~*}pUMK|Oygc9LHWC~RJlVr);L@qF7Hv^P!0%H!Vy@FtrE5fPYLfs!*&=H z`#GfJ4#Jb5!}h{9;TC1L@`Q3ftcZ3flav>f*OkYWcsX9KR8}h6mFJb~ivjN9CL3&GImLlN>5fZ@5>UFFztrkk`v`a!SKJ@?6kl zJJ9wTVV%54o+l5LdrCc}wQ_)5Bai3&cZD3wdGK;+IVAZZQZ+83z;T@Za>1EtzR3Yk z9?W_1EO6s97qdApj**BPXGw!FPj0$6Q?dvKK959$L(dRrhy!s=$3?QhG|VijJfKPf zA>hR+q6xBEe}VXMgg~e7Lc!v47(U%o1e{kqy7VAn#*kr*cYpNcmQ|TX{$M zMtM;ANhy+xdSrP8|8(U-;}MF zlcXf6UhXJ=Dc>d^kgMb)@>}u-Xn9wG8t()RZjs-Y3*^J{eps)44jaT5xX|J@laW^d4svAd&BgNy=G3gD?KOYwor7xrr(sk17Qbgk+@sL;vPC8lor<5Qq zmG+2xupxDe)EleA9nvJ}1?dhcUW^y38@7wri?4~qaeIlqVD}g(JtpN#&q))d`=lk( z7_1$il^&Hgi<`wW7eWokE?^eCu*g93+$LPLhIWSahB(7LhPj4y3UTJ4$~?mw!&+sn z(i2yJp~f)YFvqaM5NpUYEH?~MhA8ERafWK8TIqqyAD7LLYbfJ#;%H^IA;(Y(UOX7r zSi>ws33xH_Wx8(Se0(uDd4;!=2j=emH);%;jn$+5R}MQdtnzgDT$Av@$Rn{%6HT^`W* zNJB_N8RyjNE|y)4xY+L^acJS9Q(ht7jH^}pOKOpRkea2>q$X*X^s4x(c$wyU@fq=9 zTn*ACX_>f8yojq9*99?CJTFeg?42yqyxkYq8L5-ByJbD3)-Ellh3zeWa^4EA3R!|A zhojOb(yyBAa8UY1dRqDyq=k>Aozf}kAub*K%%y`vO}m@6Hx(&sn>H#xa+?|2ZegEqxd;^Cdm_T zWBi;Hjte&`Ta>4i_mu+Wu#%{J0nV)R<^8b7B)zsLyG8{aa_-zO9UY+Mo zZ+u-zY22htk|)V8fO|i#R4NgT0h|Y~lvm0gJec^eoG(wrMZ7yuAnv+G*wnB@e%6f_ zhswl<7dtuebC58I7wbHjqzF&`OEN??mxO!BYcCPkT_{&y8ZC{M%4jVE-fM$BGReOr z5fcw4dDz8$yMZT@^qapG=BPJ0vwX~OrgcMi7S~|DK$}>U zJ9V0mP{!OnB96RL;RF{!G_|7KyAXuK#i4g7>=-m%xpxfV4~O)%SwMou~l+4I2gJ($N^+s}MG1QmKTR(Whjnpe%n-3a--%dXG9X6+!;xJ12X{Z$dZ}dd7F2Jk~!8z-eH7U3LlYFTr`Iq z4EjjmY`@EZWMnq-4Jk4XGDZ%iQ4vn%6yz3B?kQ6<%~R9TnFrorY2w6N$&J$@eN@AW z^YUPdVocJCV`Zh;Gsu0XF-a}IWISB*P39i?d}XKcM5Z*rF-M1r(2?|eCc1&j^_@a< zR7qH#R*bC?Sj158wc!+6Ka5C12BH&mt22l?dO}eu_e81UQ>`97fwS_SKyY+>M0-O( z*wp*QJt6NQUYJ=U6W*#e1*++^QuzxtjPO1p$roDOBih1JGL~E>`d|nun9RxvJR%{X zY<_-T`B3I$yJL(4flf9vV@7()jbn@{<>k4BCFO7{Xe=)_F6Pu$UR(^8T2yIN4+&C) zYIy6GFO_@NG=hB@t&6PrutEjzz%G}uq6D3*dnv>oOhsO1Hc{g!6|f2Bsnh7!gqdSA z_%mb1B>tQ>BaJ`DO_{-;X6@a4qna*dhWeb6awEl4h4dt=S9+2yFFnatm!7b0HPVx8 za_LDnwe*}kVWw8jSXg5dUrlRER0y}`l=Jeu$1^v#omx5t)m~{xQ?aa|T&>S%ewg2y zD{^OWN{35_!QdrE#Efl*S5XOc*+J{n=)(iWaBjLsHRb!94VfMgW%~%rdzN&ANatii~cA# z>eU?}sjqBtminXgdhMybr=_RP8i$}cDKn-_m@)K9hZMynCGb(=3cuET+*Rq-^MMPy%GK*r^QkVY zXL3i!m?-$vMSWG0R_23yBYb9Qwl55pjN@Kd+eDSjNNp2F{Ze99y~W&UE%6zzpPY8i zTabfPFE%5R=3C3O+|EEE4%*6Q=J6?0rle2KoHBI^A2<5@jZ>#^{-M8*oiTMvM&{&n zm8-e(so^swj2q9{j-sVU}3ZpC_ryNY#&yWq%F3pY|L ze8Qt8@Qmm6xxjLkJ99!>x-U3*xDPlorcU!&K83qrbiw5ccdOhDZdbfonT{_CcgIni zaILsD;Tp_(c*?A~nM9}V??eFZ?_e7q?~z{b#8BPSlkJ21I~@#jf2VU$?(ekq?*2}; z9q#WD0MO$d0D8OwK#z9-=CJJ$2$P@cn5$U?*P!_9RRw&kMe>K(}!og7ks0< z;3LOp9_4w#H_8jXQC{$k@`7)a7krUk@I?Z?SyLuWnL1|*n^J7dEiElB16mE(PywR}FN8w3_}kJ3{hO?teOU}wyM)A?-p_^V_S$~<0KnjWLV2obW9 zs$nVRM!2DXe1Mq@i>6$cbjYKbDnS?_C_0ML8Z$q$A4&It5f( zQ39iTUVsxn{||d_A6->;<%#J%eUwU4sbm}5*v9sCH`Sx+rm$RAdl0wQwb0!q;nT!<0u6dH%>+5G5rD0yb|`X9E^zc9Q@>GOGrnggu8Rs zcH~Cc+U*lOUn9s%uEYc93*a0|4QD-$`NTLaRKoy@wR_L*7xoDp`wy}8X(u~pz%4&e z0`98<(1*QyCiZOGGln4m6haap=Dgz%@i4gk$j9LO_K%Ot{s>RrjxD=(j=dvV;-Skj zS|&jebeW}x8Ck%~6r-o!4b^0FP`0*N0`QDgk8O$%>lMq*hsF4JKvPt`SU#gXg|p9n z_9B2Hjqly_mT6D~-?jzEhC-W^u~)u55IF6_8FRG0%E~(BvmJ#=uzFB5ed|ZJz_8wh zp>rWG(~o$X%ZqRFuC}7SmSy_8gmDM#U&h0=2TH`O(4!hH9xPSc1cN~{7(BRGq%MCV zLp37zV-n$|L2^#IFm4fE#5z{g92&RCFV7I(GhTo$>)EqqgoD+wom=;A+4~MhvsnG^ z^NoR`03Gt}duP|yJ!2u87oPCtqtTxE<6|$)&+T)OTe)&&jVH&WkrR2P8fo&-H0q~B zptdV%LZcYun-a9mm1JMz^TAGS`1L@YVBeM<+Yx|WQT{9z4!usO7w|Z3N4HfZD4cw< zV^6W**1v-f8|(@)d$*0k0kw^Tk#92+Jsld6An4dVvUAIBmy>J78ZIjfg7xb=Ui>!p zQfR>hLFUy#@BOuo^&%h$)^_x*jp(B6Wb#LL?xRCtq(r(SrjQVNu?79g?va)I_N;`x z;lDHBg7KE9=|0xBkpTODkyMejk7pv{z)GUY=iX&Wu=hUt1MG68KUq%6-Lr$Vyc~Um zheIV1j>gMQl1k=_@SDR^pOWNLhv0zWM}l^3*(aS_(eT`8C`k^(bNJ2t@&lulke(PF zhWER+Octe+ujilzm0{r`@<=D>BH@V~iBndAC^u<^bqc}2p*=Ss|Q zD3lZBH)EWPcllTfk1zL#mX)THOfDMUV)@7TO8!Y$$?;V@!$`(^`K!fLgwFD}Xgn9o zSNRN9q{8mdeTZ@ytPE59Km-+eTs5j_4{cq+>yOoMD^XfGv@fNJtDq>hGV!#u|tAE=ffEZ8E133!*Cd>_Sk+aCCl!t`=*w$qa*9(4d5 zy=Z`kSB(&-xwL$a&K;TW-eJpc^~WU+&ORLCLiv363)rWVQ;(UO9z8ze!!yg=VeUFe zS_BW1MLyExoPwp5R;?ECeDS$;09Y^nDcLq?b#~(t*t*c_wKhnM`)sb?l>B%egavjH2L4oRm(g2xU>uH7D5mo8;jWd1^it7_QHSxM z8>C)Jn|Tv;DYq!(d8$wBz;u7B&SF4kuYWr z|Gy1Co&K-DlU^hH^vj$2PYNIY?IuS#US#3N=ns^B^askzfAUy7UHzlEAJsLmEQSw$ zFbdZZKFLA7z|@TlCAPr7G7g8q_}-nI{;+v2S4=qX!TLX*@G;_w5K-tZ{5OKEjN_qZ`;e0(Y(+U$70_P8X`?FxoHMU+<_9iADr7lEtNZuv z2E%hQ>eKK`%UkaPa`jcBSDJ4f))VaV2AHw*7Rx_$Wa4yUaVKRT%3*xG7Y0oazLi)| zq@sY(PZn%@^6Dm+kA>xqVn#N)Bm0Y%&o-s=%E(*{h?-onbVkkuOPOD|amEORw8E_l&-jPgf*K);#{+0kY0 z-52IdKEG#vB(Vjq#fS~?V@*eLyl4XG@JGFSsBycu<1}gXuItxkH)AS$bEdt$WBvNg zy}gOIN?OJDodvawk0Oi({ znl#v~#WKeYCB+$#7n?9XI-wnKSQ+=n7LzI?X}TctB)WWx#Z!mNi$~LUS$HxN<>@e8 z7P^VvYgrbHsyC?j1dH~D>5p0p>hI%Kh?uZ~cqY})eS3CHe1iI!#1__sXn<`4_*k@@ z-Z~A9sHNU;WfO<%aUNz(L3)@kY6FMka>@HVJ1HuJcu>L`4e1L4ED|2NnNJv;??CWE zOAaTYTnaPTlai1>=8Z<%i=h)*mvF>sYF|v>lJq2B1nr;v_S|c^UaDTR|YMpi%#I z6}0%T$7wLYoh=CXv)%hj8o{uqoKb)V><6)Tjop?}Bcr!Qs8IK3BfdVc>I z4POCVvr@neSLZ8mI9e=1icZFR5lrNlO0kH1XH0`6k>7KeB;xH`hzubS@0>8j@b+!Q zqWtXV$2F@Hj1PHz*! z#9SAVxFFZYN36~MyGAO)TN!M29gMJh{0>jY$zHmW<%;-Y#pv;Qi3CSPFL0T_!Izb` zZ!3^Tyq6`3cr!J&OiZ|iHj#X)&tiDWS3|}x;5fgyvwZdQ;!pV)9pO|T+ZvIVAELf) zG#Mv~j<{kJ{;+!WS@`5bJYu2fg5bt z%_b9rd@k#eM1130f>@siE_<;#0Uk6C?0jo<0?SGIx%p=Vo#Z!POrS%M2JhF<2uB^#sYRwR9~54jb`>w(&~ zhL>AC5?6G4>sph;M>)84tZpPjLbraE>yY#DNT@^0I^|@15+@{U_F;X9d=DsS&szeX z|L*Ae^Olh3zlZr?j@y+kFwmEoW1>?A znhKYNd0{3YaNP=l)lQrc-adjXjIA*5+HDccqhnFT2we_F@q6JVH!;3($E?dgI z_yV^@D?jAI`hXpQ7*e!v*#;L%KDED2%074<&XjP&q@-dW{`Tw&_R>?V9WsVKkpn;{ zL6g|v%8D}~G59E*WJt{K7iEt7q?CSh^xHvh&zLTDiqS`bdtSNzOy~}UQ)&dmNLfqe zJ3KhA6}duvKXy3Evo)wRJ%uxG-YCv*hdR^zaaENI=Zg5G;0u>F(q;$xGn?0Edi#4i zHh1>)Wd^?aqIj%h@$==2s|maAR_2LO_jvJmMOCXPFLf*yu4}Yumwg+#I*DC_Z%vGT z=edy;!G!mWu`U!sz;KFS`KUZXY2M;iJG}fxpl&Me?d#gDDhzP(a!Bx3TZdvZ8#Zkh zk8h+8D0F({V}9$n0IN`m>DBzkLgnq-zRl8yEAu#M#GTwspTOgNwU5i$+wXt<&h*bVxkkT)5cjv>$7r{}hWm z9&SQD?Zbc%3AS42I&Sq|$xPlhrFVxR`0ji)e{xH3s zf;^^z#^gll2=y}xU50X^`_z>fUsCvgN(!1B?k`S3-GY(+?R$6b8F}n>$?IqQE)9!X ztzvC@Zr>Yho2*J<-7BU>8=u=Jix&XL0@y&iY_4&|1@sFq*`ip(x2yTIPbi)n5xgwg zF#LKgBGzauvn|B8=^k7riuhjzN#k?6e4>m&s_8{jR+jEUs>Uk_Fx_vl^NHM=U5^fC zaT1{|x(?-8N`iHJ_S1;5Bp1qCr%OP65=J!2mNI$8@NVBec((TJe`_?9l|<*l?ZvLY zF04g%*N>jt_haoj6ynptHVp|QI;ZkXJFl-b!n)*+b6BXona!Dj%^hpA!LR%ZX2`MO zRC~5?G(Zc-9Jb>!b*m+_Zu^dCUwTl0VV~(b$ub;8fcbHc86%u_Jvkx4ii2HUNWXXc z7>2pu-wrmn6TXnh34P(ESny@z8f9coVsJYCkzw$_o`JpZtb;Rvc8#3^fcSLi*Ddq8 zv5)whEAdG*wJgaNj)(RQ?BV;s=+1pz;$eoO8l7Sy=@@^ZNnp8zM>fEdh&?wbo%}N! zFt>{{9q4I%iyt`RM}x_iw~w0p#j*8TYS`ZOFaUP$*tson1TO3a{McW<5_!2@TnY(? ziQw}OjT*E4Xo6P#>htyn`)LPa$9Umyd}43oujuph&p(d?C>p=9s)tx@3#`clpU*KPC`+A$bl1)i zB@<|ILP*(+4}6CQk03j3{&q8FbvB3o^f+9US$)*lX|okxQnjFPED+z&ph!E!#=)XQ ze)Gp$)zpZgDx%&#A2h}Uyx_6R5i*7BHUrSK@>?sviT$T~zQ>;3>)~}xs+bNhRk3im zZv4egdvNkcP;p_2$RRb_YN}k!LTXpFZaXLC&_;Ca#~H&=@~*ii$x9{v5a=7 zDoD90Mr~f}U_yF^Zp}tnhs=S%!`r)OWd9iK65+<#>zQ?fy_+M8IvP+P7u*c3K3B&`WKw z#Ybv9EJ|-Dap+3Bkp4U0(TKLcVE@0Y|5zn`^)x~ z2n!Bpit8nfEgrvV@6K_`z39BS2c6en)IT}yosT9?z9+!<3~#vF^bhB!>m`ja9y{z^ z4i&*O&*@uhncmbR+LDKb zrl=1Vox*r%Gf*Jf;$b87XqXURF0OX=OF^5SQReK;Xx-ESn7k4+?bDayBZX+J01CyM z{i-7c;B71r;%%frR|Uf=!0YH|pR5Q1!E+-ny_OEy)s~+GiC;XuQSI4^^;!Hn20TP` zfmxG*nHeujD4?L+q?RF`{<=JEdHwLBk*k#(+Zej|FjpbId2ZOomTWg|TDI~BTfR>L zD{;UL|9Q@huU4|V6F}L0O}agAN!hRLTP>=aNDo{{kHfMkcO_a#{wLA{7t()kkL=@K z`AVNur9^t*9KGUcfSG?MzRb+R6FifG1~ytija+YhZfB7D;fer%m}irJ>(=(E;kdqU z!`iH$A#h7;XQ=CM#QCW%FfW^NPE`IKEJTl|N3y!jeL!Zr6ScDWN^z_!eVI ze<60ba?6FpfH`79woh^|IrEy=O8Zi1XID=L8w`%WgGj0p=j96dV)T(#DLobgS+vTY zTiLv0$BG(OH?rA#P}Vg0+@uHAcaYS4{TF^oAM*9DGYY@B>+4_Ft_gCPTbX?rDs0E$ z5wcHzZ}9zZto%msLQ+OGSV@M6=8&B3}YyRi6p{g&MmTXt>1>iwXx)#Cho zp*#nP17i`(diU&>1%B({3E7S(cRpX2ewh@5@_51uTYPQk9bc4G z>G@EhfNfY1JyTsaQk3ONZV>HUBgfF48O3xA6J?sPp9mmtvC3cbYj$(Kz zf4*I{Q(U-_`~f=qw40>u_1w;~m4m$!z{=h}F@;@z6z{n;J}!NlH0cRrS)u8S^39`5 z%mNqghTVqN64n8l_OvpKi#9Q#6Tt0Q<95eoBOjaL?etpjY zI}HNy*uK>drmP)i!XBvJT8sA&z-vbWQcT%i{C-WI^u~9Gzxj9Gz;NaghAdNU{3aj2 z-S?YQ_|$DW)q<~@wUwpHR^iiK-5);tk6S_0fe)Q^{>zF#c=<2=?zWfy_V4}P%lP0~ zCt&{#aKBMj_EX6DleT|Z@#`=9zu*7;H81%;ewWYx{a?SCe%b$B|Eo1G`@g^UFTU`y z|GPP|<7NN1|2u!{W&ih2tCqL=zp_6;9KB!W!=JqT|6KX$%iI6ePhb9>|M#aafBD=$ z_|9+t(O>w^lD|IM^5T#7{>GVun_gb{!!0lW?2G$e{>}gLM=$@$AC$lR;cx$om(u&@ zUz%9`?U$CmkRABHzxH&i{{O3&>;KuWeD+6wblVLJ@g2lV_*&W@Xa4RVKDzzh{6BwL z>ArBu{*jMm`2O1;%RllB^l~A;akc*aR{Oss|Iu*MUjNPCpSK)H1{P5bCNTBGb!8QkUrBwb?yLBM9KRB$SCeHBVQ#Izi!))Z zN``OL=@sD5`AVeW&eS($-c7%k+F0|mpVyaVn11rfrdj-dj2|z;4$BkTbo(c4-ky6r z*m--tWQ9$-D+Zggf5PtA^HmS_z@A4vScS=v_ySJer3PDO3PjinFFdjn)|vntFqn(e za?p($Ow!R--@q(cUGwvwF-un0m;LPLpjn3B5ukKSMxUegC^P z?>*gqw0iofV^uSit7prPS7c74dlznIZgu_qXE#20|9X8{dwstnI9@SZej-ht3`tC8 zg{4vQDU&Dj6<_8WClge~Winp|O{Sz5?}UvR%-5+YgXMtdMY?H&Ra;sKJ7X~BB`?A* zCcv&4?1IO8&tOv?jNi}XbyojGUY#`#V+Lbbfx$#yGxfo{74Ma|9ZgTC)}rv3yU=LH zC1-SgdWQ_Q$_r!MU`+;V#Q#BqjT46Y@^008mF-6>rpu3|XHpwomTQ{N87=vEG3?6* z>lcW^797md%(Q%DFp1+LI=G}l1xXz9bdcdSJG}i9ma}I+4nqbTRB;m5af7vbu!9Dh zHyG=|tiePt)@nUyw|cYrV{srI8))0M|6X3BdJj@G$M?d!+W>uzdUj2KU|$qw*8X|Qp^qPX@m zrc|mW0M8kX=ucMjfO&J?;G_Ysv?VTYh`(L}|F8spiFJC#XY}`#ekzrDx9+{#&Z9NcPamtEdFpu8Y~_iHljWz9*<$u3ZV?*7YskZa5}V%Tp1GoXc7E! z;Fp>qCw)++{#tp)TK?CO(NaUz9%?nZ^0_{59atsh%)eDeb4Y2V4RU%#{Gj1|z4P;b((tVwe}`9o z`0lb?#qbvl-{SFSJ^ls5n|{RXtpGfa41ZYpT^iYfhiP19#=0LymxZwed@Y7QNEsWW zc3{BZ((iT0%Y}RshHoXG^{))$u)$5|v>s74I%ZPG(tRJ?Xk+X|J90D)Ua9#2TG9K# z4e&D0uNwa(o?YGQ_VVN-!&ARuJ4&87+mifsbwr?@;w`WJB7TM81LBR}?{|6(KS8|p zX)eFWKW6x(@B`ov8~z-g$uHxES5YHasR5#lb0xyKRs#RP@Bw5crJ=zFU}uT%jh7w6 zZ!-Ke@m6PCom&b}zu^~HztdwX0FRP>!--xb)Yrp{$Zmv;vxc`i=i7;WDCQexj>@Oe z7mRiad}Xg{G*;m8fx#CDU#<3w*9Uz!?1F#}__G1%0G?f$iv9bFsv^^sH5$nis|PMm zh#xWh0m^u#Fi#H}ew6s0Lj36x_{$~a-&=$~K#&#BGGO$#yhXMco2#%bXf&E7N>gBS zeDjz(|5@5q66y+@n;s1&p2N(yyTzt_YCW?M!M5sb%ah?Iz=U-{{XNz3cB{a^aHG! zsXSH%2g9rAcy6t~{yx132#f7=Mu-G&9)qqMAKc0q!yC-ITd-sJ$M{TIIE%%Hbn`|x z%Sgdyc4pXcWQIvTUopBtrIYlvA5B;0QfwOEugX~;LYWVZ_CTJ@*F2fafLrz%5+E;l zvpTWel1rUyG5i$q*2Yr)fWhYp&(xoT-L75(&vs;aA27Nc>Dofy0vtDJcG~NMqiOPK z-*Luhv!rd;`T=i@v}}y)6~j}mi)+sCjMII?4=X+@f3bMfj}ZXZz=Ywt#9P!Bj!B#V zVpz>alN1*51BMUq?BddCaUsuy;iZp_*PRX2T-T3L*8C!}n668PpT@Hn-)Sv&O&8_d zUqlY$RQ*{B2-EHNtwZ^7YBpL)zu7?@mOj?a0Vhj+1iq}9RQe3Xg_Sb^{XwIjz_XWz zH6WD!hv__HG^XFaO!UN(Wl}cRjILE>Nk2tFZd~-h@K=bpzPQKY&U|Y491+_0=a=08 z;7x`%8&&*|ZFB{8v8Fp`A#7D~Ft#BDEQ2I(VaLsdTODG%29SHm7gj;Gr=o_=HIsbgs3DvwuXPL`jj$jqfqrPCvt ziVtsP?%duS608+yH`@wPuS|%ESk(tU^m#@EzAO#z8p4CO=*{WMqg9!i@?#a5IXk|f<}P?SGR zRdrS6GF5A;x;McdcOISkabG3_@wpH*O`U5NmsaLGt^mJ#1{+g-K_80AhjcU{L%!-S z;)YAwQT#K{mKm%^^;g=Gw)**s^gpSoZ^&qyG7h?|(FOD?LfO*q2Jd~fsgYv$==HJRC`j#p<+R-UNJoI<{L zr7Cmj^pC;{t>O5UxCqZ_gth!jxZx5XKl}4{Klk2eJC81z{>-sY&wT25!|bys>Q6p% zs&20K&C0H)D|0nS-cyy`)#-y_V!Hi$!WwxlmBdfM;HQ-CY6!{Jgc4X;y_Yus1#x5h zcGco({z7S+vu>K^M0%ixhFM#!%o3sX&2lyWpb>)vzQ!c7?Lw^Z@v zJBBUN(1zotJlpy;F_+sz3mf(h;y7+RhiSQF>hGq-rJ_(zKR&(}O1WEQMQ})5Zpy z&STffXn)bqt|6l>eK((1faS9B&w2dbn4WP8{mQKC4~_mB>2XQ@|B61d-t!`CnZeks z@gl6rU?T!iST+GRXfU>qyaN2j40fJ?$hKts#Lj5~_=wT;Yg;8cm94*2=LTmxYU-OX zWOL20=;3AKc}ThKvH7!6$ToYjSIUADtqkYU6Y?;hSA3NL*xazizrFrk9j5~aYU%@L z?Xc@4{m>K8Gj9(Y{Un}w5jJnIGXhcAd4sum>qg+N80-$|GWC~GucBGR5!e!z3zYfL zXsOe@$X^}s3H5`wct0BREwTDE2PD!y0<_XEtoCfkfk4pGhvefK)`a2vNfr-_?!wUi zC)qr2xW;*lbS9i9qrP4ah(w>jo7j#z++wmtu>fYeKMHWe<f@t0_DS^uo@MvIX!xAy|NJE)%>GaC5jPpWg+vwy-|ybP2)-38+o;Mk%DI;rhu+IAJqNM)o?_OsRVlK^_hTU<9eQjY0ni_x;2z41G$0<;d7l)up&A;8Jw#MtU%>D4zn zkSIuHLNf$nx(8&`=~?3&Q@+Sv_0}Db?vl|>=hNkl>+c)gK%9{?qCsVQx=7SsJ)MD6m&*6q^g10E_SXRKrdwp^m=Ck$5S}zY7JOXt4{06JrMsdrJ`R$meD4D+hd zoW`@KkJG707dB{XrMmgC(O*=0-={E>Vyay)yHU*;_MMDh^RJM>_RK|bnNGpUR;(>t z2Kq7MlQib}z}e;n@XilF{6jySgf?!; zUm&CPZwdHj!%Lj34Md|ab)M-MFnonbQ8}XqJ3tt0Jm(VRC`=R^V5a+s(S4LhH=Pz?h8hDSLyQRop-Xs4}DBSpt*1K6V%6K+x28B&6eCBX?1DA!&CENf&r^F2y5UV zGAEgB{dss-(7-J+XBi7Glka68) zi0$C|XfKZ*x_E<@7j?G!SLIRK5k9ewE;HCc0^)tqE7}Ruyk^iE=W}7{4o5hI7$iIm*Np;CIbn;{-@Og9;6XDkS;y z&}dlZs0(7h`g2iBevJsAc+17{RHbIapCvw1e*}7}2Iq8YJ3_J^PvbLew9`sE1-l#( z+7d>H={RUK)uh2i*sQ@^dIP}D8q91b*MEln6U*$H(MXw@y&=m>vYhYYv=;K&@>nLg z;DIGywPXhBfa<=Ci}S{|lX1P%_P^EmY`muZT>Z5=R&F{Yd*J4rDS!J$=7X-9`c_nb z>y2yM#Ha%t51^pl9yVE`H+k(Y^W?0HBc6GY=aRvabe(eU8s7B5j~Hwc&yW+v_my~j zFF0N;ugLe(#d3Zv^tvD_Zs^RoZoKh<*2hQ2pH1W+D#pK={LJ@ND;Yt3Mm(hsxjvR@ z8#H{AP^nIjCBUY9IiMx)w82CV@Xqkg7;FsBE<87{LAoo3A0^)A&)wR)4sT7=1EV`l zI*T_|fjtbvY4|!3q5UuEq5?R4li|;h$oM&t>+t<0_{R-jEc_#ezu?KI6NB=ZH|Gq$ zig;XvT{c*YKoquMFwrBU`zV1|lo$9B<7FN!u|ngsOQS1W!kSCq2TI^4O5mqU;Ln%9 zUoU}wSOUM~8%%hzZcF-0;0FvZx@bBw;OWSO;R6O@c;9}VE`dK^0)M>({$UCHk{1~< zZI4|1oPVbQ@Mgmg3YGegat52P01)nN^mDFHEKjGRUXl4XVYC;?Z|UDf6~{&VwBgSY zkWk0YC-86b^7p#o&wKndFI*jcXn4O4`)$CIZ<0~{gf9GUi{Em42! zHagQWWOR*6CvAy8raNGGsmqw}w;Y2iU_^k6c|C75^90~xcXr-jqF;r!6xN@FLraly z&yNTADff}Vn()kvusRw7xFo*#CoC|SYj619Y_N~eq+RmEXt$YDPQ%_bk1OaY=c@78pTO?g3(Jic z=^h%4dC7~g>R*?~m~U`d0<6hkV(%Dl)?nja{09y8B=J9NJT9*puX%&{`E}l42Q|tP z|0@PN8#c zTAl%O`D-byA**YqQ%BQlYP0mWmLE)Ae?R@IR!*kxn(-X)!n09v^ zRe+zC)&$sq!IoQi{2w)##0&cD+6;gE&-foPI+F-^$o^+P->G)nZfhF_X5%5sT4oBtXI=q*O$M7FK+=KX3>QwZaRn&A zZ@_4#@Ep<%MKsKhNu!wzX|%iGa$n~UA<4YaT_;^OY$K;rTM=nB%Cj`eV;*>rGT-hP z?*sB;4T?XW=RnQRx9Yz{B5U*Uzl=YF4Kd%+@ddlglNQ6*;h9$xe*FepP9E`1x@j0p zKw}#E9j5PkRjvw|%?vvNvV+ERU3uvDfJ0MO)vV=|ZI<554d8#hD%Xi-ZvkzqtgDlS zc7S))%3LmHXfw|9z%?WbH@j^#$^{^{N04p_iU*t0WU6v)F=;X$TKa873|Dg$C$2G3 zpUqmGPaoxcGI zcK$u*eR-@8A;?qSp0NH68Sew~E>i!PzC%Vk%zR8+BV~)onHOga@7J}925aT%@jDHvXl4KKOM_Dr$0FD|<=94)|wv&96(r zB6#w&8h)|5G-5Od7)Fu0#4t`P4JAlqMrhZzo$+wx(!((UiJ28S>c& z55J5Xu9ij0HdEPMF3n-4s=Kf`C02crXHAyPDOoyYh7^seE->p(@6c63-Ldj^$g+J&w_|}0HHZ^>}jHUcB z52|um{B5bqt(IN~%O#nNTOXRAkxSs(WF?W^*-zQhI9XcH#Ycq?);&4OQx$WP&0JOl z1}+uLArjtOTeR@YMNRtgd#x-1)u$vKugDa~2S6=1{9-zuGn&P8oO(TObWIG>>YE!| z6Mw{yOP+6lb>y7kmy#b>fZt_TerKm{Mk1|`XP$g)H0A>> z$dhy?o+-?ergjR1jjL%&Y^%o?$&+#8H@iy1^z&p-@jN+eya6MSkSA9c!IS4B!yh2O z%act}p3q!w$Px*EYAk*6wlqy!2}W$#n1X%;zaHbg6XT8R3tO}F8m5troiiQ71Gq6ZI4Lv;TW)JX!1@eZNVWZ!b|4^J z0dEO;y=oCWc?J!?SY976nop9~7mW8$JFkOIW&q~e{uJ~2poI}IpoF|Wy$GId;$_3H zAU`g`77QlySqA&a!AOLQbnXD)C49z3*pk)qSmta^!Ws?c)3qef^(WAcx#^K9>pEdkJMx}_&M7m2xw?fM&^eaevZfza&<-XC`xD?|QH!kHYAT4D#nQQuQ z4uk-_`DMcVSY>!=U-3>@kHKc~%!{yLgSq~SunB`P{=5SG4jF8O0P(59ui)+fAm3S| z$&v;aVV4Z%m(_KH`DJzAV6+!`k@w>~I?^|E5vzHCcr;+{NN5`kKBQ=YwHS=~%ZoC3 zCLJ$F$2N7uVA2-Y*e|QIa@e0{Tb^`>n$COw?B`XC8uet}cqRW#PuyHJ<9o^Ql77q= zW)NTUEf_q&GtwdRx&9o(qc~oCxDHRbOS{Qv?H}ZJLT(Sje$aPHs#4bWIA3Se77mO$JFGTBsSdXq4-2tTw+kt%l;sc|r zBONa4Y=uPH_Wl}dslir|2v>mL3WG5%XcJr-!}$v4U%$}|kjC=C&C><|jX#Er=@K%| zKZcBjMPx9|j|^XjXI_NW^~$5}fyQINpTR``{Izae<%x1-nzKgJk7t)=ckTk^ju_q# zYce6M!v?#ia$p;x4IGc`GnVr?qp@;EJFfmFznmGT1*0R6YrkE)LHwgd@Qm})wPcLz z#ELu^<+K{Ck;Jwy)y)-C&amO7e&U@x6D4@26L`*);JK2(bEgE)#|b&sl@{bxVd0*s9)hBR&_lV6>|wHJa}ql?b!0Uy1#+1qLgY zAFX*j0YnTKtcl`^v=fs?Emc?mUK!vR4>M#F@9e_G$v4!0^k;1%D*{ z?k~Ofwf3XI^jD94W#-GAgm88fdcQAK=9Xda*B2_gzlg1EpRep$imh#*tz7%L^ly3F zwZeUEnc7#hC&Wg-Xt$fTJF^z<0gV^hbF>BCSdI1iqR~t$O_OU2re(pKI$ub4FD@&w z%^+RfItmJX-e`ZEFI#rThx6LaMkhL9_PVR{tltBM7d^_eSpwiE4Bvuh=!cv4#?-jZ zdsD{jA~G6)zhL+w%D_dQs|E`QuyCC%L7tBcKTJF>@|3OTP4hgThj|hhex5{@R=1V_ ztHHQDQRL)|u2`B!4S$$e8^!yPk06uIqXO!kzY!AZd z_vg2mj{8P?F{E{6%e9EAD^0*PNJYRrD(S55ic9@idWUU)uvv;@X$HqU%o@)qdAf8? z(XDf!%n`#&+T$`e6q7k?JpGm_#E+ehLW#?3nlQ63_tA2ce=tfE!{u_`Y+xr zO+J2=;giA-z%pp~V&%;;Ibbvw@XWR+s&7;bEt3GK(?&O~bX;!=<%!miHUoaeXih85 zuuLK5E#Tyt8Q#KS)&Ez?p!38@Yhi;D_*TQOq7a)R^~-6v1b)i!l8=_pKL30P{G}4| z?;2k8$j%mWaZnQ8Sq|}iX<88#VTZ``E&N3M?yqs&* zS#Z|UY^wY)H_%5*xxquZ)5bT2XV)fil*r*c@#hWS>fzVgn1}f5hL=3Gb`T?rdXf|W z(C}g5i6Jw>1s< zX<%NIy~dlay-$)87=AH1E#S`?-9ZZT$A7TRUb%tXmFnyk<1$^AB=X{S$oS{TkIfPE zQrd|Q9o*6O3U*)Bm*J=gE_7(s&2FR-uP64#ab-2ndT0Rqb(58)EL<$B`vyBq0Q^bh z_153Z>U&pK%$KFFlMw&B<@Mo|x61I#wCwZcamlJJLd(>$JVuRvSm|A#Kb=a;)-JIv zNO#2O4&WK#CfX_t|ANsCsyx^#zUs+_*Kq#}<=&6WO&lN7r_r#90VCbjxT#KKXL-BZ za-Pn4I^9+i9T=j^7rJWK<%81iaOMl!*u~VVO&^K9u8zH}i@p6g;%j$jeX4IV4$^c%3TssiwRRK z1e{G_s;^`!^~0`+TvnY*^Gtx(xH09{hhYKobbvOVeS&#ICDXFK@9ILz_qD?GazD@trmp)91wx=AMoh0)Vd=4cmq!8pin}qY0Eo z;_Ui8;_EgOVe6g~(zL?xE=`PYYXWQ_0XAx|ItfAjO$Q9t!m%YT#^H#;nhCIW*Y#UW z|2e~tD&G0vrpv_#5Zm07xd9sL(>>!E@OaFohgl$tw}h^4m;}1k0AWXMwCvE8CR*ay zJS=3gwlF`AjQ4=yTeNL1JY$24wIi$Nl@sYcITP-%FW2(lr5%oO8EdgyKW}sgRKA;o zbvwX6@%cy0tA;JO;kwM5XOr`MWw$Qz2vDnx?y8^0`uV5b`nw*Sm^b~@#`iPVyXyO8 z+moKeH2-w|LOdL&mpPew6O=e0@52nyC(g#ujJ$vp3j`5_vX=#j(^VHI zJR|N$Fn(P6-sg8A<~k9?y86Iq#+63&$LRt}#Vv`HHf`Bf5@Ec~o7pr*%iTyJ?HJHG zqm{Gc&ClLZKUL`;RNaLpeER9$Q|Z@lZ@}?dzg@#r-Okhw$iFnvr_$}WnLcb58%EVs zlbf;62yf;Ty9=h{f`vC(T@W{FR~R?Zf1|a2B^+llXIz=GO{&|58?KMEOkq=?14$SR z%%uuX+g=5}9^*f){7HN0u*a5lG#W~94JdgJeL`NQ@3QgAw<fxF`V8HX(q{bzx6%CVaUCNV@gb zPfw(Cx7uVcE6ZqT1UFn`njbO$#CK^F=n%Io0L>wzohC!n_Q=k4CV}ZZYc%t5nrW;* zHv76(bmMwlmapS8DI6ZAcCO}o*>(zpKYXz=+h0&*(r>mH?*avgtr|C~na0ov1_|5u zapPhBQDOyTbjuVtYJF#lBTQ|097EQVt6|eMA1RdQg%Nvt1stsx>&ESJ;!jji1sM3#Yqi=a$x`lJSwDTv!4 zB=PW0W(x91+viIdZ=u-ad`i`maFn)(%8-LMK%$*=0wq)ieJoP3MRi2RdhO1?aw(M` zebGuvMfk1wE&VQTxCW|mGk-xi@{=VCZYk{Xbot$sR6O2R^S0)u*povh;|c{uZTfVI zC#qW8-w4z}qZ2zL8nbZQt<)oK@L=1;x_HiLpQO#bXFLomzs+TvT=6y$+CICnjK2nY zc?o>B1b(Ch{$L6G=@R(Mi{P1O_YD6edA4*+vPAmR{5)HMc5Rj6`zt`lGaobWHoW(2 z`_cO8XHHekRj!$-Jyw@F`P7N(T{W{$AIFJ^;R3rgwL9`b+`j@?xL6xr7G2isd>oh` ztCjWDx^9ps-+g$i{aD>h?TPA>SX*p^`6qgiOX?`~I&&D=xj)XdR$nXL2d2?6n7ta{pY|DIK%v$*SG6jYshwKKrVf}BB zuz$^&oH+{9vs-+J9H$5+LJ!fpfERmxlW7{7+S zxZ!$|G-Zuvf{gJx;GLbK6~Oi5lb;}*v!8(H?kC_`vX2RQ{5)XY%o$HWM$;wdTV%eD zegc_u#*OEtXn#|8nOFq+GnZ}2lZ z_lYL)WU7}NveOvbuYH^YENwSg(X}0`jX}FEmS-7Wox}}Sk`A;2{*mFSyC@s+0m(6BS)x=@U&Ax?AvR4dUi5I9 zTIi1${pBQj&fJ^iU;4KvT4 zs5@D^X7-um^{-(*nsv(Q*|~B@a=d=_8IqB2?cCF+IA+!D3~MT}e*p_R%PV{EDS^IJ z<=S-laEg=N$=@qLE_AbU==L>y#-RsGKG#lQlfRvZuUo#9G!=b>rFS5fW4~t zSS~#V-4sOKH@ZXATelAaA3lLYEc|{+H~o-Vc+qeeaSWkn=)?VZ8^i9^>eot-V(@$0 zrq7WTQU!|5!s~vRF>5@{*Dn6N&iV&|?~8g%Cw`*YLG|i&iyQAX&U)3rC5IT|{<`Pe zV|#nmW$5>EghfuxaM#Em95+K{LX$x-vI*zqlVpoLWO)$LG46l>k&)0M(KDsG@*JIHM za@94Fwo9M1DCobel=k*pvA6xMuVPgdRz_+jGF@iB?`9r`J5xY%Z+e)h-bJ=Ppg_boE-k-M4YM8|TlUNbrU zloKC|VH=aS8>@hNWOO!1uQo{DdeM_9o?+rw4vlN`6osP?J+I;(>@n%4ACvB)(G4(~@%+PqGFsNH zK;1JsDK9%OF7)NEJ)YiB^jPLj%%t5cI|vz#{}yhz0-cM|`Lp_K&$tOV9Px~`UFlPB z|1Y3^^x&^c&UUi> z3)8Y0CS0rqP#fu<@lZ#=BQ}y-D>?^I#cvUTwod0=q+jZ&KZ41k>8IIRW3CMoOT98@ z(~i%C%{;Z5Q!kj+k{6rI5u)^Ze53gTEQQ0p9Z~N`H-%mSV;?&W!xPKt8MfzZ+!~1t zPs0UMrze*2J8kiM6pP=bD1JJdBoXKq-kzfI`>w`sul}_m#D3;}K{QpmKOe@ZLi)^8 z5={vPam(^Y1;G_m;AXZ(uKwDV{7zHmqaLDz&$k9)n^MkUle6@3at=ezb(15u zj`fXU|FM=Gz#8@z>lSWyet4^!9g}<#NgI9{QGO`h$)L2}(%1CC*txmD4^+F(MUMi8 zKiBKQTp!1kh1R??T_b-PH(Z0zVdM|zfT8}fa#xN!la*DQ?Oen4oXp_lHUHWSsJegF z-P!*zMXx=*dwI>TzhiQL+5)^PXc(^9|3eI$~MCSv9(SB)|?T1RVHg^G&c z)JlYSMvZDA^YQEP?GV~Wsyo=Tfb3-$PH%KoH7C`FU^MDHyo&?# zVGr9EuE`Lik`Jbtrx#YhjWTJhsgJM5*BAo)qA0-(=}A9{wjpv8rJyhHy?RaRmeMCd$dlz zLbyrXl<;oR147r*AowPY|AALWJL~Ues6*5r>c>W}wv~T9Wp!)=l-7i)Z{4>-q%5zS zY_SVbma<*!733sy5n(sr_sD2iuDn=n>ezYWvigQGfm3-FOINu11nn&q8o7GgTZ=XB z)Zevsx&VJIm7JvbzMwsYyBSWUd1NJ#-UftI>1Bw+ti`2~5z6!Dt^nwQ;g2Xjzir@J zqHsMI_jTMi`aATCI{!!g5op=;)7^fP*yZ(6uhjZ^>n|nRZcBQ)T*DW&cP7+nvMWsH zWpC6arvFj&oQobOqQ~-+sp!Rp7cMH|sySO!<%l_f-Fw>%Mo&|WW{#`<} z-NjhK&EddO!x9`^ERz*Rvy=cU6X!!;4p5KbE3{5H8PnLR=;ndMH#=c;=adfZh}(;r z=2vf3t08YG@bgBy!Yem?SK(QwY+JmQROvD6mAQIYrW;gLpVP=r?SIp+*U~nZ9C9eu zw+HQcq1%m0MsxK0+>=A^gxIyHjlIb2&=smK6!sxYq*B43 zpyh);gnpa&@=bnWD1R?$kMZ?0Qg(!=n?q>=Xw2{|SJuJ8zG*+CMqSec$mWe_R{LS8 z=UlVQac8%DIRxwAU@qa~BB8+nJCL6gLHC1UBf25~?dAf;v;c2l?sB-Pg^pFD3s@T? z!%Xp`Ed6T;9M^f?WFE)qXtZCNb)wbiMo8DEV@s%BJzrTTh7Es#0E|~7U6&I(#PlcK zp~s+OyLZm$*oS!a6yNyLDkh(e*Y6NYJAc>crOtw-2fv2~v$e2V4&flW_jr1fzm90w z4e^hsX-jNj7cR?d`}s5pdD(vtH(Y15jOMj34?V9=qx;x_yh>e!nwuXDV=zo{X~(E$ z6xIow8Rgdoww`O~AOI^qT`OPemNw~7xyTja9A z?h+RI<8)cHd=7CC9|LF2(v|!&@Py-DzPU&pu9zmHw(-y@@sBtimh>Aw5GuqU|Eml( zrFB{ArS3)Lko8sX`!VrpG_E__VypXV*IaqY~EjxxAu2$Y6n|L|} zPb!s_dDCh%)HPnr&jEuiA;5If)QvQbh6+aV5V)^2@*thGRGoK2D?v$^yiVVBF;s7>?G7EA(RUfOzqb!J;_v~6OLu3iL1*~clN1cQk+;0|j`=WRc&BsZnOua2 z_*ug*#j}&?#u~(5D8avAcxf-}ToJ#XJ}QAB3$4^~bW%x@Z@^olAMJ-Sz zU_6J7E=#(EcuXx44*BN|pCiB7)Gi*xUn+sWYxqOtxAyD}vroyd4ZXJgVLn6W=qeyS zm?Kefd}|5(a0&dB;jJ!;?cvVOTZVAwOYmPZJnN>5zrT+BZVCRfcgd)Bameqd-|#GR zhj(*Fj9+U4-v1u7hVdY&zW1&Zuw3r!-r3&Ge zIGtwOE~CAy+&jGI?842}WLKM|`aJ}Ot5`Z44WE?Htm8SuyMBQBHe|5aI=5&dCYphl zrDGVVVjnc8>Sgjpp4W(bsDp!6j%KmJ0p22Sk3;e&orOvd;-^6IIox+~VInj294kA+ z=IyY;0u|u5CkG?7nbI`t+L zOq&QCFUxP&Xucmd`c~5W_NKT0o^sC{-2Q(jPvPYgE_crH_`C! zx^ugO{~6gS2xuE6>DX;hiQ5^z>l1WArzLjSc8Mc!)IzKH9Y zzm6NOKksp!MH~nIhD5dOo;P3JSwA0}gW2X!9Cp^ercUk1_mgw^@CL2HiWByI&5^-uF1F<>oA`3d$jMu z(FZ#)QWWqp4p)qqaYqsoxvhN$-eA9`tcO}RUz`OiEzzx>~Z;}^i>N(wI{Q<+z z8O;&W^lSJyG)Tss%$HHaOBouTj z`ww|b?)MqL!0^@=#`_xXABdtS{cOKaAN6^%(}3B<4v+mE!#-fN&5VHA*v`hM-p=`P z!#iQ;3|5C{UW8pXnCKtgnbrk^_2U`&8qGySdmbddWq*qVVPEg3uZO9#;he;Gh0%(R znJw*n9?YvA!;exR^gLGWxp%_Ls{kYijQ+CHyEum5^JX~nMkDH*rys9-^^oCTHQF;O zFVEM>!(*ceF#kU``lR#_woC+tbHXus`C;db_H1I<(qhEgyh)>HIBs0x@{)0zHGDw4 z)o16|CH{ip`RwpM|H2~j$H4N)@RzKOmMM<FZS5IcKQvSB&lg<@@?ByXa+_LF&o_qocm?V*RQ3J$aPAi%$W5OATiAzCbrwXIqSB z9?#e_sU9kMkk1AMTGHDygOVAOA_MJ5WbZEf2INt%`#%wI>f+ScW{vS$hQOKztRz#i|ZA4Us&`%Y+^ z<&kR!>s*VjS&-%uE9&fxR=X|{)OgKV99&*cAb#fzHn@mBzEMOUfBdhZkBz^tnUk|T zn#6yL!E6mvfj(}GYtWl=-kAeZ0JT=@|;ZZMaR zd_8EefmmCqYcZXpVZE-=fv*4q=XJGMB0cjI^$({8WA>kI9wA)M+#Q}AC$`(7O6Yi@ zfk}_DOcSzgxurEvlD1XNZGgvF0ouA&>qm(^r_i@et~^=4a?g0GD}`rDeH!7BxNGDX<4$_I+TnY}A`RW|N3WNx`EIiX7asWb zovrj&)pp8#2T8k~11r51UOa)nBX{v^)xr1^blLe^*!I+2AR;**81@Ro_Xw5t zeXRyNV>+8ZwZMfOetX1lCQ5`eZFuGpFNS@_V5}#+DCeTVnh7wyc0NDC?il_6-@B`}6OGM)4n|xvwpxU9+8vwX@`P^$aJ}HInajf?6*2S;27V0{cX@7nCriU;pj7BcvE*1^8-fnkK{q7;h=#h$1%=vlJ zS-aXr-3=JZ|7OaOyTPr+hnor{m-H{6QPFB~a~F+J7k%}@C|qyLwXiGxuBb)X$DUqb zEc{DOFPN6CI@XO^xb%KYUG0Emai^Mj>zV1B6xCL%^AtVWs_zzx^6lwJd(!8k=i%sa zU-bBT^q7qvJ!nS+%~}>DEhgU>k$LA<7I`!|{N?WKY#ORn;w&vc`;c7v#KVBX* z8|`T_NPiotqwg1I9EKm0micwqXlE%m>3cymJU!i^9$Ye>V)=E~@TOaFJ@6K+F|Ku& zaKrUDw5u)&X-QhP2O~y%kSv{feqz5L20FlR`Vwxq*oS-TCa~;A*KsxgeBlz2@Kfub z*a%lI>B}k)cGqCcD_-P%c!^K??Eb6&fq=xG;!}X%GK2LK5Y>5EjX~R)W!7pm^C_Vb zAGjQ!*?la%^9Ih)Y=>u|c5C=`#sFj!#xsRyPwtRQUjXo|(G26+qZx2CEbog(b2m;i zo#JP0txXDmyJvLMak}uEAWTQ~KO_=shk3&n-q^xQI)+18IR86$!yRxIfUL!MSjJu) z!*U|cu+f-)x_JZ)jkPQZKWH?Ac!nH*9^n-X@0b#4ch4GKb2_4vIPN}{?&tC3>s&TN zNOWFl`;9d<$FQvE&12vj1M5SRW8bw&I3p_;JM?NT78GG;VO5UKf@r^toLS40VR@KU zCs$Sp5l%l??Vi;>ANfa27{-7p+#)@~w~wL&@^U~OHoEy*p_4s@nPXj6F0Tk9}`$`tx6khiQu%|_oG z^QXwVAs3}?ZqDud;D+w7va{KBC-f$!6ecnEs#(K+^R>>$6zw(2Rzd%bZunOvy`pFB^$(t=p7kHYflyCx zhc^_P=*Gh>RXJ{L&5Dz>*8Y0+txNxYqJM1daQualB)%DNvA+(L;{J|TV;}7s6igGH zF=^)uA6O++l8gX$pMdYGa`mZ-%v^cq_8ok)AlgXp$XyN6IC@5Zrgn=Nv>LET%t=(_ z(FU1oZ^P#w>D+Ka6m}WSTY5Mh-Vg`T9Y2YR z{A5KGsYh5I@zWwWV8sS_rwAccdQCpakHESZL+$G|qG>&7F@3K5*Iho+7stc>ejHv2NB`%fP*XxIY$NZAMa%?ud#lAyc$1@yiBD z_Y)=2exnf7`Bbk-`CUkRXu zcx}zkR9D{aV3IcJ1~Ss}W~8yx0^|vGtjJ=Uw_IgMgK>k}HRhkk-t2G%`rEdm&iS^q z|C}&BIYSfQsnYp~*t*+(&PEK%^ug;oiNId&fOMC=vOrcA)#6mUaB(f4WdU+HLW1Oc zb4M11h`{WJxBNA>GXD7|nx0jf9)5q>b)fv9q*>HDHdtk}Lu85UqCQ&792;Z-9x|G1 zDo^KXWRqmnA7dV36Wmg@*spx7VoW;r4)pFf=}vAgb@ zc^V}p$5eo8;U+)1s`2a$i}YmWi7IwgC^nSdf!jQm623VH=&F5PSh-Ny@n|2Z?Pa$wafDG!oe$28%WVJKavgTfVev#aC*2l1@~kuxek?~}NkH?%eA04n`ll>#oA-^%9d2hG&(NM6 zFdC~D@Owo5ff@O3b5tK%L4VNbtF0ahy&FV!MBiX&jm9*6Xntzf=_i?_E?zMi4Be)|6B~{b#iuoBbe0D)rpwl! zdsdS$lX|D7zR8=rD`Q*^8_!t=kmpz7f->I@C;dgEmoaOB-5y_O-3$N za7Va*t^xU$|F^i|T8wXB9v{bZL&i7ghZi2wc_Q5_XI9FV96f3bTXJN;;MAj?1Q=UE z)|p?BtQN?6XtGXgyvBjE1Oe8P)GH zX)>r&yc+O3Y_K|kC~Q6tMnBGZgIU`vzE7$jr3b)YH~ci^M0GS=gB&2 z>fKMj_oiJFs7_Z_Rx%si7hjzfH4y;NuBo=RT`JALVX-*&wy-m=H) zXP!A;H(PtE8iaS^gs?+#esEW1rm`EYzQ?=%`I9vG} zsW?DRx?p#Y0K3q;p#r(nr!3+w7EAzR!c>KabAfAhL88#3$KsYj%#bCA@LMJo3;C(* za-b)uFLE;bD>XczT=!|=AlBLrz7Dg+t!=yULB>a>U(qJ^R=4#`^?94ND0I>qYqZ;I zWpiu0FM?%$#^RF2Gs;xTywl2@ZNU}8x2jI&``vedG;}pLf&P(`mrRdiverZmALyx{ zD{kP%fAa7jzgB}y5K!o|T^9xmbTfYAMt_j>@x9hFDc={mCRzu~I(x?Wj*!oMWYR_8 zTRa0dpa|0I`);ocKhx7rHimoO_-RjopKCzklMG04Kk8~|JfWV_CJH{l4VTolXg$BQ z_N;GiJ^vVJdW?2V!_e^vzbeO7 z4PG|^EZ0;6Pd&J3;hoX&#OIW&KceT{xkZZ3$(807qe34Sb*thgZn#$QmbVXq;Vd_N zUO3{Rddy&?n;kPb7g)h;?>APNPCv~#A+_4Fa;O_^-5sIJtXGT`@dVLl)Jp_hlHxKV zfG0)Xxt)uSgQM-N+sjmk^mHL^-IlX2Xamcce6j*pn8mx~d{+*vHWET`Y4i|xZX*ff z__Z$JhU*${`De?@{?b>ZgX@Mgr_tUPa<{*q$AE+@d7>TWAzEaBs4PG*=Pk?;hKcrF zwq9<4@@n@YGz&&E?9*_AztK=%KQ@|6EDy|kC5%J1uqf6rL(@YTFd#FWK6P*uA=$6v z6I!r$*2Zd3dsqWK7TS&-P==U~@!RUzM$Y@Z+OtZWFB!LJyqLpL;_3yGB2o zApea7`3)bE5c3bb<;5q7zSZcb6X=H$G}|IITIJp~o6usb`wbo7^QLU3Ke< z!Azy4Zb~HujeV2(T%+V#8nNJ=2bY}M1 z;|-a)+EaDiIPY@F^kt9?G=B1?ET#TjGFnM@eC}u_#SdXP zTN<+1mOn817VR@0pzP5P%AkB5hv2J^r{6?b+~j#l+9b;tLd4k)G)Cll=F+O4F>>f5 zRn8RFB*2adjeGWD_^$c3TeRn+K9wodapa`&)3$f@tnFwz>{piqJZCg_m8L1l9T5O` z+31))PgZE}t^)YJ(a`n&b)B zei$|w?MZ~|&+Wy&)4dGn!$upB*7n!A^=XX9S;JQokBhKN39#!1qfB0;yKgY&D=)%6 zPT+0$V?mesVJuI8txACPB*2CZ#_)LYemrZ}^*cWHMaD3_P=TCg@fB;NIBWq#I60#LEMPp#qP7SX4~n#qpxdq zrfBd;FZqI>>0o>l4m?aLt|4-gyGr>i|=o_>|=w;m=W**zlQ%&2`=$38^&#? z=s!RKe$7U62G1T1;-Ef2hBs(5!=%AAgx{FKa%@>~wi>;-S$}eWhj<*R2Ib!>7Yjr3 z&AKoQoS`#u7wud*g+N?@-&K>J#WUJZm#-MeYP^~Neqc0`4}RIPxcu*xqNm%4@e0$j z{2m3`x?ucM{wjlw5@F+58INXXQpeJ8VLQXs4M}HG?8R}SwG0E~>?*N;P0k$UAU=Ly zKa+}mHdgxkb4G9L3?z;1_2(*RFQ@m!4bJ5ddDrNVsC=PceKft{{fyZ`fHRHN|BM7t z8kgaDnZfvsxQXrQ>U986i{VEUpEwQ~Hku)$vG$eA@1;SdoP$Qgw!$m7@SH)?oG}{q z<%o+b+v!v{1fi=Y%~hjm#dA!KNAtjFTJmXdSOMiU0>0#*6RCbjSGMhR+@fuwGF`6{ z4HmybtI>{=!S`o?R+mPS7;YU7{`6CA62_$QS>8o<0r>}jLrn9WOjxPFOw za>Zz5t+$Tl3Z1+7YH{4VtM#Vhf1+Tl$LB4|+x31KH5yHpGzoQ!W!GagBjqB;{2xau zocn{O7NU^1Ph*qp)7XGH!}M$NDETvMvgRQQaf;Oo9@pazCZO(KHriIw;$nU*7|eXM z!%1iO;tN{4Sh8LZV$}iUL-8UN3H|ev)>ThR%g~o0zt$u5? zAd`8x?0?1$S9KaUYb!hIrz)cPO*qY7FFZ7)7371)J6|ch93Nnendl=g|4Ir8ju|$! zl8199BPkD=FBePT@07rQTmrxBe?cI)iiO`&0zXs&e_#=OE5e;K{AdaV4c|&x zxTvdF47Nak?;q|&gSrFXu+!!p7&hdrY=DE5dQ|ZdnTnV5@Tc*9p{8rfb6jG*qmX$?LCQd3VrxY^F^a?sgN*qej@Lja=i}{x|SR(;eUTz=Ka)3q*e@XFC+Y|YH zMMn-B-JsG%V|2PtxDr-QP=P%L`~{=!QQF8JkS}(iBS)q(Zg-7tsnV(c%yfzPvj3eo zmFe`xKi@Dgd@=sk68ys@_@_$n&zIo8RD%ERBK*w9vj2lOj4gPxHeUJ#u`V&LmyIoCP2)8AKo|Aqf~!S?gtS@giu-}ST|Pj!aYhKm*4C1uIa)y)p_%!>UU(tSDT z^U=CHc#{23Oq1@~dhwL}k z>F1mG$?wW?V&{TVBI#pj`{OpfMc3%(3qOEnL^Xb__2(wb?mPYV@42PtQm-fZxM6E% z@W=m4lg$WRYT;)_;3j^BpBZ8)`FWBDg?7#oetN`yS!CB4fg7yipNsuwA%C`TXUF!p zI(!k_kD2oSBENqSw8IC-Xbkf4*+Jxt{wJ$vEZ5nJabM>U|!3 z1a9r;TKFWKZWA=Zk0$uN@L+-3H~p94a})gU@X`dIFGY2JE=uqQcwK_O1KyJ0UxN=O z_~~b={VfUpT=+XNQ;nv>HmE)GH_bqUX!vc6sRou?4ria`3umQgPYSq{4S8zZ4 zU_$>O{Afb|UHE*s)#GFEnuTiEjw9#G@zwdi>>B0%yifjp9=vEm`7!+pI^naw5a;iP zcMzC8#PbVg=V8?s!T$^oz8L41$$ZiIQ~F%xtMx0m5k3q*0AB-N^*jX@x3|N0!8f7* zwAo*zU^9FYJ_fgXKLI}huR&ijTm4-0d7vZyS zQ7{)St5JME+JAGL{{dc=;4@@C>iS*BjjFH5&N=W2xcOfWuYZvWH=%zKd_TMm-VCo^ zp}_dv@DaG#xes1^Q(XU9_%M72_J0g7NtEj-d>P!@)!*P9aO+=Z&e1rGChS}Y-;>~1 z!4D_+Quy%%e<{4=7Ioa>ybj(ExA+Xg55lc}-v*z8oBtnz&#zPa`-sn1;K$&r;opJR zy;#9G{P*x#FHx`){={=NKD*$@;TOYqu2e7vuZGuC&E%3Rw#q~M(UifzGybiwl zb_J{8AA|3PZ-RdoUWRZ2{u}rddQy1%M>hwUkhIaXZQ$ig71Kr zqF)2w3vYz4h0nV~!32B*{4m_?Y=O_F0!z@p4?Z7mJ@FO&I)`&7hw#`oy2sv!15q+6&*W z$-x!y`Y$Uu2)_|N{1pXL@Qv_(I?6ow2z+~j?}KmpstU)^AB0zbM?oX}@9_QKQ&3EK z-E}3`&S(Efxm2J3Tm!dt!bjotraz*<;?oUpd{p^%^lyY8{H$iUhN8|_{5)-cc3pSQvXLDS1>YDzpsPWT%{QvAm3Zz6IBXUz&FB&aM1Mb`kIT+ z=n@rLzxW`$;|AsXY0saBH?C1$i=RJ-mo_V(uU|nR*W;Z1S+7)JNkJ~o(3=es`9~EnlK+e^aO1<_3$O| zRsT@^I9avA=bWzk9>%dZ!ngcg^^cJ64tUG&l#jqa2|xM+<#yeEAAH&OmG9KA;3x2% zbO_^rhHv|}3hlbY+>100jkNrfs^{*y)@z0cR!~YGYhg-Ss zgV!C3>pu%W3_q^P!EfLbzf#af|2+<`B5q~md-gN5Tr(-q=Cd^6Iq(B#seygyYvDut zlpjR@GWe*wp&*}`_|pq7`Lyz#*m;xLKUaAjtRoBD1gnsyxU;QBWfm9y66~6OEwR42|(g)zP z8ui(>Wze$1B*AL;NL&_PZgX8d3Ot?C1{!pUj+Iuf{;JxrY?tugOln~Dk!VkJ1 zNs~_z{2+YHzr0%3Cunl;Pxz4!C@4i=@+{4F&i^Q%&HU#@@ZvG${nXcL_|}grKcZj3 z8{yTTf}pCc=bhi@k6RVi2ld$eVy6^WdY;SH1uJ7AeEa;3JFSTK&OY@Ss+?jROyu z{iSjK5PZ>c<<^gW1g~GAd=>Wp0Y7%La_cV_T&n&Ty*SRF2On`aQsv`+Q^ENUufJWn z|2+cXcfm(r8n^QReD57`{t$e;QTbt)iF_vEV@=Ba`{{*04sUB!?%zQ#{DRBW|Ke`t zHMF0_@cKKIA9u#((+XeF8`r-TKHMMIe*(T~AkKdP-@abC`F{+4Y=iPq{5eZHlyB#E zDX&s@f{Wp8@J;BK!4Kc9djAe-=RbV!+m-uw2n)X(zU#xv?Kt>=*?Ca;2=+e(A0Age zggYH+Y2}UZFQRXOAA)}iUi%rqpA1UEL4g`D5k&xdPGef*=2h@^NAA^9A_fUn<|CIQSvF$N%W1Jok2mCj16| z@SK?*_;()3f5+kDPf=b?xt=Whx%ih}seCo|pAH{}TYX(E{4`k?G>7ZMN9O1b&qu$R ziI{(fgCwnjudY}7wb<{0kHBm2XBd9yR`l@qz)N4Q-1^IB;jCipDo_vY8_@FJV{ zlXWwE5I!5e4sPcaW@iw-9le}B`_G%jc^}-?LCIwk|M?932zt33&(!!LnvhHKpAJ~ey{E{9$JSqXRd!Q4kqyZmPz{5V`r z&;92fc+ok!Ez^Ggc^AAIZgxHiUj>)q_|Mnjo8ji?FX3bGdFUU9Pr@&OpLeCk!9V0A z%;NSOco7wN75XLcW$;q?9q=Bwm8%cF6>k2#1wNkO?}s0PTm3!+Kc3Kk7hWRwTinOu z{5yCJoMHzv7EtdA{e|!zxLj89pGx>vxW(s1@KLzMp&7m(F1IcG=Wh5B_*w9K;m6^Y z@BhGyFkt*)cy)sR7``gO{|q05TRfjE73$jmR=AxPUko3ETfe&&z7I|{1a@F_mXZG2X|k^ zeXJfYfltA$T|EyzXRhjvuY{MuEuQP(b#SZ4d*D5AtCx4dH^VLdpMZ}f^k0RK!!4da zhaZ8PKYxeMVxTqsx#b#%YPiL%vWxzb&_5gf5ZuO-MetF0jfN?B3H(TcH^WN_faTi- zuYosWX9L{bPjH_J4!J|{MjFU6O%C1yABEev^nUn0_#E^P!Y32_tMDTU{$u#@1b+-Z ziw5#6?4MDg@hpQ|+@1kn1(!|#SqR?>m+JGMo8c4iDtIgWc*4%B;bk-g=??yLKfDos zHvFUTo&^6gd!+(AX-w&6=uK)ZM9+c>|@v|2)4kY-c@Wuqc4!#v`?cp}~7~JZy3%)+h&C?!)m%+{cH{o>&{%d#--0c4gzB!?P+BLL?gnj{h0&eA93O@v=+Xt_J zvmo4>ORyeZ!i0kA3El>;f!loJ1Ms$l{&VonaB1HD^L_XPd=dOHc)$Q}$JsNgsdu=Y zM?3?*3U2-^gb%^xvVi~G3?GAAeYL_T;e;u8HQau{~>j=P;0%|L4g7=*IstxV5Y2z}w(v zX9;{HVdoC`M8ZxV{5V`LWBSiq;3WVn*Zbi$a2wwqg7?6!eSR0d9o}=g+J6*2iwd`K z^|a?{c}w6I;LrK+nglP0+x0TjFNY7ImuZIoG{MK=P`G+8k@Ir*G5#$0D!8@7YvDt1Yqu|kkHX0& zXopY2&(&;#*TSa~`gg)hsBpp*d>mc}H-EkgAB0;!{W*Lq-0JJ^@G-cxw{xGbao7*H zapQ9M5qJ^)FNWK5G&ZkzDSQqGSQ`iKgxhm8CD?frd>MMH_xHlv;0!mxr{P=Sbf@6k z@Nu~L`6zsUf}eJsmiI`4pAWa^Wh~C+@KPr17SHAIWpKh2G{Fbq)*d#(M-%$D!zba^ zu090!59>?JEZ;A{?Ku}4S0~}soS;}d{{UYFxA>p&0*%8UTrO(+&(n?5p-sO4zTG-H z`WoYOM2p+)@Co=c)qKzeKLj`XuZLSlG`<5~LI*YbpM)=iKNI_3gSWxW&d=eS6Z|-Q zG-3ao8u|tNBJ5uVpMqO`T?a4XKv9hTCU|v%uZFLJ%clQy%Rg>h+77pJy#YQBZ#hl% z_rgo$IPX3+{%;VxSN?H!8sXM2#^Hl-4jaL@;3IGjpTV!;`x5$p!lx4Yxr;U5B01i= zkJ)(+yasOZTmo-|Tfe>oz8U^3H5c^3#}fQ4@W}*!KRkG@8YsceL+}##v*6!_FN4!9 zgWtgi;Z%Pxmecz6-t|{v`Na@I&w#_#5CQ*DEN2-wUsSvn(ulFMRV2 zDrC3`J`A6LZ^h0-@H#F)PQv%WOP4FKapq^Hhg-S+3U7nY#m-scpBq<);1|H>!AIcF zgg+NPk>GXkL-1##Z-vjgQGvC$P4H594f_9px5342|9Llj3~tBwj~HK}x)R#Sr{Vi= zQeLB9{_l+7$&oGn_hSE5$iL|AguISDe+IX0tH-~>H={HDw52Z2PYxy$`~~pi3GOy$ z1U8zIC|~MlA%CT}6Y@rOSr51EDfm5bdoH>J?!IQ&&ASNGe9sN6-9(Z^Z)XD`eYe;T zWSwwHi1Po<2+qm>Z~yER{T$nfd_S1Mzasox$+-lrmFu6}^@TX_+i!%5n8T^V2UY^0P$>57J_>v61JcHko!Rs^l z%QN`e4BnB!`!e{34E}22PmvzKZI3q4d9>3v!N=itoP8I3FT4f)2jTX6;Kn}*-||@% z+IZuRA1>dry~+o%^9XztJ_`RKyzWa1Y~A%Q&CXYp+wt`G@ICvK*J0-$@Y!Eg&;y^b zO#P|)ngX+P0emxjCi<)3Ti~nVFBP8FuRG8mL2v%N3SRwnHDLUH_-1$!_CEw4fv&UZ{zpW zeh>M+3V!ta3M@WvftUP1xwVIPW!V1&`qk*I9v_AWlWJ!V`5u7pflIUWpI^Xd{!q8g zpZ|kb!{?!Y=8LpktKoCuH^6(~^Wkmq9q>~4Ti|;W_IJULB>1=BB|lOFHlF+*J`cVL z`)947fBjg&A$Ym)w03wS`i_GtwC5Dozz_XI`2==0!bg6pUvq!eQpUzY(71|G&)6&sAS`x_-~ON#ij7OWn40#TUb?exJ`=tVUW@)(`1lb8HV)LmS3IhG7Wy^tdbs&H06z}5IJ^UH@2s6o z{eB3(`FCpA=I?vqlSh?X+aBjyx<%u#6+WWLfqU_^5Hp^$PgJl|5-C^Bj4NM+u%FluY^}0Q!oO5HGC323V#QD=r3{o2jC@tRc`h_1K$fD z$Idt4oBpPt8a@Tz4POMG`(iEE6nqd~4R1Rhx3d~P0&hV-1fThL1y(N)z)KSRf8mP~ zd_R0ug8vTQpWtV_g!Y->Rq$O2-VEQD;O~GRPVg_lgMY-!H3ct*TYI>0rTQ}rFCjiP z@SO?X3g4UHTi}Ni{1fn*kE>y`KM9`)w|4sv_%iq^{JElD{j8BWhx_b--wr6|3v9`bND~{bt(E|=(mt~J$#50lv4O= z;c0dn(T}39M*kZ4A@~UVKC|y$5Go(5-~Wamfm^;0!snc!dMnpg;5Bg5Pr}>a=Fg+> z5%>xG`4@c0nQDIp{HeETJdYUHuQ}FrdyWqu7 zQu|Wf{xb~kN$?%;y>L5DeFQ$216mLMe;z)3R^0z@!;io%Zoh<=oUM9`&tKpj@L~LX z^6eV8DfnjiCGf#>)Q&wDQw1NJqkNfu1xw+_&qa@&Rq(Q>D7W~(621*?@!tgB2e){> z173Wd+A;oNcn^FKe;$G#nX6#YS?bU?;PWn4z6n2n1|Na+LMfq{gAc*2T;uS$*QNCp7RQg z&rpJ21|NZ&pD%zH-=TKQ&zHgvuU2mUY=BR^Lb>_#X85MYxIZ6)??~`3!1uuC6O8Y} zkHDEW1%HAcYf}3*&dg}g@&;>^&&AGM_*}T@pA9cb=oiAP68h!vnuLBeygs4th3|x0 zKYg?5IpEuI>I3k>Ts&?M!?(k&oqr!buT}NiDerILd*If8&uG;69DvV5e=+eE3w;gaR@3Y{e@RC433*h?_{CV&r3BC+IXWePufZ4eX zUIw?gHN#ur=I5R8P4J!gGYl{3IL(u4_`UE|aEse0d>Fn0{T}#!_$v5*cxmTpo{Ynf z!4JVL&KIoFc&_eJy~Xo|@HV)$pJw4n6F$FN^ELf3_-eT6 zFKAXj#}fJ%zz-$#E$}K%?5te>0k45uxjqB0hgad}&)}Qkb?}+eG2Q%UGGV_IemG(O zMeyVB{n%-R@4HjuVD)kjytY^QJoG!^Z3+G*_!hX8>o@R`1bmUIjP%d*Q1S`k%r36Z*&DI}-Y*x8i?7UkN{$(BA?- zme6;@i~HmL{|CGZZvKA^zB-}*7Q7#B?fEzGeei1P_y6F*faYuVpS4!YRSLIwE`ir1 z^aJp=g#Lr@A-MIshv8#z^Ydr$nd{Xb)1QD>!A*aDoBFvqp}!hFp3uJ-K6``OFP@=+ z7>1YLrQG_(PIz(R{fb|P&)pP{+fjHud=YUzuU-8dg|CJ$h0o*tijDBQ;5*?X@NMwb zymxU6{3Gxq@KN}~@RlLb*i^~E8&OXb?9$_ zSKXufW$-TerUZW*d@sBa{b%6whSiSo-@u3AX8#}XN8sk?h3nM+Id4!q+pxbFz7xI^ z-T+_rM%7or?}Bei@OQz-;MTuB4?mLNhv6lg;AX!8egtmuzYD(V z&1%0C|F^-1;PyL9ABWG~uKM}tzXY#=TbvKWH^WcpZo%1|>i_Tq3OY_#Ls!A4b||mG z{>$KH?^eD7eh+*T-1HxV?@8!?0H5_9wKI&JKft%Zcfil=Qa?-oOZBzzXTm$+Ti~_u z<8T`fJK-wJQs8Ruj0gYcqRy2B6P$9AdS-plkj{Lsggj}XuEyVd`pPbi6v_z-+PydJ&_UIK4{ zKLVczAA(Q8&CmPbGe52V7~cgiO7Jhk=fh`X{}8+yzKG-3U*Y|G)P5EE;7*OhD7+1R z4t&mMRbLM;5kANEjeK8*z6HJ2Z@JlrTfU3nMW2uRQwv`K-=xXG&G0Q>Q1A%+4&iD3 ztV6%*Vf6Sq2%ooCxrD`k?#{6DI`rGn_oIJ(hW;(+XMIWSyWbmgpJivI`+3EGrt^1Y z*dM|E!C$ETNi`pQ3cmZ7%B?-`H$B|+zcBq_)i+}2ukg9QQoalRl-_hd=VkC~GWgOA zen$r1kip-c!FOfwhcoz(GWcJFyYr6HBN~TV{R++-PLIPmed+w^!kwKRXY0Uh?dNj% zoO6_0y;Q@Gz^xvan|_Y!i>a4Y@c9Y87QQUO*TY*9{EhIT1piO?js*WOd_2KF3qJt2 za(xZHi}w;+xqb+r$9suweE1W56}*J<1`Bqu6;Xy!fKH{sH(gxcT!Tc!&ETOZik`=Zo+WcnN$zd;)HM z{sg}Ll6bz4!h7Z^H$VRdFM4)dKXX9iIhEjZ;QKCBz3lEk&wwwwENV46h^KFTp3_^BMQP3!ll0LM_feh0liVN0PlZ|^2204312m&ybk^t{P1g)AB3N=QOi5=y14!# z_?&y_uY}jb zx$GFc0KV@ls<(0GX806*D{*Utul~O3=@!9ycq6 z%I7oAJOtnTYvnu9e*<3ksPcS&fseq8(4VzQ<5Ty0)$hiitKl;rQ{Do9IlK)%4u2iI zgH!po*qZ*e#XpYtc>qxuy*4j(_JpaeS?yh{C_gr9&fh9CG#T;B#i z2Dfr;gRlB)Tt5LHgqxo~hHr)2`R`xhI}-Y{U#))bPUtU%PbBm=z$f8zDOVf(DEtuo zweUy&rv4YhcfgOpOW>b|Z~nXLYiJKYfzRT14eYo%<2CC4GWd4vTnIk|uYq3;FF6s9 zXC1r-ZuVaV??~_u!?(j1VgI}E1MnU2Kfrtb8IQxvA@zStf0c(tNP@O|iS zg>O1t?N`I^5^i~c{MXyf4*E6{$Kk~@)XpIMD0~~-#_hB3QGd3>kD$LCKIDG*UOuK@ z3Ll1ZnLFr!mz<&cW7ydSFFjMa#ra`)8@veppWxfz)(-y#Ka}9Jht>c2v(&!D?RTBT@@HV*Fxeh)8Uxxlh_>ly^4PN#nwZ9qtE8*ktdGOc54<`5n@POYp zG5sgt^Ah~4@QDQfIehkP^~dZShmR!qIj`4v&gOSdOn)i-;Ms9IHSmDnLn)ld5g$LFY>z3A_S?>SfbD)=YhbDyGoAN-r}gYZ%KA^7gOs-J*Q!TX=8yzX>OIP(o! z-n~y(&Sm1@Linchm2){hD2JC_sJs+AOW~_7iu0Glhn}gNpGgP?;f>E$E|*yR=RSBp zzvt3{|6}lDaO+10;8mBY9qV_;;fqR@k6@?hjauG=@G1Cn;E!CcdaK9h!jHjc;^&Lt z$FER*KX%r@JD#I_D|`Tc0&eB{4|v;r)gMIvet7MbasFv|$pYopKEG-D1pk%Uhg-Y) z3w$EM&)lr>DY{DSSK-ek@D*^&w;bLBw|2f1z6m}TJ8R)v;dSsq_#wFYxeZ>;5Au|v ze+b?PZ-f5`z7KBw>o|N%xt41u`m^7p{-vJLQ<97PsJK?*~-w&^= zQoY&P3m=4+pg#!T4!3#T|G{@B>|FU~+B1BD_PGeYW1;3dg8f_Ji>^_=0(}>JbG7nu z^uzF)Yn5BSdq2D*!M_OK4!3&z4txr3{v3sGeXiQy#CUSXTeMuW`8_6UKNrDE;1brDEqvF_%9o)(0pDL2=jUwEI3Ih7a_jHUgqQMrQdZtF z_$s*BUu<@6i~I8u_&k1p%Iq}5+g_@AE7t&g_>MT=3?F&9@)F8*FMI-S*F8qyEsd(T z_VY>jAl&lZ2j9^Y*Z&yavrf64pZ*zM)TMj`f6jWV#&aBQ`Cblx1a9Nr_3+g_YG)gE z8sJlKvvW6m=AEiHJO2sa(igY$ad=6;a6Kg0JV_(fZ_TpeR^{SENqk1OAa|2gMfq%haX7r;O*+?=G}4q74Sv>t9+PzZ-h_4tKfIQkHL%J zgYel8s-0^17I-b(j@R#pH^S$jABXqAt-RlXZ-dvN|2=%{rOAGEvA+bqf`tS7(XWLUKTY+A&eR=V1wV0-@-pna7e4r3POxA0w;E4S;n=WSE}>z<>02lm*-;H{PLoYllC8?}2v^hd;vize4ra@1A_0#%-)o`8e~&OW-0o}K2j8<+?U+CR13w1eft_!{x3;O?_#ff(+m&xef8qUF zuDuCLvXWy6@2_I)i0u5 zErK7rTX`wG4qp5!41-u1*h2R;XX9)*`A^iO)HmbVmMg#I#k4cy9G178haguWiW zJz-}Pd<x7`|r=|DyvO0i@HXr`d56Yr7%rRs^GtZjxZ0_w-mil9e@6LM^fmCA z55@Cc2`_>dqi=>+!CT;c@a^!`@XhdJ@MZAr@I`wx-)i_MydPcz|1^9zd=dQX@F}?2 zKLoG-tlIBEe+)hfH~-Igx5jh!=TvXw!_(n|@J+OnEACA17nh+w_Ib6liF}_6@0n0u z3ts`>4R6uYlHk`jq}y*mU$j^4j9{ltcv}A*$l!0t;P+vF9Q!rce=qzv+~(Dvgm3$@ z`g0Kd7vVi$QEqm=1s{Xk@#07Deej*wISlXEr*=#~1s{elLVwzOv>qqmE%3A8^S-Kf zX3;N-gr~)=G=pD_o%vr^J0r~BmS*VdGx#er_=XHVEZmKgkL-`f;cf843I0y_i3I;| z_}p*D?R*SAKfyl-uTAi8z*i^ukKz3Z{u}rfcpLrbPw->kQGcX+`p@I=t>0C?2R`$^ zG!82cDBlI23qKCG@$*vn?C+_*27RU3fltDhz~_Bm_14~A3}2MsFNfDBcn`b-K9BO= z1K;`swQuLw_riBfDqo~u!TaHp2Njgk-aZQtexbY?|M$bI;Wl6T1-ubHf&Li02HP?!A;))UzE__39nD+?|}~{^xNTE z6Z((9cPI3pg+BtfcJ&Rj|10%>mVO04gAY9#FV`{ncDR*m#(OoMdlLGm!w)3*-NC#T$D8^#b~QJ2b@#Wowl_ERw|93n^mKQ0G&IOReeG+z znmU}SCAYr4IVWFz&AshC{oTC{?R^dFn>yOPjppvI^|{{u1`)P)_jWe*H}rQmG8a?RZ>V%S%9F1N0sGuPSOyD@0# z-O#kYL8_#qqq|w#OtbvIrm1;dpCz{T=A=-rITa-JIa5+u8>Cn!SLWnW;NE_)^M1|7 z{#;)}kGRp(+$k2DI&-8Jw%Iiju-=?BHfa#;9o=h#f%dNc$_i;+ojpyxxuB<8w)0!< zoh{8Sz`35vhIVOi62XR!?(UvoeRuB~sm@lZfWEeTmYpJ7)8`{9`M82Q($>;TqY1Yy zyO78Zy{;{-ThkNWv9GDKN9x`uwcQo5=!@B)$-v;$@!DJadvi^l zr?5+p>`4bd)m?mL{(HH&ApL*mqC?RslqJmNly?b>&w$q@qthv56~^G-+b`*&G=P-+ z?i^_MLvgIBG!OLkcl#=p16#jqoqjNH=o;wo2TY>_(obZ}D&V;;=_`I%(Dvn8Ut(7` zHq!XoyIQ+LK^{g81C#lI{g_)|L5k2*0Hvw66u=F=?J~F(xF`d+jK^-=lVeze3{nkU za)4Y<8|HBBX9BJkEhb{h@8kaTozk9^!Z&j_fH!PtT9+FT-}AEo|4)PTYBB2OFm8nI z$hm_%$1Uf;h9-%acoorw7E%&jp$5AAQ8%BF6~fgHJzi@kudtBoaNrZ8PQ(nfcde6# z<0`jc_k2=xXKcIUb#%%WjjlGE)+RUGL*Cvchl@xSQ5W)(m=jqFN^CBjg3Ufxj%oBM z9U&hI^P*7m?^`{&=Q1I16P%oD$!=2I*4y3HJ<#W3D}%c~koWq@!FoTTbKEyb@zTwH zWyqKRTHDvUiDI}zZ%)RK-khH&r^{W1b+)%KyUm-$VRu~VkRBy-yxv@wABb$$CR3eU zuT0QgYv|9pIeR!NrD?Qh7i#>0N~avIOw0+R*1aOddOqj)yixpdd2y_jNo9YNFS<<8 z`rITeEzL(EI{RcOcVgMcd4RomLQj8hVLlwteb4fPb9383m+jx6gPAL^?WsfthUV@8 znLidJrR(B!pnPGM%woD5IK)MOV}8D`aVMTVy*YQx zwCHjY(vtH-no(&M{@f&ibtZt6S-v+W4ZE+SyI+n)az@kSPGDVwYs<;WT1V4HnbEm^ zx2FBh0Xg`kq;&MOmZ$Ny48FFh-JNcvSmG42{VqxFXqR)7G@VXTeYHq~YHjb8!)!iS z&QqPkTjBe1{cEtIVa92-Aun{qnvQ)02(=8l^t4==c_i*xRV3PrdQ9I+_`Lg&~W=&OJcA} zm=dakLcX(Dn~vry#p-XDd7Q6k_n+?>;$&BgKWn-mhbm)I)ADcnfIwB zYpos9faGK=JdpVDST4=D*%oJys$N$tivB`w6l2T4kAew8F=$o z3Htiw=o|D*x7|%q`f?5Kf{2w-PwCyTapyp;t9hgGp7#Fc zw)km$f43ZldL#$AHq+JLZOZlSYh=2e-<1Bg)}8rE5b_rV-OuxNLx}}`@ z$V`T73I4p_H=C9QnRfNJNoQ|&$8^__pH#iRxEa{T~gn$ ze7S9@p|!nDa#H0E$5C6A3j z-gRe=dH%GBvmw|2B?NjAB|kPx`Q4}~*D4yiavLIzRGOQgM!A8^#&LJn;wI*i$-TR_ z>oSyhHaGS35A?b##=c*y>5$0!!=1GKh^$8rzHZVztu8uj*>xN2wsc3&1Q*bM$@i2HY=*J?b zW3CSrC+fDZ71Lew^(VgJz#->UT))=KYuXOOU6YM<%GVHcAUadRWeKG}!D3*IDGJ>PBV-rzof%g)j;ihw zrk(P+Vql&l>NG-MUf=Ieu5It?8R(Zurp)x3H#VGHFLTj5Zk*S>&MXqAzXD5aWufXI- zag+F<>S(W5w9GVPm_Oj;_W~xzO0Zs-Oc>C?JOMf8C8&>0>_TBe;4k*&ov|YLAh|Y^ zPr)B)(Y@>J&=?M+F>muRgG%l94fILaTimHmJ~e-tF+A4FOhP>9l71M``EZG*Q-&;G z5_d6Dw$0bjBFCX-iI3iwh#r{S&5c2Sc)~4jcg@Cz{*7|aC0|anYW0zKH@a7tB{WOT zK`d{?9ZJ$h_=01J8&UkF;pl-VWw6$^R50{J$Md|Y$Oz?*OKE zZj|wj(BF29j&$Me;rvONKk(ZgPHRS(JZn#9=H}8fhBeng{O)dOlNx12H7_H_c^h~8 zB-ajY9Vg$1DCHV9w96!2he5J&qt_|soVVhyYMkOu`O}S%Wp z_ec!=sDVJQEhHs6fZJrzCYydgKe{+;8>IisflWnG^HxOza<^eHoC@2#HX_xLN_=F7 zUC^7P$uOGbI}Qy&QoK9ta!c1rDYZWvt(9u4@2>U12o~R3yZjc-k=y!qDb2?N=KGE| zDQhBrAJ+i#*PP|jN~F2C3YUqcoK3Cux8q`mJZ~@O*Ow5=KQjXQ?TuJNMBgtt4^+PxG2jUFu&kJE1Lwn>h6XCf8``)hbWKg{k4De z^5xEmy8Owu&)J_EYW>(wzRL7IKzzz=0=F=y->IUl$?p}Lq37kkInj7%tkFFiTIJTJ zjB2jz-Z33rW0HgktE#Ll{A|ND*>E~Goitn_Go6b1)3b3OyhtbLD_D() zb8-oGn%$c^nl?GJQJK7XG)P5wT8n*4owH2=aY zwheLvW!mWVHMN|qf;yWrENJ=Ff?RVlnGU>>X5gk_{*t0!(3MfwE>xZWjx8xYeod31 zv_M2@u}N6)cf8z*x!gT7)5>IhUUOS6zmChUPvw`v$epsT?hSGaJ$lcqKow0*j0_qS z5B=biA2aldl+F&_kSdo2?Lv_(taFzhf-o`gYkvB2YyHJS>F?Ecd9GLbNNdM{tlZM; zb?!>8CF)gOOK=0un(l6QdC8AGeR4^_T~rqX$s~7W*e;$*9rVa#x#!MwE z+1%NI9G>04=noV=!0t>;YTsS{6qoYX=e@vBMVxPLU6n33k{jE73o5JFgM#{c(CY$n z7*S&dNpN53`N_Lw9G^|N=xd4|7yL+?>{k9RfpGgc zaxZbKN%{g=X;{%vwP4}GpslGxLeZaFP~}Xu-L;_VYWbF{C_4qm%p+iomW(*$FZU^Ltl}h zmpf-^?WQ85{wm8eidvOX-{l$gSDx-qd0D!hYctGbc%Mo|H7}6Cd#zj@=~^H` z(Zp*PRHV14^0I5>ASkz)Z@6`NZNu#gs~TRieCg5zx_$9&*C)`@o9Yv!c5(gU)GDsb z=qi;NU9sYt^s1>?nBJf(2a&5PLD&y)#?6JWQ^Js*JKQ#83RIvj0kD*ugEwgS7aR8E2^^c z&G0{CD6XhVZ_gDOLv%%DMm#Ii+jB+6l%gV|KUQS)yNb#TKQsDWMMk@=$Y`GxS%=Py z_F0iJx30)&=M{3Mky`Ir?Y2CGe{c zF~u*xHY49_(%V&K#=*HV^TVb7 z5yz9AM_rpSSY-si;@XVHlW|^AnK6H>$e0ILWE?EYGlE~9<$uP(t~{%##wTC#v!V_I=xio8E31N z8ADI`H5qoUNpC&n8Hc)Zx#*D^<*PHgmRvYV)h|pR8Y&j14>1*0=|e`v)fsj&&cZ7) z&cZ9M$*A{?xK(5fVHFueZN_L^&t9V`lU29!7@BTnO!4Iin>Ng3^u~Xm=(p#Q2 z0%uLmGA60z8I#oVj7e&FMf%8Do^gaK&p2r;&p3G~my^Kwb%&*km(-_5J!34&n2=-~ z39e2b@a6dIR};v}nZEu78KavVL~Px9i!8Uz?7tZY(Tpp;8AEl(kuPIl%orD|(hooB zRAz8erpijW8Q}k^SRkY1T3M3i-np=%;->Ni(nccN6$_*-MYhXjMeqiHFGAW(p37ct zIFt7gs3Ct#N%C1B6)#t*np3*;CeGqUcM1#%uKcU|N@O=r&nId_!Id{18>2b;BSX_R}J!U8!mxIxz4 z*Xilr;Io&v2rQ6uK{4W9(;(N)TDmtZkda?>xjP$HluLorrv(|~R#ulypJ`@vko2J} zy;G)7mZ}2x(gc~Gw!4*A^3ab2#3OmQOctBlmXtBStt+@CMUGJNXsiC?rn{^xb9cIU z05yF0bnQ!C=$8Mi^y^x0tM@zmeYiImTZ_tWKD}V|O?2%=RG6~tB~>b`;Vu6cx+f^Q zT9&)}jxMt$-JPA?UAjQ&W_fy~Z}Ezii-QF#mQ?s&D>p}F@qcsMx`wp_?qwnJ)`UE1 zZEBaNk-A&l5FrWvr8Uxc^(8d|n)>8nQduPIW&SZS_dW=BlT+@`i&eQ3>K>^I+&yS{ z-A$`l?hji1GfwiTk~~h@s>{3N%__a}_7u5gC(GwrbKR{$t3ET-Di)dp|EdjFE3HAj z+~do+=Ycjf_w~x-|7-f>g(DkUU1GD`C6q7!Mv6}V5(yUdxP&o7?1yb>D`bs)nZKJAHwA+%i>( zy8BZAmJ&aHSUr1m@dJsm~v&&j8kR$u!%2+c_FJbTk<8- z^hC+LB2q9FxmCnL%!ntFzozr%rkEmpn^Rv-R-wuRWA1T9t^1IKK?|9;-PP39-Pe)J z_2lz?rMzs%S9RW8uiRT{;$2O$)Gf5%>bI~RwxH&wKHq{Qtp346l}VFwkIXyM3JT0x zVN;&y2}_xh=-+H*WzI~Or|JB|Kppzjeu^$qlj3BiAdF?EWSWx1YErUEJijarBlavz z#?#II0k^`vT@d^+Tc3xPl7_X?(IR)ZV)c^9+RrR}&Brr!PZ>Mxo{q98yZ>2%Y)SfX zRlm|tOR36U2{-_!GaD4+k?rF<#2Uc76=;Doy5?wi! z@+DBWUC|gh6LF2)r%Y@rRYXnnPlLLqJk$zqKQtg+54hL z%|z-Ux<_Vo&^wEmal1t*enp616crcwDwBhU%oGy4yIF&;W(>%-JbxSR?H*N$Y>J;= zp;c%5h;yAy{;;7h$%^dY94|-<55=tX^Us>e670_Q4w(+=1Lpd8ls{H$6!Q-RCU#PZ z%A*FH7nwOlcM6{(^t*Jl_v9Z(9;hxrZiSY!9F_ISNl5{d^PVJ=RhW4eF1qx{J<{)1 ziRrubc-dHMle?AQfEUwA%&TcNcsZ>G52w>mifm8QQgAReN&QMqQg_mlESA%G8pilk zVi-}MN;sqPQ;2L-ehNX3$p5{Py4I8yuZTfyPbU#gQ(+NPwEUCV%C5$Ut!dg-s5)t9 zk&{h({wM!Z%G5TZYcdNv`>BbiZ6O7wZGbpM+tam=0^5X*A%lm`yvh^?3x5iWI}a6>_%gx28-&Q5N@yi{IHtLDP)XDcNW={#8E%BSxEmpt9pi2QB5oK7eK%5IMiMMOk(LpmF*o46 z|48Oh(KCzWTaj#94(Dx6QW=24NqU&p?B3QXlMZXab5P7dFh`gs^>HKDD zDKS5?BI=ci)+a0(QHRn>n+%`4{h}aLo)zruX=-eIO6a`b zOb=DwawJs3lFmDnmVbH+b?R8|$ui1oewy0~N(n8<2cB9|(!$&T>7|Y25Gk)b!?Uiy z8HEMDC{A@nlR{5)JKd4cdc+TT0aaVBqp?4{hSEW>R;uV$W5VTrdw_w zf2S#Yx;ISVO{fjwr4&tbS-bz_X)Kq096GW-*Ie1EBU`1ve5Igoz@G=`Mpw>X#nO$I zZXW>MkV`{;N|oOVO}4l@RQU|L-1@){_g=9)axe7v6(w&=lh^x4JaL*Blu{Hh35R3R z*B$wHX{FR%s>X#gHVMg8*+UX?e;_kQ7iXzMU%YHX(+PYd;in%mv+?cbWFlv&#nu8& zYwF}GXUn~dzPY{M_xjATomAv3$(vu?Tb1O|N_o(b8(*?y#y5<_n?Fxc>a5CpDC9jy z1KE}1qIOb|vlO`^omx=2keMM#^xx>-(>64hYrzPV-20>geaV%*5F}aU&H>(Jm6wD! zHtdF_-6Du)?!0r)Aa@Pu3&h<}=kG~HMb7+5Mb463WB1D@>~^pIZitKt`l`@rlHK0D z@&hdLKFzekWhD97%JpG8NF<%^%t-V5H4SF(myu@qxsk6)ZuF(O>hjD=w|ukGU7$N9 z@2qsUf7%%2_DkbV-_k9=$|4n@*NoFVo?hW?*jOXWI-(6>8k_&t9xe}S9BCeArNw+p z+c9(ab9-hDXfB%5rOAC+=`8Yca&yaHppRw6)wXc`N@DaVNOyV0j#a6O*h}?Xc~e#K zSLtQSvR|N=xyv-K%}d=!pHvq=GXue8$V7NTc|lylq||9;n4CVd4AWf;aLdS?m zm5WCrH5$f@q%f8VL25u#G=))35ltW3lpRhI-^3mTLC(L(P~V&2LSylFNxpT;`(Ne# z`)Mie_~Cy3Dw$}nrj45Nul1JOeUU1P9_aFO;?xciRi+9or?6Rs)naMPixVMZ;Q>((iKg5JKnip1y ztW1;_IOnT3O&BjgY$Q*KS}fi24^5=jQ^HKD#!Q)q?#g<&{LNBbq+$v3uF!n*mj79Z zBurnd7eTsoP#Ux_|2CC~#&1Uj{#VIl<`JFE$bRx0HJ!2wC$c9bx^L5ZS>Nauk3@B@ z!O3ZB?$}rPlX#$x@uIez~67=7%*)^mFzW_j_i#j-;b+W5JI^$?ZdZ z&3jVxLk%jA*Od66<#Y7^q;D3^fv~=O@FC9+~itx z2=tn8xShWa8>0LL&=C1MN>S9seg`9l-YiA;eB zOAMznJ~$CawQ1o@=(7Z^JfGw@Vrl8+aragtSCQ?ej;kb>WVyQkLu2#T<971LF7b7EOyTM~E{Uh>``jZ4 zvK%_Ti?`xdtHc%u<(IF-#nJjs&qNR2kvtkWW)~(%CAwb}(nGo%G}0{Qa?uB9f2Q#KuutPgV>lnJo@G^K0Z&H(+_ZSrrl#f0;;L>Eo3AhWpPPK?u6BIm8Xsx&)A#CpjNiJ)blPg_8VoD7cXi_^xfr@J_ z1$>|@D@7i<wU3=%`nT%3W|Jj!4M0V)`>nA@va>@9?iAg0O*BKERg3oae-}mjUw`$-ZRMYJa~rM+=2w2+TwRhu%aIVva?4)W-;pxf|h8&m%ZmhzPdw zc;5?tF(L1ML5h~ZKVvU*5qpHsO{Qa0O#j01f~8gVXnsT;y_=DiY~!`1g)P&F)k1XJ ze$Ld-zTG<@^pc-z6|QJ8sfz#)G(?o{vH1e2f1i6yo6;A|cxnf*MAz#5%px*HC1%rg zi0JNFy&$Sd8>uy2pNEUZ!~c?LSmsC!5nSvc9L^-cu0UvYRCe`)WJe_tT^m`V}$Ze{d*~r96h|+KCp*KOU*SU>?as8>_tR+*ee z$pB&pmy?YVpRec;uDGfEF;0(jSKfHg$b;$p^89$<4At!$X^(Xr1~p^wAF<$DNj^D};D=Rx$widvuY!liX)Uz8^C}FE-_u{J ziqV2S_3af=jW3QY1jseCc67^2x)MgC+hOaLE6DB*l&OiSkav9KE7P0O8jtEjXZ)-2 zrb&`9&VDhfB`G65@{`08_)``}tyo36TZirzW+W&irTcC<`%s=r&Kh%lHD7o#;9k_1 zcyF1PNZvNKi^Of2qpkv_D?_CZhLav=%#9(M?EkfsE6q1Qz(f`K0nqK9pEkISW12vQyl?zSYO}3E!*Y^YvHw-A}GLwR=4x z?)aDXDfP`UZQKhBmnjKL8EMqMMA?x#nKEHB^VpMcFH;xVD#HgLcLh4?8XDc|&hG(+Qv%h!1AEzP)2;d(^ctdNB3TC~Z&vJUk`Z*HTfZd-$(Hmqx!WI2 zbirg!(v-$ps>}OF?Yo zyg^Q_PbkF3v>o*`v&3jzB2WiaS< zD6(L))z7Sg++gU2E@;K4R`=>EmIC=>yew|?PlcJ&{spZKuauu=45ZJ=N;21ndfors z&HYXCKnz>*5^eXZ?rzJOmLTh4&^DyEHn*nk}EoQfMcgV;P z+>qF2mlqC5se9$;6J2i#+_$%+I9Ms~ON(yTH4Tt4f|tmu-cEJJcFC!$x=H5ZOvFrG zyS#Y7IT&T~7_xg~>$(UFR!B6X+qZW4u`7;Tl%vG$bh}jR(%$aQn{u7q^5nQ7|Ibos zb+zu^wM4}IfBm35N9cbO{Z?On`Sj&|&dhDHbgjkjDDUp=YH?N_4$0z<_NKmId7n>K zwHk`c0)<``{a<&#wMWhxa+-MkpnIL5-+Osq+{2ZwT;_kMTimzAJ=iVprM{;Tz?|GUPZ|4~?LHBytFhn4L&^VO_d zQo*iFOZ^YB_6O>=StYGx;0S|gWO?6B1AXny8sn96=gV)d)L%n&?cJs3 zbJZ=$)wO(=QZMfpUf~zW#E>h6ya3Q;@0$_!+;-G{Vms2h=t;U?v;joTX=$PcwaTNK zn4vm(9d%A#n%ok0N<4E8M-7FY(gd!TMir4>ibP3N6VF_-aN_|H*PZg!ZG!@~T)T)` z(t<^ab#>h#Y$je4Zbo8}uf-^nx{O=WF=nMasawl)VDa=Nwq9*4=ETBl0lJ0(&A|CyyIB~o zH~VwQa0lG%8z0ZGzbC`~A^3%o?=K?$Ou;SR*^=%)$KaN)@xe1R-SnmCH^EJBe2j9K z-u&MUH@)$ZC&uj?-w99Zx1ST&ug0GpaMK%~KR2#7`(<#`8?VjKFU!!c&d@hz=(lF* zw`J&eW$4E;^anEZlNtJ{4E?bT{k#j(<5>z%#^Zls}Ttm#BNe{)FE6 z0l4%3*AYJtEYKa3eon%ZejbkKqy8L;=%f5-LT~;|CG^IR!IOT@yejn5yU+G4zMY>@ zJ}05y&Gy`c-gt3BzwdLJUr9o5yfmSoi++AWZ@em@?|4)kmQQs;Z@eapzN7lOgx>h7gnm2v)d{`vmZbh_ZA5KJJ-jEOU-4b_r$3=LzBQtE&kkMhxkzFOT0b|v)2$Kc6!I2o}M_2*#3PLv;s=%fA|jp(C%Dxo)jjwSTQ zkHeFGo`~3q`V*9C!IS-ZHr&QT8-M0R^iec1QKW6ow&>Js?C;eOvPtMyL;mLXXBs^KJga41N_W_S~ zPv<;KcjzD}PMT^bS|Pei3xd!^2Zb0JlQBV1Lr_Cd2x?}tyD?(a?8Z(Zvy*GD>~4+8 z&eqJtCq(h8)&efX{j+;FA~KPag+zlkSU`#J$cvTjmGf68AnFga3Z|X!5KPr^x4eogtt6 z5T{XZ;i6-v6Sw_kRjL>wNrkg`a&TKKbJx`u^-I z$xnFH`S>UKKKlwk_^i0sUlsTJc3Ir-+wBa0C&ND$_dfK*y$@&bIp1^m+2Y>t%v7ddt zq@Uu^hq0eby?Nv$eF$Dh4*TB}_x^8+d;bUGF>c|f({b;_-`0Qe*^f#8efYVbO8>bc z9)9q3aj$1X-0Rs#KKJ$yY@`89mja|56J z*8Fvy(}DTH@5H^%$&XFfC*j;D^WuIk7R3ErRN=GEW%%SZ^P`_D<_E8fd;LeqVLy+N zLw*XM^_;;cKQ});|-?sZNg=RCRi^i@I*c?&-Kyak`U4L|w6@p;8A zeDaR@u^;x#58f5`d5z4b6Y>6!ihKXZ;j^9seDVqNqn@Jq!6(JN&PC*~Z%fD_ufb#QP&eOpEj zc^y9MS%pvDFhA;9Ge7vcxYxOZ9M;oD4*4E@*3*SgzHffib6|e(LvgS33OTH&j~wz_ z_^f9DpZw1JsOR4N;1A+nXYS*l-k&4lzCZKuSp6f=erW!s>O3+(__4Uxd5s*_ zbAuf6JNT^U9zOYl`B6`)C}* z-Z4M=wr76uuDI8ECGMYV^~L>jt+7u|*WLZRxcf8WexH=Z{XUt4&-u>7Ctol>)@9NB z;7j7(hbnToF3ZRvufu0OtMJJi=Eu6MnIC*z-0R!`=jUMi$Y-4g$R|IB&pLbX$xqCW zex8~i{7l^IKSvJhxj+tiA3p23hEINDe)RL!{NMv|ud_Heyx&;Qq`2?fY51&X20nS& z{OH@P`N1pVUgsQgSm!))$d}-=o+^CuW%HwNHS>e7hs}Z4bzg(ede-5SZnzPb-Onj; z?`Ii)QqQ)=orO;$G(!a$bRc_K`z=3!n82;FI5(-&39U<_CWe_c|MY z`{{nJiF-er@LA6$eDaq0=c;qd{NUT-Ugs6~&CAl7lfO@Y+OYlvkNv&$pJ&9A`pIX_ zKmYX9ub3Zv-uxN)3+4xJi6`~5&f?!0*2#6B6!$()!%zA-n*Q?K41Dsk`Tf}E<_E8c zd!Kia!#X?2A>W73dJf=|ADSQa9GM^dSlsIzS$MjiqvGDrarmsK0H1uq{HUjBe(*_g zuX7bS>{|ml(!Dvz`a|*hzDtL6u9hG?LreO{a5KCf-~N&WG8)DC>|w)yj#*RJ`&JK{dC+-E&q|D3qjKQHd}FTrP> zRrut~=EvvKHS>e7h%2t{>lq-2`~g1e z$t|VpmGqx{L_ArqgctSvGirYDF>$Xmj~v!BjvVqLeAY7wpS)y#{CB@o<_Dh^_c|-! zJdb0a{q%lb7We&J6ZieR3ZL~i;FGVJAAMdoKlp~Y&#Q$T_IV3A0SN8IZ?0B4^s#r^Z`D{=pP`wls`c%GU1+_WywnHKk)s(4Z- zKi56Y$T`c%xke7_$yJ}OXGGlVnG*MUHpG1&HpP7(ZoyC1G2U-(!zbS{zpC|Zn;(2v z+}HOEIoxmO$RWRi&wBds$*;{{SDiQJ2fr2fIv4(ax-Q<&MRD)vGJMukgHOI!0RG3|y^Q>mjQm^V@V_@7`@FQDzHg_&{{-VU!Q*@5 zNy0$}AN%}aK656(nbXbSry2Y{gBO>Fqv-K%W1SG~fBOc#`vmN2R6vWJWx>2gql|lYRczsOK7->ou`5oEP6GPKw94 zZH-$Jk8y)fBZuS8TF$w0DwY#`J|kyY-0zv1xZg9)41Y7jKM?o(VdP8G{`k0~;y&(z zc+$7zXOKtIU!GeOkKgwr_$GY5?zF`HodVt#KMtR~ zV17=&KhcEw!HeSlI=lW=={Vl!4RP=DzPRt_vy7bcjGW2UblfE8Ex1osGI$4^zYolb zxYvIw?)Bdxhp*$MuO8OJeYh;{`89FRpICpopG9%^tK#0z+}923`5W|SN8I;STio~6 z$~UGt;jd|5)y2aPe*aI0ezMO;(|^o8h{rh!ezy6ve=hF+%{LAG7l*PTCW$~Bnpa1LWoDp%)nG%nE68)JLe@UJ2|BuIg5?^KU4}N6iv*zdZ3o7OZ zpEJKGf8PAy3+7MDUo=1XlKB<+Rr7-{o4+W(W`6J$^K0_!<_BLjzahV2e(*K(oATGq z4?g}cQ^EInLEQJlthn#1eQ-YSEq+^?@B3#--1krQU#EVO&zv=JuXA18>pT&E+qkbv zb5F(JHm>*?{N#QcOZD8jc%0wh7v|^XUz#7h(@6!de^1=&?~8k%JO3ulN#?cl_*Z=G ziND(TiFlIpfY*!MzfFIo^P0HluZVkoGb86RBj+k3r*D3|j$E4`{6Rda|E({JEHh{6q1mCwTw6p7*!qUyFwyeDu4Y_uKNv#KR9h zWB$DSviZT6&7YQEGe3C4{G$9d^Mh}|f5qce^12_I@X5E}KYI?>UfG6EzGHqz^|Z|o zzAK*W^WVch>{w1kIeV59eBb;<`3L3)AK8C?9rN->#bX_V=glw3A2&bvg!v`;Me~D~ z%rDEIGC%nK_dH+!w)_L}s6Y6H`A70E%@2NWeog*^`N2oO_xXD6<&TL+J;7_=_q<<~ zzak!f@KyNSpAGor8}PY5oAAju&F`t6mifWA#C_jxBZu|uAcwpIpY`m)C-0gcziIKl z`N0pwz0R?NVgFfAUOeeP`2>8{Q-n`GX?`UMd;BVyAACyO>zoz$*Q1KKzaFiL`*YE{ zxX)`7KI?D6C*Lx^p?PhaAACpL=e2s6_9Lk?$!}=CHN<282QU9X>L)pTpME4BIc?Q* zEFL+*`{r-UzcxSkgZVA_xgSjHiTvP`;!#iJl*|vl@I%8sB+>DDv?%WD)rOz+t)qH& z;ggRa4f7M;m0u8#`h(BGXFc=q$y@M~`~&50!6!e0&zxiUR*4}R|cr=;~=xG#Qb{?bzFUzs1g z`lHX!clYzse_j@k`3A3u%$=X<1cbPS)o^5bdW z;-0ybKPMjNI{2b^vR*I88=)q0c-s& z<@7Y)eai`cgdEQIM%-UdZ^ixfwD1#Y!G50<#iRc*?xcA1Kln6qSkI!k*Rv$<^=yhK z<8obE;>oz=JMf=d7x?76=D%%S%n!aN{*v`V4(r)R4*3y$)^iM>yl4LU`IKKZTr zgJf|YzXrW$|MTqkxk~)tcjDg9g`Z6QgmYf?41Ox^^Ewmvd0oP1{a5hG`{qae*X9Sm z5%+l&ekz@ppVJ9(Kc|%pe=fsc756?g#Jvw2@HyWmeDY26W4T`+Nw_ zKA(ZJ&(|4z>g4G@ul?-P`*~g5`@Ade=ei@F^m8PQeD?P}@#J%L^8E~cChqHgF7EX_ zh$rJd>wi3m{9IZ@vX10q;z|8)_wr$(6XITfQQYgFM9w=PX9}GA`2zW`cpNs~-(8CP ze!GUxeRTt${MP)~R|E5d---KvySJQz`uSiv!ADNh9ws@jKp!SEcmVB?(@1A_jyhKd^(RL zhv#TcJmx#EdgjGrzQGsFUzERSe(+j`zmnnC&95kb)%@Ta=C|J=ooCbh;G@4V?8CdD zpVbV04E`SQ&%~3yz2Y%4?w@mUzkjaa^PcI$C%-nosy^J9AN*F_@1OG7aK7)3`j^39 z3BCb74&DYYfbWTWAG+e+hePBc4%dtC(`Ufn3-#B*Uj=>!PQUm|!+iQH;PlVH>F0lWn8R~1Bkud5 zEbjYZ4nF%f51)L&{OH@F`N5aOeLvK|-xqyb2j{ui1AjmG`{4Aiz{|ss`JDODw|Vn}FNk|TSHU^o4e$@dd^f>4-?q5VcURo!+l9}0 z?ZYQOFhAyXXnyb`ai4D=ocllbE9p9V{UhRDe;z*T9EVR{FhA;?Fh6)v-0PnL=l-7s z=YFn(bN@HM={Lo_51ZoNhi&+r?+$$Ow)rvNUGsx?#JvwaaPHeHaGuk9aPHgjUwwMr z3*tWCN%)*s2|oFh`7y6)^MlWb`+OI{OE{0K;FI9%;O`H9ChqHdF7ETag3o#N;gesR zuj7`xF+cdNxX-urpPpWqDRHl}44?JP!Y8koAN9uiYo^Zc5)KhIx?d;c%R zeO}k_S^o`u@>}z3dj1@kAN)?-=e2q?4M0>pKnXt=X--3zJJO8+A#lh$S;7u z7Q6^v1TSUqS#j@kMcn(m0H6I_gipR?e(aN~`N5aPz0VuqyvMe|`TE-i=RLMB?(;nm z_xT>f=e&CG$xqCW`|8yE;Ai4K-`uZ1eXd8uz0N#*)-w*DykLIxf5QCWMRBil2Aucm zEcgdwAI^dEzO9S;68HHYfOEb_;GFL%IQ?^Q`eSb# zp7&RyZ!_RL*PGxU3V%=B``H!uejdVS-;UsuADbV2>zNd@MSxZyHp@lm3%$m_PPk(qG>+ zKX^+#sfXurADrj$0-SZ;gR}qR8b8S|5+@Bxn8UAX9zbl@M%jb=wjGW_) zoNMHK4C=oF|5)(SZ>0V9c}pIvdE@4mRtcl_$<{uIRBUldR3;rILM;H>9F-1~Vd?)|)g{|5B)5D`nIPcp<@LBAurQdqmuY=Ry7x#5J5cfXk-}LmljElQp7EkJD|Chv* z{=X65$Ek`Z{U_fQ_c}Y`KJHnDf1csz`oq4l&Z4-FJ1Oqtc96q+;28W3Sg%X)j|0#B zcJA4ik2@mn2_VbeY!K>oFpI5+nPS?O+gFbA6b6vXP z-k*JO@6S1M*ypw1N&B4C`K}yS-22%Q_kQlcXW!cJ$#>1~sGlA4gYSuZKYQSFsDJXm z4(CNapTQTw^T?@*d!JXtz0bSI;q&|Rgp_-*lIT<)JkaIVV${BNPo;?2`_ zPKtY-bK=RkpNX6*cm=#B?)S!uxZfKM_`Dz1;FGVLe>s}YXT$v9P4T3DexGqu+}Eom z?tM5!4*P$Sk#m}nQ+#tq|HXaWd2wI&E%47q|98MY6?_+*-|s#U_w_my_x0+*=enH0 zCqFg6oK8P?W`6KK{J)*Ux@VnE73C-{$?E{MW|;}-0!QFxZhVh@Oj?b@X2@0kI%h3<_F&s z_j}+Nob{h(@IE-t*9|yxW(LE4^4u+mdw&+iy+6zF*@qf@@)h&vbuQ}W2VWKU{i?&VDw;y`O91-p?j{_H7eBdCUB!`nhF(@NIGL zXB(XJItFJyPsM#+XW~AuOZcq+3O;$?{3Ffl+Wg=*;y$mjKYMz;Zot0``{z#F=XEdc z^BVc{G(YiK|EPH4laHA{(7f{I2Ok&rc};+`{>cnp&*1AByqUp|#l1g0aqrI=eD>iS zKKX_F@09lU(tYtOaqmwbInO=UA%}bbpY`0qC%-qpsCpjE51zXl?nAzhXo-72x5T}l zZTPHb7e0B%ebu?=zIa#M`?-%C_U!;U%2n_>$yh``N&@m_X+D66@SUSZGQAEZ+`G`aj$b8Ijm;^ zIpkINtaBMYdCh(GZN+`@y13W5iX7I{Ko0o^eAd&1Prhk>^sQxn@GWt#^B#N^uj9GD z8m=$v91-_>AP=8)j>9J}xUYUrxG!E5_xdN1!#YdIA)kTIddl$0XU&g(R?H7RC+>At z!M_51u7TIVSHZs$d=31oz{mf3`1<%Y;M3q=3%&r}0I!4pL-0-Te+1qE=eWn<9QP8O zl3{`tU(xPLw{{?@0@bwS+E^(6c^JpNLBESD?6C!aFEtn)iAw2Va$kH)-21SN z9NuF)$RY2*XFYrH$-CyqJ+^Ot@B?wLbNTJkK6^iF;@;0y_^hV^pM1@I^=;jK@eOgW zvxyw`Z4)`<+wfV>4t(;q`O&vs^MiN9z0Tsxp6=(Qxc74!KI@r*PhNIkeVcV(ydv&( z&LM|=n@0}$5`5NEg-^b0e)O$oe()7>uk#E!tmhm##m z-4Fh{IVSF}o0H;6Ju4V@CL^bukyA&`w;*Q&oUgxa@c$it5B#5lpMrl0`0?AP^G)jK z_qiJHkn-g9DEa-O$JMtr@%a6sgXdn6`kpfoPjZrBqtAEZNe+4G9n&25r^MZFi2Jx_ z@AP!exwz+yjy>&=wXe?#2!d*VK?=DR(evnlR5d-o@u%zWi+la~m%@)zKf-xnUG$1kt{LEP&febv+cn7I2B@HyY2xX*VQKIb)qeDcP7 zKVOfgn_Cl4rj2Vg*M!e{HpRW37JQDoB_4mSM6AmWeD=95p7e+OxcGeiaS!*zy`Sgs zS^tH&*MAM4_1_?$Joo-j*E1sS^^9lug$%z8Kk37y7Hk$i`7wOXwx6H^6zWo8Zsw+Yd?m z;<4Y#+HY0y*l)ob;>o!Db7a;nN7qtr!*YUeX5?Ih{{Z&kjkwS2R@~=R_^_wfYeL-D zs|26xG6kP}+Wh31Ao-dxKX_T(*J~D>`>iVO^IaDA`5qwWN71)q@E-%e6OVO|`}1Br z);;*dbUMML{$u2nz)!%N;(lH>#l8RA@Y&}b_~dQ#`x<-K{NNpN@BgW|_xViR`<(yq zVIR0&)8d{pBknmX;?e&&Uv=^5fAFTbpSzaj#QEB?oZvedIrrc{gmuh)L^@xe*NC{! zYfe0=ll`e>oh`V1A_w}u2PLN$9&`c!nSzK zH~1cM_&%cWF;B18gn07HemnUOa`d$(p49Uz*eB~5IU5-{`{I6%4#Z#in9uWd44>zv z2cP`J{CK}`YJTuD@nl{+N0;DyA8`ZD^Ob+YW5DB=&ud)V=T(Hy`X}L&m&}j%3sdF? zpB8`7=CvlCY&)*+y11|Vws`Efcy8GdkNp;WU;M?#e7=u3w4ArSE?Z9UUPjL3Y})4} zpYJ0|;y$k_ai3RJ+}CSa+}EoPpX;&;pS)rIc3O6B&HUi&;>o!QM-`e6n-(7K^ z?*KW!g!B6VehxnKacRM^?s0#X#be!rFN-Jj|1xsw;J*gmLq5;@iMaRw96tMe0iXQR z{CM5GGCz1<-1|TJ@o68t&tu}==SA@(hwIhI$XUzC*%Occ$NB1tzxpvhdA$qX6HmtF zxjVI-IA3R$6Z|40XZ8~wgCD<=e7=vE6Zihii+g`s$YFo>GIF{ZIcMVDpL6k7Ki0|q z+=zRB29^_jxU-z#4;eYN%CJ9tA5j%uve-6O;e&HOP?-vH*KJJ~kk30K` zY5ne3#NA&J_kF&Rk<-k`+0XC~GW@={k305BPuHIp_xj7?v42X>c6Tl}D<1nN_)+`P=kY|`=X)yd^UcqteT#LB zeKjr~>lnN&p49W3c-@=>|1I#AxYx5K?)CJ?DGYD@=NpMb@s~q;C*rL zfBsX_z9pRfpBDG|&WQVbSH+|Mab6nY(f{Br@nl@So^D%CoR=NT3BH?=a}Unf(~-ZG z&e!KPD(>@I5cmGnGjdila@ykFpIve9&!M>Y=h$+h4?W8XewvX}{M6yP^YwH}-1{>v z?)|AFhx@0Mk+YSNGc}*q6a6Xa^o;tZ&bzo-dKUp`=Jh>eAWDT{%M#Wd`&#*8}E&EaGuAuxX*W2 z+~<2H?(29i?(29X?&~L7>xInK!GW#n9o zdw*`ky+66XH>{ugd{jJgq7P%@krRA8Bc~3|*X4$|_h(Jq`_n}Z`*Q@&`}`7|_xZiJ zkNY6*EsT~4}K`__udgW_wA*)&-Y5)=R5Y9&+o%n$Go_&Z%N$OciM7d9cL^j_-sbb3OLud z2hRKORNUu#CjOH7e%5gRux}-C&zTbUoJH{$9^?4=-jcZYZB^X+wq`lepLNR#-pt79 zg0pYArQv*ePmYTFe8<-|I!SWfWOjGPuY*SGpP!}aC8w=C}St%>`5x5bnB z^4{AKf2HvbeBN(+@X5R8$Njc%e((eFq@R4=I|BbpypKBp=el2udmnDZy$=(goA%S! zy(sSMUKaOtuUJm3@0{fXU&zR*gLBq;TJxC*ay}*EAHb~#C_bVc&t}ES1gOi zdIet-fAMj6uKR}N#QHWZCwMC(XAhj~zP3D^FYnKFai8yoxX*WAJee==&jWG4Kab(_ zp6tOVKQTY<$y4)#pNYTtSP$>d3vlkwJ~-Ds_XTNxybmMd-iNZduluaHultgCQYY7a z*>YliYnBtdo{_T&&ULSTVLGp5T;886;y&NHxX-tZ9QN}Voc+Aa$iK?SANiuRPVeWa z_^TiP_0Hp8agK`O-p`WdMBkVwevibx zpU2|f&zlVYHp8F%l3{cWx!DqyMT^7OFw}!a)ZB5+!R{YX*zV1(oyT2@+)Wh$atbwzhkuQHbe^lJ_ zOBw!DhF=v=>fyNSUy+WR@b|`k*am+Q{22Uwz^^iR?JLv#xF_QtTM>_YGWe=^QV(Bu zw!n)RcRwTlAS3?>In1B@s$n0PUj~0ajJpiZ`*0Qf)$kkO?+@MvXa30Qupaig0M2n2 z!0C6v-xcr6df@!?PzK=iN4|Pk5B*tjKNl5o-?wYXVV#@e$v#Q$+LB%ZTH^0x{6O5t zJrwtGuf%=--(}?7XXH$NP1*+^wghXV{rE21pKwwCpX|F@WR)o^(6VssbuhZ zaOSUqGk+JH`6n6t44nA`aOM{qPuE}1;3pY;8NZ_DDo-*z+dI~n;W z;=b-z89DuooUwoO^t|%oKCgXE%fI zfiwRUocZ_Q%wPVWhxN~4|1`iq2fPJd1wRI-e-2Ln8vMhMa}WOE;1A%F;Dz;J{T~QE z0ZxAkoUh}H;LO1i2J>CoRQPZ$mt_z8GX3T$Qfkh6uy4g2R;u^i+dkt#Jvx-41XoV-w}WDad?h< zkdbqkk<&-c7oZQ<896r@Ir)vJ`!EUqi+FCF2meBhThHLT;9ms4@D0OpYv670e*pdf zeujD$|H&}ti{aPBeH~ZDeI1W8{9cBCE&igd;y!LkJjvnv#Ch;9!Mv*A z{QdWq#eLkGxR1Mq9PYzzM$Udl&Hy>AbFBGvAM)Z}&#d?hkH3tc(^kY^X?y`bKQ~x} zPrhV+@*X4ks+u2sSv*-6e$G<^XWur&z5h*dpYM5wf05x&{L{2x-*5TsignX=LPdk@K~v|2QM3myvTL?)&Ff-1pBteD0G6_~g0& zE$vT|pYYfxBjQOu`KY+>pD}Rmp9yhaucEm3e?7zB$nZPjzFt=uIsJ^B0dg8xud#pj z^!~|*4co3H&t}w+v2y0i6CaIQ<4V{XOt+ zz_?v;pVz*)&#N!)`{Y{O_sIZ0_ro20@_X~+zZZBgKX~rjhJEJi<`_8le*v8D%SzyU zpE3(RjlMO&xlfwlyl;2Kz0VzS?{oWK4d=!6-3RCT9)r_A2dCc$r+)`de`3J=JH<42Z=eqBKvp-kh z{|j>Nz?oC|*TZ^v&!1-Ss|PY_-Y2v z|J&5}`(#|)?~@{Y-W!wf$xG(P_wT064?Zpa;$vC7PdehhpZCOlKc8p#7a9J@zZ>?A z`*Tv<$1REbxDDidGy1=gk<-k`IS}`CITZJG>A`3JPvDcEnjif?Ge7vbxUWlbZ`ijl z#eA2++0Qj`@8`O>_j519?`HUy;z^wx_dX-%AtR^t?ZbKTKH1OUeQ}@HwYbk~^53WV zzP=@KU*8${T*oqe@>%oa^}1qy@Huf`-$ih~E?j@dus^)7O5LaVxt5!e>1#_~cvWw^Zl0`N4O@z0NK;UuQ@6 zpYHzvocBilds5%e^|-j7>#}%K56{a5__yMotbA{p@9RD%?(4n?pM6_`PhK@Y&ik_Y z!E55)&sA{FYX|(xFt6$FdwO0o;y$kmeAYh)pM2i@w)V+_`N0>(eO`OwzP?>?U*9X_ zaG%_Y$2!J)m4SH7H~7fGus_MXda8d^Jn_l%=J(}~n;(3_{CoLD^MjYn&%bkeu}+yE ze8&8e{IdDME9RHw&zT>5!Td$}i{=NfnqQZ{Y<}<+^IP)k<_B+>-<7{+e((+Rd-9v+ z2XC2wDSylS;5+6I<&TKJ?YxVRnSU;xH$Qm6{J#7N z^Mg;CKagKCKlrryxpztT&y4xOXU)&cub3Zv-u$Bc1@nV1nLjPRYJTvV`4#yq<_BLj ze^GwJ{NU^6*W_=QAAHmNhWwWK!MDwC%HJ_R_^$ce@;l}S@0#C{zi)oia%@4k2{<)s7*3A!oCZ0Th^7|l@|6jTv68_x#Xz+i| z=W6gT#Lq?az$@_2GWgA5I_?XP|HJodx8m``3aBr7bD`a z|AUW;`}6rYINx_1fpfl7KbVf2mD`Dizn-n?1$jX@RN1y#yNsdUN`?V&XM`S*UazB zUpGH^)BJn+o8|}KGJo{l(*3+`e(<*W1^K(?2j4S)T7K93;0NZ<%Re+f__6sl`91T4 zpPIie|IGa07v{I*Uz#7hZ+=_;wfVts&F{(|m>>M!{3H1f<_917k>P$$_Tj1gQSoFy zljqI9ls|5M@Cow=@{8sNFPVQYf6DyeGv?>>>HaL6AG~6IN&cMq!57T0$X_%+c-8zx z`OD@9UopQfzixi;hWSnTYvu>vFn?Qq)BNBq^E>jl%n!a}{(=0q`N2Ep_vG)HAAH~Z zbNL762R|~uFaOy5;3wwi-aXwvr{)JgH$N}`!u;S@=9lF6%@2NKep&vl`N8kZugJeQ zKX~p(pFi(a`6J?S-h+>sUzeXZKX}3Xmi!6xgHM{@m0vPH__X<_@@LEsK5Kqoe#QLY z^XA{nUob!TlKF-ANcT_G{NOe7%ko#u558)CRer<#;Opi$q)E^18n+f6V;gel%|D9gfAfR4 z#b10}uRp|}FLMIU_qi9~dw5@S1O9e+UtIdJbe|;o-vPf2&YT7Cmmy~joPGzK?@!Ob z{{ZtU|M;*Teh#n!{++1v6rBEj2Cw|YF#pXMw=VAA=UNpnKmIcQTxAbAZ$Zu_IQx+6 z4acQF3x1891@P~}d~4!f=Zd)3xs9CPMg9pmzfX6Sk>AhAAN|R6Udeqj`uLX~$8uxh z$^Ao~H@}!(x4CiigHM_-Jy$Y6_^f!cpT8S@TM+lYEsA^JTF7C4_A_!0GIBamc= zucV&uK|Pb;6F5gR;$CN2-0R##4)@zJILAE)=eT`v?zh}e59=pi0%w2P;$Hu*xYvJ+ zoPG3XkdbqjkyAVw*2#J*;_-U7sQY&kChe(){iF#phU zTFN=HoZ!8ToHOwMfI0`3-%o%DES#^opB>KY1@M}9QqQw%^25@4R>YHf$k&nc*~r-h|1|J6 zIQ!WHXU-WobNb-SnfSSMUQz$Ve@y?mC?53(FN-Jr;ka|)9Crcv$#Y{#>$Qk{@@3?( z&NleFqd$8Y{1BXV9*M{PIeKNfUdQ6Ge}bPNhxMF+GymN3&y{~+`N1#Ezm$Jve(-DY zr2nkv7M%4AEdNINca|Ug!Tf>z+-bTmqCde$#l4<9IO{2hNB?u$4-=Ljd=fdF?-V%m zr!7CP{29v+UN*lVf7blqbK*YV8aV4&vHTm|KXuCw-aroLy8+JprsXecy*4dB_!e@Q z-vQ@++e3bGk2T*ueHc7JKKX^X-}9H^e$N+l-z5Fy>u(vH^PLrs{nOBTRm5X|2A@OD z_u+MI37q*=%Wo=w+46(eki+~2IP=#me_Q$MmLI%{oafdHocVi}f291b#R)Ex)P!Rm%^)h8*TM!I{5l`5ooAEI;@*a+tph&isz$pDKUP@`LXqhxtd~%s;mL zf%1EnAN&+K%)bC<{-xy?3hDm5vi#uJ$YK5focVW_UsnFTq z<&TTU`3gRP9M)d~Xa1DsHY3e`)!_`^aJbEjaTBmcOq2JIfFLfE?zJo(<0(^T)*Fe6^LI7mxE5ynr0$ zPl7YQWcf$RpR)YmGst0n1)TYFmfu(YyyXX9L=N+p!I@vP{M>t|_veb`2VX@F^Vh+d zzhU`BQ-?jYUd&pt_0XXvyEx)GxBg+roLk{!Lz?pw;`Ay|t zSbp#;@`K+ahxsGF`1JW26_4|Er2H}QIA6iXk;D8VIP0IZ{7dDR zEI;@(a+p60&isny-z$I4@`EoRhxt`-<}X`*;l=cP)hs`F9XZTj184ra%Q>Ujk=-)$&It((|=!`N3C^!~6y~^VclDp!{{q58gx$^S8j6zis&? zENmLGf_In3V#XMW4_kCeY<`N4OP!~707^Y<+OQu$rW z4}O3g<{yJIzi0WmSEuLq#PWlmA&2>WaDG4c7Wv8dl_vDL`~dmn_vY8$oYwPTe(;fB z8NPlcIn}qM|2!(5oGNmUNV2>4^w~2{NOX@7ysy4 zIk~d=!7Jw9zA??8Ge7u(`SZV?`itfVubRJik^0N#2d|sIqkmpCKlp}ta=&pOHj(p& z#}*W|4>yrRzJ(lqAFV6y->=*k_wQGpA?Ne)a|q|+aj!O1&xLs0+rh7p!+P$(5AprD zv0qL5n)HFZ0M2?Q#G{^$>M4pxJ;6)JVLj90-k%w9@6WP$GA{r7$C`LDF8M0_WWD0g zuW7(1Uo-za-Tt|C^Mh}QCw=4Zd$tMAzO^jBrM_)he()XSuy1W}{`}-2IKSV0EAD+B zhz9mw48IzchYi#Pa%gt2RIGR`Ob>_yei^8 zuTA9q0QUbjIP2dLf8lXn$v(-c4{h=2L+}oAxLya~%s&)=LHRf8&yjfK2k#+={W$?= ze=fl}?v?lp8n>u<^~Gb{;5W$OxOv^j$-4g_`dJ6(xZB|DPY0a)_F6pZY^%;2@u)NS z06AZT`*Z%+9t(W@^8L94&U)J5tbbQL>bX=s9r0JHpTWDxVc*V>!~5zSIpkOHd0+M6 zlV6)3_tlO0!EeR=9vdKs_1qzcJg3+5=uh0YBjT@Ae}a#i-&8-x%nzOy_c{yUT(1es z?<&7&`N2!b;d-?!r&N5lopM{26MP3b+=sW|tn(h6`*8M+Pw(4`c=S2;+njjxIrsu{ zIIjkBxQ=VcA#cLxe%pjk-ZDS-+m`vkx5a&ZcaXz++Q=c_gU@=p@X7bx*ZLl~FMcTQ zbsmFreS4N)R?dm#2R}m&*DH6K?uXYu{ty4Vj}dWyy_?DK%Nc%MJee2kUlou2R#*KE z@z`&{*O9~hybaF$9n0TVe%tbccaX#UE;#e|Ex)Jy1IrJ7gdFByfHVKn@(b^md-io@ z`N6M|!~8pNzMkg)^W%a%ekJR|=ava@)>9OZ^|~oO`{lVw@mR0mQ^;XGWpL)tTK>G| zTe1A$^T=U-4V?Kamfui*-SUGski-0SaOQ7Ven!!0=L8HmSzI8{A&;!#iV2jsAxk^k~o;Nw?PC!f=b;(jkpikBaK z-dFt$|2o5;{*83pq<-G>GvZ18A7o;CR7>*hD!KP_~_{NPRT7p=~g5&-{7$UGswbrF znAe@<2haUxx?Y}N5chSQ5chQ~W#p8>S?3BkKX0sy$G9E!XH`7L4ZemP-p?&?=5JYk zPx;%HAH0nm=I?{^{y!7<`~O_r@Bh)?8lIPzJ)WDTk9>A~a%1Aje933UJ-;IE`RmB% zeY=5t@)msFw_EVZx6LnpKwAHf`N7-b$$sPOMF*U(*L#*NY+$U@B$=A(~_rDwF2XBh|{<#2W|F10nM*Znqe()RQus;vr%+K}He#U*( zm`wNoh#RyS$s&(4 zCm_ED{u$tF;6H*oH^hD1rnrxLfSlJM{}`P8>1X6$XXH=(-mpJh-wOCK>R$%`G4OTq zL{3U%r4*Spn|7nc74}JoE4E{6VlQ+Y8ai7eIdq3yJy`MYC`9$o)eefT~ zxThKUXBqh;Z%*rszKz|aXM0pU`WAdvJUQ1qUv+TKcMqJu4?yt`hW+_+%xen#)!_5u zNu7LdSrAX^B(K8f^UN}Q@|yYa9KK?H@Va=?2fn{M2Isua!TIMH_A~e`IQ#Gb{u=Zr zuX7*kc>ZhYI*yCSItE`5_xpJp{O7Q*I^aBa$KdqO!0GqJeI2jGeH{nzxn6hh$?wgN z^?EQrc211E2lBg-<>(e>-hU?#}$+_u_uOa)11EKS#v9pLzJKXB<9x z!TgGzdne2fUKIB_OUPm0rjSEkhR=Ft;geU)kNrGne(-s5ud@cueYIlwb@icc`N12= z;l65t^B(AcbKE`gLC*pp7PsRQGj{Qlxul(Fig0s$&c+{DD zZF=se#G}sOGst0`2jJ|_DLBVH6OVCkH14^0j2rwCIUIL%@br9(;2d{SJjR_arSmO` z$GE|#k;8G9z&YPlaE{v$k8$f7cTGIT4ZeXKj@tp}xJTd|_gFl}?P=Vec#IqT6geFC z7M$ab{OPd&9CuVa#?60F+UGIx7&rJhayV`ooZ~KnbKE8I7`LWztKu&1B$!8z`vc+6{F zXXw7msm+H<80}@4-24{?CVf;JD-BG4A{ar+qGn z$GE|Z$l~jH}<4%ajyy_aaDE>aMsxXXPs-}QD;YWu8Y4? zbp~%DhjpHSvz`lZ)^iKadIsWA&$;Tk6Mv=Z3I2c_)^q)r!}a3(+1bAua@Mm1&i6rM z_fPxl;BQVosM6OyI6oijfuG`i*3w@O^EbdZz}y_ z`FtEcdBOa6KA$i@cv0M++tq&wBRYlXuNuPnRjTZ+`Ft@fWSmBk)&YpX@xOfr!((uM&U_9||3WG4J~MwCoa@!j;GGPg0s#e@ff!{n!fHF zi^sUZC*Ll8@ksU|f1Yp_ocVQduI~;w|GbZ}mksmz{7@42^FAf+=e;hT%qvOU{JC^q ztK!ML$XoD}`#<*Q7JTv@aX*ij;CxOSeR(>sq#nK=jfp4qke4(3*$jUkK3~5U;FB+! zAFs1Z<_E8eC-dd&?>ac|?JaQr{KK|*?6>$Faz{M&Tku`v@aG?jZ$I289Ct?C_eojY z_sIrwekYB5wo!J$S${`7>aXaW?ukeJ!Mn)e?>l`2&irG`UsQh2@`Ilshxr3==HFR< zP5JkhA3XOC!#;mMp8v`G?@lKeGJM4^8jwW6KYIf*j_bgERla@=MCUwEWQ$zpMOt%MZSY z9Of^BGrwl}r^;Wk{NSs|Vg5Qe^EWL2M)^(458gr!^LN0R-?scw{W&$emLGf%Im|x* zXa1q(my~~G`N4b0Vg4C7^Up1RUilZ6AN&eA%)bF={;lQLl|Qij;P=R3{>bRl=WA3v z&R0wMW8!hXf{!DI`9*NnKWX`G<(Di!_%w2uKMT(Misc_Df6nrQFCd5cRdD7nTmGr? zYnC6pjvVH%fir*I^83o)u>9bg$YK6AIP-TbKR2DezO*ercn3Mm-v?*@f#nyJe`xu^ zkCDUtQ*h>=S$8aOTfieoy%o%MU(}9Of^9Grwy2m&#wZ{NO9dVSWRg z`D>Pcul#k(58gx$^S8j6zis*X4^Pk6j^zj6MGo`3;LP8*{AuMMSbp#$zr2FjN{NOqL`^aC_H%>;xBR}|< z`SY(&U&r(22QQf4JWcDFFhBUD`Q2Yn{gU~?r_C?^aO%&PAAHvQi8nnq@bRl+e(*)} zr~f3K?~?h!m(3s5KB<`>d`CQao#pp~_A~fV2JeA$-=2bhD!y+!`L1c7eB9{_UIu4= z1)TXy;>o_^_Xn%u$-W|AfzR*v)!~z`njhcqYnUH=O+1W@9dxad%>l&Qj4;{%rz0W7We*yP!IfE}{@J0sT%HZ7$ev-lO z#l1fd;@+S9yAS94W9V}Uoa?dx-h*Eg_iUxZp{x~ec|bPR=~L~o8at!N8InvJ#oK3 z58(6uIfPGsWPUq-e#ZRZJ#oL6&cJWdsXuG!1NhIP|CRA!f8Gke27U~G9sC5m3;r|U zJ@5;h>pu7yc<+^I5x(C}#C^XN-*Z?$_w$ap=d{H=XXd?zIX{p37r=iVbymeae_7n~ zJIMJpLquS&=D{X8M=`?&<4`*sRG`Ly}5Z)eO8UKaQL zJO|GGya~>}?TdTg4#d50*T{Jz)@6{9bC;1*eD9~%u?c>O{G$whBkuLzihKRJ7l-5W zJQl$D`Z5d7bGj(*<1UH&xZB9#>qQ%!>(a}}Kgr0yM9weZJPyD)ukndtA9%h>;y$k_ zai3QmIh zdxIR-KLBTc@~?h+zGZPAcUIiT9U$kIQ2zt?uYi}{HyziXE2hN#xnkPAK;Vcio-r6Jnq{O@g$#oRNU|3ad6(lbKq}8 z|6Aa1O-p$89MT2@3%2=-*0vCqz~NB z*BLoC895Kg;k?E_U|2uTX&IdJT@d&B7sb8)E#&Z=?tpV%#~Jy(jQk7a{07$L7M%0S zPY&n%CalY(xX-I3?(GiFNdp#@SUe7vm-i&!|gR>8Z;C}%BRNTis6ZdgPOHbFI z2WKD3;+{V%?)i(z`4iMx2j{%Dzz6U<;y&)4xR2XM4%hbvob$?m(9`>NT-@_Z;>o`K z3)EQw=e$SI0O!1B!QTphQQYUX zB<}OtMh@rI2Isu?!RhzKecWqtANL+P?}T%m|KMRCINurYcZNSN?&B_q`?xLSu>Ngu z&i4SEeqY?jy%zUz?~(I5)SsWqm@oK0fj=+q<1UE%xGm(c{%!E*<_k{0FYe=Bi~G3u z$aw?m&woh9e8ImF{=B%4yCCl4wvfa6x51yAFZdr}+;ec|_j(HA$$j+& z$e#x1K3@Xo=NNTyA9q#U$L%7A^&fz<59i=lsB-|$oUsoZuH&D>pB48yE8kGqAOZ)W}AobM_4x5B>? z_i_8;KJLVaKVAPM_;d3Ge{R0wKJL1>kGqAOZ$bTg;Lpt$d<*`SxR2Wx_i-maB4fVb zobMv|Ut!!;@V@}x0B3)?;GEa?M-JvXM{dI9>=>HA;GC0Rw0e>s}mU!~H zMDqE-xjy*V5|7Uff^VB&oOxDGZpZxK`{uXhADAEf(EN4zN9G4VHNPzX%>3XN=8ww1 zG(ULX{F?l0^MlWPRJty{56j}d59h`GbD;%s|6FJ_BfpW6za#FSZ}c*9PBLxYdT-s<_F&q_xiiwAB5-mvDZJn-}2(V-xkGvKTMa?9AC#7abL#@e9m_c zKKZ=)9i5{E^Mfyndmn1Z;kv9Khr9uw^{l}sUpK#}IycM@-W2ybPmsfUPLV@?0iX3; z!Y98nzppy`<_EtP_d0h!_UUuI@rI}OLsQ)M!xntjxecFu$NY}!Z<`-{SKRC0M-KaW zfE@B;_^hV~pZvu9p6Wa`Klqur*E#ZWPxpC8+|ONG-21!-pLKTOlkc0~SN#X(2R{_| z`ZquR>HW|W_d0jrvz|75@?G;gsIN$sK9PeED{knbp_t@h)uJb(a>%M0)NnX{v z&I96J=V9oXvjRQ&i0NY}%zp^Z=iW1M zzwexjd%v!rXJ4+NC%-X$JfC+>AN*F_`!)CKd|#fkF77!Opl6;%=*gE%f1V$crKahF zFN=H575MNxS%nXI8+zthhn~D+`ijo;4bunT6!)Ba;4i@3_PwT^8{l6Lz6IU}zZLiQEAGVo_2b${7jwe%Y9IVd@cvTYOra;QgLA(p z;M5O&OmCldf}bUL^|c9~1h3Ba)?Xy}U4k!uVsD>zg7<$?p=W&t#JyjG;@+<|eE5Fm zUczTT;d2Y04@Q5-J~_|ndB(*(&#HKKU2uLjz`5Te@ENRo3jSK~3-FHwzXtz!@LTW? z1n;XC^`8PC1pg%PDtH}y3jAf@v)~^Nehoeg{s{ga;Pp=_a!!LUfWHQOEx|Vud>{OE z@EQBmV%<04Jedc7H|X05ewpBR;LKloU9m3rI||PE+!Ocv*S@&lzs}*qIlN5xTqS(E z(DOcW3qARr=_hr6zc+pG2XVi@)aQ%(R8ao~@Hy}`aQ5pMoab=q^@ac2!DkS>AAAP< z1Hc>LypG!7?+*PI_@{z*!FhcRep-=}br?(V4mi)r18_c9-zE6irx)vfI1=pI!8e`x*x4zRtv- z+n3IPbMfc)C4L1x^It-PHGXIQ6efq>RfAX@p*KHU4_fekuh7%~2E3a~p3d#y=l9khB={9L`!(nPO&@$o+;g_RxOdJqanIR-o_RK) zC*L&vwsLNnKKQn{=Uo4iVtzPRov+NfKmTlq`*X{Qc;?T!y$0{#`S~v4f1mKLwThhd zp9AM}%PKha>)_vpJZIv*-*a)_@9bH^8sJ=`*}m ziO2KaozC+$@$CA|uE*dV`0($T+=G7^>QHYN>yod4 zH=(}==lco$-%$8GKtBrpS=iS#IQM%m9{U~op!_^}5Rd%^@B7ALUG8@noa@%by)X0P z-j^Nt(0^Y%a$c%02jY=4_;JGLGQn@mzoa^J%|G~k!sih_Pru)!*K4J3%IoImf4_L_ zD}L^H0D7MPgQl-4=aA`x4~zTxKMKyj(>DSBrI@QJ@hm6zH7)M@nuDJC>(GMw+&w*F|X_23NEWy{od7pg*{}JRbzp3zN{xR^k=8~reO$Yot;d2E3t>72n z-v)jI{$}ud@D1?(Z!U6ffe(Xkf{%iK7kC|f8@vhr{opO|e-7RO|32^|@E-)f0RNZZ zH{d@2ehVIVV;K$-#|7&p8q4KSHeSF?V#C_hD#WR1_;TW9f z-d)1~KHk9d^N#0 z68sLFeXRboVqNB$2Io94fK$ID?(^If_xi6w&pNlDCtovt%x&BB!PmvT{(Io8!vXyH z+;s?l@)PKp^AvjWGt-~ydOSCM@C$Lze+eJvxq=UQ7kcKog`WJ*^mod6Z~EX5;+}K- z+k2l66XJe89ExW?JO}O*J`V|>#%3|kypC2Ad?Uec#C@K-;y%y!(6gQo(33x!KF*EO zcjWmq|4bjePu%NV7WbU}@ZmfRLC-wH(34k8KcwG>JYxFbRdLTb3LoaF!H0YTdghsg zo_xym4dt9ReefA^&p8Vp=9z;Jc>{XpS%98=(e(Suxn%m_O>xh;2EK&*$PGBpw?}ZE z+qLg3t{2{yTj0Eowi0~!y9yt!J0kA$Srzx|XbgJRZ5(>?3Dd{m=L(e?((33YzALr+S>4Ptdd(L%nf9~pt`?-1vAD*j2TY10SXIR{QR>iYCoQKT> z-%s$q@6Oltc_@qfJPbn5dJaKPK5Y6pKP#pWJ|gaQuEK|XAB7M3IP}aj0X_Mo>EryI zGJWuAanCseALf~b5BWUw%+r9Le8Kc3{lf7@(+6J?_nb}mFwZi4$Xn1e&l>dPZPU*x z=ep^Gcf>vC2{_Nyk?-k!zKw(P{9FL%d3yxT>*y-M$NqWmbtlCAI+_&s>u3gg)@>Gg z@;TGT`B^u8@Og2sX9GU$?*e?to6s}QGW6strjPS;)%3wz;+}Iy+|R>ZaX%05;KOru zdAsNr`@03s_vIeJsUQE|!iTTFw!wLyJq4#v-}m+QnF8m0Zi;&yw#2;-M+yCLLVquw z)t~R*4u5}q|KggGQ`o3u2PX2%Re#_#%-%;@_|L0-d zW$^bz{*{FPYQldHKFoQM@VQL*4E>AV`x+MaeJzRmdD0a3^JEozUXLy4$=6IDpO0;u zKKQ!0U#Hvf;kmH`AM$a>ppU1`ryanp7R1e%yS7J@*C)xrwcv#t?7@I z^Un0a@5Mdmzz-DH9nXz=f^UNJ`nmz<+?Ic^_Z;?%`y95#eGb>feGWIFXMMJyC*L-G z%-fFXgYSxa-Ok{{KAyve{0e&JxrUzn#`InFw`=;~x8k02U^lP7*K<(Z>sf)Gc}Aco zue!eS^jIy8x?a2{?m4H${T!YV_c=L$4?lNw2G02`{ZQ{Y-vFn651iMta;g_gfS9{Vu|XdA7y9zdPdI-+k!W#{=le4^1D}#gXZQAB%f``}c}EFn{@9 z6`bGa9r=-*dwr_nUY{HBY+d?4CV2H<7wb|#1I~HaPw=7r!iW8x0UyEl?;7IXuLW`M zR}*^nWf^+%71KvwR!twgCGP!NgAdQKHhjo8pl6;<=*hQC|Df}2+w{SA#69OeIO}`~ z&bhh;r~V%NW$0JwM~nW_r$50b!0CT1?(=*i?(xijn9!GgJkRO+MR7mJmc;!WTY;YQ zunIkS%k=SjZO!z-+u}Ya9q`woUmND%(Hw4?fADSi48!LEoby)xiK4&ng#HeJv%gab z-T;3`_$-5Sep=u!g??e!;at`a_K8N$-K36UH zus$7d-pBh6i*@-q=Sgv2cS_vXT^9FwUJ>_sUW1-<+lHQe-Slz)?U+9JhPco3CVY4f zZ^4Ir7kcK|gPwff^p%(A_qzkr2R{_|oJa6so@4lspFz(&=g^a1n7;HOdCp7I2fq^c zoR8oy$MrJ&Q^j0yo)^S@P8P*|PL`o({uSuSS4|)D&@z4SHF4k9wYbm!jkwQ$>8FeR z^7*^edeHN9qQ1N&znB#&@g@Q1#z#>GC0qfEpXQ1Qr!1-CGPv` zLeKoS(39VpKIZn`^uZs*eP2UAQ}mH@J1*{hoDlau&clawSW5Ub6Fz(5UblU5uiFvy ztj{s@4VqAeZS-2d>)tr{}FtDWC5J>Z~)Hp^B$aYc=5Bve6r31KUeU#=Kp+pppU(! z;M6aJQ-3G!bAB)Gb3Sm~+rI+N*Y6|Z**s+B8G4uezEc&?=7D?^KJS9(#+vywQ>pYR*)8O3K;4eM9?uzO;Bp&q)K5qKx&i zxr#ZQ70>4CJhyy0h;!muzsMKi^FHutga04oJOO8YZopp&pOMp|p8UC_De(7&z6t&k z@GWt#&$hVNr~a$?x>+4~ADI`=>Oj5-J?|q+(33Y!ANS2=(+6J>_xsC(xbN#x-1jy2 zYehYIKdOso`^|EW>;5}0p6!=>0X}?vTK~6&Kj*ds&UN?2W8KYcktbgV;<0YRb+do%|K5{-Jo)Mq&( z?U;Y?J@|009>M9~_v=L;v-(stKV|XAAACSOs}J*!fYZNf{>REcYW~5;;6wj;aQZKp ze_i<(%|Cb(KJ;G&r+>@*%bKe-^AElbAJ%^loc{afKP~?Q^ACOmANpT_)Bn=^&*gt* z{=skH!}_#;qqr`3F71MI-Bat5+*navy59sKu29fHQ;U&4pi zOZm5Y*Kv3QFxw#TQgb&v({fA=RQ9Pf|fOFkC`1j*^sUaSDwzckpc;pG* zgb(x7f4j)T*CWf|?}wbL;Cx-P3I6`jPyEN+Kg-G23zOnmPVyP(vqypW{Ts8;lh2tx zUN6*5AADXsyC3~g9_?u(8}MPC1^AFRp=X|D=*d@1uaB{mR!twgCGI(Qz&`+WJ{I@a zK_}w=I_L^Me4lOLvY3Yo-hUWM@JfPL!3W{949?$o(N6HK1U~@pqK}8-UWX%buR|9; z{2b0b_$!gW^q-3Qu>OPK{QP+}!Kc7~71#AFIO|gf=XKf=_x-Mk`+j%f!@5oXPO+~q zN1n9=-v)mN)aOXt^BjwNp3+sZ?%&2dkAc5C{AUwdbm0O$OlgY){j1gHKHocg}sE%K1}gVU!5PW^a-PlD5D0lbF&u7mUUO`U-AK6?Sq z-zRnp&hN9=ey`Xs*Ifjs{|Y$$JK*#`2j_kH8l3BvuY2bi6VL8OnpeJ85{q);Dy*-xNrVqX@?)Rw;aMtY{{Pno5 zFTwfzb0r?nIlCX8=eZV-=bYeO(|0Fx{jKSP--~DY`CRk}&OGJcFZ#~cO@j$u5s&;2 z$}=J!`GeQs!#v~Q%rj;FLm!s!ciQ}e&%%fPb#VGGnE$x^7tKF-6F&4`0jGc4{Oj^x zH~-)p@S*<}IQ_THe?|T~<{x|yKJ-5Tr~i@p54>|;|6}tHeq#FWOLG0G>4RUGzN7q? zrVoBC?(^IQXZ}0$kDT}BAN;}ek@L~?!OMDBiTOWN{(kY8|KNk-o_`pe`A5t@a#qbh z_^9b4XU+7%Crp2>{F9~+J}vI~XTh1jZvK&T-u#0%OdmNHOdq^y`m)Z?Wzz>=75DsW z;LN{n{*kj|{=qj)A2~NoAAHC3HRazmeeiv8&wmR3COqGsgL7Y(;xV^%t$QUNa~u2y zK0G%bz`1VezZUlqu3Hw5bz54uUp&?gJ_sMKI}9JbZmqzFd=z><57eM1A2WSC4~&~W z_=I@Y7ryRZ2WK6&z+Z#sgdOpy&!z6CyW&xw;0N$weY)U$4!Hwoo_q0F_gd>dh{w9Y zOE-CcLm$r@ed3`H-Y@QRI|$A^6>vU>j3)TFc;t!ajS2C{6MPyztlKO&^URz7kj}}5 z`3GNw5B;0q^j|gqarw8*KX@BH^zVSvf7|@)^4~H4;Ct|){{cAt56yo?{zv8?`~*Jq zKLe-#h55&Mdujf`uS_53?X~HH-N zziIxFbJ_fZub4h^u9`l0+w}3gv2Oa{8{(dS3!M3P%s+DOnt$*;(?`yI(+58?eLQa* zn?CrdxaYqHe-oZVy5QW`op@Xq@w{;_9@jlYp{m{Yv4bIzHfp5Exez$2hR70kHPu=@U6Jl?M~e5R@IxE zSx(k}R@{B&#NDS2AN})b1J=R$`MQpHR)2nuZbLk)Klv_v`1!g6anE@u?m6$ovvv90 zdoP}?OJ4fpVovzn+b5ps$;+niJo)dluYS`99}v&#uTg!fp8)6g-DbequXAy)!-crl zVgA46`*M9l-1S@HSx%MeY0d-iXYwTcFB1O!f0F0P{Kqi=E8zV7IXB?^y+C*3zOQ?6 z-`DtU(O>p`Lfq$J8hZA9272;Y(^vE5N^_f7UzaxVYz>5ciz(@cAI*TuAsVCVY0` z!<-l3tmgyxB<`n6clo|Ne^cD^uZd^#{2|EynD8n6_uSuo#>6up_UkOc`~OGp`cH^^ z{z-9PcL_eszYflN_WyaY?gwJOlL>wU&g*ydzIUB#;-0f9?)TqiaX)Wc&_8otK~LT` z{o#i{y-k(YO&`1??&sJ6IOpvQ{O_S|_u}5K2XU`M<$o6S=bS8nvoCAn?%x)7|Ko(u zIXL%K{$IWO*e~w>Q{q|O_*^$F?$32I;#q&s^QE3PrU4&5*R6>^Z@=Q6=M+BN*CjZg zqZS^D`hOJqxDU=bKLh9e=oXxRx9$=A)$p(UMX@fw?>q)h{qX-T^vpA!;B(;2vncM@ z-IBOpcPr5I`dWpayk+{k56`c=HPZ)gi~DtV4gMO`ZQ?JBI(#(v9ysgMea!VfKeysO zKa>A|Z~c_G>zBl{{G7LwgwJWhXW;)7`(pkYIOlB+oc&!D_x-lSJ^wL$IEUxpd|mkf z&i#)5Rgs_iG4N^hYXzM8wFF-Wr_UZZ=j05Wb8-(pgFKZ|{!N9fj~@d*3I1B}2KdK< zx4>t?cfmgny!zLQby-J8{2%-HZGEtK3)gh4-&Paj)Bu zxYunKK5xK&SHZd8GjTu9&&B;bzk;6U_BHh6H>R(?DnHM=rVoBA?&tX(eE9nG9zNuy z7v%NK_QgDX;@Q5)%cid@XTRx#4~TotIq)*--%Ri}IIp|G7Z&sIx$v0-XMdLy{0#h! z@EQK=h5tVWp9lXZ;LG3(;BD|G_-Z-#_qlC}``q3n^xcHM^0q~O&hx~Ja-Q`)yQ8fB zYCdn1;#uFxr%iu){6z5NYsU1!=S;u!X}N#h^uZgZ-+O(oUod^}CDV`2=lZ7UgRhvr z{;9cs)%3yFOg|uf+w{RZrf+^q?!RIB;3wkQb@6$ahc5W%gZIC<=;IfF*T9#-m%zUq zd_~;Pu~l(D$J)^I99V~*ykq)!pKZhR!8gVIeAt2y&#P_tkncgyJp0g-ADDjkRe8S- zO&|P7+;g6ReV0{p;e=+uT1>OShiu-K zC+_EYUEI&}4t%~8KHCYOorKQ~e7+1mkKkVgKKypYdGgHjEjZ7O8Sqv3EGKw7!M79q z0G!Xym*BjA&Axq}-|IXl?sZ-lkNe%eexA1@p7lMu-v!?={i=Rma?|v|ccFjgT!Nnb z5PHt%5%lE8rjPFnoR~iNskqPW1$>z252*VH@`u5O<%3c;@p)yidNK@aZIc4&lQ* zrwO04gwG9pz83ZDCVXxaJ_GMq^o4mU;$EK-aj#D&q2Ea8FU7qtL+_O5iFugT{dibB z<{|i)c;>_JXH9_feaks;o=Z(|o`*-^ZPa;MKg{FzwHfg&C$GCY^t`_2p(k&cKF)y! z(+6J^&+5SMgD=5{d7AJcUxl7|TF{fPnLf^ew&{bfi+j#%ai6yvai6zG_r^>()0^oWq=-LGh^PiJpUp#G{_UhfQCTzGC{|Bc_jYwQBm{ zbK=>4`Fwk0KH=XrpWwHq5C1#U2ajLk=Jo8;FL(2LPKswad7iI;^M1E2?*2Oo|0DRY zUuWXpuXAzl*M;e$K9{Bser5Wo&$a1;_rGf~S9~3@B_27$e_K3q2H!D#`0tuN_@TJh z^GMwLbuaGy8vUC^e)ell-2Lm~?!OEl_N!07EF)W&=U!dh{pZEqe;+>Ig!@tH-Flz@ zed1Z2d0!ZSp6C1^^yEXPk8^(5^ua6Q*?#$)FbB>$uZnveTH;=ZE%>m`qx#` z{ny0Z{}MjysB`r_de?bW-0M6JJ?l9EJ^7^Rqn=Zy4?ZpKbzTK$o%hAP4hQ01hrUX2 zUGQ@$b#Q*ZqAl+J>*DTzneZ8V&thG^&p!js-*?&p=lA0d!I`u2vcjKy2An>N;QYK? z2b_5h!Rga@d9g10vIPFkn73VVujih)*YgxUT=z~qJBN7=+>86%mPYcNnV$36C!Xoa z%chU{>^FVz0db$(VQ{`~swMb@xbJIH-1jvDJ@d~(Pd;b*(^uusfpyadpBMLiHNn~6 z1MnZh>;3Y36?4MZg9G9|4};=94|DKgJ?FtWhpP$yR>FS|K0F^T!1=kUn}mNi;XnM| zMIH2r`LqEwaDM)33Va3ioCoKA7r{HY?oPnJ3O-%%Z-Ku0iX!Km!Dq$2UvuK#uT}W) z^O^00&w9e=0zT|ZsaoV@Jx9PKPz}%>niaPuh_<^`z*N5WXm&3o;+oucu3iwY> z^seWWxYu(Qde&_Ydh)vKRkwN9i#No*o;%`Rhh1^6L;3F)b>KNU2>#Qk!-cr}Uy8f` z9elc)scf!V|Dag+C*a=}cmH*9_dgN$IX@NmzFa`h`d>m%er5Wy?vK}|4}K%=ed)r7 z*WE3A$RD6*o=51(OCMUy=TojZ=@ZZDKwcL2oI~J0i@q#@vtMJAMIV0-`f2dDfX{<- z9xlK+hh6ckzuEV?YuWHT`MMR){yq`;%!d_q*m&~aO+HnZO0(kG-xVT16Zd&L7x#JV zif46W{<#k?>cILm#C<*&#C<-S(6hhG(37v2KIU-M^ub%=-uE^5a1Pt>A>V+Wc{ZUZ z-*Ua?bKCXeJK~=60Q?wpbqfCT;CJBc%h;=mem&Diai52}xX;5Gd^oq4;@$h=?Pmp*at%dEJs zJ16ezE{XeGU4e5>20p5opI^jWO@mWEC+_*{;+}s2`e*tAJ^7O9V}6>Z556q^ynexl z^Ro&c@;3C$vkpCZ$Mu?@4cCirihIs&aqsVrxc7H>y66|@YD_%qOLjjU)O~YYJnpl> z524TQr_<6OiN}35_`s`+xy|%L(hrJHg%1rO;r6uk@YvS&+ z1t0Ef_+tux?yD;9b2}>Tb2|<_`#u3Z`K0M%KBr6{d|KS+VFo^&&sq48&qL2V4d}@i zT(9|DbiMeJxaZsfKgGPAfwTStuPyq*e$~Xi?_=WL_g(n#yge58{+@_?e}_Ld&*SS> z#C_dy@vIKazXQ(wUV{HB>eDxyuj@I>;+}I5diHS$dh%h@$GlZcAACgI`&)$%=WP@| z})_($e@=4RjoJ^TM__Vn9Wd=T+lUewX&qL2V4d}@i zTp#C{>*E{~_ngb(K0hns-p4!maDL7{q4zwTi@Q%(+~;9sF89ee=V49U=d&&Decynd zb=!oVe9QFF-)++e-x2qE?!t%t-GdMLA@t011U>n&>($>A*NdNud(KPne~atu7W@pn z^od1Z{vG%nIQv!kq(aa8#k9E3+l;u+$sK$+Z>>-6J#TB`?z1KC^Y$R_bM+|hb5*YA z>t=fPrC&VLlMk3a=4a6K!H2}XU&HX>{8ZpWJ_V z9sC^iITZJtN8+CI6ngge40`f&)5jcMm_GQWxcB`EKAgjA_>kX1&pda~li#~ubNJwT z@kepb+4s8M=SErF``8lCd^kUw;@+1naqr8mxX;g>xUXBDFXn{vzYNa#*#-ain4b%A z&v_~CId7n6{kzbU->({QA5;*}j;kUp(6v`GD&+CxfmR z9}@SR6>;z5h`9H03qG8mLvZ~{;HU32TqOK26aK58R@5Q;cIc&k&q+%>s{?t*^!?Ir zm_GQnxbJsI-1j@#DCYJzF^99@`jv-I_uBwxeYU|b;BzMKdCtW>&%kHod0amz?)ph_ zzh0)q{d$>&p7S;bJ$c>qm--&|yy=5C#C;AI;KS=;5kBP0&@;~p^yI6iFTW^%Bdlfm z;A`TZa~+(0+yrOecfhGX7xzA1h=&j!tcm4He=K3r@bKWI*>9cz42NJxJ;I#x_0OxhFChqg!7Wa9+6!*GaiF+No z&~qMcp(npHea!8>>4QIr`DAItibRgwIhzf1J`U^{&IQxYywfdiLua zdh!d`>pAVx_2O6J-p9dzT-2ZSSqA5G^)dJ*&avwRpZX`g`!y}@{n`-Ea?<}0oZtVt z7WeD=M%?Rs2R-X~4?X#V>EpTm(e%Mf&7z+C9Oj_7&+U-7*P#v{_T>PaeR%-?9rR`B z^NKv=dkKCF{#)=VeSYrab?y`QIuAh4dJaNQK4khhCx=ZRydv)NTm@(T$pl{(_r9!% zdtXlA!};uj^L@gBFX&yjL2<8J1$x$J1bXtS>0=H@O&`1_?sc0I_c~0AdmY;F;e6hJ zb3Uuf#T@=F=4v{@uM+$Yoc*nRVedMRiF=(Vp=Uj(peLU;eazvE>4VRTd!6gx%->A# z3-D*=4V*sJFX~-~QE{)sIP~1_1oY&SrjPwjnLhZmxYuD8ocR|Md{5lxb6?!&^Dd#k zPv|RO+`Dcg;$F8J^sLVq^yK5FkJqykrVlG1z-n(vXaj)A3^sLV&^yFKnpH+XiO&@$m-0OA#&V3yx_*sHqCiqQ)-zE5C zf|tLdxbB#9Fv0f|{3O9I6Z|&8OJAADli*w8{=B^{?(?t*J^Q{7J^6v@+nR?%(+58i z_j$NBpQf&h8}kX?-|Btc4T$@7cP8$2I2ZRiTtUzMUPDiQWBQo?uIYo{ihCXAzN)x> zGyj(AP#2H$A^6}|7kb{Whs1qfBhWK{6?*bf(?|ZA>4T4n`@W{Yc^%Dy^ZlRs1YZRI z1KbCf!Rg-ur~i6_Z-UeROgzr*74_v@Jo*y+=xciS1!vth*7E$Bo_sgK9}|4wYkT{QB>0rLU#HXJUbi{uS)V%eunygP*1*^;?M0%d=+};Z$VGKX8P!R+w{TL#eHAZZ|I$KRNQlp zL(e=D(34M^{z3JhGJWuAanIR-&(m`+Tja^t27Ji3p=X{Q=*f3YKl>56|DNfC?~8lR z8}sRCPP*n3{0=^R&L8~7qAyv_L-`DeXMG_bHvOjb71IZ=n!c_5j+#FBn0U5d=A1E~ zhSr@mpWut8e~^C3^udozUzh&a^ubTXJ?H2*74_tt)Wm(xC!pt?OhQjSW%`clIc@sj zGvYo!v+!ZgIrxw_pl6;1=*bsNALql8>4P`LJ!c1;_lsNjGv^)r$seI-&eD3`ubA_? zzQ5lm9{1&A%|qGr!TZHM|0;Z#rv)GKb?BM113meM>7$;TrVqX)?m3UZS?ALPzX#{@ zPwAiL_00Uq`xAU9!I#CKyI*IUe)6>1RzJyk+`H>DNpj{J`|%(jS^W zc-Qnb>2FOReE6H6-EUR;ig@fd_^jzG($ASb_^o)>N8Vo^6MUpo%rmcxns}TKb*(!l z9yx;_e@o%R_vP-z{e8j*aeuuz`R3fm^;6=mUlos>?d-65^3@WLoWa}TUZ3G_eYP)$ zy6;rP!zXxE+;j;>#r|0KOwJ-RPk8M1g|6J>ii%0(8lj5GgZa$l; z=e+p@Ur6{g&F55kmdz*lYQm>uJ{{%RFrVOC37_$QR?H{gA6^iD?i^N~7sa!>vChlz z`J)%)J<0xa9X{DPcB%b#;6uI%A6}=|=CiH+-k4AD+l0^5xA)%fN`jw>$8{9%SD%Z= z`~<&*5A#2oPrR>Q+RXEWPw=w1&*8AR_oV_K_GJ`4?92Ig6xRjy7vkREYw;`(eb&Fb z@X7i(t=C^2@z_`JO>y7X9(B?tDJbZ%BiM!8&`P|88(R_k86Fyt!^B|vX^9jD2@HsZ0(nscXJ~5x*X9=Gx^C`>c z+I)g{6Fv{-Ga#Qw^9kPfeR*HJ&V%A{oes%oNId!#ypr&#nNLMNW9AclBH=S*K2`b5 znosb0!e`NZYVuh!pWw?0pEdItmrvV#f_D-=+vYPVpB?iFzL)U1H=k+wJeW`L()ai7 z`@+8{_;0=-pXKa7uM+$*!8d-Ox6fgMAN^pV=X2fIZo#|AvmoxzZ;Rso{I(6BKZegq z!sj&Ma}OWp9R8s^r{}4Nd!D*@cHJ@0YQm?L@Y#b8^IRl+E)zZj|FWnv^Nfl6zQ)CU zUkmVIo-6U}Jjvb~*wWvPy%x{T6Y?9=$Io|kO&`4U!$p4noW*2XZ@ZSgn{ z$Mt#3b@4b4gYP8#cN6{(;@Lc~Zi9QpzWx+*J0ZS;Bkv^qHxm9g;-0hguZzC?Ip(A$?)k^Wy$%cTxra|X;j^Cb zIfM`Ud!6vPN%#!z7yDwKadF?*gt+f(5kAb*N%(9ed`{rQJl%xPZNg{hM~i(i&xE+| zYf{|zH7oAt+nl(cZ%YaPX2SnS+~@5&;d7Jlxfl2A;z8W6i-CWW*T?HHDDHJ=hLd!BJ|pOa;A zpOY1FpOaP7$2_!5AN=emihBN8HgNhn{>g&B@P$F2{C>Ef&Uu!HulI+=vpnQg=(D#B z>iPe?GzvX=&GfT+-7#kR;N#+1-S~48JMdwiUHFh6K+imf(32mTeo;A(O&|P3+;et+ zws$>m#l4;n&@;~?^yH(*fxFe9dWPEE;#4^;i`B3 zM{&27iF?jt@$4MvD;_sWC*oN>$?u@gSIYlK_t29+LQkL4b*^&%dGV|c{|C=SWB)bR zXZ!^(EP`Hxvu+RKejPoEdmTn@a(~xX#a+K7?)_>feAW{_^MBZT-G;cY+xVkgpY<#M zS6+(+@vNTYO>wVhyW87mUEF;(#og!Vj|(66_gLKfd+;ZPo;eT2eccmrUw7~}|6gaE z=jX$p_U1c(R`9oCuIB$o&iy{v5YO`PKDz`x&zUClp?=jt|m zm}eb6&$77Ja}avw8G@dC*z`5!te8Idh`8r` zgb(Xhy3g}_&VKQ1PMBu^dh$Wjk1OYp>4Oi8d(MsjS=2Kd+kuzl^Rp?QtrBM+tr3JLao-9qQuV z-+6Jb=K*}!m-B?rMZ)I>KI}{Fo${QXXH4Al+=^%WVxGoeZ=VHm_vs|`8wve|xYu*~ zCB5ssmf%D0T5EW=$V_PCTnWpBo$S;r(<0KIBd4nP(Y#@)gq`>wI1{eejmJ=WK(sFAwl% z&PVu@mtR`+g*p4hpLc&TeOLJhO&@$n{CWA|ll?uHM&7Q{x_JEEjo=%muS>sa`ryrX zE%wFzE{prTwV-Dm)}SYEn|@sLwr=|19dWP2131sI^4~13Yx1tRUq`p%zOM)9ng0=b z^3rfow~RNmuRigZhu~##-&gD13Ln;gP26*Kpl6;9=*c%tKdqcwrVqX??l~X8d4Bf4 zdr^O$htuMIuFi=2xw@IqZzc3&?@_GFJhS4y?wq)Z>dtu1N+z~9&;7ncPpE|rT+GtKKOvR_jeFJoWmjbkdHvmoK@(_M@_%2oHf%2 z9~1YS6X5K7Q{4N$Ebe{Zgb%+@dJfL#>W75?W5U1op1tR@4$gI#!0+%r(lR*pZE)(h z!3QvhXX4o$W_^jzp`DAzTm`>?&kgc)!QTP?wU_1l_4<#Ad;Pb>v;MNqHwm9^!e{8^ zz3V(F?s=xfJOLVe3}WL6ZmjGZxcRu37^4{VqeTNBkuc}759Cu!)Flv+5~6L zlZ5|i!v6t2%sKsDz2{*@+;g6aXY;^34+)>ggirOod)IAM-0Rj7_dE~qVV=q>dhcsQ z+c0s7C%C@a;3eqyz+VD>3I5;Ua|6!bqkaoc|GsKbH}ZaQuiJpQ?{^kH ztlLV$XEouo0iSomeviRfw`*|b?|YwOU#wdVoOPQ3XWgd2=|7*~3*uh4MRBj&E__(G z%Y@HW!sp>t ze-}Qi=fL~r>&AWXLC+zB;&C4gJ|~{l;oUKZ4fyc6XaPRtP3W`xZ%1!>EkjSfVtV~p zL21?W!CT^4PQFe*h7a?cz=!-Cdgi%+p8V4Ek>|?v!LP+V=M8+ArwbqQd+3?x0ebRB z)0bYY7sl_O&qMS*c%QiEoDugqoE7&u+=371dAwH4A@?;Qp5-CG|J%Lw58|$$`@r7% zy146C6Z%#{zxQ`?f4?q8WO&9fHzv|*%=ST7Edf_=R{p#L6Gve-ZES~xB zzS;Mh-ach<_o*iIqY3>)LO+?%FDCR$3H?SwznRc?KDzgQH^hCvYcsjt>%aHfg7dtZ z{@8-EUyI;;9yk{F`@)I1-xnUm{W>kp=IeU?S#i(52F~Z4ZE?@DBkp;|KCamBd*C@| zSKM>%iF?jN=z0G=f}Z@?^cCHgPfQ>DR6MH#pL6;@zIXmQ_=|DQ--~;F9>l#ql~2h1 zy$&PdUWXd=-0v9lo5f$o=em4A)kYudFs%U&zruXoDI_lUl8}4 zEpYawK3DXS^SmnV^>2xL{nw#q{tooy8>Wxv)lJg}-xBwIorCjynEk}w^D`&z`5VwP z=K}QPi>8m9OQsLr6!-kg@Zp@Sz=wPddgf_EPrh#YrrxvYm_GQ1xaT~CPiArTvH1hR z5q!u`On;;2v{TauKR5lZ^cSWNKKx0&`&$wB{*FS=`qZE&A2WUQaoqI5C&ayOlkj05 zr{F_A3qAA9K~G*ceMRTPyy=5C#69OVIG=O6@Mq3j_>(_C&zz6Ylb1fZ=wrrLl)q0r z>mzwt{CWA|lRf`W=Hpqq5s&Bp;J2oqlK#&0!8hu8&TL&ipWG$*$fp$h%C3utkIEOQ zif8*GA2t2pC*}H@>4PsqpVcS6kFW$ic~d;g&+jj+!6(ae^SXT9Hhjp}O~3y7T;DN$ z@J;b--S@eT;Ct|)|FyX1zY+KR*Yo+lo~IXg{mAQ!d0_r|arbG6yU(V$KmTlrXZz*3 zw+nrC-NpNjd(e~bn?CL%2c{2xD4z9^&*9hLJh#iAR@C9Waow$ezZZC0-0QP0?)5o? z59>Vf>Am|kDegWi;$G)faj$b5de(Ctdh(9xqn;b4556hxbv_1Xox9+#Kt1b?qW-M& zqPW+2N!;tR2OrkC?=uR2uDkz+-uzMA>s)$cuJ=0ki)VV)a{zksLDO&RK0ajn;KSlx z=Pr2sF3jvmpIXRsdfleQy>1Qh%>RARmuA9eIpMPjAJ%_2;j@?UIff7OoF{xP5d7>|LLV`19%`?)91dtlY=vWKP`YqyatWVF7ybMbn>ZPL@m`yeaN;GX2?k&Wv+T zn&Lhu%i>;#L-??sLyNuZIV|oz6XIDOKIhCQd>RR#b@(vPLBi)S;d2Qe=6Oi?JSKdq z|FEbt^UR8So#({8K27+%4A)~P;j@wOIff7ObQ320y3wJP(QczG~vxJTuR1!e=hw(}EB4Y=QH01xMig zJix?K@BEYEp8x7|bG@Hq*W!MTH9xPn|FXFI?~7;k;l3t5KljNv_q7iGLFn%(_}>K| z{i5FaYvP`Na;10vDRIv~C!Xc}5Ujfj&iuRJe-HW#alc+J#eLm@FDdH7y4A$pXH49E zro`jJa=9KCHvQmll2D=NpH>`FY4OaOx+)IX`vqKSwv{tSt`&!o7YKXq{KYZ;vTS_9|4I^fjr zfb;v0SK?lWYjMv%^yNh#S%)!j&fyF==XO59SHwNfs<`Lbf)DGq56*cz1Lt{uCGP89 zi~G9$Us2S7>sG<}dU+C@bz1=EoS%tj*IoAWIE&fg{N(FgJboT0_~KULIosguZ~s^4K5=f`>GjTlc$^!-2gS4Ng1n?;h(+l zt&i80X2s)u@8IqA!spXbhn;Wk&0F8nn-6R}yY5WhmeQbjtQ&mmI|`rIVciq(*Mpyd z^ZLC9=jVt9zq9cFH255V&x0R>zZ(1sya9gv-Gx8%T!6m;`mT7^_v~{!9o6SnJgX1+ z!1omXoS!Lhu3HD^x=Z5Oy4gI;YTc%I^d4bFP*f-gdU2+s5T44iXv3C?;xh-c^OKZO6I zcy_Lmm$sj+TkSP@Bm2aoZovn{v%38w_z!`94)`cI_f-@3oMYmib6h<7JFA=%;*m4> zw7BP-1!vBNxaV0A_dJW@k*A?NOX86y_=>paX@N6ON8IylhMAMYx)7{?@S;3!SqAYKbk&x-}gUz-d3b9i$B*#@d49U#Rp9veAx6g=_{rWUN!x= z^rNN^K4$t!>BmhUeA4vO(odN__>AdirJpr@@Ve>i($AYd_=4&0G(U@`58gC=N&d^G z4}N9(UFok)ANBmeT ze8TiA(odQ`__XO;($APa_?+n%rLUVlc*FFY(l3}k_>$?jrEi)(cnkXM96Qtbwgx@< zCiK}kRxju0)fV*RJEo60*)@IeebYys4@@8Y$n;U?W77veHGTB`%=E!8OdoT2Y5L&T zrjNedm_GQe>7y@qrVsvL`hE5H(e%Ol{>8J`^y8)vK56=E>8DH|e8%)$>1RzJyl(nC>E}%!e8Kb&(l44mc+>PH zy>YN?`rxakFH7GteekyF2c%y&eeey_4@tji`rzB9-_?G1OdovD^o!E(n?88o4;1s9 zolB9kEFRBe!TWzO*Jsa}Ux3#Io!#C(8{+PBZu&c&lNY8Be)HqSx_tf|{fXXuOgx^S z<9&c}@wiTdPr`@aznBB(`vddfe1D(`PW=uz-yb*z=lf0<;Cz4e3Y@Pmwth0NL-w5i z`}jV{ws`iOPkttz_3;bQ#~bi30q-XKZxjB*hecober!$LbB>97&KdZ80)D~VoOssX zY`fJr=J(CIc-CL?dHB2-J`MO}iOYHH(gJ+Qm*Mkc(q=2S!56>};Gg9=eM{b)L->=Q zK%d!E^gM71J^8umBmafzgI|hgeg9kdIht$p8G4s&S5LmDX+FWb@OcN+^Ui!C|GoJH ze}GQ|KBb?^ix}7Mxz5Qx@wk42_lsxy`is28PxBAJCv%KC48n(e7(TB-o)P#weZ8qX zRrrwC;KMxQ;D42G@oCPf1fLa;I#fR9sk}5N9(4#l4taJi+(j^DfA9 zp76Oy_*}y0rSK^qJ=@1vw_n`z42Wm-VV;qMz6w3poe}ps%qD#1;KOwr3H<`}T(>Rm z>#iq!I`HATTM7L(^j!B;+}Axz_?*Ls>s}`GSI~3a{-5pL-vM#&@1VH%cQ~Q1K+koT z#C^ZbgwHa3xZe)AKHB;8+}TX{Y(dXFH{zbBoA9}X5A)n7^bgQ;-Ql0>UH^)>*MCIZ z>t8jWhF+(Pif5nO$yN$JX8O4AjEl#*!DmdrDF0dW4?bu5I5+C%AADXs+ZXGzWImC< zDen8)758&^Pu$Pp6Y*@_Z^Y~REAg0zQN7;07SBG{k<~N!1AO#R<)?Ev@Rq#4ng2un z&!>DIyp44m;+}s&-1BdVXF0R`dr3dXy)B;gk$hJ?%ftKrA^2az^XdsW>vJw1>(=7u z$Hima;8*bBx;Nl_p1A|({ju*jFJkm1=BF$ka~r&0Jlij?)A5AQM8anhKAg`v^NIPa zi~D>om_DwTMbigg6VLL06Xv7?{uh|5O>ow8JHfBSecrCcectZGqwkCA`@MMdJ@|uo zmj6x2U;6o?kJ)@S<H^AQ+`YrGh_`Z15Ierhufq2v>_z`?q z=S%ZBRei3^C-@C~c)i@3&$)c=%qRFm!e{sw^S)<&tYN?+euGcLhx?s3 zp9lFg%qRFFe7N7H`IK~hEt^m9)r8LmIM0V2aQ?i*iFnkZtaVStqYlB(;ln!Im`_zc zUGoWkm+%=pDf-3x;F!3d8{^`BZq(t^LEjg_zXf~+{GWoiz~2nMChmFK;-2RKKHS&R zFBRuf_OE!pYKr@F*P3`X&o9IIyqWOXO8D%;=NquEvxLui!si-3%yXOYxl8!eez~Ya zc7JSZe#XRO4uemK`#C>lKF9KzHlN_L37;kNxt34Ue1fkee9qv*{+^3_f3M)fzV!V{ zQ6Ku0#ocEd`mCO@-wE-kXYeU;ujdgspRcaPeg1F6ef}Te^UavI;nRFy*}5CxW8mKo zJ}&O-PKf)ui}2xfw*tNn|1EGnf9`_w`Ewtf_346tHT)mI`MRTDZ+d2Rc;@F>#C^Y0 z;?LW!c%0{px*sixN8f`li)ZV8H*&VYc^^3i-^clL3C`!nF8FUke=i<6XY~UE58{zC zcb~CW8mL|eNBqTx^Z8g5|4F*&%lTEnKz&KL5PO=1Yd*?^Eb_>r8+E| zPw>@*&ziW;Nn70K0T^U(0{i{DU_VK27r(|M+~r%jOe&E#b41;0Na4k^iCj2R}{tbQAo+{JZjh zH2>iJ|E`!%_G<$Cd(p=k@b3ffh(~`XKOwK%hIsTh_zrxy?uq#{gE%CG2ydrK0|YPojc|ed^_QDWIo3_ z2ae4r_=)Myr9U-&@c!TEUC(jxsOO~ePl!i7gU=*<=E1)obGQV~=a3cgSa(+Iu8POH z!Pnr!`&3)p&*61(KZmcyW8JR$ej^_12EP~gb8q1M+4FN(^&b=upWs8LKa_sh^uZUz zeccW7DXVUq<`aB3;d5X-u>Pmuygy!oe--B84*YAt%m2QZ&o%H0IGbn4jPm@L~P0 z%%>}#Yx4=-P59J)tJp91H4V<+8*nNf`OBY}pL=KGkw5qae3-xQqW8KZ;9PeUob_A= zXa3TEDEz741?S)6I|rY}Jluf)M?BAW#j`qOE5-LaZpE`Ykl(?F-v@b2=u5v{>5s&)B z`vzU{s88@)@hm@I_dSC1by@#^D*EzgxZZ2vKZ*I75sy4o{T}04@yHXr4jg&-B3$#C;Br%;!)( z$L16KG~shA?sIr2?sHiE&&8bZ{!$Z8VDf=|HbnRzguO}%fnU_QZ@;KMm@ zf%ESJcEI_4y&Z7Q`5`#J-**OH!gX;W9(6cX{!8(wL-1?(F#jDmuhY`+6!qut>l+4V z{u=lzk#h>1eVh@G{PF(Vta#)PUWX6!FMxk2)@^|^=azV^d#w4{7LRp<@4|=c9>OQ9 zRNRk_#QlDB0-w)9&P(vufOixAw+a6{_;9~{S4AH`6aE9>p9@|Ae>HejJnD9;x{ZoQ z-GYz7hjp6*=e*5;^XJRz;9rb9P4O%b>%T1S^$492rSRVd|03{RaL)6Ac+}@y z^*I!e`UF3Q56`7j^NHt^GxG_40UthJ_5GK;?|$Bv#h-WHibwvqzmJMX{@^w7?0&)T zYmb{xe7K6%{(5RxJoXiQA3p5Mq50HxA3QRj z;3o;6GxJ%I&$;;ozfAbtm`^+>bj>IDt?A=A;m-8IOTU}XPtifOozQE^`A#h$tqu_i#nFQza$+URXGoC|c#G{_U z=itLS%$rYq{-tY@zv9B?3)?rpW^2hVioOt99J`W$}Uof9@oezuV z6TF%5S%puwlXxC$iTm?F2R;q#cL)46;0Fo+!-W44d|0=0a6XS+f%AFn7M#yx_u^6i zc^Y9j&eS84_Fs$46UyJ>6{s+K0 zCqv-$pAe5ZiT9Hy#k2ZkD+Ql|58q#HB=if=^L^BHabLHS@Y#S5*WF3zccJIH=ivN4 z(LMNEQ0M-eqR#yOQ4Rd(p`Qll_m!5we-ZjM@D}(k_%DGUgY)}Sx8T15{p24O`T6@R zX24$r{Q~%_z?**%NB-aq`0)3QG|eY+E{l844fycyPaP(FjuJlC z@Zsm=@4-1IeQ)hu&$77Z923v#$)B^BF`uZ$4xcH^=Sa7Ao~pR#nHJCT{0`o4 zUoxM_(-ikSEAV*(@@$yTkmg}iJn{tJf)CHD{y%{PRz)!*X{lRN+et+;*Jg(EG>UJj{&n>|R|J$?miTw_V`+kSTv;Fe? z8A<4?&_7cj@yHqL&Lw>6@Zq`(;5<*(6aJlq{|0=R^CaPOn(#S;4|857e6A8c*YIJU zM{u62Gk?;%kF(<5$2oEDV*{M^Tr~d`&DD~4Tt~szO&|U3h){okJJ+r}4Op8v9k zj`7BO=X}%nwfMI2$}4jHuJLL$=f}oR^~YmRjgS3hp8wqVy7FHdU+T}nweeN)2jl%O z%=47;ay(bJ!M~pKvhg#mJ79cH`XS>jaV`6t|MvUmq-=Q(#0QM8iw_xJ5w93u5U(1a z6|Whe5Fa;Q6`wRdC_ZhxBtC2W_Wg2DH-0I;2%f!fu>Hw7STVjU-Zp+HzG?heeAoE7 z_@VJj@l)en@k`@(;$7pVdJZ0pm&G|(*?tGaIX@X660c&eGF}zW-p9|rvhywDGksVxxeob{?~eT-!c7&oix&@zoQLe8U zk8^Cwc${O=ukcyd`L<;GxxbP7XMejV`wIQG_<`|r@v@p1`jxlK|M&C8r`|s2P2(N$ zHRH$cl`Qsi^d;EbG~Z4ru*8q@on)#<8dF1_dp_N+&3RgANScIom-)g`*Qp( z#o%!tubV#Z`zyxdIbqXyJXahV|G%Z(ahR%CeJ5~CrtMf!No3u5R#d7Oi6J*6VuBVG zl_=^Mv7(~E$W4f%A;}~cl|*b%N2T5AF0OPtT2wR`$4V(58v}Uzn9_8z`eW&^E_lEZl1R+#m)1dHLhoD z`ZUjf!s3n#a6c!+JM;~4FMr`Q)GtJxiTLUh;Vb;PZu&{mJ>pyRxOg;#ItB49`nLF( z-V+Zz33bNe+w?>68QsI*Gp7IO#i$b#k6*$*#q(i!U)=u`_<{H)-ND~uX5Q5ClaZs# zns|#I5%))sPm8zdCGkUgT|Dws)ai+r=wtCN{ZQQZG}Q4v2wQVpZF*FEMo)=vJRReU z;zN2>d^L*vp1A87@VR(}?&9x%(`Snw6kmHL>LkR&^bPSAy(+#(?}(S5h5GyA3;IGl z7en67=N+d13Oytqx)gcyyvF2*^bN^3o`ZZ#Rv3V@ibreEyX)@ z@5AhQgM48Z6`#{n;u|l=__Da`74VjLioPper_aO(bhq2?(|0-c!{QTqO5B-7z9=4` zH^oQvf%uX>6W@9z>O1-R#ytL8^sspT3gpe}A(OAsE0Ry1M7||Hr05Z-o39Iv2d;&u z#nVOjrugh;cvC#^Cip;nk3JI*mymb!b*Jga^JaKleCO@(eeuq_;8XF%yW!6NgsrKc z`D5&x*R{qM^tj}s??JvNo_Rmq{|LMOq=EfC@jw$E_1Jm$ZP+h}x9JP<$nD4nA8FTF z`z-d&>soVMrO&~KlK0;MUy2Xt&PUnxYd!3H#k=&7_<$Z4_kSLB(&Ah64RQCK$k)V& z^r84#ANfOZ=NI9@M`LU5AIF!lpAldCGQ27t9Kf66JM^x2;x6QO#gkuwFU5mjg*(02 znm#w_Ve!Hcxs>=ey(r$JH^rS_L!F^`i9Qz(eI5Cg-@(@OS)s3qZ_xwdQ+ifB{FkU( z7q8IU;tl$q_>#U5Pwb+;`!RO^d3s2Ei=Gr8(hK4%e}%eT@j87b9{p?f^H{r|8QuK5 zk-49@{sy_M@U-|IeM@|HH}WlU?>+E6@ig6W4sJL1zhi{`uy~KYA-?i$$|8w6VH#~>wde>gYRL# zD&F`$ydxg@0eoM)M4yUR=&p0^c~=gw9~H0s5MC4S-U}azhkguSim%h1Pr&WwaaE#w z#dqi_@xV_oJ};i2x5P*EzW9W`FCO?i_Ag$iubpT2Kct7nom1qp;$3=0eEp}$*Ts|c zws?lVFTSKZ19qRKpJ6{HUimq^Dn6RQ+v11xf%xh#ke`Tq>CW?UyZOFX>FeUbUm{l) zU;7ojCLW~s#CPb2;{7@5n13%f{jB^wJbeON<6ioPc!ItuUZ!u0*Xb?sK7Cg_@DJ!? zAzq`qFR=RzFR&jHAJLQI<$pxJAnyGqcujmj?}(TF8Tp}jhdvgc)92#3CF-mMu{HO9 zgT5xd@@wS6;$C`6JVGyur|8?_1$tM!N*{^0=u7b-eeFW~xF+;;!FB-W9U@kJ5eO zIeJ*UK`)5ce+%_1;!}EEJoG^1_r$m96Y*X8QhZK#KFK~V&u^o?SA2sW5+Bgx;%+DE zq{TNM46lk$=}mF(Ly+%^=jprRbNYdJ@u8@*5O4DhXsZ|7_rvlmP}YH}d=9zQ@3);tl$txa+aV2QRUYw?L1H59uj!j}LY7;!%1{ zyhq;=_nyP!68Aiw$0eSnd&74Bv2&3Ri6`kP@gcn=9)AMrG{yV$1M%8<$UC2G_p=#* zd&N8SsJQC{@=0+Iy&@jH0C~?-?0MZ6!qejMi{RVh=_kUw;$`|syg^@z_vxPBwfl*M zP(LQ#r{~3;7bD*gZ_qp9J^DyIcnRtpinr;$h~1~3Zvf1QAJVtPXHQ1`miYSb!u#SW z`a--MLB8@-yPxFK;6w4Pr^8pCX6KtxxcUEf^Zac3;DNeO=t~eAFq3m*_R| z7QG|BOCO3)=ri%``U6fk?tP}+f9VDAjCk`hcwM~pLU>Pnmp&Gs(H+mS=PmM$t|9T> zi%`EH?s_r2Egnn4_r$aGx%ejC9kcs!yaaU;;=`B1yW&m0!P9f8T_^Jj-3>`k3JTk(&yrflc>M)9J?RKmGCujH$5Qk zrANg>^rU!{o)b^fOX3-NUA##ji2JWX|1E`_}=I8K|-j;m&HK;!jZ_r2LE&5EnPj@`mKHdf0yzj>Jv&uJ~2PE&KN5#wZq0|L7`l0xc?s=Ylyiq^+i<){0^qx6_~ zj-C=P(@WxQdR=_w4d};w{($K-L_d&xg}(A4yZVB>et2nH*;R`CVeXI;d!R6 z-?Qg6=bxI-2{HY}Wg4&0H&XU-ZN3+EdgAjsd@LS(AAIHIcAXO4C*Gs4 zi?6;Pb+*K}=p%9e2aunM=jonT*!?W&5ph=ob@JkY55jBWTOWe=#8+=+KjN7t+_zrz4?)p6Pu8e(LS$bG}hn^B2)2rfZUqJn?_&VKv z(sBA?zF)&W@)7Z^FT(f4Q(uNJ#C-#}dH=YnU!$*IY0tZQ7xF!E&)48n@!B`wuB+@i z-EYDZ;>~^dmU#Sb_)vUy4}31Z`W<*CYtP&M9_x#HegJQax9KDC!~yavSKIX`^r-mw zN5~h%JNLqC;$!+yyfZ<5DenF;Jp5|ApFX`N?w=w*6VLw??s<(}C-if8R6I-1im%L& zFXZexTfc@k#8dwQufEpKyUsY{G>;#2zSHTJwN z7xI4b06i`qr{~18^on?yz9U|z55>FmsrWwKlehbCorV4*;`{XcwRYb3aOAhdQ}mX2 zk-l=BUB|PAI_u(Qou87pkL&i-#nw3GN`XkU!OuXQMm&84fgtx^P z^gVIUqmXypV9%R>4BRW;phv~~^n&>IV^L>Ee8UGn5MO&7+!S1I=kBisNN4_XN zrnkg9T%T$zZq}_j6kodl^@Fds`EI^ey?cvW7Z9ui}$#mSm-7@ zAG;KFvf|!2ye2-U55zmqMSddQd>(xFW_#YPm%{6Bvb}Z%d?3C@pNTtPh5SZI>YRk{ ziEmv6kGyK?ZJcpwk=|Gu4fUJu_E_uc^Cy2Z{HZh`NMr?`IFp}1LBEnK$iOx}Vz zW%2%7;XC54x54+sGxVi+o9=y!_f^o)3Uh4;VsCVePw)~%h2d%2!%{JnNRWj30u0K-}?A_`0~CZq^qu&nrUondFyT;B)N*_Po8b zP(LE>J{z79AJePin-4?2D?Xr4#XD}~Jq^2`!he7_#0Ok-e^0z*7SaEpT_^Ym)M<&Q z9tlr<$j+A^4PS_x^}yY?+W8{a2~UY<9)~&=b*>Y>BVM2n#m&0nQ}G4!hvH_vaZl6k zGxYc~PeWYXtV5m?kNAzb@BXp@VxjTeN#LaK)xd$ zJ0Cs~_nv^S+-CO^qx-~j^rU#7UKU@w0QDQ<>-3KJ27M@AqL0O^^p%g;{U6YS;^83r zNr-3YW$_`sDZX_f>gOE?0!acuejrh$ghhx=_T<*2>H5rk=_&ErjNxt^h5D6 zJ^xX=|N6z4w<#XE1imX?3BwoS(I>-K|IDtRr+dV==~3}Hy(nIN3hFyPX4iK<748-H z(nI2LdR%;yo)+JsABvBnnAg>^`-waQ?h|j&>*9OQLcT5Th`~dDZr5L43XhBXpAFv? z_r~D|;#vAayiQ;J3wz!}x<@?nT-0xf`_|zd@gzO)al3x&GUTJ;3wlp{FM<4?_}Yu$ z>utOK;`iVgasP|q1@RQUBHo}!J|XpAiaH5#-^<`x@g#juJoj?sC*nKw%qQ)6H!o-Z z;sg3zyzxrpU7xb+^yy*oYzFyt@ghAh-lf;X>nBmCBi^P@#dEJlzR|J!+_(nryWRG+ z>)5Awm!22jrB}s0*Q3r(jA|->$g9O zIsx(ApTU#jEqX;f{xRfx;)nFHxVMG;>Ya8!d-RZa`OlHhhzI`yUK5|vJL1ldBYz;? zqdUJ~_mgiU9~Sp~0-hD`)2rgyPa;1MKcr8@y`Mtf)wlcEr$@vq9prQ3k=xOxq zW8r=AA$=}h_aX29hTYHZc75N=;4$$;3SJN& z&|Bj1mm@zDAJKhx+w*2FM?N9mqxZ%AuS9z`!>Z{-z;_VDPHnQvFu7Y>P z!&&%PyiRv~+pcp+H|uno$6N0;sIw{g1-&C)%^^P#54;xc{*FEGfF2W1zYh6=_?+Gp z-@FF-fq0WX5g*W(;%j--$$Z!DvvUKyEABl7-xUwh55%1X^O4cl^LUt|{FuKBxP|mvpnvtNHuocnkVZNPd-`6?f5#;$Hfe zxS!q-kJ3BhY5Gunn?4qA)92zN`pSWQzs=}j@r}3QepnYD(=+0kcOvipp!<|2}=iQ-)#l0Uuz9^pkAiORqyB~&!#f!JW)8gKbz&FIp^gZ$6?Z_|0ou7vLCw8B!pMgijJ@ifSO?pS% z+eMv;c;Rz!=a21qSMGp&#ndtTq&$os`3^tgDEo)*v3tK!vrP`@u;AHmJ~+~)B=8pA`s zu={lU2p$&?({th(x>>i|)c4+tIz7o3=@an*edU*SKV!O2+%ZA@nD`n!D;}Y5iYMt! z@gjX7UZqdOJM@)b+5PX*1LDOWqyL6@`KR!{_%{7OyhnG;?RodE0&Ro0k>io$Qg{zNFjXIG%Svcu9apkE~ zjuSUtj~#4}hh2CgZ1{LLbf4X;P8}^|%poU^b}qd5zI(^Rj^{Woczo?d{`#v<<`r+e z-uPA5UwiG<*B!NU-Svg5Pdw+cmz;m9aPq2aIN<8st6qKM$!o919smFNr}t?51CG9a zQ|d&ypP1o(H8n{6Q1rkB{%Z7c<^`A6|BJ<8iIC?;AS0?))&uC&kS;v&|me zet+XL9Dg9=UEDX@8~>g0(c3WphKx7;o9!mY>-VqC@j-J(v5pyM%HDEx<@i{l2Dq)B zdeG@>6@FunAAiSU#+%3AdyedQ3Z4JpBkceGF@No7?ETHZ_6E$)(x_k|FA2V{*B&sbmjhz z-*FR;KYBBg$H#xx(U%!-?*HR{bnfF3<@e$z(!s6Adk%;D=dP&ws}Kw*or;Ujax|d~E;# literal 0 HcmV?d00001 diff --git a/lib/raylib_win/include/raylib.h b/lib/raylib_win/include/raylib.h index 85faba4..a26b8ce 100644 --- a/lib/raylib_win/include/raylib.h +++ b/lib/raylib_win/include/raylib.h @@ -1,1662 +1,1708 @@ -/********************************************************************************************** -* -* raylib v5.0 - A simple and easy-to-use library to enjoy videogames programming (www.raylib.com) -* -* FEATURES: -* - NO external dependencies, all required libraries included with raylib -* - Multiplatform: Windows, Linux, FreeBSD, OpenBSD, NetBSD, DragonFly, -* MacOS, Haiku, Android, Raspberry Pi, DRM native, HTML5. -* - Written in plain C code (C99) in PascalCase/camelCase notation -* - Hardware accelerated with OpenGL (1.1, 2.1, 3.3, 4.3 or ES2 - choose at compile) -* - Unique OpenGL abstraction layer (usable as standalone module): [rlgl] -* - Multiple Fonts formats supported (TTF, XNA fonts, AngelCode fonts) -* - Outstanding texture formats support, including compressed formats (DXT, ETC, ASTC) -* - Full 3d support for 3d Shapes, Models, Billboards, Heightmaps and more! -* - Flexible Materials system, supporting classic maps and PBR maps -* - Animated 3D models supported (skeletal bones animation) (IQM) -* - Shaders support, including Model shaders and Postprocessing shaders -* - Powerful math module for Vector, Matrix and Quaternion operations: [raymath] -* - Audio loading and playing with streaming support (WAV, OGG, MP3, FLAC, XM, MOD) -* - VR stereo rendering with configurable HMD device parameters -* - Bindings to multiple programming languages available! -* -* NOTES: -* - One default Font is loaded on InitWindow()->LoadFontDefault() [core, text] -* - One default Texture2D is loaded on rlglInit(), 1x1 white pixel R8G8B8A8 [rlgl] (OpenGL 3.3 or ES2) -* - One default Shader is loaded on rlglInit()->rlLoadShaderDefault() [rlgl] (OpenGL 3.3 or ES2) -* - One default RenderBatch is loaded on rlglInit()->rlLoadRenderBatch() [rlgl] (OpenGL 3.3 or ES2) -* -* DEPENDENCIES (included): -* [rcore] rglfw (Camilla Löwy - github.com/glfw/glfw) for window/context management and input (PLATFORM_DESKTOP) -* [rlgl] glad (David Herberth - github.com/Dav1dde/glad) for OpenGL 3.3 extensions loading (PLATFORM_DESKTOP) -* [raudio] miniaudio (David Reid - github.com/mackron/miniaudio) for audio device/context management -* -* OPTIONAL DEPENDENCIES (included): -* [rcore] msf_gif (Miles Fogle) for GIF recording -* [rcore] sinfl (Micha Mettke) for DEFLATE decompression algorithm -* [rcore] sdefl (Micha Mettke) for DEFLATE compression algorithm -* [rtextures] stb_image (Sean Barret) for images loading (BMP, TGA, PNG, JPEG, HDR...) -* [rtextures] stb_image_write (Sean Barret) for image writing (BMP, TGA, PNG, JPG) -* [rtextures] stb_image_resize (Sean Barret) for image resizing algorithms -* [rtext] stb_truetype (Sean Barret) for ttf fonts loading -* [rtext] stb_rect_pack (Sean Barret) for rectangles packing -* [rmodels] par_shapes (Philip Rideout) for parametric 3d shapes generation -* [rmodels] tinyobj_loader_c (Syoyo Fujita) for models loading (OBJ, MTL) -* [rmodels] cgltf (Johannes Kuhlmann) for models loading (glTF) -* [rmodels] Model3D (bzt) for models loading (M3D, https://bztsrc.gitlab.io/model3d) -* [raudio] dr_wav (David Reid) for WAV audio file loading -* [raudio] dr_flac (David Reid) for FLAC audio file loading -* [raudio] dr_mp3 (David Reid) for MP3 audio file loading -* [raudio] stb_vorbis (Sean Barret) for OGG audio loading -* [raudio] jar_xm (Joshua Reisenauer) for XM audio module loading -* [raudio] jar_mod (Joshua Reisenauer) for MOD audio module loading -* -* -* LICENSE: zlib/libpng -* -* raylib is licensed under an unmodified zlib/libpng license, which is an OSI-certified, -* BSD-like license that allows static linking with closed source software: -* -* Copyright (c) 2013-2023 Ramon Santamaria (@raysan5) -* -* This software is provided "as-is", without any express or implied warranty. In no event -* will the authors be held liable for any damages arising from the use of this software. -* -* Permission is granted to anyone to use this software for any purpose, including commercial -* applications, and to alter it and redistribute it freely, subject to the following restrictions: -* -* 1. The origin of this software must not be misrepresented; you must not claim that you -* wrote the original software. If you use this software in a product, an acknowledgment -* in the product documentation would be appreciated but is not required. -* -* 2. Altered source versions must be plainly marked as such, and must not be misrepresented -* as being the original software. -* -* 3. This notice may not be removed or altered from any source distribution. -* -**********************************************************************************************/ - -#ifndef RAYLIB_H -#define RAYLIB_H - -#include // Required for: va_list - Only used by TraceLogCallback - -#define RAYLIB_VERSION_MAJOR 5 -#define RAYLIB_VERSION_MINOR 0 -#define RAYLIB_VERSION_PATCH 0 -#define RAYLIB_VERSION "5.0" - -// Function specifiers in case library is build/used as a shared library (Windows) -// NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll -#if defined(_WIN32) - #if defined(BUILD_LIBTYPE_SHARED) - #if defined(__TINYC__) - #define __declspec(x) __attribute__((x)) - #endif - #define RLAPI __declspec(dllexport) // We are building the library as a Win32 shared library (.dll) - #elif defined(USE_LIBTYPE_SHARED) - #define RLAPI __declspec(dllimport) // We are using the library as a Win32 shared library (.dll) - #endif -#endif - -#ifndef RLAPI - #define RLAPI // Functions defined as 'extern' by default (implicit specifiers) -#endif - -//---------------------------------------------------------------------------------- -// Some basic Defines -//---------------------------------------------------------------------------------- -#ifndef PI - #define PI 3.14159265358979323846f -#endif -#ifndef DEG2RAD - #define DEG2RAD (PI/180.0f) -#endif -#ifndef RAD2DEG - #define RAD2DEG (180.0f/PI) -#endif - -// Allow custom memory allocators -// NOTE: Require recompiling raylib sources -#ifndef RL_MALLOC - #define RL_MALLOC(sz) malloc(sz) -#endif -#ifndef RL_CALLOC - #define RL_CALLOC(n,sz) calloc(n,sz) -#endif -#ifndef RL_REALLOC - #define RL_REALLOC(ptr,sz) realloc(ptr,sz) -#endif -#ifndef RL_FREE - #define RL_FREE(ptr) free(ptr) -#endif - -// NOTE: MSVC C++ compiler does not support compound literals (C99 feature) -// Plain structures in C++ (without constructors) can be initialized with { } -// This is called aggregate initialization (C++11 feature) -#if defined(__cplusplus) - #define CLITERAL(type) type -#else - #define CLITERAL(type) (type) -#endif - -// Some compilers (mostly macos clang) default to C++98, -// where aggregate initialization can't be used -// So, give a more clear error stating how to fix this -#if !defined(_MSC_VER) && (defined(__cplusplus) && __cplusplus < 201103L) - #error "C++11 or later is required. Add -std=c++11" -#endif - -// NOTE: We set some defines with some data types declared by raylib -// Other modules (raymath, rlgl) also require some of those types, so, -// to be able to use those other modules as standalone (not depending on raylib) -// this defines are very useful for internal check and avoid type (re)definitions -#define RL_COLOR_TYPE -#define RL_RECTANGLE_TYPE -#define RL_VECTOR2_TYPE -#define RL_VECTOR3_TYPE -#define RL_VECTOR4_TYPE -#define RL_QUATERNION_TYPE -#define RL_MATRIX_TYPE - -// Some Basic Colors -// NOTE: Custom raylib color palette for amazing visuals on WHITE background -#define LIGHTGRAY CLITERAL(Color){ 200, 200, 200, 255 } // Light Gray -#define GRAY CLITERAL(Color){ 130, 130, 130, 255 } // Gray -#define DARKGRAY CLITERAL(Color){ 80, 80, 80, 255 } // Dark Gray -#define YELLOW CLITERAL(Color){ 253, 249, 0, 255 } // Yellow -#define GOLD CLITERAL(Color){ 255, 203, 0, 255 } // Gold -#define ORANGE CLITERAL(Color){ 255, 161, 0, 255 } // Orange -#define PINK CLITERAL(Color){ 255, 109, 194, 255 } // Pink -#define RED CLITERAL(Color){ 230, 41, 55, 255 } // Red -#define MAROON CLITERAL(Color){ 190, 33, 55, 255 } // Maroon -#define GREEN CLITERAL(Color){ 0, 228, 48, 255 } // Green -#define LIME CLITERAL(Color){ 0, 158, 47, 255 } // Lime -#define DARKGREEN CLITERAL(Color){ 0, 117, 44, 255 } // Dark Green -#define SKYBLUE CLITERAL(Color){ 102, 191, 255, 255 } // Sky Blue -#define BLUE CLITERAL(Color){ 0, 121, 241, 255 } // Blue -#define DARKBLUE CLITERAL(Color){ 0, 82, 172, 255 } // Dark Blue -#define PURPLE CLITERAL(Color){ 200, 122, 255, 255 } // Purple -#define VIOLET CLITERAL(Color){ 135, 60, 190, 255 } // Violet -#define DARKPURPLE CLITERAL(Color){ 112, 31, 126, 255 } // Dark Purple -#define BEIGE CLITERAL(Color){ 211, 176, 131, 255 } // Beige -#define BROWN CLITERAL(Color){ 127, 106, 79, 255 } // Brown -#define DARKBROWN CLITERAL(Color){ 76, 63, 47, 255 } // Dark Brown - -#define WHITE CLITERAL(Color){ 255, 255, 255, 255 } // White -#define BLACK CLITERAL(Color){ 0, 0, 0, 255 } // Black -#define BLANK CLITERAL(Color){ 0, 0, 0, 0 } // Blank (Transparent) -#define MAGENTA CLITERAL(Color){ 255, 0, 255, 255 } // Magenta -#define RAYWHITE CLITERAL(Color){ 245, 245, 245, 255 } // My own White (raylib logo) - -//---------------------------------------------------------------------------------- -// Structures Definition -//---------------------------------------------------------------------------------- -// Boolean type -#if (defined(__STDC__) && __STDC_VERSION__ >= 199901L) || (defined(_MSC_VER) && _MSC_VER >= 1800) - #include -#elif !defined(__cplusplus) && !defined(bool) - typedef enum bool { false = 0, true = !false } bool; - #define RL_BOOL_TYPE -#endif - -// Vector2, 2 components -typedef struct Vector2 { - float x; // Vector x component - float y; // Vector y component -} Vector2; - -// Vector3, 3 components -typedef struct Vector3 { - float x; // Vector x component - float y; // Vector y component - float z; // Vector z component -} Vector3; - -// Vector4, 4 components -typedef struct Vector4 { - float x; // Vector x component - float y; // Vector y component - float z; // Vector z component - float w; // Vector w component -} Vector4; - -// Quaternion, 4 components (Vector4 alias) -typedef Vector4 Quaternion; - -// Matrix, 4x4 components, column major, OpenGL style, right-handed -typedef struct Matrix { - float m0, m4, m8, m12; // Matrix first row (4 components) - float m1, m5, m9, m13; // Matrix second row (4 components) - float m2, m6, m10, m14; // Matrix third row (4 components) - float m3, m7, m11, m15; // Matrix fourth row (4 components) -} Matrix; - -// Color, 4 components, R8G8B8A8 (32bit) -typedef struct Color { - unsigned char r; // Color red value - unsigned char g; // Color green value - unsigned char b; // Color blue value - unsigned char a; // Color alpha value -} Color; - -// Rectangle, 4 components -typedef struct Rectangle { - float x; // Rectangle top-left corner position x - float y; // Rectangle top-left corner position y - float width; // Rectangle width - float height; // Rectangle height -} Rectangle; - -// Image, pixel data stored in CPU memory (RAM) -typedef struct Image { - void *data; // Image raw data - int width; // Image base width - int height; // Image base height - int mipmaps; // Mipmap levels, 1 by default - int format; // Data format (PixelFormat type) -} Image; - -// Texture, tex data stored in GPU memory (VRAM) -typedef struct Texture { - unsigned int id; // OpenGL texture id - int width; // Texture base width - int height; // Texture base height - int mipmaps; // Mipmap levels, 1 by default - int format; // Data format (PixelFormat type) -} Texture; - -// Texture2D, same as Texture -typedef Texture Texture2D; - -// TextureCubemap, same as Texture -typedef Texture TextureCubemap; - -// RenderTexture, fbo for texture rendering -typedef struct RenderTexture { - unsigned int id; // OpenGL framebuffer object id - Texture texture; // Color buffer attachment texture - Texture depth; // Depth buffer attachment texture -} RenderTexture; - -// RenderTexture2D, same as RenderTexture -typedef RenderTexture RenderTexture2D; - -// NPatchInfo, n-patch layout info -typedef struct NPatchInfo { - Rectangle source; // Texture source rectangle - int left; // Left border offset - int top; // Top border offset - int right; // Right border offset - int bottom; // Bottom border offset - int layout; // Layout of the n-patch: 3x3, 1x3 or 3x1 -} NPatchInfo; - -// GlyphInfo, font characters glyphs info -typedef struct GlyphInfo { - int value; // Character value (Unicode) - int offsetX; // Character offset X when drawing - int offsetY; // Character offset Y when drawing - int advanceX; // Character advance position X - Image image; // Character image data -} GlyphInfo; - -// Font, font texture and GlyphInfo array data -typedef struct Font { - int baseSize; // Base size (default chars height) - int glyphCount; // Number of glyph characters - int glyphPadding; // Padding around the glyph characters - Texture2D texture; // Texture atlas containing the glyphs - Rectangle *recs; // Rectangles in texture for the glyphs - GlyphInfo *glyphs; // Glyphs info data -} Font; - -// Camera, defines position/orientation in 3d space -typedef struct Camera3D { - Vector3 position; // Camera position - Vector3 target; // Camera target it looks-at - Vector3 up; // Camera up vector (rotation over its axis) - float fovy; // Camera field-of-view aperture in Y (degrees) in perspective, used as near plane width in orthographic - int projection; // Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC -} Camera3D; - -typedef Camera3D Camera; // Camera type fallback, defaults to Camera3D - -// Camera2D, defines position/orientation in 2d space -typedef struct Camera2D { - Vector2 offset; // Camera offset (displacement from target) - Vector2 target; // Camera target (rotation and zoom origin) - float rotation; // Camera rotation in degrees - float zoom; // Camera zoom (scaling), should be 1.0f by default -} Camera2D; - -// Mesh, vertex data and vao/vbo -typedef struct Mesh { - int vertexCount; // Number of vertices stored in arrays - int triangleCount; // Number of triangles stored (indexed or not) - - // Vertex attributes data - float *vertices; // Vertex position (XYZ - 3 components per vertex) (shader-location = 0) - float *texcoords; // Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1) - float *texcoords2; // Vertex texture second coordinates (UV - 2 components per vertex) (shader-location = 5) - float *normals; // Vertex normals (XYZ - 3 components per vertex) (shader-location = 2) - float *tangents; // Vertex tangents (XYZW - 4 components per vertex) (shader-location = 4) - unsigned char *colors; // Vertex colors (RGBA - 4 components per vertex) (shader-location = 3) - unsigned short *indices; // Vertex indices (in case vertex data comes indexed) - - // Animation vertex data - float *animVertices; // Animated vertex positions (after bones transformations) - float *animNormals; // Animated normals (after bones transformations) - unsigned char *boneIds; // Vertex bone ids, max 255 bone ids, up to 4 bones influence by vertex (skinning) - float *boneWeights; // Vertex bone weight, up to 4 bones influence by vertex (skinning) - - // OpenGL identifiers - unsigned int vaoId; // OpenGL Vertex Array Object id - unsigned int *vboId; // OpenGL Vertex Buffer Objects id (default vertex data) -} Mesh; - -// Shader -typedef struct Shader { - unsigned int id; // Shader program id - int *locs; // Shader locations array (RL_MAX_SHADER_LOCATIONS) -} Shader; - -// MaterialMap -typedef struct MaterialMap { - Texture2D texture; // Material map texture - Color color; // Material map color - float value; // Material map value -} MaterialMap; - -// Material, includes shader and maps -typedef struct Material { - Shader shader; // Material shader - MaterialMap *maps; // Material maps array (MAX_MATERIAL_MAPS) - float params[4]; // Material generic parameters (if required) -} Material; - -// Transform, vertex transformation data -typedef struct Transform { - Vector3 translation; // Translation - Quaternion rotation; // Rotation - Vector3 scale; // Scale -} Transform; - -// Bone, skeletal animation bone -typedef struct BoneInfo { - char name[32]; // Bone name - int parent; // Bone parent -} BoneInfo; - -// Model, meshes, materials and animation data -typedef struct Model { - Matrix transform; // Local transform matrix - - int meshCount; // Number of meshes - int materialCount; // Number of materials - Mesh *meshes; // Meshes array - Material *materials; // Materials array - int *meshMaterial; // Mesh material number - - // Animation data - int boneCount; // Number of bones - BoneInfo *bones; // Bones information (skeleton) - Transform *bindPose; // Bones base transformation (pose) -} Model; - -// ModelAnimation -typedef struct ModelAnimation { - int boneCount; // Number of bones - int frameCount; // Number of animation frames - BoneInfo *bones; // Bones information (skeleton) - Transform **framePoses; // Poses array by frame - char name[32]; // Animation name -} ModelAnimation; - -// Ray, ray for raycasting -typedef struct Ray { - Vector3 position; // Ray position (origin) - Vector3 direction; // Ray direction -} Ray; - -// RayCollision, ray hit information -typedef struct RayCollision { - bool hit; // Did the ray hit something? - float distance; // Distance to the nearest hit - Vector3 point; // Point of the nearest hit - Vector3 normal; // Surface normal of hit -} RayCollision; - -// BoundingBox -typedef struct BoundingBox { - Vector3 min; // Minimum vertex box-corner - Vector3 max; // Maximum vertex box-corner -} BoundingBox; - -// Wave, audio wave data -typedef struct Wave { - unsigned int frameCount; // Total number of frames (considering channels) - unsigned int sampleRate; // Frequency (samples per second) - unsigned int sampleSize; // Bit depth (bits per sample): 8, 16, 32 (24 not supported) - unsigned int channels; // Number of channels (1-mono, 2-stereo, ...) - void *data; // Buffer data pointer -} Wave; - -// Opaque structs declaration -// NOTE: Actual structs are defined internally in raudio module -typedef struct rAudioBuffer rAudioBuffer; -typedef struct rAudioProcessor rAudioProcessor; - -// AudioStream, custom audio stream -typedef struct AudioStream { - rAudioBuffer *buffer; // Pointer to internal data used by the audio system - rAudioProcessor *processor; // Pointer to internal data processor, useful for audio effects - - unsigned int sampleRate; // Frequency (samples per second) - unsigned int sampleSize; // Bit depth (bits per sample): 8, 16, 32 (24 not supported) - unsigned int channels; // Number of channels (1-mono, 2-stereo, ...) -} AudioStream; - -// Sound -typedef struct Sound { - AudioStream stream; // Audio stream - unsigned int frameCount; // Total number of frames (considering channels) -} Sound; - -// Music, audio stream, anything longer than ~10 seconds should be streamed -typedef struct Music { - AudioStream stream; // Audio stream - unsigned int frameCount; // Total number of frames (considering channels) - bool looping; // Music looping enable - - int ctxType; // Type of music context (audio filetype) - void *ctxData; // Audio context data, depends on type -} Music; - -// VrDeviceInfo, Head-Mounted-Display device parameters -typedef struct VrDeviceInfo { - int hResolution; // Horizontal resolution in pixels - int vResolution; // Vertical resolution in pixels - float hScreenSize; // Horizontal size in meters - float vScreenSize; // Vertical size in meters - float vScreenCenter; // Screen center in meters - float eyeToScreenDistance; // Distance between eye and display in meters - float lensSeparationDistance; // Lens separation distance in meters - float interpupillaryDistance; // IPD (distance between pupils) in meters - float lensDistortionValues[4]; // Lens distortion constant parameters - float chromaAbCorrection[4]; // Chromatic aberration correction parameters -} VrDeviceInfo; - -// VrStereoConfig, VR stereo rendering configuration for simulator -typedef struct VrStereoConfig { - Matrix projection[2]; // VR projection matrices (per eye) - Matrix viewOffset[2]; // VR view offset matrices (per eye) - float leftLensCenter[2]; // VR left lens center - float rightLensCenter[2]; // VR right lens center - float leftScreenCenter[2]; // VR left screen center - float rightScreenCenter[2]; // VR right screen center - float scale[2]; // VR distortion scale - float scaleIn[2]; // VR distortion scale in -} VrStereoConfig; - -// File path list -typedef struct FilePathList { - unsigned int capacity; // Filepaths max entries - unsigned int count; // Filepaths entries count - char **paths; // Filepaths entries -} FilePathList; - -// Automation event -typedef struct AutomationEvent { - unsigned int frame; // Event frame - unsigned int type; // Event type (AutomationEventType) - int params[4]; // Event parameters (if required) -} AutomationEvent; - -// Automation event list -typedef struct AutomationEventList { - unsigned int capacity; // Events max entries (MAX_AUTOMATION_EVENTS) - unsigned int count; // Events entries count - AutomationEvent *events; // Events entries -} AutomationEventList; - -//---------------------------------------------------------------------------------- -// Enumerators Definition -//---------------------------------------------------------------------------------- -// System/Window config flags -// NOTE: Every bit registers one state (use it with bit masks) -// By default all flags are set to 0 -typedef enum { - FLAG_VSYNC_HINT = 0x00000040, // Set to try enabling V-Sync on GPU - FLAG_FULLSCREEN_MODE = 0x00000002, // Set to run program in fullscreen - FLAG_WINDOW_RESIZABLE = 0x00000004, // Set to allow resizable window - FLAG_WINDOW_UNDECORATED = 0x00000008, // Set to disable window decoration (frame and buttons) - FLAG_WINDOW_HIDDEN = 0x00000080, // Set to hide window - FLAG_WINDOW_MINIMIZED = 0x00000200, // Set to minimize window (iconify) - FLAG_WINDOW_MAXIMIZED = 0x00000400, // Set to maximize window (expanded to monitor) - FLAG_WINDOW_UNFOCUSED = 0x00000800, // Set to window non focused - FLAG_WINDOW_TOPMOST = 0x00001000, // Set to window always on top - FLAG_WINDOW_ALWAYS_RUN = 0x00000100, // Set to allow windows running while minimized - FLAG_WINDOW_TRANSPARENT = 0x00000010, // Set to allow transparent framebuffer - FLAG_WINDOW_HIGHDPI = 0x00002000, // Set to support HighDPI - FLAG_WINDOW_MOUSE_PASSTHROUGH = 0x00004000, // Set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED - FLAG_BORDERLESS_WINDOWED_MODE = 0x00008000, // Set to run program in borderless windowed mode - FLAG_MSAA_4X_HINT = 0x00000020, // Set to try enabling MSAA 4X - FLAG_INTERLACED_HINT = 0x00010000 // Set to try enabling interlaced video format (for V3D) -} ConfigFlags; - -// Trace log level -// NOTE: Organized by priority level -typedef enum { - LOG_ALL = 0, // Display all logs - LOG_TRACE, // Trace logging, intended for internal use only - LOG_DEBUG, // Debug logging, used for internal debugging, it should be disabled on release builds - LOG_INFO, // Info logging, used for program execution info - LOG_WARNING, // Warning logging, used on recoverable failures - LOG_ERROR, // Error logging, used on unrecoverable failures - LOG_FATAL, // Fatal logging, used to abort program: exit(EXIT_FAILURE) - LOG_NONE // Disable logging -} TraceLogLevel; - -// Keyboard keys (US keyboard layout) -// NOTE: Use GetKeyPressed() to allow redefining -// required keys for alternative layouts -typedef enum { - KEY_NULL = 0, // Key: NULL, used for no key pressed - // Alphanumeric keys - KEY_APOSTROPHE = 39, // Key: ' - KEY_COMMA = 44, // Key: , - KEY_MINUS = 45, // Key: - - KEY_PERIOD = 46, // Key: . - KEY_SLASH = 47, // Key: / - KEY_ZERO = 48, // Key: 0 - KEY_ONE = 49, // Key: 1 - KEY_TWO = 50, // Key: 2 - KEY_THREE = 51, // Key: 3 - KEY_FOUR = 52, // Key: 4 - KEY_FIVE = 53, // Key: 5 - KEY_SIX = 54, // Key: 6 - KEY_SEVEN = 55, // Key: 7 - KEY_EIGHT = 56, // Key: 8 - KEY_NINE = 57, // Key: 9 - KEY_SEMICOLON = 59, // Key: ; - KEY_EQUAL = 61, // Key: = - KEY_A = 65, // Key: A | a - KEY_B = 66, // Key: B | b - KEY_C = 67, // Key: C | c - KEY_D = 68, // Key: D | d - KEY_E = 69, // Key: E | e - KEY_F = 70, // Key: F | f - KEY_G = 71, // Key: G | g - KEY_H = 72, // Key: H | h - KEY_I = 73, // Key: I | i - KEY_J = 74, // Key: J | j - KEY_K = 75, // Key: K | k - KEY_L = 76, // Key: L | l - KEY_M = 77, // Key: M | m - KEY_N = 78, // Key: N | n - KEY_O = 79, // Key: O | o - KEY_P = 80, // Key: P | p - KEY_Q = 81, // Key: Q | q - KEY_R = 82, // Key: R | r - KEY_S = 83, // Key: S | s - KEY_T = 84, // Key: T | t - KEY_U = 85, // Key: U | u - KEY_V = 86, // Key: V | v - KEY_W = 87, // Key: W | w - KEY_X = 88, // Key: X | x - KEY_Y = 89, // Key: Y | y - KEY_Z = 90, // Key: Z | z - KEY_LEFT_BRACKET = 91, // Key: [ - KEY_BACKSLASH = 92, // Key: '\' - KEY_RIGHT_BRACKET = 93, // Key: ] - KEY_GRAVE = 96, // Key: ` - // Function keys - KEY_SPACE = 32, // Key: Space - KEY_ESCAPE = 256, // Key: Esc - KEY_ENTER = 257, // Key: Enter - KEY_TAB = 258, // Key: Tab - KEY_BACKSPACE = 259, // Key: Backspace - KEY_INSERT = 260, // Key: Ins - KEY_DELETE = 261, // Key: Del - KEY_RIGHT = 262, // Key: Cursor right - KEY_LEFT = 263, // Key: Cursor left - KEY_DOWN = 264, // Key: Cursor down - KEY_UP = 265, // Key: Cursor up - KEY_PAGE_UP = 266, // Key: Page up - KEY_PAGE_DOWN = 267, // Key: Page down - KEY_HOME = 268, // Key: Home - KEY_END = 269, // Key: End - KEY_CAPS_LOCK = 280, // Key: Caps lock - KEY_SCROLL_LOCK = 281, // Key: Scroll down - KEY_NUM_LOCK = 282, // Key: Num lock - KEY_PRINT_SCREEN = 283, // Key: Print screen - KEY_PAUSE = 284, // Key: Pause - KEY_F1 = 290, // Key: F1 - KEY_F2 = 291, // Key: F2 - KEY_F3 = 292, // Key: F3 - KEY_F4 = 293, // Key: F4 - KEY_F5 = 294, // Key: F5 - KEY_F6 = 295, // Key: F6 - KEY_F7 = 296, // Key: F7 - KEY_F8 = 297, // Key: F8 - KEY_F9 = 298, // Key: F9 - KEY_F10 = 299, // Key: F10 - KEY_F11 = 300, // Key: F11 - KEY_F12 = 301, // Key: F12 - KEY_LEFT_SHIFT = 340, // Key: Shift left - KEY_LEFT_CONTROL = 341, // Key: Control left - KEY_LEFT_ALT = 342, // Key: Alt left - KEY_LEFT_SUPER = 343, // Key: Super left - KEY_RIGHT_SHIFT = 344, // Key: Shift right - KEY_RIGHT_CONTROL = 345, // Key: Control right - KEY_RIGHT_ALT = 346, // Key: Alt right - KEY_RIGHT_SUPER = 347, // Key: Super right - KEY_KB_MENU = 348, // Key: KB menu - // Keypad keys - KEY_KP_0 = 320, // Key: Keypad 0 - KEY_KP_1 = 321, // Key: Keypad 1 - KEY_KP_2 = 322, // Key: Keypad 2 - KEY_KP_3 = 323, // Key: Keypad 3 - KEY_KP_4 = 324, // Key: Keypad 4 - KEY_KP_5 = 325, // Key: Keypad 5 - KEY_KP_6 = 326, // Key: Keypad 6 - KEY_KP_7 = 327, // Key: Keypad 7 - KEY_KP_8 = 328, // Key: Keypad 8 - KEY_KP_9 = 329, // Key: Keypad 9 - KEY_KP_DECIMAL = 330, // Key: Keypad . - KEY_KP_DIVIDE = 331, // Key: Keypad / - KEY_KP_MULTIPLY = 332, // Key: Keypad * - KEY_KP_SUBTRACT = 333, // Key: Keypad - - KEY_KP_ADD = 334, // Key: Keypad + - KEY_KP_ENTER = 335, // Key: Keypad Enter - KEY_KP_EQUAL = 336, // Key: Keypad = - // Android key buttons - KEY_BACK = 4, // Key: Android back button - KEY_MENU = 82, // Key: Android menu button - KEY_VOLUME_UP = 24, // Key: Android volume up button - KEY_VOLUME_DOWN = 25 // Key: Android volume down button -} KeyboardKey; - -// Add backwards compatibility support for deprecated names -#define MOUSE_LEFT_BUTTON MOUSE_BUTTON_LEFT -#define MOUSE_RIGHT_BUTTON MOUSE_BUTTON_RIGHT -#define MOUSE_MIDDLE_BUTTON MOUSE_BUTTON_MIDDLE - -// Mouse buttons -typedef enum { - MOUSE_BUTTON_LEFT = 0, // Mouse button left - MOUSE_BUTTON_RIGHT = 1, // Mouse button right - MOUSE_BUTTON_MIDDLE = 2, // Mouse button middle (pressed wheel) - MOUSE_BUTTON_SIDE = 3, // Mouse button side (advanced mouse device) - MOUSE_BUTTON_EXTRA = 4, // Mouse button extra (advanced mouse device) - MOUSE_BUTTON_FORWARD = 5, // Mouse button forward (advanced mouse device) - MOUSE_BUTTON_BACK = 6, // Mouse button back (advanced mouse device) -} MouseButton; - -// Mouse cursor -typedef enum { - MOUSE_CURSOR_DEFAULT = 0, // Default pointer shape - MOUSE_CURSOR_ARROW = 1, // Arrow shape - MOUSE_CURSOR_IBEAM = 2, // Text writing cursor shape - MOUSE_CURSOR_CROSSHAIR = 3, // Cross shape - MOUSE_CURSOR_POINTING_HAND = 4, // Pointing hand cursor - MOUSE_CURSOR_RESIZE_EW = 5, // Horizontal resize/move arrow shape - MOUSE_CURSOR_RESIZE_NS = 6, // Vertical resize/move arrow shape - MOUSE_CURSOR_RESIZE_NWSE = 7, // Top-left to bottom-right diagonal resize/move arrow shape - MOUSE_CURSOR_RESIZE_NESW = 8, // The top-right to bottom-left diagonal resize/move arrow shape - MOUSE_CURSOR_RESIZE_ALL = 9, // The omnidirectional resize/move cursor shape - MOUSE_CURSOR_NOT_ALLOWED = 10 // The operation-not-allowed shape -} MouseCursor; - -// Gamepad buttons -typedef enum { - GAMEPAD_BUTTON_UNKNOWN = 0, // Unknown button, just for error checking - GAMEPAD_BUTTON_LEFT_FACE_UP, // Gamepad left DPAD up button - GAMEPAD_BUTTON_LEFT_FACE_RIGHT, // Gamepad left DPAD right button - GAMEPAD_BUTTON_LEFT_FACE_DOWN, // Gamepad left DPAD down button - GAMEPAD_BUTTON_LEFT_FACE_LEFT, // Gamepad left DPAD left button - GAMEPAD_BUTTON_RIGHT_FACE_UP, // Gamepad right button up (i.e. PS3: Triangle, Xbox: Y) - GAMEPAD_BUTTON_RIGHT_FACE_RIGHT, // Gamepad right button right (i.e. PS3: Square, Xbox: X) - GAMEPAD_BUTTON_RIGHT_FACE_DOWN, // Gamepad right button down (i.e. PS3: Cross, Xbox: A) - GAMEPAD_BUTTON_RIGHT_FACE_LEFT, // Gamepad right button left (i.e. PS3: Circle, Xbox: B) - GAMEPAD_BUTTON_LEFT_TRIGGER_1, // Gamepad top/back trigger left (first), it could be a trailing button - GAMEPAD_BUTTON_LEFT_TRIGGER_2, // Gamepad top/back trigger left (second), it could be a trailing button - GAMEPAD_BUTTON_RIGHT_TRIGGER_1, // Gamepad top/back trigger right (one), it could be a trailing button - GAMEPAD_BUTTON_RIGHT_TRIGGER_2, // Gamepad top/back trigger right (second), it could be a trailing button - GAMEPAD_BUTTON_MIDDLE_LEFT, // Gamepad center buttons, left one (i.e. PS3: Select) - GAMEPAD_BUTTON_MIDDLE, // Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX) - GAMEPAD_BUTTON_MIDDLE_RIGHT, // Gamepad center buttons, right one (i.e. PS3: Start) - GAMEPAD_BUTTON_LEFT_THUMB, // Gamepad joystick pressed button left - GAMEPAD_BUTTON_RIGHT_THUMB // Gamepad joystick pressed button right -} GamepadButton; - -// Gamepad axis -typedef enum { - GAMEPAD_AXIS_LEFT_X = 0, // Gamepad left stick X axis - GAMEPAD_AXIS_LEFT_Y = 1, // Gamepad left stick Y axis - GAMEPAD_AXIS_RIGHT_X = 2, // Gamepad right stick X axis - GAMEPAD_AXIS_RIGHT_Y = 3, // Gamepad right stick Y axis - GAMEPAD_AXIS_LEFT_TRIGGER = 4, // Gamepad back trigger left, pressure level: [1..-1] - GAMEPAD_AXIS_RIGHT_TRIGGER = 5 // Gamepad back trigger right, pressure level: [1..-1] -} GamepadAxis; - -// Material map index -typedef enum { - MATERIAL_MAP_ALBEDO = 0, // Albedo material (same as: MATERIAL_MAP_DIFFUSE) - MATERIAL_MAP_METALNESS, // Metalness material (same as: MATERIAL_MAP_SPECULAR) - MATERIAL_MAP_NORMAL, // Normal material - MATERIAL_MAP_ROUGHNESS, // Roughness material - MATERIAL_MAP_OCCLUSION, // Ambient occlusion material - MATERIAL_MAP_EMISSION, // Emission material - MATERIAL_MAP_HEIGHT, // Heightmap material - MATERIAL_MAP_CUBEMAP, // Cubemap material (NOTE: Uses GL_TEXTURE_CUBE_MAP) - MATERIAL_MAP_IRRADIANCE, // Irradiance material (NOTE: Uses GL_TEXTURE_CUBE_MAP) - MATERIAL_MAP_PREFILTER, // Prefilter material (NOTE: Uses GL_TEXTURE_CUBE_MAP) - MATERIAL_MAP_BRDF // Brdf material -} MaterialMapIndex; - -#define MATERIAL_MAP_DIFFUSE MATERIAL_MAP_ALBEDO -#define MATERIAL_MAP_SPECULAR MATERIAL_MAP_METALNESS - -// Shader location index -typedef enum { - SHADER_LOC_VERTEX_POSITION = 0, // Shader location: vertex attribute: position - SHADER_LOC_VERTEX_TEXCOORD01, // Shader location: vertex attribute: texcoord01 - SHADER_LOC_VERTEX_TEXCOORD02, // Shader location: vertex attribute: texcoord02 - SHADER_LOC_VERTEX_NORMAL, // Shader location: vertex attribute: normal - SHADER_LOC_VERTEX_TANGENT, // Shader location: vertex attribute: tangent - SHADER_LOC_VERTEX_COLOR, // Shader location: vertex attribute: color - SHADER_LOC_MATRIX_MVP, // Shader location: matrix uniform: model-view-projection - SHADER_LOC_MATRIX_VIEW, // Shader location: matrix uniform: view (camera transform) - SHADER_LOC_MATRIX_PROJECTION, // Shader location: matrix uniform: projection - SHADER_LOC_MATRIX_MODEL, // Shader location: matrix uniform: model (transform) - SHADER_LOC_MATRIX_NORMAL, // Shader location: matrix uniform: normal - SHADER_LOC_VECTOR_VIEW, // Shader location: vector uniform: view - SHADER_LOC_COLOR_DIFFUSE, // Shader location: vector uniform: diffuse color - SHADER_LOC_COLOR_SPECULAR, // Shader location: vector uniform: specular color - SHADER_LOC_COLOR_AMBIENT, // Shader location: vector uniform: ambient color - SHADER_LOC_MAP_ALBEDO, // Shader location: sampler2d texture: albedo (same as: SHADER_LOC_MAP_DIFFUSE) - SHADER_LOC_MAP_METALNESS, // Shader location: sampler2d texture: metalness (same as: SHADER_LOC_MAP_SPECULAR) - SHADER_LOC_MAP_NORMAL, // Shader location: sampler2d texture: normal - SHADER_LOC_MAP_ROUGHNESS, // Shader location: sampler2d texture: roughness - SHADER_LOC_MAP_OCCLUSION, // Shader location: sampler2d texture: occlusion - SHADER_LOC_MAP_EMISSION, // Shader location: sampler2d texture: emission - SHADER_LOC_MAP_HEIGHT, // Shader location: sampler2d texture: height - SHADER_LOC_MAP_CUBEMAP, // Shader location: samplerCube texture: cubemap - SHADER_LOC_MAP_IRRADIANCE, // Shader location: samplerCube texture: irradiance - SHADER_LOC_MAP_PREFILTER, // Shader location: samplerCube texture: prefilter - SHADER_LOC_MAP_BRDF // Shader location: sampler2d texture: brdf -} ShaderLocationIndex; - -#define SHADER_LOC_MAP_DIFFUSE SHADER_LOC_MAP_ALBEDO -#define SHADER_LOC_MAP_SPECULAR SHADER_LOC_MAP_METALNESS - -// Shader uniform data type -typedef enum { - SHADER_UNIFORM_FLOAT = 0, // Shader uniform type: float - SHADER_UNIFORM_VEC2, // Shader uniform type: vec2 (2 float) - SHADER_UNIFORM_VEC3, // Shader uniform type: vec3 (3 float) - SHADER_UNIFORM_VEC4, // Shader uniform type: vec4 (4 float) - SHADER_UNIFORM_INT, // Shader uniform type: int - SHADER_UNIFORM_IVEC2, // Shader uniform type: ivec2 (2 int) - SHADER_UNIFORM_IVEC3, // Shader uniform type: ivec3 (3 int) - SHADER_UNIFORM_IVEC4, // Shader uniform type: ivec4 (4 int) - SHADER_UNIFORM_SAMPLER2D // Shader uniform type: sampler2d -} ShaderUniformDataType; - -// Shader attribute data types -typedef enum { - SHADER_ATTRIB_FLOAT = 0, // Shader attribute type: float - SHADER_ATTRIB_VEC2, // Shader attribute type: vec2 (2 float) - SHADER_ATTRIB_VEC3, // Shader attribute type: vec3 (3 float) - SHADER_ATTRIB_VEC4 // Shader attribute type: vec4 (4 float) -} ShaderAttributeDataType; - -// Pixel formats -// NOTE: Support depends on OpenGL version and platform -typedef enum { - PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1, // 8 bit per pixel (no alpha) - PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA, // 8*2 bpp (2 channels) - PIXELFORMAT_UNCOMPRESSED_R5G6B5, // 16 bpp - PIXELFORMAT_UNCOMPRESSED_R8G8B8, // 24 bpp - PIXELFORMAT_UNCOMPRESSED_R5G5B5A1, // 16 bpp (1 bit alpha) - PIXELFORMAT_UNCOMPRESSED_R4G4B4A4, // 16 bpp (4 bit alpha) - PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, // 32 bpp - PIXELFORMAT_UNCOMPRESSED_R32, // 32 bpp (1 channel - float) - PIXELFORMAT_UNCOMPRESSED_R32G32B32, // 32*3 bpp (3 channels - float) - PIXELFORMAT_UNCOMPRESSED_R32G32B32A32, // 32*4 bpp (4 channels - float) - PIXELFORMAT_UNCOMPRESSED_R16, // 16 bpp (1 channel - half float) - PIXELFORMAT_UNCOMPRESSED_R16G16B16, // 16*3 bpp (3 channels - half float) - PIXELFORMAT_UNCOMPRESSED_R16G16B16A16, // 16*4 bpp (4 channels - half float) - PIXELFORMAT_COMPRESSED_DXT1_RGB, // 4 bpp (no alpha) - PIXELFORMAT_COMPRESSED_DXT1_RGBA, // 4 bpp (1 bit alpha) - PIXELFORMAT_COMPRESSED_DXT3_RGBA, // 8 bpp - PIXELFORMAT_COMPRESSED_DXT5_RGBA, // 8 bpp - PIXELFORMAT_COMPRESSED_ETC1_RGB, // 4 bpp - PIXELFORMAT_COMPRESSED_ETC2_RGB, // 4 bpp - PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA, // 8 bpp - PIXELFORMAT_COMPRESSED_PVRT_RGB, // 4 bpp - PIXELFORMAT_COMPRESSED_PVRT_RGBA, // 4 bpp - PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA, // 8 bpp - PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA // 2 bpp -} PixelFormat; - -// Texture parameters: filter mode -// NOTE 1: Filtering considers mipmaps if available in the texture -// NOTE 2: Filter is accordingly set for minification and magnification -typedef enum { - TEXTURE_FILTER_POINT = 0, // No filter, just pixel approximation - TEXTURE_FILTER_BILINEAR, // Linear filtering - TEXTURE_FILTER_TRILINEAR, // Trilinear filtering (linear with mipmaps) - TEXTURE_FILTER_ANISOTROPIC_4X, // Anisotropic filtering 4x - TEXTURE_FILTER_ANISOTROPIC_8X, // Anisotropic filtering 8x - TEXTURE_FILTER_ANISOTROPIC_16X, // Anisotropic filtering 16x -} TextureFilter; - -// Texture parameters: wrap mode -typedef enum { - TEXTURE_WRAP_REPEAT = 0, // Repeats texture in tiled mode - TEXTURE_WRAP_CLAMP, // Clamps texture to edge pixel in tiled mode - TEXTURE_WRAP_MIRROR_REPEAT, // Mirrors and repeats the texture in tiled mode - TEXTURE_WRAP_MIRROR_CLAMP // Mirrors and clamps to border the texture in tiled mode -} TextureWrap; - -// Cubemap layouts -typedef enum { - CUBEMAP_LAYOUT_AUTO_DETECT = 0, // Automatically detect layout type - CUBEMAP_LAYOUT_LINE_VERTICAL, // Layout is defined by a vertical line with faces - CUBEMAP_LAYOUT_LINE_HORIZONTAL, // Layout is defined by a horizontal line with faces - CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR, // Layout is defined by a 3x4 cross with cubemap faces - CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE, // Layout is defined by a 4x3 cross with cubemap faces - CUBEMAP_LAYOUT_PANORAMA // Layout is defined by a panorama image (equirrectangular map) -} CubemapLayout; - -// Font type, defines generation method -typedef enum { - FONT_DEFAULT = 0, // Default font generation, anti-aliased - FONT_BITMAP, // Bitmap font generation, no anti-aliasing - FONT_SDF // SDF font generation, requires external shader -} FontType; - -// Color blending modes (pre-defined) -typedef enum { - BLEND_ALPHA = 0, // Blend textures considering alpha (default) - BLEND_ADDITIVE, // Blend textures adding colors - BLEND_MULTIPLIED, // Blend textures multiplying colors - BLEND_ADD_COLORS, // Blend textures adding colors (alternative) - BLEND_SUBTRACT_COLORS, // Blend textures subtracting colors (alternative) - BLEND_ALPHA_PREMULTIPLY, // Blend premultiplied textures considering alpha - BLEND_CUSTOM, // Blend textures using custom src/dst factors (use rlSetBlendFactors()) - BLEND_CUSTOM_SEPARATE // Blend textures using custom rgb/alpha separate src/dst factors (use rlSetBlendFactorsSeparate()) -} BlendMode; - -// Gesture -// NOTE: Provided as bit-wise flags to enable only desired gestures -typedef enum { - GESTURE_NONE = 0, // No gesture - GESTURE_TAP = 1, // Tap gesture - GESTURE_DOUBLETAP = 2, // Double tap gesture - GESTURE_HOLD = 4, // Hold gesture - GESTURE_DRAG = 8, // Drag gesture - GESTURE_SWIPE_RIGHT = 16, // Swipe right gesture - GESTURE_SWIPE_LEFT = 32, // Swipe left gesture - GESTURE_SWIPE_UP = 64, // Swipe up gesture - GESTURE_SWIPE_DOWN = 128, // Swipe down gesture - GESTURE_PINCH_IN = 256, // Pinch in gesture - GESTURE_PINCH_OUT = 512 // Pinch out gesture -} Gesture; - -// Camera system modes -typedef enum { - CAMERA_CUSTOM = 0, // Custom camera - CAMERA_FREE, // Free camera - CAMERA_ORBITAL, // Orbital camera - CAMERA_FIRST_PERSON, // First person camera - CAMERA_THIRD_PERSON // Third person camera -} CameraMode; - -// Camera projection -typedef enum { - CAMERA_PERSPECTIVE = 0, // Perspective projection - CAMERA_ORTHOGRAPHIC // Orthographic projection -} CameraProjection; - -// N-patch layout -typedef enum { - NPATCH_NINE_PATCH = 0, // Npatch layout: 3x3 tiles - NPATCH_THREE_PATCH_VERTICAL, // Npatch layout: 1x3 tiles - NPATCH_THREE_PATCH_HORIZONTAL // Npatch layout: 3x1 tiles -} NPatchLayout; - -// Callbacks to hook some internal functions -// WARNING: These callbacks are intended for advance users -typedef void (*TraceLogCallback)(int logLevel, const char *text, va_list args); // Logging: Redirect trace log messages -typedef unsigned char *(*LoadFileDataCallback)(const char *fileName, int *dataSize); // FileIO: Load binary data -typedef bool (*SaveFileDataCallback)(const char *fileName, void *data, int dataSize); // FileIO: Save binary data -typedef char *(*LoadFileTextCallback)(const char *fileName); // FileIO: Load text data -typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileIO: Save text data - -//------------------------------------------------------------------------------------ -// Global Variables Definition -//------------------------------------------------------------------------------------ -// It's lonely here... - -//------------------------------------------------------------------------------------ -// Window and Graphics Device Functions (Module: core) -//------------------------------------------------------------------------------------ - -#if defined(__cplusplus) -extern "C" { // Prevents name mangling of functions -#endif - -// Window-related functions -RLAPI void InitWindow(int width, int height, const char *title); // Initialize window and OpenGL context -RLAPI void CloseWindow(void); // Close window and unload OpenGL context -RLAPI bool WindowShouldClose(void); // Check if application should close (KEY_ESCAPE pressed or windows close icon clicked) -RLAPI bool IsWindowReady(void); // Check if window has been initialized successfully -RLAPI bool IsWindowFullscreen(void); // Check if window is currently fullscreen -RLAPI bool IsWindowHidden(void); // Check if window is currently hidden (only PLATFORM_DESKTOP) -RLAPI bool IsWindowMinimized(void); // Check if window is currently minimized (only PLATFORM_DESKTOP) -RLAPI bool IsWindowMaximized(void); // Check if window is currently maximized (only PLATFORM_DESKTOP) -RLAPI bool IsWindowFocused(void); // Check if window is currently focused (only PLATFORM_DESKTOP) -RLAPI bool IsWindowResized(void); // Check if window has been resized last frame -RLAPI bool IsWindowState(unsigned int flag); // Check if one specific window flag is enabled -RLAPI void SetWindowState(unsigned int flags); // Set window configuration state using flags (only PLATFORM_DESKTOP) -RLAPI void ClearWindowState(unsigned int flags); // Clear window configuration state flags -RLAPI void ToggleFullscreen(void); // Toggle window state: fullscreen/windowed (only PLATFORM_DESKTOP) -RLAPI void ToggleBorderlessWindowed(void); // Toggle window state: borderless windowed (only PLATFORM_DESKTOP) -RLAPI void MaximizeWindow(void); // Set window state: maximized, if resizable (only PLATFORM_DESKTOP) -RLAPI void MinimizeWindow(void); // Set window state: minimized, if resizable (only PLATFORM_DESKTOP) -RLAPI void RestoreWindow(void); // Set window state: not minimized/maximized (only PLATFORM_DESKTOP) -RLAPI void SetWindowIcon(Image image); // Set icon for window (single image, RGBA 32bit, only PLATFORM_DESKTOP) -RLAPI void SetWindowIcons(Image *images, int count); // Set icon for window (multiple images, RGBA 32bit, only PLATFORM_DESKTOP) -RLAPI void SetWindowTitle(const char *title); // Set title for window (only PLATFORM_DESKTOP and PLATFORM_WEB) -RLAPI void SetWindowPosition(int x, int y); // Set window position on screen (only PLATFORM_DESKTOP) -RLAPI void SetWindowMonitor(int monitor); // Set monitor for the current window -RLAPI void SetWindowMinSize(int width, int height); // Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE) -RLAPI void SetWindowMaxSize(int width, int height); // Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE) -RLAPI void SetWindowSize(int width, int height); // Set window dimensions -RLAPI void SetWindowOpacity(float opacity); // Set window opacity [0.0f..1.0f] (only PLATFORM_DESKTOP) -RLAPI void SetWindowFocused(void); // Set window focused (only PLATFORM_DESKTOP) -RLAPI void *GetWindowHandle(void); // Get native window handle -RLAPI int GetScreenWidth(void); // Get current screen width -RLAPI int GetScreenHeight(void); // Get current screen height -RLAPI int GetRenderWidth(void); // Get current render width (it considers HiDPI) -RLAPI int GetRenderHeight(void); // Get current render height (it considers HiDPI) -RLAPI int GetMonitorCount(void); // Get number of connected monitors -RLAPI int GetCurrentMonitor(void); // Get current connected monitor -RLAPI Vector2 GetMonitorPosition(int monitor); // Get specified monitor position -RLAPI int GetMonitorWidth(int monitor); // Get specified monitor width (current video mode used by monitor) -RLAPI int GetMonitorHeight(int monitor); // Get specified monitor height (current video mode used by monitor) -RLAPI int GetMonitorPhysicalWidth(int monitor); // Get specified monitor physical width in millimetres -RLAPI int GetMonitorPhysicalHeight(int monitor); // Get specified monitor physical height in millimetres -RLAPI int GetMonitorRefreshRate(int monitor); // Get specified monitor refresh rate -RLAPI Vector2 GetWindowPosition(void); // Get window position XY on monitor -RLAPI Vector2 GetWindowScaleDPI(void); // Get window scale DPI factor -RLAPI const char *GetMonitorName(int monitor); // Get the human-readable, UTF-8 encoded name of the specified monitor -RLAPI void SetClipboardText(const char *text); // Set clipboard text content -RLAPI const char *GetClipboardText(void); // Get clipboard text content -RLAPI void EnableEventWaiting(void); // Enable waiting for events on EndDrawing(), no automatic event polling -RLAPI void DisableEventWaiting(void); // Disable waiting for events on EndDrawing(), automatic events polling - -// 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 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); // Begin 2D mode with custom camera (2D) -RLAPI void EndMode2D(void); // Ends 2D mode with custom camera -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); // 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, 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 -RLAPI void BeginVrStereoMode(VrStereoConfig config); // Begin stereo rendering (requires VR simulator) -RLAPI void EndVrStereoMode(void); // End stereo rendering (requires VR simulator) - -// VR stereo config functions for VR simulator -RLAPI VrStereoConfig LoadVrStereoConfig(VrDeviceInfo device); // Load VR stereo config for VR simulator device parameters -RLAPI void UnloadVrStereoConfig(VrStereoConfig config); // Unload VR stereo config - -// Shader management functions -// NOTE: Shader functionality is not available on OpenGL 1.1 -RLAPI Shader LoadShader(const char *vsFileName, const char *fsFileName); // Load shader from files and bind default locations -RLAPI Shader LoadShaderFromMemory(const char *vsCode, const char *fsCode); // Load shader from code strings and bind default locations -RLAPI bool IsShaderReady(Shader shader); // Check if a shader is ready -RLAPI int GetShaderLocation(Shader shader, const char *uniformName); // Get shader uniform location -RLAPI int GetShaderLocationAttrib(Shader shader, const char *attribName); // Get shader attribute location -RLAPI void SetShaderValue(Shader shader, int locIndex, const void *value, int uniformType); // Set shader uniform value -RLAPI void SetShaderValueV(Shader shader, int locIndex, const void *value, int uniformType, int count); // Set shader uniform value vector -RLAPI void SetShaderValueMatrix(Shader shader, int locIndex, Matrix mat); // Set shader uniform value (matrix 4x4) -RLAPI void SetShaderValueTexture(Shader shader, int locIndex, Texture2D texture); // Set shader uniform value for texture (sampler2d) -RLAPI void UnloadShader(Shader shader); // Unload shader from GPU memory (VRAM) - -// Screen-space-related functions -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 GetScreenToWorld2D(Vector2 position, Camera2D camera); // Get the world space position for a 2d camera screen 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 - -// Timing-related functions -RLAPI void SetTargetFPS(int fps); // Set target FPS (maximum) -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() -RLAPI int GetFPS(void); // Get current FPS - -// 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 timing + 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(double seconds); // Wait for some time (halt program execution) - -// Random values generation functions -RLAPI void SetRandomSeed(unsigned int seed); // Set the seed for the random number generator -RLAPI int GetRandomValue(int min, int max); // Get a random value between min and max (both included) -RLAPI int *LoadRandomSequence(unsigned int count, int min, int max); // Load random values sequence, no values repeated -RLAPI void UnloadRandomSequence(int *sequence); // Unload random values sequence - -// Misc. functions -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 OpenURL(const char *url); // Open URL with default system browser (if available) - -// NOTE: Following functions implemented in module [utils] -//------------------------------------------------------------------ -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(unsigned int size); // Internal memory allocator -RLAPI void *MemRealloc(void *ptr, unsigned int size); // Internal memory reallocator -RLAPI void MemFree(void *ptr); // Internal memory free - -// Set custom callbacks -// WARNING: Callbacks setup is intended for advance users -RLAPI void SetTraceLogCallback(TraceLogCallback callback); // Set custom trace log -RLAPI void SetLoadFileDataCallback(LoadFileDataCallback callback); // Set custom file binary data loader -RLAPI void SetSaveFileDataCallback(SaveFileDataCallback callback); // Set custom file binary data saver -RLAPI void SetLoadFileTextCallback(LoadFileTextCallback callback); // Set custom file text data loader -RLAPI void SetSaveFileTextCallback(SaveFileTextCallback callback); // Set custom file text data saver - -// Files management functions -RLAPI unsigned char *LoadFileData(const char *fileName, int *dataSize); // Load file data as byte array (read) -RLAPI void UnloadFileData(unsigned char *data); // Unload file data allocated by LoadFileData() -RLAPI bool SaveFileData(const char *fileName, void *data, int dataSize); // Save data to file from byte array (write), returns true on success -RLAPI bool ExportDataAsCode(const unsigned char *data, int dataSize, const char *fileName); // Export data to code (.h), returns true on success -RLAPI char *LoadFileText(const char *fileName); // Load text data from file (read), returns a '\0' terminated string -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 -//------------------------------------------------------------------ - -// File system functions -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 int GetFileLength(const char *fileName); // Get file length in bytes (NOTE: GetFileSize() conflicts with windows.h) -RLAPI const char *GetFileExtension(const char *fileName); // Get pointer to extension for a filename string (includes dot: '.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) -RLAPI const char *GetPrevDirectoryPath(const char *dirPath); // Get previous directory path for a given path (uses static string) -RLAPI const char *GetWorkingDirectory(void); // Get current working directory (uses static string) -RLAPI const char *GetApplicationDirectory(void); // Get the directory of the running application (uses static string) -RLAPI bool ChangeDirectory(const char *dir); // Change working directory, return true on success -RLAPI bool IsPathFile(const char *path); // Check if a given path is a file or a directory -RLAPI FilePathList LoadDirectoryFiles(const char *dirPath); // Load directory filepaths -RLAPI FilePathList LoadDirectoryFilesEx(const char *basePath, const char *filter, bool scanSubdirs); // Load directory filepaths with extension filtering and recursive directory scan -RLAPI void UnloadDirectoryFiles(FilePathList files); // Unload filepaths -RLAPI bool IsFileDropped(void); // Check if a file has been dropped into window -RLAPI FilePathList LoadDroppedFiles(void); // Load dropped filepaths -RLAPI void UnloadDroppedFiles(FilePathList files); // Unload dropped filepaths -RLAPI long GetFileModTime(const char *fileName); // Get file modification time (last write time) - -// Compression/Encoding functionality -RLAPI unsigned char *CompressData(const unsigned char *data, int dataSize, int *compDataSize); // Compress data (DEFLATE algorithm), memory must be MemFree() -RLAPI unsigned char *DecompressData(const unsigned char *compData, int compDataSize, int *dataSize); // Decompress data (DEFLATE algorithm), memory must be MemFree() -RLAPI char *EncodeDataBase64(const unsigned char *data, int dataSize, int *outputSize); // Encode data to Base64 string, memory must be MemFree() -RLAPI unsigned char *DecodeDataBase64(const unsigned char *data, int *outputSize); // Decode Base64 string data, memory must be MemFree() - -// Automation events functionality -RLAPI AutomationEventList LoadAutomationEventList(const char *fileName); // Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS -RLAPI void UnloadAutomationEventList(AutomationEventList *list); // Unload automation events list from file -RLAPI bool ExportAutomationEventList(AutomationEventList list, const char *fileName); // Export automation events list as text file -RLAPI void SetAutomationEventList(AutomationEventList *list); // Set automation event list to record to -RLAPI void SetAutomationEventBaseFrame(int frame); // Set automation event internal base frame to start recording -RLAPI void StartAutomationEventRecording(void); // Start recording automation events (AutomationEventList must be set) -RLAPI void StopAutomationEventRecording(void); // Stop recording automation events -RLAPI void PlayAutomationEvent(AutomationEvent event); // Play a recorded automation event - -//------------------------------------------------------------------------------------ -// Input Handling Functions (Module: core) -//------------------------------------------------------------------------------------ - -// Input-related functions: keyboard -RLAPI bool IsKeyPressed(int key); // Check if a key has been pressed once -RLAPI bool IsKeyPressedRepeat(int key); // Check if a key has been pressed again (Only PLATFORM_DESKTOP) -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 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 -RLAPI void SetExitKey(int key); // Set a custom key to exit program (default is ESC) - -// Input-related functions: gamepads -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); // 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); // 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); // Get mouse wheel movement for X or Y, whichever is larger -RLAPI Vector2 GetMouseWheelMoveV(void); // Get mouse wheel movement for both X and Y -RLAPI void SetMouseCursor(int cursor); // Set mouse cursor - -// Input-related functions: touch -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: rgestures) -//------------------------------------------------------------------------------------ -RLAPI void SetGesturesEnabled(unsigned int flags); // Enable a set of gestures using flags -RLAPI bool IsGestureDetected(unsigned int gesture); // Check if a gesture have been detected -RLAPI int GetGestureDetected(void); // Get latest detected gesture -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 -RLAPI Vector2 GetGesturePinchVector(void); // Get gesture pinch delta -RLAPI float GetGesturePinchAngle(void); // Get gesture pinch angle - -//------------------------------------------------------------------------------------ -// Camera System Functions (Module: rcamera) -//------------------------------------------------------------------------------------ -RLAPI void UpdateCamera(Camera *camera, int mode); // Update camera position for selected mode -RLAPI void UpdateCameraPro(Camera *camera, Vector3 movement, Vector3 rotation, float zoom); // Update camera movement/rotation - -//------------------------------------------------------------------------------------ -// Basic Shapes Drawing Functions (Module: shapes) -//------------------------------------------------------------------------------------ -// 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 - -// Basic shapes drawing functions -RLAPI void DrawPixel(int posX, int posY, Color color); // Draw a pixel -RLAPI void DrawPixelV(Vector2 position, Color color); // Draw a pixel (Vector version) -RLAPI void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw a line -RLAPI void DrawLineV(Vector2 startPos, Vector2 endPos, Color color); // Draw a line (using gl lines) -RLAPI void DrawLineEx(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw a line (using triangles/quads) -RLAPI void DrawLineStrip(Vector2 *points, int pointCount, Color color); // Draw lines sequence (using gl lines) -RLAPI void DrawLineBezier(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw line segment cubic-bezier in-out interpolation -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 -RLAPI void DrawCircleGradient(int centerX, int centerY, float radius, Color color1, Color color2); // Draw a gradient-filled circle -RLAPI void DrawCircleV(Vector2 center, float radius, Color color); // Draw a color-filled circle (Vector version) -RLAPI void DrawCircleLines(int centerX, int centerY, float radius, Color color); // Draw circle outline -RLAPI void DrawCircleLinesV(Vector2 center, float radius, Color color); // Draw circle outline (Vector version) -RLAPI void DrawEllipse(int centerX, int centerY, float radiusH, float radiusV, Color color); // Draw ellipse -RLAPI void DrawEllipseLines(int centerX, int centerY, float radiusH, float radiusV, Color color); // Draw ellipse outline -RLAPI void DrawRing(Vector2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, int segments, Color color); // Draw ring -RLAPI void DrawRingLines(Vector2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, int segments, Color color); // Draw ring outline -RLAPI void DrawRectangle(int posX, int posY, int width, int height, Color color); // Draw a color-filled rectangle -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 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, 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, 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 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 - -// Splines drawing functions -RLAPI void DrawSplineLinear(Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Linear, minimum 2 points -RLAPI void DrawSplineBasis(Vector2 *points, int pointCount, float thick, Color color); // Draw spline: B-Spline, minimum 4 points -RLAPI void DrawSplineCatmullRom(Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Catmull-Rom, minimum 4 points -RLAPI void DrawSplineBezierQuadratic(Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] -RLAPI void DrawSplineBezierCubic(Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] -RLAPI void DrawSplineSegmentLinear(Vector2 p1, Vector2 p2, float thick, Color color); // Draw spline segment: Linear, 2 points -RLAPI void DrawSplineSegmentBasis(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color); // Draw spline segment: B-Spline, 4 points -RLAPI void DrawSplineSegmentCatmullRom(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color); // Draw spline segment: Catmull-Rom, 4 points -RLAPI void DrawSplineSegmentBezierQuadratic(Vector2 p1, Vector2 c2, Vector2 p3, float thick, Color color); // Draw spline segment: Quadratic Bezier, 2 points, 1 control point -RLAPI void DrawSplineSegmentBezierCubic(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, float thick, Color color); // Draw spline segment: Cubic Bezier, 2 points, 2 control points - -// Spline segment point evaluation functions, for a given t [0.0f .. 1.0f] -RLAPI Vector2 GetSplinePointLinear(Vector2 startPos, Vector2 endPos, float t); // Get (evaluate) spline point: Linear -RLAPI Vector2 GetSplinePointBasis(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float t); // Get (evaluate) spline point: B-Spline -RLAPI Vector2 GetSplinePointCatmullRom(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float t); // Get (evaluate) spline point: Catmull-Rom -RLAPI Vector2 GetSplinePointBezierQuad(Vector2 p1, Vector2 c2, Vector2 p3, float t); // Get (evaluate) spline point: Quadratic Bezier -RLAPI Vector2 GetSplinePointBezierCubic(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, float t); // Get (evaluate) spline point: Cubic Bezier - -// Basic shapes collision detection functions -RLAPI bool CheckCollisionRecs(Rectangle rec1, Rectangle rec2); // Check collision between two rectangles -RLAPI bool CheckCollisionCircles(Vector2 center1, float radius1, Vector2 center2, float radius2); // Check collision between two circles -RLAPI bool CheckCollisionCircleRec(Vector2 center, float radius, Rectangle rec); // Check collision between circle and rectangle -RLAPI bool CheckCollisionPointRec(Vector2 point, Rectangle rec); // Check if point is inside rectangle -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 CheckCollisionPointPoly(Vector2 point, Vector2 *points, int pointCount); // Check if point is within a polygon described by array of vertices -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 - -//------------------------------------------------------------------------------------ -// Texture Loading and Drawing Functions (Module: textures) -//------------------------------------------------------------------------------------ - -// Image loading functions -// NOTE: These functions do not require GPU access -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 LoadImageSvg(const char *fileNameOrString, int width, int height); // Load image from SVG file data or string with specified size -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 LoadImageFromTexture(Texture2D texture); // Load image from GPU texture data -RLAPI Image LoadImageFromScreen(void); // Load image from screen buffer and (screenshot) -RLAPI bool IsImageReady(Image image); // Check if an image is ready -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 unsigned char *ExportImageToMemory(Image image, const char *fileType, int *fileSize); // Export image to memory buffer -RLAPI bool ExportImageAsCode(Image image, const char *fileName); // Export image as code file defining an array of bytes, returns true on success - -// Image generation functions -RLAPI Image GenImageColor(int width, int height, Color color); // Generate image: plain color -RLAPI Image GenImageGradientLinear(int width, int height, int direction, Color start, Color end); // Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient -RLAPI Image GenImageGradientRadial(int width, int height, float density, Color inner, Color outer); // Generate image: radial gradient -RLAPI Image GenImageGradientSquare(int width, int height, float density, Color inner, Color outer); // Generate image: square 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 GenImageText(int width, int height, const char *text); // Generate image: grayscale image from text data - -// Image manipulation functions -RLAPI Image ImageCopy(Image image); // Create an image duplicate (useful for transformations) -RLAPI Image ImageFromImage(Image image, Rectangle rec); // Create an image from another image piece -RLAPI Image ImageText(const char *text, int fontSize, Color color); // Create an image from text (default font) -RLAPI Image ImageTextEx(Font font, const char *text, float fontSize, float spacing, Color tint); // Create an image from text (custom sprite font) -RLAPI void ImageFormat(Image *image, int newFormat); // Convert image data to desired format -RLAPI void ImageToPOT(Image *image, Color fill); // Convert image to POT (power-of-two) -RLAPI void ImageCrop(Image *image, Rectangle crop); // Crop an image to a defined rectangle -RLAPI void ImageAlphaCrop(Image *image, float threshold); // Crop image depending on alpha value -RLAPI void ImageAlphaClear(Image *image, Color color, float threshold); // Clear alpha channel to desired color -RLAPI void ImageAlphaMask(Image *image, Image alphaMask); // Apply alpha mask to image -RLAPI void ImageAlphaPremultiply(Image *image); // Premultiply alpha channel -RLAPI void ImageBlurGaussian(Image *image, int blurSize); // Apply Gaussian blur using a box blur approximation -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); // 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 -RLAPI void ImageRotate(Image *image, int degrees); // Rotate image by input angle in degrees (-359 to 359) -RLAPI void ImageRotateCW(Image *image); // Rotate image clockwise 90deg -RLAPI void ImageRotateCCW(Image *image); // Rotate image counter-clockwise 90deg -RLAPI void ImageColorTint(Image *image, Color color); // Modify image color: tint -RLAPI void ImageColorInvert(Image *image); // Modify image color: invert -RLAPI void ImageColorGrayscale(Image *image); // Modify image color: grayscale -RLAPI void ImageColorContrast(Image *image, float contrast); // Modify image color: contrast (-100 to 100) -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 *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) -RLAPI void ImageClearBackground(Image *dst, Color color); // Clear image background with given color -RLAPI void ImageDrawPixel(Image *dst, int posX, int posY, Color color); // Draw pixel within an image -RLAPI void ImageDrawPixelV(Image *dst, Vector2 position, Color color); // Draw pixel within an image (Vector version) -RLAPI void ImageDrawLine(Image *dst, int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw line within an image -RLAPI void ImageDrawLineV(Image *dst, Vector2 start, Vector2 end, Color color); // Draw line within an image (Vector version) -RLAPI void ImageDrawCircle(Image *dst, int centerX, int centerY, int radius, Color color); // Draw a filled circle within an image -RLAPI void ImageDrawCircleV(Image *dst, Vector2 center, int radius, Color color); // Draw a filled circle within an image (Vector version) -RLAPI void ImageDrawCircleLines(Image *dst, int centerX, int centerY, int radius, Color color); // Draw circle outline within an image -RLAPI void ImageDrawCircleLinesV(Image *dst, Vector2 center, int radius, Color color); // Draw circle outline within an image (Vector version) -RLAPI void ImageDrawRectangle(Image *dst, int posX, int posY, int width, int height, Color color); // Draw rectangle within an image -RLAPI void ImageDrawRectangleV(Image *dst, Vector2 position, Vector2 size, Color color); // Draw rectangle within an image (Vector version) -RLAPI void ImageDrawRectangleRec(Image *dst, Rectangle rec, Color color); // Draw rectangle within an image -RLAPI void ImageDrawRectangleLines(Image *dst, Rectangle rec, int thick, Color color); // Draw rectangle lines within an image -RLAPI void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color tint); // Draw a source image within a destination image (tint applied to source) -RLAPI void ImageDrawText(Image *dst, const char *text, int posX, int posY, int fontSize, Color color); // Draw text (using default font) within an image (destination) -RLAPI void ImageDrawTextEx(Image *dst, Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint); // Draw text (custom sprite font) within an image (destination) - -// Texture loading functions -// NOTE: These functions require GPU access -RLAPI Texture2D LoadTexture(const char *fileName); // Load texture from file into GPU memory (VRAM) -RLAPI Texture2D LoadTextureFromImage(Image image); // Load texture from image data -RLAPI TextureCubemap LoadTextureCubemap(Image image, int layout); // Load cubemap from image, multiple image cubemap layouts supported -RLAPI RenderTexture2D LoadRenderTexture(int width, int height); // Load texture for rendering (framebuffer) -RLAPI bool IsTextureReady(Texture2D texture); // Check if a texture is ready -RLAPI void UnloadTexture(Texture2D texture); // Unload texture from GPU memory (VRAM) -RLAPI bool IsRenderTextureReady(RenderTexture2D target); // Check if a render texture is ready -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 - -// Texture configuration functions -RLAPI void GenTextureMipmaps(Texture2D *texture); // Generate GPU mipmaps for a texture -RLAPI void SetTextureFilter(Texture2D texture, int filter); // Set texture scaling filter mode -RLAPI void SetTextureWrap(Texture2D texture, int wrap); // Set texture wrapping mode - -// Texture drawing functions -RLAPI void DrawTexture(Texture2D texture, int posX, int posY, Color tint); // Draw a Texture2D -RLAPI void DrawTextureV(Texture2D texture, Vector2 position, Color tint); // Draw a Texture2D with position defined as Vector2 -RLAPI void DrawTextureEx(Texture2D texture, Vector2 position, float rotation, float scale, Color tint); // Draw a Texture2D with extended parameters -RLAPI void DrawTextureRec(Texture2D texture, Rectangle source, Vector2 position, Color tint); // Draw a part of a texture defined by a rectangle -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 - -// Color/pixel related functions -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 ColorTint(Color color, Color tint); // Get color multiplied with another color -RLAPI Color ColorBrightness(Color color, float factor); // Get color with brightness correction, brightness factor goes from -1.0f to 1.0f -RLAPI Color ColorContrast(Color color, float contrast); // Get color with contrast correction, contrast values between -1.0f and 1.0f -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 - -//------------------------------------------------------------------------------------ -// Font Loading and Text Drawing Functions (Module: text) -//------------------------------------------------------------------------------------ - -// 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 *codepoints, int codepointCount); // Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set -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 *codepoints, int codepointCount); // Load font from memory buffer, fileType refers to extension: i.e. '.ttf' -RLAPI bool IsFontReady(Font font); // Check if a font is ready -RLAPI GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSize, int *codepoints, int codepointCount, int type); // Load font data for further use -RLAPI Image GenImageFontAtlas(const GlyphInfo *glyphs, Rectangle **glyphRecs, int glyphCount, int fontSize, int padding, int packMethod); // Generate image font atlas using chars info -RLAPI void UnloadFontData(GlyphInfo *glyphs, int glyphCount); // Unload font chars info data (RAM) -RLAPI void UnloadFont(Font font); // Unload font from GPU memory (VRAM) -RLAPI bool ExportFontAsCode(Font font, const char *fileName); // Export font as code file, returns true on success - -// 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 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) -RLAPI void DrawTextCodepoints(Font font, const int *codepoints, int codepointCount, Vector2 position, float fontSize, float spacing, Color tint); // Draw multiple character (codepoint) - -// Text font info functions -RLAPI void SetTextLineSpacing(int spacing); // Set vertical line spacing when drawing with line-breaks -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 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 char *LoadUTF8(const int *codepoints, int length); // Load UTF-8 text encoded from codepoints array -RLAPI void UnloadUTF8(char *text); // Unload UTF-8 text encoded from codepoints array -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 *codepointSize); // Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure -RLAPI int GetCodepointNext(const char *text, int *codepointSize); // Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure -RLAPI int GetCodepointPrevious(const char *text, int *codepointSize); // Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure -RLAPI const char *CodepointToUTF8(int codepoint, int *utf8Size); // Encode one codepoint into UTF-8 byte array (array length returned as parameter) - -// 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 *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 (WARNING: memory must be freed!) -RLAPI char *TextInsert(const char *text, const char *insert, int position); // Insert text in a position (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! -RLAPI int TextFindIndex(const char *text, const char *find); // Find first text occurrence within a string -RLAPI const char *TextToUpper(const char *text); // Get upper case version of provided string -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) - -//------------------------------------------------------------------------------------ -// Basic 3d Shapes Drawing Functions (Module: models) -//------------------------------------------------------------------------------------ - -// Basic geometric 3D shapes drawing functions -RLAPI void DrawLine3D(Vector3 startPos, Vector3 endPos, Color color); // Draw a line in 3D world space -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 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 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 DrawCapsule(Vector3 startPos, Vector3 endPos, float radius, int slices, int rings, Color color); // Draw a capsule with the center of its sphere caps at startPos and endPos -RLAPI void DrawCapsuleWires(Vector3 startPos, Vector3 endPos, float radius, int slices, int rings, Color color); // Draw capsule wireframe with the center of its sphere caps at startPos and 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)) - -//------------------------------------------------------------------------------------ -// Model 3d Loading and Drawing Functions (Module: models) -//------------------------------------------------------------------------------------ - -// 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 bool IsModelReady(Model model); // Check if a model is ready -RLAPI void UnloadModel(Model model); // Unload model (including meshes) from memory (RAM and/or VRAM) -RLAPI BoundingBox GetModelBoundingBox(Model model); // Compute model bounding box limits (considers all meshes) - -// 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, const 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, const Matrix *transforms, int instances); // Draw multiple mesh instances with material and different transforms -RLAPI bool ExportMesh(Mesh mesh, const char *fileName); // Export mesh data to file, returns true on success -RLAPI BoundingBox GetMeshBoundingBox(Mesh mesh); // Compute mesh bounding box limits -RLAPI void GenMeshTangents(Mesh *mesh); // Compute mesh tangents - -// Mesh generation functions -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 - -// 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 bool IsMaterialReady(Material material); // Check if a material is ready -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 *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, int animCount); // 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); // 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 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) -//------------------------------------------------------------------------------------ -typedef void (*AudioCallback)(void *bufferData, unsigned int frames); - -// Audio device management functions -RLAPI void InitAudioDevice(void); // Initialize audio device and context -RLAPI void CloseAudioDevice(void); // Close the audio device and context -RLAPI bool IsAudioDeviceReady(void); // Check if audio device has been initialized successfully -RLAPI void SetMasterVolume(float volume); // Set master volume (listener) -RLAPI float GetMasterVolume(void); // Get master volume (listener) - -// 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. '.wav' -RLAPI bool IsWaveReady(Wave wave); // Checks if wave data is ready -RLAPI Sound LoadSound(const char *fileName); // Load sound from file -RLAPI Sound LoadSoundFromWave(Wave wave); // Load sound from wave data -RLAPI Sound LoadSoundAlias(Sound source); // Create a new sound that shares the same sample data as the source sound, does not own the sound data -RLAPI bool IsSoundReady(Sound sound); // Checks if a sound is ready -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 void UnloadSoundAlias(Sound alias); // Unload a sound alias (does not deallocate sample data) -RLAPI bool ExportWave(Wave wave, const char *fileName); // Export wave data to file, returns true on success -RLAPI bool ExportWaveAsCode(Wave wave, const char *fileName); // Export wave sample data to code (.h), returns true on success - -// Wave/Sound management functions -RLAPI void PlaySound(Sound sound); // Play a sound -RLAPI void StopSound(Sound sound); // Stop playing a sound -RLAPI void PauseSound(Sound sound); // Pause a sound -RLAPI void ResumeSound(Sound sound); // Resume a paused sound -RLAPI bool IsSoundPlaying(Sound sound); // Check if a sound is currently playing -RLAPI void SetSoundVolume(Sound sound, float volume); // Set volume for a sound (1.0 is max level) -RLAPI void SetSoundPitch(Sound sound, float pitch); // Set pitch for a sound (1.0 is base level) -RLAPI void SetSoundPan(Sound sound, float pan); // Set pan for a sound (0.5 is center) -RLAPI Wave WaveCopy(Wave wave); // Copy a wave to a new wave -RLAPI void WaveCrop(Wave *wave, int initSample, int finalSample); // Crop a wave to defined samples range -RLAPI void WaveFormat(Wave *wave, int sampleRate, int sampleSize, int channels); // Convert wave data to desired format -RLAPI float *LoadWaveSamples(Wave wave); // Load samples data from wave as a 32bit float data array -RLAPI void UnloadWaveSamples(float *samples); // Unload samples data loaded with LoadWaveSamples() - -// Music management functions -RLAPI Music LoadMusicStream(const char *fileName); // Load music stream from file -RLAPI Music LoadMusicStreamFromMemory(const char *fileType, const unsigned char *data, int dataSize); // Load music stream from data -RLAPI bool IsMusicReady(Music music); // Checks if a music stream is ready -RLAPI void UnloadMusicStream(Music music); // Unload music stream -RLAPI void PlayMusicStream(Music music); // Start music 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 void SetMusicPan(Music music, float pan); // Set pan for a music (0.5 is center) -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 LoadAudioStream(unsigned int sampleRate, unsigned int sampleSize, unsigned int channels); // Load audio stream (to stream raw audio pcm data) -RLAPI bool IsAudioStreamReady(AudioStream stream); // Checks if an audio stream is ready -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 -RLAPI void ResumeAudioStream(AudioStream stream); // Resume audio stream -RLAPI bool IsAudioStreamPlaying(AudioStream stream); // Check if audio stream is playing -RLAPI void StopAudioStream(AudioStream stream); // Stop audio stream -RLAPI void SetAudioStreamVolume(AudioStream stream, float volume); // Set volume for audio stream (1.0 is max level) -RLAPI void SetAudioStreamPitch(AudioStream stream, float pitch); // Set pitch for audio stream (1.0 is base level) -RLAPI void SetAudioStreamPan(AudioStream stream, float pan); // Set pan for audio stream (0.5 is centered) -RLAPI void SetAudioStreamBufferSizeDefault(int size); // Default size for new audio streams -RLAPI void SetAudioStreamCallback(AudioStream stream, AudioCallback callback); // Audio thread callback to request new data - -RLAPI void AttachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Attach audio stream processor to stream, receives the samples as s -RLAPI void DetachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Detach audio stream processor from stream - -RLAPI void AttachAudioMixedProcessor(AudioCallback processor); // Attach audio stream processor to the entire audio pipeline, receives the samples as s -RLAPI void DetachAudioMixedProcessor(AudioCallback processor); // Detach audio stream processor from the entire audio pipeline - -#if defined(__cplusplus) -} -#endif - -#endif // RAYLIB_H +/********************************************************************************************** +* +* raylib v5.5 - A simple and easy-to-use library to enjoy videogames programming (www.raylib.com) +* +* FEATURES: +* - NO external dependencies, all required libraries included with raylib +* - Multiplatform: Windows, Linux, FreeBSD, OpenBSD, NetBSD, DragonFly, +* MacOS, Haiku, Android, Raspberry Pi, DRM native, HTML5. +* - Written in plain C code (C99) in PascalCase/camelCase notation +* - Hardware accelerated with OpenGL (1.1, 2.1, 3.3, 4.3, ES2, ES3 - choose at compile) +* - Unique OpenGL abstraction layer (usable as standalone module): [rlgl] +* - Multiple Fonts formats supported (TTF, OTF, FNT, BDF, Sprite fonts) +* - Outstanding texture formats support, including compressed formats (DXT, ETC, ASTC) +* - Full 3d support for 3d Shapes, Models, Billboards, Heightmaps and more! +* - Flexible Materials system, supporting classic maps and PBR maps +* - Animated 3D models supported (skeletal bones animation) (IQM, M3D, GLTF) +* - Shaders support, including Model shaders and Postprocessing shaders +* - Powerful math module for Vector, Matrix and Quaternion operations: [raymath] +* - Audio loading and playing with streaming support (WAV, OGG, MP3, FLAC, QOA, XM, MOD) +* - VR stereo rendering with configurable HMD device parameters +* - Bindings to multiple programming languages available! +* +* NOTES: +* - One default Font is loaded on InitWindow()->LoadFontDefault() [core, text] +* - One default Texture2D is loaded on rlglInit(), 1x1 white pixel R8G8B8A8 [rlgl] (OpenGL 3.3 or ES2) +* - One default Shader is loaded on rlglInit()->rlLoadShaderDefault() [rlgl] (OpenGL 3.3 or ES2) +* - One default RenderBatch is loaded on rlglInit()->rlLoadRenderBatch() [rlgl] (OpenGL 3.3 or ES2) +* +* DEPENDENCIES (included): +* [rcore][GLFW] rglfw (Camilla Löwy - github.com/glfw/glfw) for window/context management and input +* [rcore][RGFW] rgfw (ColleagueRiley - github.com/ColleagueRiley/RGFW) for window/context management and input +* [rlgl] glad/glad_gles2 (David Herberth - github.com/Dav1dde/glad) for OpenGL 3.3 extensions loading +* [raudio] miniaudio (David Reid - github.com/mackron/miniaudio) for audio device/context management +* +* OPTIONAL DEPENDENCIES (included): +* [rcore] msf_gif (Miles Fogle) for GIF recording +* [rcore] sinfl (Micha Mettke) for DEFLATE decompression algorithm +* [rcore] sdefl (Micha Mettke) for DEFLATE compression algorithm +* [rcore] rprand (Ramon Snatamaria) for pseudo-random numbers generation +* [rtextures] qoi (Dominic Szablewski - https://phoboslab.org) for QOI image manage +* [rtextures] stb_image (Sean Barret) for images loading (BMP, TGA, PNG, JPEG, HDR...) +* [rtextures] stb_image_write (Sean Barret) for image writing (BMP, TGA, PNG, JPG) +* [rtextures] stb_image_resize2 (Sean Barret) for image resizing algorithms +* [rtextures] stb_perlin (Sean Barret) for Perlin Noise image generation +* [rtext] stb_truetype (Sean Barret) for ttf fonts loading +* [rtext] stb_rect_pack (Sean Barret) for rectangles packing +* [rmodels] par_shapes (Philip Rideout) for parametric 3d shapes generation +* [rmodels] tinyobj_loader_c (Syoyo Fujita) for models loading (OBJ, MTL) +* [rmodels] cgltf (Johannes Kuhlmann) for models loading (glTF) +* [rmodels] m3d (bzt) for models loading (M3D, https://bztsrc.gitlab.io/model3d) +* [rmodels] vox_loader (Johann Nadalutti) for models loading (VOX) +* [raudio] dr_wav (David Reid) for WAV audio file loading +* [raudio] dr_flac (David Reid) for FLAC audio file loading +* [raudio] dr_mp3 (David Reid) for MP3 audio file loading +* [raudio] stb_vorbis (Sean Barret) for OGG audio loading +* [raudio] jar_xm (Joshua Reisenauer) for XM audio module loading +* [raudio] jar_mod (Joshua Reisenauer) for MOD audio module loading +* [raudio] qoa (Dominic Szablewski - https://phoboslab.org) for QOA audio manage +* +* +* LICENSE: zlib/libpng +* +* raylib is licensed under an unmodified zlib/libpng license, which is an OSI-certified, +* BSD-like license that allows static linking with closed source software: +* +* Copyright (c) 2013-2024 Ramon Santamaria (@raysan5) +* +* This software is provided "as-is", without any express or implied warranty. In no event +* will the authors be held liable for any damages arising from the use of this software. +* +* Permission is granted to anyone to use this software for any purpose, including commercial +* applications, and to alter it and redistribute it freely, subject to the following restrictions: +* +* 1. The origin of this software must not be misrepresented; you must not claim that you +* wrote the original software. If you use this software in a product, an acknowledgment +* in the product documentation would be appreciated but is not required. +* +* 2. Altered source versions must be plainly marked as such, and must not be misrepresented +* as being the original software. +* +* 3. This notice may not be removed or altered from any source distribution. +* +**********************************************************************************************/ + +#ifndef RAYLIB_H +#define RAYLIB_H + +#include // Required for: va_list - Only used by TraceLogCallback + +#define RAYLIB_VERSION_MAJOR 5 +#define RAYLIB_VERSION_MINOR 5 +#define RAYLIB_VERSION_PATCH 0 +#define RAYLIB_VERSION "5.5" + +// Function specifiers in case library is build/used as a shared library +// NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll +// NOTE: visibility("default") attribute makes symbols "visible" when compiled with -fvisibility=hidden +#if defined(_WIN32) + #if defined(__TINYC__) + #define __declspec(x) __attribute__((x)) + #endif + #if defined(BUILD_LIBTYPE_SHARED) + #define RLAPI __declspec(dllexport) // We are building the library as a Win32 shared library (.dll) + #elif defined(USE_LIBTYPE_SHARED) + #define RLAPI __declspec(dllimport) // We are using the library as a Win32 shared library (.dll) + #endif +#else + #if defined(BUILD_LIBTYPE_SHARED) + #define RLAPI __attribute__((visibility("default"))) // We are building as a Unix shared library (.so/.dylib) + #endif +#endif + +#ifndef RLAPI + #define RLAPI // Functions defined as 'extern' by default (implicit specifiers) +#endif + +//---------------------------------------------------------------------------------- +// Some basic Defines +//---------------------------------------------------------------------------------- +#ifndef PI + #define PI 3.14159265358979323846f +#endif +#ifndef DEG2RAD + #define DEG2RAD (PI/180.0f) +#endif +#ifndef RAD2DEG + #define RAD2DEG (180.0f/PI) +#endif + +// Allow custom memory allocators +// NOTE: Require recompiling raylib sources +#ifndef RL_MALLOC + #define RL_MALLOC(sz) malloc(sz) +#endif +#ifndef RL_CALLOC + #define RL_CALLOC(n,sz) calloc(n,sz) +#endif +#ifndef RL_REALLOC + #define RL_REALLOC(ptr,sz) realloc(ptr,sz) +#endif +#ifndef RL_FREE + #define RL_FREE(ptr) free(ptr) +#endif + +// NOTE: MSVC C++ compiler does not support compound literals (C99 feature) +// Plain structures in C++ (without constructors) can be initialized with { } +// This is called aggregate initialization (C++11 feature) +#if defined(__cplusplus) + #define CLITERAL(type) type +#else + #define CLITERAL(type) (type) +#endif + +// Some compilers (mostly macos clang) default to C++98, +// where aggregate initialization can't be used +// So, give a more clear error stating how to fix this +#if !defined(_MSC_VER) && (defined(__cplusplus) && __cplusplus < 201103L) + #error "C++11 or later is required. Add -std=c++11" +#endif + +// NOTE: We set some defines with some data types declared by raylib +// Other modules (raymath, rlgl) also require some of those types, so, +// to be able to use those other modules as standalone (not depending on raylib) +// this defines are very useful for internal check and avoid type (re)definitions +#define RL_COLOR_TYPE +#define RL_RECTANGLE_TYPE +#define RL_VECTOR2_TYPE +#define RL_VECTOR3_TYPE +#define RL_VECTOR4_TYPE +#define RL_QUATERNION_TYPE +#define RL_MATRIX_TYPE + +// Some Basic Colors +// NOTE: Custom raylib color palette for amazing visuals on WHITE background +#define LIGHTGRAY CLITERAL(Color){ 200, 200, 200, 255 } // Light Gray +#define GRAY CLITERAL(Color){ 130, 130, 130, 255 } // Gray +#define DARKGRAY CLITERAL(Color){ 80, 80, 80, 255 } // Dark Gray +#define YELLOW CLITERAL(Color){ 253, 249, 0, 255 } // Yellow +#define GOLD CLITERAL(Color){ 255, 203, 0, 255 } // Gold +#define ORANGE CLITERAL(Color){ 255, 161, 0, 255 } // Orange +#define PINK CLITERAL(Color){ 255, 109, 194, 255 } // Pink +#define RED CLITERAL(Color){ 230, 41, 55, 255 } // Red +#define MAROON CLITERAL(Color){ 190, 33, 55, 255 } // Maroon +#define GREEN CLITERAL(Color){ 0, 228, 48, 255 } // Green +#define LIME CLITERAL(Color){ 0, 158, 47, 255 } // Lime +#define DARKGREEN CLITERAL(Color){ 0, 117, 44, 255 } // Dark Green +#define SKYBLUE CLITERAL(Color){ 102, 191, 255, 255 } // Sky Blue +#define BLUE CLITERAL(Color){ 0, 121, 241, 255 } // Blue +#define DARKBLUE CLITERAL(Color){ 0, 82, 172, 255 } // Dark Blue +#define PURPLE CLITERAL(Color){ 200, 122, 255, 255 } // Purple +#define VIOLET CLITERAL(Color){ 135, 60, 190, 255 } // Violet +#define DARKPURPLE CLITERAL(Color){ 112, 31, 126, 255 } // Dark Purple +#define BEIGE CLITERAL(Color){ 211, 176, 131, 255 } // Beige +#define BROWN CLITERAL(Color){ 127, 106, 79, 255 } // Brown +#define DARKBROWN CLITERAL(Color){ 76, 63, 47, 255 } // Dark Brown + +#define WHITE CLITERAL(Color){ 255, 255, 255, 255 } // White +#define BLACK CLITERAL(Color){ 0, 0, 0, 255 } // Black +#define BLANK CLITERAL(Color){ 0, 0, 0, 0 } // Blank (Transparent) +#define MAGENTA CLITERAL(Color){ 255, 0, 255, 255 } // Magenta +#define RAYWHITE CLITERAL(Color){ 245, 245, 245, 255 } // My own White (raylib logo) + +//---------------------------------------------------------------------------------- +// Structures Definition +//---------------------------------------------------------------------------------- +// Boolean type +#if (defined(__STDC__) && __STDC_VERSION__ >= 199901L) || (defined(_MSC_VER) && _MSC_VER >= 1800) + #include +#elif !defined(__cplusplus) && !defined(bool) + typedef enum bool { false = 0, true = !false } bool; + #define RL_BOOL_TYPE +#endif + +// Vector2, 2 components +typedef struct Vector2 { + float x; // Vector x component + float y; // Vector y component +} Vector2; + +// Vector3, 3 components +typedef struct Vector3 { + float x; // Vector x component + float y; // Vector y component + float z; // Vector z component +} Vector3; + +// Vector4, 4 components +typedef struct Vector4 { + float x; // Vector x component + float y; // Vector y component + float z; // Vector z component + float w; // Vector w component +} Vector4; + +// Quaternion, 4 components (Vector4 alias) +typedef Vector4 Quaternion; + +// Matrix, 4x4 components, column major, OpenGL style, right-handed +typedef struct Matrix { + float m0, m4, m8, m12; // Matrix first row (4 components) + float m1, m5, m9, m13; // Matrix second row (4 components) + float m2, m6, m10, m14; // Matrix third row (4 components) + float m3, m7, m11, m15; // Matrix fourth row (4 components) +} Matrix; + +// Color, 4 components, R8G8B8A8 (32bit) +typedef struct Color { + unsigned char r; // Color red value + unsigned char g; // Color green value + unsigned char b; // Color blue value + unsigned char a; // Color alpha value +} Color; + +// Rectangle, 4 components +typedef struct Rectangle { + float x; // Rectangle top-left corner position x + float y; // Rectangle top-left corner position y + float width; // Rectangle width + float height; // Rectangle height +} Rectangle; + +// Image, pixel data stored in CPU memory (RAM) +typedef struct Image { + void *data; // Image raw data + int width; // Image base width + int height; // Image base height + int mipmaps; // Mipmap levels, 1 by default + int format; // Data format (PixelFormat type) +} Image; + +// Texture, tex data stored in GPU memory (VRAM) +typedef struct Texture { + unsigned int id; // OpenGL texture id + int width; // Texture base width + int height; // Texture base height + int mipmaps; // Mipmap levels, 1 by default + int format; // Data format (PixelFormat type) +} Texture; + +// Texture2D, same as Texture +typedef Texture Texture2D; + +// TextureCubemap, same as Texture +typedef Texture TextureCubemap; + +// RenderTexture, fbo for texture rendering +typedef struct RenderTexture { + unsigned int id; // OpenGL framebuffer object id + Texture texture; // Color buffer attachment texture + Texture depth; // Depth buffer attachment texture +} RenderTexture; + +// RenderTexture2D, same as RenderTexture +typedef RenderTexture RenderTexture2D; + +// NPatchInfo, n-patch layout info +typedef struct NPatchInfo { + Rectangle source; // Texture source rectangle + int left; // Left border offset + int top; // Top border offset + int right; // Right border offset + int bottom; // Bottom border offset + int layout; // Layout of the n-patch: 3x3, 1x3 or 3x1 +} NPatchInfo; + +// GlyphInfo, font characters glyphs info +typedef struct GlyphInfo { + int value; // Character value (Unicode) + int offsetX; // Character offset X when drawing + int offsetY; // Character offset Y when drawing + int advanceX; // Character advance position X + Image image; // Character image data +} GlyphInfo; + +// Font, font texture and GlyphInfo array data +typedef struct Font { + int baseSize; // Base size (default chars height) + int glyphCount; // Number of glyph characters + int glyphPadding; // Padding around the glyph characters + Texture2D texture; // Texture atlas containing the glyphs + Rectangle *recs; // Rectangles in texture for the glyphs + GlyphInfo *glyphs; // Glyphs info data +} Font; + +// Camera, defines position/orientation in 3d space +typedef struct Camera3D { + Vector3 position; // Camera position + Vector3 target; // Camera target it looks-at + Vector3 up; // Camera up vector (rotation over its axis) + float fovy; // Camera field-of-view aperture in Y (degrees) in perspective, used as near plane width in orthographic + int projection; // Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC +} Camera3D; + +typedef Camera3D Camera; // Camera type fallback, defaults to Camera3D + +// Camera2D, defines position/orientation in 2d space +typedef struct Camera2D { + Vector2 offset; // Camera offset (displacement from target) + Vector2 target; // Camera target (rotation and zoom origin) + float rotation; // Camera rotation in degrees + float zoom; // Camera zoom (scaling), should be 1.0f by default +} Camera2D; + +// Mesh, vertex data and vao/vbo +typedef struct Mesh { + int vertexCount; // Number of vertices stored in arrays + int triangleCount; // Number of triangles stored (indexed or not) + + // Vertex attributes data + float *vertices; // Vertex position (XYZ - 3 components per vertex) (shader-location = 0) + float *texcoords; // Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1) + float *texcoords2; // Vertex texture second coordinates (UV - 2 components per vertex) (shader-location = 5) + float *normals; // Vertex normals (XYZ - 3 components per vertex) (shader-location = 2) + float *tangents; // Vertex tangents (XYZW - 4 components per vertex) (shader-location = 4) + unsigned char *colors; // Vertex colors (RGBA - 4 components per vertex) (shader-location = 3) + unsigned short *indices; // Vertex indices (in case vertex data comes indexed) + + // Animation vertex data + float *animVertices; // Animated vertex positions (after bones transformations) + float *animNormals; // Animated normals (after bones transformations) + unsigned char *boneIds; // Vertex bone ids, max 255 bone ids, up to 4 bones influence by vertex (skinning) (shader-location = 6) + float *boneWeights; // Vertex bone weight, up to 4 bones influence by vertex (skinning) (shader-location = 7) + Matrix *boneMatrices; // Bones animated transformation matrices + int boneCount; // Number of bones + + // OpenGL identifiers + unsigned int vaoId; // OpenGL Vertex Array Object id + unsigned int *vboId; // OpenGL Vertex Buffer Objects id (default vertex data) +} Mesh; + +// Shader +typedef struct Shader { + unsigned int id; // Shader program id + int *locs; // Shader locations array (RL_MAX_SHADER_LOCATIONS) +} Shader; + +// MaterialMap +typedef struct MaterialMap { + Texture2D texture; // Material map texture + Color color; // Material map color + float value; // Material map value +} MaterialMap; + +// Material, includes shader and maps +typedef struct Material { + Shader shader; // Material shader + MaterialMap *maps; // Material maps array (MAX_MATERIAL_MAPS) + float params[4]; // Material generic parameters (if required) +} Material; + +// Transform, vertex transformation data +typedef struct Transform { + Vector3 translation; // Translation + Quaternion rotation; // Rotation + Vector3 scale; // Scale +} Transform; + +// Bone, skeletal animation bone +typedef struct BoneInfo { + char name[32]; // Bone name + int parent; // Bone parent +} BoneInfo; + +// Model, meshes, materials and animation data +typedef struct Model { + Matrix transform; // Local transform matrix + + int meshCount; // Number of meshes + int materialCount; // Number of materials + Mesh *meshes; // Meshes array + Material *materials; // Materials array + int *meshMaterial; // Mesh material number + + // Animation data + int boneCount; // Number of bones + BoneInfo *bones; // Bones information (skeleton) + Transform *bindPose; // Bones base transformation (pose) +} Model; + +// ModelAnimation +typedef struct ModelAnimation { + int boneCount; // Number of bones + int frameCount; // Number of animation frames + BoneInfo *bones; // Bones information (skeleton) + Transform **framePoses; // Poses array by frame + char name[32]; // Animation name +} ModelAnimation; + +// Ray, ray for raycasting +typedef struct Ray { + Vector3 position; // Ray position (origin) + Vector3 direction; // Ray direction (normalized) +} Ray; + +// RayCollision, ray hit information +typedef struct RayCollision { + bool hit; // Did the ray hit something? + float distance; // Distance to the nearest hit + Vector3 point; // Point of the nearest hit + Vector3 normal; // Surface normal of hit +} RayCollision; + +// BoundingBox +typedef struct BoundingBox { + Vector3 min; // Minimum vertex box-corner + Vector3 max; // Maximum vertex box-corner +} BoundingBox; + +// Wave, audio wave data +typedef struct Wave { + unsigned int frameCount; // Total number of frames (considering channels) + unsigned int sampleRate; // Frequency (samples per second) + unsigned int sampleSize; // Bit depth (bits per sample): 8, 16, 32 (24 not supported) + unsigned int channels; // Number of channels (1-mono, 2-stereo, ...) + void *data; // Buffer data pointer +} Wave; + +// Opaque structs declaration +// NOTE: Actual structs are defined internally in raudio module +typedef struct rAudioBuffer rAudioBuffer; +typedef struct rAudioProcessor rAudioProcessor; + +// AudioStream, custom audio stream +typedef struct AudioStream { + rAudioBuffer *buffer; // Pointer to internal data used by the audio system + rAudioProcessor *processor; // Pointer to internal data processor, useful for audio effects + + unsigned int sampleRate; // Frequency (samples per second) + unsigned int sampleSize; // Bit depth (bits per sample): 8, 16, 32 (24 not supported) + unsigned int channels; // Number of channels (1-mono, 2-stereo, ...) +} AudioStream; + +// Sound +typedef struct Sound { + AudioStream stream; // Audio stream + unsigned int frameCount; // Total number of frames (considering channels) +} Sound; + +// Music, audio stream, anything longer than ~10 seconds should be streamed +typedef struct Music { + AudioStream stream; // Audio stream + unsigned int frameCount; // Total number of frames (considering channels) + bool looping; // Music looping enable + + int ctxType; // Type of music context (audio filetype) + void *ctxData; // Audio context data, depends on type +} Music; + +// VrDeviceInfo, Head-Mounted-Display device parameters +typedef struct VrDeviceInfo { + int hResolution; // Horizontal resolution in pixels + int vResolution; // Vertical resolution in pixels + float hScreenSize; // Horizontal size in meters + float vScreenSize; // Vertical size in meters + float eyeToScreenDistance; // Distance between eye and display in meters + float lensSeparationDistance; // Lens separation distance in meters + float interpupillaryDistance; // IPD (distance between pupils) in meters + float lensDistortionValues[4]; // Lens distortion constant parameters + float chromaAbCorrection[4]; // Chromatic aberration correction parameters +} VrDeviceInfo; + +// VrStereoConfig, VR stereo rendering configuration for simulator +typedef struct VrStereoConfig { + Matrix projection[2]; // VR projection matrices (per eye) + Matrix viewOffset[2]; // VR view offset matrices (per eye) + float leftLensCenter[2]; // VR left lens center + float rightLensCenter[2]; // VR right lens center + float leftScreenCenter[2]; // VR left screen center + float rightScreenCenter[2]; // VR right screen center + float scale[2]; // VR distortion scale + float scaleIn[2]; // VR distortion scale in +} VrStereoConfig; + +// File path list +typedef struct FilePathList { + unsigned int capacity; // Filepaths max entries + unsigned int count; // Filepaths entries count + char **paths; // Filepaths entries +} FilePathList; + +// Automation event +typedef struct AutomationEvent { + unsigned int frame; // Event frame + unsigned int type; // Event type (AutomationEventType) + int params[4]; // Event parameters (if required) +} AutomationEvent; + +// Automation event list +typedef struct AutomationEventList { + unsigned int capacity; // Events max entries (MAX_AUTOMATION_EVENTS) + unsigned int count; // Events entries count + AutomationEvent *events; // Events entries +} AutomationEventList; + +//---------------------------------------------------------------------------------- +// Enumerators Definition +//---------------------------------------------------------------------------------- +// System/Window config flags +// NOTE: Every bit registers one state (use it with bit masks) +// By default all flags are set to 0 +typedef enum { + FLAG_VSYNC_HINT = 0x00000040, // Set to try enabling V-Sync on GPU + FLAG_FULLSCREEN_MODE = 0x00000002, // Set to run program in fullscreen + FLAG_WINDOW_RESIZABLE = 0x00000004, // Set to allow resizable window + FLAG_WINDOW_UNDECORATED = 0x00000008, // Set to disable window decoration (frame and buttons) + FLAG_WINDOW_HIDDEN = 0x00000080, // Set to hide window + FLAG_WINDOW_MINIMIZED = 0x00000200, // Set to minimize window (iconify) + FLAG_WINDOW_MAXIMIZED = 0x00000400, // Set to maximize window (expanded to monitor) + FLAG_WINDOW_UNFOCUSED = 0x00000800, // Set to window non focused + FLAG_WINDOW_TOPMOST = 0x00001000, // Set to window always on top + FLAG_WINDOW_ALWAYS_RUN = 0x00000100, // Set to allow windows running while minimized + FLAG_WINDOW_TRANSPARENT = 0x00000010, // Set to allow transparent framebuffer + FLAG_WINDOW_HIGHDPI = 0x00002000, // Set to support HighDPI + FLAG_WINDOW_MOUSE_PASSTHROUGH = 0x00004000, // Set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED + FLAG_BORDERLESS_WINDOWED_MODE = 0x00008000, // Set to run program in borderless windowed mode + FLAG_MSAA_4X_HINT = 0x00000020, // Set to try enabling MSAA 4X + FLAG_INTERLACED_HINT = 0x00010000 // Set to try enabling interlaced video format (for V3D) +} ConfigFlags; + +// Trace log level +// NOTE: Organized by priority level +typedef enum { + LOG_ALL = 0, // Display all logs + LOG_TRACE, // Trace logging, intended for internal use only + LOG_DEBUG, // Debug logging, used for internal debugging, it should be disabled on release builds + LOG_INFO, // Info logging, used for program execution info + LOG_WARNING, // Warning logging, used on recoverable failures + LOG_ERROR, // Error logging, used on unrecoverable failures + LOG_FATAL, // Fatal logging, used to abort program: exit(EXIT_FAILURE) + LOG_NONE // Disable logging +} TraceLogLevel; + +// Keyboard keys (US keyboard layout) +// NOTE: Use GetKeyPressed() to allow redefining +// required keys for alternative layouts +typedef enum { + KEY_NULL = 0, // Key: NULL, used for no key pressed + // Alphanumeric keys + KEY_APOSTROPHE = 39, // Key: ' + KEY_COMMA = 44, // Key: , + KEY_MINUS = 45, // Key: - + KEY_PERIOD = 46, // Key: . + KEY_SLASH = 47, // Key: / + KEY_ZERO = 48, // Key: 0 + KEY_ONE = 49, // Key: 1 + KEY_TWO = 50, // Key: 2 + KEY_THREE = 51, // Key: 3 + KEY_FOUR = 52, // Key: 4 + KEY_FIVE = 53, // Key: 5 + KEY_SIX = 54, // Key: 6 + KEY_SEVEN = 55, // Key: 7 + KEY_EIGHT = 56, // Key: 8 + KEY_NINE = 57, // Key: 9 + KEY_SEMICOLON = 59, // Key: ; + KEY_EQUAL = 61, // Key: = + KEY_A = 65, // Key: A | a + KEY_B = 66, // Key: B | b + KEY_C = 67, // Key: C | c + KEY_D = 68, // Key: D | d + KEY_E = 69, // Key: E | e + KEY_F = 70, // Key: F | f + KEY_G = 71, // Key: G | g + KEY_H = 72, // Key: H | h + KEY_I = 73, // Key: I | i + KEY_J = 74, // Key: J | j + KEY_K = 75, // Key: K | k + KEY_L = 76, // Key: L | l + KEY_M = 77, // Key: M | m + KEY_N = 78, // Key: N | n + KEY_O = 79, // Key: O | o + KEY_P = 80, // Key: P | p + KEY_Q = 81, // Key: Q | q + KEY_R = 82, // Key: R | r + KEY_S = 83, // Key: S | s + KEY_T = 84, // Key: T | t + KEY_U = 85, // Key: U | u + KEY_V = 86, // Key: V | v + KEY_W = 87, // Key: W | w + KEY_X = 88, // Key: X | x + KEY_Y = 89, // Key: Y | y + KEY_Z = 90, // Key: Z | z + KEY_LEFT_BRACKET = 91, // Key: [ + KEY_BACKSLASH = 92, // Key: '\' + KEY_RIGHT_BRACKET = 93, // Key: ] + KEY_GRAVE = 96, // Key: ` + // Function keys + KEY_SPACE = 32, // Key: Space + KEY_ESCAPE = 256, // Key: Esc + KEY_ENTER = 257, // Key: Enter + KEY_TAB = 258, // Key: Tab + KEY_BACKSPACE = 259, // Key: Backspace + KEY_INSERT = 260, // Key: Ins + KEY_DELETE = 261, // Key: Del + KEY_RIGHT = 262, // Key: Cursor right + KEY_LEFT = 263, // Key: Cursor left + KEY_DOWN = 264, // Key: Cursor down + KEY_UP = 265, // Key: Cursor up + KEY_PAGE_UP = 266, // Key: Page up + KEY_PAGE_DOWN = 267, // Key: Page down + KEY_HOME = 268, // Key: Home + KEY_END = 269, // Key: End + KEY_CAPS_LOCK = 280, // Key: Caps lock + KEY_SCROLL_LOCK = 281, // Key: Scroll down + KEY_NUM_LOCK = 282, // Key: Num lock + KEY_PRINT_SCREEN = 283, // Key: Print screen + KEY_PAUSE = 284, // Key: Pause + KEY_F1 = 290, // Key: F1 + KEY_F2 = 291, // Key: F2 + KEY_F3 = 292, // Key: F3 + KEY_F4 = 293, // Key: F4 + KEY_F5 = 294, // Key: F5 + KEY_F6 = 295, // Key: F6 + KEY_F7 = 296, // Key: F7 + KEY_F8 = 297, // Key: F8 + KEY_F9 = 298, // Key: F9 + KEY_F10 = 299, // Key: F10 + KEY_F11 = 300, // Key: F11 + KEY_F12 = 301, // Key: F12 + KEY_LEFT_SHIFT = 340, // Key: Shift left + KEY_LEFT_CONTROL = 341, // Key: Control left + KEY_LEFT_ALT = 342, // Key: Alt left + KEY_LEFT_SUPER = 343, // Key: Super left + KEY_RIGHT_SHIFT = 344, // Key: Shift right + KEY_RIGHT_CONTROL = 345, // Key: Control right + KEY_RIGHT_ALT = 346, // Key: Alt right + KEY_RIGHT_SUPER = 347, // Key: Super right + KEY_KB_MENU = 348, // Key: KB menu + // Keypad keys + KEY_KP_0 = 320, // Key: Keypad 0 + KEY_KP_1 = 321, // Key: Keypad 1 + KEY_KP_2 = 322, // Key: Keypad 2 + KEY_KP_3 = 323, // Key: Keypad 3 + KEY_KP_4 = 324, // Key: Keypad 4 + KEY_KP_5 = 325, // Key: Keypad 5 + KEY_KP_6 = 326, // Key: Keypad 6 + KEY_KP_7 = 327, // Key: Keypad 7 + KEY_KP_8 = 328, // Key: Keypad 8 + KEY_KP_9 = 329, // Key: Keypad 9 + KEY_KP_DECIMAL = 330, // Key: Keypad . + KEY_KP_DIVIDE = 331, // Key: Keypad / + KEY_KP_MULTIPLY = 332, // Key: Keypad * + KEY_KP_SUBTRACT = 333, // Key: Keypad - + KEY_KP_ADD = 334, // Key: Keypad + + KEY_KP_ENTER = 335, // Key: Keypad Enter + KEY_KP_EQUAL = 336, // Key: Keypad = + // Android key buttons + KEY_BACK = 4, // Key: Android back button + KEY_MENU = 5, // Key: Android menu button + KEY_VOLUME_UP = 24, // Key: Android volume up button + KEY_VOLUME_DOWN = 25 // Key: Android volume down button +} KeyboardKey; + +// Add backwards compatibility support for deprecated names +#define MOUSE_LEFT_BUTTON MOUSE_BUTTON_LEFT +#define MOUSE_RIGHT_BUTTON MOUSE_BUTTON_RIGHT +#define MOUSE_MIDDLE_BUTTON MOUSE_BUTTON_MIDDLE + +// Mouse buttons +typedef enum { + MOUSE_BUTTON_LEFT = 0, // Mouse button left + MOUSE_BUTTON_RIGHT = 1, // Mouse button right + MOUSE_BUTTON_MIDDLE = 2, // Mouse button middle (pressed wheel) + MOUSE_BUTTON_SIDE = 3, // Mouse button side (advanced mouse device) + MOUSE_BUTTON_EXTRA = 4, // Mouse button extra (advanced mouse device) + MOUSE_BUTTON_FORWARD = 5, // Mouse button forward (advanced mouse device) + MOUSE_BUTTON_BACK = 6, // Mouse button back (advanced mouse device) +} MouseButton; + +// Mouse cursor +typedef enum { + MOUSE_CURSOR_DEFAULT = 0, // Default pointer shape + MOUSE_CURSOR_ARROW = 1, // Arrow shape + MOUSE_CURSOR_IBEAM = 2, // Text writing cursor shape + MOUSE_CURSOR_CROSSHAIR = 3, // Cross shape + MOUSE_CURSOR_POINTING_HAND = 4, // Pointing hand cursor + MOUSE_CURSOR_RESIZE_EW = 5, // Horizontal resize/move arrow shape + MOUSE_CURSOR_RESIZE_NS = 6, // Vertical resize/move arrow shape + MOUSE_CURSOR_RESIZE_NWSE = 7, // Top-left to bottom-right diagonal resize/move arrow shape + MOUSE_CURSOR_RESIZE_NESW = 8, // The top-right to bottom-left diagonal resize/move arrow shape + MOUSE_CURSOR_RESIZE_ALL = 9, // The omnidirectional resize/move cursor shape + MOUSE_CURSOR_NOT_ALLOWED = 10 // The operation-not-allowed shape +} MouseCursor; + +// Gamepad buttons +typedef enum { + GAMEPAD_BUTTON_UNKNOWN = 0, // Unknown button, just for error checking + GAMEPAD_BUTTON_LEFT_FACE_UP, // Gamepad left DPAD up button + GAMEPAD_BUTTON_LEFT_FACE_RIGHT, // Gamepad left DPAD right button + GAMEPAD_BUTTON_LEFT_FACE_DOWN, // Gamepad left DPAD down button + GAMEPAD_BUTTON_LEFT_FACE_LEFT, // Gamepad left DPAD left button + GAMEPAD_BUTTON_RIGHT_FACE_UP, // Gamepad right button up (i.e. PS3: Triangle, Xbox: Y) + GAMEPAD_BUTTON_RIGHT_FACE_RIGHT, // Gamepad right button right (i.e. PS3: Circle, Xbox: B) + GAMEPAD_BUTTON_RIGHT_FACE_DOWN, // Gamepad right button down (i.e. PS3: Cross, Xbox: A) + GAMEPAD_BUTTON_RIGHT_FACE_LEFT, // Gamepad right button left (i.e. PS3: Square, Xbox: X) + GAMEPAD_BUTTON_LEFT_TRIGGER_1, // Gamepad top/back trigger left (first), it could be a trailing button + GAMEPAD_BUTTON_LEFT_TRIGGER_2, // Gamepad top/back trigger left (second), it could be a trailing button + GAMEPAD_BUTTON_RIGHT_TRIGGER_1, // Gamepad top/back trigger right (first), it could be a trailing button + GAMEPAD_BUTTON_RIGHT_TRIGGER_2, // Gamepad top/back trigger right (second), it could be a trailing button + GAMEPAD_BUTTON_MIDDLE_LEFT, // Gamepad center buttons, left one (i.e. PS3: Select) + GAMEPAD_BUTTON_MIDDLE, // Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX) + GAMEPAD_BUTTON_MIDDLE_RIGHT, // Gamepad center buttons, right one (i.e. PS3: Start) + GAMEPAD_BUTTON_LEFT_THUMB, // Gamepad joystick pressed button left + GAMEPAD_BUTTON_RIGHT_THUMB // Gamepad joystick pressed button right +} GamepadButton; + +// Gamepad axis +typedef enum { + GAMEPAD_AXIS_LEFT_X = 0, // Gamepad left stick X axis + GAMEPAD_AXIS_LEFT_Y = 1, // Gamepad left stick Y axis + GAMEPAD_AXIS_RIGHT_X = 2, // Gamepad right stick X axis + GAMEPAD_AXIS_RIGHT_Y = 3, // Gamepad right stick Y axis + GAMEPAD_AXIS_LEFT_TRIGGER = 4, // Gamepad back trigger left, pressure level: [1..-1] + GAMEPAD_AXIS_RIGHT_TRIGGER = 5 // Gamepad back trigger right, pressure level: [1..-1] +} GamepadAxis; + +// Material map index +typedef enum { + MATERIAL_MAP_ALBEDO = 0, // Albedo material (same as: MATERIAL_MAP_DIFFUSE) + MATERIAL_MAP_METALNESS, // Metalness material (same as: MATERIAL_MAP_SPECULAR) + MATERIAL_MAP_NORMAL, // Normal material + MATERIAL_MAP_ROUGHNESS, // Roughness material + MATERIAL_MAP_OCCLUSION, // Ambient occlusion material + MATERIAL_MAP_EMISSION, // Emission material + MATERIAL_MAP_HEIGHT, // Heightmap material + MATERIAL_MAP_CUBEMAP, // Cubemap material (NOTE: Uses GL_TEXTURE_CUBE_MAP) + MATERIAL_MAP_IRRADIANCE, // Irradiance material (NOTE: Uses GL_TEXTURE_CUBE_MAP) + MATERIAL_MAP_PREFILTER, // Prefilter material (NOTE: Uses GL_TEXTURE_CUBE_MAP) + MATERIAL_MAP_BRDF // Brdf material +} MaterialMapIndex; + +#define MATERIAL_MAP_DIFFUSE MATERIAL_MAP_ALBEDO +#define MATERIAL_MAP_SPECULAR MATERIAL_MAP_METALNESS + +// Shader location index +typedef enum { + SHADER_LOC_VERTEX_POSITION = 0, // Shader location: vertex attribute: position + SHADER_LOC_VERTEX_TEXCOORD01, // Shader location: vertex attribute: texcoord01 + SHADER_LOC_VERTEX_TEXCOORD02, // Shader location: vertex attribute: texcoord02 + SHADER_LOC_VERTEX_NORMAL, // Shader location: vertex attribute: normal + SHADER_LOC_VERTEX_TANGENT, // Shader location: vertex attribute: tangent + SHADER_LOC_VERTEX_COLOR, // Shader location: vertex attribute: color + SHADER_LOC_MATRIX_MVP, // Shader location: matrix uniform: model-view-projection + SHADER_LOC_MATRIX_VIEW, // Shader location: matrix uniform: view (camera transform) + SHADER_LOC_MATRIX_PROJECTION, // Shader location: matrix uniform: projection + SHADER_LOC_MATRIX_MODEL, // Shader location: matrix uniform: model (transform) + SHADER_LOC_MATRIX_NORMAL, // Shader location: matrix uniform: normal + SHADER_LOC_VECTOR_VIEW, // Shader location: vector uniform: view + SHADER_LOC_COLOR_DIFFUSE, // Shader location: vector uniform: diffuse color + SHADER_LOC_COLOR_SPECULAR, // Shader location: vector uniform: specular color + SHADER_LOC_COLOR_AMBIENT, // Shader location: vector uniform: ambient color + SHADER_LOC_MAP_ALBEDO, // Shader location: sampler2d texture: albedo (same as: SHADER_LOC_MAP_DIFFUSE) + SHADER_LOC_MAP_METALNESS, // Shader location: sampler2d texture: metalness (same as: SHADER_LOC_MAP_SPECULAR) + SHADER_LOC_MAP_NORMAL, // Shader location: sampler2d texture: normal + SHADER_LOC_MAP_ROUGHNESS, // Shader location: sampler2d texture: roughness + SHADER_LOC_MAP_OCCLUSION, // Shader location: sampler2d texture: occlusion + SHADER_LOC_MAP_EMISSION, // Shader location: sampler2d texture: emission + SHADER_LOC_MAP_HEIGHT, // Shader location: sampler2d texture: height + SHADER_LOC_MAP_CUBEMAP, // Shader location: samplerCube texture: cubemap + SHADER_LOC_MAP_IRRADIANCE, // Shader location: samplerCube texture: irradiance + SHADER_LOC_MAP_PREFILTER, // Shader location: samplerCube texture: prefilter + SHADER_LOC_MAP_BRDF, // Shader location: sampler2d texture: brdf + SHADER_LOC_VERTEX_BONEIDS, // Shader location: vertex attribute: boneIds + SHADER_LOC_VERTEX_BONEWEIGHTS, // Shader location: vertex attribute: boneWeights + SHADER_LOC_BONE_MATRICES // Shader location: array of matrices uniform: boneMatrices +} ShaderLocationIndex; + +#define SHADER_LOC_MAP_DIFFUSE SHADER_LOC_MAP_ALBEDO +#define SHADER_LOC_MAP_SPECULAR SHADER_LOC_MAP_METALNESS + +// Shader uniform data type +typedef enum { + SHADER_UNIFORM_FLOAT = 0, // Shader uniform type: float + SHADER_UNIFORM_VEC2, // Shader uniform type: vec2 (2 float) + SHADER_UNIFORM_VEC3, // Shader uniform type: vec3 (3 float) + SHADER_UNIFORM_VEC4, // Shader uniform type: vec4 (4 float) + SHADER_UNIFORM_INT, // Shader uniform type: int + SHADER_UNIFORM_IVEC2, // Shader uniform type: ivec2 (2 int) + SHADER_UNIFORM_IVEC3, // Shader uniform type: ivec3 (3 int) + SHADER_UNIFORM_IVEC4, // Shader uniform type: ivec4 (4 int) + SHADER_UNIFORM_SAMPLER2D // Shader uniform type: sampler2d +} ShaderUniformDataType; + +// Shader attribute data types +typedef enum { + SHADER_ATTRIB_FLOAT = 0, // Shader attribute type: float + SHADER_ATTRIB_VEC2, // Shader attribute type: vec2 (2 float) + SHADER_ATTRIB_VEC3, // Shader attribute type: vec3 (3 float) + SHADER_ATTRIB_VEC4 // Shader attribute type: vec4 (4 float) +} ShaderAttributeDataType; + +// Pixel formats +// NOTE: Support depends on OpenGL version and platform +typedef enum { + PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1, // 8 bit per pixel (no alpha) + PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA, // 8*2 bpp (2 channels) + PIXELFORMAT_UNCOMPRESSED_R5G6B5, // 16 bpp + PIXELFORMAT_UNCOMPRESSED_R8G8B8, // 24 bpp + PIXELFORMAT_UNCOMPRESSED_R5G5B5A1, // 16 bpp (1 bit alpha) + PIXELFORMAT_UNCOMPRESSED_R4G4B4A4, // 16 bpp (4 bit alpha) + PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, // 32 bpp + PIXELFORMAT_UNCOMPRESSED_R32, // 32 bpp (1 channel - float) + PIXELFORMAT_UNCOMPRESSED_R32G32B32, // 32*3 bpp (3 channels - float) + PIXELFORMAT_UNCOMPRESSED_R32G32B32A32, // 32*4 bpp (4 channels - float) + PIXELFORMAT_UNCOMPRESSED_R16, // 16 bpp (1 channel - half float) + PIXELFORMAT_UNCOMPRESSED_R16G16B16, // 16*3 bpp (3 channels - half float) + PIXELFORMAT_UNCOMPRESSED_R16G16B16A16, // 16*4 bpp (4 channels - half float) + PIXELFORMAT_COMPRESSED_DXT1_RGB, // 4 bpp (no alpha) + PIXELFORMAT_COMPRESSED_DXT1_RGBA, // 4 bpp (1 bit alpha) + PIXELFORMAT_COMPRESSED_DXT3_RGBA, // 8 bpp + PIXELFORMAT_COMPRESSED_DXT5_RGBA, // 8 bpp + PIXELFORMAT_COMPRESSED_ETC1_RGB, // 4 bpp + PIXELFORMAT_COMPRESSED_ETC2_RGB, // 4 bpp + PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA, // 8 bpp + PIXELFORMAT_COMPRESSED_PVRT_RGB, // 4 bpp + PIXELFORMAT_COMPRESSED_PVRT_RGBA, // 4 bpp + PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA, // 8 bpp + PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA // 2 bpp +} PixelFormat; + +// Texture parameters: filter mode +// NOTE 1: Filtering considers mipmaps if available in the texture +// NOTE 2: Filter is accordingly set for minification and magnification +typedef enum { + TEXTURE_FILTER_POINT = 0, // No filter, just pixel approximation + TEXTURE_FILTER_BILINEAR, // Linear filtering + TEXTURE_FILTER_TRILINEAR, // Trilinear filtering (linear with mipmaps) + TEXTURE_FILTER_ANISOTROPIC_4X, // Anisotropic filtering 4x + TEXTURE_FILTER_ANISOTROPIC_8X, // Anisotropic filtering 8x + TEXTURE_FILTER_ANISOTROPIC_16X, // Anisotropic filtering 16x +} TextureFilter; + +// Texture parameters: wrap mode +typedef enum { + TEXTURE_WRAP_REPEAT = 0, // Repeats texture in tiled mode + TEXTURE_WRAP_CLAMP, // Clamps texture to edge pixel in tiled mode + TEXTURE_WRAP_MIRROR_REPEAT, // Mirrors and repeats the texture in tiled mode + TEXTURE_WRAP_MIRROR_CLAMP // Mirrors and clamps to border the texture in tiled mode +} TextureWrap; + +// Cubemap layouts +typedef enum { + CUBEMAP_LAYOUT_AUTO_DETECT = 0, // Automatically detect layout type + CUBEMAP_LAYOUT_LINE_VERTICAL, // Layout is defined by a vertical line with faces + CUBEMAP_LAYOUT_LINE_HORIZONTAL, // Layout is defined by a horizontal line with faces + CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR, // Layout is defined by a 3x4 cross with cubemap faces + CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE // Layout is defined by a 4x3 cross with cubemap faces +} CubemapLayout; + +// Font type, defines generation method +typedef enum { + FONT_DEFAULT = 0, // Default font generation, anti-aliased + FONT_BITMAP, // Bitmap font generation, no anti-aliasing + FONT_SDF // SDF font generation, requires external shader +} FontType; + +// Color blending modes (pre-defined) +typedef enum { + BLEND_ALPHA = 0, // Blend textures considering alpha (default) + BLEND_ADDITIVE, // Blend textures adding colors + BLEND_MULTIPLIED, // Blend textures multiplying colors + BLEND_ADD_COLORS, // Blend textures adding colors (alternative) + BLEND_SUBTRACT_COLORS, // Blend textures subtracting colors (alternative) + BLEND_ALPHA_PREMULTIPLY, // Blend premultiplied textures considering alpha + BLEND_CUSTOM, // Blend textures using custom src/dst factors (use rlSetBlendFactors()) + BLEND_CUSTOM_SEPARATE // Blend textures using custom rgb/alpha separate src/dst factors (use rlSetBlendFactorsSeparate()) +} BlendMode; + +// Gesture +// NOTE: Provided as bit-wise flags to enable only desired gestures +typedef enum { + GESTURE_NONE = 0, // No gesture + GESTURE_TAP = 1, // Tap gesture + GESTURE_DOUBLETAP = 2, // Double tap gesture + GESTURE_HOLD = 4, // Hold gesture + GESTURE_DRAG = 8, // Drag gesture + GESTURE_SWIPE_RIGHT = 16, // Swipe right gesture + GESTURE_SWIPE_LEFT = 32, // Swipe left gesture + GESTURE_SWIPE_UP = 64, // Swipe up gesture + GESTURE_SWIPE_DOWN = 128, // Swipe down gesture + GESTURE_PINCH_IN = 256, // Pinch in gesture + GESTURE_PINCH_OUT = 512 // Pinch out gesture +} Gesture; + +// Camera system modes +typedef enum { + CAMERA_CUSTOM = 0, // Camera custom, controlled by user (UpdateCamera() does nothing) + CAMERA_FREE, // Camera free mode + CAMERA_ORBITAL, // Camera orbital, around target, zoom supported + CAMERA_FIRST_PERSON, // Camera first person + CAMERA_THIRD_PERSON // Camera third person +} CameraMode; + +// Camera projection +typedef enum { + CAMERA_PERSPECTIVE = 0, // Perspective projection + CAMERA_ORTHOGRAPHIC // Orthographic projection +} CameraProjection; + +// N-patch layout +typedef enum { + NPATCH_NINE_PATCH = 0, // Npatch layout: 3x3 tiles + NPATCH_THREE_PATCH_VERTICAL, // Npatch layout: 1x3 tiles + NPATCH_THREE_PATCH_HORIZONTAL // Npatch layout: 3x1 tiles +} NPatchLayout; + +// Callbacks to hook some internal functions +// WARNING: These callbacks are intended for advanced users +typedef void (*TraceLogCallback)(int logLevel, const char *text, va_list args); // Logging: Redirect trace log messages +typedef unsigned char *(*LoadFileDataCallback)(const char *fileName, int *dataSize); // FileIO: Load binary data +typedef bool (*SaveFileDataCallback)(const char *fileName, void *data, int dataSize); // FileIO: Save binary data +typedef char *(*LoadFileTextCallback)(const char *fileName); // FileIO: Load text data +typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileIO: Save text data + +//------------------------------------------------------------------------------------ +// Global Variables Definition +//------------------------------------------------------------------------------------ +// It's lonely here... + +//------------------------------------------------------------------------------------ +// Window and Graphics Device Functions (Module: core) +//------------------------------------------------------------------------------------ + +#if defined(__cplusplus) +extern "C" { // Prevents name mangling of functions +#endif + +// Window-related functions +RLAPI void InitWindow(int width, int height, const char *title); // Initialize window and OpenGL context +RLAPI void CloseWindow(void); // Close window and unload OpenGL context +RLAPI bool WindowShouldClose(void); // Check if application should close (KEY_ESCAPE pressed or windows close icon clicked) +RLAPI bool IsWindowReady(void); // Check if window has been initialized successfully +RLAPI bool IsWindowFullscreen(void); // Check if window is currently fullscreen +RLAPI bool IsWindowHidden(void); // Check if window is currently hidden +RLAPI bool IsWindowMinimized(void); // Check if window is currently minimized +RLAPI bool IsWindowMaximized(void); // Check if window is currently maximized +RLAPI bool IsWindowFocused(void); // Check if window is currently focused +RLAPI bool IsWindowResized(void); // Check if window has been resized last frame +RLAPI bool IsWindowState(unsigned int flag); // Check if one specific window flag is enabled +RLAPI void SetWindowState(unsigned int flags); // Set window configuration state using flags +RLAPI void ClearWindowState(unsigned int flags); // Clear window configuration state flags +RLAPI void ToggleFullscreen(void); // Toggle window state: fullscreen/windowed, resizes monitor to match window resolution +RLAPI void ToggleBorderlessWindowed(void); // Toggle window state: borderless windowed, resizes window to match monitor resolution +RLAPI void MaximizeWindow(void); // Set window state: maximized, if resizable +RLAPI void MinimizeWindow(void); // Set window state: minimized, if resizable +RLAPI void RestoreWindow(void); // Set window state: not minimized/maximized +RLAPI void SetWindowIcon(Image image); // Set icon for window (single image, RGBA 32bit) +RLAPI void SetWindowIcons(Image *images, int count); // Set icon for window (multiple images, RGBA 32bit) +RLAPI void SetWindowTitle(const char *title); // Set title for window +RLAPI void SetWindowPosition(int x, int y); // Set window position on screen +RLAPI void SetWindowMonitor(int monitor); // Set monitor for the current window +RLAPI void SetWindowMinSize(int width, int height); // Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE) +RLAPI void SetWindowMaxSize(int width, int height); // Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE) +RLAPI void SetWindowSize(int width, int height); // Set window dimensions +RLAPI void SetWindowOpacity(float opacity); // Set window opacity [0.0f..1.0f] +RLAPI void SetWindowFocused(void); // Set window focused +RLAPI void *GetWindowHandle(void); // Get native window handle +RLAPI int GetScreenWidth(void); // Get current screen width +RLAPI int GetScreenHeight(void); // Get current screen height +RLAPI int GetRenderWidth(void); // Get current render width (it considers HiDPI) +RLAPI int GetRenderHeight(void); // Get current render height (it considers HiDPI) +RLAPI int GetMonitorCount(void); // Get number of connected monitors +RLAPI int GetCurrentMonitor(void); // Get current monitor where window is placed +RLAPI Vector2 GetMonitorPosition(int monitor); // Get specified monitor position +RLAPI int GetMonitorWidth(int monitor); // Get specified monitor width (current video mode used by monitor) +RLAPI int GetMonitorHeight(int monitor); // Get specified monitor height (current video mode used by monitor) +RLAPI int GetMonitorPhysicalWidth(int monitor); // Get specified monitor physical width in millimetres +RLAPI int GetMonitorPhysicalHeight(int monitor); // Get specified monitor physical height in millimetres +RLAPI int GetMonitorRefreshRate(int monitor); // Get specified monitor refresh rate +RLAPI Vector2 GetWindowPosition(void); // Get window position XY on monitor +RLAPI Vector2 GetWindowScaleDPI(void); // Get window scale DPI factor +RLAPI const char *GetMonitorName(int monitor); // Get the human-readable, UTF-8 encoded name of the specified monitor +RLAPI void SetClipboardText(const char *text); // Set clipboard text content +RLAPI const char *GetClipboardText(void); // Get clipboard text content +RLAPI Image GetClipboardImage(void); // Get clipboard image content +RLAPI void EnableEventWaiting(void); // Enable waiting for events on EndDrawing(), no automatic event polling +RLAPI void DisableEventWaiting(void); // Disable waiting for events on EndDrawing(), automatic events polling + +// 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 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); // Begin 2D mode with custom camera (2D) +RLAPI void EndMode2D(void); // Ends 2D mode with custom camera +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); // 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, 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 +RLAPI void BeginVrStereoMode(VrStereoConfig config); // Begin stereo rendering (requires VR simulator) +RLAPI void EndVrStereoMode(void); // End stereo rendering (requires VR simulator) + +// VR stereo config functions for VR simulator +RLAPI VrStereoConfig LoadVrStereoConfig(VrDeviceInfo device); // Load VR stereo config for VR simulator device parameters +RLAPI void UnloadVrStereoConfig(VrStereoConfig config); // Unload VR stereo config + +// Shader management functions +// NOTE: Shader functionality is not available on OpenGL 1.1 +RLAPI Shader LoadShader(const char *vsFileName, const char *fsFileName); // Load shader from files and bind default locations +RLAPI Shader LoadShaderFromMemory(const char *vsCode, const char *fsCode); // Load shader from code strings and bind default locations +RLAPI bool IsShaderValid(Shader shader); // Check if a shader is valid (loaded on GPU) +RLAPI int GetShaderLocation(Shader shader, const char *uniformName); // Get shader uniform location +RLAPI int GetShaderLocationAttrib(Shader shader, const char *attribName); // Get shader attribute location +RLAPI void SetShaderValue(Shader shader, int locIndex, const void *value, int uniformType); // Set shader uniform value +RLAPI void SetShaderValueV(Shader shader, int locIndex, const void *value, int uniformType, int count); // Set shader uniform value vector +RLAPI void SetShaderValueMatrix(Shader shader, int locIndex, Matrix mat); // Set shader uniform value (matrix 4x4) +RLAPI void SetShaderValueTexture(Shader shader, int locIndex, Texture2D texture); // Set shader uniform value for texture (sampler2d) +RLAPI void UnloadShader(Shader shader); // Unload shader from GPU memory (VRAM) + +// Screen-space-related functions +#define GetMouseRay GetScreenToWorldRay // Compatibility hack for previous raylib versions +RLAPI Ray GetScreenToWorldRay(Vector2 position, Camera camera); // Get a ray trace from screen position (i.e mouse) +RLAPI Ray GetScreenToWorldRayEx(Vector2 position, Camera camera, int width, int height); // Get a ray trace from screen position (i.e mouse) in a viewport +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 +RLAPI Matrix GetCameraMatrix(Camera camera); // Get camera transform matrix (view matrix) +RLAPI Matrix GetCameraMatrix2D(Camera2D camera); // Get camera 2d transform matrix + +// Timing-related functions +RLAPI void SetTargetFPS(int fps); // Set target FPS (maximum) +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() +RLAPI int GetFPS(void); // Get current FPS + +// Custom frame control functions +// NOTE: Those functions are intended for advanced users that want full control over the frame processing +// By default EndDrawing() does this job: draws everything + SwapScreenBuffer() + manage frame timing + 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(double seconds); // Wait for some time (halt program execution) + +// Random values generation functions +RLAPI void SetRandomSeed(unsigned int seed); // Set the seed for the random number generator +RLAPI int GetRandomValue(int min, int max); // Get a random value between min and max (both included) +RLAPI int *LoadRandomSequence(unsigned int count, int min, int max); // Load random values sequence, no values repeated +RLAPI void UnloadRandomSequence(int *sequence); // Unload random values sequence + +// Misc. functions +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 OpenURL(const char *url); // Open URL with default system browser (if available) + +// NOTE: Following functions implemented in module [utils] +//------------------------------------------------------------------ +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(unsigned int size); // Internal memory allocator +RLAPI void *MemRealloc(void *ptr, unsigned int size); // Internal memory reallocator +RLAPI void MemFree(void *ptr); // Internal memory free + +// Set custom callbacks +// WARNING: Callbacks setup is intended for advanced users +RLAPI void SetTraceLogCallback(TraceLogCallback callback); // Set custom trace log +RLAPI void SetLoadFileDataCallback(LoadFileDataCallback callback); // Set custom file binary data loader +RLAPI void SetSaveFileDataCallback(SaveFileDataCallback callback); // Set custom file binary data saver +RLAPI void SetLoadFileTextCallback(LoadFileTextCallback callback); // Set custom file text data loader +RLAPI void SetSaveFileTextCallback(SaveFileTextCallback callback); // Set custom file text data saver + +// Files management functions +RLAPI unsigned char *LoadFileData(const char *fileName, int *dataSize); // Load file data as byte array (read) +RLAPI void UnloadFileData(unsigned char *data); // Unload file data allocated by LoadFileData() +RLAPI bool SaveFileData(const char *fileName, void *data, int dataSize); // Save data to file from byte array (write), returns true on success +RLAPI bool ExportDataAsCode(const unsigned char *data, int dataSize, const char *fileName); // Export data to code (.h), returns true on success +RLAPI char *LoadFileText(const char *fileName); // Load text data from file (read), returns a '\0' terminated string +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 +//------------------------------------------------------------------ + +// File system functions +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 int GetFileLength(const char *fileName); // Get file length in bytes (NOTE: GetFileSize() conflicts with windows.h) +RLAPI const char *GetFileExtension(const char *fileName); // Get pointer to extension for a filename string (includes dot: '.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) +RLAPI const char *GetPrevDirectoryPath(const char *dirPath); // Get previous directory path for a given path (uses static string) +RLAPI const char *GetWorkingDirectory(void); // Get current working directory (uses static string) +RLAPI const char *GetApplicationDirectory(void); // Get the directory of the running application (uses static string) +RLAPI int MakeDirectory(const char *dirPath); // Create directories (including full path requested), returns 0 on success +RLAPI bool ChangeDirectory(const char *dir); // Change working directory, return true on success +RLAPI bool IsPathFile(const char *path); // Check if a given path is a file or a directory +RLAPI bool IsFileNameValid(const char *fileName); // Check if fileName is valid for the platform/OS +RLAPI FilePathList LoadDirectoryFiles(const char *dirPath); // Load directory filepaths +RLAPI FilePathList LoadDirectoryFilesEx(const char *basePath, const char *filter, bool scanSubdirs); // Load directory filepaths with extension filtering and recursive directory scan. Use 'DIR' in the filter string to include directories in the result +RLAPI void UnloadDirectoryFiles(FilePathList files); // Unload filepaths +RLAPI bool IsFileDropped(void); // Check if a file has been dropped into window +RLAPI FilePathList LoadDroppedFiles(void); // Load dropped filepaths +RLAPI void UnloadDroppedFiles(FilePathList files); // Unload dropped filepaths +RLAPI long GetFileModTime(const char *fileName); // Get file modification time (last write time) + +// Compression/Encoding functionality +RLAPI unsigned char *CompressData(const unsigned char *data, int dataSize, int *compDataSize); // Compress data (DEFLATE algorithm), memory must be MemFree() +RLAPI unsigned char *DecompressData(const unsigned char *compData, int compDataSize, int *dataSize); // Decompress data (DEFLATE algorithm), memory must be MemFree() +RLAPI char *EncodeDataBase64(const unsigned char *data, int dataSize, int *outputSize); // Encode data to Base64 string, memory must be MemFree() +RLAPI unsigned char *DecodeDataBase64(const unsigned char *data, int *outputSize); // Decode Base64 string data, memory must be MemFree() +RLAPI unsigned int ComputeCRC32(unsigned char *data, int dataSize); // Compute CRC32 hash code +RLAPI unsigned int *ComputeMD5(unsigned char *data, int dataSize); // Compute MD5 hash code, returns static int[4] (16 bytes) +RLAPI unsigned int *ComputeSHA1(unsigned char *data, int dataSize); // Compute SHA1 hash code, returns static int[5] (20 bytes) + + +// Automation events functionality +RLAPI AutomationEventList LoadAutomationEventList(const char *fileName); // Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS +RLAPI void UnloadAutomationEventList(AutomationEventList list); // Unload automation events list from file +RLAPI bool ExportAutomationEventList(AutomationEventList list, const char *fileName); // Export automation events list as text file +RLAPI void SetAutomationEventList(AutomationEventList *list); // Set automation event list to record to +RLAPI void SetAutomationEventBaseFrame(int frame); // Set automation event internal base frame to start recording +RLAPI void StartAutomationEventRecording(void); // Start recording automation events (AutomationEventList must be set) +RLAPI void StopAutomationEventRecording(void); // Stop recording automation events +RLAPI void PlayAutomationEvent(AutomationEvent event); // Play a recorded automation event + +//------------------------------------------------------------------------------------ +// Input Handling Functions (Module: core) +//------------------------------------------------------------------------------------ + +// Input-related functions: keyboard +RLAPI bool IsKeyPressed(int key); // Check if a key has been pressed once +RLAPI bool IsKeyPressedRepeat(int key); // Check if a key has been pressed again +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 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 +RLAPI void SetExitKey(int key); // Set a custom key to exit program (default is ESC) + +// Input-related functions: gamepads +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); // 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) +RLAPI void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor, float duration); // Set gamepad vibration for both motors (duration in seconds) + +// Input-related functions: mouse +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); // Get mouse wheel movement for X or Y, whichever is larger +RLAPI Vector2 GetMouseWheelMoveV(void); // Get mouse wheel movement for both X and Y +RLAPI void SetMouseCursor(int cursor); // Set mouse cursor + +// Input-related functions: touch +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: rgestures) +//------------------------------------------------------------------------------------ +RLAPI void SetGesturesEnabled(unsigned int flags); // Enable a set of gestures using flags +RLAPI bool IsGestureDetected(unsigned int gesture); // Check if a gesture have been detected +RLAPI int GetGestureDetected(void); // Get latest detected gesture +RLAPI float GetGestureHoldDuration(void); // Get gesture hold time in seconds +RLAPI Vector2 GetGestureDragVector(void); // Get gesture drag vector +RLAPI float GetGestureDragAngle(void); // Get gesture drag angle +RLAPI Vector2 GetGesturePinchVector(void); // Get gesture pinch delta +RLAPI float GetGesturePinchAngle(void); // Get gesture pinch angle + +//------------------------------------------------------------------------------------ +// Camera System Functions (Module: rcamera) +//------------------------------------------------------------------------------------ +RLAPI void UpdateCamera(Camera *camera, int mode); // Update camera position for selected mode +RLAPI void UpdateCameraPro(Camera *camera, Vector3 movement, Vector3 rotation, float zoom); // Update camera movement/rotation + +//------------------------------------------------------------------------------------ +// Basic Shapes Drawing Functions (Module: shapes) +//------------------------------------------------------------------------------------ +// 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 Texture2D GetShapesTexture(void); // Get texture that is used for shapes drawing +RLAPI Rectangle GetShapesTextureRectangle(void); // Get texture source rectangle that is used for shapes drawing + +// Basic shapes drawing functions +RLAPI void DrawPixel(int posX, int posY, Color color); // Draw a pixel using geometry [Can be slow, use with care] +RLAPI void DrawPixelV(Vector2 position, Color color); // Draw a pixel using geometry (Vector version) [Can be slow, use with care] +RLAPI void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw a line +RLAPI void DrawLineV(Vector2 startPos, Vector2 endPos, Color color); // Draw a line (using gl lines) +RLAPI void DrawLineEx(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw a line (using triangles/quads) +RLAPI void DrawLineStrip(const Vector2 *points, int pointCount, Color color); // Draw lines sequence (using gl lines) +RLAPI void DrawLineBezier(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw line segment cubic-bezier in-out interpolation +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 +RLAPI void DrawCircleGradient(int centerX, int centerY, float radius, Color inner, Color outer); // Draw a gradient-filled circle +RLAPI void DrawCircleV(Vector2 center, float radius, Color color); // Draw a color-filled circle (Vector version) +RLAPI void DrawCircleLines(int centerX, int centerY, float radius, Color color); // Draw circle outline +RLAPI void DrawCircleLinesV(Vector2 center, float radius, Color color); // Draw circle outline (Vector version) +RLAPI void DrawEllipse(int centerX, int centerY, float radiusH, float radiusV, Color color); // Draw ellipse +RLAPI void DrawEllipseLines(int centerX, int centerY, float radiusH, float radiusV, Color color); // Draw ellipse outline +RLAPI void DrawRing(Vector2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, int segments, Color color); // Draw ring +RLAPI void DrawRingLines(Vector2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, int segments, Color color); // Draw ring outline +RLAPI void DrawRectangle(int posX, int posY, int width, int height, Color color); // Draw a color-filled rectangle +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 top, Color bottom); // Draw a vertical-gradient-filled rectangle +RLAPI void DrawRectangleGradientH(int posX, int posY, int width, int height, Color left, Color right); // Draw a horizontal-gradient-filled rectangle +RLAPI void DrawRectangleGradientEx(Rectangle rec, Color topLeft, Color bottomLeft, Color topRight, Color bottomRight); // 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, 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, Color color); // Draw rectangle lines with rounded edges +RLAPI void DrawRectangleRoundedLinesEx(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(const Vector2 *points, int pointCount, Color color); // Draw a triangle fan defined by points (first vertex is the center) +RLAPI void DrawTriangleStrip(const 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 + +// Splines drawing functions +RLAPI void DrawSplineLinear(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Linear, minimum 2 points +RLAPI void DrawSplineBasis(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: B-Spline, minimum 4 points +RLAPI void DrawSplineCatmullRom(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Catmull-Rom, minimum 4 points +RLAPI void DrawSplineBezierQuadratic(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] +RLAPI void DrawSplineBezierCubic(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] +RLAPI void DrawSplineSegmentLinear(Vector2 p1, Vector2 p2, float thick, Color color); // Draw spline segment: Linear, 2 points +RLAPI void DrawSplineSegmentBasis(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color); // Draw spline segment: B-Spline, 4 points +RLAPI void DrawSplineSegmentCatmullRom(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color); // Draw spline segment: Catmull-Rom, 4 points +RLAPI void DrawSplineSegmentBezierQuadratic(Vector2 p1, Vector2 c2, Vector2 p3, float thick, Color color); // Draw spline segment: Quadratic Bezier, 2 points, 1 control point +RLAPI void DrawSplineSegmentBezierCubic(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, float thick, Color color); // Draw spline segment: Cubic Bezier, 2 points, 2 control points + +// Spline segment point evaluation functions, for a given t [0.0f .. 1.0f] +RLAPI Vector2 GetSplinePointLinear(Vector2 startPos, Vector2 endPos, float t); // Get (evaluate) spline point: Linear +RLAPI Vector2 GetSplinePointBasis(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float t); // Get (evaluate) spline point: B-Spline +RLAPI Vector2 GetSplinePointCatmullRom(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float t); // Get (evaluate) spline point: Catmull-Rom +RLAPI Vector2 GetSplinePointBezierQuad(Vector2 p1, Vector2 c2, Vector2 p3, float t); // Get (evaluate) spline point: Quadratic Bezier +RLAPI Vector2 GetSplinePointBezierCubic(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, float t); // Get (evaluate) spline point: Cubic Bezier + +// Basic shapes collision detection functions +RLAPI bool CheckCollisionRecs(Rectangle rec1, Rectangle rec2); // Check collision between two rectangles +RLAPI bool CheckCollisionCircles(Vector2 center1, float radius1, Vector2 center2, float radius2); // Check collision between two circles +RLAPI bool CheckCollisionCircleRec(Vector2 center, float radius, Rectangle rec); // Check collision between circle and rectangle +RLAPI bool CheckCollisionCircleLine(Vector2 center, float radius, Vector2 p1, Vector2 p2); // Check if circle collides with a line created betweeen two points [p1] and [p2] +RLAPI bool CheckCollisionPointRec(Vector2 point, Rectangle rec); // Check if point is inside rectangle +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 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 bool CheckCollisionPointPoly(Vector2 point, const Vector2 *points, int pointCount); // Check if point is within a polygon described by array of vertices +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 Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2); // Get collision rectangle for two rectangles collision + +//------------------------------------------------------------------------------------ +// Texture Loading and Drawing Functions (Module: textures) +//------------------------------------------------------------------------------------ + +// Image loading functions +// NOTE: These functions do not require GPU access +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 LoadImageAnimFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int *frames); // Load image sequence from memory buffer +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 bool IsImageValid(Image image); // Check if an image is valid (data and parameters) +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 unsigned char *ExportImageToMemory(Image image, const char *fileType, int *fileSize); // Export image to memory buffer +RLAPI bool ExportImageAsCode(Image image, const char *fileName); // Export image as code file defining an array of bytes, returns true on success + +// Image generation functions +RLAPI Image GenImageColor(int width, int height, Color color); // Generate image: plain color +RLAPI Image GenImageGradientLinear(int width, int height, int direction, Color start, Color end); // Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient +RLAPI Image GenImageGradientRadial(int width, int height, float density, Color inner, Color outer); // Generate image: radial gradient +RLAPI Image GenImageGradientSquare(int width, int height, float density, Color inner, Color outer); // Generate image: square 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 GenImageText(int width, int height, const char *text); // Generate image: grayscale image from text data + +// Image manipulation functions +RLAPI Image ImageCopy(Image image); // Create an image duplicate (useful for transformations) +RLAPI Image ImageFromImage(Image image, Rectangle rec); // Create an image from another image piece +RLAPI Image ImageFromChannel(Image image, int selectedChannel); // Create an image from a selected channel of another image (GRAYSCALE) +RLAPI Image ImageText(const char *text, int fontSize, Color color); // Create an image from text (default font) +RLAPI Image ImageTextEx(Font font, const char *text, float fontSize, float spacing, Color tint); // Create an image from text (custom sprite font) +RLAPI void ImageFormat(Image *image, int newFormat); // Convert image data to desired format +RLAPI void ImageToPOT(Image *image, Color fill); // Convert image to POT (power-of-two) +RLAPI void ImageCrop(Image *image, Rectangle crop); // Crop an image to a defined rectangle +RLAPI void ImageAlphaCrop(Image *image, float threshold); // Crop image depending on alpha value +RLAPI void ImageAlphaClear(Image *image, Color color, float threshold); // Clear alpha channel to desired color +RLAPI void ImageAlphaMask(Image *image, Image alphaMask); // Apply alpha mask to image +RLAPI void ImageAlphaPremultiply(Image *image); // Premultiply alpha channel +RLAPI void ImageBlurGaussian(Image *image, int blurSize); // Apply Gaussian blur using a box blur approximation +RLAPI void ImageKernelConvolution(Image *image, const float *kernel, int kernelSize); // Apply custom square convolution kernel to 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); // 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 +RLAPI void ImageRotate(Image *image, int degrees); // Rotate image by input angle in degrees (-359 to 359) +RLAPI void ImageRotateCW(Image *image); // Rotate image clockwise 90deg +RLAPI void ImageRotateCCW(Image *image); // Rotate image counter-clockwise 90deg +RLAPI void ImageColorTint(Image *image, Color color); // Modify image color: tint +RLAPI void ImageColorInvert(Image *image); // Modify image color: invert +RLAPI void ImageColorGrayscale(Image *image); // Modify image color: grayscale +RLAPI void ImageColorContrast(Image *image, float contrast); // Modify image color: contrast (-100 to 100) +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 *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) +RLAPI void ImageClearBackground(Image *dst, Color color); // Clear image background with given color +RLAPI void ImageDrawPixel(Image *dst, int posX, int posY, Color color); // Draw pixel within an image +RLAPI void ImageDrawPixelV(Image *dst, Vector2 position, Color color); // Draw pixel within an image (Vector version) +RLAPI void ImageDrawLine(Image *dst, int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw line within an image +RLAPI void ImageDrawLineV(Image *dst, Vector2 start, Vector2 end, Color color); // Draw line within an image (Vector version) +RLAPI void ImageDrawLineEx(Image *dst, Vector2 start, Vector2 end, int thick, Color color); // Draw a line defining thickness within an image +RLAPI void ImageDrawCircle(Image *dst, int centerX, int centerY, int radius, Color color); // Draw a filled circle within an image +RLAPI void ImageDrawCircleV(Image *dst, Vector2 center, int radius, Color color); // Draw a filled circle within an image (Vector version) +RLAPI void ImageDrawCircleLines(Image *dst, int centerX, int centerY, int radius, Color color); // Draw circle outline within an image +RLAPI void ImageDrawCircleLinesV(Image *dst, Vector2 center, int radius, Color color); // Draw circle outline within an image (Vector version) +RLAPI void ImageDrawRectangle(Image *dst, int posX, int posY, int width, int height, Color color); // Draw rectangle within an image +RLAPI void ImageDrawRectangleV(Image *dst, Vector2 position, Vector2 size, Color color); // Draw rectangle within an image (Vector version) +RLAPI void ImageDrawRectangleRec(Image *dst, Rectangle rec, Color color); // Draw rectangle within an image +RLAPI void ImageDrawRectangleLines(Image *dst, Rectangle rec, int thick, Color color); // Draw rectangle lines within an image +RLAPI void ImageDrawTriangle(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle within an image +RLAPI void ImageDrawTriangleEx(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color c1, Color c2, Color c3); // Draw triangle with interpolated colors within an image +RLAPI void ImageDrawTriangleLines(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle outline within an image +RLAPI void ImageDrawTriangleFan(Image *dst, Vector2 *points, int pointCount, Color color); // Draw a triangle fan defined by points within an image (first vertex is the center) +RLAPI void ImageDrawTriangleStrip(Image *dst, Vector2 *points, int pointCount, Color color); // Draw a triangle strip defined by points within an image +RLAPI void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color tint); // Draw a source image within a destination image (tint applied to source) +RLAPI void ImageDrawText(Image *dst, const char *text, int posX, int posY, int fontSize, Color color); // Draw text (using default font) within an image (destination) +RLAPI void ImageDrawTextEx(Image *dst, Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint); // Draw text (custom sprite font) within an image (destination) + +// Texture loading functions +// NOTE: These functions require GPU access +RLAPI Texture2D LoadTexture(const char *fileName); // Load texture from file into GPU memory (VRAM) +RLAPI Texture2D LoadTextureFromImage(Image image); // Load texture from image data +RLAPI TextureCubemap LoadTextureCubemap(Image image, int layout); // Load cubemap from image, multiple image cubemap layouts supported +RLAPI RenderTexture2D LoadRenderTexture(int width, int height); // Load texture for rendering (framebuffer) +RLAPI bool IsTextureValid(Texture2D texture); // Check if a texture is valid (loaded in GPU) +RLAPI void UnloadTexture(Texture2D texture); // Unload texture from GPU memory (VRAM) +RLAPI bool IsRenderTextureValid(RenderTexture2D target); // Check if a render texture is valid (loaded in GPU) +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 + +// Texture configuration functions +RLAPI void GenTextureMipmaps(Texture2D *texture); // Generate GPU mipmaps for a texture +RLAPI void SetTextureFilter(Texture2D texture, int filter); // Set texture scaling filter mode +RLAPI void SetTextureWrap(Texture2D texture, int wrap); // Set texture wrapping mode + +// Texture drawing functions +RLAPI void DrawTexture(Texture2D texture, int posX, int posY, Color tint); // Draw a Texture2D +RLAPI void DrawTextureV(Texture2D texture, Vector2 position, Color tint); // Draw a Texture2D with position defined as Vector2 +RLAPI void DrawTextureEx(Texture2D texture, Vector2 position, float rotation, float scale, Color tint); // Draw a Texture2D with extended parameters +RLAPI void DrawTextureRec(Texture2D texture, Rectangle source, Vector2 position, Color tint); // Draw a part of a texture defined by a rectangle +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 + +// Color/pixel related functions +RLAPI bool ColorIsEqual(Color col1, Color col2); // Check if two colors are equal +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 (0xRRGGBBAA) +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 ColorTint(Color color, Color tint); // Get color multiplied with another color +RLAPI Color ColorBrightness(Color color, float factor); // Get color with brightness correction, brightness factor goes from -1.0f to 1.0f +RLAPI Color ColorContrast(Color color, float contrast); // Get color with contrast correction, contrast values between -1.0f and 1.0f +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 ColorLerp(Color color1, Color color2, float factor); // Get color lerp interpolation between two colors, factor [0.0f..1.0f] +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 + +//------------------------------------------------------------------------------------ +// Font Loading and Text Drawing Functions (Module: text) +//------------------------------------------------------------------------------------ + +// 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 *codepoints, int codepointCount); // Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height +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 *codepoints, int codepointCount); // Load font from memory buffer, fileType refers to extension: i.e. '.ttf' +RLAPI bool IsFontValid(Font font); // Check if a font is valid (font data loaded, WARNING: GPU texture not checked) +RLAPI GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSize, int *codepoints, int codepointCount, int type); // Load font data for further use +RLAPI Image GenImageFontAtlas(const GlyphInfo *glyphs, Rectangle **glyphRecs, int glyphCount, int fontSize, int padding, int packMethod); // Generate image font atlas using chars info +RLAPI void UnloadFontData(GlyphInfo *glyphs, int glyphCount); // Unload font chars info data (RAM) +RLAPI void UnloadFont(Font font); // Unload font from GPU memory (VRAM) +RLAPI bool ExportFontAsCode(Font font, const char *fileName); // Export font as code file, returns true on success + +// 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 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) +RLAPI void DrawTextCodepoints(Font font, const int *codepoints, int codepointCount, Vector2 position, float fontSize, float spacing, Color tint); // Draw multiple character (codepoint) + +// Text font info functions +RLAPI void SetTextLineSpacing(int spacing); // Set vertical line spacing when drawing with line-breaks +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 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 char *LoadUTF8(const int *codepoints, int length); // Load UTF-8 text encoded from codepoints array +RLAPI void UnloadUTF8(char *text); // Unload UTF-8 text encoded from codepoints array +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 *codepointSize); // Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure +RLAPI int GetCodepointNext(const char *text, int *codepointSize); // Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure +RLAPI int GetCodepointPrevious(const char *text, int *codepointSize); // Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure +RLAPI const char *CodepointToUTF8(int codepoint, int *utf8Size); // Encode one codepoint into UTF-8 byte array (array length returned as parameter) + +// 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 *TextSubtext(const char *text, int position, int length); // Get a piece of a text string +RLAPI char *TextReplace(const char *text, const char *replace, const char *by); // Replace text string (WARNING: memory must be freed!) +RLAPI char *TextInsert(const char *text, const char *insert, int position); // Insert text in a position (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! +RLAPI int TextFindIndex(const char *text, const char *find); // Find first text occurrence within a string +RLAPI const char *TextToUpper(const char *text); // Get upper case version of provided string +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 const char *TextToSnake(const char *text); // Get Snake case notation version of provided string +RLAPI const char *TextToCamel(const char *text); // Get Camel case notation version of provided string + +RLAPI int TextToInteger(const char *text); // Get integer value from text (negative values not supported) +RLAPI float TextToFloat(const char *text); // Get float value from text (negative values not supported) + +//------------------------------------------------------------------------------------ +// Basic 3d Shapes Drawing Functions (Module: models) +//------------------------------------------------------------------------------------ + +// Basic geometric 3D shapes drawing functions +RLAPI void DrawLine3D(Vector3 startPos, Vector3 endPos, Color color); // Draw a line in 3D world space +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(const 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 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 DrawCapsule(Vector3 startPos, Vector3 endPos, float radius, int slices, int rings, Color color); // Draw a capsule with the center of its sphere caps at startPos and endPos +RLAPI void DrawCapsuleWires(Vector3 startPos, Vector3 endPos, float radius, int slices, int rings, Color color); // Draw capsule wireframe with the center of its sphere caps at startPos and 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)) + +//------------------------------------------------------------------------------------ +// Model 3d Loading and Drawing Functions (Module: models) +//------------------------------------------------------------------------------------ + +// 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 bool IsModelValid(Model model); // Check if a model is valid (loaded in GPU, VAO/VBOs) +RLAPI void UnloadModel(Model model); // Unload model (including meshes) from memory (RAM and/or VRAM) +RLAPI BoundingBox GetModelBoundingBox(Model model); // Compute model bounding box limits (considers all meshes) + +// 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 DrawModelPoints(Model model, Vector3 position, float scale, Color tint); // Draw a model as points +RLAPI void DrawModelPointsEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model as points with extended parameters +RLAPI void DrawBoundingBox(BoundingBox box, Color color); // Draw bounding box (wires) +RLAPI void DrawBillboard(Camera camera, Texture2D texture, Vector3 position, float scale, 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, const 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, const Matrix *transforms, int instances); // Draw multiple mesh instances with material and different transforms +RLAPI BoundingBox GetMeshBoundingBox(Mesh mesh); // Compute mesh bounding box limits +RLAPI void GenMeshTangents(Mesh *mesh); // Compute mesh tangents +RLAPI bool ExportMesh(Mesh mesh, const char *fileName); // Export mesh data to file, returns true on success +RLAPI bool ExportMeshAsCode(Mesh mesh, const char *fileName); // Export mesh as code file (.h) defining multiple arrays of vertex attributes + +// Mesh generation functions +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 + +// 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 bool IsMaterialValid(Material material); // Check if a material is valid (shader assigned, map textures loaded in GPU) +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 *animCount); // Load model animations from file +RLAPI void UpdateModelAnimation(Model model, ModelAnimation anim, int frame); // Update model animation pose (CPU) +RLAPI void UpdateModelAnimationBones(Model model, ModelAnimation anim, int frame); // Update model animation mesh bone matrices (GPU skinning) +RLAPI void UnloadModelAnimation(ModelAnimation anim); // Unload animation data +RLAPI void UnloadModelAnimations(ModelAnimation *animations, int animCount); // 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); // 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 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) +//------------------------------------------------------------------------------------ +typedef void (*AudioCallback)(void *bufferData, unsigned int frames); + +// Audio device management functions +RLAPI void InitAudioDevice(void); // Initialize audio device and context +RLAPI void CloseAudioDevice(void); // Close the audio device and context +RLAPI bool IsAudioDeviceReady(void); // Check if audio device has been initialized successfully +RLAPI void SetMasterVolume(float volume); // Set master volume (listener) +RLAPI float GetMasterVolume(void); // Get master volume (listener) + +// 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. '.wav' +RLAPI bool IsWaveValid(Wave wave); // Checks if wave data is valid (data loaded and parameters) +RLAPI Sound LoadSound(const char *fileName); // Load sound from file +RLAPI Sound LoadSoundFromWave(Wave wave); // Load sound from wave data +RLAPI Sound LoadSoundAlias(Sound source); // Create a new sound that shares the same sample data as the source sound, does not own the sound data +RLAPI bool IsSoundValid(Sound sound); // Checks if a sound is valid (data loaded and buffers initialized) +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 void UnloadSoundAlias(Sound alias); // Unload a sound alias (does not deallocate sample data) +RLAPI bool ExportWave(Wave wave, const char *fileName); // Export wave data to file, returns true on success +RLAPI bool ExportWaveAsCode(Wave wave, const char *fileName); // Export wave sample data to code (.h), returns true on success + +// Wave/Sound management functions +RLAPI void PlaySound(Sound sound); // Play a sound +RLAPI void StopSound(Sound sound); // Stop playing a sound +RLAPI void PauseSound(Sound sound); // Pause a sound +RLAPI void ResumeSound(Sound sound); // Resume a paused sound +RLAPI bool IsSoundPlaying(Sound sound); // Check if a sound is currently playing +RLAPI void SetSoundVolume(Sound sound, float volume); // Set volume for a sound (1.0 is max level) +RLAPI void SetSoundPitch(Sound sound, float pitch); // Set pitch for a sound (1.0 is base level) +RLAPI void SetSoundPan(Sound sound, float pan); // Set pan for a sound (0.5 is center) +RLAPI Wave WaveCopy(Wave wave); // Copy a wave to a new wave +RLAPI void WaveCrop(Wave *wave, int initFrame, int finalFrame); // Crop a wave to defined frames range +RLAPI void WaveFormat(Wave *wave, int sampleRate, int sampleSize, int channels); // Convert wave data to desired format +RLAPI float *LoadWaveSamples(Wave wave); // Load samples data from wave as a 32bit float data array +RLAPI void UnloadWaveSamples(float *samples); // Unload samples data loaded with LoadWaveSamples() + +// Music management functions +RLAPI Music LoadMusicStream(const char *fileName); // Load music stream from file +RLAPI Music LoadMusicStreamFromMemory(const char *fileType, const unsigned char *data, int dataSize); // Load music stream from data +RLAPI bool IsMusicValid(Music music); // Checks if a music stream is valid (context and buffers initialized) +RLAPI void UnloadMusicStream(Music music); // Unload music stream +RLAPI void PlayMusicStream(Music music); // Start music 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 void SetMusicPan(Music music, float pan); // Set pan for a music (0.5 is center) +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 LoadAudioStream(unsigned int sampleRate, unsigned int sampleSize, unsigned int channels); // Load audio stream (to stream raw audio pcm data) +RLAPI bool IsAudioStreamValid(AudioStream stream); // Checks if an audio stream is valid (buffers initialized) +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 +RLAPI void ResumeAudioStream(AudioStream stream); // Resume audio stream +RLAPI bool IsAudioStreamPlaying(AudioStream stream); // Check if audio stream is playing +RLAPI void StopAudioStream(AudioStream stream); // Stop audio stream +RLAPI void SetAudioStreamVolume(AudioStream stream, float volume); // Set volume for audio stream (1.0 is max level) +RLAPI void SetAudioStreamPitch(AudioStream stream, float pitch); // Set pitch for audio stream (1.0 is base level) +RLAPI void SetAudioStreamPan(AudioStream stream, float pan); // Set pan for audio stream (0.5 is centered) +RLAPI void SetAudioStreamBufferSizeDefault(int size); // Default size for new audio streams +RLAPI void SetAudioStreamCallback(AudioStream stream, AudioCallback callback); // Audio thread callback to request new data + +RLAPI void AttachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Attach audio stream processor to stream, receives the samples as 'float' +RLAPI void DetachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Detach audio stream processor from stream + +RLAPI void AttachAudioMixedProcessor(AudioCallback processor); // Attach audio stream processor to the entire audio pipeline, receives the samples as 'float' +RLAPI void DetachAudioMixedProcessor(AudioCallback processor); // Detach audio stream processor from the entire audio pipeline + +#if defined(__cplusplus) +} +#endif + +#endif // RAYLIB_H diff --git a/lib/raylib_win/include/raymath.h b/lib/raylib_win/include/raymath.h index 40a8a84..e522113 100644 --- a/lib/raylib_win/include/raymath.h +++ b/lib/raylib_win/include/raymath.h @@ -1,2190 +1,2941 @@ -/********************************************************************************************** -* -* raymath v1.5 - Math functions to work with Vector2, Vector3, Matrix and Quaternions -* -* CONVENTIONS: -* - Matrix structure is defined as row-major (memory layout) but parameters naming AND all -* math operations performed by the library consider the structure as it was column-major -* It is like transposed versions of the matrices are used for all the maths -* It benefits some functions making them cache-friendly and also avoids matrix -* transpositions sometimes required by OpenGL -* Example: In memory order, row0 is [m0 m4 m8 m12] but in semantic math row0 is [m0 m1 m2 m3] -* - Functions are always self-contained, no function use another raymath function inside, -* required code is directly re-implemented inside -* - Functions input parameters are always received by value (2 unavoidable exceptions) -* - Functions use always a "result" variable for return -* - Functions are always defined inline -* - Angles are always in radians (DEG2RAD/RAD2DEG macros provided for convenience) -* - No compound literals used to make sure libray is compatible with C++ -* -* CONFIGURATION: -* #define RAYMATH_IMPLEMENTATION -* Generates the implementation of the library into the included file. -* If not defined, the library is in header only mode and can be included in other headers -* or source files without problems. But only ONE file should hold the implementation. -* -* #define RAYMATH_STATIC_INLINE -* Define static inline functions code, so #include header suffices for use. -* This may use up lots of memory. -* -* -* LICENSE: zlib/libpng -* -* Copyright (c) 2015-2023 Ramon Santamaria (@raysan5) -* -* This software is provided "as-is", without any express or implied warranty. In no event -* will the authors be held liable for any damages arising from the use of this software. -* -* Permission is granted to anyone to use this software for any purpose, including commercial -* applications, and to alter it and redistribute it freely, subject to the following restrictions: -* -* 1. The origin of this software must not be misrepresented; you must not claim that you -* wrote the original software. If you use this software in a product, an acknowledgment -* in the product documentation would be appreciated but is not required. -* -* 2. Altered source versions must be plainly marked as such, and must not be misrepresented -* as being the original software. -* -* 3. This notice may not be removed or altered from any source distribution. -* -**********************************************************************************************/ - -#ifndef RAYMATH_H -#define RAYMATH_H - -#if defined(RAYMATH_IMPLEMENTATION) && defined(RAYMATH_STATIC_INLINE) - #error "Specifying both RAYMATH_IMPLEMENTATION and RAYMATH_STATIC_INLINE is contradictory" -#endif - -// Function specifiers definition -#if defined(RAYMATH_IMPLEMENTATION) - #if defined(_WIN32) && defined(BUILD_LIBTYPE_SHARED) - #define RMAPI __declspec(dllexport) extern inline // We are building raylib as a Win32 shared library (.dll). - #elif defined(_WIN32) && defined(USE_LIBTYPE_SHARED) - #define RMAPI __declspec(dllimport) // We are using raylib as a Win32 shared library (.dll) - #else - #define RMAPI extern inline // Provide external definition - #endif -#elif defined(RAYMATH_STATIC_INLINE) - #define RMAPI static inline // Functions may be inlined, no external out-of-line definition -#else - #if defined(__TINYC__) - #define RMAPI static inline // plain inline not supported by tinycc (See issue #435) - #else - #define RMAPI inline // Functions may be inlined or external definition used - #endif -#endif - -//---------------------------------------------------------------------------------- -// Defines and Macros -//---------------------------------------------------------------------------------- -#ifndef PI - #define PI 3.14159265358979323846f -#endif - -#ifndef EPSILON - #define EPSILON 0.000001f -#endif - -#ifndef DEG2RAD - #define DEG2RAD (PI/180.0f) -#endif - -#ifndef RAD2DEG - #define RAD2DEG (180.0f/PI) -#endif - -// Get float vector for Matrix -#ifndef MatrixToFloat - #define MatrixToFloat(mat) (MatrixToFloatV(mat).v) -#endif - -// Get float vector for Vector3 -#ifndef Vector3ToFloat - #define Vector3ToFloat(vec) (Vector3ToFloatV(vec).v) -#endif - -//---------------------------------------------------------------------------------- -// Types and Structures Definition -//---------------------------------------------------------------------------------- -#if !defined(RL_VECTOR2_TYPE) -// Vector2 type -typedef struct Vector2 { - float x; - float y; -} Vector2; -#define RL_VECTOR2_TYPE -#endif - -#if !defined(RL_VECTOR3_TYPE) -// Vector3 type -typedef struct Vector3 { - float x; - float y; - float z; -} Vector3; -#define RL_VECTOR3_TYPE -#endif - -#if !defined(RL_VECTOR4_TYPE) -// Vector4 type -typedef struct Vector4 { - float x; - float y; - float z; - float w; -} Vector4; -#define RL_VECTOR4_TYPE -#endif - -#if !defined(RL_QUATERNION_TYPE) -// Quaternion type -typedef Vector4 Quaternion; -#define RL_QUATERNION_TYPE -#endif - -#if !defined(RL_MATRIX_TYPE) -// Matrix type (OpenGL style 4x4 - right handed, column major) -typedef struct Matrix { - float m0, m4, m8, m12; // Matrix first row (4 components) - float m1, m5, m9, m13; // Matrix second row (4 components) - float m2, m6, m10, m14; // Matrix third row (4 components) - float m3, m7, m11, m15; // Matrix fourth row (4 components) -} Matrix; -#define RL_MATRIX_TYPE -#endif - -// NOTE: Helper types to be used instead of array return types for *ToFloat functions -typedef struct float3 { - float v[3]; -} float3; - -typedef struct float16 { - float v[16]; -} float16; - -#include // Required for: sinf(), cosf(), tan(), atan2f(), sqrtf(), floor(), fminf(), fmaxf(), fabs() - -//---------------------------------------------------------------------------------- -// Module Functions Definition - Utils math -//---------------------------------------------------------------------------------- - -// Clamp float value -RMAPI float Clamp(float value, float min, float max) -{ - float result = (value < min)? min : value; - - if (result > max) result = max; - - return result; -} - -// Calculate linear interpolation between two floats -RMAPI float Lerp(float start, float end, float amount) -{ - float result = start + amount*(end - start); - - return result; -} - -// Normalize input value within input range -RMAPI float Normalize(float value, float start, float end) -{ - float result = (value - start)/(end - start); - - return result; -} - -// Remap input value within input range to output range -RMAPI float Remap(float value, float inputStart, float inputEnd, float outputStart, float outputEnd) -{ - float result = (value - inputStart)/(inputEnd - inputStart)*(outputEnd - outputStart) + outputStart; - - return result; -} - -// Wrap input value from min to max -RMAPI float Wrap(float value, float min, float max) -{ - float result = value - (max - min)*floorf((value - min)/(max - min)); - - return result; -} - -// Check whether two given floats are almost equal -RMAPI int FloatEquals(float x, float y) -{ -#if !defined(EPSILON) - #define EPSILON 0.000001f -#endif - - int result = (fabsf(x - y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(x), fabsf(y)))); - - return result; -} - -//---------------------------------------------------------------------------------- -// Module Functions Definition - Vector2 math -//---------------------------------------------------------------------------------- - -// Vector with components value 0.0f -RMAPI Vector2 Vector2Zero(void) -{ - Vector2 result = { 0.0f, 0.0f }; - - return result; -} - -// Vector with components value 1.0f -RMAPI Vector2 Vector2One(void) -{ - Vector2 result = { 1.0f, 1.0f }; - - return result; -} - -// Add two vectors (v1 + v2) -RMAPI Vector2 Vector2Add(Vector2 v1, Vector2 v2) -{ - Vector2 result = { v1.x + v2.x, v1.y + v2.y }; - - return result; -} - -// Add vector and float value -RMAPI Vector2 Vector2AddValue(Vector2 v, float add) -{ - Vector2 result = { v.x + add, v.y + add }; - - return result; -} - -// Subtract two vectors (v1 - v2) -RMAPI Vector2 Vector2Subtract(Vector2 v1, Vector2 v2) -{ - Vector2 result = { v1.x - v2.x, v1.y - v2.y }; - - return result; -} - -// Subtract vector by float value -RMAPI Vector2 Vector2SubtractValue(Vector2 v, float sub) -{ - Vector2 result = { v.x - sub, v.y - sub }; - - return result; -} - -// Calculate vector length -RMAPI float Vector2Length(Vector2 v) -{ - float result = sqrtf((v.x*v.x) + (v.y*v.y)); - - return result; -} - -// Calculate vector square length -RMAPI float Vector2LengthSqr(Vector2 v) -{ - float result = (v.x*v.x) + (v.y*v.y); - - return result; -} - -// Calculate two vectors dot product -RMAPI float Vector2DotProduct(Vector2 v1, Vector2 v2) -{ - float result = (v1.x*v2.x + v1.y*v2.y); - - return result; -} - -// Calculate distance between two vectors -RMAPI float Vector2Distance(Vector2 v1, Vector2 v2) -{ - float result = sqrtf((v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y)); - - return result; -} - -// Calculate square distance between two vectors -RMAPI float Vector2DistanceSqr(Vector2 v1, Vector2 v2) -{ - float result = ((v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y)); - - return result; -} - -// Calculate angle between two vectors -// NOTE: Angle is calculated from origin point (0, 0) -RMAPI float Vector2Angle(Vector2 v1, Vector2 v2) -{ - float result = 0.0f; - - float dot = v1.x*v2.x + v1.y*v2.y; - float det = v1.x*v2.y - v1.y*v2.x; - - result = atan2f(det, dot); - - return result; -} - -// Calculate angle defined by a two vectors line -// NOTE: Parameters need to be normalized -// Current implementation should be aligned with glm::angle -RMAPI float Vector2LineAngle(Vector2 start, Vector2 end) -{ - float result = 0.0f; - - // TODO(10/9/2023): Currently angles move clockwise, determine if this is wanted behavior - result = -atan2f(end.y - start.y, end.x - start.x); - - return result; -} - -// Scale vector (multiply by value) -RMAPI Vector2 Vector2Scale(Vector2 v, float scale) -{ - Vector2 result = { v.x*scale, v.y*scale }; - - return result; -} - -// Multiply vector by vector -RMAPI Vector2 Vector2Multiply(Vector2 v1, Vector2 v2) -{ - Vector2 result = { v1.x*v2.x, v1.y*v2.y }; - - return result; -} - -// Negate vector -RMAPI Vector2 Vector2Negate(Vector2 v) -{ - Vector2 result = { -v.x, -v.y }; - - return result; -} - -// Divide vector by vector -RMAPI Vector2 Vector2Divide(Vector2 v1, Vector2 v2) -{ - Vector2 result = { v1.x/v2.x, v1.y/v2.y }; - - return result; -} - -// Normalize provided vector -RMAPI Vector2 Vector2Normalize(Vector2 v) -{ - Vector2 result = { 0 }; - float length = sqrtf((v.x*v.x) + (v.y*v.y)); - - if (length > 0) - { - float ilength = 1.0f/length; - result.x = v.x*ilength; - result.y = v.y*ilength; - } - - return result; -} - -// Transforms a Vector2 by a given Matrix -RMAPI Vector2 Vector2Transform(Vector2 v, Matrix mat) -{ - Vector2 result = { 0 }; - - float x = v.x; - float y = v.y; - float z = 0; - - result.x = mat.m0*x + mat.m4*y + mat.m8*z + mat.m12; - result.y = mat.m1*x + mat.m5*y + mat.m9*z + mat.m13; - - return result; -} - -// Calculate linear interpolation between two vectors -RMAPI Vector2 Vector2Lerp(Vector2 v1, Vector2 v2, float amount) -{ - Vector2 result = { 0 }; - - result.x = v1.x + amount*(v2.x - v1.x); - result.y = v1.y + amount*(v2.y - v1.y); - - return result; -} - -// Calculate reflected vector to normal -RMAPI Vector2 Vector2Reflect(Vector2 v, Vector2 normal) -{ - Vector2 result = { 0 }; - - float dotProduct = (v.x*normal.x + v.y*normal.y); // Dot product - - result.x = v.x - (2.0f*normal.x)*dotProduct; - result.y = v.y - (2.0f*normal.y)*dotProduct; - - return result; -} - -// Rotate vector by angle -RMAPI Vector2 Vector2Rotate(Vector2 v, float angle) -{ - Vector2 result = { 0 }; - - float cosres = cosf(angle); - float sinres = sinf(angle); - - result.x = v.x*cosres - v.y*sinres; - result.y = v.x*sinres + v.y*cosres; - - return result; -} - -// Move Vector towards target -RMAPI Vector2 Vector2MoveTowards(Vector2 v, Vector2 target, float maxDistance) -{ - Vector2 result = { 0 }; - - float dx = target.x - v.x; - float dy = target.y - v.y; - float value = (dx*dx) + (dy*dy); - - if ((value == 0) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target; - - float dist = sqrtf(value); - - result.x = v.x + dx/dist*maxDistance; - result.y = v.y + dy/dist*maxDistance; - - return result; -} - -// Invert the given vector -RMAPI Vector2 Vector2Invert(Vector2 v) -{ - Vector2 result = { 1.0f/v.x, 1.0f/v.y }; - - return result; -} - -// Clamp the components of the vector between -// min and max values specified by the given vectors -RMAPI Vector2 Vector2Clamp(Vector2 v, Vector2 min, Vector2 max) -{ - Vector2 result = { 0 }; - - result.x = fminf(max.x, fmaxf(min.x, v.x)); - result.y = fminf(max.y, fmaxf(min.y, v.y)); - - return result; -} - -// Clamp the magnitude of the vector between two min and max values -RMAPI Vector2 Vector2ClampValue(Vector2 v, float min, float max) -{ - Vector2 result = v; - - float length = (v.x*v.x) + (v.y*v.y); - if (length > 0.0f) - { - length = sqrtf(length); - - if (length < min) - { - float scale = min/length; - result.x = v.x*scale; - result.y = v.y*scale; - } - else if (length > max) - { - float scale = max/length; - result.x = v.x*scale; - result.y = v.y*scale; - } - } - - return result; -} - -// Check whether two given vectors are almost equal -RMAPI int Vector2Equals(Vector2 p, Vector2 q) -{ -#if !defined(EPSILON) - #define EPSILON 0.000001f -#endif - - int result = ((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && - ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))); - - return result; -} - -//---------------------------------------------------------------------------------- -// Module Functions Definition - Vector3 math -//---------------------------------------------------------------------------------- - -// Vector with components value 0.0f -RMAPI Vector3 Vector3Zero(void) -{ - Vector3 result = { 0.0f, 0.0f, 0.0f }; - - return result; -} - -// Vector with components value 1.0f -RMAPI Vector3 Vector3One(void) -{ - Vector3 result = { 1.0f, 1.0f, 1.0f }; - - return result; -} - -// Add two vectors -RMAPI Vector3 Vector3Add(Vector3 v1, Vector3 v2) -{ - Vector3 result = { v1.x + v2.x, v1.y + v2.y, v1.z + v2.z }; - - return result; -} - -// Add vector and float value -RMAPI Vector3 Vector3AddValue(Vector3 v, float add) -{ - Vector3 result = { v.x + add, v.y + add, v.z + add }; - - return result; -} - -// Subtract two vectors -RMAPI Vector3 Vector3Subtract(Vector3 v1, Vector3 v2) -{ - Vector3 result = { v1.x - v2.x, v1.y - v2.y, v1.z - v2.z }; - - return result; -} - -// Subtract vector by float value -RMAPI Vector3 Vector3SubtractValue(Vector3 v, float sub) -{ - Vector3 result = { v.x - sub, v.y - sub, v.z - sub }; - - return result; -} - -// Multiply vector by scalar -RMAPI Vector3 Vector3Scale(Vector3 v, float scalar) -{ - Vector3 result = { v.x*scalar, v.y*scalar, v.z*scalar }; - - return result; -} - -// Multiply vector by vector -RMAPI Vector3 Vector3Multiply(Vector3 v1, Vector3 v2) -{ - Vector3 result = { v1.x*v2.x, v1.y*v2.y, v1.z*v2.z }; - - return result; -} - -// Calculate two vectors cross product -RMAPI Vector3 Vector3CrossProduct(Vector3 v1, Vector3 v2) -{ - Vector3 result = { v1.y*v2.z - v1.z*v2.y, v1.z*v2.x - v1.x*v2.z, v1.x*v2.y - v1.y*v2.x }; - - return result; -} - -// Calculate one vector perpendicular vector -RMAPI Vector3 Vector3Perpendicular(Vector3 v) -{ - Vector3 result = { 0 }; - - float min = (float) fabs(v.x); - Vector3 cardinalAxis = {1.0f, 0.0f, 0.0f}; - - if (fabsf(v.y) < min) - { - min = (float) fabs(v.y); - Vector3 tmp = {0.0f, 1.0f, 0.0f}; - cardinalAxis = tmp; - } - - if (fabsf(v.z) < min) - { - Vector3 tmp = {0.0f, 0.0f, 1.0f}; - cardinalAxis = tmp; - } - - // Cross product between vectors - result.x = v.y*cardinalAxis.z - v.z*cardinalAxis.y; - result.y = v.z*cardinalAxis.x - v.x*cardinalAxis.z; - result.z = v.x*cardinalAxis.y - v.y*cardinalAxis.x; - - return result; -} - -// Calculate vector length -RMAPI float Vector3Length(const Vector3 v) -{ - float result = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); - - return result; -} - -// Calculate vector square length -RMAPI float Vector3LengthSqr(const Vector3 v) -{ - float result = v.x*v.x + v.y*v.y + v.z*v.z; - - return result; -} - -// Calculate two vectors dot product -RMAPI float Vector3DotProduct(Vector3 v1, Vector3 v2) -{ - float result = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); - - return result; -} - -// Calculate distance between two vectors -RMAPI float Vector3Distance(Vector3 v1, Vector3 v2) -{ - float result = 0.0f; - - float dx = v2.x - v1.x; - float dy = v2.y - v1.y; - float dz = v2.z - v1.z; - result = sqrtf(dx*dx + dy*dy + dz*dz); - - return result; -} - -// Calculate square distance between two vectors -RMAPI float Vector3DistanceSqr(Vector3 v1, Vector3 v2) -{ - float result = 0.0f; - - float dx = v2.x - v1.x; - float dy = v2.y - v1.y; - float dz = v2.z - v1.z; - result = dx*dx + dy*dy + dz*dz; - - return result; -} - -// Calculate angle between two vectors -RMAPI float Vector3Angle(Vector3 v1, Vector3 v2) -{ - float result = 0.0f; - - Vector3 cross = { v1.y*v2.z - v1.z*v2.y, v1.z*v2.x - v1.x*v2.z, v1.x*v2.y - v1.y*v2.x }; - float len = sqrtf(cross.x*cross.x + cross.y*cross.y + cross.z*cross.z); - float dot = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); - result = atan2f(len, dot); - - return result; -} - -// Negate provided vector (invert direction) -RMAPI Vector3 Vector3Negate(Vector3 v) -{ - Vector3 result = { -v.x, -v.y, -v.z }; - - return result; -} - -// Divide vector by vector -RMAPI Vector3 Vector3Divide(Vector3 v1, Vector3 v2) -{ - Vector3 result = { v1.x/v2.x, v1.y/v2.y, v1.z/v2.z }; - - return result; -} - -// Normalize provided vector -RMAPI Vector3 Vector3Normalize(Vector3 v) -{ - Vector3 result = v; - - float length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); - if (length != 0.0f) - { - float ilength = 1.0f/length; - - result.x *= ilength; - result.y *= ilength; - result.z *= ilength; - } - - return result; -} - -//Calculate the projection of the vector v1 on to v2 -RMAPI Vector3 Vector3Project(Vector3 v1, Vector3 v2) -{ - Vector3 result = { 0 }; - - float v1dv2 = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); - float v2dv2 = (v2.x*v2.x + v2.y*v2.y + v2.z*v2.z); - - float mag = v1dv2/v2dv2; - - result.x = v2.x*mag; - result.y = v2.y*mag; - result.z = v2.z*mag; - - return result; -} - -//Calculate the rejection of the vector v1 on to v2 -RMAPI Vector3 Vector3Reject(Vector3 v1, Vector3 v2) -{ - Vector3 result = { 0 }; - - float v1dv2 = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); - float v2dv2 = (v2.x*v2.x + v2.y*v2.y + v2.z*v2.z); - - float mag = v1dv2/v2dv2; - - result.x = v1.x - (v2.x*mag); - result.y = v1.y - (v2.y*mag); - result.z = v1.z - (v2.z*mag); - - return result; -} - -// Orthonormalize provided vectors -// Makes vectors normalized and orthogonal to each other -// Gram-Schmidt function implementation -RMAPI void Vector3OrthoNormalize(Vector3 *v1, Vector3 *v2) -{ - float length = 0.0f; - float ilength = 0.0f; - - // Vector3Normalize(*v1); - Vector3 v = *v1; - length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); - if (length == 0.0f) length = 1.0f; - ilength = 1.0f/length; - v1->x *= ilength; - v1->y *= ilength; - v1->z *= ilength; - - // Vector3CrossProduct(*v1, *v2) - Vector3 vn1 = { v1->y*v2->z - v1->z*v2->y, v1->z*v2->x - v1->x*v2->z, v1->x*v2->y - v1->y*v2->x }; - - // Vector3Normalize(vn1); - v = vn1; - length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); - if (length == 0.0f) length = 1.0f; - ilength = 1.0f/length; - vn1.x *= ilength; - vn1.y *= ilength; - vn1.z *= ilength; - - // Vector3CrossProduct(vn1, *v1) - Vector3 vn2 = { vn1.y*v1->z - vn1.z*v1->y, vn1.z*v1->x - vn1.x*v1->z, vn1.x*v1->y - vn1.y*v1->x }; - - *v2 = vn2; -} - -// Transforms a Vector3 by a given Matrix -RMAPI Vector3 Vector3Transform(Vector3 v, Matrix mat) -{ - Vector3 result = { 0 }; - - float x = v.x; - float y = v.y; - float z = v.z; - - result.x = mat.m0*x + mat.m4*y + mat.m8*z + mat.m12; - result.y = mat.m1*x + mat.m5*y + mat.m9*z + mat.m13; - result.z = mat.m2*x + mat.m6*y + mat.m10*z + mat.m14; - - return result; -} - -// Transform a vector by quaternion rotation -RMAPI Vector3 Vector3RotateByQuaternion(Vector3 v, Quaternion q) -{ - Vector3 result = { 0 }; - - result.x = v.x*(q.x*q.x + q.w*q.w - q.y*q.y - q.z*q.z) + v.y*(2*q.x*q.y - 2*q.w*q.z) + v.z*(2*q.x*q.z + 2*q.w*q.y); - result.y = v.x*(2*q.w*q.z + 2*q.x*q.y) + v.y*(q.w*q.w - q.x*q.x + q.y*q.y - q.z*q.z) + v.z*(-2*q.w*q.x + 2*q.y*q.z); - result.z = v.x*(-2*q.w*q.y + 2*q.x*q.z) + v.y*(2*q.w*q.x + 2*q.y*q.z)+ v.z*(q.w*q.w - q.x*q.x - q.y*q.y + q.z*q.z); - - return result; -} - -// Rotates a vector around an axis -RMAPI Vector3 Vector3RotateByAxisAngle(Vector3 v, Vector3 axis, float angle) -{ - // Using Euler-Rodrigues Formula - // Ref.: https://en.wikipedia.org/w/index.php?title=Euler%E2%80%93Rodrigues_formula - - Vector3 result = v; - - // Vector3Normalize(axis); - float length = sqrtf(axis.x*axis.x + axis.y*axis.y + axis.z*axis.z); - if (length == 0.0f) length = 1.0f; - float ilength = 1.0f / length; - axis.x *= ilength; - axis.y *= ilength; - axis.z *= ilength; - - angle /= 2.0f; - float a = sinf(angle); - float b = axis.x*a; - float c = axis.y*a; - float d = axis.z*a; - a = cosf(angle); - Vector3 w = { b, c, d }; - - // Vector3CrossProduct(w, v) - Vector3 wv = { w.y*v.z - w.z*v.y, w.z*v.x - w.x*v.z, w.x*v.y - w.y*v.x }; - - // Vector3CrossProduct(w, wv) - Vector3 wwv = { w.y*wv.z - w.z*wv.y, w.z*wv.x - w.x*wv.z, w.x*wv.y - w.y*wv.x }; - - // Vector3Scale(wv, 2*a) - a *= 2; - wv.x *= a; - wv.y *= a; - wv.z *= a; - - // Vector3Scale(wwv, 2) - wwv.x *= 2; - wwv.y *= 2; - wwv.z *= 2; - - result.x += wv.x; - result.y += wv.y; - result.z += wv.z; - - result.x += wwv.x; - result.y += wwv.y; - result.z += wwv.z; - - return result; -} - -// Calculate linear interpolation between two vectors -RMAPI Vector3 Vector3Lerp(Vector3 v1, Vector3 v2, float amount) -{ - Vector3 result = { 0 }; - - result.x = v1.x + amount*(v2.x - v1.x); - result.y = v1.y + amount*(v2.y - v1.y); - result.z = v1.z + amount*(v2.z - v1.z); - - return result; -} - -// Calculate reflected vector to normal -RMAPI Vector3 Vector3Reflect(Vector3 v, Vector3 normal) -{ - Vector3 result = { 0 }; - - // I is the original vector - // N is the normal of the incident plane - // R = I - (2*N*(DotProduct[I, N])) - - float dotProduct = (v.x*normal.x + v.y*normal.y + v.z*normal.z); - - result.x = v.x - (2.0f*normal.x)*dotProduct; - result.y = v.y - (2.0f*normal.y)*dotProduct; - result.z = v.z - (2.0f*normal.z)*dotProduct; - - return result; -} - -// Get min value for each pair of components -RMAPI Vector3 Vector3Min(Vector3 v1, Vector3 v2) -{ - Vector3 result = { 0 }; - - result.x = fminf(v1.x, v2.x); - result.y = fminf(v1.y, v2.y); - result.z = fminf(v1.z, v2.z); - - return result; -} - -// Get max value for each pair of components -RMAPI Vector3 Vector3Max(Vector3 v1, Vector3 v2) -{ - Vector3 result = { 0 }; - - result.x = fmaxf(v1.x, v2.x); - result.y = fmaxf(v1.y, v2.y); - result.z = fmaxf(v1.z, v2.z); - - return result; -} - -// Compute barycenter coordinates (u, v, w) for point p with respect to triangle (a, b, c) -// NOTE: Assumes P is on the plane of the triangle -RMAPI Vector3 Vector3Barycenter(Vector3 p, Vector3 a, Vector3 b, Vector3 c) -{ - Vector3 result = { 0 }; - - Vector3 v0 = { b.x - a.x, b.y - a.y, b.z - a.z }; // Vector3Subtract(b, a) - Vector3 v1 = { c.x - a.x, c.y - a.y, c.z - a.z }; // Vector3Subtract(c, a) - Vector3 v2 = { p.x - a.x, p.y - a.y, p.z - a.z }; // Vector3Subtract(p, a) - float d00 = (v0.x*v0.x + v0.y*v0.y + v0.z*v0.z); // Vector3DotProduct(v0, v0) - float d01 = (v0.x*v1.x + v0.y*v1.y + v0.z*v1.z); // Vector3DotProduct(v0, v1) - float d11 = (v1.x*v1.x + v1.y*v1.y + v1.z*v1.z); // Vector3DotProduct(v1, v1) - float d20 = (v2.x*v0.x + v2.y*v0.y + v2.z*v0.z); // Vector3DotProduct(v2, v0) - float d21 = (v2.x*v1.x + v2.y*v1.y + v2.z*v1.z); // Vector3DotProduct(v2, v1) - - float denom = d00*d11 - d01*d01; - - result.y = (d11*d20 - d01*d21)/denom; - result.z = (d00*d21 - d01*d20)/denom; - result.x = 1.0f - (result.z + result.y); - - return result; -} - -// Projects a Vector3 from screen space into object space -// NOTE: We are avoiding calling other raymath functions despite available -RMAPI Vector3 Vector3Unproject(Vector3 source, Matrix projection, Matrix view) -{ - Vector3 result = { 0 }; - - // Calculate unprojected matrix (multiply view matrix by projection matrix) and invert it - Matrix matViewProj = { // MatrixMultiply(view, projection); - view.m0*projection.m0 + view.m1*projection.m4 + view.m2*projection.m8 + view.m3*projection.m12, - view.m0*projection.m1 + view.m1*projection.m5 + view.m2*projection.m9 + view.m3*projection.m13, - view.m0*projection.m2 + view.m1*projection.m6 + view.m2*projection.m10 + view.m3*projection.m14, - view.m0*projection.m3 + view.m1*projection.m7 + view.m2*projection.m11 + view.m3*projection.m15, - view.m4*projection.m0 + view.m5*projection.m4 + view.m6*projection.m8 + view.m7*projection.m12, - view.m4*projection.m1 + view.m5*projection.m5 + view.m6*projection.m9 + view.m7*projection.m13, - view.m4*projection.m2 + view.m5*projection.m6 + view.m6*projection.m10 + view.m7*projection.m14, - view.m4*projection.m3 + view.m5*projection.m7 + view.m6*projection.m11 + view.m7*projection.m15, - view.m8*projection.m0 + view.m9*projection.m4 + view.m10*projection.m8 + view.m11*projection.m12, - view.m8*projection.m1 + view.m9*projection.m5 + view.m10*projection.m9 + view.m11*projection.m13, - view.m8*projection.m2 + view.m9*projection.m6 + view.m10*projection.m10 + view.m11*projection.m14, - view.m8*projection.m3 + view.m9*projection.m7 + view.m10*projection.m11 + view.m11*projection.m15, - view.m12*projection.m0 + view.m13*projection.m4 + view.m14*projection.m8 + view.m15*projection.m12, - view.m12*projection.m1 + view.m13*projection.m5 + view.m14*projection.m9 + view.m15*projection.m13, - view.m12*projection.m2 + view.m13*projection.m6 + view.m14*projection.m10 + view.m15*projection.m14, - view.m12*projection.m3 + view.m13*projection.m7 + view.m14*projection.m11 + view.m15*projection.m15 }; - - // Calculate inverted matrix -> MatrixInvert(matViewProj); - // Cache the matrix values (speed optimization) - float a00 = matViewProj.m0, a01 = matViewProj.m1, a02 = matViewProj.m2, a03 = matViewProj.m3; - float a10 = matViewProj.m4, a11 = matViewProj.m5, a12 = matViewProj.m6, a13 = matViewProj.m7; - float a20 = matViewProj.m8, a21 = matViewProj.m9, a22 = matViewProj.m10, a23 = matViewProj.m11; - float a30 = matViewProj.m12, a31 = matViewProj.m13, a32 = matViewProj.m14, a33 = matViewProj.m15; - - float b00 = a00*a11 - a01*a10; - float b01 = a00*a12 - a02*a10; - float b02 = a00*a13 - a03*a10; - float b03 = a01*a12 - a02*a11; - float b04 = a01*a13 - a03*a11; - float b05 = a02*a13 - a03*a12; - float b06 = a20*a31 - a21*a30; - float b07 = a20*a32 - a22*a30; - float b08 = a20*a33 - a23*a30; - float b09 = a21*a32 - a22*a31; - float b10 = a21*a33 - a23*a31; - float b11 = a22*a33 - a23*a32; - - // Calculate the invert determinant (inlined to avoid double-caching) - float invDet = 1.0f/(b00*b11 - b01*b10 + b02*b09 + b03*b08 - b04*b07 + b05*b06); - - Matrix matViewProjInv = { - (a11*b11 - a12*b10 + a13*b09)*invDet, - (-a01*b11 + a02*b10 - a03*b09)*invDet, - (a31*b05 - a32*b04 + a33*b03)*invDet, - (-a21*b05 + a22*b04 - a23*b03)*invDet, - (-a10*b11 + a12*b08 - a13*b07)*invDet, - (a00*b11 - a02*b08 + a03*b07)*invDet, - (-a30*b05 + a32*b02 - a33*b01)*invDet, - (a20*b05 - a22*b02 + a23*b01)*invDet, - (a10*b10 - a11*b08 + a13*b06)*invDet, - (-a00*b10 + a01*b08 - a03*b06)*invDet, - (a30*b04 - a31*b02 + a33*b00)*invDet, - (-a20*b04 + a21*b02 - a23*b00)*invDet, - (-a10*b09 + a11*b07 - a12*b06)*invDet, - (a00*b09 - a01*b07 + a02*b06)*invDet, - (-a30*b03 + a31*b01 - a32*b00)*invDet, - (a20*b03 - a21*b01 + a22*b00)*invDet }; - - // Create quaternion from source point - Quaternion quat = { source.x, source.y, source.z, 1.0f }; - - // Multiply quat point by unprojecte matrix - Quaternion qtransformed = { // QuaternionTransform(quat, matViewProjInv) - matViewProjInv.m0*quat.x + matViewProjInv.m4*quat.y + matViewProjInv.m8*quat.z + matViewProjInv.m12*quat.w, - matViewProjInv.m1*quat.x + matViewProjInv.m5*quat.y + matViewProjInv.m9*quat.z + matViewProjInv.m13*quat.w, - matViewProjInv.m2*quat.x + matViewProjInv.m6*quat.y + matViewProjInv.m10*quat.z + matViewProjInv.m14*quat.w, - matViewProjInv.m3*quat.x + matViewProjInv.m7*quat.y + matViewProjInv.m11*quat.z + matViewProjInv.m15*quat.w }; - - // Normalized world points in vectors - result.x = qtransformed.x/qtransformed.w; - result.y = qtransformed.y/qtransformed.w; - result.z = qtransformed.z/qtransformed.w; - - return result; -} - -// Get Vector3 as float array -RMAPI float3 Vector3ToFloatV(Vector3 v) -{ - float3 buffer = { 0 }; - - buffer.v[0] = v.x; - buffer.v[1] = v.y; - buffer.v[2] = v.z; - - return buffer; -} - -// Invert the given vector -RMAPI Vector3 Vector3Invert(Vector3 v) -{ - Vector3 result = { 1.0f/v.x, 1.0f/v.y, 1.0f/v.z }; - - return result; -} - -// Clamp the components of the vector between -// min and max values specified by the given vectors -RMAPI Vector3 Vector3Clamp(Vector3 v, Vector3 min, Vector3 max) -{ - Vector3 result = { 0 }; - - result.x = fminf(max.x, fmaxf(min.x, v.x)); - result.y = fminf(max.y, fmaxf(min.y, v.y)); - result.z = fminf(max.z, fmaxf(min.z, v.z)); - - return result; -} - -// Clamp the magnitude of the vector between two values -RMAPI Vector3 Vector3ClampValue(Vector3 v, float min, float max) -{ - Vector3 result = v; - - float length = (v.x*v.x) + (v.y*v.y) + (v.z*v.z); - if (length > 0.0f) - { - length = sqrtf(length); - - if (length < min) - { - float scale = min/length; - result.x = v.x*scale; - result.y = v.y*scale; - result.z = v.z*scale; - } - else if (length > max) - { - float scale = max/length; - result.x = v.x*scale; - result.y = v.y*scale; - result.z = v.z*scale; - } - } - - return result; -} - -// Check whether two given vectors are almost equal -RMAPI int Vector3Equals(Vector3 p, Vector3 q) -{ -#if !defined(EPSILON) - #define EPSILON 0.000001f -#endif - - int result = ((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && - ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && - ((fabsf(p.z - q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))); - - return result; -} - -// Compute the direction of a refracted ray -// v: normalized direction of the incoming ray -// n: normalized normal vector of the interface of two optical media -// r: ratio of the refractive index of the medium from where the ray comes -// to the refractive index of the medium on the other side of the surface -RMAPI Vector3 Vector3Refract(Vector3 v, Vector3 n, float r) -{ - Vector3 result = { 0 }; - - float dot = v.x*n.x + v.y*n.y + v.z*n.z; - float d = 1.0f - r*r*(1.0f - dot*dot); - - if (d >= 0.0f) - { - d = sqrtf(d); - v.x = r*v.x - (r*dot + d)*n.x; - v.y = r*v.y - (r*dot + d)*n.y; - v.z = r*v.z - (r*dot + d)*n.z; - - result = v; - } - - return result; -} - -//---------------------------------------------------------------------------------- -// Module Functions Definition - Matrix math -//---------------------------------------------------------------------------------- - -// Compute matrix determinant -RMAPI float MatrixDeterminant(Matrix mat) -{ - float result = 0.0f; - - // Cache the matrix values (speed optimization) - float a00 = mat.m0, a01 = mat.m1, a02 = mat.m2, a03 = mat.m3; - float a10 = mat.m4, a11 = mat.m5, a12 = mat.m6, a13 = mat.m7; - float a20 = mat.m8, a21 = mat.m9, a22 = mat.m10, a23 = mat.m11; - float a30 = mat.m12, a31 = mat.m13, a32 = mat.m14, a33 = mat.m15; - - result = a30*a21*a12*a03 - a20*a31*a12*a03 - a30*a11*a22*a03 + a10*a31*a22*a03 + - a20*a11*a32*a03 - a10*a21*a32*a03 - a30*a21*a02*a13 + a20*a31*a02*a13 + - a30*a01*a22*a13 - a00*a31*a22*a13 - a20*a01*a32*a13 + a00*a21*a32*a13 + - a30*a11*a02*a23 - a10*a31*a02*a23 - a30*a01*a12*a23 + a00*a31*a12*a23 + - a10*a01*a32*a23 - a00*a11*a32*a23 - a20*a11*a02*a33 + a10*a21*a02*a33 + - a20*a01*a12*a33 - a00*a21*a12*a33 - a10*a01*a22*a33 + a00*a11*a22*a33; - - return result; -} - -// Get the trace of the matrix (sum of the values along the diagonal) -RMAPI float MatrixTrace(Matrix mat) -{ - float result = (mat.m0 + mat.m5 + mat.m10 + mat.m15); - - return result; -} - -// Transposes provided matrix -RMAPI Matrix MatrixTranspose(Matrix mat) -{ - Matrix result = { 0 }; - - result.m0 = mat.m0; - result.m1 = mat.m4; - result.m2 = mat.m8; - result.m3 = mat.m12; - result.m4 = mat.m1; - result.m5 = mat.m5; - result.m6 = mat.m9; - result.m7 = mat.m13; - result.m8 = mat.m2; - result.m9 = mat.m6; - result.m10 = mat.m10; - result.m11 = mat.m14; - result.m12 = mat.m3; - result.m13 = mat.m7; - result.m14 = mat.m11; - result.m15 = mat.m15; - - return result; -} - -// Invert provided matrix -RMAPI Matrix MatrixInvert(Matrix mat) -{ - Matrix result = { 0 }; - - // Cache the matrix values (speed optimization) - float a00 = mat.m0, a01 = mat.m1, a02 = mat.m2, a03 = mat.m3; - float a10 = mat.m4, a11 = mat.m5, a12 = mat.m6, a13 = mat.m7; - float a20 = mat.m8, a21 = mat.m9, a22 = mat.m10, a23 = mat.m11; - float a30 = mat.m12, a31 = mat.m13, a32 = mat.m14, a33 = mat.m15; - - float b00 = a00*a11 - a01*a10; - float b01 = a00*a12 - a02*a10; - float b02 = a00*a13 - a03*a10; - float b03 = a01*a12 - a02*a11; - float b04 = a01*a13 - a03*a11; - float b05 = a02*a13 - a03*a12; - float b06 = a20*a31 - a21*a30; - float b07 = a20*a32 - a22*a30; - float b08 = a20*a33 - a23*a30; - float b09 = a21*a32 - a22*a31; - float b10 = a21*a33 - a23*a31; - float b11 = a22*a33 - a23*a32; - - // Calculate the invert determinant (inlined to avoid double-caching) - float invDet = 1.0f/(b00*b11 - b01*b10 + b02*b09 + b03*b08 - b04*b07 + b05*b06); - - result.m0 = (a11*b11 - a12*b10 + a13*b09)*invDet; - result.m1 = (-a01*b11 + a02*b10 - a03*b09)*invDet; - result.m2 = (a31*b05 - a32*b04 + a33*b03)*invDet; - result.m3 = (-a21*b05 + a22*b04 - a23*b03)*invDet; - result.m4 = (-a10*b11 + a12*b08 - a13*b07)*invDet; - result.m5 = (a00*b11 - a02*b08 + a03*b07)*invDet; - result.m6 = (-a30*b05 + a32*b02 - a33*b01)*invDet; - result.m7 = (a20*b05 - a22*b02 + a23*b01)*invDet; - result.m8 = (a10*b10 - a11*b08 + a13*b06)*invDet; - result.m9 = (-a00*b10 + a01*b08 - a03*b06)*invDet; - result.m10 = (a30*b04 - a31*b02 + a33*b00)*invDet; - result.m11 = (-a20*b04 + a21*b02 - a23*b00)*invDet; - result.m12 = (-a10*b09 + a11*b07 - a12*b06)*invDet; - result.m13 = (a00*b09 - a01*b07 + a02*b06)*invDet; - result.m14 = (-a30*b03 + a31*b01 - a32*b00)*invDet; - result.m15 = (a20*b03 - a21*b01 + a22*b00)*invDet; - - return result; -} - -// Get identity matrix -RMAPI Matrix MatrixIdentity(void) -{ - Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 1.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 1.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 1.0f }; - - return result; -} - -// Add two matrices -RMAPI Matrix MatrixAdd(Matrix left, Matrix right) -{ - Matrix result = { 0 }; - - result.m0 = left.m0 + right.m0; - result.m1 = left.m1 + right.m1; - result.m2 = left.m2 + right.m2; - result.m3 = left.m3 + right.m3; - result.m4 = left.m4 + right.m4; - result.m5 = left.m5 + right.m5; - result.m6 = left.m6 + right.m6; - result.m7 = left.m7 + right.m7; - result.m8 = left.m8 + right.m8; - result.m9 = left.m9 + right.m9; - result.m10 = left.m10 + right.m10; - result.m11 = left.m11 + right.m11; - result.m12 = left.m12 + right.m12; - result.m13 = left.m13 + right.m13; - result.m14 = left.m14 + right.m14; - result.m15 = left.m15 + right.m15; - - return result; -} - -// Subtract two matrices (left - right) -RMAPI Matrix MatrixSubtract(Matrix left, Matrix right) -{ - Matrix result = { 0 }; - - result.m0 = left.m0 - right.m0; - result.m1 = left.m1 - right.m1; - result.m2 = left.m2 - right.m2; - result.m3 = left.m3 - right.m3; - result.m4 = left.m4 - right.m4; - result.m5 = left.m5 - right.m5; - result.m6 = left.m6 - right.m6; - result.m7 = left.m7 - right.m7; - result.m8 = left.m8 - right.m8; - result.m9 = left.m9 - right.m9; - result.m10 = left.m10 - right.m10; - result.m11 = left.m11 - right.m11; - result.m12 = left.m12 - right.m12; - result.m13 = left.m13 - right.m13; - result.m14 = left.m14 - right.m14; - result.m15 = left.m15 - right.m15; - - return result; -} - -// Get two matrix multiplication -// NOTE: When multiplying matrices... the order matters! -RMAPI Matrix MatrixMultiply(Matrix left, Matrix right) -{ - Matrix result = { 0 }; - - result.m0 = left.m0*right.m0 + left.m1*right.m4 + left.m2*right.m8 + left.m3*right.m12; - result.m1 = left.m0*right.m1 + left.m1*right.m5 + left.m2*right.m9 + left.m3*right.m13; - result.m2 = left.m0*right.m2 + left.m1*right.m6 + left.m2*right.m10 + left.m3*right.m14; - result.m3 = left.m0*right.m3 + left.m1*right.m7 + left.m2*right.m11 + left.m3*right.m15; - result.m4 = left.m4*right.m0 + left.m5*right.m4 + left.m6*right.m8 + left.m7*right.m12; - result.m5 = left.m4*right.m1 + left.m5*right.m5 + left.m6*right.m9 + left.m7*right.m13; - result.m6 = left.m4*right.m2 + left.m5*right.m6 + left.m6*right.m10 + left.m7*right.m14; - result.m7 = left.m4*right.m3 + left.m5*right.m7 + left.m6*right.m11 + left.m7*right.m15; - result.m8 = left.m8*right.m0 + left.m9*right.m4 + left.m10*right.m8 + left.m11*right.m12; - result.m9 = left.m8*right.m1 + left.m9*right.m5 + left.m10*right.m9 + left.m11*right.m13; - result.m10 = left.m8*right.m2 + left.m9*right.m6 + left.m10*right.m10 + left.m11*right.m14; - result.m11 = left.m8*right.m3 + left.m9*right.m7 + left.m10*right.m11 + left.m11*right.m15; - result.m12 = left.m12*right.m0 + left.m13*right.m4 + left.m14*right.m8 + left.m15*right.m12; - result.m13 = left.m12*right.m1 + left.m13*right.m5 + left.m14*right.m9 + left.m15*right.m13; - result.m14 = left.m12*right.m2 + left.m13*right.m6 + left.m14*right.m10 + left.m15*right.m14; - result.m15 = left.m12*right.m3 + left.m13*right.m7 + left.m14*right.m11 + left.m15*right.m15; - - return result; -} - -// Get translation matrix -RMAPI Matrix MatrixTranslate(float x, float y, float z) -{ - Matrix result = { 1.0f, 0.0f, 0.0f, x, - 0.0f, 1.0f, 0.0f, y, - 0.0f, 0.0f, 1.0f, z, - 0.0f, 0.0f, 0.0f, 1.0f }; - - return result; -} - -// Create rotation matrix from axis and angle -// NOTE: Angle should be provided in radians -RMAPI Matrix MatrixRotate(Vector3 axis, float angle) -{ - Matrix result = { 0 }; - - float x = axis.x, y = axis.y, z = axis.z; - - float lengthSquared = x*x + y*y + z*z; - - if ((lengthSquared != 1.0f) && (lengthSquared != 0.0f)) - { - float ilength = 1.0f/sqrtf(lengthSquared); - x *= ilength; - y *= ilength; - z *= ilength; - } - - float sinres = sinf(angle); - float cosres = cosf(angle); - float t = 1.0f - cosres; - - result.m0 = x*x*t + cosres; - result.m1 = y*x*t + z*sinres; - result.m2 = z*x*t - y*sinres; - result.m3 = 0.0f; - - result.m4 = x*y*t - z*sinres; - result.m5 = y*y*t + cosres; - result.m6 = z*y*t + x*sinres; - result.m7 = 0.0f; - - result.m8 = x*z*t + y*sinres; - result.m9 = y*z*t - x*sinres; - result.m10 = z*z*t + cosres; - result.m11 = 0.0f; - - result.m12 = 0.0f; - result.m13 = 0.0f; - result.m14 = 0.0f; - result.m15 = 1.0f; - - return result; -} - -// Get x-rotation matrix -// NOTE: Angle must be provided in radians -RMAPI Matrix MatrixRotateX(float angle) -{ - Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 1.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 1.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() - - float cosres = cosf(angle); - float sinres = sinf(angle); - - result.m5 = cosres; - result.m6 = sinres; - result.m9 = -sinres; - result.m10 = cosres; - - return result; -} - -// Get y-rotation matrix -// NOTE: Angle must be provided in radians -RMAPI Matrix MatrixRotateY(float angle) -{ - Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 1.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 1.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() - - float cosres = cosf(angle); - float sinres = sinf(angle); - - result.m0 = cosres; - result.m2 = -sinres; - result.m8 = sinres; - result.m10 = cosres; - - return result; -} - -// Get z-rotation matrix -// NOTE: Angle must be provided in radians -RMAPI Matrix MatrixRotateZ(float angle) -{ - Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 1.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 1.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() - - float cosres = cosf(angle); - float sinres = sinf(angle); - - result.m0 = cosres; - result.m1 = sinres; - result.m4 = -sinres; - result.m5 = cosres; - - return result; -} - - -// Get xyz-rotation matrix -// NOTE: Angle must be provided in radians -RMAPI Matrix MatrixRotateXYZ(Vector3 angle) -{ - Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 1.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 1.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() - - float cosz = cosf(-angle.z); - float sinz = sinf(-angle.z); - float cosy = cosf(-angle.y); - float siny = sinf(-angle.y); - float cosx = cosf(-angle.x); - float sinx = sinf(-angle.x); - - result.m0 = cosz*cosy; - result.m1 = (cosz*siny*sinx) - (sinz*cosx); - result.m2 = (cosz*siny*cosx) + (sinz*sinx); - - result.m4 = sinz*cosy; - result.m5 = (sinz*siny*sinx) + (cosz*cosx); - result.m6 = (sinz*siny*cosx) - (cosz*sinx); - - result.m8 = -siny; - result.m9 = cosy*sinx; - result.m10= cosy*cosx; - - return result; -} - -// Get zyx-rotation matrix -// NOTE: Angle must be provided in radians -RMAPI Matrix MatrixRotateZYX(Vector3 angle) -{ - Matrix result = { 0 }; - - float cz = cosf(angle.z); - float sz = sinf(angle.z); - float cy = cosf(angle.y); - float sy = sinf(angle.y); - float cx = cosf(angle.x); - float sx = sinf(angle.x); - - result.m0 = cz*cy; - result.m4 = cz*sy*sx - cx*sz; - result.m8 = sz*sx + cz*cx*sy; - result.m12 = 0; - - result.m1 = cy*sz; - result.m5 = cz*cx + sz*sy*sx; - result.m9 = cx*sz*sy - cz*sx; - result.m13 = 0; - - result.m2 = -sy; - result.m6 = cy*sx; - result.m10 = cy*cx; - result.m14 = 0; - - result.m3 = 0; - result.m7 = 0; - result.m11 = 0; - result.m15 = 1; - - return result; -} - -// Get scaling matrix -RMAPI Matrix MatrixScale(float x, float y, float z) -{ - Matrix result = { x, 0.0f, 0.0f, 0.0f, - 0.0f, y, 0.0f, 0.0f, - 0.0f, 0.0f, z, 0.0f, - 0.0f, 0.0f, 0.0f, 1.0f }; - - return result; -} - -// Get perspective projection matrix -RMAPI Matrix MatrixFrustum(double left, double right, double bottom, double top, double near, double far) -{ - Matrix result = { 0 }; - - float rl = (float)(right - left); - float tb = (float)(top - bottom); - float fn = (float)(far - near); - - result.m0 = ((float)near*2.0f)/rl; - result.m1 = 0.0f; - result.m2 = 0.0f; - result.m3 = 0.0f; - - result.m4 = 0.0f; - result.m5 = ((float)near*2.0f)/tb; - result.m6 = 0.0f; - result.m7 = 0.0f; - - result.m8 = ((float)right + (float)left)/rl; - result.m9 = ((float)top + (float)bottom)/tb; - result.m10 = -((float)far + (float)near)/fn; - result.m11 = -1.0f; - - result.m12 = 0.0f; - result.m13 = 0.0f; - result.m14 = -((float)far*(float)near*2.0f)/fn; - result.m15 = 0.0f; - - return result; -} - -// Get perspective projection matrix -// NOTE: Fovy angle must be provided in radians -RMAPI Matrix MatrixPerspective(double fovY, double aspect, double nearPlane, double farPlane) -{ - Matrix result = { 0 }; - - double top = nearPlane*tan(fovY*0.5); - double bottom = -top; - double right = top*aspect; - double left = -right; - - // MatrixFrustum(-right, right, -top, top, near, far); - float rl = (float)(right - left); - float tb = (float)(top - bottom); - float fn = (float)(farPlane - nearPlane); - - result.m0 = ((float)nearPlane*2.0f)/rl; - result.m5 = ((float)nearPlane*2.0f)/tb; - result.m8 = ((float)right + (float)left)/rl; - result.m9 = ((float)top + (float)bottom)/tb; - result.m10 = -((float)farPlane + (float)nearPlane)/fn; - result.m11 = -1.0f; - result.m14 = -((float)farPlane*(float)nearPlane*2.0f)/fn; - - return result; -} - -// Get orthographic projection matrix -RMAPI Matrix MatrixOrtho(double left, double right, double bottom, double top, double nearPlane, double farPlane) -{ - Matrix result = { 0 }; - - float rl = (float)(right - left); - float tb = (float)(top - bottom); - float fn = (float)(farPlane - nearPlane); - - result.m0 = 2.0f/rl; - result.m1 = 0.0f; - result.m2 = 0.0f; - result.m3 = 0.0f; - result.m4 = 0.0f; - result.m5 = 2.0f/tb; - result.m6 = 0.0f; - result.m7 = 0.0f; - result.m8 = 0.0f; - result.m9 = 0.0f; - result.m10 = -2.0f/fn; - result.m11 = 0.0f; - result.m12 = -((float)left + (float)right)/rl; - result.m13 = -((float)top + (float)bottom)/tb; - result.m14 = -((float)farPlane + (float)nearPlane)/fn; - result.m15 = 1.0f; - - return result; -} - -// Get camera look-at matrix (view matrix) -RMAPI Matrix MatrixLookAt(Vector3 eye, Vector3 target, Vector3 up) -{ - Matrix result = { 0 }; - - float length = 0.0f; - float ilength = 0.0f; - - // Vector3Subtract(eye, target) - Vector3 vz = { eye.x - target.x, eye.y - target.y, eye.z - target.z }; - - // Vector3Normalize(vz) - Vector3 v = vz; - length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); - if (length == 0.0f) length = 1.0f; - ilength = 1.0f/length; - vz.x *= ilength; - vz.y *= ilength; - vz.z *= ilength; - - // Vector3CrossProduct(up, vz) - Vector3 vx = { up.y*vz.z - up.z*vz.y, up.z*vz.x - up.x*vz.z, up.x*vz.y - up.y*vz.x }; - - // Vector3Normalize(x) - v = vx; - length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); - if (length == 0.0f) length = 1.0f; - ilength = 1.0f/length; - vx.x *= ilength; - vx.y *= ilength; - vx.z *= ilength; - - // Vector3CrossProduct(vz, vx) - Vector3 vy = { vz.y*vx.z - vz.z*vx.y, vz.z*vx.x - vz.x*vx.z, vz.x*vx.y - vz.y*vx.x }; - - result.m0 = vx.x; - result.m1 = vy.x; - result.m2 = vz.x; - result.m3 = 0.0f; - result.m4 = vx.y; - result.m5 = vy.y; - result.m6 = vz.y; - result.m7 = 0.0f; - result.m8 = vx.z; - result.m9 = vy.z; - result.m10 = vz.z; - result.m11 = 0.0f; - result.m12 = -(vx.x*eye.x + vx.y*eye.y + vx.z*eye.z); // Vector3DotProduct(vx, eye) - result.m13 = -(vy.x*eye.x + vy.y*eye.y + vy.z*eye.z); // Vector3DotProduct(vy, eye) - result.m14 = -(vz.x*eye.x + vz.y*eye.y + vz.z*eye.z); // Vector3DotProduct(vz, eye) - result.m15 = 1.0f; - - return result; -} - -// Get float array of matrix data -RMAPI float16 MatrixToFloatV(Matrix mat) -{ - float16 result = { 0 }; - - result.v[0] = mat.m0; - result.v[1] = mat.m1; - result.v[2] = mat.m2; - result.v[3] = mat.m3; - result.v[4] = mat.m4; - result.v[5] = mat.m5; - result.v[6] = mat.m6; - result.v[7] = mat.m7; - result.v[8] = mat.m8; - result.v[9] = mat.m9; - result.v[10] = mat.m10; - result.v[11] = mat.m11; - result.v[12] = mat.m12; - result.v[13] = mat.m13; - result.v[14] = mat.m14; - result.v[15] = mat.m15; - - return result; -} - -//---------------------------------------------------------------------------------- -// Module Functions Definition - Quaternion math -//---------------------------------------------------------------------------------- - -// Add two quaternions -RMAPI Quaternion QuaternionAdd(Quaternion q1, Quaternion q2) -{ - Quaternion result = {q1.x + q2.x, q1.y + q2.y, q1.z + q2.z, q1.w + q2.w}; - - return result; -} - -// Add quaternion and float value -RMAPI Quaternion QuaternionAddValue(Quaternion q, float add) -{ - Quaternion result = {q.x + add, q.y + add, q.z + add, q.w + add}; - - return result; -} - -// Subtract two quaternions -RMAPI Quaternion QuaternionSubtract(Quaternion q1, Quaternion q2) -{ - Quaternion result = {q1.x - q2.x, q1.y - q2.y, q1.z - q2.z, q1.w - q2.w}; - - return result; -} - -// Subtract quaternion and float value -RMAPI Quaternion QuaternionSubtractValue(Quaternion q, float sub) -{ - Quaternion result = {q.x - sub, q.y - sub, q.z - sub, q.w - sub}; - - return result; -} - -// Get identity quaternion -RMAPI Quaternion QuaternionIdentity(void) -{ - Quaternion result = { 0.0f, 0.0f, 0.0f, 1.0f }; - - return result; -} - -// Computes the length of a quaternion -RMAPI float QuaternionLength(Quaternion q) -{ - float result = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); - - return result; -} - -// Normalize provided quaternion -RMAPI Quaternion QuaternionNormalize(Quaternion q) -{ - Quaternion result = { 0 }; - - float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); - if (length == 0.0f) length = 1.0f; - float ilength = 1.0f/length; - - result.x = q.x*ilength; - result.y = q.y*ilength; - result.z = q.z*ilength; - result.w = q.w*ilength; - - return result; -} - -// Invert provided quaternion -RMAPI Quaternion QuaternionInvert(Quaternion q) -{ - Quaternion result = q; - - float lengthSq = q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w; - - if (lengthSq != 0.0f) - { - float invLength = 1.0f/lengthSq; - - result.x *= -invLength; - result.y *= -invLength; - result.z *= -invLength; - result.w *= invLength; - } - - return result; -} - -// Calculate two quaternion multiplication -RMAPI Quaternion QuaternionMultiply(Quaternion q1, Quaternion q2) -{ - Quaternion result = { 0 }; - - float qax = q1.x, qay = q1.y, qaz = q1.z, qaw = q1.w; - float qbx = q2.x, qby = q2.y, qbz = q2.z, qbw = q2.w; - - result.x = qax*qbw + qaw*qbx + qay*qbz - qaz*qby; - result.y = qay*qbw + qaw*qby + qaz*qbx - qax*qbz; - result.z = qaz*qbw + qaw*qbz + qax*qby - qay*qbx; - result.w = qaw*qbw - qax*qbx - qay*qby - qaz*qbz; - - return result; -} - -// Scale quaternion by float value -RMAPI Quaternion QuaternionScale(Quaternion q, float mul) -{ - Quaternion result = { 0 }; - - result.x = q.x*mul; - result.y = q.y*mul; - result.z = q.z*mul; - result.w = q.w*mul; - - return result; -} - -// Divide two quaternions -RMAPI Quaternion QuaternionDivide(Quaternion q1, Quaternion q2) -{ - Quaternion result = { q1.x/q2.x, q1.y/q2.y, q1.z/q2.z, q1.w/q2.w }; - - return result; -} - -// Calculate linear interpolation between two quaternions -RMAPI Quaternion QuaternionLerp(Quaternion q1, Quaternion q2, float amount) -{ - Quaternion result = { 0 }; - - result.x = q1.x + amount*(q2.x - q1.x); - result.y = q1.y + amount*(q2.y - q1.y); - result.z = q1.z + amount*(q2.z - q1.z); - result.w = q1.w + amount*(q2.w - q1.w); - - return result; -} - -// Calculate slerp-optimized interpolation between two quaternions -RMAPI Quaternion QuaternionNlerp(Quaternion q1, Quaternion q2, float amount) -{ - Quaternion result = { 0 }; - - // QuaternionLerp(q1, q2, amount) - result.x = q1.x + amount*(q2.x - q1.x); - result.y = q1.y + amount*(q2.y - q1.y); - result.z = q1.z + amount*(q2.z - q1.z); - result.w = q1.w + amount*(q2.w - q1.w); - - // QuaternionNormalize(q); - Quaternion q = result; - float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); - if (length == 0.0f) length = 1.0f; - float ilength = 1.0f/length; - - result.x = q.x*ilength; - result.y = q.y*ilength; - result.z = q.z*ilength; - result.w = q.w*ilength; - - return result; -} - -// Calculates spherical linear interpolation between two quaternions -RMAPI Quaternion QuaternionSlerp(Quaternion q1, Quaternion q2, float amount) -{ - Quaternion result = { 0 }; - -#if !defined(EPSILON) - #define EPSILON 0.000001f -#endif - - float cosHalfTheta = q1.x*q2.x + q1.y*q2.y + q1.z*q2.z + q1.w*q2.w; - - if (cosHalfTheta < 0) - { - q2.x = -q2.x; q2.y = -q2.y; q2.z = -q2.z; q2.w = -q2.w; - cosHalfTheta = -cosHalfTheta; - } - - if (fabsf(cosHalfTheta) >= 1.0f) result = q1; - else if (cosHalfTheta > 0.95f) result = QuaternionNlerp(q1, q2, amount); - else - { - float halfTheta = acosf(cosHalfTheta); - float sinHalfTheta = sqrtf(1.0f - cosHalfTheta*cosHalfTheta); - - if (fabsf(sinHalfTheta) < EPSILON) - { - result.x = (q1.x*0.5f + q2.x*0.5f); - result.y = (q1.y*0.5f + q2.y*0.5f); - result.z = (q1.z*0.5f + q2.z*0.5f); - result.w = (q1.w*0.5f + q2.w*0.5f); - } - else - { - float ratioA = sinf((1 - amount)*halfTheta)/sinHalfTheta; - float ratioB = sinf(amount*halfTheta)/sinHalfTheta; - - result.x = (q1.x*ratioA + q2.x*ratioB); - result.y = (q1.y*ratioA + q2.y*ratioB); - result.z = (q1.z*ratioA + q2.z*ratioB); - result.w = (q1.w*ratioA + q2.w*ratioB); - } - } - - return result; -} - -// Calculate quaternion based on the rotation from one vector to another -RMAPI Quaternion QuaternionFromVector3ToVector3(Vector3 from, Vector3 to) -{ - Quaternion result = { 0 }; - - float cos2Theta = (from.x*to.x + from.y*to.y + from.z*to.z); // Vector3DotProduct(from, to) - Vector3 cross = { from.y*to.z - from.z*to.y, from.z*to.x - from.x*to.z, from.x*to.y - from.y*to.x }; // Vector3CrossProduct(from, to) - - result.x = cross.x; - result.y = cross.y; - result.z = cross.z; - result.w = 1.0f + cos2Theta; - - // QuaternionNormalize(q); - // NOTE: Normalize to essentially nlerp the original and identity to 0.5 - Quaternion q = result; - float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); - if (length == 0.0f) length = 1.0f; - float ilength = 1.0f/length; - - result.x = q.x*ilength; - result.y = q.y*ilength; - result.z = q.z*ilength; - result.w = q.w*ilength; - - return result; -} - -// Get a quaternion for a given rotation matrix -RMAPI Quaternion QuaternionFromMatrix(Matrix mat) -{ - Quaternion result = { 0 }; - - float fourWSquaredMinus1 = mat.m0 + mat.m5 + mat.m10; - float fourXSquaredMinus1 = mat.m0 - mat.m5 - mat.m10; - float fourYSquaredMinus1 = mat.m5 - mat.m0 - mat.m10; - float fourZSquaredMinus1 = mat.m10 - mat.m0 - mat.m5; - - int biggestIndex = 0; - float fourBiggestSquaredMinus1 = fourWSquaredMinus1; - if (fourXSquaredMinus1 > fourBiggestSquaredMinus1) - { - fourBiggestSquaredMinus1 = fourXSquaredMinus1; - biggestIndex = 1; - } - - if (fourYSquaredMinus1 > fourBiggestSquaredMinus1) - { - fourBiggestSquaredMinus1 = fourYSquaredMinus1; - biggestIndex = 2; - } - - if (fourZSquaredMinus1 > fourBiggestSquaredMinus1) - { - fourBiggestSquaredMinus1 = fourZSquaredMinus1; - biggestIndex = 3; - } - - float biggestVal = sqrtf(fourBiggestSquaredMinus1 + 1.0f)*0.5f; - float mult = 0.25f / biggestVal; - - switch (biggestIndex) - { - case 0: - result.w = biggestVal; - result.x = (mat.m6 - mat.m9)*mult; - result.y = (mat.m8 - mat.m2)*mult; - result.z = (mat.m1 - mat.m4)*mult; - break; - case 1: - result.x = biggestVal; - result.w = (mat.m6 - mat.m9)*mult; - result.y = (mat.m1 + mat.m4)*mult; - result.z = (mat.m8 + mat.m2)*mult; - break; - case 2: - result.y = biggestVal; - result.w = (mat.m8 - mat.m2)*mult; - result.x = (mat.m1 + mat.m4)*mult; - result.z = (mat.m6 + mat.m9)*mult; - break; - case 3: - result.z = biggestVal; - result.w = (mat.m1 - mat.m4)*mult; - result.x = (mat.m8 + mat.m2)*mult; - result.y = (mat.m6 + mat.m9)*mult; - break; - } - - return result; -} - -// Get a matrix for a given quaternion -RMAPI Matrix QuaternionToMatrix(Quaternion q) -{ - Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 1.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 1.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() - - float a2 = q.x*q.x; - float b2 = q.y*q.y; - float c2 = q.z*q.z; - float ac = q.x*q.z; - float ab = q.x*q.y; - float bc = q.y*q.z; - float ad = q.w*q.x; - float bd = q.w*q.y; - float cd = q.w*q.z; - - result.m0 = 1 - 2*(b2 + c2); - result.m1 = 2*(ab + cd); - result.m2 = 2*(ac - bd); - - result.m4 = 2*(ab - cd); - result.m5 = 1 - 2*(a2 + c2); - result.m6 = 2*(bc + ad); - - result.m8 = 2*(ac + bd); - result.m9 = 2*(bc - ad); - result.m10 = 1 - 2*(a2 + b2); - - return result; -} - -// Get rotation quaternion for an angle and axis -// NOTE: Angle must be provided in radians -RMAPI Quaternion QuaternionFromAxisAngle(Vector3 axis, float angle) -{ - Quaternion result = { 0.0f, 0.0f, 0.0f, 1.0f }; - - float axisLength = sqrtf(axis.x*axis.x + axis.y*axis.y + axis.z*axis.z); - - if (axisLength != 0.0f) - { - angle *= 0.5f; - - float length = 0.0f; - float ilength = 0.0f; - - // Vector3Normalize(axis) - Vector3 v = axis; - length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); - if (length == 0.0f) length = 1.0f; - ilength = 1.0f/length; - axis.x *= ilength; - axis.y *= ilength; - axis.z *= ilength; - - float sinres = sinf(angle); - float cosres = cosf(angle); - - result.x = axis.x*sinres; - result.y = axis.y*sinres; - result.z = axis.z*sinres; - result.w = cosres; - - // QuaternionNormalize(q); - Quaternion q = result; - length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); - if (length == 0.0f) length = 1.0f; - ilength = 1.0f/length; - result.x = q.x*ilength; - result.y = q.y*ilength; - result.z = q.z*ilength; - result.w = q.w*ilength; - } - - return result; -} - -// Get the rotation angle and axis for a given quaternion -RMAPI void QuaternionToAxisAngle(Quaternion q, Vector3 *outAxis, float *outAngle) -{ - if (fabsf(q.w) > 1.0f) - { - // QuaternionNormalize(q); - float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); - if (length == 0.0f) length = 1.0f; - float ilength = 1.0f/length; - - q.x = q.x*ilength; - q.y = q.y*ilength; - q.z = q.z*ilength; - q.w = q.w*ilength; - } - - Vector3 resAxis = { 0.0f, 0.0f, 0.0f }; - float resAngle = 2.0f*acosf(q.w); - float den = sqrtf(1.0f - q.w*q.w); - - if (den > EPSILON) - { - resAxis.x = q.x/den; - resAxis.y = q.y/den; - resAxis.z = q.z/den; - } - else - { - // This occurs when the angle is zero. - // Not a problem: just set an arbitrary normalized axis. - resAxis.x = 1.0f; - } - - *outAxis = resAxis; - *outAngle = resAngle; -} - -// Get the quaternion equivalent to Euler angles -// NOTE: Rotation order is ZYX -RMAPI Quaternion QuaternionFromEuler(float pitch, float yaw, float roll) -{ - Quaternion result = { 0 }; - - float x0 = cosf(pitch*0.5f); - float x1 = sinf(pitch*0.5f); - float y0 = cosf(yaw*0.5f); - float y1 = sinf(yaw*0.5f); - float z0 = cosf(roll*0.5f); - float z1 = sinf(roll*0.5f); - - result.x = x1*y0*z0 - x0*y1*z1; - result.y = x0*y1*z0 + x1*y0*z1; - result.z = x0*y0*z1 - x1*y1*z0; - result.w = x0*y0*z0 + x1*y1*z1; - - return result; -} - -// Get the Euler angles equivalent to quaternion (roll, pitch, yaw) -// NOTE: Angles are returned in a Vector3 struct in radians -RMAPI Vector3 QuaternionToEuler(Quaternion q) -{ - Vector3 result = { 0 }; - - // Roll (x-axis rotation) - float x0 = 2.0f*(q.w*q.x + q.y*q.z); - float x1 = 1.0f - 2.0f*(q.x*q.x + q.y*q.y); - result.x = atan2f(x0, x1); - - // Pitch (y-axis rotation) - float y0 = 2.0f*(q.w*q.y - q.z*q.x); - y0 = y0 > 1.0f ? 1.0f : y0; - y0 = y0 < -1.0f ? -1.0f : y0; - result.y = asinf(y0); - - // Yaw (z-axis rotation) - float z0 = 2.0f*(q.w*q.z + q.x*q.y); - float z1 = 1.0f - 2.0f*(q.y*q.y + q.z*q.z); - result.z = atan2f(z0, z1); - - return result; -} - -// Transform a quaternion given a transformation matrix -RMAPI Quaternion QuaternionTransform(Quaternion q, Matrix mat) -{ - Quaternion result = { 0 }; - - result.x = mat.m0*q.x + mat.m4*q.y + mat.m8*q.z + mat.m12*q.w; - result.y = mat.m1*q.x + mat.m5*q.y + mat.m9*q.z + mat.m13*q.w; - result.z = mat.m2*q.x + mat.m6*q.y + mat.m10*q.z + mat.m14*q.w; - result.w = mat.m3*q.x + mat.m7*q.y + mat.m11*q.z + mat.m15*q.w; - - return result; -} - -// Check whether two given quaternions are almost equal -RMAPI int QuaternionEquals(Quaternion p, Quaternion q) -{ -#if !defined(EPSILON) - #define EPSILON 0.000001f -#endif - - int result = (((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && - ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && - ((fabsf(p.z - q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))) && - ((fabsf(p.w - q.w)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.w), fabsf(q.w)))))) || - (((fabsf(p.x + q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && - ((fabsf(p.y + q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && - ((fabsf(p.z + q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))) && - ((fabsf(p.w + q.w)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.w), fabsf(q.w)))))); - - return result; -} - -#endif // RAYMATH_H +/********************************************************************************************** +* +* raymath v2.0 - Math functions to work with Vector2, Vector3, Matrix and Quaternions +* +* CONVENTIONS: +* - Matrix structure is defined as row-major (memory layout) but parameters naming AND all +* math operations performed by the library consider the structure as it was column-major +* It is like transposed versions of the matrices are used for all the maths +* It benefits some functions making them cache-friendly and also avoids matrix +* transpositions sometimes required by OpenGL +* Example: In memory order, row0 is [m0 m4 m8 m12] but in semantic math row0 is [m0 m1 m2 m3] +* - Functions are always self-contained, no function use another raymath function inside, +* required code is directly re-implemented inside +* - Functions input parameters are always received by value (2 unavoidable exceptions) +* - Functions use always a "result" variable for return (except C++ operators) +* - Functions are always defined inline +* - Angles are always in radians (DEG2RAD/RAD2DEG macros provided for convenience) +* - No compound literals used to make sure libray is compatible with C++ +* +* CONFIGURATION: +* #define RAYMATH_IMPLEMENTATION +* Generates the implementation of the library into the included file. +* If not defined, the library is in header only mode and can be included in other headers +* or source files without problems. But only ONE file should hold the implementation. +* +* #define RAYMATH_STATIC_INLINE +* Define static inline functions code, so #include header suffices for use. +* This may use up lots of memory. +* +* #define RAYMATH_DISABLE_CPP_OPERATORS +* Disables C++ operator overloads for raymath types. +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) +* +* This software is provided "as-is", without any express or implied warranty. In no event +* will the authors be held liable for any damages arising from the use of this software. +* +* Permission is granted to anyone to use this software for any purpose, including commercial +* applications, and to alter it and redistribute it freely, subject to the following restrictions: +* +* 1. The origin of this software must not be misrepresented; you must not claim that you +* wrote the original software. If you use this software in a product, an acknowledgment +* in the product documentation would be appreciated but is not required. +* +* 2. Altered source versions must be plainly marked as such, and must not be misrepresented +* as being the original software. +* +* 3. This notice may not be removed or altered from any source distribution. +* +**********************************************************************************************/ + +#ifndef RAYMATH_H +#define RAYMATH_H + +#if defined(RAYMATH_IMPLEMENTATION) && defined(RAYMATH_STATIC_INLINE) + #error "Specifying both RAYMATH_IMPLEMENTATION and RAYMATH_STATIC_INLINE is contradictory" +#endif + +// Function specifiers definition +#if defined(RAYMATH_IMPLEMENTATION) + #if defined(_WIN32) && defined(BUILD_LIBTYPE_SHARED) + #define RMAPI __declspec(dllexport) extern inline // We are building raylib as a Win32 shared library (.dll) + #elif defined(BUILD_LIBTYPE_SHARED) + #define RMAPI __attribute__((visibility("default"))) // We are building raylib as a Unix shared library (.so/.dylib) + #elif defined(_WIN32) && defined(USE_LIBTYPE_SHARED) + #define RMAPI __declspec(dllimport) // We are using raylib as a Win32 shared library (.dll) + #else + #define RMAPI extern inline // Provide external definition + #endif +#elif defined(RAYMATH_STATIC_INLINE) + #define RMAPI static inline // Functions may be inlined, no external out-of-line definition +#else + #if defined(__TINYC__) + #define RMAPI static inline // plain inline not supported by tinycc (See issue #435) + #else + #define RMAPI inline // Functions may be inlined or external definition used + #endif +#endif + + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- +#ifndef PI + #define PI 3.14159265358979323846f +#endif + +#ifndef EPSILON + #define EPSILON 0.000001f +#endif + +#ifndef DEG2RAD + #define DEG2RAD (PI/180.0f) +#endif + +#ifndef RAD2DEG + #define RAD2DEG (180.0f/PI) +#endif + +// Get float vector for Matrix +#ifndef MatrixToFloat + #define MatrixToFloat(mat) (MatrixToFloatV(mat).v) +#endif + +// Get float vector for Vector3 +#ifndef Vector3ToFloat + #define Vector3ToFloat(vec) (Vector3ToFloatV(vec).v) +#endif + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +#if !defined(RL_VECTOR2_TYPE) +// Vector2 type +typedef struct Vector2 { + float x; + float y; +} Vector2; +#define RL_VECTOR2_TYPE +#endif + +#if !defined(RL_VECTOR3_TYPE) +// Vector3 type +typedef struct Vector3 { + float x; + float y; + float z; +} Vector3; +#define RL_VECTOR3_TYPE +#endif + +#if !defined(RL_VECTOR4_TYPE) +// Vector4 type +typedef struct Vector4 { + float x; + float y; + float z; + float w; +} Vector4; +#define RL_VECTOR4_TYPE +#endif + +#if !defined(RL_QUATERNION_TYPE) +// Quaternion type +typedef Vector4 Quaternion; +#define RL_QUATERNION_TYPE +#endif + +#if !defined(RL_MATRIX_TYPE) +// Matrix type (OpenGL style 4x4 - right handed, column major) +typedef struct Matrix { + float m0, m4, m8, m12; // Matrix first row (4 components) + float m1, m5, m9, m13; // Matrix second row (4 components) + float m2, m6, m10, m14; // Matrix third row (4 components) + float m3, m7, m11, m15; // Matrix fourth row (4 components) +} Matrix; +#define RL_MATRIX_TYPE +#endif + +// NOTE: Helper types to be used instead of array return types for *ToFloat functions +typedef struct float3 { + float v[3]; +} float3; + +typedef struct float16 { + float v[16]; +} float16; + +#include // Required for: sinf(), cosf(), tan(), atan2f(), sqrtf(), floor(), fminf(), fmaxf(), fabsf() + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Utils math +//---------------------------------------------------------------------------------- + +// Clamp float value +RMAPI float Clamp(float value, float min, float max) +{ + float result = (value < min)? min : value; + + if (result > max) result = max; + + return result; +} + +// Calculate linear interpolation between two floats +RMAPI float Lerp(float start, float end, float amount) +{ + float result = start + amount*(end - start); + + return result; +} + +// Normalize input value within input range +RMAPI float Normalize(float value, float start, float end) +{ + float result = (value - start)/(end - start); + + return result; +} + +// Remap input value within input range to output range +RMAPI float Remap(float value, float inputStart, float inputEnd, float outputStart, float outputEnd) +{ + float result = (value - inputStart)/(inputEnd - inputStart)*(outputEnd - outputStart) + outputStart; + + return result; +} + +// Wrap input value from min to max +RMAPI float Wrap(float value, float min, float max) +{ + float result = value - (max - min)*floorf((value - min)/(max - min)); + + return result; +} + +// Check whether two given floats are almost equal +RMAPI int FloatEquals(float x, float y) +{ +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + int result = (fabsf(x - y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(x), fabsf(y)))); + + return result; +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Vector2 math +//---------------------------------------------------------------------------------- + +// Vector with components value 0.0f +RMAPI Vector2 Vector2Zero(void) +{ + Vector2 result = { 0.0f, 0.0f }; + + return result; +} + +// Vector with components value 1.0f +RMAPI Vector2 Vector2One(void) +{ + Vector2 result = { 1.0f, 1.0f }; + + return result; +} + +// Add two vectors (v1 + v2) +RMAPI Vector2 Vector2Add(Vector2 v1, Vector2 v2) +{ + Vector2 result = { v1.x + v2.x, v1.y + v2.y }; + + return result; +} + +// Add vector and float value +RMAPI Vector2 Vector2AddValue(Vector2 v, float add) +{ + Vector2 result = { v.x + add, v.y + add }; + + return result; +} + +// Subtract two vectors (v1 - v2) +RMAPI Vector2 Vector2Subtract(Vector2 v1, Vector2 v2) +{ + Vector2 result = { v1.x - v2.x, v1.y - v2.y }; + + return result; +} + +// Subtract vector by float value +RMAPI Vector2 Vector2SubtractValue(Vector2 v, float sub) +{ + Vector2 result = { v.x - sub, v.y - sub }; + + return result; +} + +// Calculate vector length +RMAPI float Vector2Length(Vector2 v) +{ + float result = sqrtf((v.x*v.x) + (v.y*v.y)); + + return result; +} + +// Calculate vector square length +RMAPI float Vector2LengthSqr(Vector2 v) +{ + float result = (v.x*v.x) + (v.y*v.y); + + return result; +} + +// Calculate two vectors dot product +RMAPI float Vector2DotProduct(Vector2 v1, Vector2 v2) +{ + float result = (v1.x*v2.x + v1.y*v2.y); + + return result; +} + +// Calculate distance between two vectors +RMAPI float Vector2Distance(Vector2 v1, Vector2 v2) +{ + float result = sqrtf((v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y)); + + return result; +} + +// Calculate square distance between two vectors +RMAPI float Vector2DistanceSqr(Vector2 v1, Vector2 v2) +{ + float result = ((v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y)); + + return result; +} + +// Calculate angle between two vectors +// NOTE: Angle is calculated from origin point (0, 0) +RMAPI float Vector2Angle(Vector2 v1, Vector2 v2) +{ + float result = 0.0f; + + float dot = v1.x*v2.x + v1.y*v2.y; + float det = v1.x*v2.y - v1.y*v2.x; + + result = atan2f(det, dot); + + return result; +} + +// Calculate angle defined by a two vectors line +// NOTE: Parameters need to be normalized +// Current implementation should be aligned with glm::angle +RMAPI float Vector2LineAngle(Vector2 start, Vector2 end) +{ + float result = 0.0f; + + // TODO(10/9/2023): Currently angles move clockwise, determine if this is wanted behavior + result = -atan2f(end.y - start.y, end.x - start.x); + + return result; +} + +// Scale vector (multiply by value) +RMAPI Vector2 Vector2Scale(Vector2 v, float scale) +{ + Vector2 result = { v.x*scale, v.y*scale }; + + return result; +} + +// Multiply vector by vector +RMAPI Vector2 Vector2Multiply(Vector2 v1, Vector2 v2) +{ + Vector2 result = { v1.x*v2.x, v1.y*v2.y }; + + return result; +} + +// Negate vector +RMAPI Vector2 Vector2Negate(Vector2 v) +{ + Vector2 result = { -v.x, -v.y }; + + return result; +} + +// Divide vector by vector +RMAPI Vector2 Vector2Divide(Vector2 v1, Vector2 v2) +{ + Vector2 result = { v1.x/v2.x, v1.y/v2.y }; + + return result; +} + +// Normalize provided vector +RMAPI Vector2 Vector2Normalize(Vector2 v) +{ + Vector2 result = { 0 }; + float length = sqrtf((v.x*v.x) + (v.y*v.y)); + + if (length > 0) + { + float ilength = 1.0f/length; + result.x = v.x*ilength; + result.y = v.y*ilength; + } + + return result; +} + +// Transforms a Vector2 by a given Matrix +RMAPI Vector2 Vector2Transform(Vector2 v, Matrix mat) +{ + Vector2 result = { 0 }; + + float x = v.x; + float y = v.y; + float z = 0; + + result.x = mat.m0*x + mat.m4*y + mat.m8*z + mat.m12; + result.y = mat.m1*x + mat.m5*y + mat.m9*z + mat.m13; + + return result; +} + +// Calculate linear interpolation between two vectors +RMAPI Vector2 Vector2Lerp(Vector2 v1, Vector2 v2, float amount) +{ + Vector2 result = { 0 }; + + result.x = v1.x + amount*(v2.x - v1.x); + result.y = v1.y + amount*(v2.y - v1.y); + + return result; +} + +// Calculate reflected vector to normal +RMAPI Vector2 Vector2Reflect(Vector2 v, Vector2 normal) +{ + Vector2 result = { 0 }; + + float dotProduct = (v.x*normal.x + v.y*normal.y); // Dot product + + result.x = v.x - (2.0f*normal.x)*dotProduct; + result.y = v.y - (2.0f*normal.y)*dotProduct; + + return result; +} + +// Get min value for each pair of components +RMAPI Vector2 Vector2Min(Vector2 v1, Vector2 v2) +{ + Vector2 result = { 0 }; + + result.x = fminf(v1.x, v2.x); + result.y = fminf(v1.y, v2.y); + + return result; +} + +// Get max value for each pair of components +RMAPI Vector2 Vector2Max(Vector2 v1, Vector2 v2) +{ + Vector2 result = { 0 }; + + result.x = fmaxf(v1.x, v2.x); + result.y = fmaxf(v1.y, v2.y); + + return result; +} + +// Rotate vector by angle +RMAPI Vector2 Vector2Rotate(Vector2 v, float angle) +{ + Vector2 result = { 0 }; + + float cosres = cosf(angle); + float sinres = sinf(angle); + + result.x = v.x*cosres - v.y*sinres; + result.y = v.x*sinres + v.y*cosres; + + return result; +} + +// Move Vector towards target +RMAPI Vector2 Vector2MoveTowards(Vector2 v, Vector2 target, float maxDistance) +{ + Vector2 result = { 0 }; + + float dx = target.x - v.x; + float dy = target.y - v.y; + float value = (dx*dx) + (dy*dy); + + if ((value == 0) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target; + + float dist = sqrtf(value); + + result.x = v.x + dx/dist*maxDistance; + result.y = v.y + dy/dist*maxDistance; + + return result; +} + +// Invert the given vector +RMAPI Vector2 Vector2Invert(Vector2 v) +{ + Vector2 result = { 1.0f/v.x, 1.0f/v.y }; + + return result; +} + +// Clamp the components of the vector between +// min and max values specified by the given vectors +RMAPI Vector2 Vector2Clamp(Vector2 v, Vector2 min, Vector2 max) +{ + Vector2 result = { 0 }; + + result.x = fminf(max.x, fmaxf(min.x, v.x)); + result.y = fminf(max.y, fmaxf(min.y, v.y)); + + return result; +} + +// Clamp the magnitude of the vector between two min and max values +RMAPI Vector2 Vector2ClampValue(Vector2 v, float min, float max) +{ + Vector2 result = v; + + float length = (v.x*v.x) + (v.y*v.y); + if (length > 0.0f) + { + length = sqrtf(length); + + float scale = 1; // By default, 1 as the neutral element. + if (length < min) + { + scale = min/length; + } + else if (length > max) + { + scale = max/length; + } + + result.x = v.x*scale; + result.y = v.y*scale; + } + + return result; +} + +// Check whether two given vectors are almost equal +RMAPI int Vector2Equals(Vector2 p, Vector2 q) +{ +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + int result = ((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && + ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))); + + return result; +} + +// Compute the direction of a refracted ray +// v: normalized direction of the incoming ray +// n: normalized normal vector of the interface of two optical media +// r: ratio of the refractive index of the medium from where the ray comes +// to the refractive index of the medium on the other side of the surface +RMAPI Vector2 Vector2Refract(Vector2 v, Vector2 n, float r) +{ + Vector2 result = { 0 }; + + float dot = v.x*n.x + v.y*n.y; + float d = 1.0f - r*r*(1.0f - dot*dot); + + if (d >= 0.0f) + { + d = sqrtf(d); + v.x = r*v.x - (r*dot + d)*n.x; + v.y = r*v.y - (r*dot + d)*n.y; + + result = v; + } + + return result; +} + + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Vector3 math +//---------------------------------------------------------------------------------- + +// Vector with components value 0.0f +RMAPI Vector3 Vector3Zero(void) +{ + Vector3 result = { 0.0f, 0.0f, 0.0f }; + + return result; +} + +// Vector with components value 1.0f +RMAPI Vector3 Vector3One(void) +{ + Vector3 result = { 1.0f, 1.0f, 1.0f }; + + return result; +} + +// Add two vectors +RMAPI Vector3 Vector3Add(Vector3 v1, Vector3 v2) +{ + Vector3 result = { v1.x + v2.x, v1.y + v2.y, v1.z + v2.z }; + + return result; +} + +// Add vector and float value +RMAPI Vector3 Vector3AddValue(Vector3 v, float add) +{ + Vector3 result = { v.x + add, v.y + add, v.z + add }; + + return result; +} + +// Subtract two vectors +RMAPI Vector3 Vector3Subtract(Vector3 v1, Vector3 v2) +{ + Vector3 result = { v1.x - v2.x, v1.y - v2.y, v1.z - v2.z }; + + return result; +} + +// Subtract vector by float value +RMAPI Vector3 Vector3SubtractValue(Vector3 v, float sub) +{ + Vector3 result = { v.x - sub, v.y - sub, v.z - sub }; + + return result; +} + +// Multiply vector by scalar +RMAPI Vector3 Vector3Scale(Vector3 v, float scalar) +{ + Vector3 result = { v.x*scalar, v.y*scalar, v.z*scalar }; + + return result; +} + +// Multiply vector by vector +RMAPI Vector3 Vector3Multiply(Vector3 v1, Vector3 v2) +{ + Vector3 result = { v1.x*v2.x, v1.y*v2.y, v1.z*v2.z }; + + return result; +} + +// Calculate two vectors cross product +RMAPI Vector3 Vector3CrossProduct(Vector3 v1, Vector3 v2) +{ + Vector3 result = { v1.y*v2.z - v1.z*v2.y, v1.z*v2.x - v1.x*v2.z, v1.x*v2.y - v1.y*v2.x }; + + return result; +} + +// Calculate one vector perpendicular vector +RMAPI Vector3 Vector3Perpendicular(Vector3 v) +{ + Vector3 result = { 0 }; + + float min = fabsf(v.x); + Vector3 cardinalAxis = {1.0f, 0.0f, 0.0f}; + + if (fabsf(v.y) < min) + { + min = fabsf(v.y); + Vector3 tmp = {0.0f, 1.0f, 0.0f}; + cardinalAxis = tmp; + } + + if (fabsf(v.z) < min) + { + Vector3 tmp = {0.0f, 0.0f, 1.0f}; + cardinalAxis = tmp; + } + + // Cross product between vectors + result.x = v.y*cardinalAxis.z - v.z*cardinalAxis.y; + result.y = v.z*cardinalAxis.x - v.x*cardinalAxis.z; + result.z = v.x*cardinalAxis.y - v.y*cardinalAxis.x; + + return result; +} + +// Calculate vector length +RMAPI float Vector3Length(const Vector3 v) +{ + float result = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + + return result; +} + +// Calculate vector square length +RMAPI float Vector3LengthSqr(const Vector3 v) +{ + float result = v.x*v.x + v.y*v.y + v.z*v.z; + + return result; +} + +// Calculate two vectors dot product +RMAPI float Vector3DotProduct(Vector3 v1, Vector3 v2) +{ + float result = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); + + return result; +} + +// Calculate distance between two vectors +RMAPI float Vector3Distance(Vector3 v1, Vector3 v2) +{ + float result = 0.0f; + + float dx = v2.x - v1.x; + float dy = v2.y - v1.y; + float dz = v2.z - v1.z; + result = sqrtf(dx*dx + dy*dy + dz*dz); + + return result; +} + +// Calculate square distance between two vectors +RMAPI float Vector3DistanceSqr(Vector3 v1, Vector3 v2) +{ + float result = 0.0f; + + float dx = v2.x - v1.x; + float dy = v2.y - v1.y; + float dz = v2.z - v1.z; + result = dx*dx + dy*dy + dz*dz; + + return result; +} + +// Calculate angle between two vectors +RMAPI float Vector3Angle(Vector3 v1, Vector3 v2) +{ + float result = 0.0f; + + Vector3 cross = { v1.y*v2.z - v1.z*v2.y, v1.z*v2.x - v1.x*v2.z, v1.x*v2.y - v1.y*v2.x }; + float len = sqrtf(cross.x*cross.x + cross.y*cross.y + cross.z*cross.z); + float dot = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); + result = atan2f(len, dot); + + return result; +} + +// Negate provided vector (invert direction) +RMAPI Vector3 Vector3Negate(Vector3 v) +{ + Vector3 result = { -v.x, -v.y, -v.z }; + + return result; +} + +// Divide vector by vector +RMAPI Vector3 Vector3Divide(Vector3 v1, Vector3 v2) +{ + Vector3 result = { v1.x/v2.x, v1.y/v2.y, v1.z/v2.z }; + + return result; +} + +// Normalize provided vector +RMAPI Vector3 Vector3Normalize(Vector3 v) +{ + Vector3 result = v; + + float length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + if (length != 0.0f) + { + float ilength = 1.0f/length; + + result.x *= ilength; + result.y *= ilength; + result.z *= ilength; + } + + return result; +} + +//Calculate the projection of the vector v1 on to v2 +RMAPI Vector3 Vector3Project(Vector3 v1, Vector3 v2) +{ + Vector3 result = { 0 }; + + float v1dv2 = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); + float v2dv2 = (v2.x*v2.x + v2.y*v2.y + v2.z*v2.z); + + float mag = v1dv2/v2dv2; + + result.x = v2.x*mag; + result.y = v2.y*mag; + result.z = v2.z*mag; + + return result; +} + +//Calculate the rejection of the vector v1 on to v2 +RMAPI Vector3 Vector3Reject(Vector3 v1, Vector3 v2) +{ + Vector3 result = { 0 }; + + float v1dv2 = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); + float v2dv2 = (v2.x*v2.x + v2.y*v2.y + v2.z*v2.z); + + float mag = v1dv2/v2dv2; + + result.x = v1.x - (v2.x*mag); + result.y = v1.y - (v2.y*mag); + result.z = v1.z - (v2.z*mag); + + return result; +} + +// Orthonormalize provided vectors +// Makes vectors normalized and orthogonal to each other +// Gram-Schmidt function implementation +RMAPI void Vector3OrthoNormalize(Vector3 *v1, Vector3 *v2) +{ + float length = 0.0f; + float ilength = 0.0f; + + // Vector3Normalize(*v1); + Vector3 v = *v1; + length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + if (length == 0.0f) length = 1.0f; + ilength = 1.0f/length; + v1->x *= ilength; + v1->y *= ilength; + v1->z *= ilength; + + // Vector3CrossProduct(*v1, *v2) + Vector3 vn1 = { v1->y*v2->z - v1->z*v2->y, v1->z*v2->x - v1->x*v2->z, v1->x*v2->y - v1->y*v2->x }; + + // Vector3Normalize(vn1); + v = vn1; + length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + if (length == 0.0f) length = 1.0f; + ilength = 1.0f/length; + vn1.x *= ilength; + vn1.y *= ilength; + vn1.z *= ilength; + + // Vector3CrossProduct(vn1, *v1) + Vector3 vn2 = { vn1.y*v1->z - vn1.z*v1->y, vn1.z*v1->x - vn1.x*v1->z, vn1.x*v1->y - vn1.y*v1->x }; + + *v2 = vn2; +} + +// Transforms a Vector3 by a given Matrix +RMAPI Vector3 Vector3Transform(Vector3 v, Matrix mat) +{ + Vector3 result = { 0 }; + + float x = v.x; + float y = v.y; + float z = v.z; + + result.x = mat.m0*x + mat.m4*y + mat.m8*z + mat.m12; + result.y = mat.m1*x + mat.m5*y + mat.m9*z + mat.m13; + result.z = mat.m2*x + mat.m6*y + mat.m10*z + mat.m14; + + return result; +} + +// Transform a vector by quaternion rotation +RMAPI Vector3 Vector3RotateByQuaternion(Vector3 v, Quaternion q) +{ + Vector3 result = { 0 }; + + result.x = v.x*(q.x*q.x + q.w*q.w - q.y*q.y - q.z*q.z) + v.y*(2*q.x*q.y - 2*q.w*q.z) + v.z*(2*q.x*q.z + 2*q.w*q.y); + result.y = v.x*(2*q.w*q.z + 2*q.x*q.y) + v.y*(q.w*q.w - q.x*q.x + q.y*q.y - q.z*q.z) + v.z*(-2*q.w*q.x + 2*q.y*q.z); + result.z = v.x*(-2*q.w*q.y + 2*q.x*q.z) + v.y*(2*q.w*q.x + 2*q.y*q.z)+ v.z*(q.w*q.w - q.x*q.x - q.y*q.y + q.z*q.z); + + return result; +} + +// Rotates a vector around an axis +RMAPI Vector3 Vector3RotateByAxisAngle(Vector3 v, Vector3 axis, float angle) +{ + // Using Euler-Rodrigues Formula + // Ref.: https://en.wikipedia.org/w/index.php?title=Euler%E2%80%93Rodrigues_formula + + Vector3 result = v; + + // Vector3Normalize(axis); + float length = sqrtf(axis.x*axis.x + axis.y*axis.y + axis.z*axis.z); + if (length == 0.0f) length = 1.0f; + float ilength = 1.0f/length; + axis.x *= ilength; + axis.y *= ilength; + axis.z *= ilength; + + angle /= 2.0f; + float a = sinf(angle); + float b = axis.x*a; + float c = axis.y*a; + float d = axis.z*a; + a = cosf(angle); + Vector3 w = { b, c, d }; + + // Vector3CrossProduct(w, v) + Vector3 wv = { w.y*v.z - w.z*v.y, w.z*v.x - w.x*v.z, w.x*v.y - w.y*v.x }; + + // Vector3CrossProduct(w, wv) + Vector3 wwv = { w.y*wv.z - w.z*wv.y, w.z*wv.x - w.x*wv.z, w.x*wv.y - w.y*wv.x }; + + // Vector3Scale(wv, 2*a) + a *= 2; + wv.x *= a; + wv.y *= a; + wv.z *= a; + + // Vector3Scale(wwv, 2) + wwv.x *= 2; + wwv.y *= 2; + wwv.z *= 2; + + result.x += wv.x; + result.y += wv.y; + result.z += wv.z; + + result.x += wwv.x; + result.y += wwv.y; + result.z += wwv.z; + + return result; +} + +// Move Vector towards target +RMAPI Vector3 Vector3MoveTowards(Vector3 v, Vector3 target, float maxDistance) +{ + Vector3 result = { 0 }; + + float dx = target.x - v.x; + float dy = target.y - v.y; + float dz = target.z - v.z; + float value = (dx*dx) + (dy*dy) + (dz*dz); + + if ((value == 0) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target; + + float dist = sqrtf(value); + + result.x = v.x + dx/dist*maxDistance; + result.y = v.y + dy/dist*maxDistance; + result.z = v.z + dz/dist*maxDistance; + + return result; +} + +// Calculate linear interpolation between two vectors +RMAPI Vector3 Vector3Lerp(Vector3 v1, Vector3 v2, float amount) +{ + Vector3 result = { 0 }; + + result.x = v1.x + amount*(v2.x - v1.x); + result.y = v1.y + amount*(v2.y - v1.y); + result.z = v1.z + amount*(v2.z - v1.z); + + return result; +} + +// Calculate cubic hermite interpolation between two vectors and their tangents +// as described in the GLTF 2.0 specification: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#interpolation-cubic +RMAPI Vector3 Vector3CubicHermite(Vector3 v1, Vector3 tangent1, Vector3 v2, Vector3 tangent2, float amount) +{ + Vector3 result = { 0 }; + + float amountPow2 = amount*amount; + float amountPow3 = amount*amount*amount; + + result.x = (2*amountPow3 - 3*amountPow2 + 1)*v1.x + (amountPow3 - 2*amountPow2 + amount)*tangent1.x + (-2*amountPow3 + 3*amountPow2)*v2.x + (amountPow3 - amountPow2)*tangent2.x; + result.y = (2*amountPow3 - 3*amountPow2 + 1)*v1.y + (amountPow3 - 2*amountPow2 + amount)*tangent1.y + (-2*amountPow3 + 3*amountPow2)*v2.y + (amountPow3 - amountPow2)*tangent2.y; + result.z = (2*amountPow3 - 3*amountPow2 + 1)*v1.z + (amountPow3 - 2*amountPow2 + amount)*tangent1.z + (-2*amountPow3 + 3*amountPow2)*v2.z + (amountPow3 - amountPow2)*tangent2.z; + + return result; +} + +// Calculate reflected vector to normal +RMAPI Vector3 Vector3Reflect(Vector3 v, Vector3 normal) +{ + Vector3 result = { 0 }; + + // I is the original vector + // N is the normal of the incident plane + // R = I - (2*N*(DotProduct[I, N])) + + float dotProduct = (v.x*normal.x + v.y*normal.y + v.z*normal.z); + + result.x = v.x - (2.0f*normal.x)*dotProduct; + result.y = v.y - (2.0f*normal.y)*dotProduct; + result.z = v.z - (2.0f*normal.z)*dotProduct; + + return result; +} + +// Get min value for each pair of components +RMAPI Vector3 Vector3Min(Vector3 v1, Vector3 v2) +{ + Vector3 result = { 0 }; + + result.x = fminf(v1.x, v2.x); + result.y = fminf(v1.y, v2.y); + result.z = fminf(v1.z, v2.z); + + return result; +} + +// Get max value for each pair of components +RMAPI Vector3 Vector3Max(Vector3 v1, Vector3 v2) +{ + Vector3 result = { 0 }; + + result.x = fmaxf(v1.x, v2.x); + result.y = fmaxf(v1.y, v2.y); + result.z = fmaxf(v1.z, v2.z); + + return result; +} + +// Compute barycenter coordinates (u, v, w) for point p with respect to triangle (a, b, c) +// NOTE: Assumes P is on the plane of the triangle +RMAPI Vector3 Vector3Barycenter(Vector3 p, Vector3 a, Vector3 b, Vector3 c) +{ + Vector3 result = { 0 }; + + Vector3 v0 = { b.x - a.x, b.y - a.y, b.z - a.z }; // Vector3Subtract(b, a) + Vector3 v1 = { c.x - a.x, c.y - a.y, c.z - a.z }; // Vector3Subtract(c, a) + Vector3 v2 = { p.x - a.x, p.y - a.y, p.z - a.z }; // Vector3Subtract(p, a) + float d00 = (v0.x*v0.x + v0.y*v0.y + v0.z*v0.z); // Vector3DotProduct(v0, v0) + float d01 = (v0.x*v1.x + v0.y*v1.y + v0.z*v1.z); // Vector3DotProduct(v0, v1) + float d11 = (v1.x*v1.x + v1.y*v1.y + v1.z*v1.z); // Vector3DotProduct(v1, v1) + float d20 = (v2.x*v0.x + v2.y*v0.y + v2.z*v0.z); // Vector3DotProduct(v2, v0) + float d21 = (v2.x*v1.x + v2.y*v1.y + v2.z*v1.z); // Vector3DotProduct(v2, v1) + + float denom = d00*d11 - d01*d01; + + result.y = (d11*d20 - d01*d21)/denom; + result.z = (d00*d21 - d01*d20)/denom; + result.x = 1.0f - (result.z + result.y); + + return result; +} + +// Projects a Vector3 from screen space into object space +// NOTE: We are avoiding calling other raymath functions despite available +RMAPI Vector3 Vector3Unproject(Vector3 source, Matrix projection, Matrix view) +{ + Vector3 result = { 0 }; + + // Calculate unprojected matrix (multiply view matrix by projection matrix) and invert it + Matrix matViewProj = { // MatrixMultiply(view, projection); + view.m0*projection.m0 + view.m1*projection.m4 + view.m2*projection.m8 + view.m3*projection.m12, + view.m0*projection.m1 + view.m1*projection.m5 + view.m2*projection.m9 + view.m3*projection.m13, + view.m0*projection.m2 + view.m1*projection.m6 + view.m2*projection.m10 + view.m3*projection.m14, + view.m0*projection.m3 + view.m1*projection.m7 + view.m2*projection.m11 + view.m3*projection.m15, + view.m4*projection.m0 + view.m5*projection.m4 + view.m6*projection.m8 + view.m7*projection.m12, + view.m4*projection.m1 + view.m5*projection.m5 + view.m6*projection.m9 + view.m7*projection.m13, + view.m4*projection.m2 + view.m5*projection.m6 + view.m6*projection.m10 + view.m7*projection.m14, + view.m4*projection.m3 + view.m5*projection.m7 + view.m6*projection.m11 + view.m7*projection.m15, + view.m8*projection.m0 + view.m9*projection.m4 + view.m10*projection.m8 + view.m11*projection.m12, + view.m8*projection.m1 + view.m9*projection.m5 + view.m10*projection.m9 + view.m11*projection.m13, + view.m8*projection.m2 + view.m9*projection.m6 + view.m10*projection.m10 + view.m11*projection.m14, + view.m8*projection.m3 + view.m9*projection.m7 + view.m10*projection.m11 + view.m11*projection.m15, + view.m12*projection.m0 + view.m13*projection.m4 + view.m14*projection.m8 + view.m15*projection.m12, + view.m12*projection.m1 + view.m13*projection.m5 + view.m14*projection.m9 + view.m15*projection.m13, + view.m12*projection.m2 + view.m13*projection.m6 + view.m14*projection.m10 + view.m15*projection.m14, + view.m12*projection.m3 + view.m13*projection.m7 + view.m14*projection.m11 + view.m15*projection.m15 }; + + // Calculate inverted matrix -> MatrixInvert(matViewProj); + // Cache the matrix values (speed optimization) + float a00 = matViewProj.m0, a01 = matViewProj.m1, a02 = matViewProj.m2, a03 = matViewProj.m3; + float a10 = matViewProj.m4, a11 = matViewProj.m5, a12 = matViewProj.m6, a13 = matViewProj.m7; + float a20 = matViewProj.m8, a21 = matViewProj.m9, a22 = matViewProj.m10, a23 = matViewProj.m11; + float a30 = matViewProj.m12, a31 = matViewProj.m13, a32 = matViewProj.m14, a33 = matViewProj.m15; + + float b00 = a00*a11 - a01*a10; + float b01 = a00*a12 - a02*a10; + float b02 = a00*a13 - a03*a10; + float b03 = a01*a12 - a02*a11; + float b04 = a01*a13 - a03*a11; + float b05 = a02*a13 - a03*a12; + float b06 = a20*a31 - a21*a30; + float b07 = a20*a32 - a22*a30; + float b08 = a20*a33 - a23*a30; + float b09 = a21*a32 - a22*a31; + float b10 = a21*a33 - a23*a31; + float b11 = a22*a33 - a23*a32; + + // Calculate the invert determinant (inlined to avoid double-caching) + float invDet = 1.0f/(b00*b11 - b01*b10 + b02*b09 + b03*b08 - b04*b07 + b05*b06); + + Matrix matViewProjInv = { + (a11*b11 - a12*b10 + a13*b09)*invDet, + (-a01*b11 + a02*b10 - a03*b09)*invDet, + (a31*b05 - a32*b04 + a33*b03)*invDet, + (-a21*b05 + a22*b04 - a23*b03)*invDet, + (-a10*b11 + a12*b08 - a13*b07)*invDet, + (a00*b11 - a02*b08 + a03*b07)*invDet, + (-a30*b05 + a32*b02 - a33*b01)*invDet, + (a20*b05 - a22*b02 + a23*b01)*invDet, + (a10*b10 - a11*b08 + a13*b06)*invDet, + (-a00*b10 + a01*b08 - a03*b06)*invDet, + (a30*b04 - a31*b02 + a33*b00)*invDet, + (-a20*b04 + a21*b02 - a23*b00)*invDet, + (-a10*b09 + a11*b07 - a12*b06)*invDet, + (a00*b09 - a01*b07 + a02*b06)*invDet, + (-a30*b03 + a31*b01 - a32*b00)*invDet, + (a20*b03 - a21*b01 + a22*b00)*invDet }; + + // Create quaternion from source point + Quaternion quat = { source.x, source.y, source.z, 1.0f }; + + // Multiply quat point by unprojecte matrix + Quaternion qtransformed = { // QuaternionTransform(quat, matViewProjInv) + matViewProjInv.m0*quat.x + matViewProjInv.m4*quat.y + matViewProjInv.m8*quat.z + matViewProjInv.m12*quat.w, + matViewProjInv.m1*quat.x + matViewProjInv.m5*quat.y + matViewProjInv.m9*quat.z + matViewProjInv.m13*quat.w, + matViewProjInv.m2*quat.x + matViewProjInv.m6*quat.y + matViewProjInv.m10*quat.z + matViewProjInv.m14*quat.w, + matViewProjInv.m3*quat.x + matViewProjInv.m7*quat.y + matViewProjInv.m11*quat.z + matViewProjInv.m15*quat.w }; + + // Normalized world points in vectors + result.x = qtransformed.x/qtransformed.w; + result.y = qtransformed.y/qtransformed.w; + result.z = qtransformed.z/qtransformed.w; + + return result; +} + +// Get Vector3 as float array +RMAPI float3 Vector3ToFloatV(Vector3 v) +{ + float3 buffer = { 0 }; + + buffer.v[0] = v.x; + buffer.v[1] = v.y; + buffer.v[2] = v.z; + + return buffer; +} + +// Invert the given vector +RMAPI Vector3 Vector3Invert(Vector3 v) +{ + Vector3 result = { 1.0f/v.x, 1.0f/v.y, 1.0f/v.z }; + + return result; +} + +// Clamp the components of the vector between +// min and max values specified by the given vectors +RMAPI Vector3 Vector3Clamp(Vector3 v, Vector3 min, Vector3 max) +{ + Vector3 result = { 0 }; + + result.x = fminf(max.x, fmaxf(min.x, v.x)); + result.y = fminf(max.y, fmaxf(min.y, v.y)); + result.z = fminf(max.z, fmaxf(min.z, v.z)); + + return result; +} + +// Clamp the magnitude of the vector between two values +RMAPI Vector3 Vector3ClampValue(Vector3 v, float min, float max) +{ + Vector3 result = v; + + float length = (v.x*v.x) + (v.y*v.y) + (v.z*v.z); + if (length > 0.0f) + { + length = sqrtf(length); + + float scale = 1; // By default, 1 as the neutral element. + if (length < min) + { + scale = min/length; + } + else if (length > max) + { + scale = max/length; + } + + result.x = v.x*scale; + result.y = v.y*scale; + result.z = v.z*scale; + } + + return result; +} + +// Check whether two given vectors are almost equal +RMAPI int Vector3Equals(Vector3 p, Vector3 q) +{ +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + int result = ((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && + ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && + ((fabsf(p.z - q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))); + + return result; +} + +// Compute the direction of a refracted ray +// v: normalized direction of the incoming ray +// n: normalized normal vector of the interface of two optical media +// r: ratio of the refractive index of the medium from where the ray comes +// to the refractive index of the medium on the other side of the surface +RMAPI Vector3 Vector3Refract(Vector3 v, Vector3 n, float r) +{ + Vector3 result = { 0 }; + + float dot = v.x*n.x + v.y*n.y + v.z*n.z; + float d = 1.0f - r*r*(1.0f - dot*dot); + + if (d >= 0.0f) + { + d = sqrtf(d); + v.x = r*v.x - (r*dot + d)*n.x; + v.y = r*v.y - (r*dot + d)*n.y; + v.z = r*v.z - (r*dot + d)*n.z; + + result = v; + } + + return result; +} + + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Vector4 math +//---------------------------------------------------------------------------------- + +RMAPI Vector4 Vector4Zero(void) +{ + Vector4 result = { 0.0f, 0.0f, 0.0f, 0.0f }; + return result; +} + +RMAPI Vector4 Vector4One(void) +{ + Vector4 result = { 1.0f, 1.0f, 1.0f, 1.0f }; + return result; +} + +RMAPI Vector4 Vector4Add(Vector4 v1, Vector4 v2) +{ + Vector4 result = { + v1.x + v2.x, + v1.y + v2.y, + v1.z + v2.z, + v1.w + v2.w + }; + return result; +} + +RMAPI Vector4 Vector4AddValue(Vector4 v, float add) +{ + Vector4 result = { + v.x + add, + v.y + add, + v.z + add, + v.w + add + }; + return result; +} + +RMAPI Vector4 Vector4Subtract(Vector4 v1, Vector4 v2) +{ + Vector4 result = { + v1.x - v2.x, + v1.y - v2.y, + v1.z - v2.z, + v1.w - v2.w + }; + return result; +} + +RMAPI Vector4 Vector4SubtractValue(Vector4 v, float add) +{ + Vector4 result = { + v.x - add, + v.y - add, + v.z - add, + v.w - add + }; + return result; +} + +RMAPI float Vector4Length(Vector4 v) +{ + float result = sqrtf((v.x*v.x) + (v.y*v.y) + (v.z*v.z) + (v.w*v.w)); + return result; +} + +RMAPI float Vector4LengthSqr(Vector4 v) +{ + float result = (v.x*v.x) + (v.y*v.y) + (v.z*v.z) + (v.w*v.w); + return result; +} + +RMAPI float Vector4DotProduct(Vector4 v1, Vector4 v2) +{ + float result = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z + v1.w*v2.w); + return result; +} + +// Calculate distance between two vectors +RMAPI float Vector4Distance(Vector4 v1, Vector4 v2) +{ + float result = sqrtf( + (v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y) + + (v1.z - v2.z)*(v1.z - v2.z) + (v1.w - v2.w)*(v1.w - v2.w)); + return result; +} + +// Calculate square distance between two vectors +RMAPI float Vector4DistanceSqr(Vector4 v1, Vector4 v2) +{ + float result = + (v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y) + + (v1.z - v2.z)*(v1.z - v2.z) + (v1.w - v2.w)*(v1.w - v2.w); + + return result; +} + +RMAPI Vector4 Vector4Scale(Vector4 v, float scale) +{ + Vector4 result = { v.x*scale, v.y*scale, v.z*scale, v.w*scale }; + return result; +} + +// Multiply vector by vector +RMAPI Vector4 Vector4Multiply(Vector4 v1, Vector4 v2) +{ + Vector4 result = { v1.x*v2.x, v1.y*v2.y, v1.z*v2.z, v1.w*v2.w }; + return result; +} + +// Negate vector +RMAPI Vector4 Vector4Negate(Vector4 v) +{ + Vector4 result = { -v.x, -v.y, -v.z, -v.w }; + return result; +} + +// Divide vector by vector +RMAPI Vector4 Vector4Divide(Vector4 v1, Vector4 v2) +{ + Vector4 result = { v1.x/v2.x, v1.y/v2.y, v1.z/v2.z, v1.w/v2.w }; + return result; +} + +// Normalize provided vector +RMAPI Vector4 Vector4Normalize(Vector4 v) +{ + Vector4 result = { 0 }; + float length = sqrtf((v.x*v.x) + (v.y*v.y) + (v.z*v.z) + (v.w*v.w)); + + if (length > 0) + { + float ilength = 1.0f/length; + result.x = v.x*ilength; + result.y = v.y*ilength; + result.z = v.z*ilength; + result.w = v.w*ilength; + } + + return result; +} + +// Get min value for each pair of components +RMAPI Vector4 Vector4Min(Vector4 v1, Vector4 v2) +{ + Vector4 result = { 0 }; + + result.x = fminf(v1.x, v2.x); + result.y = fminf(v1.y, v2.y); + result.z = fminf(v1.z, v2.z); + result.w = fminf(v1.w, v2.w); + + return result; +} + +// Get max value for each pair of components +RMAPI Vector4 Vector4Max(Vector4 v1, Vector4 v2) +{ + Vector4 result = { 0 }; + + result.x = fmaxf(v1.x, v2.x); + result.y = fmaxf(v1.y, v2.y); + result.z = fmaxf(v1.z, v2.z); + result.w = fmaxf(v1.w, v2.w); + + return result; +} + +// Calculate linear interpolation between two vectors +RMAPI Vector4 Vector4Lerp(Vector4 v1, Vector4 v2, float amount) +{ + Vector4 result = { 0 }; + + result.x = v1.x + amount*(v2.x - v1.x); + result.y = v1.y + amount*(v2.y - v1.y); + result.z = v1.z + amount*(v2.z - v1.z); + result.w = v1.w + amount*(v2.w - v1.w); + + return result; +} + +// Move Vector towards target +RMAPI Vector4 Vector4MoveTowards(Vector4 v, Vector4 target, float maxDistance) +{ + Vector4 result = { 0 }; + + float dx = target.x - v.x; + float dy = target.y - v.y; + float dz = target.z - v.z; + float dw = target.w - v.w; + float value = (dx*dx) + (dy*dy) + (dz*dz) + (dw*dw); + + if ((value == 0) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target; + + float dist = sqrtf(value); + + result.x = v.x + dx/dist*maxDistance; + result.y = v.y + dy/dist*maxDistance; + result.z = v.z + dz/dist*maxDistance; + result.w = v.w + dw/dist*maxDistance; + + return result; +} + +// Invert the given vector +RMAPI Vector4 Vector4Invert(Vector4 v) +{ + Vector4 result = { 1.0f/v.x, 1.0f/v.y, 1.0f/v.z, 1.0f/v.w }; + return result; +} + +// Check whether two given vectors are almost equal +RMAPI int Vector4Equals(Vector4 p, Vector4 q) +{ +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + int result = ((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && + ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && + ((fabsf(p.z - q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))) && + ((fabsf(p.w - q.w)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.w), fabsf(q.w))))); + return result; +} + + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Matrix math +//---------------------------------------------------------------------------------- + +// Compute matrix determinant +RMAPI float MatrixDeterminant(Matrix mat) +{ + float result = 0.0f; + + // Cache the matrix values (speed optimization) + float a00 = mat.m0, a01 = mat.m1, a02 = mat.m2, a03 = mat.m3; + float a10 = mat.m4, a11 = mat.m5, a12 = mat.m6, a13 = mat.m7; + float a20 = mat.m8, a21 = mat.m9, a22 = mat.m10, a23 = mat.m11; + float a30 = mat.m12, a31 = mat.m13, a32 = mat.m14, a33 = mat.m15; + + result = a30*a21*a12*a03 - a20*a31*a12*a03 - a30*a11*a22*a03 + a10*a31*a22*a03 + + a20*a11*a32*a03 - a10*a21*a32*a03 - a30*a21*a02*a13 + a20*a31*a02*a13 + + a30*a01*a22*a13 - a00*a31*a22*a13 - a20*a01*a32*a13 + a00*a21*a32*a13 + + a30*a11*a02*a23 - a10*a31*a02*a23 - a30*a01*a12*a23 + a00*a31*a12*a23 + + a10*a01*a32*a23 - a00*a11*a32*a23 - a20*a11*a02*a33 + a10*a21*a02*a33 + + a20*a01*a12*a33 - a00*a21*a12*a33 - a10*a01*a22*a33 + a00*a11*a22*a33; + + return result; +} + +// Get the trace of the matrix (sum of the values along the diagonal) +RMAPI float MatrixTrace(Matrix mat) +{ + float result = (mat.m0 + mat.m5 + mat.m10 + mat.m15); + + return result; +} + +// Transposes provided matrix +RMAPI Matrix MatrixTranspose(Matrix mat) +{ + Matrix result = { 0 }; + + result.m0 = mat.m0; + result.m1 = mat.m4; + result.m2 = mat.m8; + result.m3 = mat.m12; + result.m4 = mat.m1; + result.m5 = mat.m5; + result.m6 = mat.m9; + result.m7 = mat.m13; + result.m8 = mat.m2; + result.m9 = mat.m6; + result.m10 = mat.m10; + result.m11 = mat.m14; + result.m12 = mat.m3; + result.m13 = mat.m7; + result.m14 = mat.m11; + result.m15 = mat.m15; + + return result; +} + +// Invert provided matrix +RMAPI Matrix MatrixInvert(Matrix mat) +{ + Matrix result = { 0 }; + + // Cache the matrix values (speed optimization) + float a00 = mat.m0, a01 = mat.m1, a02 = mat.m2, a03 = mat.m3; + float a10 = mat.m4, a11 = mat.m5, a12 = mat.m6, a13 = mat.m7; + float a20 = mat.m8, a21 = mat.m9, a22 = mat.m10, a23 = mat.m11; + float a30 = mat.m12, a31 = mat.m13, a32 = mat.m14, a33 = mat.m15; + + float b00 = a00*a11 - a01*a10; + float b01 = a00*a12 - a02*a10; + float b02 = a00*a13 - a03*a10; + float b03 = a01*a12 - a02*a11; + float b04 = a01*a13 - a03*a11; + float b05 = a02*a13 - a03*a12; + float b06 = a20*a31 - a21*a30; + float b07 = a20*a32 - a22*a30; + float b08 = a20*a33 - a23*a30; + float b09 = a21*a32 - a22*a31; + float b10 = a21*a33 - a23*a31; + float b11 = a22*a33 - a23*a32; + + // Calculate the invert determinant (inlined to avoid double-caching) + float invDet = 1.0f/(b00*b11 - b01*b10 + b02*b09 + b03*b08 - b04*b07 + b05*b06); + + result.m0 = (a11*b11 - a12*b10 + a13*b09)*invDet; + result.m1 = (-a01*b11 + a02*b10 - a03*b09)*invDet; + result.m2 = (a31*b05 - a32*b04 + a33*b03)*invDet; + result.m3 = (-a21*b05 + a22*b04 - a23*b03)*invDet; + result.m4 = (-a10*b11 + a12*b08 - a13*b07)*invDet; + result.m5 = (a00*b11 - a02*b08 + a03*b07)*invDet; + result.m6 = (-a30*b05 + a32*b02 - a33*b01)*invDet; + result.m7 = (a20*b05 - a22*b02 + a23*b01)*invDet; + result.m8 = (a10*b10 - a11*b08 + a13*b06)*invDet; + result.m9 = (-a00*b10 + a01*b08 - a03*b06)*invDet; + result.m10 = (a30*b04 - a31*b02 + a33*b00)*invDet; + result.m11 = (-a20*b04 + a21*b02 - a23*b00)*invDet; + result.m12 = (-a10*b09 + a11*b07 - a12*b06)*invDet; + result.m13 = (a00*b09 - a01*b07 + a02*b06)*invDet; + result.m14 = (-a30*b03 + a31*b01 - a32*b00)*invDet; + result.m15 = (a20*b03 - a21*b01 + a22*b00)*invDet; + + return result; +} + +// Get identity matrix +RMAPI Matrix MatrixIdentity(void) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; + + return result; +} + +// Add two matrices +RMAPI Matrix MatrixAdd(Matrix left, Matrix right) +{ + Matrix result = { 0 }; + + result.m0 = left.m0 + right.m0; + result.m1 = left.m1 + right.m1; + result.m2 = left.m2 + right.m2; + result.m3 = left.m3 + right.m3; + result.m4 = left.m4 + right.m4; + result.m5 = left.m5 + right.m5; + result.m6 = left.m6 + right.m6; + result.m7 = left.m7 + right.m7; + result.m8 = left.m8 + right.m8; + result.m9 = left.m9 + right.m9; + result.m10 = left.m10 + right.m10; + result.m11 = left.m11 + right.m11; + result.m12 = left.m12 + right.m12; + result.m13 = left.m13 + right.m13; + result.m14 = left.m14 + right.m14; + result.m15 = left.m15 + right.m15; + + return result; +} + +// Subtract two matrices (left - right) +RMAPI Matrix MatrixSubtract(Matrix left, Matrix right) +{ + Matrix result = { 0 }; + + result.m0 = left.m0 - right.m0; + result.m1 = left.m1 - right.m1; + result.m2 = left.m2 - right.m2; + result.m3 = left.m3 - right.m3; + result.m4 = left.m4 - right.m4; + result.m5 = left.m5 - right.m5; + result.m6 = left.m6 - right.m6; + result.m7 = left.m7 - right.m7; + result.m8 = left.m8 - right.m8; + result.m9 = left.m9 - right.m9; + result.m10 = left.m10 - right.m10; + result.m11 = left.m11 - right.m11; + result.m12 = left.m12 - right.m12; + result.m13 = left.m13 - right.m13; + result.m14 = left.m14 - right.m14; + result.m15 = left.m15 - right.m15; + + return result; +} + +// Get two matrix multiplication +// NOTE: When multiplying matrices... the order matters! +RMAPI Matrix MatrixMultiply(Matrix left, Matrix right) +{ + Matrix result = { 0 }; + + result.m0 = left.m0*right.m0 + left.m1*right.m4 + left.m2*right.m8 + left.m3*right.m12; + result.m1 = left.m0*right.m1 + left.m1*right.m5 + left.m2*right.m9 + left.m3*right.m13; + result.m2 = left.m0*right.m2 + left.m1*right.m6 + left.m2*right.m10 + left.m3*right.m14; + result.m3 = left.m0*right.m3 + left.m1*right.m7 + left.m2*right.m11 + left.m3*right.m15; + result.m4 = left.m4*right.m0 + left.m5*right.m4 + left.m6*right.m8 + left.m7*right.m12; + result.m5 = left.m4*right.m1 + left.m5*right.m5 + left.m6*right.m9 + left.m7*right.m13; + result.m6 = left.m4*right.m2 + left.m5*right.m6 + left.m6*right.m10 + left.m7*right.m14; + result.m7 = left.m4*right.m3 + left.m5*right.m7 + left.m6*right.m11 + left.m7*right.m15; + result.m8 = left.m8*right.m0 + left.m9*right.m4 + left.m10*right.m8 + left.m11*right.m12; + result.m9 = left.m8*right.m1 + left.m9*right.m5 + left.m10*right.m9 + left.m11*right.m13; + result.m10 = left.m8*right.m2 + left.m9*right.m6 + left.m10*right.m10 + left.m11*right.m14; + result.m11 = left.m8*right.m3 + left.m9*right.m7 + left.m10*right.m11 + left.m11*right.m15; + result.m12 = left.m12*right.m0 + left.m13*right.m4 + left.m14*right.m8 + left.m15*right.m12; + result.m13 = left.m12*right.m1 + left.m13*right.m5 + left.m14*right.m9 + left.m15*right.m13; + result.m14 = left.m12*right.m2 + left.m13*right.m6 + left.m14*right.m10 + left.m15*right.m14; + result.m15 = left.m12*right.m3 + left.m13*right.m7 + left.m14*right.m11 + left.m15*right.m15; + + return result; +} + +// Get translation matrix +RMAPI Matrix MatrixTranslate(float x, float y, float z) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, x, + 0.0f, 1.0f, 0.0f, y, + 0.0f, 0.0f, 1.0f, z, + 0.0f, 0.0f, 0.0f, 1.0f }; + + return result; +} + +// Create rotation matrix from axis and angle +// NOTE: Angle should be provided in radians +RMAPI Matrix MatrixRotate(Vector3 axis, float angle) +{ + Matrix result = { 0 }; + + float x = axis.x, y = axis.y, z = axis.z; + + float lengthSquared = x*x + y*y + z*z; + + if ((lengthSquared != 1.0f) && (lengthSquared != 0.0f)) + { + float ilength = 1.0f/sqrtf(lengthSquared); + x *= ilength; + y *= ilength; + z *= ilength; + } + + float sinres = sinf(angle); + float cosres = cosf(angle); + float t = 1.0f - cosres; + + result.m0 = x*x*t + cosres; + result.m1 = y*x*t + z*sinres; + result.m2 = z*x*t - y*sinres; + result.m3 = 0.0f; + + result.m4 = x*y*t - z*sinres; + result.m5 = y*y*t + cosres; + result.m6 = z*y*t + x*sinres; + result.m7 = 0.0f; + + result.m8 = x*z*t + y*sinres; + result.m9 = y*z*t - x*sinres; + result.m10 = z*z*t + cosres; + result.m11 = 0.0f; + + result.m12 = 0.0f; + result.m13 = 0.0f; + result.m14 = 0.0f; + result.m15 = 1.0f; + + return result; +} + +// Get x-rotation matrix +// NOTE: Angle must be provided in radians +RMAPI Matrix MatrixRotateX(float angle) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() + + float cosres = cosf(angle); + float sinres = sinf(angle); + + result.m5 = cosres; + result.m6 = sinres; + result.m9 = -sinres; + result.m10 = cosres; + + return result; +} + +// Get y-rotation matrix +// NOTE: Angle must be provided in radians +RMAPI Matrix MatrixRotateY(float angle) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() + + float cosres = cosf(angle); + float sinres = sinf(angle); + + result.m0 = cosres; + result.m2 = -sinres; + result.m8 = sinres; + result.m10 = cosres; + + return result; +} + +// Get z-rotation matrix +// NOTE: Angle must be provided in radians +RMAPI Matrix MatrixRotateZ(float angle) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() + + float cosres = cosf(angle); + float sinres = sinf(angle); + + result.m0 = cosres; + result.m1 = sinres; + result.m4 = -sinres; + result.m5 = cosres; + + return result; +} + + +// Get xyz-rotation matrix +// NOTE: Angle must be provided in radians +RMAPI Matrix MatrixRotateXYZ(Vector3 angle) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() + + float cosz = cosf(-angle.z); + float sinz = sinf(-angle.z); + float cosy = cosf(-angle.y); + float siny = sinf(-angle.y); + float cosx = cosf(-angle.x); + float sinx = sinf(-angle.x); + + result.m0 = cosz*cosy; + result.m1 = (cosz*siny*sinx) - (sinz*cosx); + result.m2 = (cosz*siny*cosx) + (sinz*sinx); + + result.m4 = sinz*cosy; + result.m5 = (sinz*siny*sinx) + (cosz*cosx); + result.m6 = (sinz*siny*cosx) - (cosz*sinx); + + result.m8 = -siny; + result.m9 = cosy*sinx; + result.m10= cosy*cosx; + + return result; +} + +// Get zyx-rotation matrix +// NOTE: Angle must be provided in radians +RMAPI Matrix MatrixRotateZYX(Vector3 angle) +{ + Matrix result = { 0 }; + + float cz = cosf(angle.z); + float sz = sinf(angle.z); + float cy = cosf(angle.y); + float sy = sinf(angle.y); + float cx = cosf(angle.x); + float sx = sinf(angle.x); + + result.m0 = cz*cy; + result.m4 = cz*sy*sx - cx*sz; + result.m8 = sz*sx + cz*cx*sy; + result.m12 = 0; + + result.m1 = cy*sz; + result.m5 = cz*cx + sz*sy*sx; + result.m9 = cx*sz*sy - cz*sx; + result.m13 = 0; + + result.m2 = -sy; + result.m6 = cy*sx; + result.m10 = cy*cx; + result.m14 = 0; + + result.m3 = 0; + result.m7 = 0; + result.m11 = 0; + result.m15 = 1; + + return result; +} + +// Get scaling matrix +RMAPI Matrix MatrixScale(float x, float y, float z) +{ + Matrix result = { x, 0.0f, 0.0f, 0.0f, + 0.0f, y, 0.0f, 0.0f, + 0.0f, 0.0f, z, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; + + return result; +} + +// Get perspective projection matrix +RMAPI Matrix MatrixFrustum(double left, double right, double bottom, double top, double nearPlane, double farPlane) +{ + Matrix result = { 0 }; + + float rl = (float)(right - left); + float tb = (float)(top - bottom); + float fn = (float)(farPlane - nearPlane); + + result.m0 = ((float)nearPlane*2.0f)/rl; + result.m1 = 0.0f; + result.m2 = 0.0f; + result.m3 = 0.0f; + + result.m4 = 0.0f; + result.m5 = ((float)nearPlane*2.0f)/tb; + result.m6 = 0.0f; + result.m7 = 0.0f; + + result.m8 = ((float)right + (float)left)/rl; + result.m9 = ((float)top + (float)bottom)/tb; + result.m10 = -((float)farPlane + (float)nearPlane)/fn; + result.m11 = -1.0f; + + result.m12 = 0.0f; + result.m13 = 0.0f; + result.m14 = -((float)farPlane*(float)nearPlane*2.0f)/fn; + result.m15 = 0.0f; + + return result; +} + +// Get perspective projection matrix +// NOTE: Fovy angle must be provided in radians +RMAPI Matrix MatrixPerspective(double fovY, double aspect, double nearPlane, double farPlane) +{ + Matrix result = { 0 }; + + double top = nearPlane*tan(fovY*0.5); + double bottom = -top; + double right = top*aspect; + double left = -right; + + // MatrixFrustum(-right, right, -top, top, near, far); + float rl = (float)(right - left); + float tb = (float)(top - bottom); + float fn = (float)(farPlane - nearPlane); + + result.m0 = ((float)nearPlane*2.0f)/rl; + result.m5 = ((float)nearPlane*2.0f)/tb; + result.m8 = ((float)right + (float)left)/rl; + result.m9 = ((float)top + (float)bottom)/tb; + result.m10 = -((float)farPlane + (float)nearPlane)/fn; + result.m11 = -1.0f; + result.m14 = -((float)farPlane*(float)nearPlane*2.0f)/fn; + + return result; +} + +// Get orthographic projection matrix +RMAPI Matrix MatrixOrtho(double left, double right, double bottom, double top, double nearPlane, double farPlane) +{ + Matrix result = { 0 }; + + float rl = (float)(right - left); + float tb = (float)(top - bottom); + float fn = (float)(farPlane - nearPlane); + + result.m0 = 2.0f/rl; + result.m1 = 0.0f; + result.m2 = 0.0f; + result.m3 = 0.0f; + result.m4 = 0.0f; + result.m5 = 2.0f/tb; + result.m6 = 0.0f; + result.m7 = 0.0f; + result.m8 = 0.0f; + result.m9 = 0.0f; + result.m10 = -2.0f/fn; + result.m11 = 0.0f; + result.m12 = -((float)left + (float)right)/rl; + result.m13 = -((float)top + (float)bottom)/tb; + result.m14 = -((float)farPlane + (float)nearPlane)/fn; + result.m15 = 1.0f; + + return result; +} + +// Get camera look-at matrix (view matrix) +RMAPI Matrix MatrixLookAt(Vector3 eye, Vector3 target, Vector3 up) +{ + Matrix result = { 0 }; + + float length = 0.0f; + float ilength = 0.0f; + + // Vector3Subtract(eye, target) + Vector3 vz = { eye.x - target.x, eye.y - target.y, eye.z - target.z }; + + // Vector3Normalize(vz) + Vector3 v = vz; + length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + if (length == 0.0f) length = 1.0f; + ilength = 1.0f/length; + vz.x *= ilength; + vz.y *= ilength; + vz.z *= ilength; + + // Vector3CrossProduct(up, vz) + Vector3 vx = { up.y*vz.z - up.z*vz.y, up.z*vz.x - up.x*vz.z, up.x*vz.y - up.y*vz.x }; + + // Vector3Normalize(x) + v = vx; + length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + if (length == 0.0f) length = 1.0f; + ilength = 1.0f/length; + vx.x *= ilength; + vx.y *= ilength; + vx.z *= ilength; + + // Vector3CrossProduct(vz, vx) + Vector3 vy = { vz.y*vx.z - vz.z*vx.y, vz.z*vx.x - vz.x*vx.z, vz.x*vx.y - vz.y*vx.x }; + + result.m0 = vx.x; + result.m1 = vy.x; + result.m2 = vz.x; + result.m3 = 0.0f; + result.m4 = vx.y; + result.m5 = vy.y; + result.m6 = vz.y; + result.m7 = 0.0f; + result.m8 = vx.z; + result.m9 = vy.z; + result.m10 = vz.z; + result.m11 = 0.0f; + result.m12 = -(vx.x*eye.x + vx.y*eye.y + vx.z*eye.z); // Vector3DotProduct(vx, eye) + result.m13 = -(vy.x*eye.x + vy.y*eye.y + vy.z*eye.z); // Vector3DotProduct(vy, eye) + result.m14 = -(vz.x*eye.x + vz.y*eye.y + vz.z*eye.z); // Vector3DotProduct(vz, eye) + result.m15 = 1.0f; + + return result; +} + +// Get float array of matrix data +RMAPI float16 MatrixToFloatV(Matrix mat) +{ + float16 result = { 0 }; + + result.v[0] = mat.m0; + result.v[1] = mat.m1; + result.v[2] = mat.m2; + result.v[3] = mat.m3; + result.v[4] = mat.m4; + result.v[5] = mat.m5; + result.v[6] = mat.m6; + result.v[7] = mat.m7; + result.v[8] = mat.m8; + result.v[9] = mat.m9; + result.v[10] = mat.m10; + result.v[11] = mat.m11; + result.v[12] = mat.m12; + result.v[13] = mat.m13; + result.v[14] = mat.m14; + result.v[15] = mat.m15; + + return result; +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Quaternion math +//---------------------------------------------------------------------------------- + +// Add two quaternions +RMAPI Quaternion QuaternionAdd(Quaternion q1, Quaternion q2) +{ + Quaternion result = {q1.x + q2.x, q1.y + q2.y, q1.z + q2.z, q1.w + q2.w}; + + return result; +} + +// Add quaternion and float value +RMAPI Quaternion QuaternionAddValue(Quaternion q, float add) +{ + Quaternion result = {q.x + add, q.y + add, q.z + add, q.w + add}; + + return result; +} + +// Subtract two quaternions +RMAPI Quaternion QuaternionSubtract(Quaternion q1, Quaternion q2) +{ + Quaternion result = {q1.x - q2.x, q1.y - q2.y, q1.z - q2.z, q1.w - q2.w}; + + return result; +} + +// Subtract quaternion and float value +RMAPI Quaternion QuaternionSubtractValue(Quaternion q, float sub) +{ + Quaternion result = {q.x - sub, q.y - sub, q.z - sub, q.w - sub}; + + return result; +} + +// Get identity quaternion +RMAPI Quaternion QuaternionIdentity(void) +{ + Quaternion result = { 0.0f, 0.0f, 0.0f, 1.0f }; + + return result; +} + +// Computes the length of a quaternion +RMAPI float QuaternionLength(Quaternion q) +{ + float result = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + + return result; +} + +// Normalize provided quaternion +RMAPI Quaternion QuaternionNormalize(Quaternion q) +{ + Quaternion result = { 0 }; + + float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + if (length == 0.0f) length = 1.0f; + float ilength = 1.0f/length; + + result.x = q.x*ilength; + result.y = q.y*ilength; + result.z = q.z*ilength; + result.w = q.w*ilength; + + return result; +} + +// Invert provided quaternion +RMAPI Quaternion QuaternionInvert(Quaternion q) +{ + Quaternion result = q; + + float lengthSq = q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w; + + if (lengthSq != 0.0f) + { + float invLength = 1.0f/lengthSq; + + result.x *= -invLength; + result.y *= -invLength; + result.z *= -invLength; + result.w *= invLength; + } + + return result; +} + +// Calculate two quaternion multiplication +RMAPI Quaternion QuaternionMultiply(Quaternion q1, Quaternion q2) +{ + Quaternion result = { 0 }; + + float qax = q1.x, qay = q1.y, qaz = q1.z, qaw = q1.w; + float qbx = q2.x, qby = q2.y, qbz = q2.z, qbw = q2.w; + + result.x = qax*qbw + qaw*qbx + qay*qbz - qaz*qby; + result.y = qay*qbw + qaw*qby + qaz*qbx - qax*qbz; + result.z = qaz*qbw + qaw*qbz + qax*qby - qay*qbx; + result.w = qaw*qbw - qax*qbx - qay*qby - qaz*qbz; + + return result; +} + +// Scale quaternion by float value +RMAPI Quaternion QuaternionScale(Quaternion q, float mul) +{ + Quaternion result = { 0 }; + + result.x = q.x*mul; + result.y = q.y*mul; + result.z = q.z*mul; + result.w = q.w*mul; + + return result; +} + +// Divide two quaternions +RMAPI Quaternion QuaternionDivide(Quaternion q1, Quaternion q2) +{ + Quaternion result = { q1.x/q2.x, q1.y/q2.y, q1.z/q2.z, q1.w/q2.w }; + + return result; +} + +// Calculate linear interpolation between two quaternions +RMAPI Quaternion QuaternionLerp(Quaternion q1, Quaternion q2, float amount) +{ + Quaternion result = { 0 }; + + result.x = q1.x + amount*(q2.x - q1.x); + result.y = q1.y + amount*(q2.y - q1.y); + result.z = q1.z + amount*(q2.z - q1.z); + result.w = q1.w + amount*(q2.w - q1.w); + + return result; +} + +// Calculate slerp-optimized interpolation between two quaternions +RMAPI Quaternion QuaternionNlerp(Quaternion q1, Quaternion q2, float amount) +{ + Quaternion result = { 0 }; + + // QuaternionLerp(q1, q2, amount) + result.x = q1.x + amount*(q2.x - q1.x); + result.y = q1.y + amount*(q2.y - q1.y); + result.z = q1.z + amount*(q2.z - q1.z); + result.w = q1.w + amount*(q2.w - q1.w); + + // QuaternionNormalize(q); + Quaternion q = result; + float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + if (length == 0.0f) length = 1.0f; + float ilength = 1.0f/length; + + result.x = q.x*ilength; + result.y = q.y*ilength; + result.z = q.z*ilength; + result.w = q.w*ilength; + + return result; +} + +// Calculates spherical linear interpolation between two quaternions +RMAPI Quaternion QuaternionSlerp(Quaternion q1, Quaternion q2, float amount) +{ + Quaternion result = { 0 }; + +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + float cosHalfTheta = q1.x*q2.x + q1.y*q2.y + q1.z*q2.z + q1.w*q2.w; + + if (cosHalfTheta < 0) + { + q2.x = -q2.x; q2.y = -q2.y; q2.z = -q2.z; q2.w = -q2.w; + cosHalfTheta = -cosHalfTheta; + } + + if (fabsf(cosHalfTheta) >= 1.0f) result = q1; + else if (cosHalfTheta > 0.95f) result = QuaternionNlerp(q1, q2, amount); + else + { + float halfTheta = acosf(cosHalfTheta); + float sinHalfTheta = sqrtf(1.0f - cosHalfTheta*cosHalfTheta); + + if (fabsf(sinHalfTheta) < EPSILON) + { + result.x = (q1.x*0.5f + q2.x*0.5f); + result.y = (q1.y*0.5f + q2.y*0.5f); + result.z = (q1.z*0.5f + q2.z*0.5f); + result.w = (q1.w*0.5f + q2.w*0.5f); + } + else + { + float ratioA = sinf((1 - amount)*halfTheta)/sinHalfTheta; + float ratioB = sinf(amount*halfTheta)/sinHalfTheta; + + result.x = (q1.x*ratioA + q2.x*ratioB); + result.y = (q1.y*ratioA + q2.y*ratioB); + result.z = (q1.z*ratioA + q2.z*ratioB); + result.w = (q1.w*ratioA + q2.w*ratioB); + } + } + + return result; +} + +// Calculate quaternion cubic spline interpolation using Cubic Hermite Spline algorithm +// as described in the GLTF 2.0 specification: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#interpolation-cubic +RMAPI Quaternion QuaternionCubicHermiteSpline(Quaternion q1, Quaternion outTangent1, Quaternion q2, Quaternion inTangent2, float t) +{ + float t2 = t*t; + float t3 = t2*t; + float h00 = 2*t3 - 3*t2 + 1; + float h10 = t3 - 2*t2 + t; + float h01 = -2*t3 + 3*t2; + float h11 = t3 - t2; + + Quaternion p0 = QuaternionScale(q1, h00); + Quaternion m0 = QuaternionScale(outTangent1, h10); + Quaternion p1 = QuaternionScale(q2, h01); + Quaternion m1 = QuaternionScale(inTangent2, h11); + + Quaternion result = { 0 }; + + result = QuaternionAdd(p0, m0); + result = QuaternionAdd(result, p1); + result = QuaternionAdd(result, m1); + result = QuaternionNormalize(result); + + return result; +} + +// Calculate quaternion based on the rotation from one vector to another +RMAPI Quaternion QuaternionFromVector3ToVector3(Vector3 from, Vector3 to) +{ + Quaternion result = { 0 }; + + float cos2Theta = (from.x*to.x + from.y*to.y + from.z*to.z); // Vector3DotProduct(from, to) + Vector3 cross = { from.y*to.z - from.z*to.y, from.z*to.x - from.x*to.z, from.x*to.y - from.y*to.x }; // Vector3CrossProduct(from, to) + + result.x = cross.x; + result.y = cross.y; + result.z = cross.z; + result.w = 1.0f + cos2Theta; + + // QuaternionNormalize(q); + // NOTE: Normalize to essentially nlerp the original and identity to 0.5 + Quaternion q = result; + float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + if (length == 0.0f) length = 1.0f; + float ilength = 1.0f/length; + + result.x = q.x*ilength; + result.y = q.y*ilength; + result.z = q.z*ilength; + result.w = q.w*ilength; + + return result; +} + +// Get a quaternion for a given rotation matrix +RMAPI Quaternion QuaternionFromMatrix(Matrix mat) +{ + Quaternion result = { 0 }; + + float fourWSquaredMinus1 = mat.m0 + mat.m5 + mat.m10; + float fourXSquaredMinus1 = mat.m0 - mat.m5 - mat.m10; + float fourYSquaredMinus1 = mat.m5 - mat.m0 - mat.m10; + float fourZSquaredMinus1 = mat.m10 - mat.m0 - mat.m5; + + int biggestIndex = 0; + float fourBiggestSquaredMinus1 = fourWSquaredMinus1; + if (fourXSquaredMinus1 > fourBiggestSquaredMinus1) + { + fourBiggestSquaredMinus1 = fourXSquaredMinus1; + biggestIndex = 1; + } + + if (fourYSquaredMinus1 > fourBiggestSquaredMinus1) + { + fourBiggestSquaredMinus1 = fourYSquaredMinus1; + biggestIndex = 2; + } + + if (fourZSquaredMinus1 > fourBiggestSquaredMinus1) + { + fourBiggestSquaredMinus1 = fourZSquaredMinus1; + biggestIndex = 3; + } + + float biggestVal = sqrtf(fourBiggestSquaredMinus1 + 1.0f)*0.5f; + float mult = 0.25f/biggestVal; + + switch (biggestIndex) + { + case 0: + result.w = biggestVal; + result.x = (mat.m6 - mat.m9)*mult; + result.y = (mat.m8 - mat.m2)*mult; + result.z = (mat.m1 - mat.m4)*mult; + break; + case 1: + result.x = biggestVal; + result.w = (mat.m6 - mat.m9)*mult; + result.y = (mat.m1 + mat.m4)*mult; + result.z = (mat.m8 + mat.m2)*mult; + break; + case 2: + result.y = biggestVal; + result.w = (mat.m8 - mat.m2)*mult; + result.x = (mat.m1 + mat.m4)*mult; + result.z = (mat.m6 + mat.m9)*mult; + break; + case 3: + result.z = biggestVal; + result.w = (mat.m1 - mat.m4)*mult; + result.x = (mat.m8 + mat.m2)*mult; + result.y = (mat.m6 + mat.m9)*mult; + break; + } + + return result; +} + +// Get a matrix for a given quaternion +RMAPI Matrix QuaternionToMatrix(Quaternion q) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() + + float a2 = q.x*q.x; + float b2 = q.y*q.y; + float c2 = q.z*q.z; + float ac = q.x*q.z; + float ab = q.x*q.y; + float bc = q.y*q.z; + float ad = q.w*q.x; + float bd = q.w*q.y; + float cd = q.w*q.z; + + result.m0 = 1 - 2*(b2 + c2); + result.m1 = 2*(ab + cd); + result.m2 = 2*(ac - bd); + + result.m4 = 2*(ab - cd); + result.m5 = 1 - 2*(a2 + c2); + result.m6 = 2*(bc + ad); + + result.m8 = 2*(ac + bd); + result.m9 = 2*(bc - ad); + result.m10 = 1 - 2*(a2 + b2); + + return result; +} + +// Get rotation quaternion for an angle and axis +// NOTE: Angle must be provided in radians +RMAPI Quaternion QuaternionFromAxisAngle(Vector3 axis, float angle) +{ + Quaternion result = { 0.0f, 0.0f, 0.0f, 1.0f }; + + float axisLength = sqrtf(axis.x*axis.x + axis.y*axis.y + axis.z*axis.z); + + if (axisLength != 0.0f) + { + angle *= 0.5f; + + float length = 0.0f; + float ilength = 0.0f; + + // Vector3Normalize(axis) + length = axisLength; + if (length == 0.0f) length = 1.0f; + ilength = 1.0f/length; + axis.x *= ilength; + axis.y *= ilength; + axis.z *= ilength; + + float sinres = sinf(angle); + float cosres = cosf(angle); + + result.x = axis.x*sinres; + result.y = axis.y*sinres; + result.z = axis.z*sinres; + result.w = cosres; + + // QuaternionNormalize(q); + Quaternion q = result; + length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + if (length == 0.0f) length = 1.0f; + ilength = 1.0f/length; + result.x = q.x*ilength; + result.y = q.y*ilength; + result.z = q.z*ilength; + result.w = q.w*ilength; + } + + return result; +} + +// Get the rotation angle and axis for a given quaternion +RMAPI void QuaternionToAxisAngle(Quaternion q, Vector3 *outAxis, float *outAngle) +{ + if (fabsf(q.w) > 1.0f) + { + // QuaternionNormalize(q); + float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + if (length == 0.0f) length = 1.0f; + float ilength = 1.0f/length; + + q.x = q.x*ilength; + q.y = q.y*ilength; + q.z = q.z*ilength; + q.w = q.w*ilength; + } + + Vector3 resAxis = { 0.0f, 0.0f, 0.0f }; + float resAngle = 2.0f*acosf(q.w); + float den = sqrtf(1.0f - q.w*q.w); + + if (den > EPSILON) + { + resAxis.x = q.x/den; + resAxis.y = q.y/den; + resAxis.z = q.z/den; + } + else + { + // This occurs when the angle is zero. + // Not a problem: just set an arbitrary normalized axis. + resAxis.x = 1.0f; + } + + *outAxis = resAxis; + *outAngle = resAngle; +} + +// Get the quaternion equivalent to Euler angles +// NOTE: Rotation order is ZYX +RMAPI Quaternion QuaternionFromEuler(float pitch, float yaw, float roll) +{ + Quaternion result = { 0 }; + + float x0 = cosf(pitch*0.5f); + float x1 = sinf(pitch*0.5f); + float y0 = cosf(yaw*0.5f); + float y1 = sinf(yaw*0.5f); + float z0 = cosf(roll*0.5f); + float z1 = sinf(roll*0.5f); + + result.x = x1*y0*z0 - x0*y1*z1; + result.y = x0*y1*z0 + x1*y0*z1; + result.z = x0*y0*z1 - x1*y1*z0; + result.w = x0*y0*z0 + x1*y1*z1; + + return result; +} + +// Get the Euler angles equivalent to quaternion (roll, pitch, yaw) +// NOTE: Angles are returned in a Vector3 struct in radians +RMAPI Vector3 QuaternionToEuler(Quaternion q) +{ + Vector3 result = { 0 }; + + // Roll (x-axis rotation) + float x0 = 2.0f*(q.w*q.x + q.y*q.z); + float x1 = 1.0f - 2.0f*(q.x*q.x + q.y*q.y); + result.x = atan2f(x0, x1); + + // Pitch (y-axis rotation) + float y0 = 2.0f*(q.w*q.y - q.z*q.x); + y0 = y0 > 1.0f ? 1.0f : y0; + y0 = y0 < -1.0f ? -1.0f : y0; + result.y = asinf(y0); + + // Yaw (z-axis rotation) + float z0 = 2.0f*(q.w*q.z + q.x*q.y); + float z1 = 1.0f - 2.0f*(q.y*q.y + q.z*q.z); + result.z = atan2f(z0, z1); + + return result; +} + +// Transform a quaternion given a transformation matrix +RMAPI Quaternion QuaternionTransform(Quaternion q, Matrix mat) +{ + Quaternion result = { 0 }; + + result.x = mat.m0*q.x + mat.m4*q.y + mat.m8*q.z + mat.m12*q.w; + result.y = mat.m1*q.x + mat.m5*q.y + mat.m9*q.z + mat.m13*q.w; + result.z = mat.m2*q.x + mat.m6*q.y + mat.m10*q.z + mat.m14*q.w; + result.w = mat.m3*q.x + mat.m7*q.y + mat.m11*q.z + mat.m15*q.w; + + return result; +} + +// Check whether two given quaternions are almost equal +RMAPI int QuaternionEquals(Quaternion p, Quaternion q) +{ +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + int result = (((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && + ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && + ((fabsf(p.z - q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))) && + ((fabsf(p.w - q.w)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.w), fabsf(q.w)))))) || + (((fabsf(p.x + q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && + ((fabsf(p.y + q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && + ((fabsf(p.z + q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))) && + ((fabsf(p.w + q.w)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.w), fabsf(q.w)))))); + + return result; +} + +// Decompose a transformation matrix into its rotational, translational and scaling components +RMAPI void MatrixDecompose(Matrix mat, Vector3 *translation, Quaternion *rotation, Vector3 *scale) +{ + // Extract translation. + translation->x = mat.m12; + translation->y = mat.m13; + translation->z = mat.m14; + + // Extract upper-left for determinant computation + const float a = mat.m0; + const float b = mat.m4; + const float c = mat.m8; + const float d = mat.m1; + const float e = mat.m5; + const float f = mat.m9; + const float g = mat.m2; + const float h = mat.m6; + const float i = mat.m10; + const float A = e*i - f*h; + const float B = f*g - d*i; + const float C = d*h - e*g; + + // Extract scale + const float det = a*A + b*B + c*C; + Vector3 abc = { a, b, c }; + Vector3 def = { d, e, f }; + Vector3 ghi = { g, h, i }; + + float scalex = Vector3Length(abc); + float scaley = Vector3Length(def); + float scalez = Vector3Length(ghi); + Vector3 s = { scalex, scaley, scalez }; + + if (det < 0) s = Vector3Negate(s); + + *scale = s; + + // Remove scale from the matrix if it is not close to zero + Matrix clone = mat; + if (!FloatEquals(det, 0)) + { + clone.m0 /= s.x; + clone.m4 /= s.x; + clone.m8 /= s.x; + clone.m1 /= s.y; + clone.m5 /= s.y; + clone.m9 /= s.y; + clone.m2 /= s.z; + clone.m6 /= s.z; + clone.m10 /= s.z; + + // Extract rotation + *rotation = QuaternionFromMatrix(clone); + } + else + { + // Set to identity if close to zero + *rotation = QuaternionIdentity(); + } +} + +#if defined(__cplusplus) && !defined(RAYMATH_DISABLE_CPP_OPERATORS) + +// Optional C++ math operators +//------------------------------------------------------------------------------- + +// Vector2 operators +static constexpr Vector2 Vector2Zeros = { 0, 0 }; +static constexpr Vector2 Vector2Ones = { 1, 1 }; +static constexpr Vector2 Vector2UnitX = { 1, 0 }; +static constexpr Vector2 Vector2UnitY = { 0, 1 }; + +inline Vector2 operator + (const Vector2& lhs, const Vector2& rhs) +{ + return Vector2Add(lhs, rhs); +} + +inline const Vector2& operator += (Vector2& lhs, const Vector2& rhs) +{ + lhs = Vector2Add(lhs, rhs); + return lhs; +} + +inline Vector2 operator - (const Vector2& lhs, const Vector2& rhs) +{ + return Vector2Subtract(lhs, rhs); +} + +inline const Vector2& operator -= (Vector2& lhs, const Vector2& rhs) +{ + lhs = Vector2Subtract(lhs, rhs); + return lhs; +} + +inline Vector2 operator * (const Vector2& lhs, const float& rhs) +{ + return Vector2Scale(lhs, rhs); +} + +inline const Vector2& operator *= (Vector2& lhs, const float& rhs) +{ + lhs = Vector2Scale(lhs, rhs); + return lhs; +} + +inline Vector2 operator * (const Vector2& lhs, const Vector2& rhs) +{ + return Vector2Multiply(lhs, rhs); +} + +inline const Vector2& operator *= (Vector2& lhs, const Vector2& rhs) +{ + lhs = Vector2Multiply(lhs, rhs); + return lhs; +} + +inline Vector2 operator * (const Vector2& lhs, const Matrix& rhs) +{ + return Vector2Transform(lhs, rhs); +} + +inline const Vector2& operator -= (Vector2& lhs, const Matrix& rhs) +{ + lhs = Vector2Transform(lhs, rhs); + return lhs; +} + +inline Vector2 operator / (const Vector2& lhs, const float& rhs) +{ + return Vector2Scale(lhs, 1.0f / rhs); +} + +inline const Vector2& operator /= (Vector2& lhs, const float& rhs) +{ + lhs = Vector2Scale(lhs, rhs); + return lhs; +} + +inline Vector2 operator / (const Vector2& lhs, const Vector2& rhs) +{ + return Vector2Divide(lhs, rhs); +} + +inline const Vector2& operator /= (Vector2& lhs, const Vector2& rhs) +{ + lhs = Vector2Divide(lhs, rhs); + return lhs; +} + +inline bool operator == (const Vector2& lhs, const Vector2& rhs) +{ + return FloatEquals(lhs.x, rhs.x) && FloatEquals(lhs.y, rhs.y); +} + +inline bool operator != (const Vector2& lhs, const Vector2& rhs) +{ + return !FloatEquals(lhs.x, rhs.x) || !FloatEquals(lhs.y, rhs.y); +} + +// Vector3 operators +static constexpr Vector3 Vector3Zeros = { 0, 0, 0 }; +static constexpr Vector3 Vector3Ones = { 1, 1, 1 }; +static constexpr Vector3 Vector3UnitX = { 1, 0, 0 }; +static constexpr Vector3 Vector3UnitY = { 0, 1, 0 }; +static constexpr Vector3 Vector3UnitZ = { 0, 0, 1 }; + +inline Vector3 operator + (const Vector3& lhs, const Vector3& rhs) +{ + return Vector3Add(lhs, rhs); +} + +inline const Vector3& operator += (Vector3& lhs, const Vector3& rhs) +{ + lhs = Vector3Add(lhs, rhs); + return lhs; +} + +inline Vector3 operator - (const Vector3& lhs, const Vector3& rhs) +{ + return Vector3Subtract(lhs, rhs); +} + +inline const Vector3& operator -= (Vector3& lhs, const Vector3& rhs) +{ + lhs = Vector3Subtract(lhs, rhs); + return lhs; +} + +inline Vector3 operator * (const Vector3& lhs, const float& rhs) +{ + return Vector3Scale(lhs, rhs); +} + +inline const Vector3& operator *= (Vector3& lhs, const float& rhs) +{ + lhs = Vector3Scale(lhs, rhs); + return lhs; +} + +inline Vector3 operator * (const Vector3& lhs, const Vector3& rhs) +{ + return Vector3Multiply(lhs, rhs); +} + +inline const Vector3& operator *= (Vector3& lhs, const Vector3& rhs) +{ + lhs = Vector3Multiply(lhs, rhs); + return lhs; +} + +inline Vector3 operator * (const Vector3& lhs, const Matrix& rhs) +{ + return Vector3Transform(lhs, rhs); +} + +inline const Vector3& operator -= (Vector3& lhs, const Matrix& rhs) +{ + lhs = Vector3Transform(lhs, rhs); + return lhs; +} + +inline Vector3 operator / (const Vector3& lhs, const float& rhs) +{ + return Vector3Scale(lhs, 1.0f / rhs); +} + +inline const Vector3& operator /= (Vector3& lhs, const float& rhs) +{ + lhs = Vector3Scale(lhs, rhs); + return lhs; +} + +inline Vector3 operator / (const Vector3& lhs, const Vector3& rhs) +{ + return Vector3Divide(lhs, rhs); +} + +inline const Vector3& operator /= (Vector3& lhs, const Vector3& rhs) +{ + lhs = Vector3Divide(lhs, rhs); + return lhs; +} + +inline bool operator == (const Vector3& lhs, const Vector3& rhs) +{ + return FloatEquals(lhs.x, rhs.x) && FloatEquals(lhs.y, rhs.y) && FloatEquals(lhs.z, rhs.z); +} + +inline bool operator != (const Vector3& lhs, const Vector3& rhs) +{ + return !FloatEquals(lhs.x, rhs.x) || !FloatEquals(lhs.y, rhs.y) || !FloatEquals(lhs.z, rhs.z); +} + +// Vector4 operators +static constexpr Vector4 Vector4Zeros = { 0, 0, 0, 0 }; +static constexpr Vector4 Vector4Ones = { 1, 1, 1, 1 }; +static constexpr Vector4 Vector4UnitX = { 1, 0, 0, 0 }; +static constexpr Vector4 Vector4UnitY = { 0, 1, 0, 0 }; +static constexpr Vector4 Vector4UnitZ = { 0, 0, 1, 0 }; +static constexpr Vector4 Vector4UnitW = { 0, 0, 0, 1 }; + +inline Vector4 operator + (const Vector4& lhs, const Vector4& rhs) +{ + return Vector4Add(lhs, rhs); +} + +inline const Vector4& operator += (Vector4& lhs, const Vector4& rhs) +{ + lhs = Vector4Add(lhs, rhs); + return lhs; +} + +inline Vector4 operator - (const Vector4& lhs, const Vector4& rhs) +{ + return Vector4Subtract(lhs, rhs); +} + +inline const Vector4& operator -= (Vector4& lhs, const Vector4& rhs) +{ + lhs = Vector4Subtract(lhs, rhs); + return lhs; +} + +inline Vector4 operator * (const Vector4& lhs, const float& rhs) +{ + return Vector4Scale(lhs, rhs); +} + +inline const Vector4& operator *= (Vector4& lhs, const float& rhs) +{ + lhs = Vector4Scale(lhs, rhs); + return lhs; +} + +inline Vector4 operator * (const Vector4& lhs, const Vector4& rhs) +{ + return Vector4Multiply(lhs, rhs); +} + +inline const Vector4& operator *= (Vector4& lhs, const Vector4& rhs) +{ + lhs = Vector4Multiply(lhs, rhs); + return lhs; +} + +inline Vector4 operator / (const Vector4& lhs, const float& rhs) +{ + return Vector4Scale(lhs, 1.0f / rhs); +} + +inline const Vector4& operator /= (Vector4& lhs, const float& rhs) +{ + lhs = Vector4Scale(lhs, rhs); + return lhs; +} + +inline Vector4 operator / (const Vector4& lhs, const Vector4& rhs) +{ + return Vector4Divide(lhs, rhs); +} + +inline const Vector4& operator /= (Vector4& lhs, const Vector4& rhs) +{ + lhs = Vector4Divide(lhs, rhs); + return lhs; +} + +inline bool operator == (const Vector4& lhs, const Vector4& rhs) +{ + return FloatEquals(lhs.x, rhs.x) && FloatEquals(lhs.y, rhs.y) && FloatEquals(lhs.z, rhs.z) && FloatEquals(lhs.w, rhs.w); +} + +inline bool operator != (const Vector4& lhs, const Vector4& rhs) +{ + return !FloatEquals(lhs.x, rhs.x) || !FloatEquals(lhs.y, rhs.y) || !FloatEquals(lhs.z, rhs.z) || !FloatEquals(lhs.w, rhs.w); +} + +// Quaternion operators +static constexpr Quaternion QuaternionZeros = { 0, 0, 0, 0 }; +static constexpr Quaternion QuaternionOnes = { 1, 1, 1, 1 }; +static constexpr Quaternion QuaternionUnitX = { 0, 0, 0, 1 }; + +inline Quaternion operator + (const Quaternion& lhs, const float& rhs) +{ + return QuaternionAddValue(lhs, rhs); +} + +inline const Quaternion& operator += (Quaternion& lhs, const float& rhs) +{ + lhs = QuaternionAddValue(lhs, rhs); + return lhs; +} + +inline Quaternion operator - (const Quaternion& lhs, const float& rhs) +{ + return QuaternionSubtractValue(lhs, rhs); +} + +inline const Quaternion& operator -= (Quaternion& lhs, const float& rhs) +{ + lhs = QuaternionSubtractValue(lhs, rhs); + return lhs; +} + +inline Quaternion operator * (const Quaternion& lhs, const Matrix& rhs) +{ + return QuaternionTransform(lhs, rhs); +} + +inline const Quaternion& operator *= (Quaternion& lhs, const Matrix& rhs) +{ + lhs = QuaternionTransform(lhs, rhs); + return lhs; +} + +// Matrix operators +inline Matrix operator + (const Matrix& lhs, const Matrix& rhs) +{ + return MatrixAdd(lhs, rhs); +} + +inline const Matrix& operator += (Matrix& lhs, const Matrix& rhs) +{ + lhs = MatrixAdd(lhs, rhs); + return lhs; +} + +inline Matrix operator - (const Matrix& lhs, const Matrix& rhs) +{ + return MatrixSubtract(lhs, rhs); +} + +inline const Matrix& operator -= (Matrix& lhs, const Matrix& rhs) +{ + lhs = MatrixSubtract(lhs, rhs); + return lhs; +} + +inline Matrix operator * (const Matrix& lhs, const Matrix& rhs) +{ + return MatrixMultiply(lhs, rhs); +} + +inline const Matrix& operator *= (Matrix& lhs, const Matrix& rhs) +{ + lhs = MatrixMultiply(lhs, rhs); + return lhs; +} +//------------------------------------------------------------------------------- +#endif // C++ operators + +#endif // RAYMATH_H diff --git a/lib/raylib_win/include/rlgl.h b/lib/raylib_win/include/rlgl.h index de7055c..756656e 100644 --- a/lib/raylib_win/include/rlgl.h +++ b/lib/raylib_win/include/rlgl.h @@ -1,4859 +1,5262 @@ -/********************************************************************************************** -* -* rlgl v4.5 - A multi-OpenGL abstraction layer with an immediate-mode style API -* -* DESCRIPTION: -* An abstraction layer for multiple OpenGL versions (1.1, 2.1, 3.3 Core, 4.3 Core, ES 2.0) -* that provides a pseudo-OpenGL 1.1 immediate-mode style API (rlVertex, rlTranslate, rlRotate...) -* -* ADDITIONAL NOTES: -* When choosing an OpenGL backend different than OpenGL 1.1, some internal buffer are -* initialized on rlglInit() to accumulate vertex data. -* -* When an internal state change is required all the stored vertex data is renderer in batch, -* additionally, rlDrawRenderBatchActive() could be called to force flushing of the batch. -* -* Some resources are also loaded for convenience, here the complete list: -* - Default batch (RLGL.defaultBatch): RenderBatch system to accumulate vertex data -* - Default texture (RLGL.defaultTextureId): 1x1 white pixel R8G8B8A8 -* - Default shader (RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs) -* -* Internal buffer (and resources) must be manually unloaded calling rlglClose(). -* -* CONFIGURATION: -* #define GRAPHICS_API_OPENGL_11 -* #define GRAPHICS_API_OPENGL_21 -* #define GRAPHICS_API_OPENGL_33 -* #define GRAPHICS_API_OPENGL_43 -* #define GRAPHICS_API_OPENGL_ES2 -* #define GRAPHICS_API_OPENGL_ES3 -* Use selected OpenGL graphics backend, should be supported by platform -* Those preprocessor defines are only used on rlgl module, if OpenGL version is -* required by any other module, use rlGetVersion() to check it -* -* #define RLGL_IMPLEMENTATION -* Generates the implementation of the library into the included file. -* If not defined, the library is in header only mode and can be included in other headers -* or source files without problems. But only ONE file should hold the implementation. -* -* #define RLGL_RENDER_TEXTURES_HINT -* Enable framebuffer objects (fbo) support (enabled by default) -* Some GPUs could not support them despite the OpenGL version -* -* #define RLGL_SHOW_GL_DETAILS_INFO -* Show OpenGL extensions and capabilities detailed logs on init -* -* #define RLGL_ENABLE_OPENGL_DEBUG_CONTEXT -* Enable debug context (only available on OpenGL 4.3) -* -* rlgl capabilities could be customized just defining some internal -* values before library inclusion (default values listed): -* -* #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 8192 // Default internal render batch elements limits -* #define RL_DEFAULT_BATCH_BUFFERS 1 // Default number of batch buffers (multi-buffering) -* #define RL_DEFAULT_BATCH_DRAWCALLS 256 // Default number of batch draw calls (by state changes: mode, texture) -* #define RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS 4 // Maximum number of textures units that can be activated on batch drawing (SetShaderValueTexture()) -* -* #define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of internal Matrix stack -* #define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported -* #define RL_CULL_DISTANCE_NEAR 0.01 // Default projection matrix near cull distance -* #define RL_CULL_DISTANCE_FAR 1000.0 // Default projection matrix far cull distance -* -* When loading a shader, the following vertex attributes and uniform -* location names are tried to be set automatically: -* -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: 0 -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: 1 -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: 2 -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: 3 -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: 4 -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: 5 -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL "matModel" // model matrix -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView)) -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color) -* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0) -* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 "texture1" // texture1 (texture slot active 1) -* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 "texture2" // texture2 (texture slot active 2) -* -* DEPENDENCIES: -* - OpenGL libraries (depending on platform and OpenGL version selected) -* - GLAD OpenGL extensions loading library (only for OpenGL 3.3 Core, 4.3 Core) -* -* -* LICENSE: zlib/libpng -* -* Copyright (c) 2014-2023 Ramon Santamaria (@raysan5) -* -* This software is provided "as-is", without any express or implied warranty. In no event -* will the authors be held liable for any damages arising from the use of this software. -* -* Permission is granted to anyone to use this software for any purpose, including commercial -* applications, and to alter it and redistribute it freely, subject to the following restrictions: -* -* 1. The origin of this software must not be misrepresented; you must not claim that you -* wrote the original software. If you use this software in a product, an acknowledgment -* in the product documentation would be appreciated but is not required. -* -* 2. Altered source versions must be plainly marked as such, and must not be misrepresented -* as being the original software. -* -* 3. This notice may not be removed or altered from any source distribution. -* -**********************************************************************************************/ - -#ifndef RLGL_H -#define RLGL_H - -#define RLGL_VERSION "4.5" - -// Function specifiers in case library is build/used as a shared library (Windows) -// NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll -#if defined(_WIN32) - #if defined(BUILD_LIBTYPE_SHARED) - #define RLAPI __declspec(dllexport) // We are building the library as a Win32 shared library (.dll) - #elif defined(USE_LIBTYPE_SHARED) - #define RLAPI __declspec(dllimport) // We are using the library as a Win32 shared library (.dll) - #endif -#endif - -// Function specifiers definition -#ifndef RLAPI - #define RLAPI // Functions defined as 'extern' by default (implicit specifiers) -#endif - -// Support TRACELOG macros -#ifndef TRACELOG - #define TRACELOG(level, ...) (void)0 - #define TRACELOGD(...) (void)0 -#endif - -// Allow custom memory allocators -#ifndef RL_MALLOC - #define RL_MALLOC(sz) malloc(sz) -#endif -#ifndef RL_CALLOC - #define RL_CALLOC(n,sz) calloc(n,sz) -#endif -#ifndef RL_REALLOC - #define RL_REALLOC(n,sz) realloc(n,sz) -#endif -#ifndef RL_FREE - #define RL_FREE(p) free(p) -#endif - -// Security check in case no GRAPHICS_API_OPENGL_* defined -#if !defined(GRAPHICS_API_OPENGL_11) && \ - !defined(GRAPHICS_API_OPENGL_21) && \ - !defined(GRAPHICS_API_OPENGL_33) && \ - !defined(GRAPHICS_API_OPENGL_43) && \ - !defined(GRAPHICS_API_OPENGL_ES2) && \ - !defined(GRAPHICS_API_OPENGL_ES3) - #define GRAPHICS_API_OPENGL_33 -#endif - -// Security check in case multiple GRAPHICS_API_OPENGL_* defined -#if defined(GRAPHICS_API_OPENGL_11) - #if defined(GRAPHICS_API_OPENGL_21) - #undef GRAPHICS_API_OPENGL_21 - #endif - #if defined(GRAPHICS_API_OPENGL_33) - #undef GRAPHICS_API_OPENGL_33 - #endif - #if defined(GRAPHICS_API_OPENGL_43) - #undef GRAPHICS_API_OPENGL_43 - #endif - #if defined(GRAPHICS_API_OPENGL_ES2) - #undef GRAPHICS_API_OPENGL_ES2 - #endif -#endif - -// OpenGL 2.1 uses most of OpenGL 3.3 Core functionality -// WARNING: Specific parts are checked with #if defines -#if defined(GRAPHICS_API_OPENGL_21) - #define GRAPHICS_API_OPENGL_33 -#endif - -// OpenGL 4.3 uses OpenGL 3.3 Core functionality -#if defined(GRAPHICS_API_OPENGL_43) - #define GRAPHICS_API_OPENGL_33 -#endif - -// OpenGL ES 3.0 uses OpenGL ES 2.0 functionality (and more) -#if defined(GRAPHICS_API_OPENGL_ES3) - #define GRAPHICS_API_OPENGL_ES2 -#endif - -// Support framebuffer objects by default -// NOTE: Some driver implementation do not support it, despite they should -#define RLGL_RENDER_TEXTURES_HINT - -//---------------------------------------------------------------------------------- -// Defines and Macros -//---------------------------------------------------------------------------------- - -// Default internal render batch elements limits -#ifndef RL_DEFAULT_BATCH_BUFFER_ELEMENTS - #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) - // This is the maximum amount of elements (quads) per batch - // NOTE: Be careful with text, every letter maps to a quad - #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 8192 - #endif - #if defined(GRAPHICS_API_OPENGL_ES2) - // We reduce memory sizes for embedded systems (RPI and HTML5) - // NOTE: On HTML5 (emscripten) this is allocated on heap, - // by default it's only 16MB!...just take care... - #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 2048 - #endif -#endif -#ifndef RL_DEFAULT_BATCH_BUFFERS - #define RL_DEFAULT_BATCH_BUFFERS 1 // Default number of batch buffers (multi-buffering) -#endif -#ifndef RL_DEFAULT_BATCH_DRAWCALLS - #define RL_DEFAULT_BATCH_DRAWCALLS 256 // Default number of batch draw calls (by state changes: mode, texture) -#endif -#ifndef RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS - #define RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS 4 // Maximum number of textures units that can be activated on batch drawing (SetShaderValueTexture()) -#endif - -// Internal Matrix stack -#ifndef RL_MAX_MATRIX_STACK_SIZE - #define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of Matrix stack -#endif - -// Shader limits -#ifndef RL_MAX_SHADER_LOCATIONS - #define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported -#endif - -// Projection matrix culling -#ifndef RL_CULL_DISTANCE_NEAR - #define RL_CULL_DISTANCE_NEAR 0.01 // Default near cull distance -#endif -#ifndef RL_CULL_DISTANCE_FAR - #define RL_CULL_DISTANCE_FAR 1000.0 // Default far cull distance -#endif - -// Texture parameters (equivalent to OpenGL defines) -#define RL_TEXTURE_WRAP_S 0x2802 // GL_TEXTURE_WRAP_S -#define RL_TEXTURE_WRAP_T 0x2803 // GL_TEXTURE_WRAP_T -#define RL_TEXTURE_MAG_FILTER 0x2800 // GL_TEXTURE_MAG_FILTER -#define RL_TEXTURE_MIN_FILTER 0x2801 // GL_TEXTURE_MIN_FILTER - -#define RL_TEXTURE_FILTER_NEAREST 0x2600 // GL_NEAREST -#define RL_TEXTURE_FILTER_LINEAR 0x2601 // GL_LINEAR -#define RL_TEXTURE_FILTER_MIP_NEAREST 0x2700 // GL_NEAREST_MIPMAP_NEAREST -#define RL_TEXTURE_FILTER_NEAREST_MIP_LINEAR 0x2702 // GL_NEAREST_MIPMAP_LINEAR -#define RL_TEXTURE_FILTER_LINEAR_MIP_NEAREST 0x2701 // GL_LINEAR_MIPMAP_NEAREST -#define RL_TEXTURE_FILTER_MIP_LINEAR 0x2703 // GL_LINEAR_MIPMAP_LINEAR -#define RL_TEXTURE_FILTER_ANISOTROPIC 0x3000 // Anisotropic filter (custom identifier) -#define RL_TEXTURE_MIPMAP_BIAS_RATIO 0x4000 // Texture mipmap bias, percentage ratio (custom identifier) - -#define RL_TEXTURE_WRAP_REPEAT 0x2901 // GL_REPEAT -#define RL_TEXTURE_WRAP_CLAMP 0x812F // GL_CLAMP_TO_EDGE -#define RL_TEXTURE_WRAP_MIRROR_REPEAT 0x8370 // GL_MIRRORED_REPEAT -#define RL_TEXTURE_WRAP_MIRROR_CLAMP 0x8742 // GL_MIRROR_CLAMP_EXT - -// Matrix modes (equivalent to OpenGL) -#define RL_MODELVIEW 0x1700 // GL_MODELVIEW -#define RL_PROJECTION 0x1701 // GL_PROJECTION -#define RL_TEXTURE 0x1702 // GL_TEXTURE - -// Primitive assembly draw modes -#define RL_LINES 0x0001 // GL_LINES -#define RL_TRIANGLES 0x0004 // GL_TRIANGLES -#define RL_QUADS 0x0007 // GL_QUADS - -// GL equivalent data types -#define RL_UNSIGNED_BYTE 0x1401 // GL_UNSIGNED_BYTE -#define RL_FLOAT 0x1406 // GL_FLOAT - -// GL buffer usage hint -#define RL_STREAM_DRAW 0x88E0 // GL_STREAM_DRAW -#define RL_STREAM_READ 0x88E1 // GL_STREAM_READ -#define RL_STREAM_COPY 0x88E2 // GL_STREAM_COPY -#define RL_STATIC_DRAW 0x88E4 // GL_STATIC_DRAW -#define RL_STATIC_READ 0x88E5 // GL_STATIC_READ -#define RL_STATIC_COPY 0x88E6 // GL_STATIC_COPY -#define RL_DYNAMIC_DRAW 0x88E8 // GL_DYNAMIC_DRAW -#define RL_DYNAMIC_READ 0x88E9 // GL_DYNAMIC_READ -#define RL_DYNAMIC_COPY 0x88EA // GL_DYNAMIC_COPY - -// GL Shader type -#define RL_FRAGMENT_SHADER 0x8B30 // GL_FRAGMENT_SHADER -#define RL_VERTEX_SHADER 0x8B31 // GL_VERTEX_SHADER -#define RL_COMPUTE_SHADER 0x91B9 // GL_COMPUTE_SHADER - -// GL blending factors -#define RL_ZERO 0 // GL_ZERO -#define RL_ONE 1 // GL_ONE -#define RL_SRC_COLOR 0x0300 // GL_SRC_COLOR -#define RL_ONE_MINUS_SRC_COLOR 0x0301 // GL_ONE_MINUS_SRC_COLOR -#define RL_SRC_ALPHA 0x0302 // GL_SRC_ALPHA -#define RL_ONE_MINUS_SRC_ALPHA 0x0303 // GL_ONE_MINUS_SRC_ALPHA -#define RL_DST_ALPHA 0x0304 // GL_DST_ALPHA -#define RL_ONE_MINUS_DST_ALPHA 0x0305 // GL_ONE_MINUS_DST_ALPHA -#define RL_DST_COLOR 0x0306 // GL_DST_COLOR -#define RL_ONE_MINUS_DST_COLOR 0x0307 // GL_ONE_MINUS_DST_COLOR -#define RL_SRC_ALPHA_SATURATE 0x0308 // GL_SRC_ALPHA_SATURATE -#define RL_CONSTANT_COLOR 0x8001 // GL_CONSTANT_COLOR -#define RL_ONE_MINUS_CONSTANT_COLOR 0x8002 // GL_ONE_MINUS_CONSTANT_COLOR -#define RL_CONSTANT_ALPHA 0x8003 // GL_CONSTANT_ALPHA -#define RL_ONE_MINUS_CONSTANT_ALPHA 0x8004 // GL_ONE_MINUS_CONSTANT_ALPHA - -// GL blending functions/equations -#define RL_FUNC_ADD 0x8006 // GL_FUNC_ADD -#define RL_MIN 0x8007 // GL_MIN -#define RL_MAX 0x8008 // GL_MAX -#define RL_FUNC_SUBTRACT 0x800A // GL_FUNC_SUBTRACT -#define RL_FUNC_REVERSE_SUBTRACT 0x800B // GL_FUNC_REVERSE_SUBTRACT -#define RL_BLEND_EQUATION 0x8009 // GL_BLEND_EQUATION -#define RL_BLEND_EQUATION_RGB 0x8009 // GL_BLEND_EQUATION_RGB // (Same as BLEND_EQUATION) -#define RL_BLEND_EQUATION_ALPHA 0x883D // GL_BLEND_EQUATION_ALPHA -#define RL_BLEND_DST_RGB 0x80C8 // GL_BLEND_DST_RGB -#define RL_BLEND_SRC_RGB 0x80C9 // GL_BLEND_SRC_RGB -#define RL_BLEND_DST_ALPHA 0x80CA // GL_BLEND_DST_ALPHA -#define RL_BLEND_SRC_ALPHA 0x80CB // GL_BLEND_SRC_ALPHA -#define RL_BLEND_COLOR 0x8005 // GL_BLEND_COLOR - - -//---------------------------------------------------------------------------------- -// Types and Structures Definition -//---------------------------------------------------------------------------------- -#if (defined(__STDC__) && __STDC_VERSION__ >= 199901L) || (defined(_MSC_VER) && _MSC_VER >= 1800) - #include -#elif !defined(__cplusplus) && !defined(bool) && !defined(RL_BOOL_TYPE) - // Boolean type -typedef enum bool { false = 0, true = !false } bool; -#endif - -#if !defined(RL_MATRIX_TYPE) -// Matrix, 4x4 components, column major, OpenGL style, right handed -typedef struct Matrix { - float m0, m4, m8, m12; // Matrix first row (4 components) - float m1, m5, m9, m13; // Matrix second row (4 components) - float m2, m6, m10, m14; // Matrix third row (4 components) - float m3, m7, m11, m15; // Matrix fourth row (4 components) -} Matrix; -#define RL_MATRIX_TYPE -#endif - -// Dynamic vertex buffers (position + texcoords + colors + indices arrays) -typedef struct rlVertexBuffer { - int elementCount; // Number of elements in the buffer (QUADS) - - float *vertices; // Vertex position (XYZ - 3 components per vertex) (shader-location = 0) - float *texcoords; // Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1) - unsigned char *colors; // Vertex colors (RGBA - 4 components per vertex) (shader-location = 3) -#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) - unsigned int *indices; // Vertex indices (in case vertex data comes indexed) (6 indices per quad) -#endif -#if defined(GRAPHICS_API_OPENGL_ES2) - unsigned short *indices; // Vertex indices (in case vertex data comes indexed) (6 indices per quad) -#endif - unsigned int vaoId; // OpenGL Vertex Array Object id - unsigned int vboId[4]; // OpenGL Vertex Buffer Objects id (4 types of vertex data) -} rlVertexBuffer; - -// Draw call type -// NOTE: Only texture changes register a new draw, other state-change-related elements are not -// used at this moment (vaoId, shaderId, matrices), raylib just forces a batch draw call if any -// of those state-change happens (this is done in core module) -typedef struct rlDrawCall { - int mode; // Drawing mode: LINES, TRIANGLES, QUADS - int vertexCount; // Number of vertex of the draw - int vertexAlignment; // Number of vertex required for index alignment (LINES, TRIANGLES) - //unsigned int vaoId; // Vertex array id to be used on the draw -> Using RLGL.currentBatch->vertexBuffer.vaoId - //unsigned int shaderId; // Shader id to be used on the draw -> Using RLGL.currentShaderId - unsigned int textureId; // Texture id to be used on the draw -> Use to create new draw call if changes - - //Matrix projection; // Projection matrix for this draw -> Using RLGL.projection by default - //Matrix modelview; // Modelview matrix for this draw -> Using RLGL.modelview by default -} rlDrawCall; - -// rlRenderBatch type -typedef struct rlRenderBatch { - int bufferCount; // Number of vertex buffers (multi-buffering support) - int currentBuffer; // Current buffer tracking in case of multi-buffering - rlVertexBuffer *vertexBuffer; // Dynamic buffer(s) for vertex data - - rlDrawCall *draws; // Draw calls array, depends on textureId - int drawCounter; // Draw calls counter - float currentDepth; // Current depth value for next draw -} rlRenderBatch; - -// OpenGL version -typedef enum { - RL_OPENGL_11 = 1, // OpenGL 1.1 - RL_OPENGL_21, // OpenGL 2.1 (GLSL 120) - RL_OPENGL_33, // OpenGL 3.3 (GLSL 330) - RL_OPENGL_43, // OpenGL 4.3 (using GLSL 330) - RL_OPENGL_ES_20, // OpenGL ES 2.0 (GLSL 100) - RL_OPENGL_ES_30 // OpenGL ES 3.0 (GLSL 300 es) -} rlGlVersion; - -// Trace log level -// NOTE: Organized by priority level -typedef enum { - RL_LOG_ALL = 0, // Display all logs - RL_LOG_TRACE, // Trace logging, intended for internal use only - RL_LOG_DEBUG, // Debug logging, used for internal debugging, it should be disabled on release builds - RL_LOG_INFO, // Info logging, used for program execution info - RL_LOG_WARNING, // Warning logging, used on recoverable failures - RL_LOG_ERROR, // Error logging, used on unrecoverable failures - RL_LOG_FATAL, // Fatal logging, used to abort program: exit(EXIT_FAILURE) - RL_LOG_NONE // Disable logging -} rlTraceLogLevel; - -// Texture pixel formats -// NOTE: Support depends on OpenGL version -typedef enum { - RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1, // 8 bit per pixel (no alpha) - RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA, // 8*2 bpp (2 channels) - RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5, // 16 bpp - RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8, // 24 bpp - RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1, // 16 bpp (1 bit alpha) - RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4, // 16 bpp (4 bit alpha) - RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, // 32 bpp - RL_PIXELFORMAT_UNCOMPRESSED_R32, // 32 bpp (1 channel - float) - RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32, // 32*3 bpp (3 channels - float) - RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32, // 32*4 bpp (4 channels - float) - RL_PIXELFORMAT_UNCOMPRESSED_R16, // 16 bpp (1 channel - half float) - RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16, // 16*3 bpp (3 channels - half float) - RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16, // 16*4 bpp (4 channels - half float) - RL_PIXELFORMAT_COMPRESSED_DXT1_RGB, // 4 bpp (no alpha) - RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA, // 4 bpp (1 bit alpha) - RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA, // 8 bpp - RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA, // 8 bpp - RL_PIXELFORMAT_COMPRESSED_ETC1_RGB, // 4 bpp - RL_PIXELFORMAT_COMPRESSED_ETC2_RGB, // 4 bpp - RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA, // 8 bpp - RL_PIXELFORMAT_COMPRESSED_PVRT_RGB, // 4 bpp - RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA, // 4 bpp - RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA, // 8 bpp - RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA // 2 bpp -} rlPixelFormat; - -// Texture parameters: filter mode -// NOTE 1: Filtering considers mipmaps if available in the texture -// NOTE 2: Filter is accordingly set for minification and magnification -typedef enum { - RL_TEXTURE_FILTER_POINT = 0, // No filter, just pixel approximation - RL_TEXTURE_FILTER_BILINEAR, // Linear filtering - RL_TEXTURE_FILTER_TRILINEAR, // Trilinear filtering (linear with mipmaps) - RL_TEXTURE_FILTER_ANISOTROPIC_4X, // Anisotropic filtering 4x - RL_TEXTURE_FILTER_ANISOTROPIC_8X, // Anisotropic filtering 8x - RL_TEXTURE_FILTER_ANISOTROPIC_16X, // Anisotropic filtering 16x -} rlTextureFilter; - -// Color blending modes (pre-defined) -typedef enum { - RL_BLEND_ALPHA = 0, // Blend textures considering alpha (default) - RL_BLEND_ADDITIVE, // Blend textures adding colors - RL_BLEND_MULTIPLIED, // Blend textures multiplying colors - RL_BLEND_ADD_COLORS, // Blend textures adding colors (alternative) - RL_BLEND_SUBTRACT_COLORS, // Blend textures subtracting colors (alternative) - RL_BLEND_ALPHA_PREMULTIPLY, // Blend premultiplied textures considering alpha - RL_BLEND_CUSTOM, // Blend textures using custom src/dst factors (use rlSetBlendFactors()) - RL_BLEND_CUSTOM_SEPARATE // Blend textures using custom src/dst factors (use rlSetBlendFactorsSeparate()) -} rlBlendMode; - -// Shader location point type -typedef enum { - RL_SHADER_LOC_VERTEX_POSITION = 0, // Shader location: vertex attribute: position - RL_SHADER_LOC_VERTEX_TEXCOORD01, // Shader location: vertex attribute: texcoord01 - RL_SHADER_LOC_VERTEX_TEXCOORD02, // Shader location: vertex attribute: texcoord02 - RL_SHADER_LOC_VERTEX_NORMAL, // Shader location: vertex attribute: normal - RL_SHADER_LOC_VERTEX_TANGENT, // Shader location: vertex attribute: tangent - RL_SHADER_LOC_VERTEX_COLOR, // Shader location: vertex attribute: color - RL_SHADER_LOC_MATRIX_MVP, // Shader location: matrix uniform: model-view-projection - RL_SHADER_LOC_MATRIX_VIEW, // Shader location: matrix uniform: view (camera transform) - RL_SHADER_LOC_MATRIX_PROJECTION, // Shader location: matrix uniform: projection - RL_SHADER_LOC_MATRIX_MODEL, // Shader location: matrix uniform: model (transform) - RL_SHADER_LOC_MATRIX_NORMAL, // Shader location: matrix uniform: normal - RL_SHADER_LOC_VECTOR_VIEW, // Shader location: vector uniform: view - RL_SHADER_LOC_COLOR_DIFFUSE, // Shader location: vector uniform: diffuse color - RL_SHADER_LOC_COLOR_SPECULAR, // Shader location: vector uniform: specular color - RL_SHADER_LOC_COLOR_AMBIENT, // Shader location: vector uniform: ambient color - RL_SHADER_LOC_MAP_ALBEDO, // Shader location: sampler2d texture: albedo (same as: RL_SHADER_LOC_MAP_DIFFUSE) - RL_SHADER_LOC_MAP_METALNESS, // Shader location: sampler2d texture: metalness (same as: RL_SHADER_LOC_MAP_SPECULAR) - RL_SHADER_LOC_MAP_NORMAL, // Shader location: sampler2d texture: normal - RL_SHADER_LOC_MAP_ROUGHNESS, // Shader location: sampler2d texture: roughness - RL_SHADER_LOC_MAP_OCCLUSION, // Shader location: sampler2d texture: occlusion - RL_SHADER_LOC_MAP_EMISSION, // Shader location: sampler2d texture: emission - RL_SHADER_LOC_MAP_HEIGHT, // Shader location: sampler2d texture: height - RL_SHADER_LOC_MAP_CUBEMAP, // Shader location: samplerCube texture: cubemap - RL_SHADER_LOC_MAP_IRRADIANCE, // Shader location: samplerCube texture: irradiance - RL_SHADER_LOC_MAP_PREFILTER, // Shader location: samplerCube texture: prefilter - RL_SHADER_LOC_MAP_BRDF // Shader location: sampler2d texture: brdf -} rlShaderLocationIndex; - -#define RL_SHADER_LOC_MAP_DIFFUSE RL_SHADER_LOC_MAP_ALBEDO -#define RL_SHADER_LOC_MAP_SPECULAR RL_SHADER_LOC_MAP_METALNESS - -// Shader uniform data type -typedef enum { - RL_SHADER_UNIFORM_FLOAT = 0, // Shader uniform type: float - RL_SHADER_UNIFORM_VEC2, // Shader uniform type: vec2 (2 float) - RL_SHADER_UNIFORM_VEC3, // Shader uniform type: vec3 (3 float) - RL_SHADER_UNIFORM_VEC4, // Shader uniform type: vec4 (4 float) - RL_SHADER_UNIFORM_INT, // Shader uniform type: int - RL_SHADER_UNIFORM_IVEC2, // Shader uniform type: ivec2 (2 int) - RL_SHADER_UNIFORM_IVEC3, // Shader uniform type: ivec3 (3 int) - RL_SHADER_UNIFORM_IVEC4, // Shader uniform type: ivec4 (4 int) - RL_SHADER_UNIFORM_SAMPLER2D // Shader uniform type: sampler2d -} rlShaderUniformDataType; - -// Shader attribute data types -typedef enum { - RL_SHADER_ATTRIB_FLOAT = 0, // Shader attribute type: float - RL_SHADER_ATTRIB_VEC2, // Shader attribute type: vec2 (2 float) - RL_SHADER_ATTRIB_VEC3, // Shader attribute type: vec3 (3 float) - RL_SHADER_ATTRIB_VEC4 // Shader attribute type: vec4 (4 float) -} rlShaderAttributeDataType; - -// Framebuffer attachment type -// NOTE: By default up to 8 color channels defined, but it can be more -typedef enum { - RL_ATTACHMENT_COLOR_CHANNEL0 = 0, // Framebuffer attachment type: color 0 - RL_ATTACHMENT_COLOR_CHANNEL1 = 1, // Framebuffer attachment type: color 1 - RL_ATTACHMENT_COLOR_CHANNEL2 = 2, // Framebuffer attachment type: color 2 - RL_ATTACHMENT_COLOR_CHANNEL3 = 3, // Framebuffer attachment type: color 3 - RL_ATTACHMENT_COLOR_CHANNEL4 = 4, // Framebuffer attachment type: color 4 - RL_ATTACHMENT_COLOR_CHANNEL5 = 5, // Framebuffer attachment type: color 5 - RL_ATTACHMENT_COLOR_CHANNEL6 = 6, // Framebuffer attachment type: color 6 - RL_ATTACHMENT_COLOR_CHANNEL7 = 7, // Framebuffer attachment type: color 7 - RL_ATTACHMENT_DEPTH = 100, // Framebuffer attachment type: depth - RL_ATTACHMENT_STENCIL = 200, // Framebuffer attachment type: stencil -} rlFramebufferAttachType; - -// Framebuffer texture attachment type -typedef enum { - RL_ATTACHMENT_CUBEMAP_POSITIVE_X = 0, // Framebuffer texture attachment type: cubemap, +X side - RL_ATTACHMENT_CUBEMAP_NEGATIVE_X = 1, // Framebuffer texture attachment type: cubemap, -X side - RL_ATTACHMENT_CUBEMAP_POSITIVE_Y = 2, // Framebuffer texture attachment type: cubemap, +Y side - RL_ATTACHMENT_CUBEMAP_NEGATIVE_Y = 3, // Framebuffer texture attachment type: cubemap, -Y side - RL_ATTACHMENT_CUBEMAP_POSITIVE_Z = 4, // Framebuffer texture attachment type: cubemap, +Z side - RL_ATTACHMENT_CUBEMAP_NEGATIVE_Z = 5, // Framebuffer texture attachment type: cubemap, -Z side - RL_ATTACHMENT_TEXTURE2D = 100, // Framebuffer texture attachment type: texture2d - RL_ATTACHMENT_RENDERBUFFER = 200, // Framebuffer texture attachment type: renderbuffer -} rlFramebufferAttachTextureType; - -// Face culling mode -typedef enum { - RL_CULL_FACE_FRONT = 0, - RL_CULL_FACE_BACK -} rlCullMode; - -//------------------------------------------------------------------------------------ -// Functions Declaration - Matrix operations -//------------------------------------------------------------------------------------ - -#if defined(__cplusplus) -extern "C" { // Prevents name mangling of functions -#endif - -RLAPI void rlMatrixMode(int mode); // Choose the current matrix to be transformed -RLAPI void rlPushMatrix(void); // Push the current matrix to stack -RLAPI void rlPopMatrix(void); // Pop latest inserted matrix from stack -RLAPI void rlLoadIdentity(void); // Reset current matrix to identity matrix -RLAPI void rlTranslatef(float x, float y, float z); // Multiply the current matrix by a translation matrix -RLAPI void rlRotatef(float angle, float x, float y, float z); // Multiply the current matrix by a rotation matrix -RLAPI void rlScalef(float x, float y, float z); // Multiply the current matrix by a scaling matrix -RLAPI void rlMultMatrixf(const float *matf); // Multiply the current matrix by another matrix -RLAPI void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar); -RLAPI void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar); -RLAPI void rlViewport(int x, int y, int width, int height); // Set the viewport area - -//------------------------------------------------------------------------------------ -// Functions Declaration - Vertex level operations -//------------------------------------------------------------------------------------ -RLAPI void rlBegin(int mode); // Initialize drawing mode (how to organize vertex) -RLAPI void rlEnd(void); // Finish vertex providing -RLAPI void rlVertex2i(int x, int y); // Define one vertex (position) - 2 int -RLAPI void rlVertex2f(float x, float y); // Define one vertex (position) - 2 float -RLAPI void rlVertex3f(float x, float y, float z); // Define one vertex (position) - 3 float -RLAPI void rlTexCoord2f(float x, float y); // Define one vertex (texture coordinate) - 2 float -RLAPI void rlNormal3f(float x, float y, float z); // Define one vertex (normal) - 3 float -RLAPI void rlColor4ub(unsigned char r, unsigned char g, unsigned char b, unsigned char a); // Define one vertex (color) - 4 byte -RLAPI void rlColor3f(float x, float y, float z); // Define one vertex (color) - 3 float -RLAPI void rlColor4f(float x, float y, float z, float w); // Define one vertex (color) - 4 float - -//------------------------------------------------------------------------------------ -// Functions Declaration - OpenGL style functions (common to 1.1, 3.3+, ES2) -// NOTE: This functions are used to completely abstract raylib code from OpenGL layer, -// some of them are direct wrappers over OpenGL calls, some others are custom -//------------------------------------------------------------------------------------ - -// Vertex buffers state -RLAPI bool rlEnableVertexArray(unsigned int vaoId); // Enable vertex array (VAO, if supported) -RLAPI void rlDisableVertexArray(void); // Disable vertex array (VAO, if supported) -RLAPI void rlEnableVertexBuffer(unsigned int id); // Enable vertex buffer (VBO) -RLAPI void rlDisableVertexBuffer(void); // Disable vertex buffer (VBO) -RLAPI void rlEnableVertexBufferElement(unsigned int id);// Enable vertex buffer element (VBO element) -RLAPI void rlDisableVertexBufferElement(void); // Disable vertex buffer element (VBO element) -RLAPI void rlEnableVertexAttribute(unsigned int index); // Enable vertex attribute index -RLAPI void rlDisableVertexAttribute(unsigned int index);// Disable vertex attribute index -#if defined(GRAPHICS_API_OPENGL_11) -RLAPI void rlEnableStatePointer(int vertexAttribType, void *buffer); // Enable attribute state pointer -RLAPI void rlDisableStatePointer(int vertexAttribType); // Disable attribute state pointer -#endif - -// Textures state -RLAPI void rlActiveTextureSlot(int slot); // Select and active a texture slot -RLAPI void rlEnableTexture(unsigned int id); // Enable texture -RLAPI void rlDisableTexture(void); // Disable texture -RLAPI void rlEnableTextureCubemap(unsigned int id); // Enable texture cubemap -RLAPI void rlDisableTextureCubemap(void); // Disable texture cubemap -RLAPI void rlTextureParameters(unsigned int id, int param, int value); // Set texture parameters (filter, wrap) -RLAPI void rlCubemapParameters(unsigned int id, int param, int value); // Set cubemap parameters (filter, wrap) - -// Shader state -RLAPI void rlEnableShader(unsigned int id); // Enable shader program -RLAPI void rlDisableShader(void); // Disable shader program - -// Framebuffer state -RLAPI void rlEnableFramebuffer(unsigned int id); // Enable render texture (fbo) -RLAPI void rlDisableFramebuffer(void); // Disable render texture (fbo), return to default framebuffer -RLAPI void rlActiveDrawBuffers(int count); // Activate multiple draw color buffers -RLAPI void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask); // Blit active framebuffer to main framebuffer - -// General render state -RLAPI void rlEnableColorBlend(void); // Enable color blending -RLAPI void rlDisableColorBlend(void); // Disable color blending -RLAPI void rlEnableDepthTest(void); // Enable depth test -RLAPI void rlDisableDepthTest(void); // Disable depth test -RLAPI void rlEnableDepthMask(void); // Enable depth write -RLAPI void rlDisableDepthMask(void); // Disable depth write -RLAPI void rlEnableBackfaceCulling(void); // Enable backface culling -RLAPI void rlDisableBackfaceCulling(void); // Disable backface culling -RLAPI void rlSetCullFace(int mode); // Set face culling mode -RLAPI void rlEnableScissorTest(void); // Enable scissor test -RLAPI void rlDisableScissorTest(void); // Disable scissor test -RLAPI void rlScissor(int x, int y, int width, int height); // Scissor test -RLAPI void rlEnableWireMode(void); // Enable wire mode -RLAPI void rlEnablePointMode(void); // Enable point mode -RLAPI void rlDisableWireMode(void); // Disable wire mode ( and point ) maybe rename -RLAPI void rlSetLineWidth(float width); // Set the line drawing width -RLAPI float rlGetLineWidth(void); // Get the line drawing width -RLAPI void rlEnableSmoothLines(void); // Enable line aliasing -RLAPI void rlDisableSmoothLines(void); // Disable line aliasing -RLAPI void rlEnableStereoRender(void); // Enable stereo rendering -RLAPI void rlDisableStereoRender(void); // Disable stereo rendering -RLAPI bool rlIsStereoRenderEnabled(void); // Check if stereo render is enabled - -RLAPI void rlClearColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a); // Clear color buffer with color -RLAPI void rlClearScreenBuffers(void); // Clear used screen buffers (color and depth) -RLAPI void rlCheckErrors(void); // Check and log OpenGL error codes -RLAPI void rlSetBlendMode(int mode); // Set blending mode -RLAPI void rlSetBlendFactors(int glSrcFactor, int glDstFactor, int glEquation); // Set blending mode factor and equation (using OpenGL factors) -RLAPI void rlSetBlendFactorsSeparate(int glSrcRGB, int glDstRGB, int glSrcAlpha, int glDstAlpha, int glEqRGB, int glEqAlpha); // Set blending mode factors and equations separately (using OpenGL factors) - -//------------------------------------------------------------------------------------ -// Functions Declaration - rlgl functionality -//------------------------------------------------------------------------------------ -// rlgl initialization functions -RLAPI void rlglInit(int width, int height); // Initialize rlgl (buffers, shaders, textures, states) -RLAPI void rlglClose(void); // De-initialize rlgl (buffers, shaders, textures) -RLAPI void rlLoadExtensions(void *loader); // Load OpenGL extensions (loader function required) -RLAPI int rlGetVersion(void); // Get current OpenGL version -RLAPI void rlSetFramebufferWidth(int width); // Set current framebuffer width -RLAPI int rlGetFramebufferWidth(void); // Get default framebuffer width -RLAPI void rlSetFramebufferHeight(int height); // Set current framebuffer height -RLAPI int rlGetFramebufferHeight(void); // Get default framebuffer height - -RLAPI unsigned int rlGetTextureIdDefault(void); // Get default texture id -RLAPI unsigned int rlGetShaderIdDefault(void); // Get default shader id -RLAPI int *rlGetShaderLocsDefault(void); // Get default shader locations - -// Render batch management -// NOTE: rlgl provides a default render batch to behave like OpenGL 1.1 immediate mode -// but this render batch API is exposed in case of custom batches are required -RLAPI rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements); // Load a render batch system -RLAPI void rlUnloadRenderBatch(rlRenderBatch batch); // Unload render batch system -RLAPI void rlDrawRenderBatch(rlRenderBatch *batch); // Draw render batch data (Update->Draw->Reset) -RLAPI void rlSetRenderBatchActive(rlRenderBatch *batch); // Set the active render batch for rlgl (NULL for default internal) -RLAPI void rlDrawRenderBatchActive(void); // Update and draw internal render batch -RLAPI bool rlCheckRenderBatchLimit(int vCount); // Check internal buffer overflow for a given number of vertex - -RLAPI void rlSetTexture(unsigned int id); // Set current texture for render batch and check buffers limits - -//------------------------------------------------------------------------------------------------------------------------ - -// Vertex buffers management -RLAPI unsigned int rlLoadVertexArray(void); // Load vertex array (vao) if supported -RLAPI unsigned int rlLoadVertexBuffer(const void *buffer, int size, bool dynamic); // Load a vertex buffer attribute -RLAPI unsigned int rlLoadVertexBufferElement(const void *buffer, int size, bool dynamic); // Load a new attributes element buffer -RLAPI void rlUpdateVertexBuffer(unsigned int bufferId, const void *data, int dataSize, int offset); // Update GPU buffer with new data -RLAPI void rlUpdateVertexBufferElements(unsigned int id, const void *data, int dataSize, int offset); // Update vertex buffer elements with new data -RLAPI void rlUnloadVertexArray(unsigned int vaoId); -RLAPI void rlUnloadVertexBuffer(unsigned int vboId); -RLAPI void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, const void *pointer); -RLAPI void rlSetVertexAttributeDivisor(unsigned int index, int divisor); -RLAPI void rlSetVertexAttributeDefault(int locIndex, const void *value, int attribType, int count); // Set vertex attribute default value -RLAPI void rlDrawVertexArray(int offset, int count); -RLAPI void rlDrawVertexArrayElements(int offset, int count, const void *buffer); -RLAPI void rlDrawVertexArrayInstanced(int offset, int count, int instances); -RLAPI void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffer, int instances); - -// Textures management -RLAPI unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipmapCount); // Load texture in GPU -RLAPI unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer); // Load depth texture/renderbuffer (to be attached to fbo) -RLAPI unsigned int rlLoadTextureCubemap(const void *data, int size, int format); // Load texture cubemap -RLAPI void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data); // Update GPU texture with new data -RLAPI void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType); // Get OpenGL internal formats -RLAPI const char *rlGetPixelFormatName(unsigned int format); // Get name string for pixel format -RLAPI void rlUnloadTexture(unsigned int id); // Unload texture from GPU memory -RLAPI void rlGenTextureMipmaps(unsigned int id, int width, int height, int format, int *mipmaps); // Generate mipmap data for selected texture -RLAPI void *rlReadTexturePixels(unsigned int id, int width, int height, int format); // Read texture pixel data -RLAPI unsigned char *rlReadScreenPixels(int width, int height); // Read screen pixel data (color buffer) - -// Framebuffer management (fbo) -RLAPI unsigned int rlLoadFramebuffer(int width, int height); // Load an empty framebuffer -RLAPI void rlFramebufferAttach(unsigned int fboId, unsigned int texId, int attachType, int texType, int mipLevel); // Attach texture/renderbuffer to a framebuffer -RLAPI bool rlFramebufferComplete(unsigned int id); // Verify framebuffer is complete -RLAPI void rlUnloadFramebuffer(unsigned int id); // Delete framebuffer from GPU - -// Shaders management -RLAPI unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode); // Load shader from code strings -RLAPI unsigned int rlCompileShader(const char *shaderCode, int type); // Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER) -RLAPI unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fShaderId); // Load custom shader program -RLAPI void rlUnloadShaderProgram(unsigned int id); // Unload shader program -RLAPI int rlGetLocationUniform(unsigned int shaderId, const char *uniformName); // Get shader location uniform -RLAPI int rlGetLocationAttrib(unsigned int shaderId, const char *attribName); // Get shader location attribute -RLAPI void rlSetUniform(int locIndex, const void *value, int uniformType, int count); // Set shader value uniform -RLAPI void rlSetUniformMatrix(int locIndex, Matrix mat); // Set shader value matrix -RLAPI void rlSetUniformSampler(int locIndex, unsigned int textureId); // Set shader value sampler -RLAPI void rlSetShader(unsigned int id, int *locs); // Set shader currently active (id and locations) - -// Compute shader management -RLAPI unsigned int rlLoadComputeShaderProgram(unsigned int shaderId); // Load compute shader program -RLAPI void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ); // Dispatch compute shader (equivalent to *draw* for graphics pipeline) - -// Shader buffer storage object management (ssbo) -RLAPI unsigned int rlLoadShaderBuffer(unsigned int size, const void *data, int usageHint); // Load shader storage buffer object (SSBO) -RLAPI void rlUnloadShaderBuffer(unsigned int ssboId); // Unload shader storage buffer object (SSBO) -RLAPI void rlUpdateShaderBuffer(unsigned int id, const void *data, unsigned int dataSize, unsigned int offset); // Update SSBO buffer data -RLAPI void rlBindShaderBuffer(unsigned int id, unsigned int index); // Bind SSBO buffer -RLAPI void rlReadShaderBuffer(unsigned int id, void *dest, unsigned int count, unsigned int offset); // Read SSBO buffer data (GPU->CPU) -RLAPI void rlCopyShaderBuffer(unsigned int destId, unsigned int srcId, unsigned int destOffset, unsigned int srcOffset, unsigned int count); // Copy SSBO data between buffers -RLAPI unsigned int rlGetShaderBufferSize(unsigned int id); // Get SSBO buffer size - -// Buffer management -RLAPI void rlBindImageTexture(unsigned int id, unsigned int index, int format, bool readonly); // Bind image texture - -// Matrix state management -RLAPI Matrix rlGetMatrixModelview(void); // Get internal modelview matrix -RLAPI Matrix rlGetMatrixProjection(void); // Get internal projection matrix -RLAPI Matrix rlGetMatrixTransform(void); // Get internal accumulated transform matrix -RLAPI Matrix rlGetMatrixProjectionStereo(int eye); // Get internal projection matrix for stereo render (selected eye) -RLAPI Matrix rlGetMatrixViewOffsetStereo(int eye); // Get internal view offset matrix for stereo render (selected eye) -RLAPI void rlSetMatrixProjection(Matrix proj); // Set a custom projection matrix (replaces internal projection matrix) -RLAPI void rlSetMatrixModelview(Matrix view); // Set a custom modelview matrix (replaces internal modelview matrix) -RLAPI void rlSetMatrixProjectionStereo(Matrix right, Matrix left); // Set eyes projection matrices for stereo rendering -RLAPI void rlSetMatrixViewOffsetStereo(Matrix right, Matrix left); // Set eyes view offsets matrices for stereo rendering - -// Quick and dirty cube/quad buffers load->draw->unload -RLAPI void rlLoadDrawCube(void); // Load and draw a cube -RLAPI void rlLoadDrawQuad(void); // Load and draw a quad - -#if defined(__cplusplus) -} -#endif - -#endif // RLGL_H - -/*********************************************************************************** -* -* RLGL IMPLEMENTATION -* -************************************************************************************/ - -#if defined(RLGL_IMPLEMENTATION) - -#if defined(GRAPHICS_API_OPENGL_11) - #if defined(__APPLE__) - #include // OpenGL 1.1 library for OSX - #include // OpenGL extensions library - #else - // APIENTRY for OpenGL function pointer declarations is required - #if !defined(APIENTRY) - #if defined(_WIN32) - #define APIENTRY __stdcall - #else - #define APIENTRY - #endif - #endif - // WINGDIAPI definition. Some Windows OpenGL headers need it - #if !defined(WINGDIAPI) && defined(_WIN32) - #define WINGDIAPI __declspec(dllimport) - #endif - - #include // OpenGL 1.1 library - #endif -#endif - -#if defined(GRAPHICS_API_OPENGL_33) - #define GLAD_MALLOC RL_MALLOC - #define GLAD_FREE RL_FREE - - #define GLAD_GL_IMPLEMENTATION - #include "external/glad.h" // GLAD extensions loading library, includes OpenGL headers -#endif - -#if defined(GRAPHICS_API_OPENGL_ES3) - #include // OpenGL ES 3.0 library - #define GL_GLEXT_PROTOTYPES - #include // OpenGL ES 2.0 extensions library -#elif defined(GRAPHICS_API_OPENGL_ES2) - // NOTE: OpenGL ES 2.0 can be enabled on PLATFORM_DESKTOP, - // in that case, functions are loaded from a custom glad for OpenGL ES 2.0 - #if defined(PLATFORM_DESKTOP) || defined(PLATFORM_DESKTOP_SDL) - #define GLAD_GLES2_IMPLEMENTATION - #include "external/glad_gles2.h" - #else - #define GL_GLEXT_PROTOTYPES - //#include // EGL library -> not required, platform layer - #include // OpenGL ES 2.0 library - #include // OpenGL ES 2.0 extensions library - #endif - - // It seems OpenGL ES 2.0 instancing entry points are not defined on Raspberry Pi - // provided headers (despite being defined in official Khronos GLES2 headers) - #if defined(PLATFORM_DRM) - typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); - typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); - typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISOREXTPROC) (GLuint index, GLuint divisor); - #endif -#endif - -#include // Required for: malloc(), free() -#include // Required for: strcmp(), strlen() [Used in rlglInit(), on extensions loading] -#include // Required for: sqrtf(), sinf(), cosf(), floor(), log() - -//---------------------------------------------------------------------------------- -// Defines and Macros -//---------------------------------------------------------------------------------- -#ifndef PI - #define PI 3.14159265358979323846f -#endif -#ifndef DEG2RAD - #define DEG2RAD (PI/180.0f) -#endif -#ifndef RAD2DEG - #define RAD2DEG (180.0f/PI) -#endif - -#ifndef GL_SHADING_LANGUAGE_VERSION - #define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#endif - -#ifndef GL_COMPRESSED_RGB_S3TC_DXT1_EXT - #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#endif -#ifndef GL_COMPRESSED_RGBA_S3TC_DXT1_EXT - #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#endif -#ifndef GL_COMPRESSED_RGBA_S3TC_DXT3_EXT - #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 -#endif -#ifndef GL_COMPRESSED_RGBA_S3TC_DXT5_EXT - #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 -#endif -#ifndef GL_ETC1_RGB8_OES - #define GL_ETC1_RGB8_OES 0x8D64 -#endif -#ifndef GL_COMPRESSED_RGB8_ETC2 - #define GL_COMPRESSED_RGB8_ETC2 0x9274 -#endif -#ifndef GL_COMPRESSED_RGBA8_ETC2_EAC - #define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 -#endif -#ifndef GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG - #define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 -#endif -#ifndef GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG - #define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 -#endif -#ifndef GL_COMPRESSED_RGBA_ASTC_4x4_KHR - #define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93b0 -#endif -#ifndef GL_COMPRESSED_RGBA_ASTC_8x8_KHR - #define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93b7 -#endif - -#ifndef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT - #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF -#endif -#ifndef GL_TEXTURE_MAX_ANISOTROPY_EXT - #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE -#endif - -#if defined(GRAPHICS_API_OPENGL_11) - #define GL_UNSIGNED_SHORT_5_6_5 0x8363 - #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 - #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#endif - -#if defined(GRAPHICS_API_OPENGL_21) - #define GL_LUMINANCE 0x1909 - #define GL_LUMINANCE_ALPHA 0x190A -#endif - -#if defined(GRAPHICS_API_OPENGL_ES2) - #define glClearDepth glClearDepthf - #if !defined(GRAPHICS_API_OPENGL_ES3) - #define GL_READ_FRAMEBUFFER GL_FRAMEBUFFER - #define GL_DRAW_FRAMEBUFFER GL_FRAMEBUFFER - #endif -#endif - -// Default shader vertex attribute names to set location points -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION - #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: 0 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD - #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: 1 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL - #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: 2 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR - #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: 3 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT - #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: 4 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 - #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: 5 -#endif - -#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_MVP - #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix -#endif -#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW - #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix -#endif -#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION - #define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix -#endif -#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL - #define RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL "matModel" // model matrix -#endif -#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL - #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView)) -#endif -#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR - #define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color) -#endif -#ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 - #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0) -#endif -#ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 - #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 "texture1" // texture1 (texture slot active 1) -#endif -#ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 - #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 "texture2" // texture2 (texture slot active 2) -#endif - -//---------------------------------------------------------------------------------- -// Types and Structures Definition -//---------------------------------------------------------------------------------- -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) -typedef struct rlglData { - rlRenderBatch *currentBatch; // Current render batch - rlRenderBatch defaultBatch; // Default internal render batch - - struct { - int vertexCounter; // Current active render batch vertex counter (generic, used for all batches) - float texcoordx, texcoordy; // Current active texture coordinate (added on glVertex*()) - float normalx, normaly, normalz; // Current active normal (added on glVertex*()) - unsigned char colorr, colorg, colorb, colora; // Current active color (added on glVertex*()) - - int currentMatrixMode; // Current matrix mode - Matrix *currentMatrix; // Current matrix pointer - Matrix modelview; // Default modelview matrix - Matrix projection; // Default projection matrix - Matrix transform; // Transform matrix to be used with rlTranslate, rlRotate, rlScale - bool transformRequired; // Require transform matrix application to current draw-call vertex (if required) - Matrix stack[RL_MAX_MATRIX_STACK_SIZE];// Matrix stack for push/pop - int stackCounter; // Matrix stack counter - - unsigned int defaultTextureId; // Default texture used on shapes/poly drawing (required by shader) - unsigned int activeTextureId[RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS]; // Active texture ids to be enabled on batch drawing (0 active by default) - unsigned int defaultVShaderId; // Default vertex shader id (used by default shader program) - unsigned int defaultFShaderId; // Default fragment shader id (used by default shader program) - unsigned int defaultShaderId; // Default shader program id, supports vertex color and diffuse texture - int *defaultShaderLocs; // Default shader locations pointer to be used on rendering - unsigned int currentShaderId; // Current shader id to be used on rendering (by default, defaultShaderId) - int *currentShaderLocs; // Current shader locations pointer to be used on rendering (by default, defaultShaderLocs) - - bool stereoRender; // Stereo rendering flag - Matrix projectionStereo[2]; // VR stereo rendering eyes projection matrices - Matrix viewOffsetStereo[2]; // VR stereo rendering eyes view offset matrices - - // Blending variables - int currentBlendMode; // Blending mode active - int glBlendSrcFactor; // Blending source factor - int glBlendDstFactor; // Blending destination factor - int glBlendEquation; // Blending equation - int glBlendSrcFactorRGB; // Blending source RGB factor - int glBlendDestFactorRGB; // Blending destination RGB factor - int glBlendSrcFactorAlpha; // Blending source alpha factor - int glBlendDestFactorAlpha; // Blending destination alpha factor - int glBlendEquationRGB; // Blending equation for RGB - int glBlendEquationAlpha; // Blending equation for alpha - bool glCustomBlendModeModified; // Custom blending factor and equation modification status - - int framebufferWidth; // Current framebuffer width - int framebufferHeight; // Current framebuffer height - - } State; // Renderer state - struct { - bool vao; // VAO support (OpenGL ES2 could not support VAO extension) (GL_ARB_vertex_array_object) - bool instancing; // Instancing supported (GL_ANGLE_instanced_arrays, GL_EXT_draw_instanced + GL_EXT_instanced_arrays) - bool texNPOT; // NPOT textures full support (GL_ARB_texture_non_power_of_two, GL_OES_texture_npot) - bool texDepth; // Depth textures supported (GL_ARB_depth_texture, GL_OES_depth_texture) - bool texDepthWebGL; // Depth textures supported WebGL specific (GL_WEBGL_depth_texture) - bool texFloat32; // float textures support (32 bit per channel) (GL_OES_texture_float) - bool texFloat16; // half float textures support (16 bit per channel) (GL_OES_texture_half_float) - bool texCompDXT; // DDS texture compression support (GL_EXT_texture_compression_s3tc, GL_WEBGL_compressed_texture_s3tc, GL_WEBKIT_WEBGL_compressed_texture_s3tc) - bool texCompETC1; // ETC1 texture compression support (GL_OES_compressed_ETC1_RGB8_texture, GL_WEBGL_compressed_texture_etc1) - bool texCompETC2; // ETC2/EAC texture compression support (GL_ARB_ES3_compatibility) - bool texCompPVRT; // PVR texture compression support (GL_IMG_texture_compression_pvrtc) - bool texCompASTC; // ASTC texture compression support (GL_KHR_texture_compression_astc_hdr, GL_KHR_texture_compression_astc_ldr) - bool texMirrorClamp; // Clamp mirror wrap mode supported (GL_EXT_texture_mirror_clamp) - bool texAnisoFilter; // Anisotropic texture filtering support (GL_EXT_texture_filter_anisotropic) - bool computeShader; // Compute shaders support (GL_ARB_compute_shader) - bool ssbo; // Shader storage buffer object support (GL_ARB_shader_storage_buffer_object) - - float maxAnisotropyLevel; // Maximum anisotropy level supported (minimum is 2.0f) - int maxDepthBits; // Maximum bits for depth component - - } ExtSupported; // Extensions supported flags -} rlglData; - -typedef void *(*rlglLoadProc)(const char *name); // OpenGL extension functions loader signature (same as GLADloadproc) - -#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 - -//---------------------------------------------------------------------------------- -// Global Variables Definition -//---------------------------------------------------------------------------------- -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) -static rlglData RLGL = { 0 }; -#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 - -#if defined(GRAPHICS_API_OPENGL_ES2) && !defined(GRAPHICS_API_OPENGL_ES3) -// NOTE: VAO functionality is exposed through extensions (OES) -static PFNGLGENVERTEXARRAYSOESPROC glGenVertexArrays = NULL; -static PFNGLBINDVERTEXARRAYOESPROC glBindVertexArray = NULL; -static PFNGLDELETEVERTEXARRAYSOESPROC glDeleteVertexArrays = NULL; - -// NOTE: Instancing functionality could also be available through extension -static PFNGLDRAWARRAYSINSTANCEDEXTPROC glDrawArraysInstanced = NULL; -static PFNGLDRAWELEMENTSINSTANCEDEXTPROC glDrawElementsInstanced = NULL; -static PFNGLVERTEXATTRIBDIVISOREXTPROC glVertexAttribDivisor = NULL; -#endif - -//---------------------------------------------------------------------------------- -// Module specific Functions Declaration -//---------------------------------------------------------------------------------- -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) -static void rlLoadShaderDefault(void); // Load default shader -static void rlUnloadShaderDefault(void); // Unload default shader -#if defined(RLGL_SHOW_GL_DETAILS_INFO) -static const char *rlGetCompressedFormatName(int format); // Get compressed format official GL identifier name -#endif // RLGL_SHOW_GL_DETAILS_INFO -#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 - -static int rlGetPixelDataSize(int width, int height, int format); // Get pixel data size in bytes (image or texture) - -// Auxiliar matrix math functions -static Matrix rlMatrixIdentity(void); // Get identity matrix -static Matrix rlMatrixMultiply(Matrix left, Matrix right); // Multiply two matrices - -//---------------------------------------------------------------------------------- -// Module Functions Definition - Matrix operations -//---------------------------------------------------------------------------------- - -#if defined(GRAPHICS_API_OPENGL_11) -// Fallback to OpenGL 1.1 function calls -//--------------------------------------- -void rlMatrixMode(int mode) -{ - switch (mode) - { - case RL_PROJECTION: glMatrixMode(GL_PROJECTION); break; - case RL_MODELVIEW: glMatrixMode(GL_MODELVIEW); break; - case RL_TEXTURE: glMatrixMode(GL_TEXTURE); break; - default: break; - } -} - -void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar) -{ - glFrustum(left, right, bottom, top, znear, zfar); -} - -void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar) -{ - glOrtho(left, right, bottom, top, znear, zfar); -} - -void rlPushMatrix(void) { glPushMatrix(); } -void rlPopMatrix(void) { glPopMatrix(); } -void rlLoadIdentity(void) { glLoadIdentity(); } -void rlTranslatef(float x, float y, float z) { glTranslatef(x, y, z); } -void rlRotatef(float angle, float x, float y, float z) { glRotatef(angle, x, y, z); } -void rlScalef(float x, float y, float z) { glScalef(x, y, z); } -void rlMultMatrixf(const float *matf) { glMultMatrixf(matf); } -#endif -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) -// Choose the current matrix to be transformed -void rlMatrixMode(int mode) -{ - if (mode == RL_PROJECTION) RLGL.State.currentMatrix = &RLGL.State.projection; - else if (mode == RL_MODELVIEW) RLGL.State.currentMatrix = &RLGL.State.modelview; - //else if (mode == RL_TEXTURE) // Not supported - - RLGL.State.currentMatrixMode = mode; -} - -// Push the current matrix into RLGL.State.stack -void rlPushMatrix(void) -{ - if (RLGL.State.stackCounter >= RL_MAX_MATRIX_STACK_SIZE) TRACELOG(RL_LOG_ERROR, "RLGL: Matrix stack overflow (RL_MAX_MATRIX_STACK_SIZE)"); - - if (RLGL.State.currentMatrixMode == RL_MODELVIEW) - { - RLGL.State.transformRequired = true; - RLGL.State.currentMatrix = &RLGL.State.transform; - } - - RLGL.State.stack[RLGL.State.stackCounter] = *RLGL.State.currentMatrix; - RLGL.State.stackCounter++; -} - -// Pop lattest inserted matrix from RLGL.State.stack -void rlPopMatrix(void) -{ - if (RLGL.State.stackCounter > 0) - { - Matrix mat = RLGL.State.stack[RLGL.State.stackCounter - 1]; - *RLGL.State.currentMatrix = mat; - RLGL.State.stackCounter--; - } - - if ((RLGL.State.stackCounter == 0) && (RLGL.State.currentMatrixMode == RL_MODELVIEW)) - { - RLGL.State.currentMatrix = &RLGL.State.modelview; - RLGL.State.transformRequired = false; - } -} - -// Reset current matrix to identity matrix -void rlLoadIdentity(void) -{ - *RLGL.State.currentMatrix = rlMatrixIdentity(); -} - -// Multiply the current matrix by a translation matrix -void rlTranslatef(float x, float y, float z) -{ - Matrix matTranslation = { - 1.0f, 0.0f, 0.0f, x, - 0.0f, 1.0f, 0.0f, y, - 0.0f, 0.0f, 1.0f, z, - 0.0f, 0.0f, 0.0f, 1.0f - }; - - // NOTE: We transpose matrix with multiplication order - *RLGL.State.currentMatrix = rlMatrixMultiply(matTranslation, *RLGL.State.currentMatrix); -} - -// Multiply the current matrix by a rotation matrix -// NOTE: The provided angle must be in degrees -void rlRotatef(float angle, float x, float y, float z) -{ - Matrix matRotation = rlMatrixIdentity(); - - // Axis vector (x, y, z) normalization - float lengthSquared = x*x + y*y + z*z; - if ((lengthSquared != 1.0f) && (lengthSquared != 0.0f)) - { - float inverseLength = 1.0f/sqrtf(lengthSquared); - x *= inverseLength; - y *= inverseLength; - z *= inverseLength; - } - - // Rotation matrix generation - float sinres = sinf(DEG2RAD*angle); - float cosres = cosf(DEG2RAD*angle); - float t = 1.0f - cosres; - - matRotation.m0 = x*x*t + cosres; - matRotation.m1 = y*x*t + z*sinres; - matRotation.m2 = z*x*t - y*sinres; - matRotation.m3 = 0.0f; - - matRotation.m4 = x*y*t - z*sinres; - matRotation.m5 = y*y*t + cosres; - matRotation.m6 = z*y*t + x*sinres; - matRotation.m7 = 0.0f; - - matRotation.m8 = x*z*t + y*sinres; - matRotation.m9 = y*z*t - x*sinres; - matRotation.m10 = z*z*t + cosres; - matRotation.m11 = 0.0f; - - matRotation.m12 = 0.0f; - matRotation.m13 = 0.0f; - matRotation.m14 = 0.0f; - matRotation.m15 = 1.0f; - - // NOTE: We transpose matrix with multiplication order - *RLGL.State.currentMatrix = rlMatrixMultiply(matRotation, *RLGL.State.currentMatrix); -} - -// Multiply the current matrix by a scaling matrix -void rlScalef(float x, float y, float z) -{ - Matrix matScale = { - x, 0.0f, 0.0f, 0.0f, - 0.0f, y, 0.0f, 0.0f, - 0.0f, 0.0f, z, 0.0f, - 0.0f, 0.0f, 0.0f, 1.0f - }; - - // NOTE: We transpose matrix with multiplication order - *RLGL.State.currentMatrix = rlMatrixMultiply(matScale, *RLGL.State.currentMatrix); -} - -// Multiply the current matrix by another matrix -void rlMultMatrixf(const float *matf) -{ - // Matrix creation from array - Matrix mat = { matf[0], matf[4], matf[8], matf[12], - matf[1], matf[5], matf[9], matf[13], - matf[2], matf[6], matf[10], matf[14], - matf[3], matf[7], matf[11], matf[15] }; - - *RLGL.State.currentMatrix = rlMatrixMultiply(*RLGL.State.currentMatrix, mat); -} - -// Multiply the current matrix by a perspective matrix generated by parameters -void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar) -{ - Matrix matFrustum = { 0 }; - - float rl = (float)(right - left); - float tb = (float)(top - bottom); - float fn = (float)(zfar - znear); - - matFrustum.m0 = ((float) znear*2.0f)/rl; - matFrustum.m1 = 0.0f; - matFrustum.m2 = 0.0f; - matFrustum.m3 = 0.0f; - - matFrustum.m4 = 0.0f; - matFrustum.m5 = ((float) znear*2.0f)/tb; - matFrustum.m6 = 0.0f; - matFrustum.m7 = 0.0f; - - matFrustum.m8 = ((float)right + (float)left)/rl; - matFrustum.m9 = ((float)top + (float)bottom)/tb; - matFrustum.m10 = -((float)zfar + (float)znear)/fn; - matFrustum.m11 = -1.0f; - - matFrustum.m12 = 0.0f; - matFrustum.m13 = 0.0f; - matFrustum.m14 = -((float)zfar*(float)znear*2.0f)/fn; - matFrustum.m15 = 0.0f; - - *RLGL.State.currentMatrix = rlMatrixMultiply(*RLGL.State.currentMatrix, matFrustum); -} - -// Multiply the current matrix by an orthographic matrix generated by parameters -void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar) -{ - // NOTE: If left-right and top-botton values are equal it could create a division by zero, - // response to it is platform/compiler dependant - Matrix matOrtho = { 0 }; - - float rl = (float)(right - left); - float tb = (float)(top - bottom); - float fn = (float)(zfar - znear); - - matOrtho.m0 = 2.0f/rl; - matOrtho.m1 = 0.0f; - matOrtho.m2 = 0.0f; - matOrtho.m3 = 0.0f; - matOrtho.m4 = 0.0f; - matOrtho.m5 = 2.0f/tb; - matOrtho.m6 = 0.0f; - matOrtho.m7 = 0.0f; - matOrtho.m8 = 0.0f; - matOrtho.m9 = 0.0f; - matOrtho.m10 = -2.0f/fn; - matOrtho.m11 = 0.0f; - matOrtho.m12 = -((float)left + (float)right)/rl; - matOrtho.m13 = -((float)top + (float)bottom)/tb; - matOrtho.m14 = -((float)zfar + (float)znear)/fn; - matOrtho.m15 = 1.0f; - - *RLGL.State.currentMatrix = rlMatrixMultiply(*RLGL.State.currentMatrix, matOrtho); -} -#endif - -// Set the viewport area (transformation from normalized device coordinates to window coordinates) -// NOTE: We store current viewport dimensions -void rlViewport(int x, int y, int width, int height) -{ - glViewport(x, y, width, height); -} - -//---------------------------------------------------------------------------------- -// Module Functions Definition - Vertex level operations -//---------------------------------------------------------------------------------- -#if defined(GRAPHICS_API_OPENGL_11) -// Fallback to OpenGL 1.1 function calls -//--------------------------------------- -void rlBegin(int mode) -{ - switch (mode) - { - case RL_LINES: glBegin(GL_LINES); break; - case RL_TRIANGLES: glBegin(GL_TRIANGLES); break; - case RL_QUADS: glBegin(GL_QUADS); break; - default: break; - } -} - -void rlEnd() { glEnd(); } -void rlVertex2i(int x, int y) { glVertex2i(x, y); } -void rlVertex2f(float x, float y) { glVertex2f(x, y); } -void rlVertex3f(float x, float y, float z) { glVertex3f(x, y, z); } -void rlTexCoord2f(float x, float y) { glTexCoord2f(x, y); } -void rlNormal3f(float x, float y, float z) { glNormal3f(x, y, z); } -void rlColor4ub(unsigned char r, unsigned char g, unsigned char b, unsigned char a) { glColor4ub(r, g, b, a); } -void rlColor3f(float x, float y, float z) { glColor3f(x, y, z); } -void rlColor4f(float x, float y, float z, float w) { glColor4f(x, y, z, w); } -#endif -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) -// Initialize drawing mode (how to organize vertex) -void rlBegin(int mode) -{ - // Draw mode can be RL_LINES, RL_TRIANGLES and RL_QUADS - // NOTE: In all three cases, vertex are accumulated over default internal vertex buffer - if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode != mode) - { - if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount > 0) - { - // Make sure current RLGL.currentBatch->draws[i].vertexCount is aligned a multiple of 4, - // that way, following QUADS drawing will keep aligned with index processing - // It implies adding some extra alignment vertex at the end of the draw, - // those vertex are not processed but they are considered as an additional offset - // for the next set of vertex to be drawn - if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount : RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4); - else if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? 1 : (4 - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4))); - else RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = 0; - - if (!rlCheckRenderBatchLimit(RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment)) - { - RLGL.State.vertexCounter += RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment; - RLGL.currentBatch->drawCounter++; - } - } - - if (RLGL.currentBatch->drawCounter >= RL_DEFAULT_BATCH_DRAWCALLS) rlDrawRenderBatch(RLGL.currentBatch); - - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode = mode; - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount = 0; - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = RLGL.State.defaultTextureId; - } -} - -// Finish vertex providing -void rlEnd(void) -{ - // NOTE: Depth increment is dependant on rlOrtho(): z-near and z-far values, - // as well as depth buffer bit-depth (16bit or 24bit or 32bit) - // Correct increment formula would be: depthInc = (zfar - znear)/pow(2, bits) - RLGL.currentBatch->currentDepth += (1.0f/20000.0f); -} - -// Define one vertex (position) -// NOTE: Vertex position data is the basic information required for drawing -void rlVertex3f(float x, float y, float z) -{ - float tx = x; - float ty = y; - float tz = z; - - // Transform provided vector if required - if (RLGL.State.transformRequired) - { - tx = RLGL.State.transform.m0*x + RLGL.State.transform.m4*y + RLGL.State.transform.m8*z + RLGL.State.transform.m12; - ty = RLGL.State.transform.m1*x + RLGL.State.transform.m5*y + RLGL.State.transform.m9*z + RLGL.State.transform.m13; - tz = RLGL.State.transform.m2*x + RLGL.State.transform.m6*y + RLGL.State.transform.m10*z + RLGL.State.transform.m14; - } - - // WARNING: We can't break primitives when launching a new batch. - // RL_LINES comes in pairs, RL_TRIANGLES come in groups of 3 vertices and RL_QUADS come in groups of 4 vertices. - // We must check current draw.mode when a new vertex is required and finish the batch only if the draw.mode draw.vertexCount is %2, %3 or %4 - if (RLGL.State.vertexCounter > (RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4 - 4)) - { - if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) && - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%2 == 0)) - { - // Reached the maximum number of vertices for RL_LINES drawing - // Launch a draw call but keep current state for next vertices comming - // NOTE: We add +1 vertex to the check for security - rlCheckRenderBatchLimit(2 + 1); - } - else if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) && - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%3 == 0)) - { - rlCheckRenderBatchLimit(3 + 1); - } - else if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_QUADS) && - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4 == 0)) - { - rlCheckRenderBatchLimit(4 + 1); - } - } - - // Add vertices - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter] = tx; - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter + 1] = ty; - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter + 2] = tz; - - // Add current texcoord - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter] = RLGL.State.texcoordx; - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter + 1] = RLGL.State.texcoordy; - - // WARNING: By default rlVertexBuffer struct does not store normals - - // Add current color - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter] = RLGL.State.colorr; - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 1] = RLGL.State.colorg; - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 2] = RLGL.State.colorb; - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 3] = RLGL.State.colora; - - RLGL.State.vertexCounter++; - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount++; -} - -// Define one vertex (position) -void rlVertex2f(float x, float y) -{ - rlVertex3f(x, y, RLGL.currentBatch->currentDepth); -} - -// Define one vertex (position) -void rlVertex2i(int x, int y) -{ - rlVertex3f((float)x, (float)y, RLGL.currentBatch->currentDepth); -} - -// Define one vertex (texture coordinate) -// NOTE: Texture coordinates are limited to QUADS only -void rlTexCoord2f(float x, float y) -{ - RLGL.State.texcoordx = x; - RLGL.State.texcoordy = y; -} - -// Define one vertex (normal) -// NOTE: Normals limited to TRIANGLES only? -void rlNormal3f(float x, float y, float z) -{ - RLGL.State.normalx = x; - RLGL.State.normaly = y; - RLGL.State.normalz = z; -} - -// Define one vertex (color) -void rlColor4ub(unsigned char x, unsigned char y, unsigned char z, unsigned char w) -{ - RLGL.State.colorr = x; - RLGL.State.colorg = y; - RLGL.State.colorb = z; - RLGL.State.colora = w; -} - -// Define one vertex (color) -void rlColor4f(float r, float g, float b, float a) -{ - rlColor4ub((unsigned char)(r*255), (unsigned char)(g*255), (unsigned char)(b*255), (unsigned char)(a*255)); -} - -// Define one vertex (color) -void rlColor3f(float x, float y, float z) -{ - rlColor4ub((unsigned char)(x*255), (unsigned char)(y*255), (unsigned char)(z*255), 255); -} - -#endif - -//-------------------------------------------------------------------------------------- -// Module Functions Definition - OpenGL style functions (common to 1.1, 3.3+, ES2) -//-------------------------------------------------------------------------------------- - -// Set current texture to use -void rlSetTexture(unsigned int id) -{ - if (id == 0) - { -#if defined(GRAPHICS_API_OPENGL_11) - rlDisableTexture(); -#else - // NOTE: If quads batch limit is reached, we force a draw call and next batch starts - if (RLGL.State.vertexCounter >= - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4) - { - rlDrawRenderBatch(RLGL.currentBatch); - } -#endif - } - else - { -#if defined(GRAPHICS_API_OPENGL_11) - rlEnableTexture(id); -#else - if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId != id) - { - if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount > 0) - { - // Make sure current RLGL.currentBatch->draws[i].vertexCount is aligned a multiple of 4, - // that way, following QUADS drawing will keep aligned with index processing - // It implies adding some extra alignment vertex at the end of the draw, - // those vertex are not processed but they are considered as an additional offset - // for the next set of vertex to be drawn - if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount : RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4); - else if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? 1 : (4 - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4))); - else RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = 0; - - if (!rlCheckRenderBatchLimit(RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment)) - { - RLGL.State.vertexCounter += RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment; - - RLGL.currentBatch->drawCounter++; - } - } - - if (RLGL.currentBatch->drawCounter >= RL_DEFAULT_BATCH_DRAWCALLS) rlDrawRenderBatch(RLGL.currentBatch); - - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = id; - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount = 0; - } -#endif - } -} - -// Select and active a texture slot -void rlActiveTextureSlot(int slot) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glActiveTexture(GL_TEXTURE0 + slot); -#endif -} - -// Enable texture -void rlEnableTexture(unsigned int id) -{ -#if defined(GRAPHICS_API_OPENGL_11) - glEnable(GL_TEXTURE_2D); -#endif - glBindTexture(GL_TEXTURE_2D, id); -} - -// Disable texture -void rlDisableTexture(void) -{ -#if defined(GRAPHICS_API_OPENGL_11) - glDisable(GL_TEXTURE_2D); -#endif - glBindTexture(GL_TEXTURE_2D, 0); -} - -// Enable texture cubemap -void rlEnableTextureCubemap(unsigned int id) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindTexture(GL_TEXTURE_CUBE_MAP, id); -#endif -} - -// Disable texture cubemap -void rlDisableTextureCubemap(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindTexture(GL_TEXTURE_CUBE_MAP, 0); -#endif -} - -// Set texture parameters (wrap mode/filter mode) -void rlTextureParameters(unsigned int id, int param, int value) -{ - glBindTexture(GL_TEXTURE_2D, id); - -#if !defined(GRAPHICS_API_OPENGL_11) - // Reset anisotropy filter, in case it was set - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0f); -#endif - - switch (param) - { - case RL_TEXTURE_WRAP_S: - case RL_TEXTURE_WRAP_T: - { - if (value == RL_TEXTURE_WRAP_MIRROR_CLAMP) - { -#if !defined(GRAPHICS_API_OPENGL_11) - if (RLGL.ExtSupported.texMirrorClamp) glTexParameteri(GL_TEXTURE_2D, param, value); - else TRACELOG(RL_LOG_WARNING, "GL: Clamp mirror wrap mode not supported (GL_MIRROR_CLAMP_EXT)"); -#endif - } - else glTexParameteri(GL_TEXTURE_2D, param, value); - - } break; - case RL_TEXTURE_MAG_FILTER: - case RL_TEXTURE_MIN_FILTER: glTexParameteri(GL_TEXTURE_2D, param, value); break; - case RL_TEXTURE_FILTER_ANISOTROPIC: - { -#if !defined(GRAPHICS_API_OPENGL_11) - if (value <= RLGL.ExtSupported.maxAnisotropyLevel) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); - else if (RLGL.ExtSupported.maxAnisotropyLevel > 0.0f) - { - TRACELOG(RL_LOG_WARNING, "GL: Maximum anisotropic filter level supported is %iX", id, (int)RLGL.ExtSupported.maxAnisotropyLevel); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); - } - else TRACELOG(RL_LOG_WARNING, "GL: Anisotropic filtering not supported"); -#endif - } break; -#if defined(GRAPHICS_API_OPENGL_33) - case RL_TEXTURE_MIPMAP_BIAS_RATIO: glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_LOD_BIAS, value/100.0f); -#endif - default: break; - } - - glBindTexture(GL_TEXTURE_2D, 0); -} - -// Set cubemap parameters (wrap mode/filter mode) -void rlCubemapParameters(unsigned int id, int param, int value) -{ -#if !defined(GRAPHICS_API_OPENGL_11) - glBindTexture(GL_TEXTURE_CUBE_MAP, id); - - // Reset anisotropy filter, in case it was set - glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0f); - - switch (param) - { - case RL_TEXTURE_WRAP_S: - case RL_TEXTURE_WRAP_T: - { - if (value == RL_TEXTURE_WRAP_MIRROR_CLAMP) - { - if (RLGL.ExtSupported.texMirrorClamp) glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); - else TRACELOG(RL_LOG_WARNING, "GL: Clamp mirror wrap mode not supported (GL_MIRROR_CLAMP_EXT)"); - } - else glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); - - } break; - case RL_TEXTURE_MAG_FILTER: - case RL_TEXTURE_MIN_FILTER: glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); break; - case RL_TEXTURE_FILTER_ANISOTROPIC: - { - if (value <= RLGL.ExtSupported.maxAnisotropyLevel) glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); - else if (RLGL.ExtSupported.maxAnisotropyLevel > 0.0f) - { - TRACELOG(RL_LOG_WARNING, "GL: Maximum anisotropic filter level supported is %iX", id, (int)RLGL.ExtSupported.maxAnisotropyLevel); - glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); - } - else TRACELOG(RL_LOG_WARNING, "GL: Anisotropic filtering not supported"); - } break; -#if defined(GRAPHICS_API_OPENGL_33) - case RL_TEXTURE_MIPMAP_BIAS_RATIO: glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_LOD_BIAS, value/100.0f); -#endif - default: break; - } - - glBindTexture(GL_TEXTURE_CUBE_MAP, 0); -#endif -} - -// Enable shader program -void rlEnableShader(unsigned int id) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) - glUseProgram(id); -#endif -} - -// Disable shader program -void rlDisableShader(void) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) - glUseProgram(0); -#endif -} - -// Enable rendering to texture (fbo) -void rlEnableFramebuffer(unsigned int id) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) - glBindFramebuffer(GL_FRAMEBUFFER, id); -#endif -} - -// Disable rendering to texture -void rlDisableFramebuffer(void) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) - glBindFramebuffer(GL_FRAMEBUFFER, 0); -#endif -} - -// Blit active framebuffer to main framebuffer -void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT) - glBlitFramebuffer(srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, bufferMask, GL_NEAREST); -#endif -} - -// Activate multiple draw color buffers -// NOTE: One color buffer is always active by default -void rlActiveDrawBuffers(int count) -{ -#if ((defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT)) - // NOTE: Maximum number of draw buffers supported is implementation dependant, - // it can be queried with glGet*() but it must be at least 8 - //GLint maxDrawBuffers = 0; - //glGetIntegerv(GL_MAX_DRAW_BUFFERS, &maxDrawBuffers); - - if (count > 0) - { - if (count > 8) TRACELOG(LOG_WARNING, "GL: Max color buffers limited to 8"); - else - { - unsigned int buffers[8] = { -#if defined(GRAPHICS_API_OPENGL_ES3) - GL_COLOR_ATTACHMENT0_EXT, - GL_COLOR_ATTACHMENT1_EXT, - GL_COLOR_ATTACHMENT2_EXT, - GL_COLOR_ATTACHMENT3_EXT, - GL_COLOR_ATTACHMENT4_EXT, - GL_COLOR_ATTACHMENT5_EXT, - GL_COLOR_ATTACHMENT6_EXT, - GL_COLOR_ATTACHMENT7_EXT, -#else - GL_COLOR_ATTACHMENT0, - GL_COLOR_ATTACHMENT1, - GL_COLOR_ATTACHMENT2, - GL_COLOR_ATTACHMENT3, - GL_COLOR_ATTACHMENT4, - GL_COLOR_ATTACHMENT5, - GL_COLOR_ATTACHMENT6, - GL_COLOR_ATTACHMENT7, -#endif - }; - -#if defined(GRAPHICS_API_OPENGL_ES3) - glDrawBuffersEXT(count, buffers); -#else - glDrawBuffers(count, buffers); -#endif - } - } - else TRACELOG(LOG_WARNING, "GL: One color buffer active by default"); -#endif -} - -//---------------------------------------------------------------------------------- -// General render state configuration -//---------------------------------------------------------------------------------- - -// Enable color blending -void rlEnableColorBlend(void) { glEnable(GL_BLEND); } - -// Disable color blending -void rlDisableColorBlend(void) { glDisable(GL_BLEND); } - -// Enable depth test -void rlEnableDepthTest(void) { glEnable(GL_DEPTH_TEST); } - -// Disable depth test -void rlDisableDepthTest(void) { glDisable(GL_DEPTH_TEST); } - -// Enable depth write -void rlEnableDepthMask(void) { glDepthMask(GL_TRUE); } - -// Disable depth write -void rlDisableDepthMask(void) { glDepthMask(GL_FALSE); } - -// Enable backface culling -void rlEnableBackfaceCulling(void) { glEnable(GL_CULL_FACE); } - -// Disable backface culling -void rlDisableBackfaceCulling(void) { glDisable(GL_CULL_FACE); } - -// Set face culling mode -void rlSetCullFace(int mode) -{ - switch (mode) - { - case RL_CULL_FACE_BACK: glCullFace(GL_BACK); break; - case RL_CULL_FACE_FRONT: glCullFace(GL_FRONT); break; - default: break; - } -} - -// Enable scissor test -void rlEnableScissorTest(void) { glEnable(GL_SCISSOR_TEST); } - -// Disable scissor test -void rlDisableScissorTest(void) { glDisable(GL_SCISSOR_TEST); } - -// Scissor test -void rlScissor(int x, int y, int width, int height) { glScissor(x, y, width, height); } - -// Enable wire mode -void rlEnableWireMode(void) -{ -#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) - // NOTE: glPolygonMode() not available on OpenGL ES - glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); -#endif -} - -void rlEnablePointMode(void) -{ -#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) - // NOTE: glPolygonMode() not available on OpenGL ES - glPolygonMode(GL_FRONT_AND_BACK, GL_POINT); - glEnable(GL_PROGRAM_POINT_SIZE); -#endif -} -// Disable wire mode -void rlDisableWireMode(void) -{ -#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) - // NOTE: glPolygonMode() not available on OpenGL ES - glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); -#endif -} - -// Set the line drawing width -void rlSetLineWidth(float width) { glLineWidth(width); } - -// Get the line drawing width -float rlGetLineWidth(void) -{ - float width = 0; - glGetFloatv(GL_LINE_WIDTH, &width); - return width; -} - -// Enable line aliasing -void rlEnableSmoothLines(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_11) - glEnable(GL_LINE_SMOOTH); -#endif -} - -// Disable line aliasing -void rlDisableSmoothLines(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_11) - glDisable(GL_LINE_SMOOTH); -#endif -} - -// Enable stereo rendering -void rlEnableStereoRender(void) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) - RLGL.State.stereoRender = true; -#endif -} - -// Disable stereo rendering -void rlDisableStereoRender(void) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) - RLGL.State.stereoRender = false; -#endif -} - -// Check if stereo render is enabled -bool rlIsStereoRenderEnabled(void) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) - return RLGL.State.stereoRender; -#else - return false; -#endif -} - -// Clear color buffer with color -void rlClearColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a) -{ - // Color values clamp to 0.0f(0) and 1.0f(255) - float cr = (float)r/255; - float cg = (float)g/255; - float cb = (float)b/255; - float ca = (float)a/255; - - glClearColor(cr, cg, cb, ca); -} - -// Clear used screen buffers (color and depth) -void rlClearScreenBuffers(void) -{ - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear used buffers: Color and Depth (Depth is used for 3D) - //glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); // Stencil buffer not used... -} - -// Check and log OpenGL error codes -void rlCheckErrors() -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - int check = 1; - while (check) - { - const GLenum err = glGetError(); - switch (err) - { - case GL_NO_ERROR: check = 0; break; - case 0x0500: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_ENUM"); break; - case 0x0501: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_VALUE"); break; - case 0x0502: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_OPERATION"); break; - case 0x0503: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_STACK_OVERFLOW"); break; - case 0x0504: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_STACK_UNDERFLOW"); break; - case 0x0505: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_OUT_OF_MEMORY"); break; - case 0x0506: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_FRAMEBUFFER_OPERATION"); break; - default: TRACELOG(RL_LOG_WARNING, "GL: Error detected: Unknown error code: %x", err); break; - } - } -#endif -} - -// Set blend mode -void rlSetBlendMode(int mode) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if ((RLGL.State.currentBlendMode != mode) || ((mode == RL_BLEND_CUSTOM || mode == RL_BLEND_CUSTOM_SEPARATE) && RLGL.State.glCustomBlendModeModified)) - { - rlDrawRenderBatch(RLGL.currentBatch); - - switch (mode) - { - case RL_BLEND_ALPHA: glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; - case RL_BLEND_ADDITIVE: glBlendFunc(GL_SRC_ALPHA, GL_ONE); glBlendEquation(GL_FUNC_ADD); break; - case RL_BLEND_MULTIPLIED: glBlendFunc(GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; - case RL_BLEND_ADD_COLORS: glBlendFunc(GL_ONE, GL_ONE); glBlendEquation(GL_FUNC_ADD); break; - case RL_BLEND_SUBTRACT_COLORS: glBlendFunc(GL_ONE, GL_ONE); glBlendEquation(GL_FUNC_SUBTRACT); break; - case RL_BLEND_ALPHA_PREMULTIPLY: glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; - case RL_BLEND_CUSTOM: - { - // NOTE: Using GL blend src/dst factors and GL equation configured with rlSetBlendFactors() - glBlendFunc(RLGL.State.glBlendSrcFactor, RLGL.State.glBlendDstFactor); glBlendEquation(RLGL.State.glBlendEquation); - - } break; - case RL_BLEND_CUSTOM_SEPARATE: - { - // NOTE: Using GL blend src/dst factors and GL equation configured with rlSetBlendFactorsSeparate() - glBlendFuncSeparate(RLGL.State.glBlendSrcFactorRGB, RLGL.State.glBlendDestFactorRGB, RLGL.State.glBlendSrcFactorAlpha, RLGL.State.glBlendDestFactorAlpha); - glBlendEquationSeparate(RLGL.State.glBlendEquationRGB, RLGL.State.glBlendEquationAlpha); - - } break; - default: break; - } - - RLGL.State.currentBlendMode = mode; - RLGL.State.glCustomBlendModeModified = false; - } -#endif -} - -// Set blending mode factor and equation -void rlSetBlendFactors(int glSrcFactor, int glDstFactor, int glEquation) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if ((RLGL.State.glBlendSrcFactor != glSrcFactor) || - (RLGL.State.glBlendDstFactor != glDstFactor) || - (RLGL.State.glBlendEquation != glEquation)) - { - RLGL.State.glBlendSrcFactor = glSrcFactor; - RLGL.State.glBlendDstFactor = glDstFactor; - RLGL.State.glBlendEquation = glEquation; - - RLGL.State.glCustomBlendModeModified = true; - } -#endif -} - -// Set blending mode factor and equation separately for RGB and alpha -void rlSetBlendFactorsSeparate(int glSrcRGB, int glDstRGB, int glSrcAlpha, int glDstAlpha, int glEqRGB, int glEqAlpha) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if ((RLGL.State.glBlendSrcFactorRGB != glSrcRGB) || - (RLGL.State.glBlendDestFactorRGB != glDstRGB) || - (RLGL.State.glBlendSrcFactorAlpha != glSrcAlpha) || - (RLGL.State.glBlendDestFactorAlpha != glDstAlpha) || - (RLGL.State.glBlendEquationRGB != glEqRGB) || - (RLGL.State.glBlendEquationAlpha != glEqAlpha)) - { - RLGL.State.glBlendSrcFactorRGB = glSrcRGB; - RLGL.State.glBlendDestFactorRGB = glDstRGB; - RLGL.State.glBlendSrcFactorAlpha = glSrcAlpha; - RLGL.State.glBlendDestFactorAlpha = glDstAlpha; - RLGL.State.glBlendEquationRGB = glEqRGB; - RLGL.State.glBlendEquationAlpha = glEqAlpha; - - RLGL.State.glCustomBlendModeModified = true; - } -#endif -} - -//---------------------------------------------------------------------------------- -// Module Functions Definition - OpenGL Debug -//---------------------------------------------------------------------------------- -#if defined(RLGL_ENABLE_OPENGL_DEBUG_CONTEXT) && defined(GRAPHICS_API_OPENGL_43) -static void GLAPIENTRY rlDebugMessageCallback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam) -{ - // Ignore non-significant error/warning codes (NVidia drivers) - // NOTE: Here there are the details with a sample output: - // - #131169 - Framebuffer detailed info: The driver allocated storage for renderbuffer 2. (severity: low) - // - #131185 - Buffer detailed info: Buffer object 1 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_ENUM_88e4) - // will use VIDEO memory as the source for buffer object operations. (severity: low) - // - #131218 - Program/shader state performance warning: Vertex shader in program 7 is being recompiled based on GL state. (severity: medium) - // - #131204 - Texture state usage warning: The texture object (0) bound to texture image unit 0 does not have - // a defined base level and cannot be used for texture mapping. (severity: low) - if ((id == 131169) || (id == 131185) || (id == 131218) || (id == 131204)) return; - - const char *msgSource = NULL; - switch (source) - { - case GL_DEBUG_SOURCE_API: msgSource = "API"; break; - case GL_DEBUG_SOURCE_WINDOW_SYSTEM: msgSource = "WINDOW_SYSTEM"; break; - case GL_DEBUG_SOURCE_SHADER_COMPILER: msgSource = "SHADER_COMPILER"; break; - case GL_DEBUG_SOURCE_THIRD_PARTY: msgSource = "THIRD_PARTY"; break; - case GL_DEBUG_SOURCE_APPLICATION: msgSource = "APPLICATION"; break; - case GL_DEBUG_SOURCE_OTHER: msgSource = "OTHER"; break; - default: break; - } - - const char *msgType = NULL; - switch (type) - { - case GL_DEBUG_TYPE_ERROR: msgType = "ERROR"; break; - case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: msgType = "DEPRECATED_BEHAVIOR"; break; - case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: msgType = "UNDEFINED_BEHAVIOR"; break; - case GL_DEBUG_TYPE_PORTABILITY: msgType = "PORTABILITY"; break; - case GL_DEBUG_TYPE_PERFORMANCE: msgType = "PERFORMANCE"; break; - case GL_DEBUG_TYPE_MARKER: msgType = "MARKER"; break; - case GL_DEBUG_TYPE_PUSH_GROUP: msgType = "PUSH_GROUP"; break; - case GL_DEBUG_TYPE_POP_GROUP: msgType = "POP_GROUP"; break; - case GL_DEBUG_TYPE_OTHER: msgType = "OTHER"; break; - default: break; - } - - const char *msgSeverity = "DEFAULT"; - switch (severity) - { - case GL_DEBUG_SEVERITY_LOW: msgSeverity = "LOW"; break; - case GL_DEBUG_SEVERITY_MEDIUM: msgSeverity = "MEDIUM"; break; - case GL_DEBUG_SEVERITY_HIGH: msgSeverity = "HIGH"; break; - case GL_DEBUG_SEVERITY_NOTIFICATION: msgSeverity = "NOTIFICATION"; break; - default: break; - } - - TRACELOG(LOG_WARNING, "GL: OpenGL debug message: %s", message); - TRACELOG(LOG_WARNING, " > Type: %s", msgType); - TRACELOG(LOG_WARNING, " > Source = %s", msgSource); - TRACELOG(LOG_WARNING, " > Severity = %s", msgSeverity); -} -#endif - -//---------------------------------------------------------------------------------- -// Module Functions Definition - rlgl functionality -//---------------------------------------------------------------------------------- - -// Initialize rlgl: OpenGL extensions, default buffers/shaders/textures, OpenGL states -void rlglInit(int width, int height) -{ - // Enable OpenGL debug context if required -#if defined(RLGL_ENABLE_OPENGL_DEBUG_CONTEXT) && defined(GRAPHICS_API_OPENGL_43) - if ((glDebugMessageCallback != NULL) && (glDebugMessageControl != NULL)) - { - glDebugMessageCallback(rlDebugMessageCallback, 0); - // glDebugMessageControl(GL_DEBUG_SOURCE_API, GL_DEBUG_TYPE_ERROR, GL_DEBUG_SEVERITY_HIGH, 0, 0, GL_TRUE); - - // Debug context options: - // - GL_DEBUG_OUTPUT - Faster version but not useful for breakpoints - // - GL_DEBUG_OUTPUT_SYNCHRONUS - Callback is in sync with errors, so a breakpoint can be placed on the callback in order to get a stacktrace for the GL error - glEnable(GL_DEBUG_OUTPUT); - glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS); - } -#endif - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // Init default white texture - unsigned char pixels[4] = { 255, 255, 255, 255 }; // 1 pixel RGBA (4 bytes) - RLGL.State.defaultTextureId = rlLoadTexture(pixels, 1, 1, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, 1); - - if (RLGL.State.defaultTextureId != 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Default texture loaded successfully", RLGL.State.defaultTextureId); - else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load default texture"); - - // Init default Shader (customized for GL 3.3 and ES2) - // Loaded: RLGL.State.defaultShaderId + RLGL.State.defaultShaderLocs - rlLoadShaderDefault(); - RLGL.State.currentShaderId = RLGL.State.defaultShaderId; - RLGL.State.currentShaderLocs = RLGL.State.defaultShaderLocs; - - // Init default vertex arrays buffers - RLGL.defaultBatch = rlLoadRenderBatch(RL_DEFAULT_BATCH_BUFFERS, RL_DEFAULT_BATCH_BUFFER_ELEMENTS); - RLGL.currentBatch = &RLGL.defaultBatch; - - // Init stack matrices (emulating OpenGL 1.1) - for (int i = 0; i < RL_MAX_MATRIX_STACK_SIZE; i++) RLGL.State.stack[i] = rlMatrixIdentity(); - - // Init internal matrices - RLGL.State.transform = rlMatrixIdentity(); - RLGL.State.projection = rlMatrixIdentity(); - RLGL.State.modelview = rlMatrixIdentity(); - RLGL.State.currentMatrix = &RLGL.State.modelview; -#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 - - // Initialize OpenGL default states - //---------------------------------------------------------- - // Init state: Depth test - glDepthFunc(GL_LEQUAL); // Type of depth testing to apply - glDisable(GL_DEPTH_TEST); // Disable depth testing for 2D (only used for 3D) - - // Init state: Blending mode - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // Color blending function (how colors are mixed) - glEnable(GL_BLEND); // Enable color blending (required to work with transparencies) - - // Init state: Culling - // NOTE: All shapes/models triangles are drawn CCW - glCullFace(GL_BACK); // Cull the back face (default) - glFrontFace(GL_CCW); // Front face are defined counter clockwise (default) - glEnable(GL_CULL_FACE); // Enable backface culling - - // Init state: Cubemap seamless -#if defined(GRAPHICS_API_OPENGL_33) - glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS); // Seamless cubemaps (not supported on OpenGL ES 2.0) -#endif - -#if defined(GRAPHICS_API_OPENGL_11) - // Init state: Color hints (deprecated in OpenGL 3.0+) - glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Improve quality of color and texture coordinate interpolation - glShadeModel(GL_SMOOTH); // Smooth shading between vertex (vertex colors interpolation) -#endif - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // Store screen size into global variables - RLGL.State.framebufferWidth = width; - RLGL.State.framebufferHeight = height; - - TRACELOG(RL_LOG_INFO, "RLGL: Default OpenGL state initialized successfully"); - //---------------------------------------------------------- -#endif - - // Init state: Color/Depth buffers clear - glClearColor(0.0f, 0.0f, 0.0f, 1.0f); // Set clear color (black) - glClearDepth(1.0f); // Set clear depth value (default) - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear color and depth buffers (depth buffer required for 3D) -} - -// Vertex Buffer Object deinitialization (memory free) -void rlglClose(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - rlUnloadRenderBatch(RLGL.defaultBatch); - - rlUnloadShaderDefault(); // Unload default shader - - glDeleteTextures(1, &RLGL.State.defaultTextureId); // Unload default texture - TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Default texture unloaded successfully", RLGL.State.defaultTextureId); -#endif -} - -// Load OpenGL extensions -// NOTE: External loader function must be provided -void rlLoadExtensions(void *loader) -{ -#if defined(GRAPHICS_API_OPENGL_33) // Also defined for GRAPHICS_API_OPENGL_21 - // NOTE: glad is generated and contains only required OpenGL 3.3 Core extensions (and lower versions) - if (gladLoadGL((GLADloadfunc)loader) == 0) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL extensions"); - else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL extensions loaded successfully"); - - // Get number of supported extensions - GLint numExt = 0; - glGetIntegerv(GL_NUM_EXTENSIONS, &numExt); - TRACELOG(RL_LOG_INFO, "GL: Supported extensions count: %i", numExt); - -#if defined(RLGL_SHOW_GL_DETAILS_INFO) - // Get supported extensions list - // WARNING: glGetStringi() not available on OpenGL 2.1 - TRACELOG(RL_LOG_INFO, "GL: OpenGL extensions:"); - for (int i = 0; i < numExt; i++) TRACELOG(RL_LOG_INFO, " %s", glGetStringi(GL_EXTENSIONS, i)); -#endif - -#if defined(GRAPHICS_API_OPENGL_21) - // Register supported extensions flags - // Optional OpenGL 2.1 extensions - RLGL.ExtSupported.vao = GLAD_GL_ARB_vertex_array_object; - RLGL.ExtSupported.instancing = (GLAD_GL_EXT_draw_instanced && GLAD_GL_ARB_instanced_arrays); - RLGL.ExtSupported.texNPOT = GLAD_GL_ARB_texture_non_power_of_two; - RLGL.ExtSupported.texFloat32 = GLAD_GL_ARB_texture_float; - RLGL.ExtSupported.texFloat16 = GLAD_GL_ARB_texture_float; - RLGL.ExtSupported.texDepth = GLAD_GL_ARB_depth_texture; - RLGL.ExtSupported.maxDepthBits = 32; - RLGL.ExtSupported.texAnisoFilter = GLAD_GL_EXT_texture_filter_anisotropic; - RLGL.ExtSupported.texMirrorClamp = GLAD_GL_EXT_texture_mirror_clamp; -#else - // Register supported extensions flags - // OpenGL 3.3 extensions supported by default (core) - RLGL.ExtSupported.vao = true; - RLGL.ExtSupported.instancing = true; - RLGL.ExtSupported.texNPOT = true; - RLGL.ExtSupported.texFloat32 = true; - RLGL.ExtSupported.texFloat16 = true; - RLGL.ExtSupported.texDepth = true; - RLGL.ExtSupported.maxDepthBits = 32; - RLGL.ExtSupported.texAnisoFilter = true; - RLGL.ExtSupported.texMirrorClamp = true; -#endif - - // Optional OpenGL 3.3 extensions - RLGL.ExtSupported.texCompASTC = GLAD_GL_KHR_texture_compression_astc_hdr && GLAD_GL_KHR_texture_compression_astc_ldr; - RLGL.ExtSupported.texCompDXT = GLAD_GL_EXT_texture_compression_s3tc; // Texture compression: DXT - RLGL.ExtSupported.texCompETC2 = GLAD_GL_ARB_ES3_compatibility; // Texture compression: ETC2/EAC - #if defined(GRAPHICS_API_OPENGL_43) - RLGL.ExtSupported.computeShader = GLAD_GL_ARB_compute_shader; - RLGL.ExtSupported.ssbo = GLAD_GL_ARB_shader_storage_buffer_object; - #endif - -#endif // GRAPHICS_API_OPENGL_33 - -#if defined(GRAPHICS_API_OPENGL_ES3) - // Register supported extensions flags - // OpenGL ES 3.0 extensions supported by default (or it should be) - RLGL.ExtSupported.vao = true; - RLGL.ExtSupported.instancing = true; - RLGL.ExtSupported.texNPOT = true; - RLGL.ExtSupported.texFloat32 = true; - RLGL.ExtSupported.texFloat16 = true; - RLGL.ExtSupported.texDepth = true; - RLGL.ExtSupported.texDepthWebGL = true; - RLGL.ExtSupported.maxDepthBits = 24; - RLGL.ExtSupported.texAnisoFilter = true; - RLGL.ExtSupported.texMirrorClamp = true; - // TODO: Check for additional OpenGL ES 3.0 supported extensions: - //RLGL.ExtSupported.texCompDXT = true; - //RLGL.ExtSupported.texCompETC1 = true; - //RLGL.ExtSupported.texCompETC2 = true; - //RLGL.ExtSupported.texCompPVRT = true; - //RLGL.ExtSupported.texCompASTC = true; - //RLGL.ExtSupported.maxAnisotropyLevel = true; - //RLGL.ExtSupported.computeShader = true; - //RLGL.ExtSupported.ssbo = true; - -#elif defined(GRAPHICS_API_OPENGL_ES2) - - #if defined(PLATFORM_DESKTOP) || defined(PLATFORM_DESKTOP_SDL) - // TODO: Support GLAD loader for OpenGL ES 3.0 - if (gladLoadGLES2((GLADloadfunc)loader) == 0) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL ES2.0 functions"); - else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL ES 2.0 loaded successfully"); - #endif - - // Get supported extensions list - GLint numExt = 0; - const char **extList = RL_MALLOC(512*sizeof(const char *)); // Allocate 512 strings pointers (2 KB) - const char *extensions = (const char *)glGetString(GL_EXTENSIONS); // One big const string - - // NOTE: We have to duplicate string because glGetString() returns a const string - int size = strlen(extensions) + 1; // Get extensions string size in bytes - char *extensionsDup = (char *)RL_CALLOC(size, sizeof(char)); - strcpy(extensionsDup, extensions); - extList[numExt] = extensionsDup; - - for (int i = 0; i < size; i++) - { - if (extensionsDup[i] == ' ') - { - extensionsDup[i] = '\0'; - numExt++; - extList[numExt] = &extensionsDup[i + 1]; - } - } - - TRACELOG(RL_LOG_INFO, "GL: Supported extensions count: %i", numExt); - -#if defined(RLGL_SHOW_GL_DETAILS_INFO) - TRACELOG(RL_LOG_INFO, "GL: OpenGL extensions:"); - for (int i = 0; i < numExt; i++) TRACELOG(RL_LOG_INFO, " %s", extList[i]); -#endif - - // Check required extensions - for (int i = 0; i < numExt; i++) - { - // Check VAO support - // NOTE: Only check on OpenGL ES, OpenGL 3.3 has VAO support as core feature - if (strcmp(extList[i], (const char *)"GL_OES_vertex_array_object") == 0) - { - // The extension is supported by our hardware and driver, try to get related functions pointers - // NOTE: emscripten does not support VAOs natively, it uses emulation and it reduces overall performance... - glGenVertexArrays = (PFNGLGENVERTEXARRAYSOESPROC)((rlglLoadProc)loader)("glGenVertexArraysOES"); - glBindVertexArray = (PFNGLBINDVERTEXARRAYOESPROC)((rlglLoadProc)loader)("glBindVertexArrayOES"); - glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSOESPROC)((rlglLoadProc)loader)("glDeleteVertexArraysOES"); - //glIsVertexArray = (PFNGLISVERTEXARRAYOESPROC)loader("glIsVertexArrayOES"); // NOTE: Fails in WebGL, omitted - - if ((glGenVertexArrays != NULL) && (glBindVertexArray != NULL) && (glDeleteVertexArrays != NULL)) RLGL.ExtSupported.vao = true; - } - - // Check instanced rendering support - if (strcmp(extList[i], (const char *)"GL_ANGLE_instanced_arrays") == 0) // Web ANGLE - { - glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedANGLE"); - glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedANGLE"); - glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorANGLE"); - - if ((glDrawArraysInstanced != NULL) && (glDrawElementsInstanced != NULL) && (glVertexAttribDivisor != NULL)) RLGL.ExtSupported.instancing = true; - } - else - { - if ((strcmp(extList[i], (const char *)"GL_EXT_draw_instanced") == 0) && // Standard EXT - (strcmp(extList[i], (const char *)"GL_EXT_instanced_arrays") == 0)) - { - glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedEXT"); - glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedEXT"); - glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorEXT"); - - if ((glDrawArraysInstanced != NULL) && (glDrawElementsInstanced != NULL) && (glVertexAttribDivisor != NULL)) RLGL.ExtSupported.instancing = true; - } - } - - // Check NPOT textures support - // NOTE: Only check on OpenGL ES, OpenGL 3.3 has NPOT textures full support as core feature - if (strcmp(extList[i], (const char *)"GL_OES_texture_npot") == 0) RLGL.ExtSupported.texNPOT = true; - - // Check texture float support - if (strcmp(extList[i], (const char *)"GL_OES_texture_float") == 0) RLGL.ExtSupported.texFloat32 = true; - if (strcmp(extList[i], (const char *)"GL_OES_texture_half_float") == 0) RLGL.ExtSupported.texFloat16 = true; - - // Check depth texture support - if (strcmp(extList[i], (const char *)"GL_OES_depth_texture") == 0) RLGL.ExtSupported.texDepth = true; - if (strcmp(extList[i], (const char *)"GL_WEBGL_depth_texture") == 0) RLGL.ExtSupported.texDepthWebGL = true; // WebGL requires unsized internal format - if (RLGL.ExtSupported.texDepthWebGL) RLGL.ExtSupported.texDepth = true; - - if (strcmp(extList[i], (const char *)"GL_OES_depth24") == 0) RLGL.ExtSupported.maxDepthBits = 24; // Not available on WebGL - if (strcmp(extList[i], (const char *)"GL_OES_depth32") == 0) RLGL.ExtSupported.maxDepthBits = 32; // Not available on WebGL - - // Check texture compression support: DXT - if ((strcmp(extList[i], (const char *)"GL_EXT_texture_compression_s3tc") == 0) || - (strcmp(extList[i], (const char *)"GL_WEBGL_compressed_texture_s3tc") == 0) || - (strcmp(extList[i], (const char *)"GL_WEBKIT_WEBGL_compressed_texture_s3tc") == 0)) RLGL.ExtSupported.texCompDXT = true; - - // Check texture compression support: ETC1 - if ((strcmp(extList[i], (const char *)"GL_OES_compressed_ETC1_RGB8_texture") == 0) || - (strcmp(extList[i], (const char *)"GL_WEBGL_compressed_texture_etc1") == 0)) RLGL.ExtSupported.texCompETC1 = true; - - // Check texture compression support: ETC2/EAC - if (strcmp(extList[i], (const char *)"GL_ARB_ES3_compatibility") == 0) RLGL.ExtSupported.texCompETC2 = true; - - // Check texture compression support: PVR - if (strcmp(extList[i], (const char *)"GL_IMG_texture_compression_pvrtc") == 0) RLGL.ExtSupported.texCompPVRT = true; - - // Check texture compression support: ASTC - if (strcmp(extList[i], (const char *)"GL_KHR_texture_compression_astc_hdr") == 0) RLGL.ExtSupported.texCompASTC = true; - - // Check anisotropic texture filter support - if (strcmp(extList[i], (const char *)"GL_EXT_texture_filter_anisotropic") == 0) RLGL.ExtSupported.texAnisoFilter = true; - - // Check clamp mirror wrap mode support - if (strcmp(extList[i], (const char *)"GL_EXT_texture_mirror_clamp") == 0) RLGL.ExtSupported.texMirrorClamp = true; - } - - // Free extensions pointers - RL_FREE(extList); - RL_FREE(extensionsDup); // Duplicated string must be deallocated -#endif // GRAPHICS_API_OPENGL_ES2 - - // Check OpenGL information and capabilities - //------------------------------------------------------------------------------ - // Show current OpenGL and GLSL version - TRACELOG(RL_LOG_INFO, "GL: OpenGL device information:"); - TRACELOG(RL_LOG_INFO, " > Vendor: %s", glGetString(GL_VENDOR)); - TRACELOG(RL_LOG_INFO, " > Renderer: %s", glGetString(GL_RENDERER)); - TRACELOG(RL_LOG_INFO, " > Version: %s", glGetString(GL_VERSION)); - TRACELOG(RL_LOG_INFO, " > GLSL: %s", glGetString(GL_SHADING_LANGUAGE_VERSION)); - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // NOTE: Anisotropy levels capability is an extension - #ifndef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT - #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF - #endif - glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &RLGL.ExtSupported.maxAnisotropyLevel); - -#if defined(RLGL_SHOW_GL_DETAILS_INFO) - // Show some OpenGL GPU capabilities - TRACELOG(RL_LOG_INFO, "GL: OpenGL capabilities:"); - GLint capability = 0; - glGetIntegerv(GL_MAX_TEXTURE_SIZE, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_SIZE: %i", capability); - glGetIntegerv(GL_MAX_CUBE_MAP_TEXTURE_SIZE, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_CUBE_MAP_TEXTURE_SIZE: %i", capability); - glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_IMAGE_UNITS: %i", capability); - glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_VERTEX_ATTRIBS: %i", capability); - #if !defined(GRAPHICS_API_OPENGL_ES2) - glGetIntegerv(GL_MAX_UNIFORM_BLOCK_SIZE, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_UNIFORM_BLOCK_SIZE: %i", capability); - glGetIntegerv(GL_MAX_DRAW_BUFFERS, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_DRAW_BUFFERS: %i", capability); - if (RLGL.ExtSupported.texAnisoFilter) TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_MAX_ANISOTROPY: %.0f", RLGL.ExtSupported.maxAnisotropyLevel); - #endif - glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &capability); - TRACELOG(RL_LOG_INFO, " GL_NUM_COMPRESSED_TEXTURE_FORMATS: %i", capability); - GLint *compFormats = (GLint *)RL_CALLOC(capability, sizeof(GLint)); - glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS, compFormats); - for (int i = 0; i < capability; i++) TRACELOG(RL_LOG_INFO, " %s", rlGetCompressedFormatName(compFormats[i])); - RL_FREE(compFormats); - -#if defined(GRAPHICS_API_OPENGL_43) - glGetIntegerv(GL_MAX_VERTEX_ATTRIB_BINDINGS, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_VERTEX_ATTRIB_BINDINGS: %i", capability); - glGetIntegerv(GL_MAX_UNIFORM_LOCATIONS, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_UNIFORM_LOCATIONS: %i", capability); -#endif // GRAPHICS_API_OPENGL_43 -#else // RLGL_SHOW_GL_DETAILS_INFO - - // Show some basic info about GL supported features - if (RLGL.ExtSupported.vao) TRACELOG(RL_LOG_INFO, "GL: VAO extension detected, VAO functions loaded successfully"); - else TRACELOG(RL_LOG_WARNING, "GL: VAO extension not found, VAO not supported"); - if (RLGL.ExtSupported.texNPOT) TRACELOG(RL_LOG_INFO, "GL: NPOT textures extension detected, full NPOT textures supported"); - else TRACELOG(RL_LOG_WARNING, "GL: NPOT textures extension not found, limited NPOT support (no-mipmaps, no-repeat)"); - if (RLGL.ExtSupported.texCompDXT) TRACELOG(RL_LOG_INFO, "GL: DXT compressed textures supported"); - if (RLGL.ExtSupported.texCompETC1) TRACELOG(RL_LOG_INFO, "GL: ETC1 compressed textures supported"); - if (RLGL.ExtSupported.texCompETC2) TRACELOG(RL_LOG_INFO, "GL: ETC2/EAC compressed textures supported"); - if (RLGL.ExtSupported.texCompPVRT) TRACELOG(RL_LOG_INFO, "GL: PVRT compressed textures supported"); - if (RLGL.ExtSupported.texCompASTC) TRACELOG(RL_LOG_INFO, "GL: ASTC compressed textures supported"); - if (RLGL.ExtSupported.computeShader) TRACELOG(RL_LOG_INFO, "GL: Compute shaders supported"); - if (RLGL.ExtSupported.ssbo) TRACELOG(RL_LOG_INFO, "GL: Shader storage buffer objects supported"); -#endif // RLGL_SHOW_GL_DETAILS_INFO - -#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 -} - -// Get current OpenGL version -int rlGetVersion(void) -{ - int glVersion = 0; -#if defined(GRAPHICS_API_OPENGL_11) - glVersion = RL_OPENGL_11; -#endif -#if defined(GRAPHICS_API_OPENGL_21) - glVersion = RL_OPENGL_21; -#elif defined(GRAPHICS_API_OPENGL_43) - glVersion = RL_OPENGL_43; -#elif defined(GRAPHICS_API_OPENGL_33) - glVersion = RL_OPENGL_33; -#endif -#if defined(GRAPHICS_API_OPENGL_ES3) - glVersion = RL_OPENGL_ES_30; -#elif defined(GRAPHICS_API_OPENGL_ES2) - glVersion = RL_OPENGL_ES_20; -#endif - - return glVersion; -} - -// Set current framebuffer width -void rlSetFramebufferWidth(int width) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - RLGL.State.framebufferWidth = width; -#endif -} - -// Set current framebuffer height -void rlSetFramebufferHeight(int height) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - RLGL.State.framebufferHeight = height; -#endif -} - -// Get default framebuffer width -int rlGetFramebufferWidth(void) -{ - int width = 0; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - width = RLGL.State.framebufferWidth; -#endif - return width; -} - -// Get default framebuffer height -int rlGetFramebufferHeight(void) -{ - int height = 0; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - height = RLGL.State.framebufferHeight; -#endif - return height; -} - -// Get default internal texture (white texture) -// NOTE: Default texture is a 1x1 pixel UNCOMPRESSED_R8G8B8A8 -unsigned int rlGetTextureIdDefault(void) -{ - unsigned int id = 0; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - id = RLGL.State.defaultTextureId; -#endif - return id; -} - -// Get default shader id -unsigned int rlGetShaderIdDefault(void) -{ - unsigned int id = 0; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - id = RLGL.State.defaultShaderId; -#endif - return id; -} - -// Get default shader locs -int *rlGetShaderLocsDefault(void) -{ - int *locs = NULL; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - locs = RLGL.State.defaultShaderLocs; -#endif - return locs; -} - -// Render batch management -//------------------------------------------------------------------------------------------------ -// Load render batch -rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements) -{ - rlRenderBatch batch = { 0 }; - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // Initialize CPU (RAM) vertex buffers (position, texcoord, color data and indexes) - //-------------------------------------------------------------------------------------------- - batch.vertexBuffer = (rlVertexBuffer *)RL_MALLOC(numBuffers*sizeof(rlVertexBuffer)); - - for (int i = 0; i < numBuffers; i++) - { - batch.vertexBuffer[i].elementCount = bufferElements; - - batch.vertexBuffer[i].vertices = (float *)RL_MALLOC(bufferElements*3*4*sizeof(float)); // 3 float by vertex, 4 vertex by quad - batch.vertexBuffer[i].texcoords = (float *)RL_MALLOC(bufferElements*2*4*sizeof(float)); // 2 float by texcoord, 4 texcoord by quad - batch.vertexBuffer[i].colors = (unsigned char *)RL_MALLOC(bufferElements*4*4*sizeof(unsigned char)); // 4 float by color, 4 colors by quad -#if defined(GRAPHICS_API_OPENGL_33) - batch.vertexBuffer[i].indices = (unsigned int *)RL_MALLOC(bufferElements*6*sizeof(unsigned int)); // 6 int by quad (indices) -#endif -#if defined(GRAPHICS_API_OPENGL_ES2) - batch.vertexBuffer[i].indices = (unsigned short *)RL_MALLOC(bufferElements*6*sizeof(unsigned short)); // 6 int by quad (indices) -#endif - - for (int j = 0; j < (3*4*bufferElements); j++) batch.vertexBuffer[i].vertices[j] = 0.0f; - for (int j = 0; j < (2*4*bufferElements); j++) batch.vertexBuffer[i].texcoords[j] = 0.0f; - for (int j = 0; j < (4*4*bufferElements); j++) batch.vertexBuffer[i].colors[j] = 0; - - int k = 0; - - // Indices can be initialized right now - for (int j = 0; j < (6*bufferElements); j += 6) - { - batch.vertexBuffer[i].indices[j] = 4*k; - batch.vertexBuffer[i].indices[j + 1] = 4*k + 1; - batch.vertexBuffer[i].indices[j + 2] = 4*k + 2; - batch.vertexBuffer[i].indices[j + 3] = 4*k; - batch.vertexBuffer[i].indices[j + 4] = 4*k + 2; - batch.vertexBuffer[i].indices[j + 5] = 4*k + 3; - - k++; - } - - RLGL.State.vertexCounter = 0; - } - - TRACELOG(RL_LOG_INFO, "RLGL: Render batch vertex buffers loaded successfully in RAM (CPU)"); - //-------------------------------------------------------------------------------------------- - - // Upload to GPU (VRAM) vertex data and initialize VAOs/VBOs - //-------------------------------------------------------------------------------------------- - for (int i = 0; i < numBuffers; i++) - { - if (RLGL.ExtSupported.vao) - { - // Initialize Quads VAO - glGenVertexArrays(1, &batch.vertexBuffer[i].vaoId); - glBindVertexArray(batch.vertexBuffer[i].vaoId); - } - - // Quads - Vertex buffers binding and attributes enable - // Vertex position buffer (shader-location = 0) - glGenBuffers(1, &batch.vertexBuffer[i].vboId[0]); - glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[0]); - glBufferData(GL_ARRAY_BUFFER, bufferElements*3*4*sizeof(float), batch.vertexBuffer[i].vertices, GL_DYNAMIC_DRAW); - glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION]); - glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION], 3, GL_FLOAT, 0, 0, 0); - - // Vertex texcoord buffer (shader-location = 1) - glGenBuffers(1, &batch.vertexBuffer[i].vboId[1]); - glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[1]); - glBufferData(GL_ARRAY_BUFFER, bufferElements*2*4*sizeof(float), batch.vertexBuffer[i].texcoords, GL_DYNAMIC_DRAW); - glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01]); - glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01], 2, GL_FLOAT, 0, 0, 0); - - // Vertex color buffer (shader-location = 3) - glGenBuffers(1, &batch.vertexBuffer[i].vboId[2]); - glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[2]); - glBufferData(GL_ARRAY_BUFFER, bufferElements*4*4*sizeof(unsigned char), batch.vertexBuffer[i].colors, GL_DYNAMIC_DRAW); - glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR]); - glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR], 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0); - - // Fill index buffer - glGenBuffers(1, &batch.vertexBuffer[i].vboId[3]); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[3]); -#if defined(GRAPHICS_API_OPENGL_33) - glBufferData(GL_ELEMENT_ARRAY_BUFFER, bufferElements*6*sizeof(int), batch.vertexBuffer[i].indices, GL_STATIC_DRAW); -#endif -#if defined(GRAPHICS_API_OPENGL_ES2) - glBufferData(GL_ELEMENT_ARRAY_BUFFER, bufferElements*6*sizeof(short), batch.vertexBuffer[i].indices, GL_STATIC_DRAW); -#endif - } - - TRACELOG(RL_LOG_INFO, "RLGL: Render batch vertex buffers loaded successfully in VRAM (GPU)"); - - // Unbind the current VAO - if (RLGL.ExtSupported.vao) glBindVertexArray(0); - //-------------------------------------------------------------------------------------------- - - // Init draw calls tracking system - //-------------------------------------------------------------------------------------------- - batch.draws = (rlDrawCall *)RL_MALLOC(RL_DEFAULT_BATCH_DRAWCALLS*sizeof(rlDrawCall)); - - for (int i = 0; i < RL_DEFAULT_BATCH_DRAWCALLS; i++) - { - batch.draws[i].mode = RL_QUADS; - batch.draws[i].vertexCount = 0; - batch.draws[i].vertexAlignment = 0; - //batch.draws[i].vaoId = 0; - //batch.draws[i].shaderId = 0; - batch.draws[i].textureId = RLGL.State.defaultTextureId; - //batch.draws[i].RLGL.State.projection = rlMatrixIdentity(); - //batch.draws[i].RLGL.State.modelview = rlMatrixIdentity(); - } - - batch.bufferCount = numBuffers; // Record buffer count - batch.drawCounter = 1; // Reset draws counter - batch.currentDepth = -1.0f; // Reset depth value - //-------------------------------------------------------------------------------------------- -#endif - - return batch; -} - -// Unload default internal buffers vertex data from CPU and GPU -void rlUnloadRenderBatch(rlRenderBatch batch) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // Unbind everything - glBindBuffer(GL_ARRAY_BUFFER, 0); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); - - // Unload all vertex buffers data - for (int i = 0; i < batch.bufferCount; i++) - { - // Unbind VAO attribs data - if (RLGL.ExtSupported.vao) - { - glBindVertexArray(batch.vertexBuffer[i].vaoId); - glDisableVertexAttribArray(0); - glDisableVertexAttribArray(1); - glDisableVertexAttribArray(2); - glDisableVertexAttribArray(3); - glBindVertexArray(0); - } - - // Delete VBOs from GPU (VRAM) - glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[0]); - glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[1]); - glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[2]); - glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[3]); - - // Delete VAOs from GPU (VRAM) - if (RLGL.ExtSupported.vao) glDeleteVertexArrays(1, &batch.vertexBuffer[i].vaoId); - - // Free vertex arrays memory from CPU (RAM) - RL_FREE(batch.vertexBuffer[i].vertices); - RL_FREE(batch.vertexBuffer[i].texcoords); - RL_FREE(batch.vertexBuffer[i].colors); - RL_FREE(batch.vertexBuffer[i].indices); - } - - // Unload arrays - RL_FREE(batch.vertexBuffer); - RL_FREE(batch.draws); -#endif -} - -// Draw render batch -// NOTE: We require a pointer to reset batch and increase current buffer (multi-buffer) -void rlDrawRenderBatch(rlRenderBatch *batch) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // Update batch vertex buffers - //------------------------------------------------------------------------------------------------------------ - // NOTE: If there is not vertex data, buffers doesn't need to be updated (vertexCount > 0) - // TODO: If no data changed on the CPU arrays --> No need to re-update GPU arrays (use a change detector flag?) - if (RLGL.State.vertexCounter > 0) - { - // Activate elements VAO - if (RLGL.ExtSupported.vao) glBindVertexArray(batch->vertexBuffer[batch->currentBuffer].vaoId); - - // Vertex positions buffer - glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[0]); - glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*3*sizeof(float), batch->vertexBuffer[batch->currentBuffer].vertices); - //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].vertices, GL_DYNAMIC_DRAW); // Update all buffer - - // Texture coordinates buffer - glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[1]); - glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*2*sizeof(float), batch->vertexBuffer[batch->currentBuffer].texcoords); - //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*2*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].texcoords, GL_DYNAMIC_DRAW); // Update all buffer - - // Colors buffer - glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[2]); - glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*4*sizeof(unsigned char), batch->vertexBuffer[batch->currentBuffer].colors); - //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*4*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].colors, GL_DYNAMIC_DRAW); // Update all buffer - - // NOTE: glMapBuffer() causes sync issue. - // If GPU is working with this buffer, glMapBuffer() will wait(stall) until GPU to finish its job. - // To avoid waiting (idle), you can call first glBufferData() with NULL pointer before glMapBuffer(). - // If you do that, the previous data in PBO will be discarded and glMapBuffer() returns a new - // allocated pointer immediately even if GPU is still working with the previous data. - - // Another option: map the buffer object into client's memory - // Probably this code could be moved somewhere else... - // batch->vertexBuffer[batch->currentBuffer].vertices = (float *)glMapBuffer(GL_ARRAY_BUFFER, GL_READ_WRITE); - // if (batch->vertexBuffer[batch->currentBuffer].vertices) - // { - // Update vertex data - // } - // glUnmapBuffer(GL_ARRAY_BUFFER); - - // Unbind the current VAO - if (RLGL.ExtSupported.vao) glBindVertexArray(0); - } - //------------------------------------------------------------------------------------------------------------ - - // Draw batch vertex buffers (considering VR stereo if required) - //------------------------------------------------------------------------------------------------------------ - Matrix matProjection = RLGL.State.projection; - Matrix matModelView = RLGL.State.modelview; - - int eyeCount = 1; - if (RLGL.State.stereoRender) eyeCount = 2; - - for (int eye = 0; eye < eyeCount; eye++) - { - if (eyeCount == 2) - { - // Setup current eye viewport (half screen width) - rlViewport(eye*RLGL.State.framebufferWidth/2, 0, RLGL.State.framebufferWidth/2, RLGL.State.framebufferHeight); - - // Set current eye view offset to modelview matrix - rlSetMatrixModelview(rlMatrixMultiply(matModelView, RLGL.State.viewOffsetStereo[eye])); - // Set current eye projection matrix - rlSetMatrixProjection(RLGL.State.projectionStereo[eye]); - } - - // Draw buffers - if (RLGL.State.vertexCounter > 0) - { - // Set current shader and upload current MVP matrix - glUseProgram(RLGL.State.currentShaderId); - - // Create modelview-projection matrix and upload to shader - Matrix matMVP = rlMatrixMultiply(RLGL.State.modelview, RLGL.State.projection); - float matMVPfloat[16] = { - matMVP.m0, matMVP.m1, matMVP.m2, matMVP.m3, - matMVP.m4, matMVP.m5, matMVP.m6, matMVP.m7, - matMVP.m8, matMVP.m9, matMVP.m10, matMVP.m11, - matMVP.m12, matMVP.m13, matMVP.m14, matMVP.m15 - }; - glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MVP], 1, false, matMVPfloat); - - if (RLGL.ExtSupported.vao) glBindVertexArray(batch->vertexBuffer[batch->currentBuffer].vaoId); - else - { - // Bind vertex attrib: position (shader-location = 0) - glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[0]); - glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION], 3, GL_FLOAT, 0, 0, 0); - glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION]); - - // Bind vertex attrib: texcoord (shader-location = 1) - glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[1]); - glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01], 2, GL_FLOAT, 0, 0, 0); - glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01]); - - // Bind vertex attrib: color (shader-location = 3) - glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[2]); - glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR], 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0); - glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR]); - - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[3]); - } - - // Setup some default shader values - glUniform4f(RLGL.State.currentShaderLocs[RL_SHADER_LOC_COLOR_DIFFUSE], 1.0f, 1.0f, 1.0f, 1.0f); - glUniform1i(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MAP_DIFFUSE], 0); // Active default sampler2D: texture0 - - // Activate additional sampler textures - // Those additional textures will be common for all draw calls of the batch - for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) - { - if (RLGL.State.activeTextureId[i] > 0) - { - glActiveTexture(GL_TEXTURE0 + 1 + i); - glBindTexture(GL_TEXTURE_2D, RLGL.State.activeTextureId[i]); - } - } - - // Activate default sampler2D texture0 (one texture is always active for default batch shader) - // NOTE: Batch system accumulates calls by texture0 changes, additional textures are enabled for all the draw calls - glActiveTexture(GL_TEXTURE0); - - for (int i = 0, vertexOffset = 0; i < batch->drawCounter; i++) - { - // Bind current draw call texture, activated as GL_TEXTURE0 and Bound to sampler2D texture0 by default - glBindTexture(GL_TEXTURE_2D, batch->draws[i].textureId); - - if ((batch->draws[i].mode == RL_LINES) || (batch->draws[i].mode == RL_TRIANGLES)) glDrawArrays(batch->draws[i].mode, vertexOffset, batch->draws[i].vertexCount); - else - { -#if defined(GRAPHICS_API_OPENGL_33) - // We need to define the number of indices to be processed: elementCount*6 - // NOTE: The final parameter tells the GPU the offset in bytes from the - // start of the index buffer to the location of the first index to process - glDrawElements(GL_TRIANGLES, batch->draws[i].vertexCount/4*6, GL_UNSIGNED_INT, (GLvoid *)(vertexOffset/4*6*sizeof(GLuint))); -#endif -#if defined(GRAPHICS_API_OPENGL_ES2) - glDrawElements(GL_TRIANGLES, batch->draws[i].vertexCount/4*6, GL_UNSIGNED_SHORT, (GLvoid *)(vertexOffset/4*6*sizeof(GLushort))); -#endif - } - - vertexOffset += (batch->draws[i].vertexCount + batch->draws[i].vertexAlignment); - } - - if (!RLGL.ExtSupported.vao) - { - glBindBuffer(GL_ARRAY_BUFFER, 0); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); - } - - glBindTexture(GL_TEXTURE_2D, 0); // Unbind textures - } - - if (RLGL.ExtSupported.vao) glBindVertexArray(0); // Unbind VAO - - glUseProgram(0); // Unbind shader program - } - - // Restore viewport to default measures - if (eyeCount == 2) rlViewport(0, 0, RLGL.State.framebufferWidth, RLGL.State.framebufferHeight); - //------------------------------------------------------------------------------------------------------------ - - // Reset batch buffers - //------------------------------------------------------------------------------------------------------------ - // Reset vertex counter for next frame - RLGL.State.vertexCounter = 0; - - // Reset depth for next draw - batch->currentDepth = -1.0f; - - // Restore projection/modelview matrices - RLGL.State.projection = matProjection; - RLGL.State.modelview = matModelView; - - // Reset RLGL.currentBatch->draws array - for (int i = 0; i < RL_DEFAULT_BATCH_DRAWCALLS; i++) - { - batch->draws[i].mode = RL_QUADS; - batch->draws[i].vertexCount = 0; - batch->draws[i].textureId = RLGL.State.defaultTextureId; - } - - // Reset active texture units for next batch - for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) RLGL.State.activeTextureId[i] = 0; - - // Reset draws counter to one draw for the batch - batch->drawCounter = 1; - //------------------------------------------------------------------------------------------------------------ - - // Change to next buffer in the list (in case of multi-buffering) - batch->currentBuffer++; - if (batch->currentBuffer >= batch->bufferCount) batch->currentBuffer = 0; -#endif -} - -// Set the active render batch for rlgl -void rlSetRenderBatchActive(rlRenderBatch *batch) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - rlDrawRenderBatch(RLGL.currentBatch); - - if (batch != NULL) RLGL.currentBatch = batch; - else RLGL.currentBatch = &RLGL.defaultBatch; -#endif -} - -// Update and draw internal render batch -void rlDrawRenderBatchActive(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - rlDrawRenderBatch(RLGL.currentBatch); // NOTE: Stereo rendering is checked inside -#endif -} - -// Check internal buffer overflow for a given number of vertex -// and force a rlRenderBatch draw call if required -bool rlCheckRenderBatchLimit(int vCount) -{ - bool overflow = false; - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if ((RLGL.State.vertexCounter + vCount) >= - (RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4)) - { - overflow = true; - - // Store current primitive drawing mode and texture id - int currentMode = RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode; - int currentTexture = RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId; - - rlDrawRenderBatch(RLGL.currentBatch); // NOTE: Stereo rendering is checked inside - - // Restore state of last batch so we can continue adding vertices - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode = currentMode; - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = currentTexture; - } -#endif - - return overflow; -} - -// Textures data management -//----------------------------------------------------------------------------------------- -// Convert image data to OpenGL texture (returns OpenGL valid Id) -unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipmapCount) -{ - unsigned int id = 0; - - glBindTexture(GL_TEXTURE_2D, 0); // Free any old binding - - // Check texture format support by OpenGL 1.1 (compressed textures not supported) -#if defined(GRAPHICS_API_OPENGL_11) - if (format >= RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) - { - TRACELOG(RL_LOG_WARNING, "GL: OpenGL 1.1 does not support GPU compressed texture formats"); - return id; - } -#else - if ((!RLGL.ExtSupported.texCompDXT) && ((format == RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA) || - (format == RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA) || (format == RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA))) - { - TRACELOG(RL_LOG_WARNING, "GL: DXT compressed texture format not supported"); - return id; - } -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if ((!RLGL.ExtSupported.texCompETC1) && (format == RL_PIXELFORMAT_COMPRESSED_ETC1_RGB)) - { - TRACELOG(RL_LOG_WARNING, "GL: ETC1 compressed texture format not supported"); - return id; - } - - if ((!RLGL.ExtSupported.texCompETC2) && ((format == RL_PIXELFORMAT_COMPRESSED_ETC2_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA))) - { - TRACELOG(RL_LOG_WARNING, "GL: ETC2 compressed texture format not supported"); - return id; - } - - if ((!RLGL.ExtSupported.texCompPVRT) && ((format == RL_PIXELFORMAT_COMPRESSED_PVRT_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA))) - { - TRACELOG(RL_LOG_WARNING, "GL: PVRT compressed texture format not supported"); - return id; - } - - if ((!RLGL.ExtSupported.texCompASTC) && ((format == RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA) || (format == RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA))) - { - TRACELOG(RL_LOG_WARNING, "GL: ASTC compressed texture format not supported"); - return id; - } -#endif -#endif // GRAPHICS_API_OPENGL_11 - - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - - glGenTextures(1, &id); // Generate texture id - - glBindTexture(GL_TEXTURE_2D, id); - - int mipWidth = width; - int mipHeight = height; - int mipOffset = 0; // Mipmap data offset, only used for tracelog - - // NOTE: Added pointer math separately from function to avoid UBSAN complaining - unsigned char *dataPtr = NULL; - if (data != NULL) dataPtr = (unsigned char *)data; - - // Load the different mipmap levels - for (int i = 0; i < mipmapCount; i++) - { - unsigned int mipSize = rlGetPixelDataSize(mipWidth, mipHeight, format); - - unsigned int glInternalFormat, glFormat, glType; - rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); - - TRACELOGD("TEXTURE: Load mipmap level %i (%i x %i), size: %i, offset: %i", i, mipWidth, mipHeight, mipSize, mipOffset); - - if (glInternalFormat != 0) - { - if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) glTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, glFormat, glType, dataPtr); -#if !defined(GRAPHICS_API_OPENGL_11) - else glCompressedTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, mipSize, dataPtr); -#endif - -#if defined(GRAPHICS_API_OPENGL_33) - if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) - { - GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ONE }; - glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); - } - else if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA) - { -#if defined(GRAPHICS_API_OPENGL_21) - GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ALPHA }; -#elif defined(GRAPHICS_API_OPENGL_33) - GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_GREEN }; -#endif - glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); - } -#endif - } - - mipWidth /= 2; - mipHeight /= 2; - mipOffset += mipSize; // Increment offset position to next mipmap - if (data != NULL) dataPtr += mipSize; // Increment data pointer to next mipmap - - // Security check for NPOT textures - if (mipWidth < 1) mipWidth = 1; - if (mipHeight < 1) mipHeight = 1; - } - - // Texture parameters configuration - // NOTE: glTexParameteri does NOT affect texture uploading, just the way it's used -#if defined(GRAPHICS_API_OPENGL_ES2) - // NOTE: OpenGL ES 2.0 with no GL_OES_texture_npot support (i.e. WebGL) has limited NPOT support, so CLAMP_TO_EDGE must be used - if (RLGL.ExtSupported.texNPOT) - { - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); // Set texture to repeat on x-axis - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); // Set texture to repeat on y-axis - } - else - { - // NOTE: If using negative texture coordinates (LoadOBJ()), it does not work! - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); // Set texture to clamp on x-axis - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); // Set texture to clamp on y-axis - } -#else - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); // Set texture to repeat on x-axis - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); // Set texture to repeat on y-axis -#endif - - // Magnification and minification filters - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); // Alternative: GL_LINEAR - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); // Alternative: GL_LINEAR - -#if defined(GRAPHICS_API_OPENGL_33) - if (mipmapCount > 1) - { - // Activate Trilinear filtering if mipmaps are available - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); - } -#endif - - // At this point we have the texture loaded in GPU and texture parameters configured - - // NOTE: If mipmaps were not in data, they are not generated automatically - - // Unbind current texture - glBindTexture(GL_TEXTURE_2D, 0); - - if (id > 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Texture loaded successfully (%ix%i | %s | %i mipmaps)", id, width, height, rlGetPixelFormatName(format), mipmapCount); - else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load texture"); - - return id; -} - -// Load depth texture/renderbuffer (to be attached to fbo) -// WARNING: OpenGL ES 2.0 requires GL_OES_depth_texture and WebGL requires WEBGL_depth_texture extensions -unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer) -{ - unsigned int id = 0; - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // In case depth textures not supported, we force renderbuffer usage - if (!RLGL.ExtSupported.texDepth) useRenderBuffer = true; - - // NOTE: We let the implementation to choose the best bit-depth - // Possible formats: GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32 and GL_DEPTH_COMPONENT32F - unsigned int glInternalFormat = GL_DEPTH_COMPONENT; - -#if (defined(GRAPHICS_API_OPENGL_ES2) || defined(GRAPHICS_API_OPENGL_ES3)) - // WARNING: WebGL platform requires unsized internal format definition (GL_DEPTH_COMPONENT) - // while other platforms using OpenGL ES 2.0 require/support sized internal formats depending on the GPU capabilities - if (!RLGL.ExtSupported.texDepthWebGL || useRenderBuffer) - { - if (RLGL.ExtSupported.maxDepthBits == 32) glInternalFormat = GL_DEPTH_COMPONENT32_OES; - else if (RLGL.ExtSupported.maxDepthBits == 24) glInternalFormat = GL_DEPTH_COMPONENT24_OES; - else glInternalFormat = GL_DEPTH_COMPONENT16; - } -#endif - - if (!useRenderBuffer && RLGL.ExtSupported.texDepth) - { - glGenTextures(1, &id); - glBindTexture(GL_TEXTURE_2D, id); - glTexImage2D(GL_TEXTURE_2D, 0, glInternalFormat, width, height, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, NULL); - - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - - glBindTexture(GL_TEXTURE_2D, 0); - - TRACELOG(RL_LOG_INFO, "TEXTURE: Depth texture loaded successfully"); - } - else - { - // Create the renderbuffer that will serve as the depth attachment for the framebuffer - // NOTE: A renderbuffer is simpler than a texture and could offer better performance on embedded devices - glGenRenderbuffers(1, &id); - glBindRenderbuffer(GL_RENDERBUFFER, id); - glRenderbufferStorage(GL_RENDERBUFFER, glInternalFormat, width, height); - - glBindRenderbuffer(GL_RENDERBUFFER, 0); - - TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Depth renderbuffer loaded successfully (%i bits)", id, (RLGL.ExtSupported.maxDepthBits >= 24)? RLGL.ExtSupported.maxDepthBits : 16); - } -#endif - - return id; -} - -// Load texture cubemap -// NOTE: Cubemap data is expected to be 6 images in a single data array (one after the other), -// expected the following convention: +X, -X, +Y, -Y, +Z, -Z -unsigned int rlLoadTextureCubemap(const void *data, int size, int format) -{ - unsigned int id = 0; - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - unsigned int dataSize = rlGetPixelDataSize(size, size, format); - - glGenTextures(1, &id); - glBindTexture(GL_TEXTURE_CUBE_MAP, id); - - unsigned int glInternalFormat, glFormat, glType; - rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); - - if (glInternalFormat != 0) - { - // Load cubemap faces - for (unsigned int i = 0; i < 6; i++) - { - if (data == NULL) - { - if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) - { - if ((format == RL_PIXELFORMAT_UNCOMPRESSED_R32) || (format == RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32) - || (format == RL_PIXELFORMAT_UNCOMPRESSED_R16) || (format == RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16)) - TRACELOG(RL_LOG_WARNING, "TEXTURES: Cubemap requested format not supported"); - else glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, size, size, 0, glFormat, glType, NULL); - } - else TRACELOG(RL_LOG_WARNING, "TEXTURES: Empty cubemap creation does not support compressed format"); - } - else - { - if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, size, size, 0, glFormat, glType, (unsigned char *)data + i*dataSize); - else glCompressedTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, size, size, 0, dataSize, (unsigned char *)data + i*dataSize); - } - -#if defined(GRAPHICS_API_OPENGL_33) - if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) - { - GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ONE }; - glTexParameteriv(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); - } - else if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA) - { -#if defined(GRAPHICS_API_OPENGL_21) - GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ALPHA }; -#elif defined(GRAPHICS_API_OPENGL_33) - GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_GREEN }; -#endif - glTexParameteriv(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); - } -#endif - } - } - - // Set cubemap texture sampling parameters - glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); -#if defined(GRAPHICS_API_OPENGL_33) - glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE); // Flag not supported on OpenGL ES 2.0 -#endif - - glBindTexture(GL_TEXTURE_CUBE_MAP, 0); -#endif - - if (id > 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Cubemap texture loaded successfully (%ix%i)", id, size, size); - else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load cubemap texture"); - - return id; -} - -// Update already loaded texture in GPU with new data -// NOTE: We don't know safely if internal texture format is the expected one... -void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data) -{ - glBindTexture(GL_TEXTURE_2D, id); - - unsigned int glInternalFormat, glFormat, glType; - rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); - - if ((glInternalFormat != 0) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)) - { - glTexSubImage2D(GL_TEXTURE_2D, 0, offsetX, offsetY, width, height, glFormat, glType, data); - } - else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Failed to update for current texture format (%i)", id, format); -} - -// Get OpenGL internal formats and data type from raylib PixelFormat -void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType) -{ - *glInternalFormat = 0; - *glFormat = 0; - *glType = 0; - - switch (format) - { - #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_21) || defined(GRAPHICS_API_OPENGL_ES2) - // NOTE: on OpenGL ES 2.0 (WebGL), internalFormat must match format and options allowed are: GL_LUMINANCE, GL_RGB, GL_RGBA - case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_UNSIGNED_BYTE; break; - case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: *glInternalFormat = GL_LUMINANCE_ALPHA; *glFormat = GL_LUMINANCE_ALPHA; *glType = GL_UNSIGNED_BYTE; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_UNSIGNED_SHORT_5_6_5; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_UNSIGNED_BYTE; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_5_5_5_1; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_4_4_4_4; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_BYTE; break; - #if !defined(GRAPHICS_API_OPENGL_11) - #if defined(GRAPHICS_API_OPENGL_ES3) - case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_R32F_EXT; *glFormat = GL_RED_EXT; *glType = GL_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB32F_EXT; *glFormat = GL_RGB; *glType = GL_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA32F_EXT; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_R16F_EXT; *glFormat = GL_RED_EXT; *glType = GL_HALF_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB16F_EXT; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA16F_EXT; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT; break; - #else - case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float - #if defined(GRAPHICS_API_OPENGL_21) - case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_HALF_FLOAT_ARB; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT_ARB; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT_ARB; break; - #else // defined(GRAPHICS_API_OPENGL_ES2) - case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float - #endif - #endif - #endif - #elif defined(GRAPHICS_API_OPENGL_33) - case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: *glInternalFormat = GL_R8; *glFormat = GL_RED; *glType = GL_UNSIGNED_BYTE; break; - case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: *glInternalFormat = GL_RG8; *glFormat = GL_RG; *glType = GL_UNSIGNED_BYTE; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: *glInternalFormat = GL_RGB565; *glFormat = GL_RGB; *glType = GL_UNSIGNED_SHORT_5_6_5; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: *glInternalFormat = GL_RGB8; *glFormat = GL_RGB; *glType = GL_UNSIGNED_BYTE; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: *glInternalFormat = GL_RGB5_A1; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_5_5_5_1; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: *glInternalFormat = GL_RGBA4; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_4_4_4_4; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: *glInternalFormat = GL_RGBA8; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_BYTE; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_R32F; *glFormat = GL_RED; *glType = GL_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB32F; *glFormat = GL_RGB; *glType = GL_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA32F; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_R16F; *glFormat = GL_RED; *glType = GL_HALF_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB16F; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA16F; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT; break; - #endif - #if !defined(GRAPHICS_API_OPENGL_11) - case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGB_S3TC_DXT1_EXT; break; - case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT; break; - case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT; break; - case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT; break; - case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: if (RLGL.ExtSupported.texCompETC1) *glInternalFormat = GL_ETC1_RGB8_OES; break; // NOTE: Requires OpenGL ES 2.0 or OpenGL 4.3 - case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: if (RLGL.ExtSupported.texCompETC2) *glInternalFormat = GL_COMPRESSED_RGB8_ETC2; break; // NOTE: Requires OpenGL ES 3.0 or OpenGL 4.3 - case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: if (RLGL.ExtSupported.texCompETC2) *glInternalFormat = GL_COMPRESSED_RGBA8_ETC2_EAC; break; // NOTE: Requires OpenGL ES 3.0 or OpenGL 4.3 - case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: if (RLGL.ExtSupported.texCompPVRT) *glInternalFormat = GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG; break; // NOTE: Requires PowerVR GPU - case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: if (RLGL.ExtSupported.texCompPVRT) *glInternalFormat = GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; break; // NOTE: Requires PowerVR GPU - case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: if (RLGL.ExtSupported.texCompASTC) *glInternalFormat = GL_COMPRESSED_RGBA_ASTC_4x4_KHR; break; // NOTE: Requires OpenGL ES 3.1 or OpenGL 4.3 - case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: if (RLGL.ExtSupported.texCompASTC) *glInternalFormat = GL_COMPRESSED_RGBA_ASTC_8x8_KHR; break; // NOTE: Requires OpenGL ES 3.1 or OpenGL 4.3 - #endif - default: TRACELOG(RL_LOG_WARNING, "TEXTURE: Current format not supported (%i)", format); break; - } -} - -// Unload texture from GPU memory -void rlUnloadTexture(unsigned int id) -{ - glDeleteTextures(1, &id); -} - -// Generate mipmap data for selected texture -// NOTE: Only supports GPU mipmap generation -void rlGenTextureMipmaps(unsigned int id, int width, int height, int format, int *mipmaps) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindTexture(GL_TEXTURE_2D, id); - - // Check if texture is power-of-two (POT) - bool texIsPOT = false; - - if (((width > 0) && ((width & (width - 1)) == 0)) && - ((height > 0) && ((height & (height - 1)) == 0))) texIsPOT = true; - - if ((texIsPOT) || (RLGL.ExtSupported.texNPOT)) - { - //glHint(GL_GENERATE_MIPMAP_HINT, GL_DONT_CARE); // Hint for mipmaps generation algorithm: GL_FASTEST, GL_NICEST, GL_DONT_CARE - glGenerateMipmap(GL_TEXTURE_2D); // Generate mipmaps automatically - - #define MIN(a,b) (((a)<(b))? (a):(b)) - #define MAX(a,b) (((a)>(b))? (a):(b)) - - *mipmaps = 1 + (int)floor(log(MAX(width, height))/log(2)); - TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Mipmaps generated automatically, total: %i", id, *mipmaps); - } - else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Failed to generate mipmaps", id); - - glBindTexture(GL_TEXTURE_2D, 0); -#else - TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] GPU mipmap generation not supported", id); -#endif -} - - -// Read texture pixel data -void *rlReadTexturePixels(unsigned int id, int width, int height, int format) -{ - void *pixels = NULL; - -#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) - glBindTexture(GL_TEXTURE_2D, id); - - // NOTE: Using texture id, we can retrieve some texture info (but not on OpenGL ES 2.0) - // Possible texture info: GL_TEXTURE_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE - //int width, height, format; - //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &width); - //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &height); - //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_INTERNAL_FORMAT, &format); - - // NOTE: Each row written to or read from by OpenGL pixel operations like glGetTexImage are aligned to a 4 byte boundary by default, which may add some padding. - // Use glPixelStorei to modify padding with the GL_[UN]PACK_ALIGNMENT setting. - // GL_PACK_ALIGNMENT affects operations that read from OpenGL memory (glReadPixels, glGetTexImage, etc.) - // GL_UNPACK_ALIGNMENT affects operations that write to OpenGL memory (glTexImage, etc.) - glPixelStorei(GL_PACK_ALIGNMENT, 1); - - unsigned int glInternalFormat, glFormat, glType; - rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); - unsigned int size = rlGetPixelDataSize(width, height, format); - - if ((glInternalFormat != 0) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)) - { - pixels = RL_MALLOC(size); - glGetTexImage(GL_TEXTURE_2D, 0, glFormat, glType, pixels); - } - else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Data retrieval not suported for pixel format (%i)", id, format); - - glBindTexture(GL_TEXTURE_2D, 0); -#endif - -#if defined(GRAPHICS_API_OPENGL_ES2) - // glGetTexImage() is not available on OpenGL ES 2.0 - // Texture width and height are required on OpenGL ES 2.0. There is no way to get it from texture id. - // Two possible Options: - // 1 - Bind texture to color fbo attachment and glReadPixels() - // 2 - Create an fbo, activate it, render quad with texture, glReadPixels() - // We are using Option 1, just need to care for texture format on retrieval - // NOTE: This behaviour could be conditioned by graphic driver... - unsigned int fboId = rlLoadFramebuffer(width, height); - - glBindFramebuffer(GL_FRAMEBUFFER, fboId); - glBindTexture(GL_TEXTURE_2D, 0); - - // Attach our texture to FBO - glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, id, 0); - - // We read data as RGBA because FBO texture is configured as RGBA, despite binding another texture format - pixels = (unsigned char *)RL_MALLOC(rlGetPixelDataSize(width, height, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8)); - glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, pixels); - - glBindFramebuffer(GL_FRAMEBUFFER, 0); - - // Clean up temporal fbo - rlUnloadFramebuffer(fboId); -#endif - - return pixels; -} - -// Read screen pixel data (color buffer) -unsigned char *rlReadScreenPixels(int width, int height) -{ - unsigned char *screenData = (unsigned char *)RL_CALLOC(width*height*4, sizeof(unsigned char)); - - // NOTE 1: glReadPixels returns image flipped vertically -> (0,0) is the bottom left corner of the framebuffer - // NOTE 2: We are getting alpha channel! Be careful, it can be transparent if not cleared properly! - glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, screenData); - - // Flip image vertically! - unsigned char *imgData = (unsigned char *)RL_MALLOC(width*height*4*sizeof(unsigned char)); - - for (int y = height - 1; y >= 0; y--) - { - for (int x = 0; x < (width*4); x++) - { - imgData[((height - 1) - y)*width*4 + x] = screenData[(y*width*4) + x]; // Flip line - - // Set alpha component value to 255 (no trasparent image retrieval) - // NOTE: Alpha value has already been applied to RGB in framebuffer, we don't need it! - if (((x + 1)%4) == 0) imgData[((height - 1) - y)*width*4 + x] = 255; - } - } - - RL_FREE(screenData); - - return imgData; // NOTE: image data should be freed -} - -// Framebuffer management (fbo) -//----------------------------------------------------------------------------------------- -// Load a framebuffer to be used for rendering -// NOTE: No textures attached -unsigned int rlLoadFramebuffer(int width, int height) -{ - unsigned int fboId = 0; - -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) - glGenFramebuffers(1, &fboId); // Create the framebuffer object - glBindFramebuffer(GL_FRAMEBUFFER, 0); // Unbind any framebuffer -#endif - - return fboId; -} - -// Attach color buffer texture to an fbo (unloads previous attachment) -// NOTE: Attach type: 0-Color, 1-Depth renderbuffer, 2-Depth texture -void rlFramebufferAttach(unsigned int fboId, unsigned int texId, int attachType, int texType, int mipLevel) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) - glBindFramebuffer(GL_FRAMEBUFFER, fboId); - - switch (attachType) - { - case RL_ATTACHMENT_COLOR_CHANNEL0: - case RL_ATTACHMENT_COLOR_CHANNEL1: - case RL_ATTACHMENT_COLOR_CHANNEL2: - case RL_ATTACHMENT_COLOR_CHANNEL3: - case RL_ATTACHMENT_COLOR_CHANNEL4: - case RL_ATTACHMENT_COLOR_CHANNEL5: - case RL_ATTACHMENT_COLOR_CHANNEL6: - case RL_ATTACHMENT_COLOR_CHANNEL7: - { - if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_TEXTURE_2D, texId, mipLevel); - else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_RENDERBUFFER, texId); - else if (texType >= RL_ATTACHMENT_CUBEMAP_POSITIVE_X) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_TEXTURE_CUBE_MAP_POSITIVE_X + texType, texId, mipLevel); - - } break; - case RL_ATTACHMENT_DEPTH: - { - if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, texId, mipLevel); - else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, texId); - - } break; - case RL_ATTACHMENT_STENCIL: - { - if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D, texId, mipLevel); - else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, texId); - - } break; - default: break; - } - - glBindFramebuffer(GL_FRAMEBUFFER, 0); -#endif -} - -// Verify render texture is complete -bool rlFramebufferComplete(unsigned int id) -{ - bool result = false; - -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) - glBindFramebuffer(GL_FRAMEBUFFER, id); - - GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); - - if (status != GL_FRAMEBUFFER_COMPLETE) - { - switch (status) - { - case GL_FRAMEBUFFER_UNSUPPORTED: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer is unsupported", id); break; - case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has incomplete attachment", id); break; -#if defined(GRAPHICS_API_OPENGL_ES2) - case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has incomplete dimensions", id); break; -#endif - case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has a missing attachment", id); break; - default: break; - } - } - - glBindFramebuffer(GL_FRAMEBUFFER, 0); - - result = (status == GL_FRAMEBUFFER_COMPLETE); -#endif - - return result; -} - -// Unload framebuffer from GPU memory -// NOTE: All attached textures/cubemaps/renderbuffers are also deleted -void rlUnloadFramebuffer(unsigned int id) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) - // Query depth attachment to automatically delete texture/renderbuffer - int depthType = 0, depthId = 0; - glBindFramebuffer(GL_FRAMEBUFFER, id); // Bind framebuffer to query depth texture type - glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &depthType); - - // TODO: Review warning retrieving object name in WebGL - // WARNING: WebGL: INVALID_ENUM: getFramebufferAttachmentParameter: invalid parameter name - // https://registry.khronos.org/webgl/specs/latest/1.0/ - glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, &depthId); - - unsigned int depthIdU = (unsigned int)depthId; - if (depthType == GL_RENDERBUFFER) glDeleteRenderbuffers(1, &depthIdU); - else if (depthType == GL_TEXTURE) glDeleteTextures(1, &depthIdU); - - // NOTE: If a texture object is deleted while its image is attached to the *currently bound* framebuffer, - // the texture image is automatically detached from the currently bound framebuffer. - - glBindFramebuffer(GL_FRAMEBUFFER, 0); - glDeleteFramebuffers(1, &id); - - TRACELOG(RL_LOG_INFO, "FBO: [ID %i] Unloaded framebuffer from VRAM (GPU)", id); -#endif -} - -// Vertex data management -//----------------------------------------------------------------------------------------- -// Load a new attributes buffer -unsigned int rlLoadVertexBuffer(const void *buffer, int size, bool dynamic) -{ - unsigned int id = 0; - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glGenBuffers(1, &id); - glBindBuffer(GL_ARRAY_BUFFER, id); - glBufferData(GL_ARRAY_BUFFER, size, buffer, dynamic? GL_DYNAMIC_DRAW : GL_STATIC_DRAW); -#endif - - return id; -} - -// Load a new attributes element buffer -unsigned int rlLoadVertexBufferElement(const void *buffer, int size, bool dynamic) -{ - unsigned int id = 0; - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glGenBuffers(1, &id); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); - glBufferData(GL_ELEMENT_ARRAY_BUFFER, size, buffer, dynamic? GL_DYNAMIC_DRAW : GL_STATIC_DRAW); -#endif - - return id; -} - -// Enable vertex buffer (VBO) -void rlEnableVertexBuffer(unsigned int id) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindBuffer(GL_ARRAY_BUFFER, id); -#endif -} - -// Disable vertex buffer (VBO) -void rlDisableVertexBuffer(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindBuffer(GL_ARRAY_BUFFER, 0); -#endif -} - -// Enable vertex buffer element (VBO element) -void rlEnableVertexBufferElement(unsigned int id) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); -#endif -} - -// Disable vertex buffer element (VBO element) -void rlDisableVertexBufferElement(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); -#endif -} - -// Update vertex buffer with new data -// NOTE: dataSize and offset must be provided in bytes -void rlUpdateVertexBuffer(unsigned int id, const void *data, int dataSize, int offset) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindBuffer(GL_ARRAY_BUFFER, id); - glBufferSubData(GL_ARRAY_BUFFER, offset, dataSize, data); -#endif -} - -// Update vertex buffer elements with new data -// NOTE: dataSize and offset must be provided in bytes -void rlUpdateVertexBufferElements(unsigned int id, const void *data, int dataSize, int offset) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); - glBufferSubData(GL_ELEMENT_ARRAY_BUFFER, offset, dataSize, data); -#endif -} - -// Enable vertex array object (VAO) -bool rlEnableVertexArray(unsigned int vaoId) -{ - bool result = false; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if (RLGL.ExtSupported.vao) - { - glBindVertexArray(vaoId); - result = true; - } -#endif - return result; -} - -// Disable vertex array object (VAO) -void rlDisableVertexArray(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if (RLGL.ExtSupported.vao) glBindVertexArray(0); -#endif -} - -// Enable vertex attribute index -void rlEnableVertexAttribute(unsigned int index) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glEnableVertexAttribArray(index); -#endif -} - -// Disable vertex attribute index -void rlDisableVertexAttribute(unsigned int index) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glDisableVertexAttribArray(index); -#endif -} - -// Draw vertex array -void rlDrawVertexArray(int offset, int count) -{ - glDrawArrays(GL_TRIANGLES, offset, count); -} - -// Draw vertex array elements -void rlDrawVertexArrayElements(int offset, int count, const void *buffer) -{ - // NOTE: Added pointer math separately from function to avoid UBSAN complaining - unsigned short *bufferPtr = (unsigned short *)buffer; - if (offset > 0) bufferPtr += offset; - - glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)bufferPtr); -} - -// Draw vertex array instanced -void rlDrawVertexArrayInstanced(int offset, int count, int instances) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glDrawArraysInstanced(GL_TRIANGLES, 0, count, instances); -#endif -} - -// Draw vertex array elements instanced -void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffer, int instances) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // NOTE: Added pointer math separately from function to avoid UBSAN complaining - unsigned short *bufferPtr = (unsigned short *)buffer; - if (offset > 0) bufferPtr += offset; - - glDrawElementsInstanced(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)bufferPtr, instances); -#endif -} - -#if defined(GRAPHICS_API_OPENGL_11) -// Enable vertex state pointer -void rlEnableStatePointer(int vertexAttribType, void *buffer) -{ - if (buffer != NULL) glEnableClientState(vertexAttribType); - switch (vertexAttribType) - { - case GL_VERTEX_ARRAY: glVertexPointer(3, GL_FLOAT, 0, buffer); break; - case GL_TEXTURE_COORD_ARRAY: glTexCoordPointer(2, GL_FLOAT, 0, buffer); break; - case GL_NORMAL_ARRAY: if (buffer != NULL) glNormalPointer(GL_FLOAT, 0, buffer); break; - case GL_COLOR_ARRAY: if (buffer != NULL) glColorPointer(4, GL_UNSIGNED_BYTE, 0, buffer); break; - //case GL_INDEX_ARRAY: if (buffer != NULL) glIndexPointer(GL_SHORT, 0, buffer); break; // Indexed colors - default: break; - } -} - -// Disable vertex state pointer -void rlDisableStatePointer(int vertexAttribType) -{ - glDisableClientState(vertexAttribType); -} -#endif - -// Load vertex array object (VAO) -unsigned int rlLoadVertexArray(void) -{ - unsigned int vaoId = 0; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if (RLGL.ExtSupported.vao) - { - glGenVertexArrays(1, &vaoId); - } -#endif - return vaoId; -} - -// Set vertex attribute -void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, const void *pointer) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glVertexAttribPointer(index, compSize, type, normalized, stride, pointer); -#endif -} - -// Set vertex attribute divisor -void rlSetVertexAttributeDivisor(unsigned int index, int divisor) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glVertexAttribDivisor(index, divisor); -#endif -} - -// Unload vertex array object (VAO) -void rlUnloadVertexArray(unsigned int vaoId) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if (RLGL.ExtSupported.vao) - { - glBindVertexArray(0); - glDeleteVertexArrays(1, &vaoId); - TRACELOG(RL_LOG_INFO, "VAO: [ID %i] Unloaded vertex array data from VRAM (GPU)", vaoId); - } -#endif -} - -// Unload vertex buffer (VBO) -void rlUnloadVertexBuffer(unsigned int vboId) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glDeleteBuffers(1, &vboId); - //TRACELOG(RL_LOG_INFO, "VBO: Unloaded vertex data from VRAM (GPU)"); -#endif -} - -// Shaders management -//----------------------------------------------------------------------------------------------- -// Load shader from code strings -// NOTE: If shader string is NULL, using default vertex/fragment shaders -unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode) -{ - unsigned int id = 0; - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - unsigned int vertexShaderId = 0; - unsigned int fragmentShaderId = 0; - - // Compile vertex shader (if provided) - if (vsCode != NULL) vertexShaderId = rlCompileShader(vsCode, GL_VERTEX_SHADER); - // In case no vertex shader was provided or compilation failed, we use default vertex shader - if (vertexShaderId == 0) vertexShaderId = RLGL.State.defaultVShaderId; - - // Compile fragment shader (if provided) - if (fsCode != NULL) fragmentShaderId = rlCompileShader(fsCode, GL_FRAGMENT_SHADER); - // In case no fragment shader was provided or compilation failed, we use default fragment shader - if (fragmentShaderId == 0) fragmentShaderId = RLGL.State.defaultFShaderId; - - // In case vertex and fragment shader are the default ones, no need to recompile, we can just assign the default shader program id - if ((vertexShaderId == RLGL.State.defaultVShaderId) && (fragmentShaderId == RLGL.State.defaultFShaderId)) id = RLGL.State.defaultShaderId; - else - { - // One of or both shader are new, we need to compile a new shader program - id = rlLoadShaderProgram(vertexShaderId, fragmentShaderId); - - // We can detach and delete vertex/fragment shaders (if not default ones) - // NOTE: We detach shader before deletion to make sure memory is freed - if (vertexShaderId != RLGL.State.defaultVShaderId) - { - // WARNING: Shader program linkage could fail and returned id is 0 - if (id > 0) glDetachShader(id, vertexShaderId); - glDeleteShader(vertexShaderId); - } - if (fragmentShaderId != RLGL.State.defaultFShaderId) - { - // WARNING: Shader program linkage could fail and returned id is 0 - if (id > 0) glDetachShader(id, fragmentShaderId); - glDeleteShader(fragmentShaderId); - } - - // In case shader program loading failed, we assign default shader - if (id == 0) - { - // In case shader loading fails, we return the default shader - TRACELOG(RL_LOG_WARNING, "SHADER: Failed to load custom shader code, using default shader"); - id = RLGL.State.defaultShaderId; - } - /* - else - { - // Get available shader uniforms - // NOTE: This information is useful for debug... - int uniformCount = -1; - glGetProgramiv(id, GL_ACTIVE_UNIFORMS, &uniformCount); - - for (int i = 0; i < uniformCount; i++) - { - int namelen = -1; - int num = -1; - char name[256] = { 0 }; // Assume no variable names longer than 256 - GLenum type = GL_ZERO; - - // Get the name of the uniforms - glGetActiveUniform(id, i, sizeof(name) - 1, &namelen, &num, &type, name); - - name[namelen] = 0; - TRACELOGD("SHADER: [ID %i] Active uniform (%s) set at location: %i", id, name, glGetUniformLocation(id, name)); - } - } - */ - } -#endif - - return id; -} - -// Compile custom shader and return shader id -unsigned int rlCompileShader(const char *shaderCode, int type) -{ - unsigned int shader = 0; - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - shader = glCreateShader(type); - glShaderSource(shader, 1, &shaderCode, NULL); - - GLint success = 0; - glCompileShader(shader); - glGetShaderiv(shader, GL_COMPILE_STATUS, &success); - - if (success == GL_FALSE) - { - switch (type) - { - case GL_VERTEX_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile vertex shader code", shader); break; - case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile fragment shader code", shader); break; - //case GL_GEOMETRY_SHADER: - #if defined(GRAPHICS_API_OPENGL_43) - case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile compute shader code", shader); break; - #endif - default: break; - } - - int maxLength = 0; - glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &maxLength); - - if (maxLength > 0) - { - int length = 0; - char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); - glGetShaderInfoLog(shader, maxLength, &length, log); - TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Compile error: %s", shader, log); - RL_FREE(log); - } - } - else - { - switch (type) - { - case GL_VERTEX_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Vertex shader compiled successfully", shader); break; - case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Fragment shader compiled successfully", shader); break; - //case GL_GEOMETRY_SHADER: - #if defined(GRAPHICS_API_OPENGL_43) - case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader compiled successfully", shader); break; - #endif - default: break; - } - } -#endif - - return shader; -} - -// Load custom shader strings and return program id -unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fShaderId) -{ - unsigned int program = 0; - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - GLint success = 0; - program = glCreateProgram(); - - glAttachShader(program, vShaderId); - glAttachShader(program, fShaderId); - - // NOTE: Default attribute shader locations must be Bound before linking - glBindAttribLocation(program, 0, RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION); - glBindAttribLocation(program, 1, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD); - glBindAttribLocation(program, 2, RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL); - glBindAttribLocation(program, 3, RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR); - glBindAttribLocation(program, 4, RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT); - glBindAttribLocation(program, 5, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2); - - // NOTE: If some attrib name is no found on the shader, it locations becomes -1 - - glLinkProgram(program); - - // NOTE: All uniform variables are intitialised to 0 when a program links - - glGetProgramiv(program, GL_LINK_STATUS, &success); - - if (success == GL_FALSE) - { - TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to link shader program", program); - - int maxLength = 0; - glGetProgramiv(program, GL_INFO_LOG_LENGTH, &maxLength); - - if (maxLength > 0) - { - int length = 0; - char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); - glGetProgramInfoLog(program, maxLength, &length, log); - TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Link error: %s", program, log); - RL_FREE(log); - } - - glDeleteProgram(program); - - program = 0; - } - else - { - // Get the size of compiled shader program (not available on OpenGL ES 2.0) - // NOTE: If GL_LINK_STATUS is GL_FALSE, program binary length is zero. - //GLint binarySize = 0; - //glGetProgramiv(id, GL_PROGRAM_BINARY_LENGTH, &binarySize); - - TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Program shader loaded successfully", program); - } -#endif - return program; -} - -// Unload shader program -void rlUnloadShaderProgram(unsigned int id) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glDeleteProgram(id); - - TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Unloaded shader program data from VRAM (GPU)", id); -#endif -} - -// Get shader location uniform -int rlGetLocationUniform(unsigned int shaderId, const char *uniformName) -{ - int location = -1; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - location = glGetUniformLocation(shaderId, uniformName); - - //if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader uniform: %s", shaderId, uniformName); - //else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader uniform (%s) set at location: %i", shaderId, uniformName, location); -#endif - return location; -} - -// Get shader location attribute -int rlGetLocationAttrib(unsigned int shaderId, const char *attribName) -{ - int location = -1; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - location = glGetAttribLocation(shaderId, attribName); - - //if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader attribute: %s", shaderId, attribName); - //else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader attribute (%s) set at location: %i", shaderId, attribName, location); -#endif - return location; -} - -// Set shader value uniform -void rlSetUniform(int locIndex, const void *value, int uniformType, int count) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - switch (uniformType) - { - case RL_SHADER_UNIFORM_FLOAT: glUniform1fv(locIndex, count, (float *)value); break; - case RL_SHADER_UNIFORM_VEC2: glUniform2fv(locIndex, count, (float *)value); break; - case RL_SHADER_UNIFORM_VEC3: glUniform3fv(locIndex, count, (float *)value); break; - case RL_SHADER_UNIFORM_VEC4: glUniform4fv(locIndex, count, (float *)value); break; - case RL_SHADER_UNIFORM_INT: glUniform1iv(locIndex, count, (int *)value); break; - case RL_SHADER_UNIFORM_IVEC2: glUniform2iv(locIndex, count, (int *)value); break; - case RL_SHADER_UNIFORM_IVEC3: glUniform3iv(locIndex, count, (int *)value); break; - case RL_SHADER_UNIFORM_IVEC4: glUniform4iv(locIndex, count, (int *)value); break; - case RL_SHADER_UNIFORM_SAMPLER2D: glUniform1iv(locIndex, count, (int *)value); break; - default: TRACELOG(RL_LOG_WARNING, "SHADER: Failed to set uniform value, data type not recognized"); - } -#endif -} - -// Set shader value attribute -void rlSetVertexAttributeDefault(int locIndex, const void *value, int attribType, int count) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - switch (attribType) - { - case RL_SHADER_ATTRIB_FLOAT: if (count == 1) glVertexAttrib1fv(locIndex, (float *)value); break; - case RL_SHADER_ATTRIB_VEC2: if (count == 2) glVertexAttrib2fv(locIndex, (float *)value); break; - case RL_SHADER_ATTRIB_VEC3: if (count == 3) glVertexAttrib3fv(locIndex, (float *)value); break; - case RL_SHADER_ATTRIB_VEC4: if (count == 4) glVertexAttrib4fv(locIndex, (float *)value); break; - default: TRACELOG(RL_LOG_WARNING, "SHADER: Failed to set attrib default value, data type not recognized"); - } -#endif -} - -// Set shader value uniform matrix -void rlSetUniformMatrix(int locIndex, Matrix mat) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - float matfloat[16] = { - mat.m0, mat.m1, mat.m2, mat.m3, - mat.m4, mat.m5, mat.m6, mat.m7, - mat.m8, mat.m9, mat.m10, mat.m11, - mat.m12, mat.m13, mat.m14, mat.m15 - }; - glUniformMatrix4fv(locIndex, 1, false, matfloat); -#endif -} - -// Set shader value uniform sampler -void rlSetUniformSampler(int locIndex, unsigned int textureId) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // Check if texture is already active - for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) if (RLGL.State.activeTextureId[i] == textureId) return; - - // Register a new active texture for the internal batch system - // NOTE: Default texture is always activated as GL_TEXTURE0 - for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) - { - if (RLGL.State.activeTextureId[i] == 0) - { - glUniform1i(locIndex, 1 + i); // Activate new texture unit - RLGL.State.activeTextureId[i] = textureId; // Save texture id for binding on drawing - break; - } - } -#endif -} - -// Set shader currently active (id and locations) -void rlSetShader(unsigned int id, int *locs) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if (RLGL.State.currentShaderId != id) - { - rlDrawRenderBatch(RLGL.currentBatch); - RLGL.State.currentShaderId = id; - RLGL.State.currentShaderLocs = locs; - } -#endif -} - -// Load compute shader program -unsigned int rlLoadComputeShaderProgram(unsigned int shaderId) -{ - unsigned int program = 0; - -#if defined(GRAPHICS_API_OPENGL_43) - GLint success = 0; - program = glCreateProgram(); - glAttachShader(program, shaderId); - glLinkProgram(program); - - // NOTE: All uniform variables are intitialised to 0 when a program links - - glGetProgramiv(program, GL_LINK_STATUS, &success); - - if (success == GL_FALSE) - { - TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to link compute shader program", program); - - int maxLength = 0; - glGetProgramiv(program, GL_INFO_LOG_LENGTH, &maxLength); - - if (maxLength > 0) - { - int length = 0; - char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); - glGetProgramInfoLog(program, maxLength, &length, log); - TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Link error: %s", program, log); - RL_FREE(log); - } - - glDeleteProgram(program); - - program = 0; - } - else - { - // Get the size of compiled shader program (not available on OpenGL ES 2.0) - // NOTE: If GL_LINK_STATUS is GL_FALSE, program binary length is zero. - //GLint binarySize = 0; - //glGetProgramiv(id, GL_PROGRAM_BINARY_LENGTH, &binarySize); - - TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader program loaded successfully", program); - } -#endif - - return program; -} - -// Dispatch compute shader (equivalent to *draw* for graphics pilepine) -void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ) -{ -#if defined(GRAPHICS_API_OPENGL_43) - glDispatchCompute(groupX, groupY, groupZ); -#endif -} - -// Load shader storage buffer object (SSBO) -unsigned int rlLoadShaderBuffer(unsigned int size, const void *data, int usageHint) -{ - unsigned int ssbo = 0; - -#if defined(GRAPHICS_API_OPENGL_43) - glGenBuffers(1, &ssbo); - glBindBuffer(GL_SHADER_STORAGE_BUFFER, ssbo); - glBufferData(GL_SHADER_STORAGE_BUFFER, size, data, usageHint? usageHint : RL_STREAM_COPY); - if (data == NULL) glClearBufferData(GL_SHADER_STORAGE_BUFFER, GL_R8UI, GL_RED_INTEGER, GL_UNSIGNED_BYTE, NULL); // Clear buffer data to 0 - glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0); -#endif - - return ssbo; -} - -// Unload shader storage buffer object (SSBO) -void rlUnloadShaderBuffer(unsigned int ssboId) -{ -#if defined(GRAPHICS_API_OPENGL_43) - glDeleteBuffers(1, &ssboId); -#endif -} - -// Update SSBO buffer data -void rlUpdateShaderBuffer(unsigned int id, const void *data, unsigned int dataSize, unsigned int offset) -{ -#if defined(GRAPHICS_API_OPENGL_43) - glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); - glBufferSubData(GL_SHADER_STORAGE_BUFFER, offset, dataSize, data); -#endif -} - -// Get SSBO buffer size -unsigned int rlGetShaderBufferSize(unsigned int id) -{ - long long size = 0; - -#if defined(GRAPHICS_API_OPENGL_43) - glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); - glGetInteger64v(GL_SHADER_STORAGE_BUFFER_SIZE, &size); -#endif - - return (size > 0)? (unsigned int)size : 0; -} - -// Read SSBO buffer data (GPU->CPU) -void rlReadShaderBuffer(unsigned int id, void *dest, unsigned int count, unsigned int offset) -{ -#if defined(GRAPHICS_API_OPENGL_43) - glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); - glGetBufferSubData(GL_SHADER_STORAGE_BUFFER, offset, count, dest); -#endif -} - -// Bind SSBO buffer -void rlBindShaderBuffer(unsigned int id, unsigned int index) -{ -#if defined(GRAPHICS_API_OPENGL_43) - glBindBufferBase(GL_SHADER_STORAGE_BUFFER, index, id); -#endif -} - -// Copy SSBO buffer data -void rlCopyShaderBuffer(unsigned int destId, unsigned int srcId, unsigned int destOffset, unsigned int srcOffset, unsigned int count) -{ -#if defined(GRAPHICS_API_OPENGL_43) - glBindBuffer(GL_COPY_READ_BUFFER, srcId); - glBindBuffer(GL_COPY_WRITE_BUFFER, destId); - glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, srcOffset, destOffset, count); -#endif -} - -// Bind image texture -void rlBindImageTexture(unsigned int id, unsigned int index, int format, bool readonly) -{ -#if defined(GRAPHICS_API_OPENGL_43) - unsigned int glInternalFormat = 0, glFormat = 0, glType = 0; - - rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); - glBindImageTexture(index, id, 0, 0, 0, readonly? GL_READ_ONLY : GL_READ_WRITE, glInternalFormat); -#endif -} - -// Matrix state management -//----------------------------------------------------------------------------------------- -// Get internal modelview matrix -Matrix rlGetMatrixModelview(void) -{ - Matrix matrix = rlMatrixIdentity(); -#if defined(GRAPHICS_API_OPENGL_11) - float mat[16]; - glGetFloatv(GL_MODELVIEW_MATRIX, mat); - matrix.m0 = mat[0]; - matrix.m1 = mat[1]; - matrix.m2 = mat[2]; - matrix.m3 = mat[3]; - matrix.m4 = mat[4]; - matrix.m5 = mat[5]; - matrix.m6 = mat[6]; - matrix.m7 = mat[7]; - matrix.m8 = mat[8]; - matrix.m9 = mat[9]; - matrix.m10 = mat[10]; - matrix.m11 = mat[11]; - matrix.m12 = mat[12]; - matrix.m13 = mat[13]; - matrix.m14 = mat[14]; - matrix.m15 = mat[15]; -#else - matrix = RLGL.State.modelview; -#endif - return matrix; -} - -// Get internal projection matrix -Matrix rlGetMatrixProjection(void) -{ -#if defined(GRAPHICS_API_OPENGL_11) - float mat[16]; - glGetFloatv(GL_PROJECTION_MATRIX,mat); - Matrix m; - m.m0 = mat[0]; - m.m1 = mat[1]; - m.m2 = mat[2]; - m.m3 = mat[3]; - m.m4 = mat[4]; - m.m5 = mat[5]; - m.m6 = mat[6]; - m.m7 = mat[7]; - m.m8 = mat[8]; - m.m9 = mat[9]; - m.m10 = mat[10]; - m.m11 = mat[11]; - m.m12 = mat[12]; - m.m13 = mat[13]; - m.m14 = mat[14]; - m.m15 = mat[15]; - return m; -#else - return RLGL.State.projection; -#endif -} - -// Get internal accumulated transform matrix -Matrix rlGetMatrixTransform(void) -{ - Matrix mat = rlMatrixIdentity(); -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // TODO: Consider possible transform matrices in the RLGL.State.stack - // Is this the right order? or should we start with the first stored matrix instead of the last one? - //Matrix matStackTransform = rlMatrixIdentity(); - //for (int i = RLGL.State.stackCounter; i > 0; i--) matStackTransform = rlMatrixMultiply(RLGL.State.stack[i], matStackTransform); - mat = RLGL.State.transform; -#endif - return mat; -} - -// Get internal projection matrix for stereo render (selected eye) -RLAPI Matrix rlGetMatrixProjectionStereo(int eye) -{ - Matrix mat = rlMatrixIdentity(); -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - mat = RLGL.State.projectionStereo[eye]; -#endif - return mat; -} - -// Get internal view offset matrix for stereo render (selected eye) -RLAPI Matrix rlGetMatrixViewOffsetStereo(int eye) -{ - Matrix mat = rlMatrixIdentity(); -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - mat = RLGL.State.viewOffsetStereo[eye]; -#endif - return mat; -} - -// Set a custom modelview matrix (replaces internal modelview matrix) -void rlSetMatrixModelview(Matrix view) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - RLGL.State.modelview = view; -#endif -} - -// Set a custom projection matrix (replaces internal projection matrix) -void rlSetMatrixProjection(Matrix projection) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - RLGL.State.projection = projection; -#endif -} - -// Set eyes projection matrices for stereo rendering -void rlSetMatrixProjectionStereo(Matrix right, Matrix left) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - RLGL.State.projectionStereo[0] = right; - RLGL.State.projectionStereo[1] = left; -#endif -} - -// Set eyes view offsets matrices for stereo rendering -void rlSetMatrixViewOffsetStereo(Matrix right, Matrix left) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - RLGL.State.viewOffsetStereo[0] = right; - RLGL.State.viewOffsetStereo[1] = left; -#endif -} - -// Load and draw a quad in NDC -void rlLoadDrawQuad(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - unsigned int quadVAO = 0; - unsigned int quadVBO = 0; - - float vertices[] = { - // Positions Texcoords - -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, - -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, - 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, - 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, - }; - - // Gen VAO to contain VBO - glGenVertexArrays(1, &quadVAO); - glBindVertexArray(quadVAO); - - // Gen and fill vertex buffer (VBO) - glGenBuffers(1, &quadVBO); - glBindBuffer(GL_ARRAY_BUFFER, quadVBO); - glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), &vertices, GL_STATIC_DRAW); - - // Bind vertex attributes (position, texcoords) - glEnableVertexAttribArray(0); - glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)0); // Positions - glEnableVertexAttribArray(1); - glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)(3*sizeof(float))); // Texcoords - - // Draw quad - glBindVertexArray(quadVAO); - glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); - glBindVertexArray(0); - - // Delete buffers (VBO and VAO) - glDeleteBuffers(1, &quadVBO); - glDeleteVertexArrays(1, &quadVAO); -#endif -} - -// Load and draw a cube in NDC -void rlLoadDrawCube(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - unsigned int cubeVAO = 0; - unsigned int cubeVBO = 0; - - float vertices[] = { - // Positions Normals Texcoords - -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, - 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f, - 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f, - -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, - -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f, - -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, - 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, - 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, - -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, - -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, - -1.0f, 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, - -1.0f, 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 1.0f, - -1.0f, -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, - -1.0f, -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, - -1.0f, -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, - -1.0f, 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, - 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, - 1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, - 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, - 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, - 1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, - -1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, - 1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 1.0f, - 1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f, - 1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f, - -1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, - -1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, - -1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, - 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, - 1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, - 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, - -1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, - -1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f - }; - - // Gen VAO to contain VBO - glGenVertexArrays(1, &cubeVAO); - glBindVertexArray(cubeVAO); - - // Gen and fill vertex buffer (VBO) - glGenBuffers(1, &cubeVBO); - glBindBuffer(GL_ARRAY_BUFFER, cubeVBO); - glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); - - // Bind vertex attributes (position, normals, texcoords) - glBindVertexArray(cubeVAO); - glEnableVertexAttribArray(0); - glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)0); // Positions - glEnableVertexAttribArray(1); - glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(3*sizeof(float))); // Normals - glEnableVertexAttribArray(2); - glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(6*sizeof(float))); // Texcoords - glBindBuffer(GL_ARRAY_BUFFER, 0); - glBindVertexArray(0); - - // Draw cube - glBindVertexArray(cubeVAO); - glDrawArrays(GL_TRIANGLES, 0, 36); - glBindVertexArray(0); - - // Delete VBO and VAO - glDeleteBuffers(1, &cubeVBO); - glDeleteVertexArrays(1, &cubeVAO); -#endif -} - -// Get name string for pixel format -const char *rlGetPixelFormatName(unsigned int format) -{ - switch (format) - { - case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: return "GRAYSCALE"; break; // 8 bit per pixel (no alpha) - case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: return "GRAY_ALPHA"; break; // 8*2 bpp (2 channels) - case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: return "R5G6B5"; break; // 16 bpp - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: return "R8G8B8"; break; // 24 bpp - case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: return "R5G5B5A1"; break; // 16 bpp (1 bit alpha) - case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: return "R4G4B4A4"; break; // 16 bpp (4 bit alpha) - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: return "R8G8B8A8"; break; // 32 bpp - case RL_PIXELFORMAT_UNCOMPRESSED_R32: return "R32"; break; // 32 bpp (1 channel - float) - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: return "R32G32B32"; break; // 32*3 bpp (3 channels - float) - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: return "R32G32B32A32"; break; // 32*4 bpp (4 channels - float) - case RL_PIXELFORMAT_UNCOMPRESSED_R16: return "R16"; break; // 16 bpp (1 channel - half float) - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: return "R16G16B16"; break; // 16*3 bpp (3 channels - half float) - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: return "R16G16B16A16"; break; // 16*4 bpp (4 channels - half float) - case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: return "DXT1_RGB"; break; // 4 bpp (no alpha) - case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: return "DXT1_RGBA"; break; // 4 bpp (1 bit alpha) - case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: return "DXT3_RGBA"; break; // 8 bpp - case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: return "DXT5_RGBA"; break; // 8 bpp - case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: return "ETC1_RGB"; break; // 4 bpp - case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: return "ETC2_RGB"; break; // 4 bpp - case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: return "ETC2_RGBA"; break; // 8 bpp - case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: return "PVRT_RGB"; break; // 4 bpp - case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: return "PVRT_RGBA"; break; // 4 bpp - case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: return "ASTC_4x4_RGBA"; break; // 8 bpp - case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: return "ASTC_8x8_RGBA"; break; // 2 bpp - default: return "UNKNOWN"; break; - } -} - -//---------------------------------------------------------------------------------- -// Module specific Functions Definition -//---------------------------------------------------------------------------------- -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) -// Load default shader (just vertex positioning and texture coloring) -// NOTE: This shader program is used for internal buffers -// NOTE: Loaded: RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs -static void rlLoadShaderDefault(void) -{ - RLGL.State.defaultShaderLocs = (int *)RL_CALLOC(RL_MAX_SHADER_LOCATIONS, sizeof(int)); - - // NOTE: All locations must be reseted to -1 (no location) - for (int i = 0; i < RL_MAX_SHADER_LOCATIONS; i++) RLGL.State.defaultShaderLocs[i] = -1; - - // Vertex shader directly defined, no external file required - const char *defaultVShaderCode = -#if defined(GRAPHICS_API_OPENGL_21) - "#version 120 \n" - "attribute vec3 vertexPosition; \n" - "attribute vec2 vertexTexCoord; \n" - "attribute vec4 vertexColor; \n" - "varying vec2 fragTexCoord; \n" - "varying vec4 fragColor; \n" -#elif defined(GRAPHICS_API_OPENGL_33) - "#version 330 \n" - "in vec3 vertexPosition; \n" - "in vec2 vertexTexCoord; \n" - "in vec4 vertexColor; \n" - "out vec2 fragTexCoord; \n" - "out vec4 fragColor; \n" -#endif -#if defined(GRAPHICS_API_OPENGL_ES2) - "#version 100 \n" - "precision mediump float; \n" // Precision required for OpenGL ES2 (WebGL) (on some browsers) - "attribute vec3 vertexPosition; \n" - "attribute vec2 vertexTexCoord; \n" - "attribute vec4 vertexColor; \n" - "varying vec2 fragTexCoord; \n" - "varying vec4 fragColor; \n" -#endif - "uniform mat4 mvp; \n" - "void main() \n" - "{ \n" - " fragTexCoord = vertexTexCoord; \n" - " fragColor = vertexColor; \n" - " gl_Position = mvp*vec4(vertexPosition, 1.0); \n" - "} \n"; - - // Fragment shader directly defined, no external file required - const char *defaultFShaderCode = -#if defined(GRAPHICS_API_OPENGL_21) - "#version 120 \n" - "varying vec2 fragTexCoord; \n" - "varying vec4 fragColor; \n" - "uniform sampler2D texture0; \n" - "uniform vec4 colDiffuse; \n" - "void main() \n" - "{ \n" - " vec4 texelColor = texture2D(texture0, fragTexCoord); \n" - " gl_FragColor = texelColor*colDiffuse*fragColor; \n" - "} \n"; -#elif defined(GRAPHICS_API_OPENGL_33) - "#version 330 \n" - "in vec2 fragTexCoord; \n" - "in vec4 fragColor; \n" - "out vec4 finalColor; \n" - "uniform sampler2D texture0; \n" - "uniform vec4 colDiffuse; \n" - "void main() \n" - "{ \n" - " vec4 texelColor = texture(texture0, fragTexCoord); \n" - " finalColor = texelColor*colDiffuse*fragColor; \n" - "} \n"; -#endif -#if defined(GRAPHICS_API_OPENGL_ES2) - "#version 100 \n" - "precision mediump float; \n" // Precision required for OpenGL ES2 (WebGL) - "varying vec2 fragTexCoord; \n" - "varying vec4 fragColor; \n" - "uniform sampler2D texture0; \n" - "uniform vec4 colDiffuse; \n" - "void main() \n" - "{ \n" - " vec4 texelColor = texture2D(texture0, fragTexCoord); \n" - " gl_FragColor = texelColor*colDiffuse*fragColor; \n" - "} \n"; -#endif - - // NOTE: Compiled vertex/fragment shaders are not deleted, - // they are kept for re-use as default shaders in case some shader loading fails - RLGL.State.defaultVShaderId = rlCompileShader(defaultVShaderCode, GL_VERTEX_SHADER); // Compile default vertex shader - RLGL.State.defaultFShaderId = rlCompileShader(defaultFShaderCode, GL_FRAGMENT_SHADER); // Compile default fragment shader - - RLGL.State.defaultShaderId = rlLoadShaderProgram(RLGL.State.defaultVShaderId, RLGL.State.defaultFShaderId); - - if (RLGL.State.defaultShaderId > 0) - { - TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Default shader loaded successfully", RLGL.State.defaultShaderId); - - // Set default shader locations: attributes locations - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_POSITION] = glGetAttribLocation(RLGL.State.defaultShaderId, "vertexPosition"); - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01] = glGetAttribLocation(RLGL.State.defaultShaderId, "vertexTexCoord"); - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_COLOR] = glGetAttribLocation(RLGL.State.defaultShaderId, "vertexColor"); - - // Set default shader locations: uniform locations - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MATRIX_MVP] = glGetUniformLocation(RLGL.State.defaultShaderId, "mvp"); - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_COLOR_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, "colDiffuse"); - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MAP_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, "texture0"); - } - else TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to load default shader", RLGL.State.defaultShaderId); -} - -// Unload default shader -// NOTE: Unloads: RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs -static void rlUnloadShaderDefault(void) -{ - glUseProgram(0); - - glDetachShader(RLGL.State.defaultShaderId, RLGL.State.defaultVShaderId); - glDetachShader(RLGL.State.defaultShaderId, RLGL.State.defaultFShaderId); - glDeleteShader(RLGL.State.defaultVShaderId); - glDeleteShader(RLGL.State.defaultFShaderId); - - glDeleteProgram(RLGL.State.defaultShaderId); - - RL_FREE(RLGL.State.defaultShaderLocs); - - TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Default shader unloaded successfully", RLGL.State.defaultShaderId); -} - -#if defined(RLGL_SHOW_GL_DETAILS_INFO) -// Get compressed format official GL identifier name -static const char *rlGetCompressedFormatName(int format) -{ - switch (format) - { - // GL_EXT_texture_compression_s3tc - case 0x83F0: return "GL_COMPRESSED_RGB_S3TC_DXT1_EXT"; break; - case 0x83F1: return "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT"; break; - case 0x83F2: return "GL_COMPRESSED_RGBA_S3TC_DXT3_EXT"; break; - case 0x83F3: return "GL_COMPRESSED_RGBA_S3TC_DXT5_EXT"; break; - // GL_3DFX_texture_compression_FXT1 - case 0x86B0: return "GL_COMPRESSED_RGB_FXT1_3DFX"; break; - case 0x86B1: return "GL_COMPRESSED_RGBA_FXT1_3DFX"; break; - // GL_IMG_texture_compression_pvrtc - case 0x8C00: return "GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG"; break; - case 0x8C01: return "GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG"; break; - case 0x8C02: return "GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG"; break; - case 0x8C03: return "GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG"; break; - // GL_OES_compressed_ETC1_RGB8_texture - case 0x8D64: return "GL_ETC1_RGB8_OES"; break; - // GL_ARB_texture_compression_rgtc - case 0x8DBB: return "GL_COMPRESSED_RED_RGTC1"; break; - case 0x8DBC: return "GL_COMPRESSED_SIGNED_RED_RGTC1"; break; - case 0x8DBD: return "GL_COMPRESSED_RG_RGTC2"; break; - case 0x8DBE: return "GL_COMPRESSED_SIGNED_RG_RGTC2"; break; - // GL_ARB_texture_compression_bptc - case 0x8E8C: return "GL_COMPRESSED_RGBA_BPTC_UNORM_ARB"; break; - case 0x8E8D: return "GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB"; break; - case 0x8E8E: return "GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB"; break; - case 0x8E8F: return "GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB"; break; - // GL_ARB_ES3_compatibility - case 0x9274: return "GL_COMPRESSED_RGB8_ETC2"; break; - case 0x9275: return "GL_COMPRESSED_SRGB8_ETC2"; break; - case 0x9276: return "GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"; break; - case 0x9277: return "GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"; break; - case 0x9278: return "GL_COMPRESSED_RGBA8_ETC2_EAC"; break; - case 0x9279: return "GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"; break; - case 0x9270: return "GL_COMPRESSED_R11_EAC"; break; - case 0x9271: return "GL_COMPRESSED_SIGNED_R11_EAC"; break; - case 0x9272: return "GL_COMPRESSED_RG11_EAC"; break; - case 0x9273: return "GL_COMPRESSED_SIGNED_RG11_EAC"; break; - // GL_KHR_texture_compression_astc_hdr - case 0x93B0: return "GL_COMPRESSED_RGBA_ASTC_4x4_KHR"; break; - case 0x93B1: return "GL_COMPRESSED_RGBA_ASTC_5x4_KHR"; break; - case 0x93B2: return "GL_COMPRESSED_RGBA_ASTC_5x5_KHR"; break; - case 0x93B3: return "GL_COMPRESSED_RGBA_ASTC_6x5_KHR"; break; - case 0x93B4: return "GL_COMPRESSED_RGBA_ASTC_6x6_KHR"; break; - case 0x93B5: return "GL_COMPRESSED_RGBA_ASTC_8x5_KHR"; break; - case 0x93B6: return "GL_COMPRESSED_RGBA_ASTC_8x6_KHR"; break; - case 0x93B7: return "GL_COMPRESSED_RGBA_ASTC_8x8_KHR"; break; - case 0x93B8: return "GL_COMPRESSED_RGBA_ASTC_10x5_KHR"; break; - case 0x93B9: return "GL_COMPRESSED_RGBA_ASTC_10x6_KHR"; break; - case 0x93BA: return "GL_COMPRESSED_RGBA_ASTC_10x8_KHR"; break; - case 0x93BB: return "GL_COMPRESSED_RGBA_ASTC_10x10_KHR"; break; - case 0x93BC: return "GL_COMPRESSED_RGBA_ASTC_12x10_KHR"; break; - case 0x93BD: return "GL_COMPRESSED_RGBA_ASTC_12x12_KHR"; break; - case 0x93D0: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"; break; - case 0x93D1: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"; break; - case 0x93D2: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"; break; - case 0x93D3: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"; break; - case 0x93D4: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"; break; - case 0x93D5: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"; break; - case 0x93D6: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"; break; - case 0x93D7: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"; break; - case 0x93D8: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"; break; - case 0x93D9: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"; break; - case 0x93DA: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"; break; - case 0x93DB: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"; break; - case 0x93DC: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"; break; - case 0x93DD: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"; break; - default: return "GL_COMPRESSED_UNKNOWN"; break; - } -} -#endif // RLGL_SHOW_GL_DETAILS_INFO - -#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 - -// Get pixel data size in bytes (image or texture) -// NOTE: Size depends on pixel format -static int rlGetPixelDataSize(int width, int height, int format) -{ - int dataSize = 0; // Size in bytes - int bpp = 0; // Bits per pixel - - switch (format) - { - case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: bpp = 8; break; - case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: - case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: - case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: - case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: bpp = 16; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: bpp = 32; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: bpp = 24; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32: bpp = 32; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: bpp = 32*3; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: bpp = 32*4; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16: bpp = 16; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: bpp = 16*3; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: bpp = 16*4; break; - case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: - case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: - case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: - case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: - case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: - case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: bpp = 4; break; - case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: - case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: - case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: - case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: bpp = 8; break; - case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: bpp = 2; break; - default: break; - } - - dataSize = width*height*bpp/8; // Total data size in bytes - - // Most compressed formats works on 4x4 blocks, - // if texture is smaller, minimum dataSize is 8 or 16 - if ((width < 4) && (height < 4)) - { - if ((format >= RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) && (format < RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA)) dataSize = 8; - else if ((format >= RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA) && (format < RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA)) dataSize = 16; - } - - return dataSize; -} - -// Auxiliar math functions - -// Get identity matrix -static Matrix rlMatrixIdentity(void) -{ - Matrix result = { - 1.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 1.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 1.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 1.0f - }; - - return result; -} - -// Get two matrix multiplication -// NOTE: When multiplying matrices... the order matters! -static Matrix rlMatrixMultiply(Matrix left, Matrix right) -{ - Matrix result = { 0 }; - - result.m0 = left.m0*right.m0 + left.m1*right.m4 + left.m2*right.m8 + left.m3*right.m12; - result.m1 = left.m0*right.m1 + left.m1*right.m5 + left.m2*right.m9 + left.m3*right.m13; - result.m2 = left.m0*right.m2 + left.m1*right.m6 + left.m2*right.m10 + left.m3*right.m14; - result.m3 = left.m0*right.m3 + left.m1*right.m7 + left.m2*right.m11 + left.m3*right.m15; - result.m4 = left.m4*right.m0 + left.m5*right.m4 + left.m6*right.m8 + left.m7*right.m12; - result.m5 = left.m4*right.m1 + left.m5*right.m5 + left.m6*right.m9 + left.m7*right.m13; - result.m6 = left.m4*right.m2 + left.m5*right.m6 + left.m6*right.m10 + left.m7*right.m14; - result.m7 = left.m4*right.m3 + left.m5*right.m7 + left.m6*right.m11 + left.m7*right.m15; - result.m8 = left.m8*right.m0 + left.m9*right.m4 + left.m10*right.m8 + left.m11*right.m12; - result.m9 = left.m8*right.m1 + left.m9*right.m5 + left.m10*right.m9 + left.m11*right.m13; - result.m10 = left.m8*right.m2 + left.m9*right.m6 + left.m10*right.m10 + left.m11*right.m14; - result.m11 = left.m8*right.m3 + left.m9*right.m7 + left.m10*right.m11 + left.m11*right.m15; - result.m12 = left.m12*right.m0 + left.m13*right.m4 + left.m14*right.m8 + left.m15*right.m12; - result.m13 = left.m12*right.m1 + left.m13*right.m5 + left.m14*right.m9 + left.m15*right.m13; - result.m14 = left.m12*right.m2 + left.m13*right.m6 + left.m14*right.m10 + left.m15*right.m14; - result.m15 = left.m12*right.m3 + left.m13*right.m7 + left.m14*right.m11 + left.m15*right.m15; - - return result; -} - -#endif // RLGL_IMPLEMENTATION +/********************************************************************************************** +* +* rlgl v5.0 - A multi-OpenGL abstraction layer with an immediate-mode style API +* +* DESCRIPTION: +* An abstraction layer for multiple OpenGL versions (1.1, 2.1, 3.3 Core, 4.3 Core, ES 2.0) +* that provides a pseudo-OpenGL 1.1 immediate-mode style API (rlVertex, rlTranslate, rlRotate...) +* +* ADDITIONAL NOTES: +* When choosing an OpenGL backend different than OpenGL 1.1, some internal buffer are +* initialized on rlglInit() to accumulate vertex data +* +* When an internal state change is required all the stored vertex data is renderer in batch, +* additionally, rlDrawRenderBatchActive() could be called to force flushing of the batch +* +* Some resources are also loaded for convenience, here the complete list: +* - Default batch (RLGL.defaultBatch): RenderBatch system to accumulate vertex data +* - Default texture (RLGL.defaultTextureId): 1x1 white pixel R8G8B8A8 +* - Default shader (RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs) +* +* Internal buffer (and resources) must be manually unloaded calling rlglClose() +* +* CONFIGURATION: +* #define GRAPHICS_API_OPENGL_11 +* #define GRAPHICS_API_OPENGL_21 +* #define GRAPHICS_API_OPENGL_33 +* #define GRAPHICS_API_OPENGL_43 +* #define GRAPHICS_API_OPENGL_ES2 +* #define GRAPHICS_API_OPENGL_ES3 +* Use selected OpenGL graphics backend, should be supported by platform +* Those preprocessor defines are only used on rlgl module, if OpenGL version is +* required by any other module, use rlGetVersion() to check it +* +* #define RLGL_IMPLEMENTATION +* Generates the implementation of the library into the included file +* If not defined, the library is in header only mode and can be included in other headers +* or source files without problems. But only ONE file should hold the implementation +* +* #define RLGL_RENDER_TEXTURES_HINT +* Enable framebuffer objects (fbo) support (enabled by default) +* Some GPUs could not support them despite the OpenGL version +* +* #define RLGL_SHOW_GL_DETAILS_INFO +* Show OpenGL extensions and capabilities detailed logs on init +* +* #define RLGL_ENABLE_OPENGL_DEBUG_CONTEXT +* Enable debug context (only available on OpenGL 4.3) +* +* rlgl capabilities could be customized just defining some internal +* values before library inclusion (default values listed): +* +* #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 8192 // Default internal render batch elements limits +* #define RL_DEFAULT_BATCH_BUFFERS 1 // Default number of batch buffers (multi-buffering) +* #define RL_DEFAULT_BATCH_DRAWCALLS 256 // Default number of batch draw calls (by state changes: mode, texture) +* #define RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS 4 // Maximum number of textures units that can be activated on batch drawing (SetShaderValueTexture()) +* +* #define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of internal Matrix stack +* #define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported +* #define RL_CULL_DISTANCE_NEAR 0.01 // Default projection matrix near cull distance +* #define RL_CULL_DISTANCE_FAR 1000.0 // Default projection matrix far cull distance +* +* When loading a shader, the following vertex attributes and uniform +* location names are tried to be set automatically: +* +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS "vertexBoneIds" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS "vertexBoneWeights" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL "matModel" // model matrix +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView))) +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color) +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_BONE_MATRICES "boneMatrices" // bone matrices +* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0) +* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 "texture1" // texture1 (texture slot active 1) +* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 "texture2" // texture2 (texture slot active 2) +* +* DEPENDENCIES: +* - OpenGL libraries (depending on platform and OpenGL version selected) +* - GLAD OpenGL extensions loading library (only for OpenGL 3.3 Core, 4.3 Core) +* +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) +* +* This software is provided "as-is", without any express or implied warranty. In no event +* will the authors be held liable for any damages arising from the use of this software. +* +* Permission is granted to anyone to use this software for any purpose, including commercial +* applications, and to alter it and redistribute it freely, subject to the following restrictions: +* +* 1. The origin of this software must not be misrepresented; you must not claim that you +* wrote the original software. If you use this software in a product, an acknowledgment +* in the product documentation would be appreciated but is not required. +* +* 2. Altered source versions must be plainly marked as such, and must not be misrepresented +* as being the original software. +* +* 3. This notice may not be removed or altered from any source distribution. +* +**********************************************************************************************/ + +#ifndef RLGL_H +#define RLGL_H + +#define RLGL_VERSION "5.0" + +// Function specifiers in case library is build/used as a shared library +// NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll +// NOTE: visibility(default) attribute makes symbols "visible" when compiled with -fvisibility=hidden +#if defined(_WIN32) && defined(BUILD_LIBTYPE_SHARED) + #define RLAPI __declspec(dllexport) // We are building the library as a Win32 shared library (.dll) +#elif defined(BUILD_LIBTYPE_SHARED) + #define RLAPI __attribute__((visibility("default"))) // We are building the library as a Unix shared library (.so/.dylib) +#elif defined(_WIN32) && defined(USE_LIBTYPE_SHARED) + #define RLAPI __declspec(dllimport) // We are using the library as a Win32 shared library (.dll) +#endif + +// Function specifiers definition +#ifndef RLAPI + #define RLAPI // Functions defined as 'extern' by default (implicit specifiers) +#endif + +// Support TRACELOG macros +#ifndef TRACELOG + #define TRACELOG(level, ...) (void)0 + #define TRACELOGD(...) (void)0 +#endif + +// Allow custom memory allocators +#ifndef RL_MALLOC + #define RL_MALLOC(sz) malloc(sz) +#endif +#ifndef RL_CALLOC + #define RL_CALLOC(n,sz) calloc(n,sz) +#endif +#ifndef RL_REALLOC + #define RL_REALLOC(n,sz) realloc(n,sz) +#endif +#ifndef RL_FREE + #define RL_FREE(p) free(p) +#endif + +// Security check in case no GRAPHICS_API_OPENGL_* defined +#if !defined(GRAPHICS_API_OPENGL_11) && \ + !defined(GRAPHICS_API_OPENGL_21) && \ + !defined(GRAPHICS_API_OPENGL_33) && \ + !defined(GRAPHICS_API_OPENGL_43) && \ + !defined(GRAPHICS_API_OPENGL_ES2) && \ + !defined(GRAPHICS_API_OPENGL_ES3) + #define GRAPHICS_API_OPENGL_33 +#endif + +// Security check in case multiple GRAPHICS_API_OPENGL_* defined +#if defined(GRAPHICS_API_OPENGL_11) + #if defined(GRAPHICS_API_OPENGL_21) + #undef GRAPHICS_API_OPENGL_21 + #endif + #if defined(GRAPHICS_API_OPENGL_33) + #undef GRAPHICS_API_OPENGL_33 + #endif + #if defined(GRAPHICS_API_OPENGL_43) + #undef GRAPHICS_API_OPENGL_43 + #endif + #if defined(GRAPHICS_API_OPENGL_ES2) + #undef GRAPHICS_API_OPENGL_ES2 + #endif +#endif + +// OpenGL 2.1 uses most of OpenGL 3.3 Core functionality +// WARNING: Specific parts are checked with #if defines +#if defined(GRAPHICS_API_OPENGL_21) + #define GRAPHICS_API_OPENGL_33 +#endif + +// OpenGL 4.3 uses OpenGL 3.3 Core functionality +#if defined(GRAPHICS_API_OPENGL_43) + #define GRAPHICS_API_OPENGL_33 +#endif + +// OpenGL ES 3.0 uses OpenGL ES 2.0 functionality (and more) +#if defined(GRAPHICS_API_OPENGL_ES3) + #define GRAPHICS_API_OPENGL_ES2 +#endif + +// Support framebuffer objects by default +// NOTE: Some driver implementation do not support it, despite they should +#define RLGL_RENDER_TEXTURES_HINT + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- + +// Default internal render batch elements limits +#ifndef RL_DEFAULT_BATCH_BUFFER_ELEMENTS + #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + // This is the maximum amount of elements (quads) per batch + // NOTE: Be careful with text, every letter maps to a quad + #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 8192 + #endif + #if defined(GRAPHICS_API_OPENGL_ES2) + // We reduce memory sizes for embedded systems (RPI and HTML5) + // NOTE: On HTML5 (emscripten) this is allocated on heap, + // by default it's only 16MB!...just take care... + #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 2048 + #endif +#endif +#ifndef RL_DEFAULT_BATCH_BUFFERS + #define RL_DEFAULT_BATCH_BUFFERS 1 // Default number of batch buffers (multi-buffering) +#endif +#ifndef RL_DEFAULT_BATCH_DRAWCALLS + #define RL_DEFAULT_BATCH_DRAWCALLS 256 // Default number of batch draw calls (by state changes: mode, texture) +#endif +#ifndef RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS + #define RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS 4 // Maximum number of textures units that can be activated on batch drawing (SetShaderValueTexture()) +#endif + +// Internal Matrix stack +#ifndef RL_MAX_MATRIX_STACK_SIZE + #define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of Matrix stack +#endif + +// Shader limits +#ifndef RL_MAX_SHADER_LOCATIONS + #define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported +#endif + +// Projection matrix culling +#ifndef RL_CULL_DISTANCE_NEAR + #define RL_CULL_DISTANCE_NEAR 0.01 // Default near cull distance +#endif +#ifndef RL_CULL_DISTANCE_FAR + #define RL_CULL_DISTANCE_FAR 1000.0 // Default far cull distance +#endif + +// Texture parameters (equivalent to OpenGL defines) +#define RL_TEXTURE_WRAP_S 0x2802 // GL_TEXTURE_WRAP_S +#define RL_TEXTURE_WRAP_T 0x2803 // GL_TEXTURE_WRAP_T +#define RL_TEXTURE_MAG_FILTER 0x2800 // GL_TEXTURE_MAG_FILTER +#define RL_TEXTURE_MIN_FILTER 0x2801 // GL_TEXTURE_MIN_FILTER + +#define RL_TEXTURE_FILTER_NEAREST 0x2600 // GL_NEAREST +#define RL_TEXTURE_FILTER_LINEAR 0x2601 // GL_LINEAR +#define RL_TEXTURE_FILTER_MIP_NEAREST 0x2700 // GL_NEAREST_MIPMAP_NEAREST +#define RL_TEXTURE_FILTER_NEAREST_MIP_LINEAR 0x2702 // GL_NEAREST_MIPMAP_LINEAR +#define RL_TEXTURE_FILTER_LINEAR_MIP_NEAREST 0x2701 // GL_LINEAR_MIPMAP_NEAREST +#define RL_TEXTURE_FILTER_MIP_LINEAR 0x2703 // GL_LINEAR_MIPMAP_LINEAR +#define RL_TEXTURE_FILTER_ANISOTROPIC 0x3000 // Anisotropic filter (custom identifier) +#define RL_TEXTURE_MIPMAP_BIAS_RATIO 0x4000 // Texture mipmap bias, percentage ratio (custom identifier) + +#define RL_TEXTURE_WRAP_REPEAT 0x2901 // GL_REPEAT +#define RL_TEXTURE_WRAP_CLAMP 0x812F // GL_CLAMP_TO_EDGE +#define RL_TEXTURE_WRAP_MIRROR_REPEAT 0x8370 // GL_MIRRORED_REPEAT +#define RL_TEXTURE_WRAP_MIRROR_CLAMP 0x8742 // GL_MIRROR_CLAMP_EXT + +// Matrix modes (equivalent to OpenGL) +#define RL_MODELVIEW 0x1700 // GL_MODELVIEW +#define RL_PROJECTION 0x1701 // GL_PROJECTION +#define RL_TEXTURE 0x1702 // GL_TEXTURE + +// Primitive assembly draw modes +#define RL_LINES 0x0001 // GL_LINES +#define RL_TRIANGLES 0x0004 // GL_TRIANGLES +#define RL_QUADS 0x0007 // GL_QUADS + +// GL equivalent data types +#define RL_UNSIGNED_BYTE 0x1401 // GL_UNSIGNED_BYTE +#define RL_FLOAT 0x1406 // GL_FLOAT + +// GL buffer usage hint +#define RL_STREAM_DRAW 0x88E0 // GL_STREAM_DRAW +#define RL_STREAM_READ 0x88E1 // GL_STREAM_READ +#define RL_STREAM_COPY 0x88E2 // GL_STREAM_COPY +#define RL_STATIC_DRAW 0x88E4 // GL_STATIC_DRAW +#define RL_STATIC_READ 0x88E5 // GL_STATIC_READ +#define RL_STATIC_COPY 0x88E6 // GL_STATIC_COPY +#define RL_DYNAMIC_DRAW 0x88E8 // GL_DYNAMIC_DRAW +#define RL_DYNAMIC_READ 0x88E9 // GL_DYNAMIC_READ +#define RL_DYNAMIC_COPY 0x88EA // GL_DYNAMIC_COPY + +// GL Shader type +#define RL_FRAGMENT_SHADER 0x8B30 // GL_FRAGMENT_SHADER +#define RL_VERTEX_SHADER 0x8B31 // GL_VERTEX_SHADER +#define RL_COMPUTE_SHADER 0x91B9 // GL_COMPUTE_SHADER + +// GL blending factors +#define RL_ZERO 0 // GL_ZERO +#define RL_ONE 1 // GL_ONE +#define RL_SRC_COLOR 0x0300 // GL_SRC_COLOR +#define RL_ONE_MINUS_SRC_COLOR 0x0301 // GL_ONE_MINUS_SRC_COLOR +#define RL_SRC_ALPHA 0x0302 // GL_SRC_ALPHA +#define RL_ONE_MINUS_SRC_ALPHA 0x0303 // GL_ONE_MINUS_SRC_ALPHA +#define RL_DST_ALPHA 0x0304 // GL_DST_ALPHA +#define RL_ONE_MINUS_DST_ALPHA 0x0305 // GL_ONE_MINUS_DST_ALPHA +#define RL_DST_COLOR 0x0306 // GL_DST_COLOR +#define RL_ONE_MINUS_DST_COLOR 0x0307 // GL_ONE_MINUS_DST_COLOR +#define RL_SRC_ALPHA_SATURATE 0x0308 // GL_SRC_ALPHA_SATURATE +#define RL_CONSTANT_COLOR 0x8001 // GL_CONSTANT_COLOR +#define RL_ONE_MINUS_CONSTANT_COLOR 0x8002 // GL_ONE_MINUS_CONSTANT_COLOR +#define RL_CONSTANT_ALPHA 0x8003 // GL_CONSTANT_ALPHA +#define RL_ONE_MINUS_CONSTANT_ALPHA 0x8004 // GL_ONE_MINUS_CONSTANT_ALPHA + +// GL blending functions/equations +#define RL_FUNC_ADD 0x8006 // GL_FUNC_ADD +#define RL_MIN 0x8007 // GL_MIN +#define RL_MAX 0x8008 // GL_MAX +#define RL_FUNC_SUBTRACT 0x800A // GL_FUNC_SUBTRACT +#define RL_FUNC_REVERSE_SUBTRACT 0x800B // GL_FUNC_REVERSE_SUBTRACT +#define RL_BLEND_EQUATION 0x8009 // GL_BLEND_EQUATION +#define RL_BLEND_EQUATION_RGB 0x8009 // GL_BLEND_EQUATION_RGB // (Same as BLEND_EQUATION) +#define RL_BLEND_EQUATION_ALPHA 0x883D // GL_BLEND_EQUATION_ALPHA +#define RL_BLEND_DST_RGB 0x80C8 // GL_BLEND_DST_RGB +#define RL_BLEND_SRC_RGB 0x80C9 // GL_BLEND_SRC_RGB +#define RL_BLEND_DST_ALPHA 0x80CA // GL_BLEND_DST_ALPHA +#define RL_BLEND_SRC_ALPHA 0x80CB // GL_BLEND_SRC_ALPHA +#define RL_BLEND_COLOR 0x8005 // GL_BLEND_COLOR + +#define RL_READ_FRAMEBUFFER 0x8CA8 // GL_READ_FRAMEBUFFER +#define RL_DRAW_FRAMEBUFFER 0x8CA9 // GL_DRAW_FRAMEBUFFER + +// Default shader vertex attribute locations +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION 0 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD 1 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL 2 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR 3 +#endif + #ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT +#define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT 4 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 5 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_INDICES + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_INDICES 6 +#endif +#ifdef RL_SUPPORT_MESH_GPU_SKINNING +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS 7 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS 8 +#endif +#endif + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +#if (defined(__STDC__) && __STDC_VERSION__ >= 199901L) || (defined(_MSC_VER) && _MSC_VER >= 1800) + #include +#elif !defined(__cplusplus) && !defined(bool) && !defined(RL_BOOL_TYPE) + // Boolean type +typedef enum bool { false = 0, true = !false } bool; +#endif + +#if !defined(RL_MATRIX_TYPE) +// Matrix, 4x4 components, column major, OpenGL style, right handed +typedef struct Matrix { + float m0, m4, m8, m12; // Matrix first row (4 components) + float m1, m5, m9, m13; // Matrix second row (4 components) + float m2, m6, m10, m14; // Matrix third row (4 components) + float m3, m7, m11, m15; // Matrix fourth row (4 components) +} Matrix; +#define RL_MATRIX_TYPE +#endif + +// Dynamic vertex buffers (position + texcoords + colors + indices arrays) +typedef struct rlVertexBuffer { + int elementCount; // Number of elements in the buffer (QUADS) + + float *vertices; // Vertex position (XYZ - 3 components per vertex) (shader-location = 0) + float *texcoords; // Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1) + float *normals; // Vertex normal (XYZ - 3 components per vertex) (shader-location = 2) + unsigned char *colors; // Vertex colors (RGBA - 4 components per vertex) (shader-location = 3) +#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + unsigned int *indices; // Vertex indices (in case vertex data comes indexed) (6 indices per quad) +#endif +#if defined(GRAPHICS_API_OPENGL_ES2) + unsigned short *indices; // Vertex indices (in case vertex data comes indexed) (6 indices per quad) +#endif + unsigned int vaoId; // OpenGL Vertex Array Object id + unsigned int vboId[5]; // OpenGL Vertex Buffer Objects id (5 types of vertex data) +} rlVertexBuffer; + +// Draw call type +// NOTE: Only texture changes register a new draw, other state-change-related elements are not +// used at this moment (vaoId, shaderId, matrices), raylib just forces a batch draw call if any +// of those state-change happens (this is done in core module) +typedef struct rlDrawCall { + int mode; // Drawing mode: LINES, TRIANGLES, QUADS + int vertexCount; // Number of vertex of the draw + int vertexAlignment; // Number of vertex required for index alignment (LINES, TRIANGLES) + //unsigned int vaoId; // Vertex array id to be used on the draw -> Using RLGL.currentBatch->vertexBuffer.vaoId + //unsigned int shaderId; // Shader id to be used on the draw -> Using RLGL.currentShaderId + unsigned int textureId; // Texture id to be used on the draw -> Use to create new draw call if changes + + //Matrix projection; // Projection matrix for this draw -> Using RLGL.projection by default + //Matrix modelview; // Modelview matrix for this draw -> Using RLGL.modelview by default +} rlDrawCall; + +// rlRenderBatch type +typedef struct rlRenderBatch { + int bufferCount; // Number of vertex buffers (multi-buffering support) + int currentBuffer; // Current buffer tracking in case of multi-buffering + rlVertexBuffer *vertexBuffer; // Dynamic buffer(s) for vertex data + + rlDrawCall *draws; // Draw calls array, depends on textureId + int drawCounter; // Draw calls counter + float currentDepth; // Current depth value for next draw +} rlRenderBatch; + +// OpenGL version +typedef enum { + RL_OPENGL_11 = 1, // OpenGL 1.1 + RL_OPENGL_21, // OpenGL 2.1 (GLSL 120) + RL_OPENGL_33, // OpenGL 3.3 (GLSL 330) + RL_OPENGL_43, // OpenGL 4.3 (using GLSL 330) + RL_OPENGL_ES_20, // OpenGL ES 2.0 (GLSL 100) + RL_OPENGL_ES_30 // OpenGL ES 3.0 (GLSL 300 es) +} rlGlVersion; + +// Trace log level +// NOTE: Organized by priority level +typedef enum { + RL_LOG_ALL = 0, // Display all logs + RL_LOG_TRACE, // Trace logging, intended for internal use only + RL_LOG_DEBUG, // Debug logging, used for internal debugging, it should be disabled on release builds + RL_LOG_INFO, // Info logging, used for program execution info + RL_LOG_WARNING, // Warning logging, used on recoverable failures + RL_LOG_ERROR, // Error logging, used on unrecoverable failures + RL_LOG_FATAL, // Fatal logging, used to abort program: exit(EXIT_FAILURE) + RL_LOG_NONE // Disable logging +} rlTraceLogLevel; + +// Texture pixel formats +// NOTE: Support depends on OpenGL version +typedef enum { + RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1, // 8 bit per pixel (no alpha) + RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA, // 8*2 bpp (2 channels) + RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5, // 16 bpp + RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8, // 24 bpp + RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1, // 16 bpp (1 bit alpha) + RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4, // 16 bpp (4 bit alpha) + RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, // 32 bpp + RL_PIXELFORMAT_UNCOMPRESSED_R32, // 32 bpp (1 channel - float) + RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32, // 32*3 bpp (3 channels - float) + RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32, // 32*4 bpp (4 channels - float) + RL_PIXELFORMAT_UNCOMPRESSED_R16, // 16 bpp (1 channel - half float) + RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16, // 16*3 bpp (3 channels - half float) + RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16, // 16*4 bpp (4 channels - half float) + RL_PIXELFORMAT_COMPRESSED_DXT1_RGB, // 4 bpp (no alpha) + RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA, // 4 bpp (1 bit alpha) + RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA, // 8 bpp + RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA, // 8 bpp + RL_PIXELFORMAT_COMPRESSED_ETC1_RGB, // 4 bpp + RL_PIXELFORMAT_COMPRESSED_ETC2_RGB, // 4 bpp + RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA, // 8 bpp + RL_PIXELFORMAT_COMPRESSED_PVRT_RGB, // 4 bpp + RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA, // 4 bpp + RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA, // 8 bpp + RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA // 2 bpp +} rlPixelFormat; + +// Texture parameters: filter mode +// NOTE 1: Filtering considers mipmaps if available in the texture +// NOTE 2: Filter is accordingly set for minification and magnification +typedef enum { + RL_TEXTURE_FILTER_POINT = 0, // No filter, just pixel approximation + RL_TEXTURE_FILTER_BILINEAR, // Linear filtering + RL_TEXTURE_FILTER_TRILINEAR, // Trilinear filtering (linear with mipmaps) + RL_TEXTURE_FILTER_ANISOTROPIC_4X, // Anisotropic filtering 4x + RL_TEXTURE_FILTER_ANISOTROPIC_8X, // Anisotropic filtering 8x + RL_TEXTURE_FILTER_ANISOTROPIC_16X, // Anisotropic filtering 16x +} rlTextureFilter; + +// Color blending modes (pre-defined) +typedef enum { + RL_BLEND_ALPHA = 0, // Blend textures considering alpha (default) + RL_BLEND_ADDITIVE, // Blend textures adding colors + RL_BLEND_MULTIPLIED, // Blend textures multiplying colors + RL_BLEND_ADD_COLORS, // Blend textures adding colors (alternative) + RL_BLEND_SUBTRACT_COLORS, // Blend textures subtracting colors (alternative) + RL_BLEND_ALPHA_PREMULTIPLY, // Blend premultiplied textures considering alpha + RL_BLEND_CUSTOM, // Blend textures using custom src/dst factors (use rlSetBlendFactors()) + RL_BLEND_CUSTOM_SEPARATE // Blend textures using custom src/dst factors (use rlSetBlendFactorsSeparate()) +} rlBlendMode; + +// Shader location point type +typedef enum { + RL_SHADER_LOC_VERTEX_POSITION = 0, // Shader location: vertex attribute: position + RL_SHADER_LOC_VERTEX_TEXCOORD01, // Shader location: vertex attribute: texcoord01 + RL_SHADER_LOC_VERTEX_TEXCOORD02, // Shader location: vertex attribute: texcoord02 + RL_SHADER_LOC_VERTEX_NORMAL, // Shader location: vertex attribute: normal + RL_SHADER_LOC_VERTEX_TANGENT, // Shader location: vertex attribute: tangent + RL_SHADER_LOC_VERTEX_COLOR, // Shader location: vertex attribute: color + RL_SHADER_LOC_MATRIX_MVP, // Shader location: matrix uniform: model-view-projection + RL_SHADER_LOC_MATRIX_VIEW, // Shader location: matrix uniform: view (camera transform) + RL_SHADER_LOC_MATRIX_PROJECTION, // Shader location: matrix uniform: projection + RL_SHADER_LOC_MATRIX_MODEL, // Shader location: matrix uniform: model (transform) + RL_SHADER_LOC_MATRIX_NORMAL, // Shader location: matrix uniform: normal + RL_SHADER_LOC_VECTOR_VIEW, // Shader location: vector uniform: view + RL_SHADER_LOC_COLOR_DIFFUSE, // Shader location: vector uniform: diffuse color + RL_SHADER_LOC_COLOR_SPECULAR, // Shader location: vector uniform: specular color + RL_SHADER_LOC_COLOR_AMBIENT, // Shader location: vector uniform: ambient color + RL_SHADER_LOC_MAP_ALBEDO, // Shader location: sampler2d texture: albedo (same as: RL_SHADER_LOC_MAP_DIFFUSE) + RL_SHADER_LOC_MAP_METALNESS, // Shader location: sampler2d texture: metalness (same as: RL_SHADER_LOC_MAP_SPECULAR) + RL_SHADER_LOC_MAP_NORMAL, // Shader location: sampler2d texture: normal + RL_SHADER_LOC_MAP_ROUGHNESS, // Shader location: sampler2d texture: roughness + RL_SHADER_LOC_MAP_OCCLUSION, // Shader location: sampler2d texture: occlusion + RL_SHADER_LOC_MAP_EMISSION, // Shader location: sampler2d texture: emission + RL_SHADER_LOC_MAP_HEIGHT, // Shader location: sampler2d texture: height + RL_SHADER_LOC_MAP_CUBEMAP, // Shader location: samplerCube texture: cubemap + RL_SHADER_LOC_MAP_IRRADIANCE, // Shader location: samplerCube texture: irradiance + RL_SHADER_LOC_MAP_PREFILTER, // Shader location: samplerCube texture: prefilter + RL_SHADER_LOC_MAP_BRDF // Shader location: sampler2d texture: brdf +} rlShaderLocationIndex; + +#define RL_SHADER_LOC_MAP_DIFFUSE RL_SHADER_LOC_MAP_ALBEDO +#define RL_SHADER_LOC_MAP_SPECULAR RL_SHADER_LOC_MAP_METALNESS + +// Shader uniform data type +typedef enum { + RL_SHADER_UNIFORM_FLOAT = 0, // Shader uniform type: float + RL_SHADER_UNIFORM_VEC2, // Shader uniform type: vec2 (2 float) + RL_SHADER_UNIFORM_VEC3, // Shader uniform type: vec3 (3 float) + RL_SHADER_UNIFORM_VEC4, // Shader uniform type: vec4 (4 float) + RL_SHADER_UNIFORM_INT, // Shader uniform type: int + RL_SHADER_UNIFORM_IVEC2, // Shader uniform type: ivec2 (2 int) + RL_SHADER_UNIFORM_IVEC3, // Shader uniform type: ivec3 (3 int) + RL_SHADER_UNIFORM_IVEC4, // Shader uniform type: ivec4 (4 int) + RL_SHADER_UNIFORM_UINT, // Shader uniform type: unsigned int + RL_SHADER_UNIFORM_UIVEC2, // Shader uniform type: uivec2 (2 unsigned int) + RL_SHADER_UNIFORM_UIVEC3, // Shader uniform type: uivec3 (3 unsigned int) + RL_SHADER_UNIFORM_UIVEC4, // Shader uniform type: uivec4 (4 unsigned int) + RL_SHADER_UNIFORM_SAMPLER2D // Shader uniform type: sampler2d +} rlShaderUniformDataType; + +// Shader attribute data types +typedef enum { + RL_SHADER_ATTRIB_FLOAT = 0, // Shader attribute type: float + RL_SHADER_ATTRIB_VEC2, // Shader attribute type: vec2 (2 float) + RL_SHADER_ATTRIB_VEC3, // Shader attribute type: vec3 (3 float) + RL_SHADER_ATTRIB_VEC4 // Shader attribute type: vec4 (4 float) +} rlShaderAttributeDataType; + +// Framebuffer attachment type +// NOTE: By default up to 8 color channels defined, but it can be more +typedef enum { + RL_ATTACHMENT_COLOR_CHANNEL0 = 0, // Framebuffer attachment type: color 0 + RL_ATTACHMENT_COLOR_CHANNEL1 = 1, // Framebuffer attachment type: color 1 + RL_ATTACHMENT_COLOR_CHANNEL2 = 2, // Framebuffer attachment type: color 2 + RL_ATTACHMENT_COLOR_CHANNEL3 = 3, // Framebuffer attachment type: color 3 + RL_ATTACHMENT_COLOR_CHANNEL4 = 4, // Framebuffer attachment type: color 4 + RL_ATTACHMENT_COLOR_CHANNEL5 = 5, // Framebuffer attachment type: color 5 + RL_ATTACHMENT_COLOR_CHANNEL6 = 6, // Framebuffer attachment type: color 6 + RL_ATTACHMENT_COLOR_CHANNEL7 = 7, // Framebuffer attachment type: color 7 + RL_ATTACHMENT_DEPTH = 100, // Framebuffer attachment type: depth + RL_ATTACHMENT_STENCIL = 200, // Framebuffer attachment type: stencil +} rlFramebufferAttachType; + +// Framebuffer texture attachment type +typedef enum { + RL_ATTACHMENT_CUBEMAP_POSITIVE_X = 0, // Framebuffer texture attachment type: cubemap, +X side + RL_ATTACHMENT_CUBEMAP_NEGATIVE_X = 1, // Framebuffer texture attachment type: cubemap, -X side + RL_ATTACHMENT_CUBEMAP_POSITIVE_Y = 2, // Framebuffer texture attachment type: cubemap, +Y side + RL_ATTACHMENT_CUBEMAP_NEGATIVE_Y = 3, // Framebuffer texture attachment type: cubemap, -Y side + RL_ATTACHMENT_CUBEMAP_POSITIVE_Z = 4, // Framebuffer texture attachment type: cubemap, +Z side + RL_ATTACHMENT_CUBEMAP_NEGATIVE_Z = 5, // Framebuffer texture attachment type: cubemap, -Z side + RL_ATTACHMENT_TEXTURE2D = 100, // Framebuffer texture attachment type: texture2d + RL_ATTACHMENT_RENDERBUFFER = 200, // Framebuffer texture attachment type: renderbuffer +} rlFramebufferAttachTextureType; + +// Face culling mode +typedef enum { + RL_CULL_FACE_FRONT = 0, + RL_CULL_FACE_BACK +} rlCullMode; + +//------------------------------------------------------------------------------------ +// Functions Declaration - Matrix operations +//------------------------------------------------------------------------------------ + +#if defined(__cplusplus) +extern "C" { // Prevents name mangling of functions +#endif + +RLAPI void rlMatrixMode(int mode); // Choose the current matrix to be transformed +RLAPI void rlPushMatrix(void); // Push the current matrix to stack +RLAPI void rlPopMatrix(void); // Pop latest inserted matrix from stack +RLAPI void rlLoadIdentity(void); // Reset current matrix to identity matrix +RLAPI void rlTranslatef(float x, float y, float z); // Multiply the current matrix by a translation matrix +RLAPI void rlRotatef(float angle, float x, float y, float z); // Multiply the current matrix by a rotation matrix +RLAPI void rlScalef(float x, float y, float z); // Multiply the current matrix by a scaling matrix +RLAPI void rlMultMatrixf(const float *matf); // Multiply the current matrix by another matrix +RLAPI void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar); +RLAPI void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar); +RLAPI void rlViewport(int x, int y, int width, int height); // Set the viewport area +RLAPI void rlSetClipPlanes(double nearPlane, double farPlane); // Set clip planes distances +RLAPI double rlGetCullDistanceNear(void); // Get cull plane distance near +RLAPI double rlGetCullDistanceFar(void); // Get cull plane distance far + +//------------------------------------------------------------------------------------ +// Functions Declaration - Vertex level operations +//------------------------------------------------------------------------------------ +RLAPI void rlBegin(int mode); // Initialize drawing mode (how to organize vertex) +RLAPI void rlEnd(void); // Finish vertex providing +RLAPI void rlVertex2i(int x, int y); // Define one vertex (position) - 2 int +RLAPI void rlVertex2f(float x, float y); // Define one vertex (position) - 2 float +RLAPI void rlVertex3f(float x, float y, float z); // Define one vertex (position) - 3 float +RLAPI void rlTexCoord2f(float x, float y); // Define one vertex (texture coordinate) - 2 float +RLAPI void rlNormal3f(float x, float y, float z); // Define one vertex (normal) - 3 float +RLAPI void rlColor4ub(unsigned char r, unsigned char g, unsigned char b, unsigned char a); // Define one vertex (color) - 4 byte +RLAPI void rlColor3f(float x, float y, float z); // Define one vertex (color) - 3 float +RLAPI void rlColor4f(float x, float y, float z, float w); // Define one vertex (color) - 4 float + +//------------------------------------------------------------------------------------ +// Functions Declaration - OpenGL style functions (common to 1.1, 3.3+, ES2) +// NOTE: This functions are used to completely abstract raylib code from OpenGL layer, +// some of them are direct wrappers over OpenGL calls, some others are custom +//------------------------------------------------------------------------------------ + +// Vertex buffers state +RLAPI bool rlEnableVertexArray(unsigned int vaoId); // Enable vertex array (VAO, if supported) +RLAPI void rlDisableVertexArray(void); // Disable vertex array (VAO, if supported) +RLAPI void rlEnableVertexBuffer(unsigned int id); // Enable vertex buffer (VBO) +RLAPI void rlDisableVertexBuffer(void); // Disable vertex buffer (VBO) +RLAPI void rlEnableVertexBufferElement(unsigned int id); // Enable vertex buffer element (VBO element) +RLAPI void rlDisableVertexBufferElement(void); // Disable vertex buffer element (VBO element) +RLAPI void rlEnableVertexAttribute(unsigned int index); // Enable vertex attribute index +RLAPI void rlDisableVertexAttribute(unsigned int index); // Disable vertex attribute index +#if defined(GRAPHICS_API_OPENGL_11) +RLAPI void rlEnableStatePointer(int vertexAttribType, void *buffer); // Enable attribute state pointer +RLAPI void rlDisableStatePointer(int vertexAttribType); // Disable attribute state pointer +#endif + +// Textures state +RLAPI void rlActiveTextureSlot(int slot); // Select and active a texture slot +RLAPI void rlEnableTexture(unsigned int id); // Enable texture +RLAPI void rlDisableTexture(void); // Disable texture +RLAPI void rlEnableTextureCubemap(unsigned int id); // Enable texture cubemap +RLAPI void rlDisableTextureCubemap(void); // Disable texture cubemap +RLAPI void rlTextureParameters(unsigned int id, int param, int value); // Set texture parameters (filter, wrap) +RLAPI void rlCubemapParameters(unsigned int id, int param, int value); // Set cubemap parameters (filter, wrap) + +// Shader state +RLAPI void rlEnableShader(unsigned int id); // Enable shader program +RLAPI void rlDisableShader(void); // Disable shader program + +// Framebuffer state +RLAPI void rlEnableFramebuffer(unsigned int id); // Enable render texture (fbo) +RLAPI void rlDisableFramebuffer(void); // Disable render texture (fbo), return to default framebuffer +RLAPI unsigned int rlGetActiveFramebuffer(void); // Get the currently active render texture (fbo), 0 for default framebuffer +RLAPI void rlActiveDrawBuffers(int count); // Activate multiple draw color buffers +RLAPI void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask); // Blit active framebuffer to main framebuffer +RLAPI void rlBindFramebuffer(unsigned int target, unsigned int framebuffer); // Bind framebuffer (FBO) + +// General render state +RLAPI void rlEnableColorBlend(void); // Enable color blending +RLAPI void rlDisableColorBlend(void); // Disable color blending +RLAPI void rlEnableDepthTest(void); // Enable depth test +RLAPI void rlDisableDepthTest(void); // Disable depth test +RLAPI void rlEnableDepthMask(void); // Enable depth write +RLAPI void rlDisableDepthMask(void); // Disable depth write +RLAPI void rlEnableBackfaceCulling(void); // Enable backface culling +RLAPI void rlDisableBackfaceCulling(void); // Disable backface culling +RLAPI void rlColorMask(bool r, bool g, bool b, bool a); // Color mask control +RLAPI void rlSetCullFace(int mode); // Set face culling mode +RLAPI void rlEnableScissorTest(void); // Enable scissor test +RLAPI void rlDisableScissorTest(void); // Disable scissor test +RLAPI void rlScissor(int x, int y, int width, int height); // Scissor test +RLAPI void rlEnableWireMode(void); // Enable wire mode +RLAPI void rlEnablePointMode(void); // Enable point mode +RLAPI void rlDisableWireMode(void); // Disable wire (and point) mode +RLAPI void rlSetLineWidth(float width); // Set the line drawing width +RLAPI float rlGetLineWidth(void); // Get the line drawing width +RLAPI void rlEnableSmoothLines(void); // Enable line aliasing +RLAPI void rlDisableSmoothLines(void); // Disable line aliasing +RLAPI void rlEnableStereoRender(void); // Enable stereo rendering +RLAPI void rlDisableStereoRender(void); // Disable stereo rendering +RLAPI bool rlIsStereoRenderEnabled(void); // Check if stereo render is enabled + +RLAPI void rlClearColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a); // Clear color buffer with color +RLAPI void rlClearScreenBuffers(void); // Clear used screen buffers (color and depth) +RLAPI void rlCheckErrors(void); // Check and log OpenGL error codes +RLAPI void rlSetBlendMode(int mode); // Set blending mode +RLAPI void rlSetBlendFactors(int glSrcFactor, int glDstFactor, int glEquation); // Set blending mode factor and equation (using OpenGL factors) +RLAPI void rlSetBlendFactorsSeparate(int glSrcRGB, int glDstRGB, int glSrcAlpha, int glDstAlpha, int glEqRGB, int glEqAlpha); // Set blending mode factors and equations separately (using OpenGL factors) + +//------------------------------------------------------------------------------------ +// Functions Declaration - rlgl functionality +//------------------------------------------------------------------------------------ +// rlgl initialization functions +RLAPI void rlglInit(int width, int height); // Initialize rlgl (buffers, shaders, textures, states) +RLAPI void rlglClose(void); // De-initialize rlgl (buffers, shaders, textures) +RLAPI void rlLoadExtensions(void *loader); // Load OpenGL extensions (loader function required) +RLAPI int rlGetVersion(void); // Get current OpenGL version +RLAPI void rlSetFramebufferWidth(int width); // Set current framebuffer width +RLAPI int rlGetFramebufferWidth(void); // Get default framebuffer width +RLAPI void rlSetFramebufferHeight(int height); // Set current framebuffer height +RLAPI int rlGetFramebufferHeight(void); // Get default framebuffer height + +RLAPI unsigned int rlGetTextureIdDefault(void); // Get default texture id +RLAPI unsigned int rlGetShaderIdDefault(void); // Get default shader id +RLAPI int *rlGetShaderLocsDefault(void); // Get default shader locations + +// Render batch management +// NOTE: rlgl provides a default render batch to behave like OpenGL 1.1 immediate mode +// but this render batch API is exposed in case of custom batches are required +RLAPI rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements); // Load a render batch system +RLAPI void rlUnloadRenderBatch(rlRenderBatch batch); // Unload render batch system +RLAPI void rlDrawRenderBatch(rlRenderBatch *batch); // Draw render batch data (Update->Draw->Reset) +RLAPI void rlSetRenderBatchActive(rlRenderBatch *batch); // Set the active render batch for rlgl (NULL for default internal) +RLAPI void rlDrawRenderBatchActive(void); // Update and draw internal render batch +RLAPI bool rlCheckRenderBatchLimit(int vCount); // Check internal buffer overflow for a given number of vertex + +RLAPI void rlSetTexture(unsigned int id); // Set current texture for render batch and check buffers limits + +//------------------------------------------------------------------------------------------------------------------------ + +// Vertex buffers management +RLAPI unsigned int rlLoadVertexArray(void); // Load vertex array (vao) if supported +RLAPI unsigned int rlLoadVertexBuffer(const void *buffer, int size, bool dynamic); // Load a vertex buffer object +RLAPI unsigned int rlLoadVertexBufferElement(const void *buffer, int size, bool dynamic); // Load vertex buffer elements object +RLAPI void rlUpdateVertexBuffer(unsigned int bufferId, const void *data, int dataSize, int offset); // Update vertex buffer object data on GPU buffer +RLAPI void rlUpdateVertexBufferElements(unsigned int id, const void *data, int dataSize, int offset); // Update vertex buffer elements data on GPU buffer +RLAPI void rlUnloadVertexArray(unsigned int vaoId); // Unload vertex array (vao) +RLAPI void rlUnloadVertexBuffer(unsigned int vboId); // Unload vertex buffer object +RLAPI void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, int offset); // Set vertex attribute data configuration +RLAPI void rlSetVertexAttributeDivisor(unsigned int index, int divisor); // Set vertex attribute data divisor +RLAPI void rlSetVertexAttributeDefault(int locIndex, const void *value, int attribType, int count); // Set vertex attribute default value, when attribute to provided +RLAPI void rlDrawVertexArray(int offset, int count); // Draw vertex array (currently active vao) +RLAPI void rlDrawVertexArrayElements(int offset, int count, const void *buffer); // Draw vertex array elements +RLAPI void rlDrawVertexArrayInstanced(int offset, int count, int instances); // Draw vertex array (currently active vao) with instancing +RLAPI void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffer, int instances); // Draw vertex array elements with instancing + +// Textures management +RLAPI unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipmapCount); // Load texture data +RLAPI unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer); // Load depth texture/renderbuffer (to be attached to fbo) +RLAPI unsigned int rlLoadTextureCubemap(const void *data, int size, int format, int mipmapCount); // Load texture cubemap data +RLAPI void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data); // Update texture with new data on GPU +RLAPI void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType); // Get OpenGL internal formats +RLAPI const char *rlGetPixelFormatName(unsigned int format); // Get name string for pixel format +RLAPI void rlUnloadTexture(unsigned int id); // Unload texture from GPU memory +RLAPI void rlGenTextureMipmaps(unsigned int id, int width, int height, int format, int *mipmaps); // Generate mipmap data for selected texture +RLAPI void *rlReadTexturePixels(unsigned int id, int width, int height, int format); // Read texture pixel data +RLAPI unsigned char *rlReadScreenPixels(int width, int height); // Read screen pixel data (color buffer) + +// Framebuffer management (fbo) +RLAPI unsigned int rlLoadFramebuffer(void); // Load an empty framebuffer +RLAPI void rlFramebufferAttach(unsigned int fboId, unsigned int texId, int attachType, int texType, int mipLevel); // Attach texture/renderbuffer to a framebuffer +RLAPI bool rlFramebufferComplete(unsigned int id); // Verify framebuffer is complete +RLAPI void rlUnloadFramebuffer(unsigned int id); // Delete framebuffer from GPU + +// Shaders management +RLAPI unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode); // Load shader from code strings +RLAPI unsigned int rlCompileShader(const char *shaderCode, int type); // Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER) +RLAPI unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fShaderId); // Load custom shader program +RLAPI void rlUnloadShaderProgram(unsigned int id); // Unload shader program +RLAPI int rlGetLocationUniform(unsigned int shaderId, const char *uniformName); // Get shader location uniform +RLAPI int rlGetLocationAttrib(unsigned int shaderId, const char *attribName); // Get shader location attribute +RLAPI void rlSetUniform(int locIndex, const void *value, int uniformType, int count); // Set shader value uniform +RLAPI void rlSetUniformMatrix(int locIndex, Matrix mat); // Set shader value matrix +RLAPI void rlSetUniformMatrices(int locIndex, const Matrix *mat, int count); // Set shader value matrices +RLAPI void rlSetUniformSampler(int locIndex, unsigned int textureId); // Set shader value sampler +RLAPI void rlSetShader(unsigned int id, int *locs); // Set shader currently active (id and locations) + +// Compute shader management +RLAPI unsigned int rlLoadComputeShaderProgram(unsigned int shaderId); // Load compute shader program +RLAPI void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ); // Dispatch compute shader (equivalent to *draw* for graphics pipeline) + +// Shader buffer storage object management (ssbo) +RLAPI unsigned int rlLoadShaderBuffer(unsigned int size, const void *data, int usageHint); // Load shader storage buffer object (SSBO) +RLAPI void rlUnloadShaderBuffer(unsigned int ssboId); // Unload shader storage buffer object (SSBO) +RLAPI void rlUpdateShaderBuffer(unsigned int id, const void *data, unsigned int dataSize, unsigned int offset); // Update SSBO buffer data +RLAPI void rlBindShaderBuffer(unsigned int id, unsigned int index); // Bind SSBO buffer +RLAPI void rlReadShaderBuffer(unsigned int id, void *dest, unsigned int count, unsigned int offset); // Read SSBO buffer data (GPU->CPU) +RLAPI void rlCopyShaderBuffer(unsigned int destId, unsigned int srcId, unsigned int destOffset, unsigned int srcOffset, unsigned int count); // Copy SSBO data between buffers +RLAPI unsigned int rlGetShaderBufferSize(unsigned int id); // Get SSBO buffer size + +// Buffer management +RLAPI void rlBindImageTexture(unsigned int id, unsigned int index, int format, bool readonly); // Bind image texture + +// Matrix state management +RLAPI Matrix rlGetMatrixModelview(void); // Get internal modelview matrix +RLAPI Matrix rlGetMatrixProjection(void); // Get internal projection matrix +RLAPI Matrix rlGetMatrixTransform(void); // Get internal accumulated transform matrix +RLAPI Matrix rlGetMatrixProjectionStereo(int eye); // Get internal projection matrix for stereo render (selected eye) +RLAPI Matrix rlGetMatrixViewOffsetStereo(int eye); // Get internal view offset matrix for stereo render (selected eye) +RLAPI void rlSetMatrixProjection(Matrix proj); // Set a custom projection matrix (replaces internal projection matrix) +RLAPI void rlSetMatrixModelview(Matrix view); // Set a custom modelview matrix (replaces internal modelview matrix) +RLAPI void rlSetMatrixProjectionStereo(Matrix right, Matrix left); // Set eyes projection matrices for stereo rendering +RLAPI void rlSetMatrixViewOffsetStereo(Matrix right, Matrix left); // Set eyes view offsets matrices for stereo rendering + +// Quick and dirty cube/quad buffers load->draw->unload +RLAPI void rlLoadDrawCube(void); // Load and draw a cube +RLAPI void rlLoadDrawQuad(void); // Load and draw a quad + +#if defined(__cplusplus) +} +#endif + +#endif // RLGL_H + +/*********************************************************************************** +* +* RLGL IMPLEMENTATION +* +************************************************************************************/ + +#if defined(RLGL_IMPLEMENTATION) + +// Expose OpenGL functions from glad in raylib +#if defined(BUILD_LIBTYPE_SHARED) + #define GLAD_API_CALL_EXPORT + #define GLAD_API_CALL_EXPORT_BUILD +#endif + +#if defined(GRAPHICS_API_OPENGL_11) + #if defined(__APPLE__) + #include // OpenGL 1.1 library for OSX + #include // OpenGL extensions library + #else + // APIENTRY for OpenGL function pointer declarations is required + #if !defined(APIENTRY) + #if defined(_WIN32) + #define APIENTRY __stdcall + #else + #define APIENTRY + #endif + #endif + // WINGDIAPI definition. Some Windows OpenGL headers need it + #if !defined(WINGDIAPI) && defined(_WIN32) + #define WINGDIAPI __declspec(dllimport) + #endif + + #include // OpenGL 1.1 library + #endif +#endif + +#if defined(GRAPHICS_API_OPENGL_33) + #define GLAD_MALLOC RL_MALLOC + #define GLAD_FREE RL_FREE + + #define GLAD_GL_IMPLEMENTATION + #include "external/glad.h" // GLAD extensions loading library, includes OpenGL headers +#endif + +#if defined(GRAPHICS_API_OPENGL_ES3) + #include // OpenGL ES 3.0 library + #define GL_GLEXT_PROTOTYPES + #include // OpenGL ES 2.0 extensions library +#elif defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: OpenGL ES 2.0 can be enabled on Desktop platforms, + // in that case, functions are loaded from a custom glad for OpenGL ES 2.0 + #if defined(PLATFORM_DESKTOP_GLFW) || defined(PLATFORM_DESKTOP_SDL) + #define GLAD_GLES2_IMPLEMENTATION + #include "external/glad_gles2.h" + #else + #define GL_GLEXT_PROTOTYPES + //#include // EGL library -> not required, platform layer + #include // OpenGL ES 2.0 library + #include // OpenGL ES 2.0 extensions library + #endif + + // It seems OpenGL ES 2.0 instancing entry points are not defined on Raspberry Pi + // provided headers (despite being defined in official Khronos GLES2 headers) + #if defined(PLATFORM_DRM) + typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); + typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); + typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISOREXTPROC) (GLuint index, GLuint divisor); + #endif +#endif + +#include // Required for: malloc(), free() +#include // Required for: strcmp(), strlen() [Used in rlglInit(), on extensions loading] +#include // Required for: sqrtf(), sinf(), cosf(), floor(), log() + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- +#ifndef PI + #define PI 3.14159265358979323846f +#endif +#ifndef DEG2RAD + #define DEG2RAD (PI/180.0f) +#endif +#ifndef RAD2DEG + #define RAD2DEG (180.0f/PI) +#endif + +#ifndef GL_SHADING_LANGUAGE_VERSION + #define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#endif + +#ifndef GL_COMPRESSED_RGB_S3TC_DXT1_EXT + #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#endif +#ifndef GL_COMPRESSED_RGBA_S3TC_DXT1_EXT + #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#endif +#ifndef GL_COMPRESSED_RGBA_S3TC_DXT3_EXT + #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#endif +#ifndef GL_COMPRESSED_RGBA_S3TC_DXT5_EXT + #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 +#endif +#ifndef GL_ETC1_RGB8_OES + #define GL_ETC1_RGB8_OES 0x8D64 +#endif +#ifndef GL_COMPRESSED_RGB8_ETC2 + #define GL_COMPRESSED_RGB8_ETC2 0x9274 +#endif +#ifndef GL_COMPRESSED_RGBA8_ETC2_EAC + #define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 +#endif +#ifndef GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG + #define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 +#endif +#ifndef GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG + #define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 +#endif +#ifndef GL_COMPRESSED_RGBA_ASTC_4x4_KHR + #define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93b0 +#endif +#ifndef GL_COMPRESSED_RGBA_ASTC_8x8_KHR + #define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93b7 +#endif + +#ifndef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT + #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF +#endif +#ifndef GL_TEXTURE_MAX_ANISOTROPY_EXT + #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#endif + +#ifndef GL_PROGRAM_POINT_SIZE + #define GL_PROGRAM_POINT_SIZE 0x8642 +#endif + +#ifndef GL_LINE_WIDTH + #define GL_LINE_WIDTH 0x0B21 +#endif + +#if defined(GRAPHICS_API_OPENGL_11) + #define GL_UNSIGNED_SHORT_5_6_5 0x8363 + #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 + #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#endif + +#if defined(GRAPHICS_API_OPENGL_21) + #define GL_LUMINANCE 0x1909 + #define GL_LUMINANCE_ALPHA 0x190A +#endif + +#if defined(GRAPHICS_API_OPENGL_ES2) + #define glClearDepth glClearDepthf + #if !defined(GRAPHICS_API_OPENGL_ES3) + #define GL_READ_FRAMEBUFFER GL_FRAMEBUFFER + #define GL_DRAW_FRAMEBUFFER GL_FRAMEBUFFER + #endif +#endif + +// Default shader vertex attribute names to set location points +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION + #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD + #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL + #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR + #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT + #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 + #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS + #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS "vertexBoneIds" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS + #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS "vertexBoneWeights" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS +#endif + +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_MVP + #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW + #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION + #define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL + #define RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL "matModel" // model matrix +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL + #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView)) +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR + #define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color) +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_BONE_MATRICES + #define RL_DEFAULT_SHADER_UNIFORM_NAME_BONE_MATRICES "boneMatrices" // bone matrices +#endif +#ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 + #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0) +#endif +#ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 + #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 "texture1" // texture1 (texture slot active 1) +#endif +#ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 + #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 "texture2" // texture2 (texture slot active 2) +#endif + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +typedef struct rlglData { + rlRenderBatch *currentBatch; // Current render batch + rlRenderBatch defaultBatch; // Default internal render batch + + struct { + int vertexCounter; // Current active render batch vertex counter (generic, used for all batches) + float texcoordx, texcoordy; // Current active texture coordinate (added on glVertex*()) + float normalx, normaly, normalz; // Current active normal (added on glVertex*()) + unsigned char colorr, colorg, colorb, colora; // Current active color (added on glVertex*()) + + int currentMatrixMode; // Current matrix mode + Matrix *currentMatrix; // Current matrix pointer + Matrix modelview; // Default modelview matrix + Matrix projection; // Default projection matrix + Matrix transform; // Transform matrix to be used with rlTranslate, rlRotate, rlScale + bool transformRequired; // Require transform matrix application to current draw-call vertex (if required) + Matrix stack[RL_MAX_MATRIX_STACK_SIZE];// Matrix stack for push/pop + int stackCounter; // Matrix stack counter + + unsigned int defaultTextureId; // Default texture used on shapes/poly drawing (required by shader) + unsigned int activeTextureId[RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS]; // Active texture ids to be enabled on batch drawing (0 active by default) + unsigned int defaultVShaderId; // Default vertex shader id (used by default shader program) + unsigned int defaultFShaderId; // Default fragment shader id (used by default shader program) + unsigned int defaultShaderId; // Default shader program id, supports vertex color and diffuse texture + int *defaultShaderLocs; // Default shader locations pointer to be used on rendering + unsigned int currentShaderId; // Current shader id to be used on rendering (by default, defaultShaderId) + int *currentShaderLocs; // Current shader locations pointer to be used on rendering (by default, defaultShaderLocs) + + bool stereoRender; // Stereo rendering flag + Matrix projectionStereo[2]; // VR stereo rendering eyes projection matrices + Matrix viewOffsetStereo[2]; // VR stereo rendering eyes view offset matrices + + // Blending variables + int currentBlendMode; // Blending mode active + int glBlendSrcFactor; // Blending source factor + int glBlendDstFactor; // Blending destination factor + int glBlendEquation; // Blending equation + int glBlendSrcFactorRGB; // Blending source RGB factor + int glBlendDestFactorRGB; // Blending destination RGB factor + int glBlendSrcFactorAlpha; // Blending source alpha factor + int glBlendDestFactorAlpha; // Blending destination alpha factor + int glBlendEquationRGB; // Blending equation for RGB + int glBlendEquationAlpha; // Blending equation for alpha + bool glCustomBlendModeModified; // Custom blending factor and equation modification status + + int framebufferWidth; // Current framebuffer width + int framebufferHeight; // Current framebuffer height + + } State; // Renderer state + struct { + bool vao; // VAO support (OpenGL ES2 could not support VAO extension) (GL_ARB_vertex_array_object) + bool instancing; // Instancing supported (GL_ANGLE_instanced_arrays, GL_EXT_draw_instanced + GL_EXT_instanced_arrays) + bool texNPOT; // NPOT textures full support (GL_ARB_texture_non_power_of_two, GL_OES_texture_npot) + bool texDepth; // Depth textures supported (GL_ARB_depth_texture, GL_OES_depth_texture) + bool texDepthWebGL; // Depth textures supported WebGL specific (GL_WEBGL_depth_texture) + bool texFloat32; // float textures support (32 bit per channel) (GL_OES_texture_float) + bool texFloat16; // half float textures support (16 bit per channel) (GL_OES_texture_half_float) + bool texCompDXT; // DDS texture compression support (GL_EXT_texture_compression_s3tc, GL_WEBGL_compressed_texture_s3tc, GL_WEBKIT_WEBGL_compressed_texture_s3tc) + bool texCompETC1; // ETC1 texture compression support (GL_OES_compressed_ETC1_RGB8_texture, GL_WEBGL_compressed_texture_etc1) + bool texCompETC2; // ETC2/EAC texture compression support (GL_ARB_ES3_compatibility) + bool texCompPVRT; // PVR texture compression support (GL_IMG_texture_compression_pvrtc) + bool texCompASTC; // ASTC texture compression support (GL_KHR_texture_compression_astc_hdr, GL_KHR_texture_compression_astc_ldr) + bool texMirrorClamp; // Clamp mirror wrap mode supported (GL_EXT_texture_mirror_clamp) + bool texAnisoFilter; // Anisotropic texture filtering support (GL_EXT_texture_filter_anisotropic) + bool computeShader; // Compute shaders support (GL_ARB_compute_shader) + bool ssbo; // Shader storage buffer object support (GL_ARB_shader_storage_buffer_object) + + float maxAnisotropyLevel; // Maximum anisotropy level supported (minimum is 2.0f) + int maxDepthBits; // Maximum bits for depth component + + } ExtSupported; // Extensions supported flags +} rlglData; + +typedef void *(*rlglLoadProc)(const char *name); // OpenGL extension functions loader signature (same as GLADloadproc) + +#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +static double rlCullDistanceNear = RL_CULL_DISTANCE_NEAR; +static double rlCullDistanceFar = RL_CULL_DISTANCE_FAR; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +static rlglData RLGL = { 0 }; +#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 + +#if defined(GRAPHICS_API_OPENGL_ES2) && !defined(GRAPHICS_API_OPENGL_ES3) +// NOTE: VAO functionality is exposed through extensions (OES) +static PFNGLGENVERTEXARRAYSOESPROC glGenVertexArrays = NULL; +static PFNGLBINDVERTEXARRAYOESPROC glBindVertexArray = NULL; +static PFNGLDELETEVERTEXARRAYSOESPROC glDeleteVertexArrays = NULL; + +// NOTE: Instancing functionality could also be available through extension +static PFNGLDRAWARRAYSINSTANCEDEXTPROC glDrawArraysInstanced = NULL; +static PFNGLDRAWELEMENTSINSTANCEDEXTPROC glDrawElementsInstanced = NULL; +static PFNGLVERTEXATTRIBDIVISOREXTPROC glVertexAttribDivisor = NULL; +#endif + +//---------------------------------------------------------------------------------- +// Module specific Functions Declaration +//---------------------------------------------------------------------------------- +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +static void rlLoadShaderDefault(void); // Load default shader +static void rlUnloadShaderDefault(void); // Unload default shader +#if defined(RLGL_SHOW_GL_DETAILS_INFO) +static const char *rlGetCompressedFormatName(int format); // Get compressed format official GL identifier name +#endif // RLGL_SHOW_GL_DETAILS_INFO +#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 + +static int rlGetPixelDataSize(int width, int height, int format); // Get pixel data size in bytes (image or texture) + +// Auxiliar matrix math functions +typedef struct rl_float16 { + float v[16]; +} rl_float16; +static rl_float16 rlMatrixToFloatV(Matrix mat); // Get float array of matrix data +#define rlMatrixToFloat(mat) (rlMatrixToFloatV(mat).v) // Get float vector for Matrix +static Matrix rlMatrixIdentity(void); // Get identity matrix +static Matrix rlMatrixMultiply(Matrix left, Matrix right); // Multiply two matrices +static Matrix rlMatrixTranspose(Matrix mat); // Transposes provided matrix +static Matrix rlMatrixInvert(Matrix mat); // Invert provided matrix + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Matrix operations +//---------------------------------------------------------------------------------- + +#if defined(GRAPHICS_API_OPENGL_11) +// Fallback to OpenGL 1.1 function calls +//--------------------------------------- +void rlMatrixMode(int mode) +{ + switch (mode) + { + case RL_PROJECTION: glMatrixMode(GL_PROJECTION); break; + case RL_MODELVIEW: glMatrixMode(GL_MODELVIEW); break; + case RL_TEXTURE: glMatrixMode(GL_TEXTURE); break; + default: break; + } +} + +void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar) +{ + glFrustum(left, right, bottom, top, znear, zfar); +} + +void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar) +{ + glOrtho(left, right, bottom, top, znear, zfar); +} + +void rlPushMatrix(void) { glPushMatrix(); } +void rlPopMatrix(void) { glPopMatrix(); } +void rlLoadIdentity(void) { glLoadIdentity(); } +void rlTranslatef(float x, float y, float z) { glTranslatef(x, y, z); } +void rlRotatef(float angle, float x, float y, float z) { glRotatef(angle, x, y, z); } +void rlScalef(float x, float y, float z) { glScalef(x, y, z); } +void rlMultMatrixf(const float *matf) { glMultMatrixf(matf); } +#endif +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +// Choose the current matrix to be transformed +void rlMatrixMode(int mode) +{ + if (mode == RL_PROJECTION) RLGL.State.currentMatrix = &RLGL.State.projection; + else if (mode == RL_MODELVIEW) RLGL.State.currentMatrix = &RLGL.State.modelview; + //else if (mode == RL_TEXTURE) // Not supported + + RLGL.State.currentMatrixMode = mode; +} + +// Push the current matrix into RLGL.State.stack +void rlPushMatrix(void) +{ + if (RLGL.State.stackCounter >= RL_MAX_MATRIX_STACK_SIZE) TRACELOG(RL_LOG_ERROR, "RLGL: Matrix stack overflow (RL_MAX_MATRIX_STACK_SIZE)"); + + if (RLGL.State.currentMatrixMode == RL_MODELVIEW) + { + RLGL.State.transformRequired = true; + RLGL.State.currentMatrix = &RLGL.State.transform; + } + + RLGL.State.stack[RLGL.State.stackCounter] = *RLGL.State.currentMatrix; + RLGL.State.stackCounter++; +} + +// Pop lattest inserted matrix from RLGL.State.stack +void rlPopMatrix(void) +{ + if (RLGL.State.stackCounter > 0) + { + Matrix mat = RLGL.State.stack[RLGL.State.stackCounter - 1]; + *RLGL.State.currentMatrix = mat; + RLGL.State.stackCounter--; + } + + if ((RLGL.State.stackCounter == 0) && (RLGL.State.currentMatrixMode == RL_MODELVIEW)) + { + RLGL.State.currentMatrix = &RLGL.State.modelview; + RLGL.State.transformRequired = false; + } +} + +// Reset current matrix to identity matrix +void rlLoadIdentity(void) +{ + *RLGL.State.currentMatrix = rlMatrixIdentity(); +} + +// Multiply the current matrix by a translation matrix +void rlTranslatef(float x, float y, float z) +{ + Matrix matTranslation = { + 1.0f, 0.0f, 0.0f, x, + 0.0f, 1.0f, 0.0f, y, + 0.0f, 0.0f, 1.0f, z, + 0.0f, 0.0f, 0.0f, 1.0f + }; + + // NOTE: We transpose matrix with multiplication order + *RLGL.State.currentMatrix = rlMatrixMultiply(matTranslation, *RLGL.State.currentMatrix); +} + +// Multiply the current matrix by a rotation matrix +// NOTE: The provided angle must be in degrees +void rlRotatef(float angle, float x, float y, float z) +{ + Matrix matRotation = rlMatrixIdentity(); + + // Axis vector (x, y, z) normalization + float lengthSquared = x*x + y*y + z*z; + if ((lengthSquared != 1.0f) && (lengthSquared != 0.0f)) + { + float inverseLength = 1.0f/sqrtf(lengthSquared); + x *= inverseLength; + y *= inverseLength; + z *= inverseLength; + } + + // Rotation matrix generation + float sinres = sinf(DEG2RAD*angle); + float cosres = cosf(DEG2RAD*angle); + float t = 1.0f - cosres; + + matRotation.m0 = x*x*t + cosres; + matRotation.m1 = y*x*t + z*sinres; + matRotation.m2 = z*x*t - y*sinres; + matRotation.m3 = 0.0f; + + matRotation.m4 = x*y*t - z*sinres; + matRotation.m5 = y*y*t + cosres; + matRotation.m6 = z*y*t + x*sinres; + matRotation.m7 = 0.0f; + + matRotation.m8 = x*z*t + y*sinres; + matRotation.m9 = y*z*t - x*sinres; + matRotation.m10 = z*z*t + cosres; + matRotation.m11 = 0.0f; + + matRotation.m12 = 0.0f; + matRotation.m13 = 0.0f; + matRotation.m14 = 0.0f; + matRotation.m15 = 1.0f; + + // NOTE: We transpose matrix with multiplication order + *RLGL.State.currentMatrix = rlMatrixMultiply(matRotation, *RLGL.State.currentMatrix); +} + +// Multiply the current matrix by a scaling matrix +void rlScalef(float x, float y, float z) +{ + Matrix matScale = { + x, 0.0f, 0.0f, 0.0f, + 0.0f, y, 0.0f, 0.0f, + 0.0f, 0.0f, z, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + }; + + // NOTE: We transpose matrix with multiplication order + *RLGL.State.currentMatrix = rlMatrixMultiply(matScale, *RLGL.State.currentMatrix); +} + +// Multiply the current matrix by another matrix +void rlMultMatrixf(const float *matf) +{ + // Matrix creation from array + Matrix mat = { matf[0], matf[4], matf[8], matf[12], + matf[1], matf[5], matf[9], matf[13], + matf[2], matf[6], matf[10], matf[14], + matf[3], matf[7], matf[11], matf[15] }; + + *RLGL.State.currentMatrix = rlMatrixMultiply(mat, *RLGL.State.currentMatrix); +} + +// Multiply the current matrix by a perspective matrix generated by parameters +void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar) +{ + Matrix matFrustum = { 0 }; + + float rl = (float)(right - left); + float tb = (float)(top - bottom); + float fn = (float)(zfar - znear); + + matFrustum.m0 = ((float) znear*2.0f)/rl; + matFrustum.m1 = 0.0f; + matFrustum.m2 = 0.0f; + matFrustum.m3 = 0.0f; + + matFrustum.m4 = 0.0f; + matFrustum.m5 = ((float) znear*2.0f)/tb; + matFrustum.m6 = 0.0f; + matFrustum.m7 = 0.0f; + + matFrustum.m8 = ((float)right + (float)left)/rl; + matFrustum.m9 = ((float)top + (float)bottom)/tb; + matFrustum.m10 = -((float)zfar + (float)znear)/fn; + matFrustum.m11 = -1.0f; + + matFrustum.m12 = 0.0f; + matFrustum.m13 = 0.0f; + matFrustum.m14 = -((float)zfar*(float)znear*2.0f)/fn; + matFrustum.m15 = 0.0f; + + *RLGL.State.currentMatrix = rlMatrixMultiply(*RLGL.State.currentMatrix, matFrustum); +} + +// Multiply the current matrix by an orthographic matrix generated by parameters +void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar) +{ + // NOTE: If left-right and top-botton values are equal it could create a division by zero, + // response to it is platform/compiler dependant + Matrix matOrtho = { 0 }; + + float rl = (float)(right - left); + float tb = (float)(top - bottom); + float fn = (float)(zfar - znear); + + matOrtho.m0 = 2.0f/rl; + matOrtho.m1 = 0.0f; + matOrtho.m2 = 0.0f; + matOrtho.m3 = 0.0f; + matOrtho.m4 = 0.0f; + matOrtho.m5 = 2.0f/tb; + matOrtho.m6 = 0.0f; + matOrtho.m7 = 0.0f; + matOrtho.m8 = 0.0f; + matOrtho.m9 = 0.0f; + matOrtho.m10 = -2.0f/fn; + matOrtho.m11 = 0.0f; + matOrtho.m12 = -((float)left + (float)right)/rl; + matOrtho.m13 = -((float)top + (float)bottom)/tb; + matOrtho.m14 = -((float)zfar + (float)znear)/fn; + matOrtho.m15 = 1.0f; + + *RLGL.State.currentMatrix = rlMatrixMultiply(*RLGL.State.currentMatrix, matOrtho); +} +#endif + +// Set the viewport area (transformation from normalized device coordinates to window coordinates) +// NOTE: We store current viewport dimensions +void rlViewport(int x, int y, int width, int height) +{ + glViewport(x, y, width, height); +} + +// Set clip planes distances +void rlSetClipPlanes(double nearPlane, double farPlane) +{ + rlCullDistanceNear = nearPlane; + rlCullDistanceFar = farPlane; +} + +// Get cull plane distance near +double rlGetCullDistanceNear(void) +{ + return rlCullDistanceNear; +} + +// Get cull plane distance far +double rlGetCullDistanceFar(void) +{ + return rlCullDistanceFar; +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Vertex level operations +//---------------------------------------------------------------------------------- +#if defined(GRAPHICS_API_OPENGL_11) +// Fallback to OpenGL 1.1 function calls +//--------------------------------------- +void rlBegin(int mode) +{ + switch (mode) + { + case RL_LINES: glBegin(GL_LINES); break; + case RL_TRIANGLES: glBegin(GL_TRIANGLES); break; + case RL_QUADS: glBegin(GL_QUADS); break; + default: break; + } +} + +void rlEnd(void) { glEnd(); } +void rlVertex2i(int x, int y) { glVertex2i(x, y); } +void rlVertex2f(float x, float y) { glVertex2f(x, y); } +void rlVertex3f(float x, float y, float z) { glVertex3f(x, y, z); } +void rlTexCoord2f(float x, float y) { glTexCoord2f(x, y); } +void rlNormal3f(float x, float y, float z) { glNormal3f(x, y, z); } +void rlColor4ub(unsigned char r, unsigned char g, unsigned char b, unsigned char a) { glColor4ub(r, g, b, a); } +void rlColor3f(float x, float y, float z) { glColor3f(x, y, z); } +void rlColor4f(float x, float y, float z, float w) { glColor4f(x, y, z, w); } +#endif +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +// Initialize drawing mode (how to organize vertex) +void rlBegin(int mode) +{ + // Draw mode can be RL_LINES, RL_TRIANGLES and RL_QUADS + // NOTE: In all three cases, vertex are accumulated over default internal vertex buffer + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode != mode) + { + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount > 0) + { + // Make sure current RLGL.currentBatch->draws[i].vertexCount is aligned a multiple of 4, + // that way, following QUADS drawing will keep aligned with index processing + // It implies adding some extra alignment vertex at the end of the draw, + // those vertex are not processed but they are considered as an additional offset + // for the next set of vertex to be drawn + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount : RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4); + else if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? 1 : (4 - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4))); + else RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = 0; + + if (!rlCheckRenderBatchLimit(RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment)) + { + RLGL.State.vertexCounter += RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment; + RLGL.currentBatch->drawCounter++; + } + } + + if (RLGL.currentBatch->drawCounter >= RL_DEFAULT_BATCH_DRAWCALLS) rlDrawRenderBatch(RLGL.currentBatch); + + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode = mode; + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount = 0; + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = RLGL.State.defaultTextureId; + } +} + +// Finish vertex providing +void rlEnd(void) +{ + // NOTE: Depth increment is dependant on rlOrtho(): z-near and z-far values, + // as well as depth buffer bit-depth (16bit or 24bit or 32bit) + // Correct increment formula would be: depthInc = (zfar - znear)/pow(2, bits) + RLGL.currentBatch->currentDepth += (1.0f/20000.0f); +} + +// Define one vertex (position) +// NOTE: Vertex position data is the basic information required for drawing +void rlVertex3f(float x, float y, float z) +{ + float tx = x; + float ty = y; + float tz = z; + + // Transform provided vector if required + if (RLGL.State.transformRequired) + { + tx = RLGL.State.transform.m0*x + RLGL.State.transform.m4*y + RLGL.State.transform.m8*z + RLGL.State.transform.m12; + ty = RLGL.State.transform.m1*x + RLGL.State.transform.m5*y + RLGL.State.transform.m9*z + RLGL.State.transform.m13; + tz = RLGL.State.transform.m2*x + RLGL.State.transform.m6*y + RLGL.State.transform.m10*z + RLGL.State.transform.m14; + } + + // WARNING: We can't break primitives when launching a new batch + // RL_LINES comes in pairs, RL_TRIANGLES come in groups of 3 vertices and RL_QUADS come in groups of 4 vertices + // We must check current draw.mode when a new vertex is required and finish the batch only if the draw.mode draw.vertexCount is %2, %3 or %4 + if (RLGL.State.vertexCounter > (RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4 - 4)) + { + if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) && + (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%2 == 0)) + { + // Reached the maximum number of vertices for RL_LINES drawing + // Launch a draw call but keep current state for next vertices comming + // NOTE: We add +1 vertex to the check for security + rlCheckRenderBatchLimit(2 + 1); + } + else if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) && + (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%3 == 0)) + { + rlCheckRenderBatchLimit(3 + 1); + } + else if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_QUADS) && + (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4 == 0)) + { + rlCheckRenderBatchLimit(4 + 1); + } + } + + // Add vertices + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter] = tx; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter + 1] = ty; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter + 2] = tz; + + // Add current texcoord + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter] = RLGL.State.texcoordx; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter + 1] = RLGL.State.texcoordy; + + // Add current normal + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter] = RLGL.State.normalx; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter + 1] = RLGL.State.normaly; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter + 2] = RLGL.State.normalz; + + // Add current color + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter] = RLGL.State.colorr; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 1] = RLGL.State.colorg; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 2] = RLGL.State.colorb; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 3] = RLGL.State.colora; + + RLGL.State.vertexCounter++; + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount++; +} + +// Define one vertex (position) +void rlVertex2f(float x, float y) +{ + rlVertex3f(x, y, RLGL.currentBatch->currentDepth); +} + +// Define one vertex (position) +void rlVertex2i(int x, int y) +{ + rlVertex3f((float)x, (float)y, RLGL.currentBatch->currentDepth); +} + +// Define one vertex (texture coordinate) +// NOTE: Texture coordinates are limited to QUADS only +void rlTexCoord2f(float x, float y) +{ + RLGL.State.texcoordx = x; + RLGL.State.texcoordy = y; +} + +// Define one vertex (normal) +// NOTE: Normals limited to TRIANGLES only? +void rlNormal3f(float x, float y, float z) +{ + float normalx = x; + float normaly = y; + float normalz = z; + if (RLGL.State.transformRequired) + { + normalx = RLGL.State.transform.m0*x + RLGL.State.transform.m4*y + RLGL.State.transform.m8*z; + normaly = RLGL.State.transform.m1*x + RLGL.State.transform.m5*y + RLGL.State.transform.m9*z; + normalz = RLGL.State.transform.m2*x + RLGL.State.transform.m6*y + RLGL.State.transform.m10*z; + } + float length = sqrtf(normalx*normalx + normaly*normaly + normalz*normalz); + if (length != 0.0f) + { + float ilength = 1.0f/length; + normalx *= ilength; + normaly *= ilength; + normalz *= ilength; + } + RLGL.State.normalx = normalx; + RLGL.State.normaly = normaly; + RLGL.State.normalz = normalz; +} + +// Define one vertex (color) +void rlColor4ub(unsigned char x, unsigned char y, unsigned char z, unsigned char w) +{ + RLGL.State.colorr = x; + RLGL.State.colorg = y; + RLGL.State.colorb = z; + RLGL.State.colora = w; +} + +// Define one vertex (color) +void rlColor4f(float r, float g, float b, float a) +{ + rlColor4ub((unsigned char)(r*255), (unsigned char)(g*255), (unsigned char)(b*255), (unsigned char)(a*255)); +} + +// Define one vertex (color) +void rlColor3f(float x, float y, float z) +{ + rlColor4ub((unsigned char)(x*255), (unsigned char)(y*255), (unsigned char)(z*255), 255); +} + +#endif + +//-------------------------------------------------------------------------------------- +// Module Functions Definition - OpenGL style functions (common to 1.1, 3.3+, ES2) +//-------------------------------------------------------------------------------------- + +// Set current texture to use +void rlSetTexture(unsigned int id) +{ + if (id == 0) + { +#if defined(GRAPHICS_API_OPENGL_11) + rlDisableTexture(); +#else + // NOTE: If quads batch limit is reached, we force a draw call and next batch starts + if (RLGL.State.vertexCounter >= + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4) + { + rlDrawRenderBatch(RLGL.currentBatch); + } +#endif + } + else + { +#if defined(GRAPHICS_API_OPENGL_11) + rlEnableTexture(id); +#else + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId != id) + { + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount > 0) + { + // Make sure current RLGL.currentBatch->draws[i].vertexCount is aligned a multiple of 4, + // that way, following QUADS drawing will keep aligned with index processing + // It implies adding some extra alignment vertex at the end of the draw, + // those vertex are not processed but they are considered as an additional offset + // for the next set of vertex to be drawn + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount : RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4); + else if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? 1 : (4 - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4))); + else RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = 0; + + if (!rlCheckRenderBatchLimit(RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment)) + { + RLGL.State.vertexCounter += RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment; + + RLGL.currentBatch->drawCounter++; + } + } + + if (RLGL.currentBatch->drawCounter >= RL_DEFAULT_BATCH_DRAWCALLS) rlDrawRenderBatch(RLGL.currentBatch); + + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = id; + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount = 0; + } +#endif + } +} + +// Select and active a texture slot +void rlActiveTextureSlot(int slot) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glActiveTexture(GL_TEXTURE0 + slot); +#endif +} + +// Enable texture +void rlEnableTexture(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_11) + glEnable(GL_TEXTURE_2D); +#endif + glBindTexture(GL_TEXTURE_2D, id); +} + +// Disable texture +void rlDisableTexture(void) +{ +#if defined(GRAPHICS_API_OPENGL_11) + glDisable(GL_TEXTURE_2D); +#endif + glBindTexture(GL_TEXTURE_2D, 0); +} + +// Enable texture cubemap +void rlEnableTextureCubemap(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindTexture(GL_TEXTURE_CUBE_MAP, id); +#endif +} + +// Disable texture cubemap +void rlDisableTextureCubemap(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindTexture(GL_TEXTURE_CUBE_MAP, 0); +#endif +} + +// Set texture parameters (wrap mode/filter mode) +void rlTextureParameters(unsigned int id, int param, int value) +{ + glBindTexture(GL_TEXTURE_2D, id); + +#if !defined(GRAPHICS_API_OPENGL_11) + // Reset anisotropy filter, in case it was set + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0f); +#endif + + switch (param) + { + case RL_TEXTURE_WRAP_S: + case RL_TEXTURE_WRAP_T: + { + if (value == RL_TEXTURE_WRAP_MIRROR_CLAMP) + { +#if !defined(GRAPHICS_API_OPENGL_11) + if (RLGL.ExtSupported.texMirrorClamp) glTexParameteri(GL_TEXTURE_2D, param, value); + else TRACELOG(RL_LOG_WARNING, "GL: Clamp mirror wrap mode not supported (GL_MIRROR_CLAMP_EXT)"); +#endif + } + else glTexParameteri(GL_TEXTURE_2D, param, value); + + } break; + case RL_TEXTURE_MAG_FILTER: + case RL_TEXTURE_MIN_FILTER: glTexParameteri(GL_TEXTURE_2D, param, value); break; + case RL_TEXTURE_FILTER_ANISOTROPIC: + { +#if !defined(GRAPHICS_API_OPENGL_11) + if (value <= RLGL.ExtSupported.maxAnisotropyLevel) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); + else if (RLGL.ExtSupported.maxAnisotropyLevel > 0.0f) + { + TRACELOG(RL_LOG_WARNING, "GL: Maximum anisotropic filter level supported is %iX", id, (int)RLGL.ExtSupported.maxAnisotropyLevel); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); + } + else TRACELOG(RL_LOG_WARNING, "GL: Anisotropic filtering not supported"); +#endif + } break; +#if defined(GRAPHICS_API_OPENGL_33) + case RL_TEXTURE_MIPMAP_BIAS_RATIO: glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_LOD_BIAS, value/100.0f); +#endif + default: break; + } + + glBindTexture(GL_TEXTURE_2D, 0); +} + +// Set cubemap parameters (wrap mode/filter mode) +void rlCubemapParameters(unsigned int id, int param, int value) +{ +#if !defined(GRAPHICS_API_OPENGL_11) + glBindTexture(GL_TEXTURE_CUBE_MAP, id); + + // Reset anisotropy filter, in case it was set + glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0f); + + switch (param) + { + case RL_TEXTURE_WRAP_S: + case RL_TEXTURE_WRAP_T: + { + if (value == RL_TEXTURE_WRAP_MIRROR_CLAMP) + { + if (RLGL.ExtSupported.texMirrorClamp) glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); + else TRACELOG(RL_LOG_WARNING, "GL: Clamp mirror wrap mode not supported (GL_MIRROR_CLAMP_EXT)"); + } + else glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); + + } break; + case RL_TEXTURE_MAG_FILTER: + case RL_TEXTURE_MIN_FILTER: glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); break; + case RL_TEXTURE_FILTER_ANISOTROPIC: + { + if (value <= RLGL.ExtSupported.maxAnisotropyLevel) glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); + else if (RLGL.ExtSupported.maxAnisotropyLevel > 0.0f) + { + TRACELOG(RL_LOG_WARNING, "GL: Maximum anisotropic filter level supported is %iX", id, (int)RLGL.ExtSupported.maxAnisotropyLevel); + glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); + } + else TRACELOG(RL_LOG_WARNING, "GL: Anisotropic filtering not supported"); + } break; +#if defined(GRAPHICS_API_OPENGL_33) + case RL_TEXTURE_MIPMAP_BIAS_RATIO: glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_LOD_BIAS, value/100.0f); +#endif + default: break; + } + + glBindTexture(GL_TEXTURE_CUBE_MAP, 0); +#endif +} + +// Enable shader program +void rlEnableShader(unsigned int id) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) + glUseProgram(id); +#endif +} + +// Disable shader program +void rlDisableShader(void) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) + glUseProgram(0); +#endif +} + +// Enable rendering to texture (fbo) +void rlEnableFramebuffer(unsigned int id) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) + glBindFramebuffer(GL_FRAMEBUFFER, id); +#endif +} + +// return the active render texture (fbo) +unsigned int rlGetActiveFramebuffer(void) +{ + GLint fboId = 0; +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT) + glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &fboId); +#endif + return fboId; +} + +// Disable rendering to texture +void rlDisableFramebuffer(void) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) + glBindFramebuffer(GL_FRAMEBUFFER, 0); +#endif +} + +// Blit active framebuffer to main framebuffer +void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT) + glBlitFramebuffer(srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, bufferMask, GL_NEAREST); +#endif +} + +// Bind framebuffer object (fbo) +void rlBindFramebuffer(unsigned int target, unsigned int framebuffer) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) + glBindFramebuffer(target, framebuffer); +#endif +} + +// Activate multiple draw color buffers +// NOTE: One color buffer is always active by default +void rlActiveDrawBuffers(int count) +{ +#if ((defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT)) + // NOTE: Maximum number of draw buffers supported is implementation dependant, + // it can be queried with glGet*() but it must be at least 8 + //GLint maxDrawBuffers = 0; + //glGetIntegerv(GL_MAX_DRAW_BUFFERS, &maxDrawBuffers); + + if (count > 0) + { + if (count > 8) TRACELOG(LOG_WARNING, "GL: Max color buffers limited to 8"); + else + { + unsigned int buffers[8] = { +#if defined(GRAPHICS_API_OPENGL_ES3) + GL_COLOR_ATTACHMENT0_EXT, + GL_COLOR_ATTACHMENT1_EXT, + GL_COLOR_ATTACHMENT2_EXT, + GL_COLOR_ATTACHMENT3_EXT, + GL_COLOR_ATTACHMENT4_EXT, + GL_COLOR_ATTACHMENT5_EXT, + GL_COLOR_ATTACHMENT6_EXT, + GL_COLOR_ATTACHMENT7_EXT, +#else + GL_COLOR_ATTACHMENT0, + GL_COLOR_ATTACHMENT1, + GL_COLOR_ATTACHMENT2, + GL_COLOR_ATTACHMENT3, + GL_COLOR_ATTACHMENT4, + GL_COLOR_ATTACHMENT5, + GL_COLOR_ATTACHMENT6, + GL_COLOR_ATTACHMENT7, +#endif + }; + +#if defined(GRAPHICS_API_OPENGL_ES3) + glDrawBuffersEXT(count, buffers); +#else + glDrawBuffers(count, buffers); +#endif + } + } + else TRACELOG(LOG_WARNING, "GL: One color buffer active by default"); +#endif +} + +//---------------------------------------------------------------------------------- +// General render state configuration +//---------------------------------------------------------------------------------- + +// Enable color blending +void rlEnableColorBlend(void) { glEnable(GL_BLEND); } + +// Disable color blending +void rlDisableColorBlend(void) { glDisable(GL_BLEND); } + +// Enable depth test +void rlEnableDepthTest(void) { glEnable(GL_DEPTH_TEST); } + +// Disable depth test +void rlDisableDepthTest(void) { glDisable(GL_DEPTH_TEST); } + +// Enable depth write +void rlEnableDepthMask(void) { glDepthMask(GL_TRUE); } + +// Disable depth write +void rlDisableDepthMask(void) { glDepthMask(GL_FALSE); } + +// Enable backface culling +void rlEnableBackfaceCulling(void) { glEnable(GL_CULL_FACE); } + +// Disable backface culling +void rlDisableBackfaceCulling(void) { glDisable(GL_CULL_FACE); } + +// Set color mask active for screen read/draw +void rlColorMask(bool r, bool g, bool b, bool a) { glColorMask(r, g, b, a); } + +// Set face culling mode +void rlSetCullFace(int mode) +{ + switch (mode) + { + case RL_CULL_FACE_BACK: glCullFace(GL_BACK); break; + case RL_CULL_FACE_FRONT: glCullFace(GL_FRONT); break; + default: break; + } +} + +// Enable scissor test +void rlEnableScissorTest(void) { glEnable(GL_SCISSOR_TEST); } + +// Disable scissor test +void rlDisableScissorTest(void) { glDisable(GL_SCISSOR_TEST); } + +// Scissor test +void rlScissor(int x, int y, int width, int height) { glScissor(x, y, width, height); } + +// Enable wire mode +void rlEnableWireMode(void) +{ +#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + // NOTE: glPolygonMode() not available on OpenGL ES + glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); +#endif +} + +// Enable point mode +void rlEnablePointMode(void) +{ +#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + // NOTE: glPolygonMode() not available on OpenGL ES + glPolygonMode(GL_FRONT_AND_BACK, GL_POINT); + glEnable(GL_PROGRAM_POINT_SIZE); +#endif +} + +// Disable wire mode +void rlDisableWireMode(void) +{ +#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + // NOTE: glPolygonMode() not available on OpenGL ES + glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); +#endif +} + +// Set the line drawing width +void rlSetLineWidth(float width) { glLineWidth(width); } + +// Get the line drawing width +float rlGetLineWidth(void) +{ + float width = 0; + glGetFloatv(GL_LINE_WIDTH, &width); + return width; +} + +// Enable line aliasing +void rlEnableSmoothLines(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_11) + glEnable(GL_LINE_SMOOTH); +#endif +} + +// Disable line aliasing +void rlDisableSmoothLines(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_11) + glDisable(GL_LINE_SMOOTH); +#endif +} + +// Enable stereo rendering +void rlEnableStereoRender(void) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) + RLGL.State.stereoRender = true; +#endif +} + +// Disable stereo rendering +void rlDisableStereoRender(void) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) + RLGL.State.stereoRender = false; +#endif +} + +// Check if stereo render is enabled +bool rlIsStereoRenderEnabled(void) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) + return RLGL.State.stereoRender; +#else + return false; +#endif +} + +// Clear color buffer with color +void rlClearColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a) +{ + // Color values clamp to 0.0f(0) and 1.0f(255) + float cr = (float)r/255; + float cg = (float)g/255; + float cb = (float)b/255; + float ca = (float)a/255; + + glClearColor(cr, cg, cb, ca); +} + +// Clear used screen buffers (color and depth) +void rlClearScreenBuffers(void) +{ + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear used buffers: Color and Depth (Depth is used for 3D) + //glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); // Stencil buffer not used... +} + +// Check and log OpenGL error codes +void rlCheckErrors(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + int check = 1; + while (check) + { + const GLenum err = glGetError(); + switch (err) + { + case GL_NO_ERROR: check = 0; break; + case 0x0500: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_ENUM"); break; + case 0x0501: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_VALUE"); break; + case 0x0502: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_OPERATION"); break; + case 0x0503: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_STACK_OVERFLOW"); break; + case 0x0504: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_STACK_UNDERFLOW"); break; + case 0x0505: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_OUT_OF_MEMORY"); break; + case 0x0506: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_FRAMEBUFFER_OPERATION"); break; + default: TRACELOG(RL_LOG_WARNING, "GL: Error detected: Unknown error code: %x", err); break; + } + } +#endif +} + +// Set blend mode +void rlSetBlendMode(int mode) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if ((RLGL.State.currentBlendMode != mode) || ((mode == RL_BLEND_CUSTOM || mode == RL_BLEND_CUSTOM_SEPARATE) && RLGL.State.glCustomBlendModeModified)) + { + rlDrawRenderBatch(RLGL.currentBatch); + + switch (mode) + { + case RL_BLEND_ALPHA: glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; + case RL_BLEND_ADDITIVE: glBlendFunc(GL_SRC_ALPHA, GL_ONE); glBlendEquation(GL_FUNC_ADD); break; + case RL_BLEND_MULTIPLIED: glBlendFunc(GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; + case RL_BLEND_ADD_COLORS: glBlendFunc(GL_ONE, GL_ONE); glBlendEquation(GL_FUNC_ADD); break; + case RL_BLEND_SUBTRACT_COLORS: glBlendFunc(GL_ONE, GL_ONE); glBlendEquation(GL_FUNC_SUBTRACT); break; + case RL_BLEND_ALPHA_PREMULTIPLY: glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; + case RL_BLEND_CUSTOM: + { + // NOTE: Using GL blend src/dst factors and GL equation configured with rlSetBlendFactors() + glBlendFunc(RLGL.State.glBlendSrcFactor, RLGL.State.glBlendDstFactor); glBlendEquation(RLGL.State.glBlendEquation); + + } break; + case RL_BLEND_CUSTOM_SEPARATE: + { + // NOTE: Using GL blend src/dst factors and GL equation configured with rlSetBlendFactorsSeparate() + glBlendFuncSeparate(RLGL.State.glBlendSrcFactorRGB, RLGL.State.glBlendDestFactorRGB, RLGL.State.glBlendSrcFactorAlpha, RLGL.State.glBlendDestFactorAlpha); + glBlendEquationSeparate(RLGL.State.glBlendEquationRGB, RLGL.State.glBlendEquationAlpha); + + } break; + default: break; + } + + RLGL.State.currentBlendMode = mode; + RLGL.State.glCustomBlendModeModified = false; + } +#endif +} + +// Set blending mode factor and equation +void rlSetBlendFactors(int glSrcFactor, int glDstFactor, int glEquation) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if ((RLGL.State.glBlendSrcFactor != glSrcFactor) || + (RLGL.State.glBlendDstFactor != glDstFactor) || + (RLGL.State.glBlendEquation != glEquation)) + { + RLGL.State.glBlendSrcFactor = glSrcFactor; + RLGL.State.glBlendDstFactor = glDstFactor; + RLGL.State.glBlendEquation = glEquation; + + RLGL.State.glCustomBlendModeModified = true; + } +#endif +} + +// Set blending mode factor and equation separately for RGB and alpha +void rlSetBlendFactorsSeparate(int glSrcRGB, int glDstRGB, int glSrcAlpha, int glDstAlpha, int glEqRGB, int glEqAlpha) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if ((RLGL.State.glBlendSrcFactorRGB != glSrcRGB) || + (RLGL.State.glBlendDestFactorRGB != glDstRGB) || + (RLGL.State.glBlendSrcFactorAlpha != glSrcAlpha) || + (RLGL.State.glBlendDestFactorAlpha != glDstAlpha) || + (RLGL.State.glBlendEquationRGB != glEqRGB) || + (RLGL.State.glBlendEquationAlpha != glEqAlpha)) + { + RLGL.State.glBlendSrcFactorRGB = glSrcRGB; + RLGL.State.glBlendDestFactorRGB = glDstRGB; + RLGL.State.glBlendSrcFactorAlpha = glSrcAlpha; + RLGL.State.glBlendDestFactorAlpha = glDstAlpha; + RLGL.State.glBlendEquationRGB = glEqRGB; + RLGL.State.glBlendEquationAlpha = glEqAlpha; + + RLGL.State.glCustomBlendModeModified = true; + } +#endif +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition - OpenGL Debug +//---------------------------------------------------------------------------------- +#if defined(RLGL_ENABLE_OPENGL_DEBUG_CONTEXT) && defined(GRAPHICS_API_OPENGL_43) +static void GLAPIENTRY rlDebugMessageCallback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam) +{ + // Ignore non-significant error/warning codes (NVidia drivers) + // NOTE: Here there are the details with a sample output: + // - #131169 - Framebuffer detailed info: The driver allocated storage for renderbuffer 2. (severity: low) + // - #131185 - Buffer detailed info: Buffer object 1 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_ENUM_88e4) + // will use VIDEO memory as the source for buffer object operations. (severity: low) + // - #131218 - Program/shader state performance warning: Vertex shader in program 7 is being recompiled based on GL state. (severity: medium) + // - #131204 - Texture state usage warning: The texture object (0) bound to texture image unit 0 does not have + // a defined base level and cannot be used for texture mapping. (severity: low) + if ((id == 131169) || (id == 131185) || (id == 131218) || (id == 131204)) return; + + const char *msgSource = NULL; + switch (source) + { + case GL_DEBUG_SOURCE_API: msgSource = "API"; break; + case GL_DEBUG_SOURCE_WINDOW_SYSTEM: msgSource = "WINDOW_SYSTEM"; break; + case GL_DEBUG_SOURCE_SHADER_COMPILER: msgSource = "SHADER_COMPILER"; break; + case GL_DEBUG_SOURCE_THIRD_PARTY: msgSource = "THIRD_PARTY"; break; + case GL_DEBUG_SOURCE_APPLICATION: msgSource = "APPLICATION"; break; + case GL_DEBUG_SOURCE_OTHER: msgSource = "OTHER"; break; + default: break; + } + + const char *msgType = NULL; + switch (type) + { + case GL_DEBUG_TYPE_ERROR: msgType = "ERROR"; break; + case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: msgType = "DEPRECATED_BEHAVIOR"; break; + case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: msgType = "UNDEFINED_BEHAVIOR"; break; + case GL_DEBUG_TYPE_PORTABILITY: msgType = "PORTABILITY"; break; + case GL_DEBUG_TYPE_PERFORMANCE: msgType = "PERFORMANCE"; break; + case GL_DEBUG_TYPE_MARKER: msgType = "MARKER"; break; + case GL_DEBUG_TYPE_PUSH_GROUP: msgType = "PUSH_GROUP"; break; + case GL_DEBUG_TYPE_POP_GROUP: msgType = "POP_GROUP"; break; + case GL_DEBUG_TYPE_OTHER: msgType = "OTHER"; break; + default: break; + } + + const char *msgSeverity = "DEFAULT"; + switch (severity) + { + case GL_DEBUG_SEVERITY_LOW: msgSeverity = "LOW"; break; + case GL_DEBUG_SEVERITY_MEDIUM: msgSeverity = "MEDIUM"; break; + case GL_DEBUG_SEVERITY_HIGH: msgSeverity = "HIGH"; break; + case GL_DEBUG_SEVERITY_NOTIFICATION: msgSeverity = "NOTIFICATION"; break; + default: break; + } + + TRACELOG(LOG_WARNING, "GL: OpenGL debug message: %s", message); + TRACELOG(LOG_WARNING, " > Type: %s", msgType); + TRACELOG(LOG_WARNING, " > Source = %s", msgSource); + TRACELOG(LOG_WARNING, " > Severity = %s", msgSeverity); +} +#endif + +//---------------------------------------------------------------------------------- +// Module Functions Definition - rlgl functionality +//---------------------------------------------------------------------------------- + +// Initialize rlgl: OpenGL extensions, default buffers/shaders/textures, OpenGL states +void rlglInit(int width, int height) +{ + // Enable OpenGL debug context if required +#if defined(RLGL_ENABLE_OPENGL_DEBUG_CONTEXT) && defined(GRAPHICS_API_OPENGL_43) + if ((glDebugMessageCallback != NULL) && (glDebugMessageControl != NULL)) + { + glDebugMessageCallback(rlDebugMessageCallback, 0); + // glDebugMessageControl(GL_DEBUG_SOURCE_API, GL_DEBUG_TYPE_ERROR, GL_DEBUG_SEVERITY_HIGH, 0, 0, GL_TRUE); + + // Debug context options: + // - GL_DEBUG_OUTPUT - Faster version but not useful for breakpoints + // - GL_DEBUG_OUTPUT_SYNCHRONUS - Callback is in sync with errors, so a breakpoint can be placed on the callback in order to get a stacktrace for the GL error + glEnable(GL_DEBUG_OUTPUT); + glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS); + } +#endif + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Init default white texture + unsigned char pixels[4] = { 255, 255, 255, 255 }; // 1 pixel RGBA (4 bytes) + RLGL.State.defaultTextureId = rlLoadTexture(pixels, 1, 1, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, 1); + + if (RLGL.State.defaultTextureId != 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Default texture loaded successfully", RLGL.State.defaultTextureId); + else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load default texture"); + + // Init default Shader (customized for GL 3.3 and ES2) + // Loaded: RLGL.State.defaultShaderId + RLGL.State.defaultShaderLocs + rlLoadShaderDefault(); + RLGL.State.currentShaderId = RLGL.State.defaultShaderId; + RLGL.State.currentShaderLocs = RLGL.State.defaultShaderLocs; + + // Init default vertex arrays buffers + // Simulate that the default shader has the location RL_SHADER_LOC_VERTEX_NORMAL to bind the normal buffer for the default render batch + RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL] = RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL; + RLGL.defaultBatch = rlLoadRenderBatch(RL_DEFAULT_BATCH_BUFFERS, RL_DEFAULT_BATCH_BUFFER_ELEMENTS); + RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL] = -1; + RLGL.currentBatch = &RLGL.defaultBatch; + + // Init stack matrices (emulating OpenGL 1.1) + for (int i = 0; i < RL_MAX_MATRIX_STACK_SIZE; i++) RLGL.State.stack[i] = rlMatrixIdentity(); + + // Init internal matrices + RLGL.State.transform = rlMatrixIdentity(); + RLGL.State.projection = rlMatrixIdentity(); + RLGL.State.modelview = rlMatrixIdentity(); + RLGL.State.currentMatrix = &RLGL.State.modelview; +#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 + + // Initialize OpenGL default states + //---------------------------------------------------------- + // Init state: Depth test + glDepthFunc(GL_LEQUAL); // Type of depth testing to apply + glDisable(GL_DEPTH_TEST); // Disable depth testing for 2D (only used for 3D) + + // Init state: Blending mode + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // Color blending function (how colors are mixed) + glEnable(GL_BLEND); // Enable color blending (required to work with transparencies) + + // Init state: Culling + // NOTE: All shapes/models triangles are drawn CCW + glCullFace(GL_BACK); // Cull the back face (default) + glFrontFace(GL_CCW); // Front face are defined counter clockwise (default) + glEnable(GL_CULL_FACE); // Enable backface culling + + // Init state: Cubemap seamless +#if defined(GRAPHICS_API_OPENGL_33) + glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS); // Seamless cubemaps (not supported on OpenGL ES 2.0) +#endif + +#if defined(GRAPHICS_API_OPENGL_11) + // Init state: Color hints (deprecated in OpenGL 3.0+) + glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Improve quality of color and texture coordinate interpolation + glShadeModel(GL_SMOOTH); // Smooth shading between vertex (vertex colors interpolation) +#endif + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Store screen size into global variables + RLGL.State.framebufferWidth = width; + RLGL.State.framebufferHeight = height; + + TRACELOG(RL_LOG_INFO, "RLGL: Default OpenGL state initialized successfully"); + //---------------------------------------------------------- +#endif + + // Init state: Color/Depth buffers clear + glClearColor(0.0f, 0.0f, 0.0f, 1.0f); // Set clear color (black) + glClearDepth(1.0f); // Set clear depth value (default) + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear color and depth buffers (depth buffer required for 3D) +} + +// Vertex Buffer Object deinitialization (memory free) +void rlglClose(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + rlUnloadRenderBatch(RLGL.defaultBatch); + + rlUnloadShaderDefault(); // Unload default shader + + glDeleteTextures(1, &RLGL.State.defaultTextureId); // Unload default texture + TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Default texture unloaded successfully", RLGL.State.defaultTextureId); +#endif +} + +// Load OpenGL extensions +// NOTE: External loader function must be provided +void rlLoadExtensions(void *loader) +{ +#if defined(GRAPHICS_API_OPENGL_33) // Also defined for GRAPHICS_API_OPENGL_21 + // NOTE: glad is generated and contains only required OpenGL 3.3 Core extensions (and lower versions) + if (gladLoadGL((GLADloadfunc)loader) == 0) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL extensions"); + else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL extensions loaded successfully"); + + // Get number of supported extensions + GLint numExt = 0; + glGetIntegerv(GL_NUM_EXTENSIONS, &numExt); + TRACELOG(RL_LOG_INFO, "GL: Supported extensions count: %i", numExt); + +#if defined(RLGL_SHOW_GL_DETAILS_INFO) + // Get supported extensions list + // WARNING: glGetStringi() not available on OpenGL 2.1 + TRACELOG(RL_LOG_INFO, "GL: OpenGL extensions:"); + for (int i = 0; i < numExt; i++) TRACELOG(RL_LOG_INFO, " %s", glGetStringi(GL_EXTENSIONS, i)); +#endif + +#if defined(GRAPHICS_API_OPENGL_21) + // Register supported extensions flags + // Optional OpenGL 2.1 extensions + RLGL.ExtSupported.vao = GLAD_GL_ARB_vertex_array_object; + RLGL.ExtSupported.instancing = (GLAD_GL_EXT_draw_instanced && GLAD_GL_ARB_instanced_arrays); + RLGL.ExtSupported.texNPOT = GLAD_GL_ARB_texture_non_power_of_two; + RLGL.ExtSupported.texFloat32 = GLAD_GL_ARB_texture_float; + RLGL.ExtSupported.texFloat16 = GLAD_GL_ARB_texture_float; + RLGL.ExtSupported.texDepth = GLAD_GL_ARB_depth_texture; + RLGL.ExtSupported.maxDepthBits = 32; + RLGL.ExtSupported.texAnisoFilter = GLAD_GL_EXT_texture_filter_anisotropic; + RLGL.ExtSupported.texMirrorClamp = GLAD_GL_EXT_texture_mirror_clamp; +#else + // Register supported extensions flags + // OpenGL 3.3 extensions supported by default (core) + RLGL.ExtSupported.vao = true; + RLGL.ExtSupported.instancing = true; + RLGL.ExtSupported.texNPOT = true; + RLGL.ExtSupported.texFloat32 = true; + RLGL.ExtSupported.texFloat16 = true; + RLGL.ExtSupported.texDepth = true; + RLGL.ExtSupported.maxDepthBits = 32; + RLGL.ExtSupported.texAnisoFilter = true; + RLGL.ExtSupported.texMirrorClamp = true; +#endif + + // Optional OpenGL 3.3 extensions + RLGL.ExtSupported.texCompASTC = GLAD_GL_KHR_texture_compression_astc_hdr && GLAD_GL_KHR_texture_compression_astc_ldr; + RLGL.ExtSupported.texCompDXT = GLAD_GL_EXT_texture_compression_s3tc; // Texture compression: DXT + RLGL.ExtSupported.texCompETC2 = GLAD_GL_ARB_ES3_compatibility; // Texture compression: ETC2/EAC + #if defined(GRAPHICS_API_OPENGL_43) + RLGL.ExtSupported.computeShader = GLAD_GL_ARB_compute_shader; + RLGL.ExtSupported.ssbo = GLAD_GL_ARB_shader_storage_buffer_object; + #endif + +#endif // GRAPHICS_API_OPENGL_33 + +#if defined(GRAPHICS_API_OPENGL_ES3) + // Register supported extensions flags + // OpenGL ES 3.0 extensions supported by default (or it should be) + RLGL.ExtSupported.vao = true; + RLGL.ExtSupported.instancing = true; + RLGL.ExtSupported.texNPOT = true; + RLGL.ExtSupported.texFloat32 = true; + RLGL.ExtSupported.texFloat16 = true; + RLGL.ExtSupported.texDepth = true; + RLGL.ExtSupported.texDepthWebGL = true; + RLGL.ExtSupported.maxDepthBits = 24; + RLGL.ExtSupported.texAnisoFilter = true; + RLGL.ExtSupported.texMirrorClamp = true; + // TODO: Check for additional OpenGL ES 3.0 supported extensions: + //RLGL.ExtSupported.texCompDXT = true; + //RLGL.ExtSupported.texCompETC1 = true; + //RLGL.ExtSupported.texCompETC2 = true; + //RLGL.ExtSupported.texCompPVRT = true; + //RLGL.ExtSupported.texCompASTC = true; + //RLGL.ExtSupported.maxAnisotropyLevel = true; + //RLGL.ExtSupported.computeShader = true; + //RLGL.ExtSupported.ssbo = true; + +#elif defined(GRAPHICS_API_OPENGL_ES2) + + #if defined(PLATFORM_DESKTOP_GLFW) || defined(PLATFORM_DESKTOP_SDL) + // TODO: Support GLAD loader for OpenGL ES 3.0 + if (gladLoadGLES2((GLADloadfunc)loader) == 0) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL ES2.0 functions"); + else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL ES 2.0 loaded successfully"); + #endif + + // Get supported extensions list + GLint numExt = 0; + const char **extList = RL_MALLOC(512*sizeof(const char *)); // Allocate 512 strings pointers (2 KB) + const char *extensions = (const char *)glGetString(GL_EXTENSIONS); // One big const string + + // NOTE: We have to duplicate string because glGetString() returns a const string + int size = strlen(extensions) + 1; // Get extensions string size in bytes + char *extensionsDup = (char *)RL_CALLOC(size, sizeof(char)); + strcpy(extensionsDup, extensions); + extList[numExt] = extensionsDup; + + for (int i = 0; i < size; i++) + { + if (extensionsDup[i] == ' ') + { + extensionsDup[i] = '\0'; + numExt++; + extList[numExt] = &extensionsDup[i + 1]; + } + } + + TRACELOG(RL_LOG_INFO, "GL: Supported extensions count: %i", numExt); + +#if defined(RLGL_SHOW_GL_DETAILS_INFO) + TRACELOG(RL_LOG_INFO, "GL: OpenGL extensions:"); + for (int i = 0; i < numExt; i++) TRACELOG(RL_LOG_INFO, " %s", extList[i]); +#endif + + // Check required extensions + for (int i = 0; i < numExt; i++) + { + // Check VAO support + // NOTE: Only check on OpenGL ES, OpenGL 3.3 has VAO support as core feature + if (strcmp(extList[i], (const char *)"GL_OES_vertex_array_object") == 0) + { + // The extension is supported by our hardware and driver, try to get related functions pointers + // NOTE: emscripten does not support VAOs natively, it uses emulation and it reduces overall performance... + glGenVertexArrays = (PFNGLGENVERTEXARRAYSOESPROC)((rlglLoadProc)loader)("glGenVertexArraysOES"); + glBindVertexArray = (PFNGLBINDVERTEXARRAYOESPROC)((rlglLoadProc)loader)("glBindVertexArrayOES"); + glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSOESPROC)((rlglLoadProc)loader)("glDeleteVertexArraysOES"); + //glIsVertexArray = (PFNGLISVERTEXARRAYOESPROC)loader("glIsVertexArrayOES"); // NOTE: Fails in WebGL, omitted + + if ((glGenVertexArrays != NULL) && (glBindVertexArray != NULL) && (glDeleteVertexArrays != NULL)) RLGL.ExtSupported.vao = true; + } + + // Check instanced rendering support + if (strstr(extList[i], (const char*)"instanced_arrays") != NULL) // Broad check for instanced_arrays + { + // Specific check + if (strcmp(extList[i], (const char *)"GL_ANGLE_instanced_arrays") == 0) // ANGLE + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedANGLE"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedANGLE"); + glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorANGLE"); + } + else if (strcmp(extList[i], (const char *)"GL_EXT_instanced_arrays") == 0) // EXT + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedEXT"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedEXT"); + glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorEXT"); + } + else if (strcmp(extList[i], (const char *)"GL_NV_instanced_arrays") == 0) // NVIDIA GLES + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedNV"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedNV"); + glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorNV"); + } + + // The feature will only be marked as supported if the elements from GL_XXX_instanced_arrays are present + if ((glDrawArraysInstanced != NULL) && (glDrawElementsInstanced != NULL) && (glVertexAttribDivisor != NULL)) RLGL.ExtSupported.instancing = true; + } + else if (strstr(extList[i], (const char *)"draw_instanced") != NULL) + { + // GL_ANGLE_draw_instanced doesn't exist + if (strcmp(extList[i], (const char *)"GL_EXT_draw_instanced") == 0) + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedEXT"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedEXT"); + } + else if (strcmp(extList[i], (const char*)"GL_NV_draw_instanced") == 0) + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedNV"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedNV"); + } + + // But the functions will at least be loaded if only GL_XX_EXT_draw_instanced exist + if ((glDrawArraysInstanced != NULL) && (glDrawElementsInstanced != NULL) && (glVertexAttribDivisor != NULL)) RLGL.ExtSupported.instancing = true; + } + + // Check NPOT textures support + // NOTE: Only check on OpenGL ES, OpenGL 3.3 has NPOT textures full support as core feature + if (strcmp(extList[i], (const char *)"GL_OES_texture_npot") == 0) RLGL.ExtSupported.texNPOT = true; + + // Check texture float support + if (strcmp(extList[i], (const char *)"GL_OES_texture_float") == 0) RLGL.ExtSupported.texFloat32 = true; + if (strcmp(extList[i], (const char *)"GL_OES_texture_half_float") == 0) RLGL.ExtSupported.texFloat16 = true; + + // Check depth texture support + if (strcmp(extList[i], (const char *)"GL_OES_depth_texture") == 0) RLGL.ExtSupported.texDepth = true; + if (strcmp(extList[i], (const char *)"GL_WEBGL_depth_texture") == 0) RLGL.ExtSupported.texDepthWebGL = true; // WebGL requires unsized internal format + if (RLGL.ExtSupported.texDepthWebGL) RLGL.ExtSupported.texDepth = true; + + if (strcmp(extList[i], (const char *)"GL_OES_depth24") == 0) RLGL.ExtSupported.maxDepthBits = 24; // Not available on WebGL + if (strcmp(extList[i], (const char *)"GL_OES_depth32") == 0) RLGL.ExtSupported.maxDepthBits = 32; // Not available on WebGL + + // Check texture compression support: DXT + if ((strcmp(extList[i], (const char *)"GL_EXT_texture_compression_s3tc") == 0) || + (strcmp(extList[i], (const char *)"GL_WEBGL_compressed_texture_s3tc") == 0) || + (strcmp(extList[i], (const char *)"GL_WEBKIT_WEBGL_compressed_texture_s3tc") == 0)) RLGL.ExtSupported.texCompDXT = true; + + // Check texture compression support: ETC1 + if ((strcmp(extList[i], (const char *)"GL_OES_compressed_ETC1_RGB8_texture") == 0) || + (strcmp(extList[i], (const char *)"GL_WEBGL_compressed_texture_etc1") == 0)) RLGL.ExtSupported.texCompETC1 = true; + + // Check texture compression support: ETC2/EAC + if (strcmp(extList[i], (const char *)"GL_ARB_ES3_compatibility") == 0) RLGL.ExtSupported.texCompETC2 = true; + + // Check texture compression support: PVR + if (strcmp(extList[i], (const char *)"GL_IMG_texture_compression_pvrtc") == 0) RLGL.ExtSupported.texCompPVRT = true; + + // Check texture compression support: ASTC + if (strcmp(extList[i], (const char *)"GL_KHR_texture_compression_astc_hdr") == 0) RLGL.ExtSupported.texCompASTC = true; + + // Check anisotropic texture filter support + if (strcmp(extList[i], (const char *)"GL_EXT_texture_filter_anisotropic") == 0) RLGL.ExtSupported.texAnisoFilter = true; + + // Check clamp mirror wrap mode support + if (strcmp(extList[i], (const char *)"GL_EXT_texture_mirror_clamp") == 0) RLGL.ExtSupported.texMirrorClamp = true; + } + + // Free extensions pointers + RL_FREE(extList); + RL_FREE(extensionsDup); // Duplicated string must be deallocated +#endif // GRAPHICS_API_OPENGL_ES2 + + // Check OpenGL information and capabilities + //------------------------------------------------------------------------------ + // Show current OpenGL and GLSL version + TRACELOG(RL_LOG_INFO, "GL: OpenGL device information:"); + TRACELOG(RL_LOG_INFO, " > Vendor: %s", glGetString(GL_VENDOR)); + TRACELOG(RL_LOG_INFO, " > Renderer: %s", glGetString(GL_RENDERER)); + TRACELOG(RL_LOG_INFO, " > Version: %s", glGetString(GL_VERSION)); + TRACELOG(RL_LOG_INFO, " > GLSL: %s", glGetString(GL_SHADING_LANGUAGE_VERSION)); + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: Anisotropy levels capability is an extension + #ifndef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT + #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF + #endif + glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &RLGL.ExtSupported.maxAnisotropyLevel); + +#if defined(RLGL_SHOW_GL_DETAILS_INFO) + // Show some OpenGL GPU capabilities + TRACELOG(RL_LOG_INFO, "GL: OpenGL capabilities:"); + GLint capability = 0; + glGetIntegerv(GL_MAX_TEXTURE_SIZE, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_SIZE: %i", capability); + glGetIntegerv(GL_MAX_CUBE_MAP_TEXTURE_SIZE, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_CUBE_MAP_TEXTURE_SIZE: %i", capability); + glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_IMAGE_UNITS: %i", capability); + glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_VERTEX_ATTRIBS: %i", capability); + #if !defined(GRAPHICS_API_OPENGL_ES2) + glGetIntegerv(GL_MAX_UNIFORM_BLOCK_SIZE, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_UNIFORM_BLOCK_SIZE: %i", capability); + glGetIntegerv(GL_MAX_DRAW_BUFFERS, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_DRAW_BUFFERS: %i", capability); + if (RLGL.ExtSupported.texAnisoFilter) TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_MAX_ANISOTROPY: %.0f", RLGL.ExtSupported.maxAnisotropyLevel); + #endif + glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &capability); + TRACELOG(RL_LOG_INFO, " GL_NUM_COMPRESSED_TEXTURE_FORMATS: %i", capability); + GLint *compFormats = (GLint *)RL_CALLOC(capability, sizeof(GLint)); + glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS, compFormats); + for (int i = 0; i < capability; i++) TRACELOG(RL_LOG_INFO, " %s", rlGetCompressedFormatName(compFormats[i])); + RL_FREE(compFormats); + +#if defined(GRAPHICS_API_OPENGL_43) + glGetIntegerv(GL_MAX_VERTEX_ATTRIB_BINDINGS, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_VERTEX_ATTRIB_BINDINGS: %i", capability); + glGetIntegerv(GL_MAX_UNIFORM_LOCATIONS, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_UNIFORM_LOCATIONS: %i", capability); +#endif // GRAPHICS_API_OPENGL_43 +#else // RLGL_SHOW_GL_DETAILS_INFO + + // Show some basic info about GL supported features + if (RLGL.ExtSupported.vao) TRACELOG(RL_LOG_INFO, "GL: VAO extension detected, VAO functions loaded successfully"); + else TRACELOG(RL_LOG_WARNING, "GL: VAO extension not found, VAO not supported"); + if (RLGL.ExtSupported.texNPOT) TRACELOG(RL_LOG_INFO, "GL: NPOT textures extension detected, full NPOT textures supported"); + else TRACELOG(RL_LOG_WARNING, "GL: NPOT textures extension not found, limited NPOT support (no-mipmaps, no-repeat)"); + if (RLGL.ExtSupported.texCompDXT) TRACELOG(RL_LOG_INFO, "GL: DXT compressed textures supported"); + if (RLGL.ExtSupported.texCompETC1) TRACELOG(RL_LOG_INFO, "GL: ETC1 compressed textures supported"); + if (RLGL.ExtSupported.texCompETC2) TRACELOG(RL_LOG_INFO, "GL: ETC2/EAC compressed textures supported"); + if (RLGL.ExtSupported.texCompPVRT) TRACELOG(RL_LOG_INFO, "GL: PVRT compressed textures supported"); + if (RLGL.ExtSupported.texCompASTC) TRACELOG(RL_LOG_INFO, "GL: ASTC compressed textures supported"); + if (RLGL.ExtSupported.computeShader) TRACELOG(RL_LOG_INFO, "GL: Compute shaders supported"); + if (RLGL.ExtSupported.ssbo) TRACELOG(RL_LOG_INFO, "GL: Shader storage buffer objects supported"); +#endif // RLGL_SHOW_GL_DETAILS_INFO + +#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 +} + +// Get current OpenGL version +int rlGetVersion(void) +{ + int glVersion = 0; +#if defined(GRAPHICS_API_OPENGL_11) + glVersion = RL_OPENGL_11; +#endif +#if defined(GRAPHICS_API_OPENGL_21) + glVersion = RL_OPENGL_21; +#elif defined(GRAPHICS_API_OPENGL_43) + glVersion = RL_OPENGL_43; +#elif defined(GRAPHICS_API_OPENGL_33) + glVersion = RL_OPENGL_33; +#endif +#if defined(GRAPHICS_API_OPENGL_ES3) + glVersion = RL_OPENGL_ES_30; +#elif defined(GRAPHICS_API_OPENGL_ES2) + glVersion = RL_OPENGL_ES_20; +#endif + + return glVersion; +} + +// Set current framebuffer width +void rlSetFramebufferWidth(int width) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.framebufferWidth = width; +#endif +} + +// Set current framebuffer height +void rlSetFramebufferHeight(int height) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.framebufferHeight = height; +#endif +} + +// Get default framebuffer width +int rlGetFramebufferWidth(void) +{ + int width = 0; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + width = RLGL.State.framebufferWidth; +#endif + return width; +} + +// Get default framebuffer height +int rlGetFramebufferHeight(void) +{ + int height = 0; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + height = RLGL.State.framebufferHeight; +#endif + return height; +} + +// Get default internal texture (white texture) +// NOTE: Default texture is a 1x1 pixel UNCOMPRESSED_R8G8B8A8 +unsigned int rlGetTextureIdDefault(void) +{ + unsigned int id = 0; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + id = RLGL.State.defaultTextureId; +#endif + return id; +} + +// Get default shader id +unsigned int rlGetShaderIdDefault(void) +{ + unsigned int id = 0; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + id = RLGL.State.defaultShaderId; +#endif + return id; +} + +// Get default shader locs +int *rlGetShaderLocsDefault(void) +{ + int *locs = NULL; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + locs = RLGL.State.defaultShaderLocs; +#endif + return locs; +} + +// Render batch management +//------------------------------------------------------------------------------------------------ +// Load render batch +rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements) +{ + rlRenderBatch batch = { 0 }; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Initialize CPU (RAM) vertex buffers (position, texcoord, color data and indexes) + //-------------------------------------------------------------------------------------------- + batch.vertexBuffer = (rlVertexBuffer *)RL_MALLOC(numBuffers*sizeof(rlVertexBuffer)); + + for (int i = 0; i < numBuffers; i++) + { + batch.vertexBuffer[i].elementCount = bufferElements; + + batch.vertexBuffer[i].vertices = (float *)RL_MALLOC(bufferElements*3*4*sizeof(float)); // 3 float by vertex, 4 vertex by quad + batch.vertexBuffer[i].texcoords = (float *)RL_MALLOC(bufferElements*2*4*sizeof(float)); // 2 float by texcoord, 4 texcoord by quad + batch.vertexBuffer[i].normals = (float *)RL_MALLOC(bufferElements*3*4*sizeof(float)); // 3 float by vertex, 4 vertex by quad + batch.vertexBuffer[i].colors = (unsigned char *)RL_MALLOC(bufferElements*4*4*sizeof(unsigned char)); // 4 float by color, 4 colors by quad +#if defined(GRAPHICS_API_OPENGL_33) + batch.vertexBuffer[i].indices = (unsigned int *)RL_MALLOC(bufferElements*6*sizeof(unsigned int)); // 6 int by quad (indices) +#endif +#if defined(GRAPHICS_API_OPENGL_ES2) + batch.vertexBuffer[i].indices = (unsigned short *)RL_MALLOC(bufferElements*6*sizeof(unsigned short)); // 6 int by quad (indices) +#endif + + for (int j = 0; j < (3*4*bufferElements); j++) batch.vertexBuffer[i].vertices[j] = 0.0f; + for (int j = 0; j < (2*4*bufferElements); j++) batch.vertexBuffer[i].texcoords[j] = 0.0f; + for (int j = 0; j < (3*4*bufferElements); j++) batch.vertexBuffer[i].normals[j] = 0.0f; + for (int j = 0; j < (4*4*bufferElements); j++) batch.vertexBuffer[i].colors[j] = 0; + + int k = 0; + + // Indices can be initialized right now + for (int j = 0; j < (6*bufferElements); j += 6) + { + batch.vertexBuffer[i].indices[j] = 4*k; + batch.vertexBuffer[i].indices[j + 1] = 4*k + 1; + batch.vertexBuffer[i].indices[j + 2] = 4*k + 2; + batch.vertexBuffer[i].indices[j + 3] = 4*k; + batch.vertexBuffer[i].indices[j + 4] = 4*k + 2; + batch.vertexBuffer[i].indices[j + 5] = 4*k + 3; + + k++; + } + + RLGL.State.vertexCounter = 0; + } + + TRACELOG(RL_LOG_INFO, "RLGL: Render batch vertex buffers loaded successfully in RAM (CPU)"); + //-------------------------------------------------------------------------------------------- + + // Upload to GPU (VRAM) vertex data and initialize VAOs/VBOs + //-------------------------------------------------------------------------------------------- + for (int i = 0; i < numBuffers; i++) + { + if (RLGL.ExtSupported.vao) + { + // Initialize Quads VAO + glGenVertexArrays(1, &batch.vertexBuffer[i].vaoId); + glBindVertexArray(batch.vertexBuffer[i].vaoId); + } + + // Quads - Vertex buffers binding and attributes enable + // Vertex position buffer (shader-location = 0) + glGenBuffers(1, &batch.vertexBuffer[i].vboId[0]); + glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[0]); + glBufferData(GL_ARRAY_BUFFER, bufferElements*3*4*sizeof(float), batch.vertexBuffer[i].vertices, GL_DYNAMIC_DRAW); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION], 3, GL_FLOAT, 0, 0, 0); + + // Vertex texcoord buffer (shader-location = 1) + glGenBuffers(1, &batch.vertexBuffer[i].vboId[1]); + glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[1]); + glBufferData(GL_ARRAY_BUFFER, bufferElements*2*4*sizeof(float), batch.vertexBuffer[i].texcoords, GL_DYNAMIC_DRAW); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01], 2, GL_FLOAT, 0, 0, 0); + + // Vertex normal buffer (shader-location = 2) + glGenBuffers(1, &batch.vertexBuffer[i].vboId[2]); + glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[2]); + glBufferData(GL_ARRAY_BUFFER, bufferElements*3*4*sizeof(float), batch.vertexBuffer[i].normals, GL_DYNAMIC_DRAW); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL], 3, GL_FLOAT, 0, 0, 0); + + // Vertex color buffer (shader-location = 3) + glGenBuffers(1, &batch.vertexBuffer[i].vboId[3]); + glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[3]); + glBufferData(GL_ARRAY_BUFFER, bufferElements*4*4*sizeof(unsigned char), batch.vertexBuffer[i].colors, GL_DYNAMIC_DRAW); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR], 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0); + + // Fill index buffer + glGenBuffers(1, &batch.vertexBuffer[i].vboId[4]); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[4]); +#if defined(GRAPHICS_API_OPENGL_33) + glBufferData(GL_ELEMENT_ARRAY_BUFFER, bufferElements*6*sizeof(int), batch.vertexBuffer[i].indices, GL_STATIC_DRAW); +#endif +#if defined(GRAPHICS_API_OPENGL_ES2) + glBufferData(GL_ELEMENT_ARRAY_BUFFER, bufferElements*6*sizeof(short), batch.vertexBuffer[i].indices, GL_STATIC_DRAW); +#endif + } + + TRACELOG(RL_LOG_INFO, "RLGL: Render batch vertex buffers loaded successfully in VRAM (GPU)"); + + // Unbind the current VAO + if (RLGL.ExtSupported.vao) glBindVertexArray(0); + //-------------------------------------------------------------------------------------------- + + // Init draw calls tracking system + //-------------------------------------------------------------------------------------------- + batch.draws = (rlDrawCall *)RL_MALLOC(RL_DEFAULT_BATCH_DRAWCALLS*sizeof(rlDrawCall)); + + for (int i = 0; i < RL_DEFAULT_BATCH_DRAWCALLS; i++) + { + batch.draws[i].mode = RL_QUADS; + batch.draws[i].vertexCount = 0; + batch.draws[i].vertexAlignment = 0; + //batch.draws[i].vaoId = 0; + //batch.draws[i].shaderId = 0; + batch.draws[i].textureId = RLGL.State.defaultTextureId; + //batch.draws[i].RLGL.State.projection = rlMatrixIdentity(); + //batch.draws[i].RLGL.State.modelview = rlMatrixIdentity(); + } + + batch.bufferCount = numBuffers; // Record buffer count + batch.drawCounter = 1; // Reset draws counter + batch.currentDepth = -1.0f; // Reset depth value + //-------------------------------------------------------------------------------------------- +#endif + + return batch; +} + +// Unload default internal buffers vertex data from CPU and GPU +void rlUnloadRenderBatch(rlRenderBatch batch) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Unbind everything + glBindBuffer(GL_ARRAY_BUFFER, 0); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); + + // Unload all vertex buffers data + for (int i = 0; i < batch.bufferCount; i++) + { + // Unbind VAO attribs data + if (RLGL.ExtSupported.vao) + { + glBindVertexArray(batch.vertexBuffer[i].vaoId); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR); + glBindVertexArray(0); + } + + // Delete VBOs from GPU (VRAM) + glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[0]); + glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[1]); + glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[2]); + glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[3]); + glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[4]); + + // Delete VAOs from GPU (VRAM) + if (RLGL.ExtSupported.vao) glDeleteVertexArrays(1, &batch.vertexBuffer[i].vaoId); + + // Free vertex arrays memory from CPU (RAM) + RL_FREE(batch.vertexBuffer[i].vertices); + RL_FREE(batch.vertexBuffer[i].texcoords); + RL_FREE(batch.vertexBuffer[i].normals); + RL_FREE(batch.vertexBuffer[i].colors); + RL_FREE(batch.vertexBuffer[i].indices); + } + + // Unload arrays + RL_FREE(batch.vertexBuffer); + RL_FREE(batch.draws); +#endif +} + +// Draw render batch +// NOTE: We require a pointer to reset batch and increase current buffer (multi-buffer) +void rlDrawRenderBatch(rlRenderBatch *batch) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Update batch vertex buffers + //------------------------------------------------------------------------------------------------------------ + // NOTE: If there is not vertex data, buffers doesn't need to be updated (vertexCount > 0) + // TODO: If no data changed on the CPU arrays --> No need to re-update GPU arrays (use a change detector flag?) + if (RLGL.State.vertexCounter > 0) + { + // Activate elements VAO + if (RLGL.ExtSupported.vao) glBindVertexArray(batch->vertexBuffer[batch->currentBuffer].vaoId); + + // Vertex positions buffer + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[0]); + glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*3*sizeof(float), batch->vertexBuffer[batch->currentBuffer].vertices); + //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].vertices, GL_DYNAMIC_DRAW); // Update all buffer + + // Texture coordinates buffer + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[1]); + glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*2*sizeof(float), batch->vertexBuffer[batch->currentBuffer].texcoords); + //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*2*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].texcoords, GL_DYNAMIC_DRAW); // Update all buffer + + // Normals buffer + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[2]); + glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*3*sizeof(float), batch->vertexBuffer[batch->currentBuffer].normals); + //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].normals, GL_DYNAMIC_DRAW); // Update all buffer + + // Colors buffer + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[3]); + glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*4*sizeof(unsigned char), batch->vertexBuffer[batch->currentBuffer].colors); + //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*4*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].colors, GL_DYNAMIC_DRAW); // Update all buffer + + // NOTE: glMapBuffer() causes sync issue + // If GPU is working with this buffer, glMapBuffer() will wait(stall) until GPU to finish its job + // To avoid waiting (idle), you can call first glBufferData() with NULL pointer before glMapBuffer() + // If you do that, the previous data in PBO will be discarded and glMapBuffer() returns a new + // allocated pointer immediately even if GPU is still working with the previous data + + // Another option: map the buffer object into client's memory + // Probably this code could be moved somewhere else... + // batch->vertexBuffer[batch->currentBuffer].vertices = (float *)glMapBuffer(GL_ARRAY_BUFFER, GL_READ_WRITE); + // if (batch->vertexBuffer[batch->currentBuffer].vertices) + // { + // Update vertex data + // } + // glUnmapBuffer(GL_ARRAY_BUFFER); + + // Unbind the current VAO + if (RLGL.ExtSupported.vao) glBindVertexArray(0); + } + //------------------------------------------------------------------------------------------------------------ + + // Draw batch vertex buffers (considering VR stereo if required) + //------------------------------------------------------------------------------------------------------------ + Matrix matProjection = RLGL.State.projection; + Matrix matModelView = RLGL.State.modelview; + + int eyeCount = 1; + if (RLGL.State.stereoRender) eyeCount = 2; + + for (int eye = 0; eye < eyeCount; eye++) + { + if (eyeCount == 2) + { + // Setup current eye viewport (half screen width) + rlViewport(eye*RLGL.State.framebufferWidth/2, 0, RLGL.State.framebufferWidth/2, RLGL.State.framebufferHeight); + + // Set current eye view offset to modelview matrix + rlSetMatrixModelview(rlMatrixMultiply(matModelView, RLGL.State.viewOffsetStereo[eye])); + // Set current eye projection matrix + rlSetMatrixProjection(RLGL.State.projectionStereo[eye]); + } + + // Draw buffers + if (RLGL.State.vertexCounter > 0) + { + // Set current shader and upload current MVP matrix + glUseProgram(RLGL.State.currentShaderId); + + // Create modelview-projection matrix and upload to shader + Matrix matMVP = rlMatrixMultiply(RLGL.State.modelview, RLGL.State.projection); + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MVP], 1, false, rlMatrixToFloat(matMVP)); + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_PROJECTION] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_PROJECTION], 1, false, rlMatrixToFloat(RLGL.State.projection)); + } + + // WARNING: For the following setup of the view, model, and normal matrices, it is expected that + // transformations and rendering occur between rlPushMatrix() and rlPopMatrix() + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_VIEW] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_VIEW], 1, false, rlMatrixToFloat(RLGL.State.modelview)); + } + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MODEL] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MODEL], 1, false, rlMatrixToFloat(RLGL.State.transform)); + } + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_NORMAL] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_NORMAL], 1, false, rlMatrixToFloat(rlMatrixTranspose(rlMatrixInvert(RLGL.State.transform)))); + } + + if (RLGL.ExtSupported.vao) glBindVertexArray(batch->vertexBuffer[batch->currentBuffer].vaoId); + else + { + // Bind vertex attrib: position (shader-location = 0) + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[0]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION], 3, GL_FLOAT, 0, 0, 0); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION]); + + // Bind vertex attrib: texcoord (shader-location = 1) + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[1]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01], 2, GL_FLOAT, 0, 0, 0); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01]); + + // Bind vertex attrib: normal (shader-location = 2) + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[2]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL], 3, GL_FLOAT, 0, 0, 0); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL]); + + // Bind vertex attrib: color (shader-location = 3) + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[3]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR], 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR]); + + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[4]); + } + + // Setup some default shader values + glUniform4f(RLGL.State.currentShaderLocs[RL_SHADER_LOC_COLOR_DIFFUSE], 1.0f, 1.0f, 1.0f, 1.0f); + glUniform1i(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MAP_DIFFUSE], 0); // Active default sampler2D: texture0 + + // Activate additional sampler textures + // Those additional textures will be common for all draw calls of the batch + for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) + { + if (RLGL.State.activeTextureId[i] > 0) + { + glActiveTexture(GL_TEXTURE0 + 1 + i); + glBindTexture(GL_TEXTURE_2D, RLGL.State.activeTextureId[i]); + } + } + + // Activate default sampler2D texture0 (one texture is always active for default batch shader) + // NOTE: Batch system accumulates calls by texture0 changes, additional textures are enabled for all the draw calls + glActiveTexture(GL_TEXTURE0); + + for (int i = 0, vertexOffset = 0; i < batch->drawCounter; i++) + { + // Bind current draw call texture, activated as GL_TEXTURE0 and Bound to sampler2D texture0 by default + glBindTexture(GL_TEXTURE_2D, batch->draws[i].textureId); + + if ((batch->draws[i].mode == RL_LINES) || (batch->draws[i].mode == RL_TRIANGLES)) glDrawArrays(batch->draws[i].mode, vertexOffset, batch->draws[i].vertexCount); + else + { + #if defined(GRAPHICS_API_OPENGL_33) + // We need to define the number of indices to be processed: elementCount*6 + // NOTE: The final parameter tells the GPU the offset in bytes from the + // start of the index buffer to the location of the first index to process + glDrawElements(GL_TRIANGLES, batch->draws[i].vertexCount/4*6, GL_UNSIGNED_INT, (GLvoid *)(vertexOffset/4*6*sizeof(GLuint))); + #endif + #if defined(GRAPHICS_API_OPENGL_ES2) + glDrawElements(GL_TRIANGLES, batch->draws[i].vertexCount/4*6, GL_UNSIGNED_SHORT, (GLvoid *)(vertexOffset/4*6*sizeof(GLushort))); + #endif + } + + vertexOffset += (batch->draws[i].vertexCount + batch->draws[i].vertexAlignment); + } + + if (!RLGL.ExtSupported.vao) + { + glBindBuffer(GL_ARRAY_BUFFER, 0); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); + } + + glBindTexture(GL_TEXTURE_2D, 0); // Unbind textures + } + + if (RLGL.ExtSupported.vao) glBindVertexArray(0); // Unbind VAO + + glUseProgram(0); // Unbind shader program + } + + // Restore viewport to default measures + if (eyeCount == 2) rlViewport(0, 0, RLGL.State.framebufferWidth, RLGL.State.framebufferHeight); + //------------------------------------------------------------------------------------------------------------ + + // Reset batch buffers + //------------------------------------------------------------------------------------------------------------ + // Reset vertex counter for next frame + RLGL.State.vertexCounter = 0; + + // Reset depth for next draw + batch->currentDepth = -1.0f; + + // Restore projection/modelview matrices + RLGL.State.projection = matProjection; + RLGL.State.modelview = matModelView; + + // Reset RLGL.currentBatch->draws array + for (int i = 0; i < RL_DEFAULT_BATCH_DRAWCALLS; i++) + { + batch->draws[i].mode = RL_QUADS; + batch->draws[i].vertexCount = 0; + batch->draws[i].textureId = RLGL.State.defaultTextureId; + } + + // Reset active texture units for next batch + for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) RLGL.State.activeTextureId[i] = 0; + + // Reset draws counter to one draw for the batch + batch->drawCounter = 1; + //------------------------------------------------------------------------------------------------------------ + + // Change to next buffer in the list (in case of multi-buffering) + batch->currentBuffer++; + if (batch->currentBuffer >= batch->bufferCount) batch->currentBuffer = 0; +#endif +} + +// Set the active render batch for rlgl +void rlSetRenderBatchActive(rlRenderBatch *batch) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + rlDrawRenderBatch(RLGL.currentBatch); + + if (batch != NULL) RLGL.currentBatch = batch; + else RLGL.currentBatch = &RLGL.defaultBatch; +#endif +} + +// Update and draw internal render batch +void rlDrawRenderBatchActive(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + rlDrawRenderBatch(RLGL.currentBatch); // NOTE: Stereo rendering is checked inside +#endif +} + +// Check internal buffer overflow for a given number of vertex +// and force a rlRenderBatch draw call if required +bool rlCheckRenderBatchLimit(int vCount) +{ + bool overflow = false; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if ((RLGL.State.vertexCounter + vCount) >= + (RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4)) + { + overflow = true; + + // Store current primitive drawing mode and texture id + int currentMode = RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode; + int currentTexture = RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId; + + rlDrawRenderBatch(RLGL.currentBatch); // NOTE: Stereo rendering is checked inside + + // Restore state of last batch so we can continue adding vertices + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode = currentMode; + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = currentTexture; + } +#endif + + return overflow; +} + +// Textures data management +//----------------------------------------------------------------------------------------- +// Convert image data to OpenGL texture (returns OpenGL valid Id) +unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipmapCount) +{ + unsigned int id = 0; + + glBindTexture(GL_TEXTURE_2D, 0); // Free any old binding + + // Check texture format support by OpenGL 1.1 (compressed textures not supported) +#if defined(GRAPHICS_API_OPENGL_11) + if (format >= RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) + { + TRACELOG(RL_LOG_WARNING, "GL: OpenGL 1.1 does not support GPU compressed texture formats"); + return id; + } +#else + if ((!RLGL.ExtSupported.texCompDXT) && ((format == RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA) || + (format == RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA) || (format == RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA))) + { + TRACELOG(RL_LOG_WARNING, "GL: DXT compressed texture format not supported"); + return id; + } +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if ((!RLGL.ExtSupported.texCompETC1) && (format == RL_PIXELFORMAT_COMPRESSED_ETC1_RGB)) + { + TRACELOG(RL_LOG_WARNING, "GL: ETC1 compressed texture format not supported"); + return id; + } + + if ((!RLGL.ExtSupported.texCompETC2) && ((format == RL_PIXELFORMAT_COMPRESSED_ETC2_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA))) + { + TRACELOG(RL_LOG_WARNING, "GL: ETC2 compressed texture format not supported"); + return id; + } + + if ((!RLGL.ExtSupported.texCompPVRT) && ((format == RL_PIXELFORMAT_COMPRESSED_PVRT_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA))) + { + TRACELOG(RL_LOG_WARNING, "GL: PVRT compressed texture format not supported"); + return id; + } + + if ((!RLGL.ExtSupported.texCompASTC) && ((format == RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA) || (format == RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA))) + { + TRACELOG(RL_LOG_WARNING, "GL: ASTC compressed texture format not supported"); + return id; + } +#endif +#endif // GRAPHICS_API_OPENGL_11 + + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + + glGenTextures(1, &id); // Generate texture id + + glBindTexture(GL_TEXTURE_2D, id); + + int mipWidth = width; + int mipHeight = height; + int mipOffset = 0; // Mipmap data offset, only used for tracelog + + // NOTE: Added pointer math separately from function to avoid UBSAN complaining + unsigned char *dataPtr = NULL; + if (data != NULL) dataPtr = (unsigned char *)data; + + // Load the different mipmap levels + for (int i = 0; i < mipmapCount; i++) + { + unsigned int mipSize = rlGetPixelDataSize(mipWidth, mipHeight, format); + + unsigned int glInternalFormat, glFormat, glType; + rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); + + TRACELOGD("TEXTURE: Load mipmap level %i (%i x %i), size: %i, offset: %i", i, mipWidth, mipHeight, mipSize, mipOffset); + + if (glInternalFormat != 0) + { + if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) glTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, glFormat, glType, dataPtr); +#if !defined(GRAPHICS_API_OPENGL_11) + else glCompressedTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, mipSize, dataPtr); +#endif + +#if defined(GRAPHICS_API_OPENGL_33) + if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) + { + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ONE }; + glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); + } + else if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA) + { +#if defined(GRAPHICS_API_OPENGL_21) + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ALPHA }; +#elif defined(GRAPHICS_API_OPENGL_33) + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_GREEN }; +#endif + glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); + } +#endif + } + + mipWidth /= 2; + mipHeight /= 2; + mipOffset += mipSize; // Increment offset position to next mipmap + if (data != NULL) dataPtr += mipSize; // Increment data pointer to next mipmap + + // Security check for NPOT textures + if (mipWidth < 1) mipWidth = 1; + if (mipHeight < 1) mipHeight = 1; + } + + // Texture parameters configuration + // NOTE: glTexParameteri does NOT affect texture uploading, just the way it's used +#if defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: OpenGL ES 2.0 with no GL_OES_texture_npot support (i.e. WebGL) has limited NPOT support, so CLAMP_TO_EDGE must be used + if (RLGL.ExtSupported.texNPOT) + { + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); // Set texture to repeat on x-axis + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); // Set texture to repeat on y-axis + } + else + { + // NOTE: If using negative texture coordinates (LoadOBJ()), it does not work! + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); // Set texture to clamp on x-axis + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); // Set texture to clamp on y-axis + } +#else + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); // Set texture to repeat on x-axis + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); // Set texture to repeat on y-axis +#endif + + // Magnification and minification filters + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); // Alternative: GL_LINEAR + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); // Alternative: GL_LINEAR + +#if defined(GRAPHICS_API_OPENGL_33) + if (mipmapCount > 1) + { + // Activate Trilinear filtering if mipmaps are available + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); + } +#endif + + // At this point we have the texture loaded in GPU and texture parameters configured + + // NOTE: If mipmaps were not in data, they are not generated automatically + + // Unbind current texture + glBindTexture(GL_TEXTURE_2D, 0); + + if (id > 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Texture loaded successfully (%ix%i | %s | %i mipmaps)", id, width, height, rlGetPixelFormatName(format), mipmapCount); + else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load texture"); + + return id; +} + +// Load depth texture/renderbuffer (to be attached to fbo) +// WARNING: OpenGL ES 2.0 requires GL_OES_depth_texture and WebGL requires WEBGL_depth_texture extensions +unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer) +{ + unsigned int id = 0; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // In case depth textures not supported, we force renderbuffer usage + if (!RLGL.ExtSupported.texDepth) useRenderBuffer = true; + + // NOTE: We let the implementation to choose the best bit-depth + // Possible formats: GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32 and GL_DEPTH_COMPONENT32F + unsigned int glInternalFormat = GL_DEPTH_COMPONENT; + +#if (defined(GRAPHICS_API_OPENGL_ES2) || defined(GRAPHICS_API_OPENGL_ES3)) + // WARNING: WebGL platform requires unsized internal format definition (GL_DEPTH_COMPONENT) + // while other platforms using OpenGL ES 2.0 require/support sized internal formats depending on the GPU capabilities + if (!RLGL.ExtSupported.texDepthWebGL || useRenderBuffer) + { + if (RLGL.ExtSupported.maxDepthBits == 32) glInternalFormat = GL_DEPTH_COMPONENT32_OES; + else if (RLGL.ExtSupported.maxDepthBits == 24) glInternalFormat = GL_DEPTH_COMPONENT24_OES; + else glInternalFormat = GL_DEPTH_COMPONENT16; + } +#endif + + if (!useRenderBuffer && RLGL.ExtSupported.texDepth) + { + glGenTextures(1, &id); + glBindTexture(GL_TEXTURE_2D, id); + glTexImage2D(GL_TEXTURE_2D, 0, glInternalFormat, width, height, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, NULL); + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + + glBindTexture(GL_TEXTURE_2D, 0); + + TRACELOG(RL_LOG_INFO, "TEXTURE: Depth texture loaded successfully"); + } + else + { + // Create the renderbuffer that will serve as the depth attachment for the framebuffer + // NOTE: A renderbuffer is simpler than a texture and could offer better performance on embedded devices + glGenRenderbuffers(1, &id); + glBindRenderbuffer(GL_RENDERBUFFER, id); + glRenderbufferStorage(GL_RENDERBUFFER, glInternalFormat, width, height); + + glBindRenderbuffer(GL_RENDERBUFFER, 0); + + TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Depth renderbuffer loaded successfully (%i bits)", id, (RLGL.ExtSupported.maxDepthBits >= 24)? RLGL.ExtSupported.maxDepthBits : 16); + } +#endif + + return id; +} + +// Load texture cubemap +// NOTE: Cubemap data is expected to be 6 images in a single data array (one after the other), +// expected the following convention: +X, -X, +Y, -Y, +Z, -Z +unsigned int rlLoadTextureCubemap(const void *data, int size, int format, int mipmapCount) +{ + unsigned int id = 0; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + int mipSize = size; + + // NOTE: Added pointer math separately from function to avoid UBSAN complaining + unsigned char *dataPtr = NULL; + if (data != NULL) dataPtr = (unsigned char *)data; + + unsigned int dataSize = rlGetPixelDataSize(size, size, format); + + glGenTextures(1, &id); + glBindTexture(GL_TEXTURE_CUBE_MAP, id); + + unsigned int glInternalFormat, glFormat, glType; + rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); + + if (glInternalFormat != 0) + { + // Load cubemap faces/mipmaps + for (int i = 0; i < 6*mipmapCount; i++) + { + int mipmapLevel = i/6; + int face = i%6; + + if (data == NULL) + { + if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) + { + if ((format == RL_PIXELFORMAT_UNCOMPRESSED_R32) || + (format == RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32) || + (format == RL_PIXELFORMAT_UNCOMPRESSED_R16) || + (format == RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16)) TRACELOG(RL_LOG_WARNING, "TEXTURES: Cubemap requested format not supported"); + else glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, glFormat, glType, NULL); + } + else TRACELOG(RL_LOG_WARNING, "TEXTURES: Empty cubemap creation does not support compressed format"); + } + else + { + if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, glFormat, glType, (unsigned char *)dataPtr + face*dataSize); + else glCompressedTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, dataSize, (unsigned char *)dataPtr + face*dataSize); + } + +#if defined(GRAPHICS_API_OPENGL_33) + if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) + { + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ONE }; + glTexParameteriv(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); + } + else if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA) + { +#if defined(GRAPHICS_API_OPENGL_21) + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ALPHA }; +#elif defined(GRAPHICS_API_OPENGL_33) + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_GREEN }; +#endif + glTexParameteriv(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); + } +#endif + if (face == 5) + { + mipSize /= 2; + if (data != NULL) dataPtr += dataSize*6; // Increment data pointer to next mipmap + + // Security check for NPOT textures + if (mipSize < 1) mipSize = 1; + + dataSize = rlGetPixelDataSize(mipSize, mipSize, format); + } + } + } + + // Set cubemap texture sampling parameters + if (mipmapCount > 1) glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); + else glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + + glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); +#if defined(GRAPHICS_API_OPENGL_33) + glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE); // Flag not supported on OpenGL ES 2.0 +#endif + + glBindTexture(GL_TEXTURE_CUBE_MAP, 0); +#endif + + if (id > 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Cubemap texture loaded successfully (%ix%i)", id, size, size); + else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load cubemap texture"); + + return id; +} + +// Update already loaded texture in GPU with new data +// NOTE: We don't know safely if internal texture format is the expected one... +void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data) +{ + glBindTexture(GL_TEXTURE_2D, id); + + unsigned int glInternalFormat, glFormat, glType; + rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); + + if ((glInternalFormat != 0) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)) + { + glTexSubImage2D(GL_TEXTURE_2D, 0, offsetX, offsetY, width, height, glFormat, glType, data); + } + else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Failed to update for current texture format (%i)", id, format); +} + +// Get OpenGL internal formats and data type from raylib PixelFormat +void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType) +{ + *glInternalFormat = 0; + *glFormat = 0; + *glType = 0; + + switch (format) + { + #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_21) || defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: on OpenGL ES 2.0 (WebGL), internalFormat must match format and options allowed are: GL_LUMINANCE, GL_RGB, GL_RGBA + case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: *glInternalFormat = GL_LUMINANCE_ALPHA; *glFormat = GL_LUMINANCE_ALPHA; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_UNSIGNED_SHORT_5_6_5; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_5_5_5_1; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_4_4_4_4; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_BYTE; break; + #if !defined(GRAPHICS_API_OPENGL_11) + #if defined(GRAPHICS_API_OPENGL_ES3) + case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_R32F_EXT; *glFormat = GL_RED_EXT; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB32F_EXT; *glFormat = GL_RGB; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA32F_EXT; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_R16F_EXT; *glFormat = GL_RED_EXT; *glType = GL_HALF_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB16F_EXT; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA16F_EXT; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT; break; + #else + case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float + #if defined(GRAPHICS_API_OPENGL_21) + case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_HALF_FLOAT_ARB; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT_ARB; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT_ARB; break; + #else // defined(GRAPHICS_API_OPENGL_ES2) + case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float + #endif + #endif + #endif + #elif defined(GRAPHICS_API_OPENGL_33) + case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: *glInternalFormat = GL_R8; *glFormat = GL_RED; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: *glInternalFormat = GL_RG8; *glFormat = GL_RG; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: *glInternalFormat = GL_RGB565; *glFormat = GL_RGB; *glType = GL_UNSIGNED_SHORT_5_6_5; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: *glInternalFormat = GL_RGB8; *glFormat = GL_RGB; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: *glInternalFormat = GL_RGB5_A1; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_5_5_5_1; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: *glInternalFormat = GL_RGBA4; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_4_4_4_4; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: *glInternalFormat = GL_RGBA8; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_R32F; *glFormat = GL_RED; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB32F; *glFormat = GL_RGB; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA32F; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_R16F; *glFormat = GL_RED; *glType = GL_HALF_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB16F; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA16F; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT; break; + #endif + #if !defined(GRAPHICS_API_OPENGL_11) + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGB_S3TC_DXT1_EXT; break; + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT; break; + case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT; break; + case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT; break; + case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: if (RLGL.ExtSupported.texCompETC1) *glInternalFormat = GL_ETC1_RGB8_OES; break; // NOTE: Requires OpenGL ES 2.0 or OpenGL 4.3 + case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: if (RLGL.ExtSupported.texCompETC2) *glInternalFormat = GL_COMPRESSED_RGB8_ETC2; break; // NOTE: Requires OpenGL ES 3.0 or OpenGL 4.3 + case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: if (RLGL.ExtSupported.texCompETC2) *glInternalFormat = GL_COMPRESSED_RGBA8_ETC2_EAC; break; // NOTE: Requires OpenGL ES 3.0 or OpenGL 4.3 + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: if (RLGL.ExtSupported.texCompPVRT) *glInternalFormat = GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG; break; // NOTE: Requires PowerVR GPU + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: if (RLGL.ExtSupported.texCompPVRT) *glInternalFormat = GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; break; // NOTE: Requires PowerVR GPU + case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: if (RLGL.ExtSupported.texCompASTC) *glInternalFormat = GL_COMPRESSED_RGBA_ASTC_4x4_KHR; break; // NOTE: Requires OpenGL ES 3.1 or OpenGL 4.3 + case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: if (RLGL.ExtSupported.texCompASTC) *glInternalFormat = GL_COMPRESSED_RGBA_ASTC_8x8_KHR; break; // NOTE: Requires OpenGL ES 3.1 or OpenGL 4.3 + #endif + default: TRACELOG(RL_LOG_WARNING, "TEXTURE: Current format not supported (%i)", format); break; + } +} + +// Unload texture from GPU memory +void rlUnloadTexture(unsigned int id) +{ + glDeleteTextures(1, &id); +} + +// Generate mipmap data for selected texture +// NOTE: Only supports GPU mipmap generation +void rlGenTextureMipmaps(unsigned int id, int width, int height, int format, int *mipmaps) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindTexture(GL_TEXTURE_2D, id); + + // Check if texture is power-of-two (POT) + bool texIsPOT = false; + + if (((width > 0) && ((width & (width - 1)) == 0)) && + ((height > 0) && ((height & (height - 1)) == 0))) texIsPOT = true; + + if ((texIsPOT) || (RLGL.ExtSupported.texNPOT)) + { + //glHint(GL_GENERATE_MIPMAP_HINT, GL_DONT_CARE); // Hint for mipmaps generation algorithm: GL_FASTEST, GL_NICEST, GL_DONT_CARE + glGenerateMipmap(GL_TEXTURE_2D); // Generate mipmaps automatically + + #define MIN(a,b) (((a)<(b))? (a):(b)) + #define MAX(a,b) (((a)>(b))? (a):(b)) + + *mipmaps = 1 + (int)floor(log(MAX(width, height))/log(2)); + TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Mipmaps generated automatically, total: %i", id, *mipmaps); + } + else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Failed to generate mipmaps", id); + + glBindTexture(GL_TEXTURE_2D, 0); +#else + TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] GPU mipmap generation not supported", id); +#endif +} + +// Read texture pixel data +void *rlReadTexturePixels(unsigned int id, int width, int height, int format) +{ + void *pixels = NULL; + +#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + glBindTexture(GL_TEXTURE_2D, id); + + // NOTE: Using texture id, we can retrieve some texture info (but not on OpenGL ES 2.0) + // Possible texture info: GL_TEXTURE_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE + //int width, height, format; + //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &width); + //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &height); + //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_INTERNAL_FORMAT, &format); + + // NOTE: Each row written to or read from by OpenGL pixel operations like glGetTexImage are aligned to a 4 byte boundary by default, which may add some padding + // Use glPixelStorei to modify padding with the GL_[UN]PACK_ALIGNMENT setting + // GL_PACK_ALIGNMENT affects operations that read from OpenGL memory (glReadPixels, glGetTexImage, etc.) + // GL_UNPACK_ALIGNMENT affects operations that write to OpenGL memory (glTexImage, etc.) + glPixelStorei(GL_PACK_ALIGNMENT, 1); + + unsigned int glInternalFormat, glFormat, glType; + rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); + unsigned int size = rlGetPixelDataSize(width, height, format); + + if ((glInternalFormat != 0) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)) + { + pixels = RL_MALLOC(size); + glGetTexImage(GL_TEXTURE_2D, 0, glFormat, glType, pixels); + } + else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Data retrieval not suported for pixel format (%i)", id, format); + + glBindTexture(GL_TEXTURE_2D, 0); +#endif + +#if defined(GRAPHICS_API_OPENGL_ES2) + // glGetTexImage() is not available on OpenGL ES 2.0 + // Texture width and height are required on OpenGL ES 2.0, there is no way to get it from texture id + // Two possible Options: + // 1 - Bind texture to color fbo attachment and glReadPixels() + // 2 - Create an fbo, activate it, render quad with texture, glReadPixels() + // We are using Option 1, just need to care for texture format on retrieval + // NOTE: This behaviour could be conditioned by graphic driver... + unsigned int fboId = rlLoadFramebuffer(); + + glBindFramebuffer(GL_FRAMEBUFFER, fboId); + glBindTexture(GL_TEXTURE_2D, 0); + + // Attach our texture to FBO + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, id, 0); + + // We read data as RGBA because FBO texture is configured as RGBA, despite binding another texture format + pixels = (unsigned char *)RL_MALLOC(rlGetPixelDataSize(width, height, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8)); + glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, pixels); + + glBindFramebuffer(GL_FRAMEBUFFER, 0); + + // Clean up temporal fbo + rlUnloadFramebuffer(fboId); +#endif + + return pixels; +} + +// Read screen pixel data (color buffer) +unsigned char *rlReadScreenPixels(int width, int height) +{ + unsigned char *screenData = (unsigned char *)RL_CALLOC(width*height*4, sizeof(unsigned char)); + + // NOTE 1: glReadPixels returns image flipped vertically -> (0,0) is the bottom left corner of the framebuffer + // NOTE 2: We are getting alpha channel! Be careful, it can be transparent if not cleared properly! + glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, screenData); + + // Flip image vertically! + unsigned char *imgData = (unsigned char *)RL_MALLOC(width*height*4*sizeof(unsigned char)); + + for (int y = height - 1; y >= 0; y--) + { + for (int x = 0; x < (width*4); x++) + { + imgData[((height - 1) - y)*width*4 + x] = screenData[(y*width*4) + x]; // Flip line + + // Set alpha component value to 255 (no trasparent image retrieval) + // NOTE: Alpha value has already been applied to RGB in framebuffer, we don't need it! + if (((x + 1)%4) == 0) imgData[((height - 1) - y)*width*4 + x] = 255; + } + } + + RL_FREE(screenData); + + return imgData; // NOTE: image data should be freed +} + +// Framebuffer management (fbo) +//----------------------------------------------------------------------------------------- +// Load a framebuffer to be used for rendering +// NOTE: No textures attached +unsigned int rlLoadFramebuffer(void) +{ + unsigned int fboId = 0; + +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) + glGenFramebuffers(1, &fboId); // Create the framebuffer object + glBindFramebuffer(GL_FRAMEBUFFER, 0); // Unbind any framebuffer +#endif + + return fboId; +} + +// Attach color buffer texture to an fbo (unloads previous attachment) +// NOTE: Attach type: 0-Color, 1-Depth renderbuffer, 2-Depth texture +void rlFramebufferAttach(unsigned int fboId, unsigned int texId, int attachType, int texType, int mipLevel) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) + glBindFramebuffer(GL_FRAMEBUFFER, fboId); + + switch (attachType) + { + case RL_ATTACHMENT_COLOR_CHANNEL0: + case RL_ATTACHMENT_COLOR_CHANNEL1: + case RL_ATTACHMENT_COLOR_CHANNEL2: + case RL_ATTACHMENT_COLOR_CHANNEL3: + case RL_ATTACHMENT_COLOR_CHANNEL4: + case RL_ATTACHMENT_COLOR_CHANNEL5: + case RL_ATTACHMENT_COLOR_CHANNEL6: + case RL_ATTACHMENT_COLOR_CHANNEL7: + { + if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_TEXTURE_2D, texId, mipLevel); + else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_RENDERBUFFER, texId); + else if (texType >= RL_ATTACHMENT_CUBEMAP_POSITIVE_X) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_TEXTURE_CUBE_MAP_POSITIVE_X + texType, texId, mipLevel); + + } break; + case RL_ATTACHMENT_DEPTH: + { + if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, texId, mipLevel); + else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, texId); + + } break; + case RL_ATTACHMENT_STENCIL: + { + if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D, texId, mipLevel); + else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, texId); + + } break; + default: break; + } + + glBindFramebuffer(GL_FRAMEBUFFER, 0); +#endif +} + +// Verify render texture is complete +bool rlFramebufferComplete(unsigned int id) +{ + bool result = false; + +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) + glBindFramebuffer(GL_FRAMEBUFFER, id); + + GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); + + if (status != GL_FRAMEBUFFER_COMPLETE) + { + switch (status) + { + case GL_FRAMEBUFFER_UNSUPPORTED: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer is unsupported", id); break; + case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has incomplete attachment", id); break; +#if defined(GRAPHICS_API_OPENGL_ES2) + case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has incomplete dimensions", id); break; +#endif + case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has a missing attachment", id); break; + default: break; + } + } + + glBindFramebuffer(GL_FRAMEBUFFER, 0); + + result = (status == GL_FRAMEBUFFER_COMPLETE); +#endif + + return result; +} + +// Unload framebuffer from GPU memory +// NOTE: All attached textures/cubemaps/renderbuffers are also deleted +void rlUnloadFramebuffer(unsigned int id) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) + // Query depth attachment to automatically delete texture/renderbuffer + int depthType = 0, depthId = 0; + glBindFramebuffer(GL_FRAMEBUFFER, id); // Bind framebuffer to query depth texture type + glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &depthType); + + // TODO: Review warning retrieving object name in WebGL + // WARNING: WebGL: INVALID_ENUM: getFramebufferAttachmentParameter: invalid parameter name + // https://registry.khronos.org/webgl/specs/latest/1.0/ + glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, &depthId); + + unsigned int depthIdU = (unsigned int)depthId; + if (depthType == GL_RENDERBUFFER) glDeleteRenderbuffers(1, &depthIdU); + else if (depthType == GL_TEXTURE) glDeleteTextures(1, &depthIdU); + + // NOTE: If a texture object is deleted while its image is attached to the *currently bound* framebuffer, + // the texture image is automatically detached from the currently bound framebuffer + + glBindFramebuffer(GL_FRAMEBUFFER, 0); + glDeleteFramebuffers(1, &id); + + TRACELOG(RL_LOG_INFO, "FBO: [ID %i] Unloaded framebuffer from VRAM (GPU)", id); +#endif +} + +// Vertex data management +//----------------------------------------------------------------------------------------- +// Load a new attributes buffer +unsigned int rlLoadVertexBuffer(const void *buffer, int size, bool dynamic) +{ + unsigned int id = 0; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glGenBuffers(1, &id); + glBindBuffer(GL_ARRAY_BUFFER, id); + glBufferData(GL_ARRAY_BUFFER, size, buffer, dynamic? GL_DYNAMIC_DRAW : GL_STATIC_DRAW); +#endif + + return id; +} + +// Load a new attributes element buffer +unsigned int rlLoadVertexBufferElement(const void *buffer, int size, bool dynamic) +{ + unsigned int id = 0; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glGenBuffers(1, &id); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, size, buffer, dynamic? GL_DYNAMIC_DRAW : GL_STATIC_DRAW); +#endif + + return id; +} + +// Enable vertex buffer (VBO) +void rlEnableVertexBuffer(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ARRAY_BUFFER, id); +#endif +} + +// Disable vertex buffer (VBO) +void rlDisableVertexBuffer(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ARRAY_BUFFER, 0); +#endif +} + +// Enable vertex buffer element (VBO element) +void rlEnableVertexBufferElement(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); +#endif +} + +// Disable vertex buffer element (VBO element) +void rlDisableVertexBufferElement(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); +#endif +} + +// Update vertex buffer with new data +// NOTE: dataSize and offset must be provided in bytes +void rlUpdateVertexBuffer(unsigned int id, const void *data, int dataSize, int offset) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ARRAY_BUFFER, id); + glBufferSubData(GL_ARRAY_BUFFER, offset, dataSize, data); +#endif +} + +// Update vertex buffer elements with new data +// NOTE: dataSize and offset must be provided in bytes +void rlUpdateVertexBufferElements(unsigned int id, const void *data, int dataSize, int offset) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); + glBufferSubData(GL_ELEMENT_ARRAY_BUFFER, offset, dataSize, data); +#endif +} + +// Enable vertex array object (VAO) +bool rlEnableVertexArray(unsigned int vaoId) +{ + bool result = false; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if (RLGL.ExtSupported.vao) + { + glBindVertexArray(vaoId); + result = true; + } +#endif + return result; +} + +// Disable vertex array object (VAO) +void rlDisableVertexArray(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if (RLGL.ExtSupported.vao) glBindVertexArray(0); +#endif +} + +// Enable vertex attribute index +void rlEnableVertexAttribute(unsigned int index) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glEnableVertexAttribArray(index); +#endif +} + +// Disable vertex attribute index +void rlDisableVertexAttribute(unsigned int index) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glDisableVertexAttribArray(index); +#endif +} + +// Draw vertex array +void rlDrawVertexArray(int offset, int count) +{ + glDrawArrays(GL_TRIANGLES, offset, count); +} + +// Draw vertex array elements +void rlDrawVertexArrayElements(int offset, int count, const void *buffer) +{ + // NOTE: Added pointer math separately from function to avoid UBSAN complaining + unsigned short *bufferPtr = (unsigned short *)buffer; + if (offset > 0) bufferPtr += offset; + + glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)bufferPtr); +} + +// Draw vertex array instanced +void rlDrawVertexArrayInstanced(int offset, int count, int instances) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glDrawArraysInstanced(GL_TRIANGLES, 0, count, instances); +#endif +} + +// Draw vertex array elements instanced +void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffer, int instances) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: Added pointer math separately from function to avoid UBSAN complaining + unsigned short *bufferPtr = (unsigned short *)buffer; + if (offset > 0) bufferPtr += offset; + + glDrawElementsInstanced(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)bufferPtr, instances); +#endif +} + +#if defined(GRAPHICS_API_OPENGL_11) +// Enable vertex state pointer +void rlEnableStatePointer(int vertexAttribType, void *buffer) +{ + if (buffer != NULL) glEnableClientState(vertexAttribType); + switch (vertexAttribType) + { + case GL_VERTEX_ARRAY: glVertexPointer(3, GL_FLOAT, 0, buffer); break; + case GL_TEXTURE_COORD_ARRAY: glTexCoordPointer(2, GL_FLOAT, 0, buffer); break; + case GL_NORMAL_ARRAY: if (buffer != NULL) glNormalPointer(GL_FLOAT, 0, buffer); break; + case GL_COLOR_ARRAY: if (buffer != NULL) glColorPointer(4, GL_UNSIGNED_BYTE, 0, buffer); break; + //case GL_INDEX_ARRAY: if (buffer != NULL) glIndexPointer(GL_SHORT, 0, buffer); break; // Indexed colors + default: break; + } +} + +// Disable vertex state pointer +void rlDisableStatePointer(int vertexAttribType) +{ + glDisableClientState(vertexAttribType); +} +#endif + +// Load vertex array object (VAO) +unsigned int rlLoadVertexArray(void) +{ + unsigned int vaoId = 0; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if (RLGL.ExtSupported.vao) + { + glGenVertexArrays(1, &vaoId); + } +#endif + return vaoId; +} + +// Set vertex attribute +void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, int offset) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: Data type could be: GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT + // Additional types (depends on OpenGL version or extensions): + // - GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, + // - GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_10F_11F_11F_REV + + size_t offsetNative = offset; + glVertexAttribPointer(index, compSize, type, normalized, stride, (void *)offsetNative); +#endif +} + +// Set vertex attribute divisor +void rlSetVertexAttributeDivisor(unsigned int index, int divisor) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glVertexAttribDivisor(index, divisor); +#endif +} + +// Unload vertex array object (VAO) +void rlUnloadVertexArray(unsigned int vaoId) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if (RLGL.ExtSupported.vao) + { + glBindVertexArray(0); + glDeleteVertexArrays(1, &vaoId); + TRACELOG(RL_LOG_INFO, "VAO: [ID %i] Unloaded vertex array data from VRAM (GPU)", vaoId); + } +#endif +} + +// Unload vertex buffer (VBO) +void rlUnloadVertexBuffer(unsigned int vboId) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glDeleteBuffers(1, &vboId); + //TRACELOG(RL_LOG_INFO, "VBO: Unloaded vertex data from VRAM (GPU)"); +#endif +} + +// Shaders management +//----------------------------------------------------------------------------------------------- +// Load shader from code strings +// NOTE: If shader string is NULL, using default vertex/fragment shaders +unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode) +{ + unsigned int id = 0; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + unsigned int vertexShaderId = 0; + unsigned int fragmentShaderId = 0; + + // Compile vertex shader (if provided) + // NOTE: If not vertex shader is provided, use default one + if (vsCode != NULL) vertexShaderId = rlCompileShader(vsCode, GL_VERTEX_SHADER); + else vertexShaderId = RLGL.State.defaultVShaderId; + + // Compile fragment shader (if provided) + // NOTE: If not vertex shader is provided, use default one + if (fsCode != NULL) fragmentShaderId = rlCompileShader(fsCode, GL_FRAGMENT_SHADER); + else fragmentShaderId = RLGL.State.defaultFShaderId; + + // In case vertex and fragment shader are the default ones, no need to recompile, we can just assign the default shader program id + if ((vertexShaderId == RLGL.State.defaultVShaderId) && (fragmentShaderId == RLGL.State.defaultFShaderId)) id = RLGL.State.defaultShaderId; + else if ((vertexShaderId > 0) && (fragmentShaderId > 0)) + { + // One of or both shader are new, we need to compile a new shader program + id = rlLoadShaderProgram(vertexShaderId, fragmentShaderId); + + // We can detach and delete vertex/fragment shaders (if not default ones) + // NOTE: We detach shader before deletion to make sure memory is freed + if (vertexShaderId != RLGL.State.defaultVShaderId) + { + // WARNING: Shader program linkage could fail and returned id is 0 + if (id > 0) glDetachShader(id, vertexShaderId); + glDeleteShader(vertexShaderId); + } + if (fragmentShaderId != RLGL.State.defaultFShaderId) + { + // WARNING: Shader program linkage could fail and returned id is 0 + if (id > 0) glDetachShader(id, fragmentShaderId); + glDeleteShader(fragmentShaderId); + } + + // In case shader program loading failed, we assign default shader + if (id == 0) + { + // In case shader loading fails, we return the default shader + TRACELOG(RL_LOG_WARNING, "SHADER: Failed to load custom shader code, using default shader"); + id = RLGL.State.defaultShaderId; + } + /* + else + { + // Get available shader uniforms + // NOTE: This information is useful for debug... + int uniformCount = -1; + glGetProgramiv(id, GL_ACTIVE_UNIFORMS, &uniformCount); + + for (int i = 0; i < uniformCount; i++) + { + int namelen = -1; + int num = -1; + char name[256] = { 0 }; // Assume no variable names longer than 256 + GLenum type = GL_ZERO; + + // Get the name of the uniforms + glGetActiveUniform(id, i, sizeof(name) - 1, &namelen, &num, &type, name); + + name[namelen] = 0; + TRACELOGD("SHADER: [ID %i] Active uniform (%s) set at location: %i", id, name, glGetUniformLocation(id, name)); + } + } + */ + } +#endif + + return id; +} + +// Compile custom shader and return shader id +unsigned int rlCompileShader(const char *shaderCode, int type) +{ + unsigned int shader = 0; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + shader = glCreateShader(type); + glShaderSource(shader, 1, &shaderCode, NULL); + + GLint success = 0; + glCompileShader(shader); + glGetShaderiv(shader, GL_COMPILE_STATUS, &success); + + if (success == GL_FALSE) + { + switch (type) + { + case GL_VERTEX_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile vertex shader code", shader); break; + case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile fragment shader code", shader); break; + //case GL_GEOMETRY_SHADER: + #if defined(GRAPHICS_API_OPENGL_43) + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile compute shader code", shader); break; + #elif defined(GRAPHICS_API_OPENGL_33) + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43", shader); break; + #endif + default: break; + } + + int maxLength = 0; + glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &maxLength); + + if (maxLength > 0) + { + int length = 0; + char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); + glGetShaderInfoLog(shader, maxLength, &length, log); + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Compile error: %s", shader, log); + RL_FREE(log); + } + + shader = 0; + } + else + { + switch (type) + { + case GL_VERTEX_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Vertex shader compiled successfully", shader); break; + case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Fragment shader compiled successfully", shader); break; + //case GL_GEOMETRY_SHADER: + #if defined(GRAPHICS_API_OPENGL_43) + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader compiled successfully", shader); break; + #elif defined(GRAPHICS_API_OPENGL_33) + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43", shader); break; + #endif + default: break; + } + } +#endif + + return shader; +} + +// Load custom shader strings and return program id +unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fShaderId) +{ + unsigned int program = 0; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + GLint success = 0; + program = glCreateProgram(); + + glAttachShader(program, vShaderId); + glAttachShader(program, fShaderId); + + // NOTE: Default attribute shader locations must be Bound before linking + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL, RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR, RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT, RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2); + +#ifdef RL_SUPPORT_MESH_GPU_SKINNING + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS, RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS, RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS); +#endif + + // NOTE: If some attrib name is no found on the shader, it locations becomes -1 + + glLinkProgram(program); + + // NOTE: All uniform variables are intitialised to 0 when a program links + + glGetProgramiv(program, GL_LINK_STATUS, &success); + + if (success == GL_FALSE) + { + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to link shader program", program); + + int maxLength = 0; + glGetProgramiv(program, GL_INFO_LOG_LENGTH, &maxLength); + + if (maxLength > 0) + { + int length = 0; + char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); + glGetProgramInfoLog(program, maxLength, &length, log); + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Link error: %s", program, log); + RL_FREE(log); + } + + glDeleteProgram(program); + + program = 0; + } + else + { + // Get the size of compiled shader program (not available on OpenGL ES 2.0) + // NOTE: If GL_LINK_STATUS is GL_FALSE, program binary length is zero + //GLint binarySize = 0; + //glGetProgramiv(id, GL_PROGRAM_BINARY_LENGTH, &binarySize); + + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Program shader loaded successfully", program); + } +#endif + return program; +} + +// Unload shader program +void rlUnloadShaderProgram(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glDeleteProgram(id); + + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Unloaded shader program data from VRAM (GPU)", id); +#endif +} + +// Get shader location uniform +int rlGetLocationUniform(unsigned int shaderId, const char *uniformName) +{ + int location = -1; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + location = glGetUniformLocation(shaderId, uniformName); + + //if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader uniform: %s", shaderId, uniformName); + //else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader uniform (%s) set at location: %i", shaderId, uniformName, location); +#endif + return location; +} + +// Get shader location attribute +int rlGetLocationAttrib(unsigned int shaderId, const char *attribName) +{ + int location = -1; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + location = glGetAttribLocation(shaderId, attribName); + + //if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader attribute: %s", shaderId, attribName); + //else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader attribute (%s) set at location: %i", shaderId, attribName, location); +#endif + return location; +} + +// Set shader value uniform +void rlSetUniform(int locIndex, const void *value, int uniformType, int count) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + switch (uniformType) + { + case RL_SHADER_UNIFORM_FLOAT: glUniform1fv(locIndex, count, (float *)value); break; + case RL_SHADER_UNIFORM_VEC2: glUniform2fv(locIndex, count, (float *)value); break; + case RL_SHADER_UNIFORM_VEC3: glUniform3fv(locIndex, count, (float *)value); break; + case RL_SHADER_UNIFORM_VEC4: glUniform4fv(locIndex, count, (float *)value); break; + case RL_SHADER_UNIFORM_INT: glUniform1iv(locIndex, count, (int *)value); break; + case RL_SHADER_UNIFORM_IVEC2: glUniform2iv(locIndex, count, (int *)value); break; + case RL_SHADER_UNIFORM_IVEC3: glUniform3iv(locIndex, count, (int *)value); break; + case RL_SHADER_UNIFORM_IVEC4: glUniform4iv(locIndex, count, (int *)value); break; + #if !defined(GRAPHICS_API_OPENGL_ES2) + case RL_SHADER_UNIFORM_UINT: glUniform1uiv(locIndex, count, (unsigned int *)value); break; + case RL_SHADER_UNIFORM_UIVEC2: glUniform2uiv(locIndex, count, (unsigned int *)value); break; + case RL_SHADER_UNIFORM_UIVEC3: glUniform3uiv(locIndex, count, (unsigned int *)value); break; + case RL_SHADER_UNIFORM_UIVEC4: glUniform4uiv(locIndex, count, (unsigned int *)value); break; + #endif + case RL_SHADER_UNIFORM_SAMPLER2D: glUniform1iv(locIndex, count, (int *)value); break; + default: TRACELOG(RL_LOG_WARNING, "SHADER: Failed to set uniform value, data type not recognized"); + + // TODO: Support glUniform1uiv(), glUniform2uiv(), glUniform3uiv(), glUniform4uiv() + } +#endif +} + +// Set shader value attribute +void rlSetVertexAttributeDefault(int locIndex, const void *value, int attribType, int count) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + switch (attribType) + { + case RL_SHADER_ATTRIB_FLOAT: if (count == 1) glVertexAttrib1fv(locIndex, (float *)value); break; + case RL_SHADER_ATTRIB_VEC2: if (count == 2) glVertexAttrib2fv(locIndex, (float *)value); break; + case RL_SHADER_ATTRIB_VEC3: if (count == 3) glVertexAttrib3fv(locIndex, (float *)value); break; + case RL_SHADER_ATTRIB_VEC4: if (count == 4) glVertexAttrib4fv(locIndex, (float *)value); break; + default: TRACELOG(RL_LOG_WARNING, "SHADER: Failed to set attrib default value, data type not recognized"); + } +#endif +} + +// Set shader value uniform matrix +void rlSetUniformMatrix(int locIndex, Matrix mat) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + float matfloat[16] = { + mat.m0, mat.m1, mat.m2, mat.m3, + mat.m4, mat.m5, mat.m6, mat.m7, + mat.m8, mat.m9, mat.m10, mat.m11, + mat.m12, mat.m13, mat.m14, mat.m15 + }; + glUniformMatrix4fv(locIndex, 1, false, matfloat); +#endif +} + +// Set shader value uniform matrix +void rlSetUniformMatrices(int locIndex, const Matrix *matrices, int count) +{ +#if defined(GRAPHICS_API_OPENGL_33) + glUniformMatrix4fv(locIndex, count, true, (const float *)matrices); +#elif defined(GRAPHICS_API_OPENGL_ES2) + // WARNING: WebGL does not support Matrix transpose ("true" parameter) + // REF: https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/uniformMatrix + glUniformMatrix4fv(locIndex, count, false, (const float *)matrices); +#endif +} + +// Set shader value uniform sampler +void rlSetUniformSampler(int locIndex, unsigned int textureId) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Check if texture is already active + for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) + { + if (RLGL.State.activeTextureId[i] == textureId) + { + glUniform1i(locIndex, 1 + i); + return; + } + } + + // Register a new active texture for the internal batch system + // NOTE: Default texture is always activated as GL_TEXTURE0 + for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) + { + if (RLGL.State.activeTextureId[i] == 0) + { + glUniform1i(locIndex, 1 + i); // Activate new texture unit + RLGL.State.activeTextureId[i] = textureId; // Save texture id for binding on drawing + break; + } + } +#endif +} + +// Set shader currently active (id and locations) +void rlSetShader(unsigned int id, int *locs) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if (RLGL.State.currentShaderId != id) + { + rlDrawRenderBatch(RLGL.currentBatch); + RLGL.State.currentShaderId = id; + RLGL.State.currentShaderLocs = locs; + } +#endif +} + +// Load compute shader program +unsigned int rlLoadComputeShaderProgram(unsigned int shaderId) +{ + unsigned int program = 0; + +#if defined(GRAPHICS_API_OPENGL_43) + GLint success = 0; + program = glCreateProgram(); + glAttachShader(program, shaderId); + glLinkProgram(program); + + // NOTE: All uniform variables are intitialised to 0 when a program links + + glGetProgramiv(program, GL_LINK_STATUS, &success); + + if (success == GL_FALSE) + { + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to link compute shader program", program); + + int maxLength = 0; + glGetProgramiv(program, GL_INFO_LOG_LENGTH, &maxLength); + + if (maxLength > 0) + { + int length = 0; + char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); + glGetProgramInfoLog(program, maxLength, &length, log); + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Link error: %s", program, log); + RL_FREE(log); + } + + glDeleteProgram(program); + + program = 0; + } + else + { + // Get the size of compiled shader program (not available on OpenGL ES 2.0) + // NOTE: If GL_LINK_STATUS is GL_FALSE, program binary length is zero + //GLint binarySize = 0; + //glGetProgramiv(id, GL_PROGRAM_BINARY_LENGTH, &binarySize); + + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader program loaded successfully", program); + } +#else + TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43"); +#endif + + return program; +} + +// Dispatch compute shader (equivalent to *draw* for graphics pilepine) +void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glDispatchCompute(groupX, groupY, groupZ); +#endif +} + +// Load shader storage buffer object (SSBO) +unsigned int rlLoadShaderBuffer(unsigned int size, const void *data, int usageHint) +{ + unsigned int ssbo = 0; + +#if defined(GRAPHICS_API_OPENGL_43) + glGenBuffers(1, &ssbo); + glBindBuffer(GL_SHADER_STORAGE_BUFFER, ssbo); + glBufferData(GL_SHADER_STORAGE_BUFFER, size, data, usageHint? usageHint : RL_STREAM_COPY); + if (data == NULL) glClearBufferData(GL_SHADER_STORAGE_BUFFER, GL_R8UI, GL_RED_INTEGER, GL_UNSIGNED_BYTE, NULL); // Clear buffer data to 0 + glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0); +#else + TRACELOG(RL_LOG_WARNING, "SSBO: SSBO not enabled. Define GRAPHICS_API_OPENGL_43"); +#endif + + return ssbo; +} + +// Unload shader storage buffer object (SSBO) +void rlUnloadShaderBuffer(unsigned int ssboId) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glDeleteBuffers(1, &ssboId); +#else + TRACELOG(RL_LOG_WARNING, "SSBO: SSBO not enabled. Define GRAPHICS_API_OPENGL_43"); +#endif + +} + +// Update SSBO buffer data +void rlUpdateShaderBuffer(unsigned int id, const void *data, unsigned int dataSize, unsigned int offset) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); + glBufferSubData(GL_SHADER_STORAGE_BUFFER, offset, dataSize, data); +#endif +} + +// Get SSBO buffer size +unsigned int rlGetShaderBufferSize(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_43) + GLint64 size = 0; + glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); + glGetBufferParameteri64v(GL_SHADER_STORAGE_BUFFER, GL_BUFFER_SIZE, &size); + return (size > 0)? (unsigned int)size : 0; +#else + return 0; +#endif +} + +// Read SSBO buffer data (GPU->CPU) +void rlReadShaderBuffer(unsigned int id, void *dest, unsigned int count, unsigned int offset) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); + glGetBufferSubData(GL_SHADER_STORAGE_BUFFER, offset, count, dest); +#endif +} + +// Bind SSBO buffer +void rlBindShaderBuffer(unsigned int id, unsigned int index) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glBindBufferBase(GL_SHADER_STORAGE_BUFFER, index, id); +#endif +} + +// Copy SSBO buffer data +void rlCopyShaderBuffer(unsigned int destId, unsigned int srcId, unsigned int destOffset, unsigned int srcOffset, unsigned int count) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glBindBuffer(GL_COPY_READ_BUFFER, srcId); + glBindBuffer(GL_COPY_WRITE_BUFFER, destId); + glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, srcOffset, destOffset, count); +#endif +} + +// Bind image texture +void rlBindImageTexture(unsigned int id, unsigned int index, int format, bool readonly) +{ +#if defined(GRAPHICS_API_OPENGL_43) + unsigned int glInternalFormat = 0, glFormat = 0, glType = 0; + + rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); + glBindImageTexture(index, id, 0, 0, 0, readonly? GL_READ_ONLY : GL_READ_WRITE, glInternalFormat); +#else + TRACELOG(RL_LOG_WARNING, "TEXTURE: Image texture binding not enabled. Define GRAPHICS_API_OPENGL_43"); +#endif +} + +// Matrix state management +//----------------------------------------------------------------------------------------- +// Get internal modelview matrix +Matrix rlGetMatrixModelview(void) +{ + Matrix matrix = rlMatrixIdentity(); +#if defined(GRAPHICS_API_OPENGL_11) + float mat[16]; + glGetFloatv(GL_MODELVIEW_MATRIX, mat); + matrix.m0 = mat[0]; + matrix.m1 = mat[1]; + matrix.m2 = mat[2]; + matrix.m3 = mat[3]; + matrix.m4 = mat[4]; + matrix.m5 = mat[5]; + matrix.m6 = mat[6]; + matrix.m7 = mat[7]; + matrix.m8 = mat[8]; + matrix.m9 = mat[9]; + matrix.m10 = mat[10]; + matrix.m11 = mat[11]; + matrix.m12 = mat[12]; + matrix.m13 = mat[13]; + matrix.m14 = mat[14]; + matrix.m15 = mat[15]; +#else + matrix = RLGL.State.modelview; +#endif + return matrix; +} + +// Get internal projection matrix +Matrix rlGetMatrixProjection(void) +{ +#if defined(GRAPHICS_API_OPENGL_11) + float mat[16]; + glGetFloatv(GL_PROJECTION_MATRIX,mat); + Matrix m; + m.m0 = mat[0]; + m.m1 = mat[1]; + m.m2 = mat[2]; + m.m3 = mat[3]; + m.m4 = mat[4]; + m.m5 = mat[5]; + m.m6 = mat[6]; + m.m7 = mat[7]; + m.m8 = mat[8]; + m.m9 = mat[9]; + m.m10 = mat[10]; + m.m11 = mat[11]; + m.m12 = mat[12]; + m.m13 = mat[13]; + m.m14 = mat[14]; + m.m15 = mat[15]; + return m; +#else + return RLGL.State.projection; +#endif +} + +// Get internal accumulated transform matrix +Matrix rlGetMatrixTransform(void) +{ + Matrix mat = rlMatrixIdentity(); +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // TODO: Consider possible transform matrices in the RLGL.State.stack + // Is this the right order? or should we start with the first stored matrix instead of the last one? + //Matrix matStackTransform = rlMatrixIdentity(); + //for (int i = RLGL.State.stackCounter; i > 0; i--) matStackTransform = rlMatrixMultiply(RLGL.State.stack[i], matStackTransform); + mat = RLGL.State.transform; +#endif + return mat; +} + +// Get internal projection matrix for stereo render (selected eye) +Matrix rlGetMatrixProjectionStereo(int eye) +{ + Matrix mat = rlMatrixIdentity(); +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + mat = RLGL.State.projectionStereo[eye]; +#endif + return mat; +} + +// Get internal view offset matrix for stereo render (selected eye) +Matrix rlGetMatrixViewOffsetStereo(int eye) +{ + Matrix mat = rlMatrixIdentity(); +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + mat = RLGL.State.viewOffsetStereo[eye]; +#endif + return mat; +} + +// Set a custom modelview matrix (replaces internal modelview matrix) +void rlSetMatrixModelview(Matrix view) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.modelview = view; +#endif +} + +// Set a custom projection matrix (replaces internal projection matrix) +void rlSetMatrixProjection(Matrix projection) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.projection = projection; +#endif +} + +// Set eyes projection matrices for stereo rendering +void rlSetMatrixProjectionStereo(Matrix right, Matrix left) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.projectionStereo[0] = right; + RLGL.State.projectionStereo[1] = left; +#endif +} + +// Set eyes view offsets matrices for stereo rendering +void rlSetMatrixViewOffsetStereo(Matrix right, Matrix left) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.viewOffsetStereo[0] = right; + RLGL.State.viewOffsetStereo[1] = left; +#endif +} + +// Load and draw a quad in NDC +void rlLoadDrawQuad(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + unsigned int quadVAO = 0; + unsigned int quadVBO = 0; + + float vertices[] = { + // Positions Texcoords + -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, + -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, + 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, + 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, + }; + + // Gen VAO to contain VBO + glGenVertexArrays(1, &quadVAO); + glBindVertexArray(quadVAO); + + // Gen and fill vertex buffer (VBO) + glGenBuffers(1, &quadVBO); + glBindBuffer(GL_ARRAY_BUFFER, quadVBO); + glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), &vertices, GL_STATIC_DRAW); + + // Bind vertex attributes (position, texcoords) + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, 3, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)0); // Positions + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, 2, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)(3*sizeof(float))); // Texcoords + + // Draw quad + glBindVertexArray(quadVAO); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); + glBindVertexArray(0); + + // Delete buffers (VBO and VAO) + glDeleteBuffers(1, &quadVBO); + glDeleteVertexArrays(1, &quadVAO); +#endif +} + +// Load and draw a cube in NDC +void rlLoadDrawCube(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + unsigned int cubeVAO = 0; + unsigned int cubeVBO = 0; + + float vertices[] = { + // Positions Normals Texcoords + -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, + 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f, + 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f, + 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f, + -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, + -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f, + -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, + 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, + 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, + 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, + -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, + -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, + -1.0f, 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + -1.0f, 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 1.0f, + -1.0f, -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + -1.0f, -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + -1.0f, -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, + -1.0f, 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + 1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, + 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + 1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, + -1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, + 1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 1.0f, + 1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f, + 1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f, + -1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, + -1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, + -1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, + 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, + 1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, + 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, + -1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, + -1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f + }; + + // Gen VAO to contain VBO + glGenVertexArrays(1, &cubeVAO); + glBindVertexArray(cubeVAO); + + // Gen and fill vertex buffer (VBO) + glGenBuffers(1, &cubeVBO); + glBindBuffer(GL_ARRAY_BUFFER, cubeVBO); + glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); + + // Bind vertex attributes (position, normals, texcoords) + glBindVertexArray(cubeVAO); + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)0); // Positions + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(3*sizeof(float))); // Normals + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, 2, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(6*sizeof(float))); // Texcoords + glBindBuffer(GL_ARRAY_BUFFER, 0); + glBindVertexArray(0); + + // Draw cube + glBindVertexArray(cubeVAO); + glDrawArrays(GL_TRIANGLES, 0, 36); + glBindVertexArray(0); + + // Delete VBO and VAO + glDeleteBuffers(1, &cubeVBO); + glDeleteVertexArrays(1, &cubeVAO); +#endif +} + +// Get name string for pixel format +const char *rlGetPixelFormatName(unsigned int format) +{ + switch (format) + { + case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: return "GRAYSCALE"; break; // 8 bit per pixel (no alpha) + case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: return "GRAY_ALPHA"; break; // 8*2 bpp (2 channels) + case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: return "R5G6B5"; break; // 16 bpp + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: return "R8G8B8"; break; // 24 bpp + case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: return "R5G5B5A1"; break; // 16 bpp (1 bit alpha) + case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: return "R4G4B4A4"; break; // 16 bpp (4 bit alpha) + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: return "R8G8B8A8"; break; // 32 bpp + case RL_PIXELFORMAT_UNCOMPRESSED_R32: return "R32"; break; // 32 bpp (1 channel - float) + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: return "R32G32B32"; break; // 32*3 bpp (3 channels - float) + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: return "R32G32B32A32"; break; // 32*4 bpp (4 channels - float) + case RL_PIXELFORMAT_UNCOMPRESSED_R16: return "R16"; break; // 16 bpp (1 channel - half float) + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: return "R16G16B16"; break; // 16*3 bpp (3 channels - half float) + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: return "R16G16B16A16"; break; // 16*4 bpp (4 channels - half float) + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: return "DXT1_RGB"; break; // 4 bpp (no alpha) + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: return "DXT1_RGBA"; break; // 4 bpp (1 bit alpha) + case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: return "DXT3_RGBA"; break; // 8 bpp + case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: return "DXT5_RGBA"; break; // 8 bpp + case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: return "ETC1_RGB"; break; // 4 bpp + case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: return "ETC2_RGB"; break; // 4 bpp + case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: return "ETC2_RGBA"; break; // 8 bpp + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: return "PVRT_RGB"; break; // 4 bpp + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: return "PVRT_RGBA"; break; // 4 bpp + case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: return "ASTC_4x4_RGBA"; break; // 8 bpp + case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: return "ASTC_8x8_RGBA"; break; // 2 bpp + default: return "UNKNOWN"; break; + } +} + +//---------------------------------------------------------------------------------- +// Module specific Functions Definition +//---------------------------------------------------------------------------------- +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +// Load default shader (just vertex positioning and texture coloring) +// NOTE: This shader program is used for internal buffers +// NOTE: Loaded: RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs +static void rlLoadShaderDefault(void) +{ + RLGL.State.defaultShaderLocs = (int *)RL_CALLOC(RL_MAX_SHADER_LOCATIONS, sizeof(int)); + + // NOTE: All locations must be reseted to -1 (no location) + for (int i = 0; i < RL_MAX_SHADER_LOCATIONS; i++) RLGL.State.defaultShaderLocs[i] = -1; + + // Vertex shader directly defined, no external file required + const char *defaultVShaderCode = +#if defined(GRAPHICS_API_OPENGL_21) + "#version 120 \n" + "attribute vec3 vertexPosition; \n" + "attribute vec2 vertexTexCoord; \n" + "attribute vec4 vertexColor; \n" + "varying vec2 fragTexCoord; \n" + "varying vec4 fragColor; \n" +#elif defined(GRAPHICS_API_OPENGL_33) + "#version 330 \n" + "in vec3 vertexPosition; \n" + "in vec2 vertexTexCoord; \n" + "in vec4 vertexColor; \n" + "out vec2 fragTexCoord; \n" + "out vec4 fragColor; \n" +#endif + +#if defined(GRAPHICS_API_OPENGL_ES3) + "#version 300 es \n" + "precision mediump float; \n" // Precision required for OpenGL ES3 (WebGL 2) (on some browsers) + "in vec3 vertexPosition; \n" + "in vec2 vertexTexCoord; \n" + "in vec4 vertexColor; \n" + "out vec2 fragTexCoord; \n" + "out vec4 fragColor; \n" +#elif defined(GRAPHICS_API_OPENGL_ES2) + "#version 100 \n" + "precision mediump float; \n" // Precision required for OpenGL ES2 (WebGL) (on some browsers) + "attribute vec3 vertexPosition; \n" + "attribute vec2 vertexTexCoord; \n" + "attribute vec4 vertexColor; \n" + "varying vec2 fragTexCoord; \n" + "varying vec4 fragColor; \n" +#endif + + "uniform mat4 mvp; \n" + "void main() \n" + "{ \n" + " fragTexCoord = vertexTexCoord; \n" + " fragColor = vertexColor; \n" + " gl_Position = mvp*vec4(vertexPosition, 1.0); \n" + "} \n"; + + // Fragment shader directly defined, no external file required + const char *defaultFShaderCode = +#if defined(GRAPHICS_API_OPENGL_21) + "#version 120 \n" + "varying vec2 fragTexCoord; \n" + "varying vec4 fragColor; \n" + "uniform sampler2D texture0; \n" + "uniform vec4 colDiffuse; \n" + "void main() \n" + "{ \n" + " vec4 texelColor = texture2D(texture0, fragTexCoord); \n" + " gl_FragColor = texelColor*colDiffuse*fragColor; \n" + "} \n"; +#elif defined(GRAPHICS_API_OPENGL_33) + "#version 330 \n" + "in vec2 fragTexCoord; \n" + "in vec4 fragColor; \n" + "out vec4 finalColor; \n" + "uniform sampler2D texture0; \n" + "uniform vec4 colDiffuse; \n" + "void main() \n" + "{ \n" + " vec4 texelColor = texture(texture0, fragTexCoord); \n" + " finalColor = texelColor*colDiffuse*fragColor; \n" + "} \n"; +#endif + +#if defined(GRAPHICS_API_OPENGL_ES3) + "#version 300 es \n" + "precision mediump float; \n" // Precision required for OpenGL ES3 (WebGL 2) + "in vec2 fragTexCoord; \n" + "in vec4 fragColor; \n" + "out vec4 finalColor; \n" + "uniform sampler2D texture0; \n" + "uniform vec4 colDiffuse; \n" + "void main() \n" + "{ \n" + " vec4 texelColor = texture(texture0, fragTexCoord); \n" + " finalColor = texelColor*colDiffuse*fragColor; \n" + "} \n"; +#elif defined(GRAPHICS_API_OPENGL_ES2) + "#version 100 \n" + "precision mediump float; \n" // Precision required for OpenGL ES2 (WebGL) + "varying vec2 fragTexCoord; \n" + "varying vec4 fragColor; \n" + "uniform sampler2D texture0; \n" + "uniform vec4 colDiffuse; \n" + "void main() \n" + "{ \n" + " vec4 texelColor = texture2D(texture0, fragTexCoord); \n" + " gl_FragColor = texelColor*colDiffuse*fragColor; \n" + "} \n"; +#endif + + // NOTE: Compiled vertex/fragment shaders are not deleted, + // they are kept for re-use as default shaders in case some shader loading fails + RLGL.State.defaultVShaderId = rlCompileShader(defaultVShaderCode, GL_VERTEX_SHADER); // Compile default vertex shader + RLGL.State.defaultFShaderId = rlCompileShader(defaultFShaderCode, GL_FRAGMENT_SHADER); // Compile default fragment shader + + RLGL.State.defaultShaderId = rlLoadShaderProgram(RLGL.State.defaultVShaderId, RLGL.State.defaultFShaderId); + + if (RLGL.State.defaultShaderId > 0) + { + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Default shader loaded successfully", RLGL.State.defaultShaderId); + + // Set default shader locations: attributes locations + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_POSITION] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_COLOR] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR); + + // Set default shader locations: uniform locations + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MATRIX_MVP] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_UNIFORM_NAME_MVP); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_COLOR_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MAP_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0); + } + else TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to load default shader", RLGL.State.defaultShaderId); +} + +// Unload default shader +// NOTE: Unloads: RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs +static void rlUnloadShaderDefault(void) +{ + glUseProgram(0); + + glDetachShader(RLGL.State.defaultShaderId, RLGL.State.defaultVShaderId); + glDetachShader(RLGL.State.defaultShaderId, RLGL.State.defaultFShaderId); + glDeleteShader(RLGL.State.defaultVShaderId); + glDeleteShader(RLGL.State.defaultFShaderId); + + glDeleteProgram(RLGL.State.defaultShaderId); + + RL_FREE(RLGL.State.defaultShaderLocs); + + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Default shader unloaded successfully", RLGL.State.defaultShaderId); +} + +#if defined(RLGL_SHOW_GL_DETAILS_INFO) +// Get compressed format official GL identifier name +static const char *rlGetCompressedFormatName(int format) +{ + switch (format) + { + // GL_EXT_texture_compression_s3tc + case 0x83F0: return "GL_COMPRESSED_RGB_S3TC_DXT1_EXT"; break; + case 0x83F1: return "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT"; break; + case 0x83F2: return "GL_COMPRESSED_RGBA_S3TC_DXT3_EXT"; break; + case 0x83F3: return "GL_COMPRESSED_RGBA_S3TC_DXT5_EXT"; break; + // GL_3DFX_texture_compression_FXT1 + case 0x86B0: return "GL_COMPRESSED_RGB_FXT1_3DFX"; break; + case 0x86B1: return "GL_COMPRESSED_RGBA_FXT1_3DFX"; break; + // GL_IMG_texture_compression_pvrtc + case 0x8C00: return "GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG"; break; + case 0x8C01: return "GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG"; break; + case 0x8C02: return "GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG"; break; + case 0x8C03: return "GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG"; break; + // GL_OES_compressed_ETC1_RGB8_texture + case 0x8D64: return "GL_ETC1_RGB8_OES"; break; + // GL_ARB_texture_compression_rgtc + case 0x8DBB: return "GL_COMPRESSED_RED_RGTC1"; break; + case 0x8DBC: return "GL_COMPRESSED_SIGNED_RED_RGTC1"; break; + case 0x8DBD: return "GL_COMPRESSED_RG_RGTC2"; break; + case 0x8DBE: return "GL_COMPRESSED_SIGNED_RG_RGTC2"; break; + // GL_ARB_texture_compression_bptc + case 0x8E8C: return "GL_COMPRESSED_RGBA_BPTC_UNORM_ARB"; break; + case 0x8E8D: return "GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB"; break; + case 0x8E8E: return "GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB"; break; + case 0x8E8F: return "GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB"; break; + // GL_ARB_ES3_compatibility + case 0x9274: return "GL_COMPRESSED_RGB8_ETC2"; break; + case 0x9275: return "GL_COMPRESSED_SRGB8_ETC2"; break; + case 0x9276: return "GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"; break; + case 0x9277: return "GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"; break; + case 0x9278: return "GL_COMPRESSED_RGBA8_ETC2_EAC"; break; + case 0x9279: return "GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"; break; + case 0x9270: return "GL_COMPRESSED_R11_EAC"; break; + case 0x9271: return "GL_COMPRESSED_SIGNED_R11_EAC"; break; + case 0x9272: return "GL_COMPRESSED_RG11_EAC"; break; + case 0x9273: return "GL_COMPRESSED_SIGNED_RG11_EAC"; break; + // GL_KHR_texture_compression_astc_hdr + case 0x93B0: return "GL_COMPRESSED_RGBA_ASTC_4x4_KHR"; break; + case 0x93B1: return "GL_COMPRESSED_RGBA_ASTC_5x4_KHR"; break; + case 0x93B2: return "GL_COMPRESSED_RGBA_ASTC_5x5_KHR"; break; + case 0x93B3: return "GL_COMPRESSED_RGBA_ASTC_6x5_KHR"; break; + case 0x93B4: return "GL_COMPRESSED_RGBA_ASTC_6x6_KHR"; break; + case 0x93B5: return "GL_COMPRESSED_RGBA_ASTC_8x5_KHR"; break; + case 0x93B6: return "GL_COMPRESSED_RGBA_ASTC_8x6_KHR"; break; + case 0x93B7: return "GL_COMPRESSED_RGBA_ASTC_8x8_KHR"; break; + case 0x93B8: return "GL_COMPRESSED_RGBA_ASTC_10x5_KHR"; break; + case 0x93B9: return "GL_COMPRESSED_RGBA_ASTC_10x6_KHR"; break; + case 0x93BA: return "GL_COMPRESSED_RGBA_ASTC_10x8_KHR"; break; + case 0x93BB: return "GL_COMPRESSED_RGBA_ASTC_10x10_KHR"; break; + case 0x93BC: return "GL_COMPRESSED_RGBA_ASTC_12x10_KHR"; break; + case 0x93BD: return "GL_COMPRESSED_RGBA_ASTC_12x12_KHR"; break; + case 0x93D0: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"; break; + case 0x93D1: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"; break; + case 0x93D2: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"; break; + case 0x93D3: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"; break; + case 0x93D4: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"; break; + case 0x93D5: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"; break; + case 0x93D6: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"; break; + case 0x93D7: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"; break; + case 0x93D8: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"; break; + case 0x93D9: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"; break; + case 0x93DA: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"; break; + case 0x93DB: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"; break; + case 0x93DC: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"; break; + case 0x93DD: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"; break; + default: return "GL_COMPRESSED_UNKNOWN"; break; + } +} +#endif // RLGL_SHOW_GL_DETAILS_INFO + +#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 + +// Get pixel data size in bytes (image or texture) +// NOTE: Size depends on pixel format +static int rlGetPixelDataSize(int width, int height, int format) +{ + int dataSize = 0; // Size in bytes + int bpp = 0; // Bits per pixel + + switch (format) + { + case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: bpp = 8; break; + case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: + case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: + case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: + case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: bpp = 16; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: bpp = 32; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: bpp = 24; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32: bpp = 32; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: bpp = 32*3; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: bpp = 32*4; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16: bpp = 16; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: bpp = 16*3; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: bpp = 16*4; break; + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: + case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: + case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: bpp = 4; break; + case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: + case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: + case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: + case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: bpp = 8; break; + case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: bpp = 2; break; + default: break; + } + + double bytesPerPixel = (double)bpp/8.0; + dataSize = (int)(bytesPerPixel*width*height); // Total data size in bytes + + // Most compressed formats works on 4x4 blocks, + // if texture is smaller, minimum dataSize is 8 or 16 + if ((width < 4) && (height < 4)) + { + if ((format >= RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) && (format < RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA)) dataSize = 8; + else if ((format >= RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA) && (format < RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA)) dataSize = 16; + } + + return dataSize; +} + +// Auxiliar math functions + +// Get float array of matrix data +static rl_float16 rlMatrixToFloatV(Matrix mat) +{ + rl_float16 result = { 0 }; + + result.v[0] = mat.m0; + result.v[1] = mat.m1; + result.v[2] = mat.m2; + result.v[3] = mat.m3; + result.v[4] = mat.m4; + result.v[5] = mat.m5; + result.v[6] = mat.m6; + result.v[7] = mat.m7; + result.v[8] = mat.m8; + result.v[9] = mat.m9; + result.v[10] = mat.m10; + result.v[11] = mat.m11; + result.v[12] = mat.m12; + result.v[13] = mat.m13; + result.v[14] = mat.m14; + result.v[15] = mat.m15; + + return result; +} + +// Get identity matrix +static Matrix rlMatrixIdentity(void) +{ + Matrix result = { + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + }; + + return result; +} + +// Get two matrix multiplication +// NOTE: When multiplying matrices... the order matters! +static Matrix rlMatrixMultiply(Matrix left, Matrix right) +{ + Matrix result = { 0 }; + + result.m0 = left.m0*right.m0 + left.m1*right.m4 + left.m2*right.m8 + left.m3*right.m12; + result.m1 = left.m0*right.m1 + left.m1*right.m5 + left.m2*right.m9 + left.m3*right.m13; + result.m2 = left.m0*right.m2 + left.m1*right.m6 + left.m2*right.m10 + left.m3*right.m14; + result.m3 = left.m0*right.m3 + left.m1*right.m7 + left.m2*right.m11 + left.m3*right.m15; + result.m4 = left.m4*right.m0 + left.m5*right.m4 + left.m6*right.m8 + left.m7*right.m12; + result.m5 = left.m4*right.m1 + left.m5*right.m5 + left.m6*right.m9 + left.m7*right.m13; + result.m6 = left.m4*right.m2 + left.m5*right.m6 + left.m6*right.m10 + left.m7*right.m14; + result.m7 = left.m4*right.m3 + left.m5*right.m7 + left.m6*right.m11 + left.m7*right.m15; + result.m8 = left.m8*right.m0 + left.m9*right.m4 + left.m10*right.m8 + left.m11*right.m12; + result.m9 = left.m8*right.m1 + left.m9*right.m5 + left.m10*right.m9 + left.m11*right.m13; + result.m10 = left.m8*right.m2 + left.m9*right.m6 + left.m10*right.m10 + left.m11*right.m14; + result.m11 = left.m8*right.m3 + left.m9*right.m7 + left.m10*right.m11 + left.m11*right.m15; + result.m12 = left.m12*right.m0 + left.m13*right.m4 + left.m14*right.m8 + left.m15*right.m12; + result.m13 = left.m12*right.m1 + left.m13*right.m5 + left.m14*right.m9 + left.m15*right.m13; + result.m14 = left.m12*right.m2 + left.m13*right.m6 + left.m14*right.m10 + left.m15*right.m14; + result.m15 = left.m12*right.m3 + left.m13*right.m7 + left.m14*right.m11 + left.m15*right.m15; + + return result; +} + +// Transposes provided matrix +static Matrix rlMatrixTranspose(Matrix mat) +{ + Matrix result = { 0 }; + + result.m0 = mat.m0; + result.m1 = mat.m4; + result.m2 = mat.m8; + result.m3 = mat.m12; + result.m4 = mat.m1; + result.m5 = mat.m5; + result.m6 = mat.m9; + result.m7 = mat.m13; + result.m8 = mat.m2; + result.m9 = mat.m6; + result.m10 = mat.m10; + result.m11 = mat.m14; + result.m12 = mat.m3; + result.m13 = mat.m7; + result.m14 = mat.m11; + result.m15 = mat.m15; + + return result; +} + +// Invert provided matrix +static Matrix rlMatrixInvert(Matrix mat) +{ + Matrix result = { 0 }; + + // Cache the matrix values (speed optimization) + float a00 = mat.m0, a01 = mat.m1, a02 = mat.m2, a03 = mat.m3; + float a10 = mat.m4, a11 = mat.m5, a12 = mat.m6, a13 = mat.m7; + float a20 = mat.m8, a21 = mat.m9, a22 = mat.m10, a23 = mat.m11; + float a30 = mat.m12, a31 = mat.m13, a32 = mat.m14, a33 = mat.m15; + + float b00 = a00*a11 - a01*a10; + float b01 = a00*a12 - a02*a10; + float b02 = a00*a13 - a03*a10; + float b03 = a01*a12 - a02*a11; + float b04 = a01*a13 - a03*a11; + float b05 = a02*a13 - a03*a12; + float b06 = a20*a31 - a21*a30; + float b07 = a20*a32 - a22*a30; + float b08 = a20*a33 - a23*a30; + float b09 = a21*a32 - a22*a31; + float b10 = a21*a33 - a23*a31; + float b11 = a22*a33 - a23*a32; + + // Calculate the invert determinant (inlined to avoid double-caching) + float invDet = 1.0f/(b00*b11 - b01*b10 + b02*b09 + b03*b08 - b04*b07 + b05*b06); + + result.m0 = (a11*b11 - a12*b10 + a13*b09)*invDet; + result.m1 = (-a01*b11 + a02*b10 - a03*b09)*invDet; + result.m2 = (a31*b05 - a32*b04 + a33*b03)*invDet; + result.m3 = (-a21*b05 + a22*b04 - a23*b03)*invDet; + result.m4 = (-a10*b11 + a12*b08 - a13*b07)*invDet; + result.m5 = (a00*b11 - a02*b08 + a03*b07)*invDet; + result.m6 = (-a30*b05 + a32*b02 - a33*b01)*invDet; + result.m7 = (a20*b05 - a22*b02 + a23*b01)*invDet; + result.m8 = (a10*b10 - a11*b08 + a13*b06)*invDet; + result.m9 = (-a00*b10 + a01*b08 - a03*b06)*invDet; + result.m10 = (a30*b04 - a31*b02 + a33*b00)*invDet; + result.m11 = (-a20*b04 + a21*b02 - a23*b00)*invDet; + result.m12 = (-a10*b09 + a11*b07 - a12*b06)*invDet; + result.m13 = (a00*b09 - a01*b07 + a02*b06)*invDet; + result.m14 = (-a30*b03 + a31*b01 - a32*b00)*invDet; + result.m15 = (a20*b03 - a21*b01 + a22*b00)*invDet; + + return result; +} + +#endif // RLGL_IMPLEMENTATION diff --git a/lib/raylib_win/lib/libraylib.a b/lib/raylib_win/lib/libraylib.a index 9c14cfdd35db87d5e41621223c2c9fd8907aec9d..533eae3df7d763fd2febce73630c606244632c53 100644 GIT binary patch literal 2049204 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 Q>u93v6q0jQ=^;y2S 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

Y~)4B%gFM=Web-SEeP}?&ha?kbu?nGx97rw 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

5p?Q+yz{_k#BI>tHrNd=`|pP3_)eSGdz=xz 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

k6t}qU@~I9}2dRWX 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%0Dp`k5+<@mF(B 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

*0*c<{vxF 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

wZ@vm)~P&e0V`4^)-qP1s;nDWjjFRY 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 literal 2230712 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

MviAt2^= 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

8m)h{mC^M_wm<#b;ir^gUl;CDhhh6{%x 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

k9+jktI@G5!;}txH00d`O68&ZhmX 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 z

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%0A8`RjTL8_NKk7AZBM&usSv6{W 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 $YLVg}4~i#?L9j#SBu6i%;In*y7?e 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 zuLoadFontDefault() [core, text] -* - One default Texture2D is loaded on rlglInit(), 1x1 white pixel R8G8B8A8 [rlgl] (OpenGL 3.3 or ES2) -* - One default Shader is loaded on rlglInit()->rlLoadShaderDefault() [rlgl] (OpenGL 3.3 or ES2) -* - One default RenderBatch is loaded on rlglInit()->rlLoadRenderBatch() [rlgl] (OpenGL 3.3 or ES2) -* -* DEPENDENCIES: -* [rcore] Depends on the selected platform backend, check rcore.c header for details -* [rlgl] glad/glad_gles2 (David Herberth - github.com/Dav1dde/glad) for OpenGL extensions loading -* [raudio] miniaudio (David Reid - github.com/mackron/miniaudio) for audio device/context management -* -* OPTIONAL DEPENDENCIES (included): -* [rcore] sinfl (Micha Mettke) for DEFLATE decompression algorithm -* [rcore] sdefl (Micha Mettke) for DEFLATE compression algorithm -* [rcore] rprand (Ramon Santamaria) for pseudo-random numbers generation -* [rtextures] qoi (Dominic Szablewski - https://phoboslab.org) for QOI image manage -* [rtextures] stb_image (Sean Barret) for images loading (BMP, TGA, PNG, JPEG, HDR...) -* [rtextures] stb_image_write (Sean Barret) for image writing (BMP, TGA, PNG, JPG) -* [rtextures] stb_image_resize2 (Sean Barret) for image resizing algorithms -* [rtextures] stb_perlin (Sean Barret) for Perlin Noise image generation -* [rtextures] rl_gputex (Ramon Santamaria) for GPU-compressed texture formats -* [rtext] stb_truetype (Sean Barret) for ttf fonts loading -* [rtext] stb_rect_pack (Sean Barret) for rectangles packing -* [rmodels] par_shapes (Philip Rideout) for parametric 3d shapes generation -* [rmodels] tinyobj_loader_c (Syoyo Fujita) for models loading (OBJ, MTL) -* [rmodels] cgltf (Johannes Kuhlmann) for models loading (glTF) -* [rmodels] m3d (bzt) for models loading (M3D, https://bztsrc.gitlab.io/model3d) -* [rmodels] vox_loader (Johann Nadalutti) for models loading (VOX) -* [raudio] dr_wav (David Reid) for WAV audio file loading -* [raudio] dr_flac (David Reid) for FLAC audio file loading -* [raudio] dr_mp3 (David Reid) for MP3 audio file loading -* [raudio] stb_vorbis (Sean Barret) for OGG audio loading -* [raudio] jar_xm (Joshua Reisenauer) for XM audio module loading -* [raudio] jar_mod (Joshua Reisenauer) for MOD audio module loading -* [raudio] qoa (Dominic Szablewski - https://phoboslab.org) for QOA audio manage -* -* -* LICENSE: zlib/libpng -* -* raylib is licensed under an unmodified zlib/libpng license, which is an OSI-certified, -* BSD-like license that allows static linking with closed source software: -* -* Copyright (c) 2013-2026 Ramon Santamaria (@raysan5) -* -* This software is provided "as-is", without any express or implied warranty. In no event -* will the authors be held liable for any damages arising from the use of this software. -* -* Permission is granted to anyone to use this software for any purpose, including commercial -* applications, and to alter it and redistribute it freely, subject to the following restrictions: -* -* 1. The origin of this software must not be misrepresented; you must not claim that you -* wrote the original software. If you use this software in a product, an acknowledgment -* in the product documentation would be appreciated but is not required. -* -* 2. Altered source versions must be plainly marked as such, and must not be misrepresented -* as being the original software. -* -* 3. This notice may not be removed or altered from any source distribution. -* -**********************************************************************************************/ - -#ifndef RAYLIB_H -#define RAYLIB_H - -#include // Required for: va_list - Only used by TraceLogCallback - -#define RAYLIB_VERSION_MAJOR 6 -#define RAYLIB_VERSION_MINOR 0 -#define RAYLIB_VERSION_PATCH 0 -#define RAYLIB_VERSION "6.0" - -// Function specifiers in case library is build/used as a shared library -// NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll -// NOTE: visibility("default") attribute makes symbols "visible" when compiled with -fvisibility=hidden -#if defined(_WIN32) - #if defined(__TINYC__) - #define __declspec(x) __attribute__((x)) - #endif - #if defined(BUILD_LIBTYPE_SHARED) - #define RLAPI __declspec(dllexport) // Building the library as a Win32 shared library (.dll) - #elif defined(USE_LIBTYPE_SHARED) - #define RLAPI __declspec(dllimport) // Using the library as a Win32 shared library (.dll) - #endif -#else - #if defined(BUILD_LIBTYPE_SHARED) - #define RLAPI __attribute__((visibility("default"))) // Building as a Unix shared library (.so/.dylib) - #endif -#endif - -#ifndef RLAPI - #define RLAPI // Functions defined as 'extern' by default (implicit specifiers) -#endif - -//---------------------------------------------------------------------------------- -// Defines and Macros -//---------------------------------------------------------------------------------- -#ifndef PI - #define PI 3.14159265358979323846f -#endif -#ifndef DEG2RAD - #define DEG2RAD (PI/180.0f) -#endif -#ifndef RAD2DEG - #define RAD2DEG (180.0f/PI) -#endif - -// Allow custom memory allocators -// NOTE: Require recompiling raylib sources -#ifndef RL_MALLOC - #define RL_MALLOC(sz) malloc(sz) -#endif -#ifndef RL_CALLOC - #define RL_CALLOC(n,sz) calloc(n,sz) -#endif -#ifndef RL_REALLOC - #define RL_REALLOC(ptr,sz) realloc(ptr,sz) -#endif -#ifndef RL_FREE - #define RL_FREE(ptr) free(ptr) -#endif - -// NOTE: MSVC C++ compiler does not support compound literals (C99 feature) -// Plain structures in C++ (without constructors) can be initialized with { } -// This is called aggregate initialization (C++11 feature) -#if defined(__cplusplus) - #define CLITERAL(type) type -#else - #define CLITERAL(type) (type) -#endif - -// Some compilers (mostly macos clang) default to C++98, -// where aggregate initialization can't be used -// So, give a more clear error stating how to fix this -#if !defined(_MSC_VER) && (defined(__cplusplus) && __cplusplus < 201103L) - #error "C++11 or later is required. Add -std=c++11" -#endif - -// NOTE: Set some defines with some data types declared by raylib -// Other modules (raymath, rlgl) also require some of those types, so, -// to be able to use those other modules as standalone (not depending on raylib) -// this defines are very useful for internal check and avoid type (re)definitions -#define RL_COLOR_TYPE -#define RL_RECTANGLE_TYPE -#define RL_VECTOR2_TYPE -#define RL_VECTOR3_TYPE -#define RL_VECTOR4_TYPE -#define RL_QUATERNION_TYPE -#define RL_MATRIX_TYPE - -// Some Basic Colors -// NOTE: Custom raylib color palette for amazing visuals on WHITE background -#define LIGHTGRAY CLITERAL(Color){ 200, 200, 200, 255 } // Light Gray -#define GRAY CLITERAL(Color){ 130, 130, 130, 255 } // Gray -#define DARKGRAY CLITERAL(Color){ 80, 80, 80, 255 } // Dark Gray -#define YELLOW CLITERAL(Color){ 253, 249, 0, 255 } // Yellow -#define GOLD CLITERAL(Color){ 255, 203, 0, 255 } // Gold -#define ORANGE CLITERAL(Color){ 255, 161, 0, 255 } // Orange -#define PINK CLITERAL(Color){ 255, 109, 194, 255 } // Pink -#define RED CLITERAL(Color){ 230, 41, 55, 255 } // Red -#define MAROON CLITERAL(Color){ 190, 33, 55, 255 } // Maroon -#define GREEN CLITERAL(Color){ 0, 228, 48, 255 } // Green -#define LIME CLITERAL(Color){ 0, 158, 47, 255 } // Lime -#define DARKGREEN CLITERAL(Color){ 0, 117, 44, 255 } // Dark Green -#define SKYBLUE CLITERAL(Color){ 102, 191, 255, 255 } // Sky Blue -#define BLUE CLITERAL(Color){ 0, 121, 241, 255 } // Blue -#define DARKBLUE CLITERAL(Color){ 0, 82, 172, 255 } // Dark Blue -#define PURPLE CLITERAL(Color){ 200, 122, 255, 255 } // Purple -#define VIOLET CLITERAL(Color){ 135, 60, 190, 255 } // Violet -#define DARKPURPLE CLITERAL(Color){ 112, 31, 126, 255 } // Dark Purple -#define BEIGE CLITERAL(Color){ 211, 176, 131, 255 } // Beige -#define BROWN CLITERAL(Color){ 127, 106, 79, 255 } // Brown -#define DARKBROWN CLITERAL(Color){ 76, 63, 47, 255 } // Dark Brown - -#define WHITE CLITERAL(Color){ 255, 255, 255, 255 } // White -#define BLACK CLITERAL(Color){ 0, 0, 0, 255 } // Black -#define BLANK CLITERAL(Color){ 0, 0, 0, 0 } // Blank (Transparent) -#define MAGENTA CLITERAL(Color){ 255, 0, 255, 255 } // Magenta -#define RAYWHITE CLITERAL(Color){ 245, 245, 245, 255 } // My own White (raylib logo) - -//---------------------------------------------------------------------------------- -// Types and Structures Definition -//---------------------------------------------------------------------------------- -// Boolean type -#if (defined(__STDC__) && __STDC_VERSION__ >= 199901L) || (defined(_MSC_VER) && _MSC_VER >= 1800) - #include -#elif !defined(__cplusplus) && !defined(bool) - typedef enum bool { false = 0, true = !false } bool; - #define RL_BOOL_TYPE -#endif - -// Vector2, 2 components -typedef struct Vector2 { - float x; // Vector x component - float y; // Vector y component -} Vector2; - -// Vector3, 3 components -typedef struct Vector3 { - float x; // Vector x component - float y; // Vector y component - float z; // Vector z component -} Vector3; - -// Vector4, 4 components -typedef struct Vector4 { - float x; // Vector x component - float y; // Vector y component - float z; // Vector z component - float w; // Vector w component -} Vector4; - -// Quaternion, 4 components (Vector4 alias) -typedef Vector4 Quaternion; - -// Matrix, 4x4 components, column major, OpenGL style, right-handed -typedef struct Matrix { - float m0, m4, m8, m12; // Matrix first row (4 components) - float m1, m5, m9, m13; // Matrix second row (4 components) - float m2, m6, m10, m14; // Matrix third row (4 components) - float m3, m7, m11, m15; // Matrix fourth row (4 components) -} Matrix; - -// Color, 4 components, R8G8B8A8 (32bit) -typedef struct Color { - unsigned char r; // Color red value - unsigned char g; // Color green value - unsigned char b; // Color blue value - unsigned char a; // Color alpha value -} Color; - -// Rectangle, 4 components -typedef struct Rectangle { - float x; // Rectangle top-left corner position x - float y; // Rectangle top-left corner position y - float width; // Rectangle width - float height; // Rectangle height -} Rectangle; - -// Image, pixel data stored in CPU memory (RAM) -typedef struct Image { - void *data; // Image raw data - int width; // Image base width - int height; // Image base height - int mipmaps; // Mipmap levels, 1 by default - int format; // Data format (PixelFormat type) -} Image; - -// Texture, tex data stored in GPU memory (VRAM) -typedef struct Texture { - unsigned int id; // OpenGL texture id - int width; // Texture base width - int height; // Texture base height - int mipmaps; // Mipmap levels, 1 by default - int format; // Data format (PixelFormat type) -} Texture; - -// Texture2D, same as Texture -typedef Texture Texture2D; - -// TextureCubemap, same as Texture -typedef Texture TextureCubemap; - -// RenderTexture, fbo for texture rendering -typedef struct RenderTexture { - unsigned int id; // OpenGL framebuffer object id - Texture texture; // Color buffer attachment texture - Texture depth; // Depth buffer attachment texture -} RenderTexture; - -// RenderTexture2D, same as RenderTexture -typedef RenderTexture RenderTexture2D; - -// NPatchInfo, n-patch layout info -typedef struct NPatchInfo { - Rectangle source; // Texture source rectangle - int left; // Left border offset - int top; // Top border offset - int right; // Right border offset - int bottom; // Bottom border offset - int layout; // Layout of the n-patch: 3x3, 1x3 or 3x1 -} NPatchInfo; - -// GlyphInfo, font characters glyphs info -typedef struct GlyphInfo { - int value; // Character value (Unicode) - int offsetX; // Character offset X when drawing - int offsetY; // Character offset Y when drawing - int advanceX; // Character advance position X - Image image; // Character image data -} GlyphInfo; - -// Font, font texture and GlyphInfo array data -typedef struct Font { - int baseSize; // Base size (default chars height) - int glyphCount; // Number of glyph characters - int glyphPadding; // Padding around the glyph characters - Texture2D texture; // Texture atlas containing the glyphs - Rectangle *recs; // Rectangles in texture for the glyphs - GlyphInfo *glyphs; // Glyphs info data -} Font; - -// Camera, defines position/orientation in 3d space -typedef struct Camera3D { - Vector3 position; // Camera position - Vector3 target; // Camera target it looks-at - Vector3 up; // Camera up vector (rotation over its axis) - float fovy; // Camera field-of-view aperture in Y (degrees) in perspective, used as near plane height in world units in orthographic - int projection; // Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC -} Camera3D; - -typedef Camera3D Camera; // Camera type fallback, defaults to Camera3D - -// Camera2D, defines position/orientation in 2d space -typedef struct Camera2D { - Vector2 offset; // Camera offset (screen space offset from window origin) - Vector2 target; // Camera target (world space target point that is mapped to screen space offset) - float rotation; // Camera rotation in degrees (pivots around target) - float zoom; // Camera zoom (scaling around target), must not be set to 0, set to 1.0f for no scale -} Camera2D; - -// Mesh, vertex data and vao/vbo -typedef struct Mesh { - int vertexCount; // Number of vertices stored in arrays - int triangleCount; // Number of triangles stored (indexed or not) - - // Vertex attributes data - float *vertices; // Vertex position (XYZ - 3 components per vertex) (shader-location = 0) - float *texcoords; // Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1) - float *texcoords2; // Vertex texture second coordinates (UV - 2 components per vertex) (shader-location = 5) - float *normals; // Vertex normals (XYZ - 3 components per vertex) (shader-location = 2) - float *tangents; // Vertex tangents (XYZW - 4 components per vertex) (shader-location = 4) - unsigned char *colors; // Vertex colors (RGBA - 4 components per vertex) (shader-location = 3) - unsigned short *indices; // Vertex indices (in case vertex data comes indexed) - - // Skin data for animation - int boneCount; // Number of bones (MAX: 256 bones) - unsigned char *boneIndices; // Vertex bone indices, up to 4 bones influence by vertex (skinning) (shader-location = 6) - float *boneWeights; // Vertex bone weight, up to 4 bones influence by vertex (skinning) (shader-location = 7) - - // Runtime animation vertex data (CPU skinning) - // NOTE: In case of GPU skinning, not used, pointers are NULL - float *animVertices; // Animated vertex positions (after bones transformations) - float *animNormals; // Animated normals (after bones transformations) - - // OpenGL identifiers - unsigned int vaoId; // OpenGL Vertex Array Object id - unsigned int *vboId; // OpenGL Vertex Buffer Objects id (default vertex data) -} Mesh; - -// Shader -typedef struct Shader { - unsigned int id; // Shader program id - int *locs; // Shader locations array (RL_MAX_SHADER_LOCATIONS) -} Shader; - -// MaterialMap -typedef struct MaterialMap { - Texture2D texture; // Material map texture - Color color; // Material map color - float value; // Material map value -} MaterialMap; - -// Material, includes shader and maps -typedef struct Material { - Shader shader; // Material shader - MaterialMap *maps; // Material maps array (MAX_MATERIAL_MAPS) - float params[4]; // Material generic parameters (if required) -} Material; - -// Transform, vertex transformation data -typedef struct Transform { - Vector3 translation; // Translation - Quaternion rotation; // Rotation - Vector3 scale; // Scale -} Transform; - -// Anim pose, an array of Transform[] -typedef Transform *ModelAnimPose; - -// Bone, skeletal animation bone -typedef struct BoneInfo { - char name[32]; // Bone name - int parent; // Bone parent -} BoneInfo; - -// Skeleton, animation bones hierarchy -typedef struct ModelSkeleton { - int boneCount; // Number of bones - BoneInfo *bones; // Bones information (skeleton) - ModelAnimPose bindPose; // Bones base transformation (Transform[]) -} ModelSkeleton; - -// Model, meshes, materials and animation data -typedef struct Model { - Matrix transform; // Local transform matrix - - int meshCount; // Number of meshes - int materialCount; // Number of materials - Mesh *meshes; // Meshes array - Material *materials; // Materials array - int *meshMaterial; // Mesh material number - - // Animation data - ModelSkeleton skeleton; // Skeleton for animation - - // Runtime animation data (CPU/GPU skinning) - ModelAnimPose currentPose; // Current animation pose (Transform[]) - Matrix *boneMatrices; // Bones animated transformation matrices -} Model; - -// ModelAnimation, contains a full animation sequence -typedef struct ModelAnimation { - char name[32]; // Animation name - - int boneCount; // Number of bones (per pose) - int keyframeCount; // Number of animation key frames - ModelAnimPose *keyframePoses; // Animation sequence keyframe poses [keyframe][pose] -} ModelAnimation; - -// Ray, ray for raycasting -typedef struct Ray { - Vector3 position; // Ray position (origin) - Vector3 direction; // Ray direction (normalized) -} Ray; - -// RayCollision, ray hit information -typedef struct RayCollision { - bool hit; // Did the ray hit something? - float distance; // Distance to the nearest hit - Vector3 point; // Point of the nearest hit - Vector3 normal; // Surface normal of hit -} RayCollision; - -// BoundingBox -typedef struct BoundingBox { - Vector3 min; // Minimum vertex box-corner - Vector3 max; // Maximum vertex box-corner -} BoundingBox; - -// Wave, audio wave data -typedef struct Wave { - unsigned int frameCount; // Total number of frames (considering channels) - unsigned int sampleRate; // Frequency (samples per second) - unsigned int sampleSize; // Bit depth (bits per sample): 8, 16, 32 (24 not supported) - unsigned int channels; // Number of channels (1-mono, 2-stereo, ...) - void *data; // Buffer data pointer -} Wave; - -// Opaque structs declaration -// NOTE: Actual structs are defined internally in raudio module -typedef struct rAudioBuffer rAudioBuffer; -typedef struct rAudioProcessor rAudioProcessor; - -// AudioStream, custom audio stream -typedef struct AudioStream { - rAudioBuffer *buffer; // Pointer to internal data used by the audio system - rAudioProcessor *processor; // Pointer to internal data processor, useful for audio effects - - unsigned int sampleRate; // Frequency (samples per second) - unsigned int sampleSize; // Bit depth (bits per sample): 8, 16, 32 (24 not supported) - unsigned int channels; // Number of channels (1-mono, 2-stereo, ...) -} AudioStream; - -// Sound -typedef struct Sound { - AudioStream stream; // Audio stream - unsigned int frameCount; // Total number of frames (considering channels) -} Sound; - -// Music, audio stream, anything longer than ~10 seconds should be streamed -typedef struct Music { - AudioStream stream; // Audio stream - unsigned int frameCount; // Total number of frames (considering channels) - bool looping; // Music looping enable - - int ctxType; // Type of music context (audio filetype) - void *ctxData; // Audio context data, depends on type -} Music; - -// VrDeviceInfo, Head-Mounted-Display device parameters -typedef struct VrDeviceInfo { - int hResolution; // Horizontal resolution in pixels - int vResolution; // Vertical resolution in pixels - float hScreenSize; // Horizontal size in meters - float vScreenSize; // Vertical size in meters - float eyeToScreenDistance; // Distance between eye and display in meters - float lensSeparationDistance; // Lens separation distance in meters - float interpupillaryDistance; // IPD (distance between pupils) in meters - float lensDistortionValues[4]; // Lens distortion constant parameters - float chromaAbCorrection[4]; // Chromatic aberration correction parameters -} VrDeviceInfo; - -// VrStereoConfig, VR stereo rendering configuration for simulator -typedef struct VrStereoConfig { - Matrix projection[2]; // VR projection matrices (per eye) - Matrix viewOffset[2]; // VR view offset matrices (per eye) - float leftLensCenter[2]; // VR left lens center - float rightLensCenter[2]; // VR right lens center - float leftScreenCenter[2]; // VR left screen center - float rightScreenCenter[2]; // VR right screen center - float scale[2]; // VR distortion scale - float scaleIn[2]; // VR distortion scale in -} VrStereoConfig; - -// File path list -typedef struct FilePathList { - unsigned int count; // Filepaths entries count - char **paths; // Filepaths entries -} FilePathList; - -// Automation event -typedef struct AutomationEvent { - unsigned int frame; // Event frame - unsigned int type; // Event type (AutomationEventType) - int params[4]; // Event parameters (if required) -} AutomationEvent; - -// Automation event list -typedef struct AutomationEventList { - unsigned int capacity; // Events max entries (MAX_AUTOMATION_EVENTS) - unsigned int count; // Events entries count - AutomationEvent *events; // Events entries -} AutomationEventList; - -//---------------------------------------------------------------------------------- -// Enumerators Definition -//---------------------------------------------------------------------------------- -// System/Window config flags -// NOTE: Every bit registers one state (use it with bit masks) -// By default all flags are set to 0 -typedef enum { - FLAG_VSYNC_HINT = 0x00000040, // Set to try enabling V-Sync on GPU - FLAG_FULLSCREEN_MODE = 0x00000002, // Set to run program in fullscreen - FLAG_WINDOW_RESIZABLE = 0x00000004, // Set to allow resizable window - FLAG_WINDOW_UNDECORATED = 0x00000008, // Set to disable window decoration (frame and buttons) - FLAG_WINDOW_HIDDEN = 0x00000080, // Set to hide window - FLAG_WINDOW_MINIMIZED = 0x00000200, // Set to minimize window (iconify) - FLAG_WINDOW_MAXIMIZED = 0x00000400, // Set to maximize window (expanded to monitor) - FLAG_WINDOW_UNFOCUSED = 0x00000800, // Set to window non focused - FLAG_WINDOW_TOPMOST = 0x00001000, // Set to window always on top - FLAG_WINDOW_ALWAYS_RUN = 0x00000100, // Set to allow windows running while minimized - FLAG_WINDOW_TRANSPARENT = 0x00000010, // Set to allow transparent framebuffer - FLAG_WINDOW_HIGHDPI = 0x00002000, // Set to support HighDPI - FLAG_WINDOW_MOUSE_PASSTHROUGH = 0x00004000, // Set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED - FLAG_BORDERLESS_WINDOWED_MODE = 0x00008000, // Set to run program in borderless windowed mode - FLAG_MSAA_4X_HINT = 0x00000020, // Set to try enabling MSAA 4X - FLAG_INTERLACED_HINT = 0x00010000 // Set to try enabling interlaced video format (for V3D) -} ConfigFlags; - -// Trace log level -// NOTE: Organized by priority level -typedef enum { - LOG_ALL = 0, // Display all logs - LOG_TRACE, // Trace logging, intended for internal use only - LOG_DEBUG, // Debug logging, used for internal debugging, it should be disabled on release builds - LOG_INFO, // Info logging, used for program execution info - LOG_WARNING, // Warning logging, used on recoverable failures - LOG_ERROR, // Error logging, used on unrecoverable failures - LOG_FATAL, // Fatal logging, used to abort program: exit(EXIT_FAILURE) - LOG_NONE // Disable logging -} TraceLogLevel; - -// Keyboard keys (US keyboard layout) -// NOTE: Use GetKeyPressed() to allow redefining required keys for alternative layouts -typedef enum { - KEY_NULL = 0, // Key: NULL, used for no key pressed - // Alphanumeric keys - KEY_APOSTROPHE = 39, // Key: ' - KEY_COMMA = 44, // Key: , - KEY_MINUS = 45, // Key: - - KEY_PERIOD = 46, // Key: . - KEY_SLASH = 47, // Key: / - KEY_ZERO = 48, // Key: 0 - KEY_ONE = 49, // Key: 1 - KEY_TWO = 50, // Key: 2 - KEY_THREE = 51, // Key: 3 - KEY_FOUR = 52, // Key: 4 - KEY_FIVE = 53, // Key: 5 - KEY_SIX = 54, // Key: 6 - KEY_SEVEN = 55, // Key: 7 - KEY_EIGHT = 56, // Key: 8 - KEY_NINE = 57, // Key: 9 - KEY_SEMICOLON = 59, // Key: ; - KEY_EQUAL = 61, // Key: = - KEY_A = 65, // Key: A | a - KEY_B = 66, // Key: B | b - KEY_C = 67, // Key: C | c - KEY_D = 68, // Key: D | d - KEY_E = 69, // Key: E | e - KEY_F = 70, // Key: F | f - KEY_G = 71, // Key: G | g - KEY_H = 72, // Key: H | h - KEY_I = 73, // Key: I | i - KEY_J = 74, // Key: J | j - KEY_K = 75, // Key: K | k - KEY_L = 76, // Key: L | l - KEY_M = 77, // Key: M | m - KEY_N = 78, // Key: N | n - KEY_O = 79, // Key: O | o - KEY_P = 80, // Key: P | p - KEY_Q = 81, // Key: Q | q - KEY_R = 82, // Key: R | r - KEY_S = 83, // Key: S | s - KEY_T = 84, // Key: T | t - KEY_U = 85, // Key: U | u - KEY_V = 86, // Key: V | v - KEY_W = 87, // Key: W | w - KEY_X = 88, // Key: X | x - KEY_Y = 89, // Key: Y | y - KEY_Z = 90, // Key: Z | z - KEY_LEFT_BRACKET = 91, // Key: [ - KEY_BACKSLASH = 92, // Key: '\' - KEY_RIGHT_BRACKET = 93, // Key: ] - KEY_GRAVE = 96, // Key: ` - // Function keys - KEY_SPACE = 32, // Key: Space - KEY_ESCAPE = 256, // Key: Esc - KEY_ENTER = 257, // Key: Enter - KEY_TAB = 258, // Key: Tab - KEY_BACKSPACE = 259, // Key: Backspace - KEY_INSERT = 260, // Key: Ins - KEY_DELETE = 261, // Key: Del - KEY_RIGHT = 262, // Key: Cursor right - KEY_LEFT = 263, // Key: Cursor left - KEY_DOWN = 264, // Key: Cursor down - KEY_UP = 265, // Key: Cursor up - KEY_PAGE_UP = 266, // Key: Page up - KEY_PAGE_DOWN = 267, // Key: Page down - KEY_HOME = 268, // Key: Home - KEY_END = 269, // Key: End - KEY_CAPS_LOCK = 280, // Key: Caps lock - KEY_SCROLL_LOCK = 281, // Key: Scroll down - KEY_NUM_LOCK = 282, // Key: Num lock - KEY_PRINT_SCREEN = 283, // Key: Print screen - KEY_PAUSE = 284, // Key: Pause - KEY_F1 = 290, // Key: F1 - KEY_F2 = 291, // Key: F2 - KEY_F3 = 292, // Key: F3 - KEY_F4 = 293, // Key: F4 - KEY_F5 = 294, // Key: F5 - KEY_F6 = 295, // Key: F6 - KEY_F7 = 296, // Key: F7 - KEY_F8 = 297, // Key: F8 - KEY_F9 = 298, // Key: F9 - KEY_F10 = 299, // Key: F10 - KEY_F11 = 300, // Key: F11 - KEY_F12 = 301, // Key: F12 - KEY_LEFT_SHIFT = 340, // Key: Shift left - KEY_LEFT_CONTROL = 341, // Key: Control left - KEY_LEFT_ALT = 342, // Key: Alt left - KEY_LEFT_SUPER = 343, // Key: Super left - KEY_RIGHT_SHIFT = 344, // Key: Shift right - KEY_RIGHT_CONTROL = 345, // Key: Control right - KEY_RIGHT_ALT = 346, // Key: Alt right - KEY_RIGHT_SUPER = 347, // Key: Super right - KEY_KB_MENU = 348, // Key: KB menu - // Keypad keys - KEY_KP_0 = 320, // Key: Keypad 0 - KEY_KP_1 = 321, // Key: Keypad 1 - KEY_KP_2 = 322, // Key: Keypad 2 - KEY_KP_3 = 323, // Key: Keypad 3 - KEY_KP_4 = 324, // Key: Keypad 4 - KEY_KP_5 = 325, // Key: Keypad 5 - KEY_KP_6 = 326, // Key: Keypad 6 - KEY_KP_7 = 327, // Key: Keypad 7 - KEY_KP_8 = 328, // Key: Keypad 8 - KEY_KP_9 = 329, // Key: Keypad 9 - KEY_KP_DECIMAL = 330, // Key: Keypad . - KEY_KP_DIVIDE = 331, // Key: Keypad / - KEY_KP_MULTIPLY = 332, // Key: Keypad * - KEY_KP_SUBTRACT = 333, // Key: Keypad - - KEY_KP_ADD = 334, // Key: Keypad + - KEY_KP_ENTER = 335, // Key: Keypad Enter - KEY_KP_EQUAL = 336, // Key: Keypad = - // Android key buttons - KEY_BACK = 4, // Key: Android back button - KEY_MENU = 5, // Key: Android menu button - KEY_VOLUME_UP = 24, // Key: Android volume up button - KEY_VOLUME_DOWN = 25 // Key: Android volume down button -} KeyboardKey; - -// Add backwards compatibility support for deprecated names -#define MOUSE_LEFT_BUTTON MOUSE_BUTTON_LEFT -#define MOUSE_RIGHT_BUTTON MOUSE_BUTTON_RIGHT -#define MOUSE_MIDDLE_BUTTON MOUSE_BUTTON_MIDDLE - -// Mouse buttons -typedef enum { - MOUSE_BUTTON_LEFT = 0, // Mouse button left - MOUSE_BUTTON_RIGHT = 1, // Mouse button right - MOUSE_BUTTON_MIDDLE = 2, // Mouse button middle (pressed wheel) - MOUSE_BUTTON_SIDE = 3, // Mouse button side (advanced mouse device) - MOUSE_BUTTON_EXTRA = 4, // Mouse button extra (advanced mouse device) - MOUSE_BUTTON_FORWARD = 5, // Mouse button forward (advanced mouse device) - MOUSE_BUTTON_BACK = 6, // Mouse button back (advanced mouse device) -} MouseButton; - -// Mouse cursor -typedef enum { - MOUSE_CURSOR_DEFAULT = 0, // Default pointer shape - MOUSE_CURSOR_ARROW = 1, // Arrow shape - MOUSE_CURSOR_IBEAM = 2, // Text writing cursor shape - MOUSE_CURSOR_CROSSHAIR = 3, // Cross shape - MOUSE_CURSOR_POINTING_HAND = 4, // Pointing hand cursor - MOUSE_CURSOR_RESIZE_EW = 5, // Horizontal resize/move arrow shape - MOUSE_CURSOR_RESIZE_NS = 6, // Vertical resize/move arrow shape - MOUSE_CURSOR_RESIZE_NWSE = 7, // Top-left to bottom-right diagonal resize/move arrow shape - MOUSE_CURSOR_RESIZE_NESW = 8, // The top-right to bottom-left diagonal resize/move arrow shape - MOUSE_CURSOR_RESIZE_ALL = 9, // The omnidirectional resize/move cursor shape - MOUSE_CURSOR_NOT_ALLOWED = 10 // The operation-not-allowed shape -} MouseCursor; - -// Gamepad buttons -typedef enum { - GAMEPAD_BUTTON_UNKNOWN = 0, // Unknown button, just for error checking - GAMEPAD_BUTTON_LEFT_FACE_UP, // Gamepad left DPAD up button - GAMEPAD_BUTTON_LEFT_FACE_RIGHT, // Gamepad left DPAD right button - GAMEPAD_BUTTON_LEFT_FACE_DOWN, // Gamepad left DPAD down button - GAMEPAD_BUTTON_LEFT_FACE_LEFT, // Gamepad left DPAD left button - GAMEPAD_BUTTON_RIGHT_FACE_UP, // Gamepad right button up (i.e. PS3: Triangle, Xbox: Y) - GAMEPAD_BUTTON_RIGHT_FACE_RIGHT, // Gamepad right button right (i.e. PS3: Circle, Xbox: B) - GAMEPAD_BUTTON_RIGHT_FACE_DOWN, // Gamepad right button down (i.e. PS3: Cross, Xbox: A) - GAMEPAD_BUTTON_RIGHT_FACE_LEFT, // Gamepad right button left (i.e. PS3: Square, Xbox: X) - GAMEPAD_BUTTON_LEFT_TRIGGER_1, // Gamepad top/back trigger left (first), it could be a trailing button - GAMEPAD_BUTTON_LEFT_TRIGGER_2, // Gamepad top/back trigger left (second), it could be a trailing button - GAMEPAD_BUTTON_RIGHT_TRIGGER_1, // Gamepad top/back trigger right (first), it could be a trailing button - GAMEPAD_BUTTON_RIGHT_TRIGGER_2, // Gamepad top/back trigger right (second), it could be a trailing button - GAMEPAD_BUTTON_MIDDLE_LEFT, // Gamepad center buttons, left one (i.e. PS3: Select) - GAMEPAD_BUTTON_MIDDLE, // Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX) - GAMEPAD_BUTTON_MIDDLE_RIGHT, // Gamepad center buttons, right one (i.e. PS3: Start) - GAMEPAD_BUTTON_LEFT_THUMB, // Gamepad joystick pressed button left - GAMEPAD_BUTTON_RIGHT_THUMB // Gamepad joystick pressed button right -} GamepadButton; - -// Gamepad axes -typedef enum { - GAMEPAD_AXIS_LEFT_X = 0, // Gamepad left stick X axis - GAMEPAD_AXIS_LEFT_Y = 1, // Gamepad left stick Y axis - GAMEPAD_AXIS_RIGHT_X = 2, // Gamepad right stick X axis - GAMEPAD_AXIS_RIGHT_Y = 3, // Gamepad right stick Y axis - GAMEPAD_AXIS_LEFT_TRIGGER = 4, // Gamepad back trigger left, pressure level: [1..-1] - GAMEPAD_AXIS_RIGHT_TRIGGER = 5 // Gamepad back trigger right, pressure level: [1..-1] -} GamepadAxis; - -// Material map index -typedef enum { - MATERIAL_MAP_ALBEDO = 0, // Albedo material (same as: MATERIAL_MAP_DIFFUSE) - MATERIAL_MAP_METALNESS, // Metalness material (same as: MATERIAL_MAP_SPECULAR) - MATERIAL_MAP_NORMAL, // Normal material - MATERIAL_MAP_ROUGHNESS, // Roughness material - MATERIAL_MAP_OCCLUSION, // Ambient occlusion material - MATERIAL_MAP_EMISSION, // Emission material - MATERIAL_MAP_HEIGHT, // Heightmap material - MATERIAL_MAP_CUBEMAP, // Cubemap material (NOTE: Uses GL_TEXTURE_CUBE_MAP) - MATERIAL_MAP_IRRADIANCE, // Irradiance material (NOTE: Uses GL_TEXTURE_CUBE_MAP) - MATERIAL_MAP_PREFILTER, // Prefilter material (NOTE: Uses GL_TEXTURE_CUBE_MAP) - MATERIAL_MAP_BRDF // Brdf material -} MaterialMapIndex; - -#define MATERIAL_MAP_DIFFUSE MATERIAL_MAP_ALBEDO -#define MATERIAL_MAP_SPECULAR MATERIAL_MAP_METALNESS - -// Shader location index -// NOTE: Some locations are tried to be set automatically on shader loading, -// but only if default attributes/uniforms names are found, check config.h for names -typedef enum { - SHADER_LOC_VERTEX_POSITION = 0, // Shader location: vertex attribute: position - SHADER_LOC_VERTEX_TEXCOORD01, // Shader location: vertex attribute: texcoord01 - SHADER_LOC_VERTEX_TEXCOORD02, // Shader location: vertex attribute: texcoord02 - SHADER_LOC_VERTEX_NORMAL, // Shader location: vertex attribute: normal - SHADER_LOC_VERTEX_TANGENT, // Shader location: vertex attribute: tangent - SHADER_LOC_VERTEX_COLOR, // Shader location: vertex attribute: color - SHADER_LOC_MATRIX_MVP, // Shader location: matrix uniform: model-view-projection - SHADER_LOC_MATRIX_VIEW, // Shader location: matrix uniform: view (camera transform) - SHADER_LOC_MATRIX_PROJECTION, // Shader location: matrix uniform: projection - SHADER_LOC_MATRIX_MODEL, // Shader location: matrix uniform: model (transform) - SHADER_LOC_MATRIX_NORMAL, // Shader location: matrix uniform: normal - SHADER_LOC_VECTOR_VIEW, // Shader location: vector uniform: view - SHADER_LOC_COLOR_DIFFUSE, // Shader location: vector uniform: diffuse color - SHADER_LOC_COLOR_SPECULAR, // Shader location: vector uniform: specular color - SHADER_LOC_COLOR_AMBIENT, // Shader location: vector uniform: ambient color - SHADER_LOC_MAP_ALBEDO, // Shader location: sampler2d texture: albedo (same as: SHADER_LOC_MAP_DIFFUSE) - SHADER_LOC_MAP_METALNESS, // Shader location: sampler2d texture: metalness (same as: SHADER_LOC_MAP_SPECULAR) - SHADER_LOC_MAP_NORMAL, // Shader location: sampler2d texture: normal - SHADER_LOC_MAP_ROUGHNESS, // Shader location: sampler2d texture: roughness - SHADER_LOC_MAP_OCCLUSION, // Shader location: sampler2d texture: occlusion - SHADER_LOC_MAP_EMISSION, // Shader location: sampler2d texture: emission - SHADER_LOC_MAP_HEIGHT, // Shader location: sampler2d texture: heightmap - SHADER_LOC_MAP_CUBEMAP, // Shader location: samplerCube texture: cubemap - SHADER_LOC_MAP_IRRADIANCE, // Shader location: samplerCube texture: irradiance - SHADER_LOC_MAP_PREFILTER, // Shader location: samplerCube texture: prefilter - SHADER_LOC_MAP_BRDF, // Shader location: sampler2d texture: brdf - SHADER_LOC_VERTEX_BONEIDS, // Shader location: vertex attribute: bone indices - SHADER_LOC_VERTEX_BONEWEIGHTS, // Shader location: vertex attribute: bone weights - SHADER_LOC_MATRIX_BONETRANSFORMS, // Shader location: matrix attribute: bone transforms (animation) - SHADER_LOC_VERTEX_INSTANCETRANSFORM // Shader location: vertex attribute: instance transforms -} ShaderLocationIndex; - -#define SHADER_LOC_MAP_DIFFUSE SHADER_LOC_MAP_ALBEDO -#define SHADER_LOC_MAP_SPECULAR SHADER_LOC_MAP_METALNESS - -// Shader uniform data type -typedef enum { - SHADER_UNIFORM_FLOAT = 0, // Shader uniform type: float - SHADER_UNIFORM_VEC2, // Shader uniform type: vec2 (2 float) - SHADER_UNIFORM_VEC3, // Shader uniform type: vec3 (3 float) - SHADER_UNIFORM_VEC4, // Shader uniform type: vec4 (4 float) - SHADER_UNIFORM_INT, // Shader uniform type: int - SHADER_UNIFORM_IVEC2, // Shader uniform type: ivec2 (2 int) - SHADER_UNIFORM_IVEC3, // Shader uniform type: ivec3 (3 int) - SHADER_UNIFORM_IVEC4, // Shader uniform type: ivec4 (4 int) - SHADER_UNIFORM_UINT, // Shader uniform type: unsigned int - SHADER_UNIFORM_UIVEC2, // Shader uniform type: uivec2 (2 unsigned int) - SHADER_UNIFORM_UIVEC3, // Shader uniform type: uivec3 (3 unsigned int) - SHADER_UNIFORM_UIVEC4, // Shader uniform type: uivec4 (4 unsigned int) - SHADER_UNIFORM_SAMPLER2D // Shader uniform type: sampler2d -} ShaderUniformDataType; - -// Shader attribute data types -typedef enum { - SHADER_ATTRIB_FLOAT = 0, // Shader attribute type: float - SHADER_ATTRIB_VEC2, // Shader attribute type: vec2 (2 float) - SHADER_ATTRIB_VEC3, // Shader attribute type: vec3 (3 float) - SHADER_ATTRIB_VEC4 // Shader attribute type: vec4 (4 float) -} ShaderAttributeDataType; - -// Pixel formats -// NOTE: Support depends on OpenGL version and platform -typedef enum { - PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1, // 8 bit per pixel (no alpha) - PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA, // 8*2 bpp (2 channels) - PIXELFORMAT_UNCOMPRESSED_R5G6B5, // 16 bpp - PIXELFORMAT_UNCOMPRESSED_R8G8B8, // 24 bpp - PIXELFORMAT_UNCOMPRESSED_R5G5B5A1, // 16 bpp (1 bit alpha) - PIXELFORMAT_UNCOMPRESSED_R4G4B4A4, // 16 bpp (4 bit alpha) - PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, // 32 bpp - PIXELFORMAT_UNCOMPRESSED_R32, // 32 bpp (1 channel - float) - PIXELFORMAT_UNCOMPRESSED_R32G32B32, // 32*3 bpp (3 channels - float) - PIXELFORMAT_UNCOMPRESSED_R32G32B32A32, // 32*4 bpp (4 channels - float) - PIXELFORMAT_UNCOMPRESSED_R16, // 16 bpp (1 channel - half float) - PIXELFORMAT_UNCOMPRESSED_R16G16B16, // 16*3 bpp (3 channels - half float) - PIXELFORMAT_UNCOMPRESSED_R16G16B16A16, // 16*4 bpp (4 channels - half float) - PIXELFORMAT_COMPRESSED_DXT1_RGB, // 4 bpp (no alpha) - PIXELFORMAT_COMPRESSED_DXT1_RGBA, // 4 bpp (1 bit alpha) - PIXELFORMAT_COMPRESSED_DXT3_RGBA, // 8 bpp - PIXELFORMAT_COMPRESSED_DXT5_RGBA, // 8 bpp - PIXELFORMAT_COMPRESSED_ETC1_RGB, // 4 bpp - PIXELFORMAT_COMPRESSED_ETC2_RGB, // 4 bpp - PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA, // 8 bpp - PIXELFORMAT_COMPRESSED_PVRT_RGB, // 4 bpp - PIXELFORMAT_COMPRESSED_PVRT_RGBA, // 4 bpp - PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA, // 8 bpp - PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA // 2 bpp -} PixelFormat; - -// Texture parameters: filter mode -// NOTE 1: Filtering considers mipmaps if available in the texture -// NOTE 2: Filter is accordingly set for minification and magnification -typedef enum { - TEXTURE_FILTER_POINT = 0, // No filter, just pixel approximation - TEXTURE_FILTER_BILINEAR, // Linear filtering - TEXTURE_FILTER_TRILINEAR, // Trilinear filtering (linear with mipmaps) - TEXTURE_FILTER_ANISOTROPIC_4X, // Anisotropic filtering 4x - TEXTURE_FILTER_ANISOTROPIC_8X, // Anisotropic filtering 8x - TEXTURE_FILTER_ANISOTROPIC_16X, // Anisotropic filtering 16x -} TextureFilter; - -// Texture parameters: wrap mode -typedef enum { - TEXTURE_WRAP_REPEAT = 0, // Repeats texture in tiled mode - TEXTURE_WRAP_CLAMP, // Clamps texture to edge pixel in tiled mode - TEXTURE_WRAP_MIRROR_REPEAT, // Mirrors and repeats the texture in tiled mode - TEXTURE_WRAP_MIRROR_CLAMP // Mirrors and clamps to border the texture in tiled mode -} TextureWrap; - -// Cubemap layouts -typedef enum { - CUBEMAP_LAYOUT_AUTO_DETECT = 0, // Automatically detect layout type - CUBEMAP_LAYOUT_LINE_VERTICAL, // Layout is defined by a vertical line with faces - CUBEMAP_LAYOUT_LINE_HORIZONTAL, // Layout is defined by a horizontal line with faces - CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR, // Layout is defined by a 3x4 cross with cubemap faces - CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE // Layout is defined by a 4x3 cross with cubemap faces -} CubemapLayout; - -// Font type, defines generation method -typedef enum { - FONT_DEFAULT = 0, // Default font generation, anti-aliased - FONT_BITMAP, // Bitmap font generation, no anti-aliasing - FONT_SDF // SDF font generation, requires external shader -} FontType; - -// Color blending modes (pre-defined) -typedef enum { - BLEND_ALPHA = 0, // Blend textures considering alpha (default) - BLEND_ADDITIVE, // Blend textures adding colors - BLEND_MULTIPLIED, // Blend textures multiplying colors - BLEND_ADD_COLORS, // Blend textures adding colors (alternative) - BLEND_SUBTRACT_COLORS, // Blend textures subtracting colors (alternative) - BLEND_ALPHA_PREMULTIPLY, // Blend premultiplied textures considering alpha - BLEND_CUSTOM, // Blend textures using custom src/dst factors (use rlSetBlendFactors()) - BLEND_CUSTOM_SEPARATE // Blend textures using custom rgb/alpha separate src/dst factors (use rlSetBlendFactorsSeparate()) -} BlendMode; - -// Gesture -// NOTE: Provided as bit-wise flags to enable only desired gestures -typedef enum { - GESTURE_NONE = 0, // No gesture - GESTURE_TAP = 1, // Tap gesture - GESTURE_DOUBLETAP = 2, // Double tap gesture - GESTURE_HOLD = 4, // Hold gesture - GESTURE_DRAG = 8, // Drag gesture - GESTURE_SWIPE_RIGHT = 16, // Swipe right gesture - GESTURE_SWIPE_LEFT = 32, // Swipe left gesture - GESTURE_SWIPE_UP = 64, // Swipe up gesture - GESTURE_SWIPE_DOWN = 128, // Swipe down gesture - GESTURE_PINCH_IN = 256, // Pinch in gesture - GESTURE_PINCH_OUT = 512 // Pinch out gesture -} Gesture; - -// Camera system modes -typedef enum { - CAMERA_CUSTOM = 0, // Camera custom, controlled by user (UpdateCamera() does nothing) - CAMERA_FREE, // Camera free mode - CAMERA_ORBITAL, // Camera orbital, around target, zoom supported - CAMERA_FIRST_PERSON, // Camera first person - CAMERA_THIRD_PERSON // Camera third person -} CameraMode; - -// Camera projection -typedef enum { - CAMERA_PERSPECTIVE = 0, // Perspective projection - CAMERA_ORTHOGRAPHIC // Orthographic projection -} CameraProjection; - -// N-patch layout -typedef enum { - NPATCH_NINE_PATCH = 0, // Npatch layout: 3x3 tiles - NPATCH_THREE_PATCH_VERTICAL, // Npatch layout: 1x3 tiles - NPATCH_THREE_PATCH_HORIZONTAL // Npatch layout: 3x1 tiles -} NPatchLayout; - -// Callbacks to hook some internal functions -// WARNING: These callbacks are intended for advanced users -typedef void (*TraceLogCallback)(int logLevel, const char *text, va_list args); // Logging: Redirect trace log messages -typedef unsigned char *(*LoadFileDataCallback)(const char *fileName, int *dataSize); // FileIO: Load binary data -typedef bool (*SaveFileDataCallback)(const char *fileName, void *data, int dataSize); // FileIO: Save binary data -typedef char *(*LoadFileTextCallback)(const char *fileName); // FileIO: Load text data -typedef bool (*SaveFileTextCallback)(const char *fileName, const char *text); // FileIO: Save text data - -//------------------------------------------------------------------------------------ -// Global Variables Definition -//------------------------------------------------------------------------------------ -// It's lonely here... - -//------------------------------------------------------------------------------------ -// Window and Graphics Device Functions (Module: core) -//------------------------------------------------------------------------------------ - -#if defined(__cplusplus) -extern "C" { // Prevents name mangling of functions -#endif - -// Window-related functions -RLAPI void InitWindow(int width, int height, const char *title); // Initialize window and OpenGL context -RLAPI void CloseWindow(void); // Close window and unload OpenGL context -RLAPI bool WindowShouldClose(void); // Check if application should close (KEY_ESCAPE pressed or windows close icon clicked) -RLAPI bool IsWindowReady(void); // Check if window has been initialized successfully -RLAPI bool IsWindowFullscreen(void); // Check if window is currently fullscreen -RLAPI bool IsWindowHidden(void); // Check if window is currently hidden -RLAPI bool IsWindowMinimized(void); // Check if window is currently minimized -RLAPI bool IsWindowMaximized(void); // Check if window is currently maximized -RLAPI bool IsWindowFocused(void); // Check if window is currently focused -RLAPI bool IsWindowResized(void); // Check if window has been resized last frame -RLAPI bool IsWindowState(unsigned int flag); // Check if one specific window flag is enabled -RLAPI void SetWindowState(unsigned int flags); // Set window configuration state using flags -RLAPI void ClearWindowState(unsigned int flags); // Clear window configuration state flags -RLAPI void ToggleFullscreen(void); // Toggle window state: fullscreen/windowed, resizes monitor to match window resolution -RLAPI void ToggleBorderlessWindowed(void); // Toggle window state: borderless windowed, resizes window to match monitor resolution -RLAPI void MaximizeWindow(void); // Set window state: maximized, if resizable -RLAPI void MinimizeWindow(void); // Set window state: minimized, if resizable -RLAPI void RestoreWindow(void); // Restore window from being minimized/maximized -RLAPI void SetWindowIcon(Image image); // Set icon for window (single image, RGBA 32bit) -RLAPI void SetWindowIcons(Image *images, int count); // Set icon for window (multiple images, RGBA 32bit) -RLAPI void SetWindowTitle(const char *title); // Set title for window -RLAPI void SetWindowPosition(int x, int y); // Set window position on screen -RLAPI void SetWindowMonitor(int monitor); // Set monitor for the current window -RLAPI void SetWindowMinSize(int width, int height); // Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE) -RLAPI void SetWindowMaxSize(int width, int height); // Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE) -RLAPI void SetWindowSize(int width, int height); // Set window dimensions -RLAPI void SetWindowOpacity(float opacity); // Set window opacity [0.0f..1.0f] -RLAPI void SetWindowFocused(void); // Set window focused -RLAPI void *GetWindowHandle(void); // Get native window handle -RLAPI int GetScreenWidth(void); // Get current screen width -RLAPI int GetScreenHeight(void); // Get current screen height -RLAPI int GetRenderWidth(void); // Get current render width (it considers HiDPI) -RLAPI int GetRenderHeight(void); // Get current render height (it considers HiDPI) -RLAPI int GetMonitorCount(void); // Get number of connected monitors -RLAPI int GetCurrentMonitor(void); // Get current monitor where window is placed -RLAPI Vector2 GetMonitorPosition(int monitor); // Get specified monitor position -RLAPI int GetMonitorWidth(int monitor); // Get specified monitor width (current video mode used by monitor) -RLAPI int GetMonitorHeight(int monitor); // Get specified monitor height (current video mode used by monitor) -RLAPI int GetMonitorPhysicalWidth(int monitor); // Get specified monitor physical width in millimetres -RLAPI int GetMonitorPhysicalHeight(int monitor); // Get specified monitor physical height in millimetres -RLAPI int GetMonitorRefreshRate(int monitor); // Get specified monitor refresh rate -RLAPI Vector2 GetWindowPosition(void); // Get window position XY on monitor -RLAPI Vector2 GetWindowScaleDPI(void); // Get window scale DPI factor -RLAPI const char *GetMonitorName(int monitor); // Get the human-readable, UTF-8 encoded name of the specified monitor -RLAPI void SetClipboardText(const char *text); // Set clipboard text content -RLAPI const char *GetClipboardText(void); // Get clipboard text content -RLAPI Image GetClipboardImage(void); // Get clipboard image content -RLAPI void EnableEventWaiting(void); // Enable waiting for events on EndDrawing(), no automatic event polling -RLAPI void DisableEventWaiting(void); // Disable waiting for events on EndDrawing(), automatic events polling - -// 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 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); // Begin 2D mode with custom camera (2D) -RLAPI void EndMode2D(void); // Ends 2D mode with custom camera -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); // 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, 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 -RLAPI void BeginVrStereoMode(VrStereoConfig config); // Begin stereo rendering (requires VR simulator) -RLAPI void EndVrStereoMode(void); // End stereo rendering (requires VR simulator) - -// VR stereo config functions for VR simulator -RLAPI VrStereoConfig LoadVrStereoConfig(VrDeviceInfo device); // Load VR stereo config for VR simulator device parameters -RLAPI void UnloadVrStereoConfig(VrStereoConfig config); // Unload VR stereo config - -// Shader management functions -// NOTE: Shader functionality is not available on OpenGL 1.1 -RLAPI Shader LoadShader(const char *vsFileName, const char *fsFileName); // Load shader from files and bind default locations -RLAPI Shader LoadShaderFromMemory(const char *vsCode, const char *fsCode); // Load shader from code strings and bind default locations -RLAPI bool IsShaderValid(Shader shader); // Check if a shader is valid (loaded on GPU) -RLAPI int GetShaderLocation(Shader shader, const char *uniformName); // Get shader uniform location -RLAPI int GetShaderLocationAttrib(Shader shader, const char *attribName); // Get shader attribute location -RLAPI void SetShaderValue(Shader shader, int locIndex, const void *value, int uniformType); // Set shader uniform value -RLAPI void SetShaderValueV(Shader shader, int locIndex, const void *value, int uniformType, int count); // Set shader uniform value vector -RLAPI void SetShaderValueMatrix(Shader shader, int locIndex, Matrix mat); // Set shader uniform value (matrix 4x4) -RLAPI void SetShaderValueTexture(Shader shader, int locIndex, Texture2D texture); // Set shader uniform value and bind the texture (sampler2d) -RLAPI void UnloadShader(Shader shader); // Unload shader from GPU memory (VRAM) - -// Screen-space-related functions -#define GetMouseRay GetScreenToWorldRay // Compatibility hack for previous raylib versions -RLAPI Ray GetScreenToWorldRay(Vector2 position, Camera camera); // Get a ray trace from screen position (i.e mouse) -RLAPI Ray GetScreenToWorldRayEx(Vector2 position, Camera camera, int width, int height); // Get a ray trace from screen position (i.e mouse) in a viewport -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 -RLAPI Matrix GetCameraMatrix(Camera camera); // Get camera transform matrix (view matrix) -RLAPI Matrix GetCameraMatrix2D(Camera2D camera); // Get camera 2d transform matrix - -// Timing-related functions -RLAPI void SetTargetFPS(int fps); // Set target FPS (maximum) -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() -RLAPI int GetFPS(void); // Get current FPS - -// Custom frame control functions -// NOTE: Those functions are intended for advanced users that want full control over the frame processing -// By default EndDrawing() does this job: draws everything + SwapScreenBuffer() + manage frame timing + 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(double seconds); // Wait for some time (halt program execution) - -// Random values generation functions -RLAPI void SetRandomSeed(unsigned int seed); // Set the seed for the random number generator -RLAPI int GetRandomValue(int min, int max); // Get a random value between min and max (both included) -RLAPI int *LoadRandomSequence(unsigned int count, int min, int max); // Load random values sequence, no values repeated -RLAPI void UnloadRandomSequence(int *sequence); // Unload random values sequence - -// Misc. functions -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 OpenURL(const char *url); // Open URL with default system browser (if available) - -// Logging system -RLAPI void SetTraceLogLevel(int logLevel); // Set the current threshold (minimum) log level -RLAPI void TraceLog(int logLevel, const char *text, ...); // Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...) -RLAPI void SetTraceLogCallback(TraceLogCallback callback); // Set custom trace log - -// Memory management, using internal allocators -RLAPI void *MemAlloc(unsigned int size); // Internal memory allocator -RLAPI void *MemRealloc(void *ptr, unsigned int size); // Internal memory reallocator -RLAPI void MemFree(void *ptr); // Internal memory free - -// File system management functions -RLAPI unsigned char *LoadFileData(const char *fileName, int *dataSize); // Load file data as byte array (read) -RLAPI void UnloadFileData(unsigned char *data); // Unload file data allocated by LoadFileData() -RLAPI bool SaveFileData(const char *fileName, void *data, int dataSize); // Save data to file from byte array (write), returns true on success -RLAPI bool ExportDataAsCode(const unsigned char *data, int dataSize, const char *fileName); // Export data to code (.h), returns true on success -RLAPI char *LoadFileText(const char *fileName); // Load text data from file (read), returns a '\0' terminated string -RLAPI void UnloadFileText(char *text); // Unload file text data allocated by LoadFileText() -RLAPI bool SaveFileText(const char *fileName, const char *text); // Save text data to file (write), string must be '\0' terminated, returns true on success - -// File access custom callbacks -// WARNING: Callbacks setup is intended for advanced users -RLAPI void SetLoadFileDataCallback(LoadFileDataCallback callback); // Set custom file binary data loader -RLAPI void SetSaveFileDataCallback(SaveFileDataCallback callback); // Set custom file binary data saver -RLAPI void SetLoadFileTextCallback(LoadFileTextCallback callback); // Set custom file text data loader -RLAPI void SetSaveFileTextCallback(SaveFileTextCallback callback); // Set custom file text data saver - -RLAPI int FileRename(const char *fileName, const char *fileRename); // Rename file (if exists) -RLAPI int FileRemove(const char *fileName); // Remove file (if exists) -RLAPI int FileCopy(const char *srcPath, const char *dstPath); // Copy file from one path to another, dstPath created if it doesn't exist -RLAPI int FileMove(const char *srcPath, const char *dstPath); // Move file from one directory to another, dstPath created if it doesn't exist -RLAPI int FileTextReplace(const char *fileName, const char *search, const char *replacement); // Replace text in an existing file -RLAPI int FileTextFindIndex(const char *fileName, const char *search); // Find text in existing file -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 (recommended include point: .png, .wav) -RLAPI int GetFileLength(const char *fileName); // Get file length in bytes (NOTE: GetFileSize() conflicts with windows.h) -RLAPI long GetFileModTime(const char *fileName); // Get file modification time (last write time) -RLAPI const char *GetFileExtension(const char *fileName); // Get pointer to extension for a filename string (includes dot: '.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) -RLAPI const char *GetPrevDirectoryPath(const char *dirPath); // Get previous directory path for a given path (uses static string) -RLAPI const char *GetWorkingDirectory(void); // Get current working directory (uses static string) -RLAPI const char *GetApplicationDirectory(void); // Get the directory of the running application (uses static string) -RLAPI int MakeDirectory(const char *dirPath); // Create directories (including full path requested), returns 0 on success -RLAPI bool ChangeDirectory(const char *dirPath); // Change working directory, return true on success -RLAPI bool IsPathFile(const char *path); // Check if a given path is a file or a directory -RLAPI bool IsFileNameValid(const char *fileName); // Check if fileName is valid for the platform/OS -RLAPI FilePathList LoadDirectoryFiles(const char *dirPath); // Load directory filepaths -RLAPI FilePathList LoadDirectoryFilesEx(const char *basePath, const char *filter, bool scanSubdirs); // Load directory filepaths with extension filtering and recursive directory scan. Use 'DIR' in the filter string to include directories in the result -RLAPI void UnloadDirectoryFiles(FilePathList files); // Unload filepaths -RLAPI bool IsFileDropped(void); // Check if a file has been dropped into window -RLAPI FilePathList LoadDroppedFiles(void); // Load dropped filepaths -RLAPI void UnloadDroppedFiles(FilePathList files); // Unload dropped filepaths -RLAPI unsigned int GetDirectoryFileCount(const char *dirPath); // Get the file count in a directory -RLAPI unsigned int GetDirectoryFileCountEx(const char *basePath, const char *filter, bool scanSubdirs);// Get the file count in a directory with extension filtering and recursive directory scan. Use 'DIR' in the filter string to include directories in the result - -// Compression/Encoding functionality -RLAPI unsigned char *CompressData(const unsigned char *data, int dataSize, int *compDataSize); // Compress data (DEFLATE algorithm), memory must be MemFree() -RLAPI unsigned char *DecompressData(const unsigned char *compData, int compDataSize, int *dataSize); // Decompress data (DEFLATE algorithm), memory must be MemFree() -RLAPI char *EncodeDataBase64(const unsigned char *data, int dataSize, int *outputSize); // Encode data to Base64 string (includes NULL terminator), memory must be MemFree() -RLAPI unsigned char *DecodeDataBase64(const char *text, int *outputSize); // Decode Base64 string (expected NULL terminated), memory must be MemFree() -RLAPI unsigned int ComputeCRC32(unsigned char *data, int dataSize); // Compute CRC32 hash code -RLAPI unsigned int *ComputeMD5(unsigned char *data, int dataSize); // Compute MD5 hash code, returns static int[4] (16 bytes) -RLAPI unsigned int *ComputeSHA1(unsigned char *data, int dataSize); // Compute SHA1 hash code, returns static int[5] (20 bytes) -RLAPI unsigned int *ComputeSHA256(unsigned char *data, int dataSize); // Compute SHA256 hash code, returns static int[8] (32 bytes) - -// Automation events functionality -RLAPI AutomationEventList LoadAutomationEventList(const char *fileName); // Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS -RLAPI void UnloadAutomationEventList(AutomationEventList list); // Unload automation events list from file -RLAPI bool ExportAutomationEventList(AutomationEventList list, const char *fileName); // Export automation events list as text file -RLAPI void SetAutomationEventList(AutomationEventList *list); // Set automation event list to record to -RLAPI void SetAutomationEventBaseFrame(int frame); // Set automation event internal base frame to start recording -RLAPI void StartAutomationEventRecording(void); // Start recording automation events (AutomationEventList must be set) -RLAPI void StopAutomationEventRecording(void); // Stop recording automation events -RLAPI void PlayAutomationEvent(AutomationEvent event); // Play a recorded automation event - -//------------------------------------------------------------------------------------ -// Input Handling Functions (Module: core) -//------------------------------------------------------------------------------------ - -// Input-related functions: keyboard -RLAPI bool IsKeyPressed(int key); // Check if a key has been pressed once -RLAPI bool IsKeyPressedRepeat(int key); // Check if a key has been pressed again -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 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 -RLAPI const char *GetKeyName(int key); // Get name of a QWERTY key on the current keyboard layout (eg returns string 'q' for KEY_A on an AZERTY keyboard) -RLAPI void SetExitKey(int key); // Set a custom key to exit program (default is ESC) - -// Input-related functions: gamepads -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); // Get axis count for a gamepad -RLAPI float GetGamepadAxisMovement(int gamepad, int axis); // Get movement value for a gamepad axis -RLAPI int SetGamepadMappings(const char *mappings); // Set internal gamepad mappings (SDL_GameControllerDB) -RLAPI void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor, float duration); // Set gamepad vibration for both motors (duration in seconds) - -// Input-related functions: mouse -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); // Get mouse wheel movement for X or Y, whichever is larger -RLAPI Vector2 GetMouseWheelMoveV(void); // Get mouse wheel movement for both X and Y -RLAPI void SetMouseCursor(int cursor); // Set mouse cursor - -// Input-related functions: touch -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: rgestures) -//------------------------------------------------------------------------------------ -RLAPI void SetGesturesEnabled(unsigned int flags); // Enable a set of gestures using flags -RLAPI bool IsGestureDetected(unsigned int gesture); // Check if a gesture have been detected -RLAPI int GetGestureDetected(void); // Get latest detected gesture -RLAPI float GetGestureHoldDuration(void); // Get gesture hold time in seconds -RLAPI Vector2 GetGestureDragVector(void); // Get gesture drag vector -RLAPI float GetGestureDragAngle(void); // Get gesture drag angle -RLAPI Vector2 GetGesturePinchVector(void); // Get gesture pinch delta -RLAPI float GetGesturePinchAngle(void); // Get gesture pinch angle - -//------------------------------------------------------------------------------------ -// Camera System Functions (Module: rcamera) -//------------------------------------------------------------------------------------ -RLAPI void UpdateCamera(Camera *camera, int mode); // Update camera position for selected mode -RLAPI void UpdateCameraPro(Camera *camera, Vector3 movement, Vector3 rotation, float zoom); // Update camera movement/rotation - -//------------------------------------------------------------------------------------ -// Basic Shapes Drawing Functions (Module: shapes) -//------------------------------------------------------------------------------------ -// 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 Texture2D GetShapesTexture(void); // Get texture that is used for shapes drawing -RLAPI Rectangle GetShapesTextureRectangle(void); // Get texture source rectangle that is used for shapes drawing - -// Basic shapes drawing functions -RLAPI void DrawPixel(int posX, int posY, Color color); // Draw a pixel using geometry [Can be slow, use with care] -RLAPI void DrawPixelV(Vector2 position, Color color); // Draw a pixel using geometry (Vector version) [Can be slow, use with care] -RLAPI void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw a line -RLAPI void DrawLineV(Vector2 startPos, Vector2 endPos, Color color); // Draw a line (using gl lines) -RLAPI void DrawLineEx(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw a line (using triangles/quads) -RLAPI void DrawLineStrip(const Vector2 *points, int pointCount, Color color); // Draw lines sequence (using gl lines) -RLAPI void DrawLineBezier(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw line segment cubic-bezier in-out interpolation -RLAPI void DrawLineDashed(Vector2 startPos, Vector2 endPos, int dashSize, int spaceSize, Color color); // Draw a dashed line -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 -RLAPI void DrawCircleGradient(int centerX, int centerY, float radius, Color inner, Color outer); // Draw a gradient-filled circle -RLAPI void DrawCircleV(Vector2 center, float radius, Color color); // Draw a color-filled circle (Vector version) -RLAPI void DrawCircleLines(int centerX, int centerY, float radius, Color color); // Draw circle outline -RLAPI void DrawCircleLinesV(Vector2 center, float radius, Color color); // Draw circle outline (Vector version) -RLAPI void DrawEllipse(int centerX, int centerY, float radiusH, float radiusV, Color color); // Draw ellipse -RLAPI void DrawEllipseV(Vector2 center, float radiusH, float radiusV, Color color); // Draw ellipse (Vector version) -RLAPI void DrawEllipseLines(int centerX, int centerY, float radiusH, float radiusV, Color color); // Draw ellipse outline -RLAPI void DrawEllipseLinesV(Vector2 center, float radiusH, float radiusV, Color color); // Draw ellipse outline (Vector version) -RLAPI void DrawRing(Vector2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, int segments, Color color); // Draw ring -RLAPI void DrawRingLines(Vector2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, int segments, Color color); // Draw ring outline -RLAPI void DrawRectangle(int posX, int posY, int width, int height, Color color); // Draw a color-filled rectangle -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 top, Color bottom); // Draw a vertical-gradient-filled rectangle -RLAPI void DrawRectangleGradientH(int posX, int posY, int width, int height, Color left, Color right); // Draw a horizontal-gradient-filled rectangle -RLAPI void DrawRectangleGradientEx(Rectangle rec, Color topLeft, Color bottomLeft, Color bottomRight, Color topRight); // 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, 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, Color color); // Draw rectangle lines with rounded edges -RLAPI void DrawRectangleRoundedLinesEx(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(const Vector2 *points, int pointCount, Color color); // Draw a triangle fan defined by points (first vertex is the center) -RLAPI void DrawTriangleStrip(const 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 - -// Splines drawing functions -RLAPI void DrawSplineLinear(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Linear, minimum 2 points -RLAPI void DrawSplineBasis(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: B-Spline, minimum 4 points -RLAPI void DrawSplineCatmullRom(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Catmull-Rom, minimum 4 points -RLAPI void DrawSplineBezierQuadratic(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] -RLAPI void DrawSplineBezierCubic(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] -RLAPI void DrawSplineSegmentLinear(Vector2 p1, Vector2 p2, float thick, Color color); // Draw spline segment: Linear, 2 points -RLAPI void DrawSplineSegmentBasis(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color); // Draw spline segment: B-Spline, 4 points -RLAPI void DrawSplineSegmentCatmullRom(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color); // Draw spline segment: Catmull-Rom, 4 points -RLAPI void DrawSplineSegmentBezierQuadratic(Vector2 p1, Vector2 c2, Vector2 p3, float thick, Color color); // Draw spline segment: Quadratic Bezier, 2 points, 1 control point -RLAPI void DrawSplineSegmentBezierCubic(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, float thick, Color color); // Draw spline segment: Cubic Bezier, 2 points, 2 control points - -// Spline segment point evaluation functions, for a given t [0.0f .. 1.0f] -RLAPI Vector2 GetSplinePointLinear(Vector2 startPos, Vector2 endPos, float t); // Get (evaluate) spline point: Linear -RLAPI Vector2 GetSplinePointBasis(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float t); // Get (evaluate) spline point: B-Spline -RLAPI Vector2 GetSplinePointCatmullRom(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float t); // Get (evaluate) spline point: Catmull-Rom -RLAPI Vector2 GetSplinePointBezierQuad(Vector2 p1, Vector2 c2, Vector2 p3, float t); // Get (evaluate) spline point: Quadratic Bezier -RLAPI Vector2 GetSplinePointBezierCubic(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, float t); // Get (evaluate) spline point: Cubic Bezier - -// Basic shapes collision detection functions -RLAPI bool CheckCollisionRecs(Rectangle rec1, Rectangle rec2); // Check collision between two rectangles -RLAPI bool CheckCollisionCircles(Vector2 center1, float radius1, Vector2 center2, float radius2); // Check collision between two circles -RLAPI bool CheckCollisionCircleRec(Vector2 center, float radius, Rectangle rec); // Check collision between circle and rectangle -RLAPI bool CheckCollisionCircleLine(Vector2 center, float radius, Vector2 p1, Vector2 p2); // Check if circle collides with a line created betweeen two points [p1] and [p2] -RLAPI bool CheckCollisionPointRec(Vector2 point, Rectangle rec); // Check if point is inside rectangle -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 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 bool CheckCollisionPointPoly(Vector2 point, const Vector2 *points, int pointCount); // Check if point is within a polygon described by array of vertices -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 Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2); // Get collision rectangle for two rectangles collision - -//------------------------------------------------------------------------------------ -// Texture Loading and Drawing Functions (Module: textures) -//------------------------------------------------------------------------------------ - -// Image loading functions -// NOTE: These functions do not require GPU access -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 LoadImageAnimFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int *frames); // Load image sequence from memory buffer -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 bool IsImageValid(Image image); // Check if an image is valid (data and parameters) -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 unsigned char *ExportImageToMemory(Image image, const char *fileType, int *fileSize); // Export image to memory buffer -RLAPI bool ExportImageAsCode(Image image, const char *fileName); // Export image as code file defining an array of bytes, returns true on success - -// Image generation functions -RLAPI Image GenImageColor(int width, int height, Color color); // Generate image: plain color -RLAPI Image GenImageGradientLinear(int width, int height, int direction, Color start, Color end); // Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient -RLAPI Image GenImageGradientRadial(int width, int height, float density, Color inner, Color outer); // Generate image: radial gradient -RLAPI Image GenImageGradientSquare(int width, int height, float density, Color inner, Color outer); // Generate image: square 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 GenImageText(int width, int height, const char *text); // Generate image: grayscale image from text data - -// Image manipulation functions -RLAPI Image ImageCopy(Image image); // Create an image duplicate (useful for transformations) -RLAPI Image ImageFromImage(Image image, Rectangle rec); // Create an image from another image piece -RLAPI Image ImageFromChannel(Image image, int selectedChannel); // Create an image from a selected channel of another image (GRAYSCALE) -RLAPI Image ImageText(const char *text, int fontSize, Color color); // Create an image from text (default font) -RLAPI Image ImageTextEx(Font font, const char *text, float fontSize, float spacing, Color tint); // Create an image from text (custom sprite font) -RLAPI void ImageFormat(Image *image, int newFormat); // Convert image data to desired format -RLAPI void ImageToPOT(Image *image, Color fill); // Convert image to POT (power-of-two) -RLAPI void ImageCrop(Image *image, Rectangle crop); // Crop an image to a defined rectangle -RLAPI void ImageAlphaCrop(Image *image, float threshold); // Crop image depending on alpha value -RLAPI void ImageAlphaClear(Image *image, Color color, float threshold); // Clear alpha channel to desired color -RLAPI void ImageAlphaMask(Image *image, Image alphaMask); // Apply alpha mask to image -RLAPI void ImageAlphaPremultiply(Image *image); // Premultiply alpha channel -RLAPI void ImageBlurGaussian(Image *image, int blurSize); // Apply Gaussian blur using a box blur approximation -RLAPI void ImageKernelConvolution(Image *image, const float *kernel, int kernelSize); // Apply custom square convolution kernel to 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); // 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 -RLAPI void ImageRotate(Image *image, int degrees); // Rotate image by input angle in degrees (-359 to 359) -RLAPI void ImageRotateCW(Image *image); // Rotate image clockwise 90deg -RLAPI void ImageRotateCCW(Image *image); // Rotate image counter-clockwise 90deg -RLAPI void ImageColorTint(Image *image, Color color); // Modify image color: tint -RLAPI void ImageColorInvert(Image *image); // Modify image color: invert -RLAPI void ImageColorGrayscale(Image *image); // Modify image color: grayscale -RLAPI void ImageColorContrast(Image *image, float contrast); // Modify image color: contrast (-100 to 100) -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 *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) -RLAPI void ImageClearBackground(Image *dst, Color color); // Clear image background with given color -RLAPI void ImageDrawPixel(Image *dst, int posX, int posY, Color color); // Draw pixel within an image -RLAPI void ImageDrawPixelV(Image *dst, Vector2 position, Color color); // Draw pixel within an image (Vector version) -RLAPI void ImageDrawLine(Image *dst, int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw line within an image -RLAPI void ImageDrawLineV(Image *dst, Vector2 start, Vector2 end, Color color); // Draw line within an image (Vector version) -RLAPI void ImageDrawLineEx(Image *dst, Vector2 start, Vector2 end, int thick, Color color); // Draw a line defining thickness within an image -RLAPI void ImageDrawCircle(Image *dst, int centerX, int centerY, int radius, Color color); // Draw a filled circle within an image -RLAPI void ImageDrawCircleV(Image *dst, Vector2 center, int radius, Color color); // Draw a filled circle within an image (Vector version) -RLAPI void ImageDrawCircleLines(Image *dst, int centerX, int centerY, int radius, Color color); // Draw circle outline within an image -RLAPI void ImageDrawCircleLinesV(Image *dst, Vector2 center, int radius, Color color); // Draw circle outline within an image (Vector version) -RLAPI void ImageDrawRectangle(Image *dst, int posX, int posY, int width, int height, Color color); // Draw rectangle within an image -RLAPI void ImageDrawRectangleV(Image *dst, Vector2 position, Vector2 size, Color color); // Draw rectangle within an image (Vector version) -RLAPI void ImageDrawRectangleRec(Image *dst, Rectangle rec, Color color); // Draw rectangle within an image -RLAPI void ImageDrawRectangleLines(Image *dst, Rectangle rec, int thick, Color color); // Draw rectangle lines within an image -RLAPI void ImageDrawTriangle(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle within an image -RLAPI void ImageDrawTriangleEx(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color c1, Color c2, Color c3); // Draw triangle with interpolated colors within an image -RLAPI void ImageDrawTriangleLines(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle outline within an image -RLAPI void ImageDrawTriangleFan(Image *dst, const Vector2 *points, int pointCount, Color color); // Draw a triangle fan defined by points within an image (first vertex is the center) -RLAPI void ImageDrawTriangleStrip(Image *dst, const Vector2 *points, int pointCount, Color color); // Draw a triangle strip defined by points within an image -RLAPI void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color tint); // Draw a source image within a destination image (tint applied to source) -RLAPI void ImageDrawText(Image *dst, const char *text, int posX, int posY, int fontSize, Color color); // Draw text (using default font) within an image (destination) -RLAPI void ImageDrawTextEx(Image *dst, Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint); // Draw text (custom sprite font) within an image (destination) - -// Texture loading functions -// NOTE: These functions require GPU access -RLAPI Texture2D LoadTexture(const char *fileName); // Load texture from file into GPU memory (VRAM) -RLAPI Texture2D LoadTextureFromImage(Image image); // Load texture from image data -RLAPI TextureCubemap LoadTextureCubemap(Image image, int layout); // Load cubemap from image, multiple image cubemap layouts supported -RLAPI RenderTexture2D LoadRenderTexture(int width, int height); // Load texture for rendering (framebuffer) -RLAPI bool IsTextureValid(Texture2D texture); // Check if a texture is valid (loaded in GPU) -RLAPI void UnloadTexture(Texture2D texture); // Unload texture from GPU memory (VRAM) -RLAPI bool IsRenderTextureValid(RenderTexture2D target); // Check if a render texture is valid (loaded in GPU) -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 (pixels should be able to fill texture) -RLAPI void UpdateTextureRec(Texture2D texture, Rectangle rec, const void *pixels); // Update GPU texture rectangle with new data (pixels and rec should fit in texture) - -// Texture configuration functions -RLAPI void GenTextureMipmaps(Texture2D *texture); // Generate GPU mipmaps for a texture -RLAPI void SetTextureFilter(Texture2D texture, int filter); // Set texture scaling filter mode -RLAPI void SetTextureWrap(Texture2D texture, int wrap); // Set texture wrapping mode - -// Texture drawing functions -RLAPI void DrawTexture(Texture2D texture, int posX, int posY, Color tint); // Draw a Texture2D -RLAPI void DrawTextureV(Texture2D texture, Vector2 position, Color tint); // Draw a Texture2D with position defined as Vector2 -RLAPI void DrawTextureEx(Texture2D texture, Vector2 position, float rotation, float scale, Color tint); // Draw a Texture2D with extended parameters -RLAPI void DrawTextureRec(Texture2D texture, Rectangle source, Vector2 position, Color tint); // Draw a part of a texture defined by a rectangle -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 - -// Color/pixel related functions -RLAPI bool ColorIsEqual(Color col1, Color col2); // Check if two colors are equal -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 (0xRRGGBBAA) -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 ColorTint(Color color, Color tint); // Get color multiplied with another color -RLAPI Color ColorBrightness(Color color, float factor); // Get color with brightness correction, brightness factor goes from -1.0f to 1.0f -RLAPI Color ColorContrast(Color color, float contrast); // Get color with contrast correction, contrast values between -1.0f and 1.0f -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 ColorLerp(Color color1, Color color2, float factor); // Get color lerp interpolation between two colors, factor [0.0f..1.0f] -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 - -//------------------------------------------------------------------------------------ -// Font Loading and Text Drawing Functions (Module: text) -//------------------------------------------------------------------------------------ - -// 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, const int *codepoints, int codepointCount); // Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height -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, const int *codepoints, int codepointCount); // Load font from memory buffer, fileType refers to extension: i.e. '.ttf' -RLAPI bool IsFontValid(Font font); // Check if a font is valid (font data loaded, WARNING: GPU texture not checked) -RLAPI GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSize, const int *codepoints, int codepointCount, int type, int *glyphCount); // Load font data for further use -RLAPI Image GenImageFontAtlas(const GlyphInfo *glyphs, Rectangle **glyphRecs, int glyphCount, int fontSize, int padding, int packMethod); // Generate image font atlas using chars info -RLAPI void UnloadFontData(GlyphInfo *glyphs, int glyphCount); // Unload font chars info data (RAM) -RLAPI void UnloadFont(Font font); // Unload font from GPU memory (VRAM) -RLAPI bool ExportFontAsCode(Font font, const char *fileName); // Export font as code file, returns true on success - -// 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 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) -RLAPI void DrawTextCodepoints(Font font, const int *codepoints, int codepointCount, Vector2 position, float fontSize, float spacing, Color tint); // Draw multiple character (codepoint) - -// Text font info functions -RLAPI void SetTextLineSpacing(int spacing); // Set vertical line spacing when drawing with line-breaks -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 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 char *LoadUTF8(const int *codepoints, int length); // Load UTF-8 text encoded from codepoints array -RLAPI void UnloadUTF8(char *text); // Unload UTF-8 text encoded from codepoints array -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 *codepointSize); // Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure -RLAPI int GetCodepointNext(const char *text, int *codepointSize); // Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure -RLAPI int GetCodepointPrevious(const char *text, int *codepointSize); // Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure -RLAPI const char *CodepointToUTF8(int codepoint, int *utf8Size); // Encode one codepoint into UTF-8 byte array (array length returned as parameter) - -// Text strings management functions (no UTF-8 strings, only byte chars) -// WARNING 1: Most of these functions use internal static buffers[], it's recommended to store returned data on user-side for re-use -// WARNING 2: Some strings allocate memory internally for the returned strings, those strings must be free by user using MemFree() -RLAPI char **LoadTextLines(const char *text, int *count); // Load text as separate lines ('\n') -RLAPI void UnloadTextLines(char **text, int lineCount); // Unload text lines -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 *TextSubtext(const char *text, int position, int length); // Get a piece of a text string -RLAPI const char *TextRemoveSpaces(const char *text); // Remove text spaces, concat words -RLAPI char *GetTextBetween(const char *text, const char *begin, const char *end); // Get text between two strings -RLAPI char *TextReplace(const char *text, const char *search, const char *replacement); // Replace text string (WARNING: memory must be freed!) -RLAPI char *TextReplaceBetween(const char *text, const char *begin, const char *end, const char *replacement); // Replace text between two specific strings (WARNING: memory must be freed!) -RLAPI char *TextInsert(const char *text, const char *insert, int position); // Insert text in a position (WARNING: memory must be freed!) -RLAPI char *TextJoin(char **textList, int count, const char *delimiter); // Join text strings with delimiter -RLAPI char **TextSplit(const char *text, char delimiter, int *count); // Split text into multiple strings, using MAX_TEXTSPLIT_COUNT static strings -RLAPI void TextAppend(char *text, const char *append, int *position); // Append text at specific position and move cursor -RLAPI int TextFindIndex(const char *text, const char *search); // Find first text occurrence within a string, -1 if not found -RLAPI char *TextToUpper(const char *text); // Get upper case version of provided string -RLAPI char *TextToLower(const char *text); // Get lower case version of provided string -RLAPI char *TextToPascal(const char *text); // Get Pascal case notation version of provided string -RLAPI char *TextToSnake(const char *text); // Get Snake case notation version of provided string -RLAPI char *TextToCamel(const char *text); // Get Camel case notation version of provided string -RLAPI int TextToInteger(const char *text); // Get integer value from text -RLAPI float TextToFloat(const char *text); // Get float value from text - -//------------------------------------------------------------------------------------ -// Basic 3d Shapes Drawing Functions (Module: models) -//------------------------------------------------------------------------------------ - -// Basic geometric 3D shapes drawing functions -RLAPI void DrawLine3D(Vector3 startPos, Vector3 endPos, Color color); // Draw a line in 3D world space -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(const 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 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 DrawCapsule(Vector3 startPos, Vector3 endPos, float radius, int slices, int rings, Color color); // Draw a capsule with the center of its sphere caps at startPos and endPos -RLAPI void DrawCapsuleWires(Vector3 startPos, Vector3 endPos, float radius, int slices, int rings, Color color); // Draw capsule wireframe with the center of its sphere caps at startPos and 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)) - -//------------------------------------------------------------------------------------ -// Model 3d Loading and Drawing Functions (Module: models) -//------------------------------------------------------------------------------------ - -// 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 bool IsModelValid(Model model); // Check if a model is valid (loaded in GPU, VAO/VBOs) -RLAPI void UnloadModel(Model model); // Unload model (including meshes) from memory (RAM and/or VRAM) -RLAPI BoundingBox GetModelBoundingBox(Model model); // Compute model bounding box limits (considers all meshes) - -// 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 DrawModelPoints(Model model, Vector3 position, float scale, Color tint); // Draw a model as points -RLAPI void DrawModelPointsEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model as points with extended parameters -RLAPI void DrawBoundingBox(BoundingBox box, Color color); // Draw bounding box (wires) -RLAPI void DrawBillboard(Camera camera, Texture2D texture, Vector3 position, float scale, 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, const 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, const Matrix *transforms, int instances); // Draw multiple mesh instances with material and different transforms -RLAPI BoundingBox GetMeshBoundingBox(Mesh mesh); // Compute mesh bounding box limits -RLAPI void GenMeshTangents(Mesh *mesh); // Compute mesh tangents -RLAPI bool ExportMesh(Mesh mesh, const char *fileName); // Export mesh data to file, returns true on success -RLAPI bool ExportMeshAsCode(Mesh mesh, const char *fileName); // Export mesh as code file (.h) defining multiple arrays of vertex attributes - -// Mesh generation functions -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 - -// 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 bool IsMaterialValid(Material material); // Check if a material is valid (shader assigned, map textures loaded in GPU) -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 *animCount); // Load model animations from file -RLAPI void UpdateModelAnimation(Model model, ModelAnimation anim, float frame); // Update model animation pose (vertex buffers and bone matrices) -RLAPI void UpdateModelAnimationEx(Model model, ModelAnimation animA, float frameA, ModelAnimation animB, float frameB, float blend); // Update model animation pose, blending two animations -RLAPI void UnloadModelAnimations(ModelAnimation *animations, int animCount); // 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); // 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 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) -//------------------------------------------------------------------------------------ -typedef void (*AudioCallback)(void *bufferData, unsigned int frames); - -// Audio device management functions -RLAPI void InitAudioDevice(void); // Initialize audio device and context -RLAPI void CloseAudioDevice(void); // Close the audio device and context -RLAPI bool IsAudioDeviceReady(void); // Check if audio device has been initialized successfully -RLAPI void SetMasterVolume(float volume); // Set master volume (listener) -RLAPI float GetMasterVolume(void); // Get master volume (listener) - -// 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. '.wav' -RLAPI bool IsWaveValid(Wave wave); // Checks if wave data is valid (data loaded and parameters) -RLAPI Sound LoadSound(const char *fileName); // Load sound from file -RLAPI Sound LoadSoundFromWave(Wave wave); // Load sound from wave data -RLAPI Sound LoadSoundAlias(Sound source); // Create a new sound that shares the same sample data as the source sound, does not own the sound data -RLAPI bool IsSoundValid(Sound sound); // Checks if a sound is valid (data loaded and buffers initialized) -RLAPI void UpdateSound(Sound sound, const void *data, int sampleCount); // Update sound buffer with new data (default data format: 32 bit float, stereo) -RLAPI void UnloadWave(Wave wave); // Unload wave data -RLAPI void UnloadSound(Sound sound); // Unload sound -RLAPI void UnloadSoundAlias(Sound alias); // Unload a sound alias (does not deallocate sample data) -RLAPI bool ExportWave(Wave wave, const char *fileName); // Export wave data to file, returns true on success -RLAPI bool ExportWaveAsCode(Wave wave, const char *fileName); // Export wave sample data to code (.h), returns true on success - -// Wave/Sound management functions -RLAPI void PlaySound(Sound sound); // Play a sound -RLAPI void StopSound(Sound sound); // Stop playing a sound -RLAPI void PauseSound(Sound sound); // Pause a sound -RLAPI void ResumeSound(Sound sound); // Resume a paused sound -RLAPI bool IsSoundPlaying(Sound sound); // Check if a sound is currently playing -RLAPI void SetSoundVolume(Sound sound, float volume); // Set volume for a sound (1.0 is max level) -RLAPI void SetSoundPitch(Sound sound, float pitch); // Set pitch for a sound (1.0 is base level) -RLAPI void SetSoundPan(Sound sound, float pan); // Set pan for a sound (-1.0 left, 0.0 center, 1.0 right) -RLAPI Wave WaveCopy(Wave wave); // Copy a wave to a new wave -RLAPI void WaveCrop(Wave *wave, int initFrame, int finalFrame); // Crop a wave to defined frames range -RLAPI void WaveFormat(Wave *wave, int sampleRate, int sampleSize, int channels); // Convert wave data to desired format -RLAPI float *LoadWaveSamples(Wave wave); // Load samples data from wave as a 32bit float data array -RLAPI void UnloadWaveSamples(float *samples); // Unload samples data loaded with LoadWaveSamples() - -// Music management functions -RLAPI Music LoadMusicStream(const char *fileName); // Load music stream from file -RLAPI Music LoadMusicStreamFromMemory(const char *fileType, const unsigned char *data, int dataSize); // Load music stream from data -RLAPI bool IsMusicValid(Music music); // Checks if a music stream is valid (context and buffers initialized) -RLAPI void UnloadMusicStream(Music music); // Unload music stream -RLAPI void PlayMusicStream(Music music); // Start music 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 void SetMusicPan(Music music, float pan); // Set pan for a music (-1.0 left, 0.0 center, 1.0 right) -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 LoadAudioStream(unsigned int sampleRate, unsigned int sampleSize, unsigned int channels); // Load audio stream (to stream raw audio pcm data) -RLAPI bool IsAudioStreamValid(AudioStream stream); // Checks if an audio stream is valid (buffers initialized) -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 -RLAPI void ResumeAudioStream(AudioStream stream); // Resume audio stream -RLAPI bool IsAudioStreamPlaying(AudioStream stream); // Check if audio stream is playing -RLAPI void StopAudioStream(AudioStream stream); // Stop audio stream -RLAPI void SetAudioStreamVolume(AudioStream stream, float volume); // Set volume for audio stream (1.0 is max level) -RLAPI void SetAudioStreamPitch(AudioStream stream, float pitch); // Set pitch for audio stream (1.0 is base level) -RLAPI void SetAudioStreamPan(AudioStream stream, float pan); // Set pan for audio stream (0.5 is centered) -RLAPI void SetAudioStreamBufferSizeDefault(int size); // Default size for new audio streams -RLAPI void SetAudioStreamCallback(AudioStream stream, AudioCallback callback); // Audio thread callback to request new data - -RLAPI void AttachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Attach audio stream processor to stream, receives frames x 2 samples as 'float' (stereo) -RLAPI void DetachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Detach audio stream processor from stream - -RLAPI void AttachAudioMixedProcessor(AudioCallback processor); // Attach audio stream processor to the entire audio pipeline, receives frames x 2 samples as 'float' (stereo) -RLAPI void DetachAudioMixedProcessor(AudioCallback processor); // Detach audio stream processor from the entire audio pipeline - -#if defined(__cplusplus) -} -#endif - -#endif // RAYLIB_H +/********************************************************************************************** +* +* raylib v5.5 - A simple and easy-to-use library to enjoy videogames programming (www.raylib.com) +* +* FEATURES: +* - NO external dependencies, all required libraries included with raylib +* - Multiplatform: Windows, Linux, FreeBSD, OpenBSD, NetBSD, DragonFly, +* MacOS, Haiku, Android, Raspberry Pi, DRM native, HTML5. +* - Written in plain C code (C99) in PascalCase/camelCase notation +* - Hardware accelerated with OpenGL (1.1, 2.1, 3.3, 4.3, ES2, ES3 - choose at compile) +* - Unique OpenGL abstraction layer (usable as standalone module): [rlgl] +* - Multiple Fonts formats supported (TTF, OTF, FNT, BDF, Sprite fonts) +* - Outstanding texture formats support, including compressed formats (DXT, ETC, ASTC) +* - Full 3d support for 3d Shapes, Models, Billboards, Heightmaps and more! +* - Flexible Materials system, supporting classic maps and PBR maps +* - Animated 3D models supported (skeletal bones animation) (IQM, M3D, GLTF) +* - Shaders support, including Model shaders and Postprocessing shaders +* - Powerful math module for Vector, Matrix and Quaternion operations: [raymath] +* - Audio loading and playing with streaming support (WAV, OGG, MP3, FLAC, QOA, XM, MOD) +* - VR stereo rendering with configurable HMD device parameters +* - Bindings to multiple programming languages available! +* +* NOTES: +* - One default Font is loaded on InitWindow()->LoadFontDefault() [core, text] +* - One default Texture2D is loaded on rlglInit(), 1x1 white pixel R8G8B8A8 [rlgl] (OpenGL 3.3 or ES2) +* - One default Shader is loaded on rlglInit()->rlLoadShaderDefault() [rlgl] (OpenGL 3.3 or ES2) +* - One default RenderBatch is loaded on rlglInit()->rlLoadRenderBatch() [rlgl] (OpenGL 3.3 or ES2) +* +* DEPENDENCIES (included): +* [rcore][GLFW] rglfw (Camilla Löwy - github.com/glfw/glfw) for window/context management and input +* [rcore][RGFW] rgfw (ColleagueRiley - github.com/ColleagueRiley/RGFW) for window/context management and input +* [rlgl] glad/glad_gles2 (David Herberth - github.com/Dav1dde/glad) for OpenGL 3.3 extensions loading +* [raudio] miniaudio (David Reid - github.com/mackron/miniaudio) for audio device/context management +* +* OPTIONAL DEPENDENCIES (included): +* [rcore] msf_gif (Miles Fogle) for GIF recording +* [rcore] sinfl (Micha Mettke) for DEFLATE decompression algorithm +* [rcore] sdefl (Micha Mettke) for DEFLATE compression algorithm +* [rcore] rprand (Ramon Snatamaria) for pseudo-random numbers generation +* [rtextures] qoi (Dominic Szablewski - https://phoboslab.org) for QOI image manage +* [rtextures] stb_image (Sean Barret) for images loading (BMP, TGA, PNG, JPEG, HDR...) +* [rtextures] stb_image_write (Sean Barret) for image writing (BMP, TGA, PNG, JPG) +* [rtextures] stb_image_resize2 (Sean Barret) for image resizing algorithms +* [rtextures] stb_perlin (Sean Barret) for Perlin Noise image generation +* [rtext] stb_truetype (Sean Barret) for ttf fonts loading +* [rtext] stb_rect_pack (Sean Barret) for rectangles packing +* [rmodels] par_shapes (Philip Rideout) for parametric 3d shapes generation +* [rmodels] tinyobj_loader_c (Syoyo Fujita) for models loading (OBJ, MTL) +* [rmodels] cgltf (Johannes Kuhlmann) for models loading (glTF) +* [rmodels] m3d (bzt) for models loading (M3D, https://bztsrc.gitlab.io/model3d) +* [rmodels] vox_loader (Johann Nadalutti) for models loading (VOX) +* [raudio] dr_wav (David Reid) for WAV audio file loading +* [raudio] dr_flac (David Reid) for FLAC audio file loading +* [raudio] dr_mp3 (David Reid) for MP3 audio file loading +* [raudio] stb_vorbis (Sean Barret) for OGG audio loading +* [raudio] jar_xm (Joshua Reisenauer) for XM audio module loading +* [raudio] jar_mod (Joshua Reisenauer) for MOD audio module loading +* [raudio] qoa (Dominic Szablewski - https://phoboslab.org) for QOA audio manage +* +* +* LICENSE: zlib/libpng +* +* raylib is licensed under an unmodified zlib/libpng license, which is an OSI-certified, +* BSD-like license that allows static linking with closed source software: +* +* Copyright (c) 2013-2024 Ramon Santamaria (@raysan5) +* +* This software is provided "as-is", without any express or implied warranty. In no event +* will the authors be held liable for any damages arising from the use of this software. +* +* Permission is granted to anyone to use this software for any purpose, including commercial +* applications, and to alter it and redistribute it freely, subject to the following restrictions: +* +* 1. The origin of this software must not be misrepresented; you must not claim that you +* wrote the original software. If you use this software in a product, an acknowledgment +* in the product documentation would be appreciated but is not required. +* +* 2. Altered source versions must be plainly marked as such, and must not be misrepresented +* as being the original software. +* +* 3. This notice may not be removed or altered from any source distribution. +* +**********************************************************************************************/ + +#ifndef RAYLIB_H +#define RAYLIB_H + +#include // Required for: va_list - Only used by TraceLogCallback + +#define RAYLIB_VERSION_MAJOR 5 +#define RAYLIB_VERSION_MINOR 5 +#define RAYLIB_VERSION_PATCH 0 +#define RAYLIB_VERSION "5.5" + +// Function specifiers in case library is build/used as a shared library +// NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll +// NOTE: visibility("default") attribute makes symbols "visible" when compiled with -fvisibility=hidden +#if defined(_WIN32) + #if defined(__TINYC__) + #define __declspec(x) __attribute__((x)) + #endif + #if defined(BUILD_LIBTYPE_SHARED) + #define RLAPI __declspec(dllexport) // We are building the library as a Win32 shared library (.dll) + #elif defined(USE_LIBTYPE_SHARED) + #define RLAPI __declspec(dllimport) // We are using the library as a Win32 shared library (.dll) + #endif +#else + #if defined(BUILD_LIBTYPE_SHARED) + #define RLAPI __attribute__((visibility("default"))) // We are building as a Unix shared library (.so/.dylib) + #endif +#endif + +#ifndef RLAPI + #define RLAPI // Functions defined as 'extern' by default (implicit specifiers) +#endif + +//---------------------------------------------------------------------------------- +// Some basic Defines +//---------------------------------------------------------------------------------- +#ifndef PI + #define PI 3.14159265358979323846f +#endif +#ifndef DEG2RAD + #define DEG2RAD (PI/180.0f) +#endif +#ifndef RAD2DEG + #define RAD2DEG (180.0f/PI) +#endif + +// Allow custom memory allocators +// NOTE: Require recompiling raylib sources +#ifndef RL_MALLOC + #define RL_MALLOC(sz) malloc(sz) +#endif +#ifndef RL_CALLOC + #define RL_CALLOC(n,sz) calloc(n,sz) +#endif +#ifndef RL_REALLOC + #define RL_REALLOC(ptr,sz) realloc(ptr,sz) +#endif +#ifndef RL_FREE + #define RL_FREE(ptr) free(ptr) +#endif + +// NOTE: MSVC C++ compiler does not support compound literals (C99 feature) +// Plain structures in C++ (without constructors) can be initialized with { } +// This is called aggregate initialization (C++11 feature) +#if defined(__cplusplus) + #define CLITERAL(type) type +#else + #define CLITERAL(type) (type) +#endif + +// Some compilers (mostly macos clang) default to C++98, +// where aggregate initialization can't be used +// So, give a more clear error stating how to fix this +#if !defined(_MSC_VER) && (defined(__cplusplus) && __cplusplus < 201103L) + #error "C++11 or later is required. Add -std=c++11" +#endif + +// NOTE: We set some defines with some data types declared by raylib +// Other modules (raymath, rlgl) also require some of those types, so, +// to be able to use those other modules as standalone (not depending on raylib) +// this defines are very useful for internal check and avoid type (re)definitions +#define RL_COLOR_TYPE +#define RL_RECTANGLE_TYPE +#define RL_VECTOR2_TYPE +#define RL_VECTOR3_TYPE +#define RL_VECTOR4_TYPE +#define RL_QUATERNION_TYPE +#define RL_MATRIX_TYPE + +// Some Basic Colors +// NOTE: Custom raylib color palette for amazing visuals on WHITE background +#define LIGHTGRAY CLITERAL(Color){ 200, 200, 200, 255 } // Light Gray +#define GRAY CLITERAL(Color){ 130, 130, 130, 255 } // Gray +#define DARKGRAY CLITERAL(Color){ 80, 80, 80, 255 } // Dark Gray +#define YELLOW CLITERAL(Color){ 253, 249, 0, 255 } // Yellow +#define GOLD CLITERAL(Color){ 255, 203, 0, 255 } // Gold +#define ORANGE CLITERAL(Color){ 255, 161, 0, 255 } // Orange +#define PINK CLITERAL(Color){ 255, 109, 194, 255 } // Pink +#define RED CLITERAL(Color){ 230, 41, 55, 255 } // Red +#define MAROON CLITERAL(Color){ 190, 33, 55, 255 } // Maroon +#define GREEN CLITERAL(Color){ 0, 228, 48, 255 } // Green +#define LIME CLITERAL(Color){ 0, 158, 47, 255 } // Lime +#define DARKGREEN CLITERAL(Color){ 0, 117, 44, 255 } // Dark Green +#define SKYBLUE CLITERAL(Color){ 102, 191, 255, 255 } // Sky Blue +#define BLUE CLITERAL(Color){ 0, 121, 241, 255 } // Blue +#define DARKBLUE CLITERAL(Color){ 0, 82, 172, 255 } // Dark Blue +#define PURPLE CLITERAL(Color){ 200, 122, 255, 255 } // Purple +#define VIOLET CLITERAL(Color){ 135, 60, 190, 255 } // Violet +#define DARKPURPLE CLITERAL(Color){ 112, 31, 126, 255 } // Dark Purple +#define BEIGE CLITERAL(Color){ 211, 176, 131, 255 } // Beige +#define BROWN CLITERAL(Color){ 127, 106, 79, 255 } // Brown +#define DARKBROWN CLITERAL(Color){ 76, 63, 47, 255 } // Dark Brown + +#define WHITE CLITERAL(Color){ 255, 255, 255, 255 } // White +#define BLACK CLITERAL(Color){ 0, 0, 0, 255 } // Black +#define BLANK CLITERAL(Color){ 0, 0, 0, 0 } // Blank (Transparent) +#define MAGENTA CLITERAL(Color){ 255, 0, 255, 255 } // Magenta +#define RAYWHITE CLITERAL(Color){ 245, 245, 245, 255 } // My own White (raylib logo) + +//---------------------------------------------------------------------------------- +// Structures Definition +//---------------------------------------------------------------------------------- +// Boolean type +#if (defined(__STDC__) && __STDC_VERSION__ >= 199901L) || (defined(_MSC_VER) && _MSC_VER >= 1800) + #include +#elif !defined(__cplusplus) && !defined(bool) + typedef enum bool { false = 0, true = !false } bool; + #define RL_BOOL_TYPE +#endif + +// Vector2, 2 components +typedef struct Vector2 { + float x; // Vector x component + float y; // Vector y component +} Vector2; + +// Vector3, 3 components +typedef struct Vector3 { + float x; // Vector x component + float y; // Vector y component + float z; // Vector z component +} Vector3; + +// Vector4, 4 components +typedef struct Vector4 { + float x; // Vector x component + float y; // Vector y component + float z; // Vector z component + float w; // Vector w component +} Vector4; + +// Quaternion, 4 components (Vector4 alias) +typedef Vector4 Quaternion; + +// Matrix, 4x4 components, column major, OpenGL style, right-handed +typedef struct Matrix { + float m0, m4, m8, m12; // Matrix first row (4 components) + float m1, m5, m9, m13; // Matrix second row (4 components) + float m2, m6, m10, m14; // Matrix third row (4 components) + float m3, m7, m11, m15; // Matrix fourth row (4 components) +} Matrix; + +// Color, 4 components, R8G8B8A8 (32bit) +typedef struct Color { + unsigned char r; // Color red value + unsigned char g; // Color green value + unsigned char b; // Color blue value + unsigned char a; // Color alpha value +} Color; + +// Rectangle, 4 components +typedef struct Rectangle { + float x; // Rectangle top-left corner position x + float y; // Rectangle top-left corner position y + float width; // Rectangle width + float height; // Rectangle height +} Rectangle; + +// Image, pixel data stored in CPU memory (RAM) +typedef struct Image { + void *data; // Image raw data + int width; // Image base width + int height; // Image base height + int mipmaps; // Mipmap levels, 1 by default + int format; // Data format (PixelFormat type) +} Image; + +// Texture, tex data stored in GPU memory (VRAM) +typedef struct Texture { + unsigned int id; // OpenGL texture id + int width; // Texture base width + int height; // Texture base height + int mipmaps; // Mipmap levels, 1 by default + int format; // Data format (PixelFormat type) +} Texture; + +// Texture2D, same as Texture +typedef Texture Texture2D; + +// TextureCubemap, same as Texture +typedef Texture TextureCubemap; + +// RenderTexture, fbo for texture rendering +typedef struct RenderTexture { + unsigned int id; // OpenGL framebuffer object id + Texture texture; // Color buffer attachment texture + Texture depth; // Depth buffer attachment texture +} RenderTexture; + +// RenderTexture2D, same as RenderTexture +typedef RenderTexture RenderTexture2D; + +// NPatchInfo, n-patch layout info +typedef struct NPatchInfo { + Rectangle source; // Texture source rectangle + int left; // Left border offset + int top; // Top border offset + int right; // Right border offset + int bottom; // Bottom border offset + int layout; // Layout of the n-patch: 3x3, 1x3 or 3x1 +} NPatchInfo; + +// GlyphInfo, font characters glyphs info +typedef struct GlyphInfo { + int value; // Character value (Unicode) + int offsetX; // Character offset X when drawing + int offsetY; // Character offset Y when drawing + int advanceX; // Character advance position X + Image image; // Character image data +} GlyphInfo; + +// Font, font texture and GlyphInfo array data +typedef struct Font { + int baseSize; // Base size (default chars height) + int glyphCount; // Number of glyph characters + int glyphPadding; // Padding around the glyph characters + Texture2D texture; // Texture atlas containing the glyphs + Rectangle *recs; // Rectangles in texture for the glyphs + GlyphInfo *glyphs; // Glyphs info data +} Font; + +// Camera, defines position/orientation in 3d space +typedef struct Camera3D { + Vector3 position; // Camera position + Vector3 target; // Camera target it looks-at + Vector3 up; // Camera up vector (rotation over its axis) + float fovy; // Camera field-of-view aperture in Y (degrees) in perspective, used as near plane width in orthographic + int projection; // Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC +} Camera3D; + +typedef Camera3D Camera; // Camera type fallback, defaults to Camera3D + +// Camera2D, defines position/orientation in 2d space +typedef struct Camera2D { + Vector2 offset; // Camera offset (displacement from target) + Vector2 target; // Camera target (rotation and zoom origin) + float rotation; // Camera rotation in degrees + float zoom; // Camera zoom (scaling), should be 1.0f by default +} Camera2D; + +// Mesh, vertex data and vao/vbo +typedef struct Mesh { + int vertexCount; // Number of vertices stored in arrays + int triangleCount; // Number of triangles stored (indexed or not) + + // Vertex attributes data + float *vertices; // Vertex position (XYZ - 3 components per vertex) (shader-location = 0) + float *texcoords; // Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1) + float *texcoords2; // Vertex texture second coordinates (UV - 2 components per vertex) (shader-location = 5) + float *normals; // Vertex normals (XYZ - 3 components per vertex) (shader-location = 2) + float *tangents; // Vertex tangents (XYZW - 4 components per vertex) (shader-location = 4) + unsigned char *colors; // Vertex colors (RGBA - 4 components per vertex) (shader-location = 3) + unsigned short *indices; // Vertex indices (in case vertex data comes indexed) + + // Animation vertex data + float *animVertices; // Animated vertex positions (after bones transformations) + float *animNormals; // Animated normals (after bones transformations) + unsigned char *boneIds; // Vertex bone ids, max 255 bone ids, up to 4 bones influence by vertex (skinning) (shader-location = 6) + float *boneWeights; // Vertex bone weight, up to 4 bones influence by vertex (skinning) (shader-location = 7) + Matrix *boneMatrices; // Bones animated transformation matrices + int boneCount; // Number of bones + + // OpenGL identifiers + unsigned int vaoId; // OpenGL Vertex Array Object id + unsigned int *vboId; // OpenGL Vertex Buffer Objects id (default vertex data) +} Mesh; + +// Shader +typedef struct Shader { + unsigned int id; // Shader program id + int *locs; // Shader locations array (RL_MAX_SHADER_LOCATIONS) +} Shader; + +// MaterialMap +typedef struct MaterialMap { + Texture2D texture; // Material map texture + Color color; // Material map color + float value; // Material map value +} MaterialMap; + +// Material, includes shader and maps +typedef struct Material { + Shader shader; // Material shader + MaterialMap *maps; // Material maps array (MAX_MATERIAL_MAPS) + float params[4]; // Material generic parameters (if required) +} Material; + +// Transform, vertex transformation data +typedef struct Transform { + Vector3 translation; // Translation + Quaternion rotation; // Rotation + Vector3 scale; // Scale +} Transform; + +// Bone, skeletal animation bone +typedef struct BoneInfo { + char name[32]; // Bone name + int parent; // Bone parent +} BoneInfo; + +// Model, meshes, materials and animation data +typedef struct Model { + Matrix transform; // Local transform matrix + + int meshCount; // Number of meshes + int materialCount; // Number of materials + Mesh *meshes; // Meshes array + Material *materials; // Materials array + int *meshMaterial; // Mesh material number + + // Animation data + int boneCount; // Number of bones + BoneInfo *bones; // Bones information (skeleton) + Transform *bindPose; // Bones base transformation (pose) +} Model; + +// ModelAnimation +typedef struct ModelAnimation { + int boneCount; // Number of bones + int frameCount; // Number of animation frames + BoneInfo *bones; // Bones information (skeleton) + Transform **framePoses; // Poses array by frame + char name[32]; // Animation name +} ModelAnimation; + +// Ray, ray for raycasting +typedef struct Ray { + Vector3 position; // Ray position (origin) + Vector3 direction; // Ray direction (normalized) +} Ray; + +// RayCollision, ray hit information +typedef struct RayCollision { + bool hit; // Did the ray hit something? + float distance; // Distance to the nearest hit + Vector3 point; // Point of the nearest hit + Vector3 normal; // Surface normal of hit +} RayCollision; + +// BoundingBox +typedef struct BoundingBox { + Vector3 min; // Minimum vertex box-corner + Vector3 max; // Maximum vertex box-corner +} BoundingBox; + +// Wave, audio wave data +typedef struct Wave { + unsigned int frameCount; // Total number of frames (considering channels) + unsigned int sampleRate; // Frequency (samples per second) + unsigned int sampleSize; // Bit depth (bits per sample): 8, 16, 32 (24 not supported) + unsigned int channels; // Number of channels (1-mono, 2-stereo, ...) + void *data; // Buffer data pointer +} Wave; + +// Opaque structs declaration +// NOTE: Actual structs are defined internally in raudio module +typedef struct rAudioBuffer rAudioBuffer; +typedef struct rAudioProcessor rAudioProcessor; + +// AudioStream, custom audio stream +typedef struct AudioStream { + rAudioBuffer *buffer; // Pointer to internal data used by the audio system + rAudioProcessor *processor; // Pointer to internal data processor, useful for audio effects + + unsigned int sampleRate; // Frequency (samples per second) + unsigned int sampleSize; // Bit depth (bits per sample): 8, 16, 32 (24 not supported) + unsigned int channels; // Number of channels (1-mono, 2-stereo, ...) +} AudioStream; + +// Sound +typedef struct Sound { + AudioStream stream; // Audio stream + unsigned int frameCount; // Total number of frames (considering channels) +} Sound; + +// Music, audio stream, anything longer than ~10 seconds should be streamed +typedef struct Music { + AudioStream stream; // Audio stream + unsigned int frameCount; // Total number of frames (considering channels) + bool looping; // Music looping enable + + int ctxType; // Type of music context (audio filetype) + void *ctxData; // Audio context data, depends on type +} Music; + +// VrDeviceInfo, Head-Mounted-Display device parameters +typedef struct VrDeviceInfo { + int hResolution; // Horizontal resolution in pixels + int vResolution; // Vertical resolution in pixels + float hScreenSize; // Horizontal size in meters + float vScreenSize; // Vertical size in meters + float eyeToScreenDistance; // Distance between eye and display in meters + float lensSeparationDistance; // Lens separation distance in meters + float interpupillaryDistance; // IPD (distance between pupils) in meters + float lensDistortionValues[4]; // Lens distortion constant parameters + float chromaAbCorrection[4]; // Chromatic aberration correction parameters +} VrDeviceInfo; + +// VrStereoConfig, VR stereo rendering configuration for simulator +typedef struct VrStereoConfig { + Matrix projection[2]; // VR projection matrices (per eye) + Matrix viewOffset[2]; // VR view offset matrices (per eye) + float leftLensCenter[2]; // VR left lens center + float rightLensCenter[2]; // VR right lens center + float leftScreenCenter[2]; // VR left screen center + float rightScreenCenter[2]; // VR right screen center + float scale[2]; // VR distortion scale + float scaleIn[2]; // VR distortion scale in +} VrStereoConfig; + +// File path list +typedef struct FilePathList { + unsigned int capacity; // Filepaths max entries + unsigned int count; // Filepaths entries count + char **paths; // Filepaths entries +} FilePathList; + +// Automation event +typedef struct AutomationEvent { + unsigned int frame; // Event frame + unsigned int type; // Event type (AutomationEventType) + int params[4]; // Event parameters (if required) +} AutomationEvent; + +// Automation event list +typedef struct AutomationEventList { + unsigned int capacity; // Events max entries (MAX_AUTOMATION_EVENTS) + unsigned int count; // Events entries count + AutomationEvent *events; // Events entries +} AutomationEventList; + +//---------------------------------------------------------------------------------- +// Enumerators Definition +//---------------------------------------------------------------------------------- +// System/Window config flags +// NOTE: Every bit registers one state (use it with bit masks) +// By default all flags are set to 0 +typedef enum { + FLAG_VSYNC_HINT = 0x00000040, // Set to try enabling V-Sync on GPU + FLAG_FULLSCREEN_MODE = 0x00000002, // Set to run program in fullscreen + FLAG_WINDOW_RESIZABLE = 0x00000004, // Set to allow resizable window + FLAG_WINDOW_UNDECORATED = 0x00000008, // Set to disable window decoration (frame and buttons) + FLAG_WINDOW_HIDDEN = 0x00000080, // Set to hide window + FLAG_WINDOW_MINIMIZED = 0x00000200, // Set to minimize window (iconify) + FLAG_WINDOW_MAXIMIZED = 0x00000400, // Set to maximize window (expanded to monitor) + FLAG_WINDOW_UNFOCUSED = 0x00000800, // Set to window non focused + FLAG_WINDOW_TOPMOST = 0x00001000, // Set to window always on top + FLAG_WINDOW_ALWAYS_RUN = 0x00000100, // Set to allow windows running while minimized + FLAG_WINDOW_TRANSPARENT = 0x00000010, // Set to allow transparent framebuffer + FLAG_WINDOW_HIGHDPI = 0x00002000, // Set to support HighDPI + FLAG_WINDOW_MOUSE_PASSTHROUGH = 0x00004000, // Set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED + FLAG_BORDERLESS_WINDOWED_MODE = 0x00008000, // Set to run program in borderless windowed mode + FLAG_MSAA_4X_HINT = 0x00000020, // Set to try enabling MSAA 4X + FLAG_INTERLACED_HINT = 0x00010000 // Set to try enabling interlaced video format (for V3D) +} ConfigFlags; + +// Trace log level +// NOTE: Organized by priority level +typedef enum { + LOG_ALL = 0, // Display all logs + LOG_TRACE, // Trace logging, intended for internal use only + LOG_DEBUG, // Debug logging, used for internal debugging, it should be disabled on release builds + LOG_INFO, // Info logging, used for program execution info + LOG_WARNING, // Warning logging, used on recoverable failures + LOG_ERROR, // Error logging, used on unrecoverable failures + LOG_FATAL, // Fatal logging, used to abort program: exit(EXIT_FAILURE) + LOG_NONE // Disable logging +} TraceLogLevel; + +// Keyboard keys (US keyboard layout) +// NOTE: Use GetKeyPressed() to allow redefining +// required keys for alternative layouts +typedef enum { + KEY_NULL = 0, // Key: NULL, used for no key pressed + // Alphanumeric keys + KEY_APOSTROPHE = 39, // Key: ' + KEY_COMMA = 44, // Key: , + KEY_MINUS = 45, // Key: - + KEY_PERIOD = 46, // Key: . + KEY_SLASH = 47, // Key: / + KEY_ZERO = 48, // Key: 0 + KEY_ONE = 49, // Key: 1 + KEY_TWO = 50, // Key: 2 + KEY_THREE = 51, // Key: 3 + KEY_FOUR = 52, // Key: 4 + KEY_FIVE = 53, // Key: 5 + KEY_SIX = 54, // Key: 6 + KEY_SEVEN = 55, // Key: 7 + KEY_EIGHT = 56, // Key: 8 + KEY_NINE = 57, // Key: 9 + KEY_SEMICOLON = 59, // Key: ; + KEY_EQUAL = 61, // Key: = + KEY_A = 65, // Key: A | a + KEY_B = 66, // Key: B | b + KEY_C = 67, // Key: C | c + KEY_D = 68, // Key: D | d + KEY_E = 69, // Key: E | e + KEY_F = 70, // Key: F | f + KEY_G = 71, // Key: G | g + KEY_H = 72, // Key: H | h + KEY_I = 73, // Key: I | i + KEY_J = 74, // Key: J | j + KEY_K = 75, // Key: K | k + KEY_L = 76, // Key: L | l + KEY_M = 77, // Key: M | m + KEY_N = 78, // Key: N | n + KEY_O = 79, // Key: O | o + KEY_P = 80, // Key: P | p + KEY_Q = 81, // Key: Q | q + KEY_R = 82, // Key: R | r + KEY_S = 83, // Key: S | s + KEY_T = 84, // Key: T | t + KEY_U = 85, // Key: U | u + KEY_V = 86, // Key: V | v + KEY_W = 87, // Key: W | w + KEY_X = 88, // Key: X | x + KEY_Y = 89, // Key: Y | y + KEY_Z = 90, // Key: Z | z + KEY_LEFT_BRACKET = 91, // Key: [ + KEY_BACKSLASH = 92, // Key: '\' + KEY_RIGHT_BRACKET = 93, // Key: ] + KEY_GRAVE = 96, // Key: ` + // Function keys + KEY_SPACE = 32, // Key: Space + KEY_ESCAPE = 256, // Key: Esc + KEY_ENTER = 257, // Key: Enter + KEY_TAB = 258, // Key: Tab + KEY_BACKSPACE = 259, // Key: Backspace + KEY_INSERT = 260, // Key: Ins + KEY_DELETE = 261, // Key: Del + KEY_RIGHT = 262, // Key: Cursor right + KEY_LEFT = 263, // Key: Cursor left + KEY_DOWN = 264, // Key: Cursor down + KEY_UP = 265, // Key: Cursor up + KEY_PAGE_UP = 266, // Key: Page up + KEY_PAGE_DOWN = 267, // Key: Page down + KEY_HOME = 268, // Key: Home + KEY_END = 269, // Key: End + KEY_CAPS_LOCK = 280, // Key: Caps lock + KEY_SCROLL_LOCK = 281, // Key: Scroll down + KEY_NUM_LOCK = 282, // Key: Num lock + KEY_PRINT_SCREEN = 283, // Key: Print screen + KEY_PAUSE = 284, // Key: Pause + KEY_F1 = 290, // Key: F1 + KEY_F2 = 291, // Key: F2 + KEY_F3 = 292, // Key: F3 + KEY_F4 = 293, // Key: F4 + KEY_F5 = 294, // Key: F5 + KEY_F6 = 295, // Key: F6 + KEY_F7 = 296, // Key: F7 + KEY_F8 = 297, // Key: F8 + KEY_F9 = 298, // Key: F9 + KEY_F10 = 299, // Key: F10 + KEY_F11 = 300, // Key: F11 + KEY_F12 = 301, // Key: F12 + KEY_LEFT_SHIFT = 340, // Key: Shift left + KEY_LEFT_CONTROL = 341, // Key: Control left + KEY_LEFT_ALT = 342, // Key: Alt left + KEY_LEFT_SUPER = 343, // Key: Super left + KEY_RIGHT_SHIFT = 344, // Key: Shift right + KEY_RIGHT_CONTROL = 345, // Key: Control right + KEY_RIGHT_ALT = 346, // Key: Alt right + KEY_RIGHT_SUPER = 347, // Key: Super right + KEY_KB_MENU = 348, // Key: KB menu + // Keypad keys + KEY_KP_0 = 320, // Key: Keypad 0 + KEY_KP_1 = 321, // Key: Keypad 1 + KEY_KP_2 = 322, // Key: Keypad 2 + KEY_KP_3 = 323, // Key: Keypad 3 + KEY_KP_4 = 324, // Key: Keypad 4 + KEY_KP_5 = 325, // Key: Keypad 5 + KEY_KP_6 = 326, // Key: Keypad 6 + KEY_KP_7 = 327, // Key: Keypad 7 + KEY_KP_8 = 328, // Key: Keypad 8 + KEY_KP_9 = 329, // Key: Keypad 9 + KEY_KP_DECIMAL = 330, // Key: Keypad . + KEY_KP_DIVIDE = 331, // Key: Keypad / + KEY_KP_MULTIPLY = 332, // Key: Keypad * + KEY_KP_SUBTRACT = 333, // Key: Keypad - + KEY_KP_ADD = 334, // Key: Keypad + + KEY_KP_ENTER = 335, // Key: Keypad Enter + KEY_KP_EQUAL = 336, // Key: Keypad = + // Android key buttons + KEY_BACK = 4, // Key: Android back button + KEY_MENU = 5, // Key: Android menu button + KEY_VOLUME_UP = 24, // Key: Android volume up button + KEY_VOLUME_DOWN = 25 // Key: Android volume down button +} KeyboardKey; + +// Add backwards compatibility support for deprecated names +#define MOUSE_LEFT_BUTTON MOUSE_BUTTON_LEFT +#define MOUSE_RIGHT_BUTTON MOUSE_BUTTON_RIGHT +#define MOUSE_MIDDLE_BUTTON MOUSE_BUTTON_MIDDLE + +// Mouse buttons +typedef enum { + MOUSE_BUTTON_LEFT = 0, // Mouse button left + MOUSE_BUTTON_RIGHT = 1, // Mouse button right + MOUSE_BUTTON_MIDDLE = 2, // Mouse button middle (pressed wheel) + MOUSE_BUTTON_SIDE = 3, // Mouse button side (advanced mouse device) + MOUSE_BUTTON_EXTRA = 4, // Mouse button extra (advanced mouse device) + MOUSE_BUTTON_FORWARD = 5, // Mouse button forward (advanced mouse device) + MOUSE_BUTTON_BACK = 6, // Mouse button back (advanced mouse device) +} MouseButton; + +// Mouse cursor +typedef enum { + MOUSE_CURSOR_DEFAULT = 0, // Default pointer shape + MOUSE_CURSOR_ARROW = 1, // Arrow shape + MOUSE_CURSOR_IBEAM = 2, // Text writing cursor shape + MOUSE_CURSOR_CROSSHAIR = 3, // Cross shape + MOUSE_CURSOR_POINTING_HAND = 4, // Pointing hand cursor + MOUSE_CURSOR_RESIZE_EW = 5, // Horizontal resize/move arrow shape + MOUSE_CURSOR_RESIZE_NS = 6, // Vertical resize/move arrow shape + MOUSE_CURSOR_RESIZE_NWSE = 7, // Top-left to bottom-right diagonal resize/move arrow shape + MOUSE_CURSOR_RESIZE_NESW = 8, // The top-right to bottom-left diagonal resize/move arrow shape + MOUSE_CURSOR_RESIZE_ALL = 9, // The omnidirectional resize/move cursor shape + MOUSE_CURSOR_NOT_ALLOWED = 10 // The operation-not-allowed shape +} MouseCursor; + +// Gamepad buttons +typedef enum { + GAMEPAD_BUTTON_UNKNOWN = 0, // Unknown button, just for error checking + GAMEPAD_BUTTON_LEFT_FACE_UP, // Gamepad left DPAD up button + GAMEPAD_BUTTON_LEFT_FACE_RIGHT, // Gamepad left DPAD right button + GAMEPAD_BUTTON_LEFT_FACE_DOWN, // Gamepad left DPAD down button + GAMEPAD_BUTTON_LEFT_FACE_LEFT, // Gamepad left DPAD left button + GAMEPAD_BUTTON_RIGHT_FACE_UP, // Gamepad right button up (i.e. PS3: Triangle, Xbox: Y) + GAMEPAD_BUTTON_RIGHT_FACE_RIGHT, // Gamepad right button right (i.e. PS3: Circle, Xbox: B) + GAMEPAD_BUTTON_RIGHT_FACE_DOWN, // Gamepad right button down (i.e. PS3: Cross, Xbox: A) + GAMEPAD_BUTTON_RIGHT_FACE_LEFT, // Gamepad right button left (i.e. PS3: Square, Xbox: X) + GAMEPAD_BUTTON_LEFT_TRIGGER_1, // Gamepad top/back trigger left (first), it could be a trailing button + GAMEPAD_BUTTON_LEFT_TRIGGER_2, // Gamepad top/back trigger left (second), it could be a trailing button + GAMEPAD_BUTTON_RIGHT_TRIGGER_1, // Gamepad top/back trigger right (first), it could be a trailing button + GAMEPAD_BUTTON_RIGHT_TRIGGER_2, // Gamepad top/back trigger right (second), it could be a trailing button + GAMEPAD_BUTTON_MIDDLE_LEFT, // Gamepad center buttons, left one (i.e. PS3: Select) + GAMEPAD_BUTTON_MIDDLE, // Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX) + GAMEPAD_BUTTON_MIDDLE_RIGHT, // Gamepad center buttons, right one (i.e. PS3: Start) + GAMEPAD_BUTTON_LEFT_THUMB, // Gamepad joystick pressed button left + GAMEPAD_BUTTON_RIGHT_THUMB // Gamepad joystick pressed button right +} GamepadButton; + +// Gamepad axis +typedef enum { + GAMEPAD_AXIS_LEFT_X = 0, // Gamepad left stick X axis + GAMEPAD_AXIS_LEFT_Y = 1, // Gamepad left stick Y axis + GAMEPAD_AXIS_RIGHT_X = 2, // Gamepad right stick X axis + GAMEPAD_AXIS_RIGHT_Y = 3, // Gamepad right stick Y axis + GAMEPAD_AXIS_LEFT_TRIGGER = 4, // Gamepad back trigger left, pressure level: [1..-1] + GAMEPAD_AXIS_RIGHT_TRIGGER = 5 // Gamepad back trigger right, pressure level: [1..-1] +} GamepadAxis; + +// Material map index +typedef enum { + MATERIAL_MAP_ALBEDO = 0, // Albedo material (same as: MATERIAL_MAP_DIFFUSE) + MATERIAL_MAP_METALNESS, // Metalness material (same as: MATERIAL_MAP_SPECULAR) + MATERIAL_MAP_NORMAL, // Normal material + MATERIAL_MAP_ROUGHNESS, // Roughness material + MATERIAL_MAP_OCCLUSION, // Ambient occlusion material + MATERIAL_MAP_EMISSION, // Emission material + MATERIAL_MAP_HEIGHT, // Heightmap material + MATERIAL_MAP_CUBEMAP, // Cubemap material (NOTE: Uses GL_TEXTURE_CUBE_MAP) + MATERIAL_MAP_IRRADIANCE, // Irradiance material (NOTE: Uses GL_TEXTURE_CUBE_MAP) + MATERIAL_MAP_PREFILTER, // Prefilter material (NOTE: Uses GL_TEXTURE_CUBE_MAP) + MATERIAL_MAP_BRDF // Brdf material +} MaterialMapIndex; + +#define MATERIAL_MAP_DIFFUSE MATERIAL_MAP_ALBEDO +#define MATERIAL_MAP_SPECULAR MATERIAL_MAP_METALNESS + +// Shader location index +typedef enum { + SHADER_LOC_VERTEX_POSITION = 0, // Shader location: vertex attribute: position + SHADER_LOC_VERTEX_TEXCOORD01, // Shader location: vertex attribute: texcoord01 + SHADER_LOC_VERTEX_TEXCOORD02, // Shader location: vertex attribute: texcoord02 + SHADER_LOC_VERTEX_NORMAL, // Shader location: vertex attribute: normal + SHADER_LOC_VERTEX_TANGENT, // Shader location: vertex attribute: tangent + SHADER_LOC_VERTEX_COLOR, // Shader location: vertex attribute: color + SHADER_LOC_MATRIX_MVP, // Shader location: matrix uniform: model-view-projection + SHADER_LOC_MATRIX_VIEW, // Shader location: matrix uniform: view (camera transform) + SHADER_LOC_MATRIX_PROJECTION, // Shader location: matrix uniform: projection + SHADER_LOC_MATRIX_MODEL, // Shader location: matrix uniform: model (transform) + SHADER_LOC_MATRIX_NORMAL, // Shader location: matrix uniform: normal + SHADER_LOC_VECTOR_VIEW, // Shader location: vector uniform: view + SHADER_LOC_COLOR_DIFFUSE, // Shader location: vector uniform: diffuse color + SHADER_LOC_COLOR_SPECULAR, // Shader location: vector uniform: specular color + SHADER_LOC_COLOR_AMBIENT, // Shader location: vector uniform: ambient color + SHADER_LOC_MAP_ALBEDO, // Shader location: sampler2d texture: albedo (same as: SHADER_LOC_MAP_DIFFUSE) + SHADER_LOC_MAP_METALNESS, // Shader location: sampler2d texture: metalness (same as: SHADER_LOC_MAP_SPECULAR) + SHADER_LOC_MAP_NORMAL, // Shader location: sampler2d texture: normal + SHADER_LOC_MAP_ROUGHNESS, // Shader location: sampler2d texture: roughness + SHADER_LOC_MAP_OCCLUSION, // Shader location: sampler2d texture: occlusion + SHADER_LOC_MAP_EMISSION, // Shader location: sampler2d texture: emission + SHADER_LOC_MAP_HEIGHT, // Shader location: sampler2d texture: height + SHADER_LOC_MAP_CUBEMAP, // Shader location: samplerCube texture: cubemap + SHADER_LOC_MAP_IRRADIANCE, // Shader location: samplerCube texture: irradiance + SHADER_LOC_MAP_PREFILTER, // Shader location: samplerCube texture: prefilter + SHADER_LOC_MAP_BRDF, // Shader location: sampler2d texture: brdf + SHADER_LOC_VERTEX_BONEIDS, // Shader location: vertex attribute: boneIds + SHADER_LOC_VERTEX_BONEWEIGHTS, // Shader location: vertex attribute: boneWeights + SHADER_LOC_BONE_MATRICES // Shader location: array of matrices uniform: boneMatrices +} ShaderLocationIndex; + +#define SHADER_LOC_MAP_DIFFUSE SHADER_LOC_MAP_ALBEDO +#define SHADER_LOC_MAP_SPECULAR SHADER_LOC_MAP_METALNESS + +// Shader uniform data type +typedef enum { + SHADER_UNIFORM_FLOAT = 0, // Shader uniform type: float + SHADER_UNIFORM_VEC2, // Shader uniform type: vec2 (2 float) + SHADER_UNIFORM_VEC3, // Shader uniform type: vec3 (3 float) + SHADER_UNIFORM_VEC4, // Shader uniform type: vec4 (4 float) + SHADER_UNIFORM_INT, // Shader uniform type: int + SHADER_UNIFORM_IVEC2, // Shader uniform type: ivec2 (2 int) + SHADER_UNIFORM_IVEC3, // Shader uniform type: ivec3 (3 int) + SHADER_UNIFORM_IVEC4, // Shader uniform type: ivec4 (4 int) + SHADER_UNIFORM_SAMPLER2D // Shader uniform type: sampler2d +} ShaderUniformDataType; + +// Shader attribute data types +typedef enum { + SHADER_ATTRIB_FLOAT = 0, // Shader attribute type: float + SHADER_ATTRIB_VEC2, // Shader attribute type: vec2 (2 float) + SHADER_ATTRIB_VEC3, // Shader attribute type: vec3 (3 float) + SHADER_ATTRIB_VEC4 // Shader attribute type: vec4 (4 float) +} ShaderAttributeDataType; + +// Pixel formats +// NOTE: Support depends on OpenGL version and platform +typedef enum { + PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1, // 8 bit per pixel (no alpha) + PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA, // 8*2 bpp (2 channels) + PIXELFORMAT_UNCOMPRESSED_R5G6B5, // 16 bpp + PIXELFORMAT_UNCOMPRESSED_R8G8B8, // 24 bpp + PIXELFORMAT_UNCOMPRESSED_R5G5B5A1, // 16 bpp (1 bit alpha) + PIXELFORMAT_UNCOMPRESSED_R4G4B4A4, // 16 bpp (4 bit alpha) + PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, // 32 bpp + PIXELFORMAT_UNCOMPRESSED_R32, // 32 bpp (1 channel - float) + PIXELFORMAT_UNCOMPRESSED_R32G32B32, // 32*3 bpp (3 channels - float) + PIXELFORMAT_UNCOMPRESSED_R32G32B32A32, // 32*4 bpp (4 channels - float) + PIXELFORMAT_UNCOMPRESSED_R16, // 16 bpp (1 channel - half float) + PIXELFORMAT_UNCOMPRESSED_R16G16B16, // 16*3 bpp (3 channels - half float) + PIXELFORMAT_UNCOMPRESSED_R16G16B16A16, // 16*4 bpp (4 channels - half float) + PIXELFORMAT_COMPRESSED_DXT1_RGB, // 4 bpp (no alpha) + PIXELFORMAT_COMPRESSED_DXT1_RGBA, // 4 bpp (1 bit alpha) + PIXELFORMAT_COMPRESSED_DXT3_RGBA, // 8 bpp + PIXELFORMAT_COMPRESSED_DXT5_RGBA, // 8 bpp + PIXELFORMAT_COMPRESSED_ETC1_RGB, // 4 bpp + PIXELFORMAT_COMPRESSED_ETC2_RGB, // 4 bpp + PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA, // 8 bpp + PIXELFORMAT_COMPRESSED_PVRT_RGB, // 4 bpp + PIXELFORMAT_COMPRESSED_PVRT_RGBA, // 4 bpp + PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA, // 8 bpp + PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA // 2 bpp +} PixelFormat; + +// Texture parameters: filter mode +// NOTE 1: Filtering considers mipmaps if available in the texture +// NOTE 2: Filter is accordingly set for minification and magnification +typedef enum { + TEXTURE_FILTER_POINT = 0, // No filter, just pixel approximation + TEXTURE_FILTER_BILINEAR, // Linear filtering + TEXTURE_FILTER_TRILINEAR, // Trilinear filtering (linear with mipmaps) + TEXTURE_FILTER_ANISOTROPIC_4X, // Anisotropic filtering 4x + TEXTURE_FILTER_ANISOTROPIC_8X, // Anisotropic filtering 8x + TEXTURE_FILTER_ANISOTROPIC_16X, // Anisotropic filtering 16x +} TextureFilter; + +// Texture parameters: wrap mode +typedef enum { + TEXTURE_WRAP_REPEAT = 0, // Repeats texture in tiled mode + TEXTURE_WRAP_CLAMP, // Clamps texture to edge pixel in tiled mode + TEXTURE_WRAP_MIRROR_REPEAT, // Mirrors and repeats the texture in tiled mode + TEXTURE_WRAP_MIRROR_CLAMP // Mirrors and clamps to border the texture in tiled mode +} TextureWrap; + +// Cubemap layouts +typedef enum { + CUBEMAP_LAYOUT_AUTO_DETECT = 0, // Automatically detect layout type + CUBEMAP_LAYOUT_LINE_VERTICAL, // Layout is defined by a vertical line with faces + CUBEMAP_LAYOUT_LINE_HORIZONTAL, // Layout is defined by a horizontal line with faces + CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR, // Layout is defined by a 3x4 cross with cubemap faces + CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE // Layout is defined by a 4x3 cross with cubemap faces +} CubemapLayout; + +// Font type, defines generation method +typedef enum { + FONT_DEFAULT = 0, // Default font generation, anti-aliased + FONT_BITMAP, // Bitmap font generation, no anti-aliasing + FONT_SDF // SDF font generation, requires external shader +} FontType; + +// Color blending modes (pre-defined) +typedef enum { + BLEND_ALPHA = 0, // Blend textures considering alpha (default) + BLEND_ADDITIVE, // Blend textures adding colors + BLEND_MULTIPLIED, // Blend textures multiplying colors + BLEND_ADD_COLORS, // Blend textures adding colors (alternative) + BLEND_SUBTRACT_COLORS, // Blend textures subtracting colors (alternative) + BLEND_ALPHA_PREMULTIPLY, // Blend premultiplied textures considering alpha + BLEND_CUSTOM, // Blend textures using custom src/dst factors (use rlSetBlendFactors()) + BLEND_CUSTOM_SEPARATE // Blend textures using custom rgb/alpha separate src/dst factors (use rlSetBlendFactorsSeparate()) +} BlendMode; + +// Gesture +// NOTE: Provided as bit-wise flags to enable only desired gestures +typedef enum { + GESTURE_NONE = 0, // No gesture + GESTURE_TAP = 1, // Tap gesture + GESTURE_DOUBLETAP = 2, // Double tap gesture + GESTURE_HOLD = 4, // Hold gesture + GESTURE_DRAG = 8, // Drag gesture + GESTURE_SWIPE_RIGHT = 16, // Swipe right gesture + GESTURE_SWIPE_LEFT = 32, // Swipe left gesture + GESTURE_SWIPE_UP = 64, // Swipe up gesture + GESTURE_SWIPE_DOWN = 128, // Swipe down gesture + GESTURE_PINCH_IN = 256, // Pinch in gesture + GESTURE_PINCH_OUT = 512 // Pinch out gesture +} Gesture; + +// Camera system modes +typedef enum { + CAMERA_CUSTOM = 0, // Camera custom, controlled by user (UpdateCamera() does nothing) + CAMERA_FREE, // Camera free mode + CAMERA_ORBITAL, // Camera orbital, around target, zoom supported + CAMERA_FIRST_PERSON, // Camera first person + CAMERA_THIRD_PERSON // Camera third person +} CameraMode; + +// Camera projection +typedef enum { + CAMERA_PERSPECTIVE = 0, // Perspective projection + CAMERA_ORTHOGRAPHIC // Orthographic projection +} CameraProjection; + +// N-patch layout +typedef enum { + NPATCH_NINE_PATCH = 0, // Npatch layout: 3x3 tiles + NPATCH_THREE_PATCH_VERTICAL, // Npatch layout: 1x3 tiles + NPATCH_THREE_PATCH_HORIZONTAL // Npatch layout: 3x1 tiles +} NPatchLayout; + +// Callbacks to hook some internal functions +// WARNING: These callbacks are intended for advanced users +typedef void (*TraceLogCallback)(int logLevel, const char *text, va_list args); // Logging: Redirect trace log messages +typedef unsigned char *(*LoadFileDataCallback)(const char *fileName, int *dataSize); // FileIO: Load binary data +typedef bool (*SaveFileDataCallback)(const char *fileName, void *data, int dataSize); // FileIO: Save binary data +typedef char *(*LoadFileTextCallback)(const char *fileName); // FileIO: Load text data +typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileIO: Save text data + +//------------------------------------------------------------------------------------ +// Global Variables Definition +//------------------------------------------------------------------------------------ +// It's lonely here... + +//------------------------------------------------------------------------------------ +// Window and Graphics Device Functions (Module: core) +//------------------------------------------------------------------------------------ + +#if defined(__cplusplus) +extern "C" { // Prevents name mangling of functions +#endif + +// Window-related functions +RLAPI void InitWindow(int width, int height, const char *title); // Initialize window and OpenGL context +RLAPI void CloseWindow(void); // Close window and unload OpenGL context +RLAPI bool WindowShouldClose(void); // Check if application should close (KEY_ESCAPE pressed or windows close icon clicked) +RLAPI bool IsWindowReady(void); // Check if window has been initialized successfully +RLAPI bool IsWindowFullscreen(void); // Check if window is currently fullscreen +RLAPI bool IsWindowHidden(void); // Check if window is currently hidden +RLAPI bool IsWindowMinimized(void); // Check if window is currently minimized +RLAPI bool IsWindowMaximized(void); // Check if window is currently maximized +RLAPI bool IsWindowFocused(void); // Check if window is currently focused +RLAPI bool IsWindowResized(void); // Check if window has been resized last frame +RLAPI bool IsWindowState(unsigned int flag); // Check if one specific window flag is enabled +RLAPI void SetWindowState(unsigned int flags); // Set window configuration state using flags +RLAPI void ClearWindowState(unsigned int flags); // Clear window configuration state flags +RLAPI void ToggleFullscreen(void); // Toggle window state: fullscreen/windowed, resizes monitor to match window resolution +RLAPI void ToggleBorderlessWindowed(void); // Toggle window state: borderless windowed, resizes window to match monitor resolution +RLAPI void MaximizeWindow(void); // Set window state: maximized, if resizable +RLAPI void MinimizeWindow(void); // Set window state: minimized, if resizable +RLAPI void RestoreWindow(void); // Set window state: not minimized/maximized +RLAPI void SetWindowIcon(Image image); // Set icon for window (single image, RGBA 32bit) +RLAPI void SetWindowIcons(Image *images, int count); // Set icon for window (multiple images, RGBA 32bit) +RLAPI void SetWindowTitle(const char *title); // Set title for window +RLAPI void SetWindowPosition(int x, int y); // Set window position on screen +RLAPI void SetWindowMonitor(int monitor); // Set monitor for the current window +RLAPI void SetWindowMinSize(int width, int height); // Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE) +RLAPI void SetWindowMaxSize(int width, int height); // Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE) +RLAPI void SetWindowSize(int width, int height); // Set window dimensions +RLAPI void SetWindowOpacity(float opacity); // Set window opacity [0.0f..1.0f] +RLAPI void SetWindowFocused(void); // Set window focused +RLAPI void *GetWindowHandle(void); // Get native window handle +RLAPI int GetScreenWidth(void); // Get current screen width +RLAPI int GetScreenHeight(void); // Get current screen height +RLAPI int GetRenderWidth(void); // Get current render width (it considers HiDPI) +RLAPI int GetRenderHeight(void); // Get current render height (it considers HiDPI) +RLAPI int GetMonitorCount(void); // Get number of connected monitors +RLAPI int GetCurrentMonitor(void); // Get current monitor where window is placed +RLAPI Vector2 GetMonitorPosition(int monitor); // Get specified monitor position +RLAPI int GetMonitorWidth(int monitor); // Get specified monitor width (current video mode used by monitor) +RLAPI int GetMonitorHeight(int monitor); // Get specified monitor height (current video mode used by monitor) +RLAPI int GetMonitorPhysicalWidth(int monitor); // Get specified monitor physical width in millimetres +RLAPI int GetMonitorPhysicalHeight(int monitor); // Get specified monitor physical height in millimetres +RLAPI int GetMonitorRefreshRate(int monitor); // Get specified monitor refresh rate +RLAPI Vector2 GetWindowPosition(void); // Get window position XY on monitor +RLAPI Vector2 GetWindowScaleDPI(void); // Get window scale DPI factor +RLAPI const char *GetMonitorName(int monitor); // Get the human-readable, UTF-8 encoded name of the specified monitor +RLAPI void SetClipboardText(const char *text); // Set clipboard text content +RLAPI const char *GetClipboardText(void); // Get clipboard text content +RLAPI Image GetClipboardImage(void); // Get clipboard image content +RLAPI void EnableEventWaiting(void); // Enable waiting for events on EndDrawing(), no automatic event polling +RLAPI void DisableEventWaiting(void); // Disable waiting for events on EndDrawing(), automatic events polling + +// 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 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); // Begin 2D mode with custom camera (2D) +RLAPI void EndMode2D(void); // Ends 2D mode with custom camera +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); // 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, 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 +RLAPI void BeginVrStereoMode(VrStereoConfig config); // Begin stereo rendering (requires VR simulator) +RLAPI void EndVrStereoMode(void); // End stereo rendering (requires VR simulator) + +// VR stereo config functions for VR simulator +RLAPI VrStereoConfig LoadVrStereoConfig(VrDeviceInfo device); // Load VR stereo config for VR simulator device parameters +RLAPI void UnloadVrStereoConfig(VrStereoConfig config); // Unload VR stereo config + +// Shader management functions +// NOTE: Shader functionality is not available on OpenGL 1.1 +RLAPI Shader LoadShader(const char *vsFileName, const char *fsFileName); // Load shader from files and bind default locations +RLAPI Shader LoadShaderFromMemory(const char *vsCode, const char *fsCode); // Load shader from code strings and bind default locations +RLAPI bool IsShaderValid(Shader shader); // Check if a shader is valid (loaded on GPU) +RLAPI int GetShaderLocation(Shader shader, const char *uniformName); // Get shader uniform location +RLAPI int GetShaderLocationAttrib(Shader shader, const char *attribName); // Get shader attribute location +RLAPI void SetShaderValue(Shader shader, int locIndex, const void *value, int uniformType); // Set shader uniform value +RLAPI void SetShaderValueV(Shader shader, int locIndex, const void *value, int uniformType, int count); // Set shader uniform value vector +RLAPI void SetShaderValueMatrix(Shader shader, int locIndex, Matrix mat); // Set shader uniform value (matrix 4x4) +RLAPI void SetShaderValueTexture(Shader shader, int locIndex, Texture2D texture); // Set shader uniform value for texture (sampler2d) +RLAPI void UnloadShader(Shader shader); // Unload shader from GPU memory (VRAM) + +// Screen-space-related functions +#define GetMouseRay GetScreenToWorldRay // Compatibility hack for previous raylib versions +RLAPI Ray GetScreenToWorldRay(Vector2 position, Camera camera); // Get a ray trace from screen position (i.e mouse) +RLAPI Ray GetScreenToWorldRayEx(Vector2 position, Camera camera, int width, int height); // Get a ray trace from screen position (i.e mouse) in a viewport +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 +RLAPI Matrix GetCameraMatrix(Camera camera); // Get camera transform matrix (view matrix) +RLAPI Matrix GetCameraMatrix2D(Camera2D camera); // Get camera 2d transform matrix + +// Timing-related functions +RLAPI void SetTargetFPS(int fps); // Set target FPS (maximum) +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() +RLAPI int GetFPS(void); // Get current FPS + +// Custom frame control functions +// NOTE: Those functions are intended for advanced users that want full control over the frame processing +// By default EndDrawing() does this job: draws everything + SwapScreenBuffer() + manage frame timing + 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(double seconds); // Wait for some time (halt program execution) + +// Random values generation functions +RLAPI void SetRandomSeed(unsigned int seed); // Set the seed for the random number generator +RLAPI int GetRandomValue(int min, int max); // Get a random value between min and max (both included) +RLAPI int *LoadRandomSequence(unsigned int count, int min, int max); // Load random values sequence, no values repeated +RLAPI void UnloadRandomSequence(int *sequence); // Unload random values sequence + +// Misc. functions +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 OpenURL(const char *url); // Open URL with default system browser (if available) + +// NOTE: Following functions implemented in module [utils] +//------------------------------------------------------------------ +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(unsigned int size); // Internal memory allocator +RLAPI void *MemRealloc(void *ptr, unsigned int size); // Internal memory reallocator +RLAPI void MemFree(void *ptr); // Internal memory free + +// Set custom callbacks +// WARNING: Callbacks setup is intended for advanced users +RLAPI void SetTraceLogCallback(TraceLogCallback callback); // Set custom trace log +RLAPI void SetLoadFileDataCallback(LoadFileDataCallback callback); // Set custom file binary data loader +RLAPI void SetSaveFileDataCallback(SaveFileDataCallback callback); // Set custom file binary data saver +RLAPI void SetLoadFileTextCallback(LoadFileTextCallback callback); // Set custom file text data loader +RLAPI void SetSaveFileTextCallback(SaveFileTextCallback callback); // Set custom file text data saver + +// Files management functions +RLAPI unsigned char *LoadFileData(const char *fileName, int *dataSize); // Load file data as byte array (read) +RLAPI void UnloadFileData(unsigned char *data); // Unload file data allocated by LoadFileData() +RLAPI bool SaveFileData(const char *fileName, void *data, int dataSize); // Save data to file from byte array (write), returns true on success +RLAPI bool ExportDataAsCode(const unsigned char *data, int dataSize, const char *fileName); // Export data to code (.h), returns true on success +RLAPI char *LoadFileText(const char *fileName); // Load text data from file (read), returns a '\0' terminated string +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 +//------------------------------------------------------------------ + +// File system functions +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 int GetFileLength(const char *fileName); // Get file length in bytes (NOTE: GetFileSize() conflicts with windows.h) +RLAPI const char *GetFileExtension(const char *fileName); // Get pointer to extension for a filename string (includes dot: '.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) +RLAPI const char *GetPrevDirectoryPath(const char *dirPath); // Get previous directory path for a given path (uses static string) +RLAPI const char *GetWorkingDirectory(void); // Get current working directory (uses static string) +RLAPI const char *GetApplicationDirectory(void); // Get the directory of the running application (uses static string) +RLAPI int MakeDirectory(const char *dirPath); // Create directories (including full path requested), returns 0 on success +RLAPI bool ChangeDirectory(const char *dir); // Change working directory, return true on success +RLAPI bool IsPathFile(const char *path); // Check if a given path is a file or a directory +RLAPI bool IsFileNameValid(const char *fileName); // Check if fileName is valid for the platform/OS +RLAPI FilePathList LoadDirectoryFiles(const char *dirPath); // Load directory filepaths +RLAPI FilePathList LoadDirectoryFilesEx(const char *basePath, const char *filter, bool scanSubdirs); // Load directory filepaths with extension filtering and recursive directory scan. Use 'DIR' in the filter string to include directories in the result +RLAPI void UnloadDirectoryFiles(FilePathList files); // Unload filepaths +RLAPI bool IsFileDropped(void); // Check if a file has been dropped into window +RLAPI FilePathList LoadDroppedFiles(void); // Load dropped filepaths +RLAPI void UnloadDroppedFiles(FilePathList files); // Unload dropped filepaths +RLAPI long GetFileModTime(const char *fileName); // Get file modification time (last write time) + +// Compression/Encoding functionality +RLAPI unsigned char *CompressData(const unsigned char *data, int dataSize, int *compDataSize); // Compress data (DEFLATE algorithm), memory must be MemFree() +RLAPI unsigned char *DecompressData(const unsigned char *compData, int compDataSize, int *dataSize); // Decompress data (DEFLATE algorithm), memory must be MemFree() +RLAPI char *EncodeDataBase64(const unsigned char *data, int dataSize, int *outputSize); // Encode data to Base64 string, memory must be MemFree() +RLAPI unsigned char *DecodeDataBase64(const unsigned char *data, int *outputSize); // Decode Base64 string data, memory must be MemFree() +RLAPI unsigned int ComputeCRC32(unsigned char *data, int dataSize); // Compute CRC32 hash code +RLAPI unsigned int *ComputeMD5(unsigned char *data, int dataSize); // Compute MD5 hash code, returns static int[4] (16 bytes) +RLAPI unsigned int *ComputeSHA1(unsigned char *data, int dataSize); // Compute SHA1 hash code, returns static int[5] (20 bytes) + + +// Automation events functionality +RLAPI AutomationEventList LoadAutomationEventList(const char *fileName); // Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS +RLAPI void UnloadAutomationEventList(AutomationEventList list); // Unload automation events list from file +RLAPI bool ExportAutomationEventList(AutomationEventList list, const char *fileName); // Export automation events list as text file +RLAPI void SetAutomationEventList(AutomationEventList *list); // Set automation event list to record to +RLAPI void SetAutomationEventBaseFrame(int frame); // Set automation event internal base frame to start recording +RLAPI void StartAutomationEventRecording(void); // Start recording automation events (AutomationEventList must be set) +RLAPI void StopAutomationEventRecording(void); // Stop recording automation events +RLAPI void PlayAutomationEvent(AutomationEvent event); // Play a recorded automation event + +//------------------------------------------------------------------------------------ +// Input Handling Functions (Module: core) +//------------------------------------------------------------------------------------ + +// Input-related functions: keyboard +RLAPI bool IsKeyPressed(int key); // Check if a key has been pressed once +RLAPI bool IsKeyPressedRepeat(int key); // Check if a key has been pressed again +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 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 +RLAPI void SetExitKey(int key); // Set a custom key to exit program (default is ESC) + +// Input-related functions: gamepads +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); // 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) +RLAPI void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor, float duration); // Set gamepad vibration for both motors (duration in seconds) + +// Input-related functions: mouse +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); // Get mouse wheel movement for X or Y, whichever is larger +RLAPI Vector2 GetMouseWheelMoveV(void); // Get mouse wheel movement for both X and Y +RLAPI void SetMouseCursor(int cursor); // Set mouse cursor + +// Input-related functions: touch +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: rgestures) +//------------------------------------------------------------------------------------ +RLAPI void SetGesturesEnabled(unsigned int flags); // Enable a set of gestures using flags +RLAPI bool IsGestureDetected(unsigned int gesture); // Check if a gesture have been detected +RLAPI int GetGestureDetected(void); // Get latest detected gesture +RLAPI float GetGestureHoldDuration(void); // Get gesture hold time in seconds +RLAPI Vector2 GetGestureDragVector(void); // Get gesture drag vector +RLAPI float GetGestureDragAngle(void); // Get gesture drag angle +RLAPI Vector2 GetGesturePinchVector(void); // Get gesture pinch delta +RLAPI float GetGesturePinchAngle(void); // Get gesture pinch angle + +//------------------------------------------------------------------------------------ +// Camera System Functions (Module: rcamera) +//------------------------------------------------------------------------------------ +RLAPI void UpdateCamera(Camera *camera, int mode); // Update camera position for selected mode +RLAPI void UpdateCameraPro(Camera *camera, Vector3 movement, Vector3 rotation, float zoom); // Update camera movement/rotation + +//------------------------------------------------------------------------------------ +// Basic Shapes Drawing Functions (Module: shapes) +//------------------------------------------------------------------------------------ +// 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 Texture2D GetShapesTexture(void); // Get texture that is used for shapes drawing +RLAPI Rectangle GetShapesTextureRectangle(void); // Get texture source rectangle that is used for shapes drawing + +// Basic shapes drawing functions +RLAPI void DrawPixel(int posX, int posY, Color color); // Draw a pixel using geometry [Can be slow, use with care] +RLAPI void DrawPixelV(Vector2 position, Color color); // Draw a pixel using geometry (Vector version) [Can be slow, use with care] +RLAPI void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw a line +RLAPI void DrawLineV(Vector2 startPos, Vector2 endPos, Color color); // Draw a line (using gl lines) +RLAPI void DrawLineEx(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw a line (using triangles/quads) +RLAPI void DrawLineStrip(const Vector2 *points, int pointCount, Color color); // Draw lines sequence (using gl lines) +RLAPI void DrawLineBezier(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw line segment cubic-bezier in-out interpolation +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 +RLAPI void DrawCircleGradient(int centerX, int centerY, float radius, Color inner, Color outer); // Draw a gradient-filled circle +RLAPI void DrawCircleV(Vector2 center, float radius, Color color); // Draw a color-filled circle (Vector version) +RLAPI void DrawCircleLines(int centerX, int centerY, float radius, Color color); // Draw circle outline +RLAPI void DrawCircleLinesV(Vector2 center, float radius, Color color); // Draw circle outline (Vector version) +RLAPI void DrawEllipse(int centerX, int centerY, float radiusH, float radiusV, Color color); // Draw ellipse +RLAPI void DrawEllipseLines(int centerX, int centerY, float radiusH, float radiusV, Color color); // Draw ellipse outline +RLAPI void DrawRing(Vector2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, int segments, Color color); // Draw ring +RLAPI void DrawRingLines(Vector2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, int segments, Color color); // Draw ring outline +RLAPI void DrawRectangle(int posX, int posY, int width, int height, Color color); // Draw a color-filled rectangle +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 top, Color bottom); // Draw a vertical-gradient-filled rectangle +RLAPI void DrawRectangleGradientH(int posX, int posY, int width, int height, Color left, Color right); // Draw a horizontal-gradient-filled rectangle +RLAPI void DrawRectangleGradientEx(Rectangle rec, Color topLeft, Color bottomLeft, Color topRight, Color bottomRight); // 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, 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, Color color); // Draw rectangle lines with rounded edges +RLAPI void DrawRectangleRoundedLinesEx(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(const Vector2 *points, int pointCount, Color color); // Draw a triangle fan defined by points (first vertex is the center) +RLAPI void DrawTriangleStrip(const 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 + +// Splines drawing functions +RLAPI void DrawSplineLinear(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Linear, minimum 2 points +RLAPI void DrawSplineBasis(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: B-Spline, minimum 4 points +RLAPI void DrawSplineCatmullRom(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Catmull-Rom, minimum 4 points +RLAPI void DrawSplineBezierQuadratic(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] +RLAPI void DrawSplineBezierCubic(const Vector2 *points, int pointCount, float thick, Color color); // Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] +RLAPI void DrawSplineSegmentLinear(Vector2 p1, Vector2 p2, float thick, Color color); // Draw spline segment: Linear, 2 points +RLAPI void DrawSplineSegmentBasis(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color); // Draw spline segment: B-Spline, 4 points +RLAPI void DrawSplineSegmentCatmullRom(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color); // Draw spline segment: Catmull-Rom, 4 points +RLAPI void DrawSplineSegmentBezierQuadratic(Vector2 p1, Vector2 c2, Vector2 p3, float thick, Color color); // Draw spline segment: Quadratic Bezier, 2 points, 1 control point +RLAPI void DrawSplineSegmentBezierCubic(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, float thick, Color color); // Draw spline segment: Cubic Bezier, 2 points, 2 control points + +// Spline segment point evaluation functions, for a given t [0.0f .. 1.0f] +RLAPI Vector2 GetSplinePointLinear(Vector2 startPos, Vector2 endPos, float t); // Get (evaluate) spline point: Linear +RLAPI Vector2 GetSplinePointBasis(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float t); // Get (evaluate) spline point: B-Spline +RLAPI Vector2 GetSplinePointCatmullRom(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float t); // Get (evaluate) spline point: Catmull-Rom +RLAPI Vector2 GetSplinePointBezierQuad(Vector2 p1, Vector2 c2, Vector2 p3, float t); // Get (evaluate) spline point: Quadratic Bezier +RLAPI Vector2 GetSplinePointBezierCubic(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, float t); // Get (evaluate) spline point: Cubic Bezier + +// Basic shapes collision detection functions +RLAPI bool CheckCollisionRecs(Rectangle rec1, Rectangle rec2); // Check collision between two rectangles +RLAPI bool CheckCollisionCircles(Vector2 center1, float radius1, Vector2 center2, float radius2); // Check collision between two circles +RLAPI bool CheckCollisionCircleRec(Vector2 center, float radius, Rectangle rec); // Check collision between circle and rectangle +RLAPI bool CheckCollisionCircleLine(Vector2 center, float radius, Vector2 p1, Vector2 p2); // Check if circle collides with a line created betweeen two points [p1] and [p2] +RLAPI bool CheckCollisionPointRec(Vector2 point, Rectangle rec); // Check if point is inside rectangle +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 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 bool CheckCollisionPointPoly(Vector2 point, const Vector2 *points, int pointCount); // Check if point is within a polygon described by array of vertices +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 Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2); // Get collision rectangle for two rectangles collision + +//------------------------------------------------------------------------------------ +// Texture Loading and Drawing Functions (Module: textures) +//------------------------------------------------------------------------------------ + +// Image loading functions +// NOTE: These functions do not require GPU access +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 LoadImageAnimFromMemory(const char *fileType, const unsigned char *fileData, int dataSize, int *frames); // Load image sequence from memory buffer +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 bool IsImageValid(Image image); // Check if an image is valid (data and parameters) +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 unsigned char *ExportImageToMemory(Image image, const char *fileType, int *fileSize); // Export image to memory buffer +RLAPI bool ExportImageAsCode(Image image, const char *fileName); // Export image as code file defining an array of bytes, returns true on success + +// Image generation functions +RLAPI Image GenImageColor(int width, int height, Color color); // Generate image: plain color +RLAPI Image GenImageGradientLinear(int width, int height, int direction, Color start, Color end); // Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient +RLAPI Image GenImageGradientRadial(int width, int height, float density, Color inner, Color outer); // Generate image: radial gradient +RLAPI Image GenImageGradientSquare(int width, int height, float density, Color inner, Color outer); // Generate image: square 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 GenImageText(int width, int height, const char *text); // Generate image: grayscale image from text data + +// Image manipulation functions +RLAPI Image ImageCopy(Image image); // Create an image duplicate (useful for transformations) +RLAPI Image ImageFromImage(Image image, Rectangle rec); // Create an image from another image piece +RLAPI Image ImageFromChannel(Image image, int selectedChannel); // Create an image from a selected channel of another image (GRAYSCALE) +RLAPI Image ImageText(const char *text, int fontSize, Color color); // Create an image from text (default font) +RLAPI Image ImageTextEx(Font font, const char *text, float fontSize, float spacing, Color tint); // Create an image from text (custom sprite font) +RLAPI void ImageFormat(Image *image, int newFormat); // Convert image data to desired format +RLAPI void ImageToPOT(Image *image, Color fill); // Convert image to POT (power-of-two) +RLAPI void ImageCrop(Image *image, Rectangle crop); // Crop an image to a defined rectangle +RLAPI void ImageAlphaCrop(Image *image, float threshold); // Crop image depending on alpha value +RLAPI void ImageAlphaClear(Image *image, Color color, float threshold); // Clear alpha channel to desired color +RLAPI void ImageAlphaMask(Image *image, Image alphaMask); // Apply alpha mask to image +RLAPI void ImageAlphaPremultiply(Image *image); // Premultiply alpha channel +RLAPI void ImageBlurGaussian(Image *image, int blurSize); // Apply Gaussian blur using a box blur approximation +RLAPI void ImageKernelConvolution(Image *image, const float *kernel, int kernelSize); // Apply custom square convolution kernel to 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); // 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 +RLAPI void ImageRotate(Image *image, int degrees); // Rotate image by input angle in degrees (-359 to 359) +RLAPI void ImageRotateCW(Image *image); // Rotate image clockwise 90deg +RLAPI void ImageRotateCCW(Image *image); // Rotate image counter-clockwise 90deg +RLAPI void ImageColorTint(Image *image, Color color); // Modify image color: tint +RLAPI void ImageColorInvert(Image *image); // Modify image color: invert +RLAPI void ImageColorGrayscale(Image *image); // Modify image color: grayscale +RLAPI void ImageColorContrast(Image *image, float contrast); // Modify image color: contrast (-100 to 100) +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 *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) +RLAPI void ImageClearBackground(Image *dst, Color color); // Clear image background with given color +RLAPI void ImageDrawPixel(Image *dst, int posX, int posY, Color color); // Draw pixel within an image +RLAPI void ImageDrawPixelV(Image *dst, Vector2 position, Color color); // Draw pixel within an image (Vector version) +RLAPI void ImageDrawLine(Image *dst, int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw line within an image +RLAPI void ImageDrawLineV(Image *dst, Vector2 start, Vector2 end, Color color); // Draw line within an image (Vector version) +RLAPI void ImageDrawLineEx(Image *dst, Vector2 start, Vector2 end, int thick, Color color); // Draw a line defining thickness within an image +RLAPI void ImageDrawCircle(Image *dst, int centerX, int centerY, int radius, Color color); // Draw a filled circle within an image +RLAPI void ImageDrawCircleV(Image *dst, Vector2 center, int radius, Color color); // Draw a filled circle within an image (Vector version) +RLAPI void ImageDrawCircleLines(Image *dst, int centerX, int centerY, int radius, Color color); // Draw circle outline within an image +RLAPI void ImageDrawCircleLinesV(Image *dst, Vector2 center, int radius, Color color); // Draw circle outline within an image (Vector version) +RLAPI void ImageDrawRectangle(Image *dst, int posX, int posY, int width, int height, Color color); // Draw rectangle within an image +RLAPI void ImageDrawRectangleV(Image *dst, Vector2 position, Vector2 size, Color color); // Draw rectangle within an image (Vector version) +RLAPI void ImageDrawRectangleRec(Image *dst, Rectangle rec, Color color); // Draw rectangle within an image +RLAPI void ImageDrawRectangleLines(Image *dst, Rectangle rec, int thick, Color color); // Draw rectangle lines within an image +RLAPI void ImageDrawTriangle(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle within an image +RLAPI void ImageDrawTriangleEx(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color c1, Color c2, Color c3); // Draw triangle with interpolated colors within an image +RLAPI void ImageDrawTriangleLines(Image *dst, Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle outline within an image +RLAPI void ImageDrawTriangleFan(Image *dst, Vector2 *points, int pointCount, Color color); // Draw a triangle fan defined by points within an image (first vertex is the center) +RLAPI void ImageDrawTriangleStrip(Image *dst, Vector2 *points, int pointCount, Color color); // Draw a triangle strip defined by points within an image +RLAPI void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color tint); // Draw a source image within a destination image (tint applied to source) +RLAPI void ImageDrawText(Image *dst, const char *text, int posX, int posY, int fontSize, Color color); // Draw text (using default font) within an image (destination) +RLAPI void ImageDrawTextEx(Image *dst, Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint); // Draw text (custom sprite font) within an image (destination) + +// Texture loading functions +// NOTE: These functions require GPU access +RLAPI Texture2D LoadTexture(const char *fileName); // Load texture from file into GPU memory (VRAM) +RLAPI Texture2D LoadTextureFromImage(Image image); // Load texture from image data +RLAPI TextureCubemap LoadTextureCubemap(Image image, int layout); // Load cubemap from image, multiple image cubemap layouts supported +RLAPI RenderTexture2D LoadRenderTexture(int width, int height); // Load texture for rendering (framebuffer) +RLAPI bool IsTextureValid(Texture2D texture); // Check if a texture is valid (loaded in GPU) +RLAPI void UnloadTexture(Texture2D texture); // Unload texture from GPU memory (VRAM) +RLAPI bool IsRenderTextureValid(RenderTexture2D target); // Check if a render texture is valid (loaded in GPU) +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 + +// Texture configuration functions +RLAPI void GenTextureMipmaps(Texture2D *texture); // Generate GPU mipmaps for a texture +RLAPI void SetTextureFilter(Texture2D texture, int filter); // Set texture scaling filter mode +RLAPI void SetTextureWrap(Texture2D texture, int wrap); // Set texture wrapping mode + +// Texture drawing functions +RLAPI void DrawTexture(Texture2D texture, int posX, int posY, Color tint); // Draw a Texture2D +RLAPI void DrawTextureV(Texture2D texture, Vector2 position, Color tint); // Draw a Texture2D with position defined as Vector2 +RLAPI void DrawTextureEx(Texture2D texture, Vector2 position, float rotation, float scale, Color tint); // Draw a Texture2D with extended parameters +RLAPI void DrawTextureRec(Texture2D texture, Rectangle source, Vector2 position, Color tint); // Draw a part of a texture defined by a rectangle +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 + +// Color/pixel related functions +RLAPI bool ColorIsEqual(Color col1, Color col2); // Check if two colors are equal +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 (0xRRGGBBAA) +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 ColorTint(Color color, Color tint); // Get color multiplied with another color +RLAPI Color ColorBrightness(Color color, float factor); // Get color with brightness correction, brightness factor goes from -1.0f to 1.0f +RLAPI Color ColorContrast(Color color, float contrast); // Get color with contrast correction, contrast values between -1.0f and 1.0f +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 ColorLerp(Color color1, Color color2, float factor); // Get color lerp interpolation between two colors, factor [0.0f..1.0f] +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 + +//------------------------------------------------------------------------------------ +// Font Loading and Text Drawing Functions (Module: text) +//------------------------------------------------------------------------------------ + +// 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 *codepoints, int codepointCount); // Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height +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 *codepoints, int codepointCount); // Load font from memory buffer, fileType refers to extension: i.e. '.ttf' +RLAPI bool IsFontValid(Font font); // Check if a font is valid (font data loaded, WARNING: GPU texture not checked) +RLAPI GlyphInfo *LoadFontData(const unsigned char *fileData, int dataSize, int fontSize, int *codepoints, int codepointCount, int type); // Load font data for further use +RLAPI Image GenImageFontAtlas(const GlyphInfo *glyphs, Rectangle **glyphRecs, int glyphCount, int fontSize, int padding, int packMethod); // Generate image font atlas using chars info +RLAPI void UnloadFontData(GlyphInfo *glyphs, int glyphCount); // Unload font chars info data (RAM) +RLAPI void UnloadFont(Font font); // Unload font from GPU memory (VRAM) +RLAPI bool ExportFontAsCode(Font font, const char *fileName); // Export font as code file, returns true on success + +// 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 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) +RLAPI void DrawTextCodepoints(Font font, const int *codepoints, int codepointCount, Vector2 position, float fontSize, float spacing, Color tint); // Draw multiple character (codepoint) + +// Text font info functions +RLAPI void SetTextLineSpacing(int spacing); // Set vertical line spacing when drawing with line-breaks +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 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 char *LoadUTF8(const int *codepoints, int length); // Load UTF-8 text encoded from codepoints array +RLAPI void UnloadUTF8(char *text); // Unload UTF-8 text encoded from codepoints array +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 *codepointSize); // Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure +RLAPI int GetCodepointNext(const char *text, int *codepointSize); // Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure +RLAPI int GetCodepointPrevious(const char *text, int *codepointSize); // Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure +RLAPI const char *CodepointToUTF8(int codepoint, int *utf8Size); // Encode one codepoint into UTF-8 byte array (array length returned as parameter) + +// 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 *TextSubtext(const char *text, int position, int length); // Get a piece of a text string +RLAPI char *TextReplace(const char *text, const char *replace, const char *by); // Replace text string (WARNING: memory must be freed!) +RLAPI char *TextInsert(const char *text, const char *insert, int position); // Insert text in a position (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! +RLAPI int TextFindIndex(const char *text, const char *find); // Find first text occurrence within a string +RLAPI const char *TextToUpper(const char *text); // Get upper case version of provided string +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 const char *TextToSnake(const char *text); // Get Snake case notation version of provided string +RLAPI const char *TextToCamel(const char *text); // Get Camel case notation version of provided string + +RLAPI int TextToInteger(const char *text); // Get integer value from text (negative values not supported) +RLAPI float TextToFloat(const char *text); // Get float value from text (negative values not supported) + +//------------------------------------------------------------------------------------ +// Basic 3d Shapes Drawing Functions (Module: models) +//------------------------------------------------------------------------------------ + +// Basic geometric 3D shapes drawing functions +RLAPI void DrawLine3D(Vector3 startPos, Vector3 endPos, Color color); // Draw a line in 3D world space +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(const 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 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 DrawCapsule(Vector3 startPos, Vector3 endPos, float radius, int slices, int rings, Color color); // Draw a capsule with the center of its sphere caps at startPos and endPos +RLAPI void DrawCapsuleWires(Vector3 startPos, Vector3 endPos, float radius, int slices, int rings, Color color); // Draw capsule wireframe with the center of its sphere caps at startPos and 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)) + +//------------------------------------------------------------------------------------ +// Model 3d Loading and Drawing Functions (Module: models) +//------------------------------------------------------------------------------------ + +// 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 bool IsModelValid(Model model); // Check if a model is valid (loaded in GPU, VAO/VBOs) +RLAPI void UnloadModel(Model model); // Unload model (including meshes) from memory (RAM and/or VRAM) +RLAPI BoundingBox GetModelBoundingBox(Model model); // Compute model bounding box limits (considers all meshes) + +// 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 DrawModelPoints(Model model, Vector3 position, float scale, Color tint); // Draw a model as points +RLAPI void DrawModelPointsEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model as points with extended parameters +RLAPI void DrawBoundingBox(BoundingBox box, Color color); // Draw bounding box (wires) +RLAPI void DrawBillboard(Camera camera, Texture2D texture, Vector3 position, float scale, 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, const 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, const Matrix *transforms, int instances); // Draw multiple mesh instances with material and different transforms +RLAPI BoundingBox GetMeshBoundingBox(Mesh mesh); // Compute mesh bounding box limits +RLAPI void GenMeshTangents(Mesh *mesh); // Compute mesh tangents +RLAPI bool ExportMesh(Mesh mesh, const char *fileName); // Export mesh data to file, returns true on success +RLAPI bool ExportMeshAsCode(Mesh mesh, const char *fileName); // Export mesh as code file (.h) defining multiple arrays of vertex attributes + +// Mesh generation functions +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 + +// 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 bool IsMaterialValid(Material material); // Check if a material is valid (shader assigned, map textures loaded in GPU) +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 *animCount); // Load model animations from file +RLAPI void UpdateModelAnimation(Model model, ModelAnimation anim, int frame); // Update model animation pose (CPU) +RLAPI void UpdateModelAnimationBones(Model model, ModelAnimation anim, int frame); // Update model animation mesh bone matrices (GPU skinning) +RLAPI void UnloadModelAnimation(ModelAnimation anim); // Unload animation data +RLAPI void UnloadModelAnimations(ModelAnimation *animations, int animCount); // 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); // 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 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) +//------------------------------------------------------------------------------------ +typedef void (*AudioCallback)(void *bufferData, unsigned int frames); + +// Audio device management functions +RLAPI void InitAudioDevice(void); // Initialize audio device and context +RLAPI void CloseAudioDevice(void); // Close the audio device and context +RLAPI bool IsAudioDeviceReady(void); // Check if audio device has been initialized successfully +RLAPI void SetMasterVolume(float volume); // Set master volume (listener) +RLAPI float GetMasterVolume(void); // Get master volume (listener) + +// 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. '.wav' +RLAPI bool IsWaveValid(Wave wave); // Checks if wave data is valid (data loaded and parameters) +RLAPI Sound LoadSound(const char *fileName); // Load sound from file +RLAPI Sound LoadSoundFromWave(Wave wave); // Load sound from wave data +RLAPI Sound LoadSoundAlias(Sound source); // Create a new sound that shares the same sample data as the source sound, does not own the sound data +RLAPI bool IsSoundValid(Sound sound); // Checks if a sound is valid (data loaded and buffers initialized) +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 void UnloadSoundAlias(Sound alias); // Unload a sound alias (does not deallocate sample data) +RLAPI bool ExportWave(Wave wave, const char *fileName); // Export wave data to file, returns true on success +RLAPI bool ExportWaveAsCode(Wave wave, const char *fileName); // Export wave sample data to code (.h), returns true on success + +// Wave/Sound management functions +RLAPI void PlaySound(Sound sound); // Play a sound +RLAPI void StopSound(Sound sound); // Stop playing a sound +RLAPI void PauseSound(Sound sound); // Pause a sound +RLAPI void ResumeSound(Sound sound); // Resume a paused sound +RLAPI bool IsSoundPlaying(Sound sound); // Check if a sound is currently playing +RLAPI void SetSoundVolume(Sound sound, float volume); // Set volume for a sound (1.0 is max level) +RLAPI void SetSoundPitch(Sound sound, float pitch); // Set pitch for a sound (1.0 is base level) +RLAPI void SetSoundPan(Sound sound, float pan); // Set pan for a sound (0.5 is center) +RLAPI Wave WaveCopy(Wave wave); // Copy a wave to a new wave +RLAPI void WaveCrop(Wave *wave, int initFrame, int finalFrame); // Crop a wave to defined frames range +RLAPI void WaveFormat(Wave *wave, int sampleRate, int sampleSize, int channels); // Convert wave data to desired format +RLAPI float *LoadWaveSamples(Wave wave); // Load samples data from wave as a 32bit float data array +RLAPI void UnloadWaveSamples(float *samples); // Unload samples data loaded with LoadWaveSamples() + +// Music management functions +RLAPI Music LoadMusicStream(const char *fileName); // Load music stream from file +RLAPI Music LoadMusicStreamFromMemory(const char *fileType, const unsigned char *data, int dataSize); // Load music stream from data +RLAPI bool IsMusicValid(Music music); // Checks if a music stream is valid (context and buffers initialized) +RLAPI void UnloadMusicStream(Music music); // Unload music stream +RLAPI void PlayMusicStream(Music music); // Start music 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 void SetMusicPan(Music music, float pan); // Set pan for a music (0.5 is center) +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 LoadAudioStream(unsigned int sampleRate, unsigned int sampleSize, unsigned int channels); // Load audio stream (to stream raw audio pcm data) +RLAPI bool IsAudioStreamValid(AudioStream stream); // Checks if an audio stream is valid (buffers initialized) +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 +RLAPI void ResumeAudioStream(AudioStream stream); // Resume audio stream +RLAPI bool IsAudioStreamPlaying(AudioStream stream); // Check if audio stream is playing +RLAPI void StopAudioStream(AudioStream stream); // Stop audio stream +RLAPI void SetAudioStreamVolume(AudioStream stream, float volume); // Set volume for audio stream (1.0 is max level) +RLAPI void SetAudioStreamPitch(AudioStream stream, float pitch); // Set pitch for audio stream (1.0 is base level) +RLAPI void SetAudioStreamPan(AudioStream stream, float pan); // Set pan for audio stream (0.5 is centered) +RLAPI void SetAudioStreamBufferSizeDefault(int size); // Default size for new audio streams +RLAPI void SetAudioStreamCallback(AudioStream stream, AudioCallback callback); // Audio thread callback to request new data + +RLAPI void AttachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Attach audio stream processor to stream, receives the samples as 'float' +RLAPI void DetachAudioStreamProcessor(AudioStream stream, AudioCallback processor); // Detach audio stream processor from stream + +RLAPI void AttachAudioMixedProcessor(AudioCallback processor); // Attach audio stream processor to the entire audio pipeline, receives the samples as 'float' +RLAPI void DetachAudioMixedProcessor(AudioCallback processor); // Detach audio stream processor from the entire audio pipeline + +#if defined(__cplusplus) +} +#endif + +#endif // RAYLIB_H diff --git a/lib/raylib_win_arm64/include/raymath.h b/lib/raylib_win_arm64/include/raymath.h index d1f46f7..e522113 100644 --- a/lib/raylib_win_arm64/include/raymath.h +++ b/lib/raylib_win_arm64/include/raymath.h @@ -1,3117 +1,2941 @@ -/********************************************************************************************** -* -* raymath v2.0 - Math functions to work with Vector2, Vector3, Matrix and Quaternions -* -* CONVENTIONS: -* - Matrix structure is defined as row-major (memory layout) but parameters naming AND all -* math operations performed by the library consider the structure as it was column-major -* It is like transposed versions of the matrices are used for all the maths -* It benefits some functions making them cache-friendly and also avoids matrix -* transpositions sometimes required by OpenGL -* Example: In memory order, row0 is [m0 m4 m8 m12] but in semantic math row0 is [m0 m1 m2 m3] -* - Functions are always self-contained, no function use another raymath function inside, -* required code is directly re-implemented inside -* - Functions input parameters are always received by value (2 unavoidable exceptions) -* - Functions use always a "result" variable for return (except C++ operators) -* - Functions are always defined inline -* - Angles are always in radians (DEG2RAD/RAD2DEG macros provided for convenience) -* - No compound literals used to make sure libray is compatible with C++ -* -* CONFIGURATION: -* #define RAYMATH_IMPLEMENTATION -* Generates the implementation of the library into the included file -* If not defined, the library is in header only mode and can be included in other headers -* or source files without problems. But only ONE file should hold the implementation -* -* #define RAYMATH_STATIC_INLINE -* Define static inline functions code, so #include header suffices for use -* This may use up lots of memory -* -* #define RAYMATH_DISABLE_CPP_OPERATORS -* Disables C++ operator overloads for raymath types. -* -* #define RAYMATH_USE_SIMD_INTRINSICS 1 -* Try to enable SIMD intrinsics for MatrixMultiply() -* Note that users enabling it must be aware of the target platform where application will -* run to support the selected SIMD intrinsic, for now, only SSE is supported -* -* LICENSE: zlib/libpng -* -* Copyright (c) 2015-2026 Ramon Santamaria (@raysan5) -* -* This software is provided "as-is", without any express or implied warranty. In no event -* will the authors be held liable for any damages arising from the use of this software. -* -* Permission is granted to anyone to use this software for any purpose, including commercial -* applications, and to alter it and redistribute it freely, subject to the following restrictions: -* -* 1. The origin of this software must not be misrepresented; you must not claim that you -* wrote the original software. If you use this software in a product, an acknowledgment -* in the product documentation would be appreciated but is not required. -* -* 2. Altered source versions must be plainly marked as such, and must not be misrepresented -* as being the original software. -* -* 3. This notice may not be removed or altered from any source distribution. -* -**********************************************************************************************/ - -#ifndef RAYMATH_H -#define RAYMATH_H - -#if defined(RAYMATH_IMPLEMENTATION) && defined(RAYMATH_STATIC_INLINE) - #error "Specifying both RAYMATH_IMPLEMENTATION and RAYMATH_STATIC_INLINE is contradictory" -#endif - -// Function specifiers definition -#if defined(RAYMATH_IMPLEMENTATION) - #if defined(_WIN32) && defined(BUILD_LIBTYPE_SHARED) - #define RMAPI __declspec(dllexport) extern inline // Building raylib as a Win32 shared library (.dll) - #elif defined(BUILD_LIBTYPE_SHARED) - #define RMAPI __attribute__((visibility("default"))) // Building raylib as a Unix shared library (.so/.dylib) - #elif defined(_WIN32) && defined(USE_LIBTYPE_SHARED) - #define RMAPI __declspec(dllimport) // Using raylib as a Win32 shared library (.dll) - #else - #define RMAPI extern inline // Provide external definition - #endif -#elif defined(RAYMATH_STATIC_INLINE) - #define RMAPI static inline // Functions may be inlined, no external out-of-line definition -#else - #if defined(__TINYC__) - #define RMAPI static inline // plain inline not supported by tinycc (See issue #435) - #else - #define RMAPI inline // Functions may be inlined or external definition used - #endif -#endif - -//---------------------------------------------------------------------------------- -// Defines and Macros -//---------------------------------------------------------------------------------- -#ifndef PI - #define PI 3.14159265358979323846f -#endif - -#ifndef EPSILON - #define EPSILON 0.000001f -#endif - -#ifndef DEG2RAD - #define DEG2RAD (PI/180.0f) -#endif - -#ifndef RAD2DEG - #define RAD2DEG (180.0f/PI) -#endif - -// Get float vector for Matrix -#ifndef MatrixToFloat - #define MatrixToFloat(mat) (MatrixToFloatV(mat).v) -#endif - -// Get float vector for Vector3 -#ifndef Vector3ToFloat - #define Vector3ToFloat(vec) (Vector3ToFloatV(vec).v) -#endif - -//---------------------------------------------------------------------------------- -// Types and Structures Definition -//---------------------------------------------------------------------------------- -#if !defined(RL_VECTOR2_TYPE) -// Vector2 type -typedef struct Vector2 { - float x; - float y; -} Vector2; -#define RL_VECTOR2_TYPE -#endif - -#if !defined(RL_VECTOR3_TYPE) -// Vector3 type -typedef struct Vector3 { - float x; - float y; - float z; -} Vector3; -#define RL_VECTOR3_TYPE -#endif - -#if !defined(RL_VECTOR4_TYPE) -// Vector4 type -typedef struct Vector4 { - float x; - float y; - float z; - float w; -} Vector4; -#define RL_VECTOR4_TYPE -#endif - -#if !defined(RL_QUATERNION_TYPE) -// Quaternion type -typedef Vector4 Quaternion; -#define RL_QUATERNION_TYPE -#endif - -#if !defined(RL_MATRIX_TYPE) -// Matrix type (OpenGL style 4x4 - right handed, column major) -typedef struct Matrix { - float m0, m4, m8, m12; // Matrix first row (4 components) - float m1, m5, m9, m13; // Matrix second row (4 components) - float m2, m6, m10, m14; // Matrix third row (4 components) - float m3, m7, m11, m15; // Matrix fourth row (4 components) -} Matrix; -#define RL_MATRIX_TYPE -#endif - -// NOTE: Helper types to be used instead of array return types for *ToFloat functions -#if !defined(RL_FLOAT3_TYPE) -typedef struct float3 { - float v[3]; -} float3; -#define RL_FLOAT3_TYPE -#endif - -#if !defined(RL_FLOAT16_TYPE) -typedef struct float16 { - float v[16]; -} float16; -#define RL_FLOAT16_TYPE -#endif - -#include // Required for: sinf(), cosf(), tan(), atan2f(), sqrtf(), floor(), fminf(), fmaxf(), fabsf() - -#if RAYMATH_USE_SIMD_INTRINSICS - // SIMD is used on the most costly raymath function MatrixMultiply() - // NOTE: Only SSE intrinsics support implemented - // TODO: Consider support for other SIMD instrinsics: - // - SSEx, AVX, AVX2, FMA, NEON, RVV - /* - #if defined(__SSE4_2__) - #include - #define RAYMATH_SSE42_ENABLED - #elif defined(__SSE4_1__) - #include - #define RAYMATH_SSE41_ENABLED - #elif defined(__SSSE3__) - #include - #define RAYMATH_SSSE3_ENABLED - #elif defined(__SSE3__) - #include - #define RAYMATH_SSE3_ENABLED - #elif defined(__SSE2__) || (defined(_M_AMD64) || defined(_M_X64)) // SSE2 x64 - #include - #define RAYMATH_SSE2_ENABLED - #endif - */ - #if defined(__SSE__) || defined(_M_X64) || (defined(_M_IX86_FP) && (_M_IX86_FP >= 1)) - #include - #define RAYMATH_SSE_ENABLED - #endif -#endif - -//---------------------------------------------------------------------------------- -// Module Functions Definition - Utils math -//---------------------------------------------------------------------------------- - -// Clamp float value -RMAPI float Clamp(float value, float min, float max) -{ - float result = (value < min)? min : value; - - if (result > max) result = max; - - return result; -} - -// Calculate linear interpolation between two floats -RMAPI float Lerp(float start, float end, float amount) -{ - float result = start + amount*(end - start); - - return result; -} - -// Normalize input value within input range -RMAPI float Normalize(float value, float start, float end) -{ - float result = (value - start)/(end - start); - - return result; -} - -// Remap input value within input range to output range -RMAPI float Remap(float value, float inputStart, float inputEnd, float outputStart, float outputEnd) -{ - float result = (value - inputStart)/(inputEnd - inputStart)*(outputEnd - outputStart) + outputStart; - - return result; -} - -// Wrap input value from min to max -RMAPI float Wrap(float value, float min, float max) -{ - float result = value - (max - min)*floorf((value - min)/(max - min)); - - return result; -} - -// Check whether two given floats are almost equal -RMAPI int FloatEquals(float x, float y) -{ -#if !defined(EPSILON) - #define EPSILON 0.000001f -#endif - - int result = (fabsf(x - y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(x), fabsf(y)))); - - return result; -} - -//---------------------------------------------------------------------------------- -// Module Functions Definition - Vector2 math -//---------------------------------------------------------------------------------- - -// Vector with components value 0.0f -RMAPI Vector2 Vector2Zero(void) -{ - Vector2 result = { 0.0f, 0.0f }; - - return result; -} - -// Vector with components value 1.0f -RMAPI Vector2 Vector2One(void) -{ - Vector2 result = { 1.0f, 1.0f }; - - return result; -} - -// Add two vectors (v1 + v2) -RMAPI Vector2 Vector2Add(Vector2 v1, Vector2 v2) -{ - Vector2 result = { v1.x + v2.x, v1.y + v2.y }; - - return result; -} - -// Add vector and float value -RMAPI Vector2 Vector2AddValue(Vector2 v, float add) -{ - Vector2 result = { v.x + add, v.y + add }; - - return result; -} - -// Subtract two vectors (v1 - v2) -RMAPI Vector2 Vector2Subtract(Vector2 v1, Vector2 v2) -{ - Vector2 result = { v1.x - v2.x, v1.y - v2.y }; - - return result; -} - -// Subtract vector by float value -RMAPI Vector2 Vector2SubtractValue(Vector2 v, float sub) -{ - Vector2 result = { v.x - sub, v.y - sub }; - - return result; -} - -// Calculate vector length -RMAPI float Vector2Length(Vector2 v) -{ - float result = sqrtf((v.x*v.x) + (v.y*v.y)); - - return result; -} - -// Calculate vector square length -RMAPI float Vector2LengthSqr(Vector2 v) -{ - float result = (v.x*v.x) + (v.y*v.y); - - return result; -} - -// Calculate two vectors dot product -RMAPI float Vector2DotProduct(Vector2 v1, Vector2 v2) -{ - float result = (v1.x*v2.x + v1.y*v2.y); - - return result; -} - -// Calculate two vectors cross product -RMAPI float Vector2CrossProduct(Vector2 v1, Vector2 v2) -{ - float result = (v1.x*v2.y - v1.y*v2.x); - - return result; -} - -// Calculate distance between two vectors -RMAPI float Vector2Distance(Vector2 v1, Vector2 v2) -{ - float result = sqrtf((v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y)); - - return result; -} - -// Calculate square distance between two vectors -RMAPI float Vector2DistanceSqr(Vector2 v1, Vector2 v2) -{ - float result = ((v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y)); - - return result; -} - -// Calculate the signed angle from v1 to v2, relative to the origin (0, 0) -// NOTE: Coordinate system convention: positive X right, positive Y down -// positive angles appear clockwise, and negative angles appear counterclockwise -RMAPI float Vector2Angle(Vector2 v1, Vector2 v2) -{ - float result = 0.0f; - - float dot = v1.x*v2.x + v1.y*v2.y; - float det = v1.x*v2.y - v1.y*v2.x; - - result = atan2f(det, dot); - - return result; -} - -// Calculate angle defined by a two vectors line -// NOTE: Parameters need to be normalized -// Current implementation should be aligned with glm::angle -RMAPI float Vector2LineAngle(Vector2 start, Vector2 end) -{ - float result = 0.0f; - - // TODO(10/9/2023): Currently angles move clockwise, determine if this is wanted behavior - result = -atan2f(end.y - start.y, end.x - start.x); - - return result; -} - -// Scale vector (multiply by value) -RMAPI Vector2 Vector2Scale(Vector2 v, float scale) -{ - Vector2 result = { v.x*scale, v.y*scale }; - - return result; -} - -// Multiply vector by vector -RMAPI Vector2 Vector2Multiply(Vector2 v1, Vector2 v2) -{ - Vector2 result = { v1.x*v2.x, v1.y*v2.y }; - - return result; -} - -// Negate vector -RMAPI Vector2 Vector2Negate(Vector2 v) -{ - Vector2 result = { -v.x, -v.y }; - - return result; -} - -// Divide vector by vector -RMAPI Vector2 Vector2Divide(Vector2 v1, Vector2 v2) -{ - Vector2 result = { v1.x/v2.x, v1.y/v2.y }; - - return result; -} - -// Normalize provided vector -RMAPI Vector2 Vector2Normalize(Vector2 v) -{ - Vector2 result = { 0 }; - float length = sqrtf((v.x*v.x) + (v.y*v.y)); - - if (length > 0) - { - float ilength = 1.0f/length; - result.x = v.x*ilength; - result.y = v.y*ilength; - } - - return result; -} - -// Transforms a Vector2 by a given Matrix -RMAPI Vector2 Vector2Transform(Vector2 v, Matrix mat) -{ - Vector2 result = { 0 }; - - float x = v.x; - float y = v.y; - float z = 0; - - result.x = mat.m0*x + mat.m4*y + mat.m8*z + mat.m12; - result.y = mat.m1*x + mat.m5*y + mat.m9*z + mat.m13; - - return result; -} - -// Calculate linear interpolation between two vectors -RMAPI Vector2 Vector2Lerp(Vector2 v1, Vector2 v2, float amount) -{ - Vector2 result = { 0 }; - - result.x = v1.x + amount*(v2.x - v1.x); - result.y = v1.y + amount*(v2.y - v1.y); - - return result; -} - -// Calculate reflected vector to normal -RMAPI Vector2 Vector2Reflect(Vector2 v, Vector2 normal) -{ - Vector2 result = { 0 }; - - float dotProduct = (v.x*normal.x + v.y*normal.y); // Dot product - - result.x = v.x - (2.0f*normal.x)*dotProduct; - result.y = v.y - (2.0f*normal.y)*dotProduct; - - return result; -} - -// Get min value for each pair of components -RMAPI Vector2 Vector2Min(Vector2 v1, Vector2 v2) -{ - Vector2 result = { 0 }; - - result.x = fminf(v1.x, v2.x); - result.y = fminf(v1.y, v2.y); - - return result; -} - -// Get max value for each pair of components -RMAPI Vector2 Vector2Max(Vector2 v1, Vector2 v2) -{ - Vector2 result = { 0 }; - - result.x = fmaxf(v1.x, v2.x); - result.y = fmaxf(v1.y, v2.y); - - return result; -} - -// Rotate vector by angle -RMAPI Vector2 Vector2Rotate(Vector2 v, float angle) -{ - Vector2 result = { 0 }; - - float cosres = cosf(angle); - float sinres = sinf(angle); - - result.x = v.x*cosres - v.y*sinres; - result.y = v.x*sinres + v.y*cosres; - - return result; -} - -// Move Vector towards target -RMAPI Vector2 Vector2MoveTowards(Vector2 v, Vector2 target, float maxDistance) -{ - Vector2 result = { 0 }; - - float dx = target.x - v.x; - float dy = target.y - v.y; - float value = (dx*dx) + (dy*dy); - - if ((value == 0) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target; - - float dist = sqrtf(value); - - result.x = v.x + dx/dist*maxDistance; - result.y = v.y + dy/dist*maxDistance; - - return result; -} - -// Invert the given vector -RMAPI Vector2 Vector2Invert(Vector2 v) -{ - Vector2 result = { 1.0f/v.x, 1.0f/v.y }; - - return result; -} - -// Clamp the components of the vector between -// min and max values specified by the given vectors -RMAPI Vector2 Vector2Clamp(Vector2 v, Vector2 min, Vector2 max) -{ - Vector2 result = { 0 }; - - result.x = fminf(max.x, fmaxf(min.x, v.x)); - result.y = fminf(max.y, fmaxf(min.y, v.y)); - - return result; -} - -// Clamp the magnitude of the vector between two min and max values -RMAPI Vector2 Vector2ClampValue(Vector2 v, float min, float max) -{ - Vector2 result = v; - - float length = (v.x*v.x) + (v.y*v.y); - if (length > 0.0f) - { - length = sqrtf(length); - - float scale = 1; // By default, 1 as the neutral element. - if (length < min) - { - scale = min/length; - } - else if (length > max) - { - scale = max/length; - } - - result.x = v.x*scale; - result.y = v.y*scale; - } - - return result; -} - -// Check whether two given vectors are almost equal -RMAPI int Vector2Equals(Vector2 p, Vector2 q) -{ -#if !defined(EPSILON) - #define EPSILON 0.000001f -#endif - - int result = ((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && - ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))); - - return result; -} - -// Compute the direction of a refracted ray -// v: normalized direction of the incoming ray -// n: normalized normal vector of the interface of two optical media -// r: ratio of the refractive index of the medium from where the ray comes -// to the refractive index of the medium on the other side of the surface -RMAPI Vector2 Vector2Refract(Vector2 v, Vector2 n, float r) -{ - Vector2 result = { 0 }; - - float dot = v.x*n.x + v.y*n.y; - float d = 1.0f - r*r*(1.0f - dot*dot); - - if (d >= 0.0f) - { - d = sqrtf(d); - v.x = r*v.x - (r*dot + d)*n.x; - v.y = r*v.y - (r*dot + d)*n.y; - - result = v; - } - - return result; -} - - -//---------------------------------------------------------------------------------- -// Module Functions Definition - Vector3 math -//---------------------------------------------------------------------------------- - -// Vector with components value 0.0f -RMAPI Vector3 Vector3Zero(void) -{ - Vector3 result = { 0.0f, 0.0f, 0.0f }; - - return result; -} - -// Vector with components value 1.0f -RMAPI Vector3 Vector3One(void) -{ - Vector3 result = { 1.0f, 1.0f, 1.0f }; - - return result; -} - -// Add two vectors -RMAPI Vector3 Vector3Add(Vector3 v1, Vector3 v2) -{ - Vector3 result = { v1.x + v2.x, v1.y + v2.y, v1.z + v2.z }; - - return result; -} - -// Add vector and float value -RMAPI Vector3 Vector3AddValue(Vector3 v, float add) -{ - Vector3 result = { v.x + add, v.y + add, v.z + add }; - - return result; -} - -// Subtract two vectors -RMAPI Vector3 Vector3Subtract(Vector3 v1, Vector3 v2) -{ - Vector3 result = { v1.x - v2.x, v1.y - v2.y, v1.z - v2.z }; - - return result; -} - -// Subtract vector by float value -RMAPI Vector3 Vector3SubtractValue(Vector3 v, float sub) -{ - Vector3 result = { v.x - sub, v.y - sub, v.z - sub }; - - return result; -} - -// Multiply vector by scalar -RMAPI Vector3 Vector3Scale(Vector3 v, float scalar) -{ - Vector3 result = { v.x*scalar, v.y*scalar, v.z*scalar }; - - return result; -} - -// Multiply vector by vector -RMAPI Vector3 Vector3Multiply(Vector3 v1, Vector3 v2) -{ - Vector3 result = { v1.x*v2.x, v1.y*v2.y, v1.z*v2.z }; - - return result; -} - -// Calculate two vectors cross product -RMAPI Vector3 Vector3CrossProduct(Vector3 v1, Vector3 v2) -{ - Vector3 result = { v1.y*v2.z - v1.z*v2.y, v1.z*v2.x - v1.x*v2.z, v1.x*v2.y - v1.y*v2.x }; - - return result; -} - -// Calculate one vector perpendicular vector -RMAPI Vector3 Vector3Perpendicular(Vector3 v) -{ - Vector3 result = { 0 }; - - float min = fabsf(v.x); - Vector3 cardinalAxis = {1.0f, 0.0f, 0.0f}; - - if (fabsf(v.y) < min) - { - min = fabsf(v.y); - Vector3 tmp = {0.0f, 1.0f, 0.0f}; - cardinalAxis = tmp; - } - - if (fabsf(v.z) < min) - { - Vector3 tmp = {0.0f, 0.0f, 1.0f}; - cardinalAxis = tmp; - } - - // Cross product between vectors - result.x = v.y*cardinalAxis.z - v.z*cardinalAxis.y; - result.y = v.z*cardinalAxis.x - v.x*cardinalAxis.z; - result.z = v.x*cardinalAxis.y - v.y*cardinalAxis.x; - - return result; -} - -// Calculate vector length -RMAPI float Vector3Length(const Vector3 v) -{ - float result = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); - - return result; -} - -// Calculate vector square length -RMAPI float Vector3LengthSqr(const Vector3 v) -{ - float result = v.x*v.x + v.y*v.y + v.z*v.z; - - return result; -} - -// Calculate two vectors dot product -RMAPI float Vector3DotProduct(Vector3 v1, Vector3 v2) -{ - float result = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); - - return result; -} - -// Calculate distance between two vectors -RMAPI float Vector3Distance(Vector3 v1, Vector3 v2) -{ - float result = 0.0f; - - float dx = v2.x - v1.x; - float dy = v2.y - v1.y; - float dz = v2.z - v1.z; - result = sqrtf(dx*dx + dy*dy + dz*dz); - - return result; -} - -// Calculate square distance between two vectors -RMAPI float Vector3DistanceSqr(Vector3 v1, Vector3 v2) -{ - float result = 0.0f; - - float dx = v2.x - v1.x; - float dy = v2.y - v1.y; - float dz = v2.z - v1.z; - result = dx*dx + dy*dy + dz*dz; - - return result; -} - -// Calculate angle between two vectors -RMAPI float Vector3Angle(Vector3 v1, Vector3 v2) -{ - float result = 0.0f; - - Vector3 cross = { v1.y*v2.z - v1.z*v2.y, v1.z*v2.x - v1.x*v2.z, v1.x*v2.y - v1.y*v2.x }; - float len = sqrtf(cross.x*cross.x + cross.y*cross.y + cross.z*cross.z); - float dot = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); - result = atan2f(len, dot); - - return result; -} - -// Negate provided vector (invert direction) -RMAPI Vector3 Vector3Negate(Vector3 v) -{ - Vector3 result = { -v.x, -v.y, -v.z }; - - return result; -} - -// Divide vector by vector -RMAPI Vector3 Vector3Divide(Vector3 v1, Vector3 v2) -{ - Vector3 result = { v1.x/v2.x, v1.y/v2.y, v1.z/v2.z }; - - return result; -} - -// Normalize provided vector -RMAPI Vector3 Vector3Normalize(Vector3 v) -{ - Vector3 result = v; - - float length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); - if (length != 0.0f) - { - float ilength = 1.0f/length; - - result.x *= ilength; - result.y *= ilength; - result.z *= ilength; - } - - return result; -} - -//Calculate the projection of the vector v1 on to v2 -RMAPI Vector3 Vector3Project(Vector3 v1, Vector3 v2) -{ - Vector3 result = { 0 }; - - float v1dv2 = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); - float v2dv2 = (v2.x*v2.x + v2.y*v2.y + v2.z*v2.z); - - float mag = v1dv2/v2dv2; - - result.x = v2.x*mag; - result.y = v2.y*mag; - result.z = v2.z*mag; - - return result; -} - -//Calculate the rejection of the vector v1 on to v2 -RMAPI Vector3 Vector3Reject(Vector3 v1, Vector3 v2) -{ - Vector3 result = { 0 }; - - float v1dv2 = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); - float v2dv2 = (v2.x*v2.x + v2.y*v2.y + v2.z*v2.z); - - float mag = v1dv2/v2dv2; - - result.x = v1.x - (v2.x*mag); - result.y = v1.y - (v2.y*mag); - result.z = v1.z - (v2.z*mag); - - return result; -} - -// Orthonormalize provided vectors -// Makes vectors normalized and orthogonal to each other -// Gram-Schmidt function implementation -RMAPI void Vector3OrthoNormalize(Vector3 *v1, Vector3 *v2) -{ - float length = 0.0f; - float ilength = 0.0f; - - // Vector3Normalize(*v1); - Vector3 v = *v1; - length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); - if (length == 0.0f) length = 1.0f; - ilength = 1.0f/length; - v1->x *= ilength; - v1->y *= ilength; - v1->z *= ilength; - - // Vector3CrossProduct(*v1, *v2) - Vector3 vn1 = { v1->y*v2->z - v1->z*v2->y, v1->z*v2->x - v1->x*v2->z, v1->x*v2->y - v1->y*v2->x }; - - // Vector3Normalize(vn1); - v = vn1; - length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); - if (length == 0.0f) length = 1.0f; - ilength = 1.0f/length; - vn1.x *= ilength; - vn1.y *= ilength; - vn1.z *= ilength; - - // Vector3CrossProduct(vn1, *v1) - Vector3 vn2 = { vn1.y*v1->z - vn1.z*v1->y, vn1.z*v1->x - vn1.x*v1->z, vn1.x*v1->y - vn1.y*v1->x }; - - *v2 = vn2; -} - -// Transforms a Vector3 by a given Matrix -RMAPI Vector3 Vector3Transform(Vector3 v, Matrix mat) -{ - Vector3 result = { 0 }; - - float x = v.x; - float y = v.y; - float z = v.z; - - result.x = mat.m0*x + mat.m4*y + mat.m8*z + mat.m12; - result.y = mat.m1*x + mat.m5*y + mat.m9*z + mat.m13; - result.z = mat.m2*x + mat.m6*y + mat.m10*z + mat.m14; - - return result; -} - -// Transform a vector by quaternion rotation -RMAPI Vector3 Vector3RotateByQuaternion(Vector3 v, Quaternion q) -{ - Vector3 result = { 0 }; - - result.x = v.x*(q.x*q.x + q.w*q.w - q.y*q.y - q.z*q.z) + v.y*(2*q.x*q.y - 2*q.w*q.z) + v.z*(2*q.x*q.z + 2*q.w*q.y); - result.y = v.x*(2*q.w*q.z + 2*q.x*q.y) + v.y*(q.w*q.w - q.x*q.x + q.y*q.y - q.z*q.z) + v.z*(-2*q.w*q.x + 2*q.y*q.z); - result.z = v.x*(-2*q.w*q.y + 2*q.x*q.z) + v.y*(2*q.w*q.x + 2*q.y*q.z)+ v.z*(q.w*q.w - q.x*q.x - q.y*q.y + q.z*q.z); - - return result; -} - -// Rotates a vector around an axis -RMAPI Vector3 Vector3RotateByAxisAngle(Vector3 v, Vector3 axis, float angle) -{ - // Using Euler-Rodrigues Formula - // Ref.: https://en.wikipedia.org/w/index.php?title=Euler%E2%80%93Rodrigues_formula - - Vector3 result = v; - - // Vector3Normalize(axis); - float length = sqrtf(axis.x*axis.x + axis.y*axis.y + axis.z*axis.z); - if (length == 0.0f) length = 1.0f; - float ilength = 1.0f/length; - axis.x *= ilength; - axis.y *= ilength; - axis.z *= ilength; - - angle /= 2.0f; - float a = sinf(angle); - float b = axis.x*a; - float c = axis.y*a; - float d = axis.z*a; - a = cosf(angle); - Vector3 w = { b, c, d }; - - // Vector3CrossProduct(w, v) - Vector3 wv = { w.y*v.z - w.z*v.y, w.z*v.x - w.x*v.z, w.x*v.y - w.y*v.x }; - - // Vector3CrossProduct(w, wv) - Vector3 wwv = { w.y*wv.z - w.z*wv.y, w.z*wv.x - w.x*wv.z, w.x*wv.y - w.y*wv.x }; - - // Vector3Scale(wv, 2*a) - a *= 2; - wv.x *= a; - wv.y *= a; - wv.z *= a; - - // Vector3Scale(wwv, 2) - wwv.x *= 2; - wwv.y *= 2; - wwv.z *= 2; - - result.x += wv.x; - result.y += wv.y; - result.z += wv.z; - - result.x += wwv.x; - result.y += wwv.y; - result.z += wwv.z; - - return result; -} - -// Move Vector towards target -RMAPI Vector3 Vector3MoveTowards(Vector3 v, Vector3 target, float maxDistance) -{ - Vector3 result = { 0 }; - - float dx = target.x - v.x; - float dy = target.y - v.y; - float dz = target.z - v.z; - float value = (dx*dx) + (dy*dy) + (dz*dz); - - if ((value == 0) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target; - - float dist = sqrtf(value); - - result.x = v.x + dx/dist*maxDistance; - result.y = v.y + dy/dist*maxDistance; - result.z = v.z + dz/dist*maxDistance; - - return result; -} - -// Calculate linear interpolation between two vectors -RMAPI Vector3 Vector3Lerp(Vector3 v1, Vector3 v2, float amount) -{ - Vector3 result = { 0 }; - - result.x = v1.x + amount*(v2.x - v1.x); - result.y = v1.y + amount*(v2.y - v1.y); - result.z = v1.z + amount*(v2.z - v1.z); - - return result; -} - -// Calculate cubic hermite interpolation between two vectors and their tangents -// as described in the GLTF 2.0 specification: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#interpolation-cubic -RMAPI Vector3 Vector3CubicHermite(Vector3 v1, Vector3 tangent1, Vector3 v2, Vector3 tangent2, float amount) -{ - Vector3 result = { 0 }; - - float amountPow2 = amount*amount; - float amountPow3 = amount*amount*amount; - - result.x = (2*amountPow3 - 3*amountPow2 + 1)*v1.x + (amountPow3 - 2*amountPow2 + amount)*tangent1.x + (-2*amountPow3 + 3*amountPow2)*v2.x + (amountPow3 - amountPow2)*tangent2.x; - result.y = (2*amountPow3 - 3*amountPow2 + 1)*v1.y + (amountPow3 - 2*amountPow2 + amount)*tangent1.y + (-2*amountPow3 + 3*amountPow2)*v2.y + (amountPow3 - amountPow2)*tangent2.y; - result.z = (2*amountPow3 - 3*amountPow2 + 1)*v1.z + (amountPow3 - 2*amountPow2 + amount)*tangent1.z + (-2*amountPow3 + 3*amountPow2)*v2.z + (amountPow3 - amountPow2)*tangent2.z; - - return result; -} - -// Calculate reflected vector to normal -RMAPI Vector3 Vector3Reflect(Vector3 v, Vector3 normal) -{ - Vector3 result = { 0 }; - - // I is the original vector - // N is the normal of the incident plane - // R = I - (2*N*(DotProduct[I, N])) - - float dotProduct = (v.x*normal.x + v.y*normal.y + v.z*normal.z); - - result.x = v.x - (2.0f*normal.x)*dotProduct; - result.y = v.y - (2.0f*normal.y)*dotProduct; - result.z = v.z - (2.0f*normal.z)*dotProduct; - - return result; -} - -// Get min value for each pair of components -RMAPI Vector3 Vector3Min(Vector3 v1, Vector3 v2) -{ - Vector3 result = { 0 }; - - result.x = fminf(v1.x, v2.x); - result.y = fminf(v1.y, v2.y); - result.z = fminf(v1.z, v2.z); - - return result; -} - -// Get max value for each pair of components -RMAPI Vector3 Vector3Max(Vector3 v1, Vector3 v2) -{ - Vector3 result = { 0 }; - - result.x = fmaxf(v1.x, v2.x); - result.y = fmaxf(v1.y, v2.y); - result.z = fmaxf(v1.z, v2.z); - - return result; -} - -// Compute barycenter coordinates (u, v, w) for point p with respect to triangle (a, b, c) -// NOTE: Assumes P is on the plane of the triangle -RMAPI Vector3 Vector3Barycenter(Vector3 p, Vector3 a, Vector3 b, Vector3 c) -{ - Vector3 result = { 0 }; - - Vector3 v0 = { b.x - a.x, b.y - a.y, b.z - a.z }; // Vector3Subtract(b, a) - Vector3 v1 = { c.x - a.x, c.y - a.y, c.z - a.z }; // Vector3Subtract(c, a) - Vector3 v2 = { p.x - a.x, p.y - a.y, p.z - a.z }; // Vector3Subtract(p, a) - float d00 = (v0.x*v0.x + v0.y*v0.y + v0.z*v0.z); // Vector3DotProduct(v0, v0) - float d01 = (v0.x*v1.x + v0.y*v1.y + v0.z*v1.z); // Vector3DotProduct(v0, v1) - float d11 = (v1.x*v1.x + v1.y*v1.y + v1.z*v1.z); // Vector3DotProduct(v1, v1) - float d20 = (v2.x*v0.x + v2.y*v0.y + v2.z*v0.z); // Vector3DotProduct(v2, v0) - float d21 = (v2.x*v1.x + v2.y*v1.y + v2.z*v1.z); // Vector3DotProduct(v2, v1) - - float denom = d00*d11 - d01*d01; - - result.y = (d11*d20 - d01*d21)/denom; - result.z = (d00*d21 - d01*d20)/denom; - result.x = 1.0f - (result.z + result.y); - - return result; -} - -// Projects a Vector3 from screen space into object space -// NOTE: Self-contained function, no other raymath functions are called -RMAPI Vector3 Vector3Unproject(Vector3 source, Matrix projection, Matrix view) -{ - Vector3 result = { 0 }; - - // Calculate unprojected matrix (multiply view matrix by projection matrix) and invert it - Matrix matViewProj = { // MatrixMultiply(view, projection); - view.m0*projection.m0 + view.m1*projection.m4 + view.m2*projection.m8 + view.m3*projection.m12, - view.m0*projection.m1 + view.m1*projection.m5 + view.m2*projection.m9 + view.m3*projection.m13, - view.m0*projection.m2 + view.m1*projection.m6 + view.m2*projection.m10 + view.m3*projection.m14, - view.m0*projection.m3 + view.m1*projection.m7 + view.m2*projection.m11 + view.m3*projection.m15, - view.m4*projection.m0 + view.m5*projection.m4 + view.m6*projection.m8 + view.m7*projection.m12, - view.m4*projection.m1 + view.m5*projection.m5 + view.m6*projection.m9 + view.m7*projection.m13, - view.m4*projection.m2 + view.m5*projection.m6 + view.m6*projection.m10 + view.m7*projection.m14, - view.m4*projection.m3 + view.m5*projection.m7 + view.m6*projection.m11 + view.m7*projection.m15, - view.m8*projection.m0 + view.m9*projection.m4 + view.m10*projection.m8 + view.m11*projection.m12, - view.m8*projection.m1 + view.m9*projection.m5 + view.m10*projection.m9 + view.m11*projection.m13, - view.m8*projection.m2 + view.m9*projection.m6 + view.m10*projection.m10 + view.m11*projection.m14, - view.m8*projection.m3 + view.m9*projection.m7 + view.m10*projection.m11 + view.m11*projection.m15, - view.m12*projection.m0 + view.m13*projection.m4 + view.m14*projection.m8 + view.m15*projection.m12, - view.m12*projection.m1 + view.m13*projection.m5 + view.m14*projection.m9 + view.m15*projection.m13, - view.m12*projection.m2 + view.m13*projection.m6 + view.m14*projection.m10 + view.m15*projection.m14, - view.m12*projection.m3 + view.m13*projection.m7 + view.m14*projection.m11 + view.m15*projection.m15 }; - - // Calculate inverted matrix -> MatrixInvert(matViewProj); - // Cache the matrix values (speed optimization) - float a00 = matViewProj.m0, a01 = matViewProj.m1, a02 = matViewProj.m2, a03 = matViewProj.m3; - float a10 = matViewProj.m4, a11 = matViewProj.m5, a12 = matViewProj.m6, a13 = matViewProj.m7; - float a20 = matViewProj.m8, a21 = matViewProj.m9, a22 = matViewProj.m10, a23 = matViewProj.m11; - float a30 = matViewProj.m12, a31 = matViewProj.m13, a32 = matViewProj.m14, a33 = matViewProj.m15; - - float b00 = a00*a11 - a01*a10; - float b01 = a00*a12 - a02*a10; - float b02 = a00*a13 - a03*a10; - float b03 = a01*a12 - a02*a11; - float b04 = a01*a13 - a03*a11; - float b05 = a02*a13 - a03*a12; - float b06 = a20*a31 - a21*a30; - float b07 = a20*a32 - a22*a30; - float b08 = a20*a33 - a23*a30; - float b09 = a21*a32 - a22*a31; - float b10 = a21*a33 - a23*a31; - float b11 = a22*a33 - a23*a32; - - // Calculate the invert determinant (inlined to avoid double-caching) - float invDet = 1.0f/(b00*b11 - b01*b10 + b02*b09 + b03*b08 - b04*b07 + b05*b06); - - Matrix matViewProjInv = { - (a11*b11 - a12*b10 + a13*b09)*invDet, - (-a01*b11 + a02*b10 - a03*b09)*invDet, - (a31*b05 - a32*b04 + a33*b03)*invDet, - (-a21*b05 + a22*b04 - a23*b03)*invDet, - (-a10*b11 + a12*b08 - a13*b07)*invDet, - (a00*b11 - a02*b08 + a03*b07)*invDet, - (-a30*b05 + a32*b02 - a33*b01)*invDet, - (a20*b05 - a22*b02 + a23*b01)*invDet, - (a10*b10 - a11*b08 + a13*b06)*invDet, - (-a00*b10 + a01*b08 - a03*b06)*invDet, - (a30*b04 - a31*b02 + a33*b00)*invDet, - (-a20*b04 + a21*b02 - a23*b00)*invDet, - (-a10*b09 + a11*b07 - a12*b06)*invDet, - (a00*b09 - a01*b07 + a02*b06)*invDet, - (-a30*b03 + a31*b01 - a32*b00)*invDet, - (a20*b03 - a21*b01 + a22*b00)*invDet }; - - // Create quaternion from source point - Quaternion quat = { source.x, source.y, source.z, 1.0f }; - - // Multiply quat point by unprojecte matrix - Quaternion qtransformed = { // QuaternionTransform(quat, matViewProjInv) - matViewProjInv.m0*quat.x + matViewProjInv.m4*quat.y + matViewProjInv.m8*quat.z + matViewProjInv.m12*quat.w, - matViewProjInv.m1*quat.x + matViewProjInv.m5*quat.y + matViewProjInv.m9*quat.z + matViewProjInv.m13*quat.w, - matViewProjInv.m2*quat.x + matViewProjInv.m6*quat.y + matViewProjInv.m10*quat.z + matViewProjInv.m14*quat.w, - matViewProjInv.m3*quat.x + matViewProjInv.m7*quat.y + matViewProjInv.m11*quat.z + matViewProjInv.m15*quat.w }; - - // Normalized world points in vectors - result.x = qtransformed.x/qtransformed.w; - result.y = qtransformed.y/qtransformed.w; - result.z = qtransformed.z/qtransformed.w; - - return result; -} - -// Get Vector3 as float array -RMAPI float3 Vector3ToFloatV(Vector3 v) -{ - float3 buffer = { 0 }; - - buffer.v[0] = v.x; - buffer.v[1] = v.y; - buffer.v[2] = v.z; - - return buffer; -} - -// Invert the given vector -RMAPI Vector3 Vector3Invert(Vector3 v) -{ - Vector3 result = { 1.0f/v.x, 1.0f/v.y, 1.0f/v.z }; - - return result; -} - -// Clamp the components of the vector between -// min and max values specified by the given vectors -RMAPI Vector3 Vector3Clamp(Vector3 v, Vector3 min, Vector3 max) -{ - Vector3 result = { 0 }; - - result.x = fminf(max.x, fmaxf(min.x, v.x)); - result.y = fminf(max.y, fmaxf(min.y, v.y)); - result.z = fminf(max.z, fmaxf(min.z, v.z)); - - return result; -} - -// Clamp the magnitude of the vector between two values -RMAPI Vector3 Vector3ClampValue(Vector3 v, float min, float max) -{ - Vector3 result = v; - - float length = (v.x*v.x) + (v.y*v.y) + (v.z*v.z); - if (length > 0.0f) - { - length = sqrtf(length); - - float scale = 1; // By default, 1 as the neutral element. - if (length < min) - { - scale = min/length; - } - else if (length > max) - { - scale = max/length; - } - - result.x = v.x*scale; - result.y = v.y*scale; - result.z = v.z*scale; - } - - return result; -} - -// Check whether two given vectors are almost equal -RMAPI int Vector3Equals(Vector3 p, Vector3 q) -{ -#if !defined(EPSILON) - #define EPSILON 0.000001f -#endif - - int result = ((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && - ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && - ((fabsf(p.z - q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))); - - return result; -} - -// Compute the direction of a refracted ray -// v: normalized direction of the incoming ray -// n: normalized normal vector of the interface of two optical media -// r: ratio of the refractive index of the medium from where the ray comes -// to the refractive index of the medium on the other side of the surface -RMAPI Vector3 Vector3Refract(Vector3 v, Vector3 n, float r) -{ - Vector3 result = { 0 }; - - float dot = v.x*n.x + v.y*n.y + v.z*n.z; - float d = 1.0f - r*r*(1.0f - dot*dot); - - if (d >= 0.0f) - { - d = sqrtf(d); - v.x = r*v.x - (r*dot + d)*n.x; - v.y = r*v.y - (r*dot + d)*n.y; - v.z = r*v.z - (r*dot + d)*n.z; - - result = v; - } - - return result; -} - - -//---------------------------------------------------------------------------------- -// Module Functions Definition - Vector4 math -//---------------------------------------------------------------------------------- - -RMAPI Vector4 Vector4Zero(void) -{ - Vector4 result = { 0.0f, 0.0f, 0.0f, 0.0f }; - return result; -} - -RMAPI Vector4 Vector4One(void) -{ - Vector4 result = { 1.0f, 1.0f, 1.0f, 1.0f }; - return result; -} - -RMAPI Vector4 Vector4Add(Vector4 v1, Vector4 v2) -{ - Vector4 result = { - v1.x + v2.x, - v1.y + v2.y, - v1.z + v2.z, - v1.w + v2.w - }; - return result; -} - -RMAPI Vector4 Vector4AddValue(Vector4 v, float add) -{ - Vector4 result = { - v.x + add, - v.y + add, - v.z + add, - v.w + add - }; - return result; -} - -RMAPI Vector4 Vector4Subtract(Vector4 v1, Vector4 v2) -{ - Vector4 result = { - v1.x - v2.x, - v1.y - v2.y, - v1.z - v2.z, - v1.w - v2.w - }; - return result; -} - -RMAPI Vector4 Vector4SubtractValue(Vector4 v, float add) -{ - Vector4 result = { - v.x - add, - v.y - add, - v.z - add, - v.w - add - }; - return result; -} - -RMAPI float Vector4Length(Vector4 v) -{ - float result = sqrtf((v.x*v.x) + (v.y*v.y) + (v.z*v.z) + (v.w*v.w)); - return result; -} - -RMAPI float Vector4LengthSqr(Vector4 v) -{ - float result = (v.x*v.x) + (v.y*v.y) + (v.z*v.z) + (v.w*v.w); - return result; -} - -RMAPI float Vector4DotProduct(Vector4 v1, Vector4 v2) -{ - float result = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z + v1.w*v2.w); - return result; -} - -// Calculate distance between two vectors -RMAPI float Vector4Distance(Vector4 v1, Vector4 v2) -{ - float result = sqrtf( - (v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y) + - (v1.z - v2.z)*(v1.z - v2.z) + (v1.w - v2.w)*(v1.w - v2.w)); - return result; -} - -// Calculate square distance between two vectors -RMAPI float Vector4DistanceSqr(Vector4 v1, Vector4 v2) -{ - float result = - (v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y) + - (v1.z - v2.z)*(v1.z - v2.z) + (v1.w - v2.w)*(v1.w - v2.w); - - return result; -} - -RMAPI Vector4 Vector4Scale(Vector4 v, float scale) -{ - Vector4 result = { v.x*scale, v.y*scale, v.z*scale, v.w*scale }; - return result; -} - -// Multiply vector by vector -RMAPI Vector4 Vector4Multiply(Vector4 v1, Vector4 v2) -{ - Vector4 result = { v1.x*v2.x, v1.y*v2.y, v1.z*v2.z, v1.w*v2.w }; - return result; -} - -// Negate vector -RMAPI Vector4 Vector4Negate(Vector4 v) -{ - Vector4 result = { -v.x, -v.y, -v.z, -v.w }; - return result; -} - -// Divide vector by vector -RMAPI Vector4 Vector4Divide(Vector4 v1, Vector4 v2) -{ - Vector4 result = { v1.x/v2.x, v1.y/v2.y, v1.z/v2.z, v1.w/v2.w }; - return result; -} - -// Normalize provided vector -RMAPI Vector4 Vector4Normalize(Vector4 v) -{ - Vector4 result = { 0 }; - float length = sqrtf((v.x*v.x) + (v.y*v.y) + (v.z*v.z) + (v.w*v.w)); - - if (length > 0) - { - float ilength = 1.0f/length; - result.x = v.x*ilength; - result.y = v.y*ilength; - result.z = v.z*ilength; - result.w = v.w*ilength; - } - - return result; -} - -// Get min value for each pair of components -RMAPI Vector4 Vector4Min(Vector4 v1, Vector4 v2) -{ - Vector4 result = { 0 }; - - result.x = fminf(v1.x, v2.x); - result.y = fminf(v1.y, v2.y); - result.z = fminf(v1.z, v2.z); - result.w = fminf(v1.w, v2.w); - - return result; -} - -// Get max value for each pair of components -RMAPI Vector4 Vector4Max(Vector4 v1, Vector4 v2) -{ - Vector4 result = { 0 }; - - result.x = fmaxf(v1.x, v2.x); - result.y = fmaxf(v1.y, v2.y); - result.z = fmaxf(v1.z, v2.z); - result.w = fmaxf(v1.w, v2.w); - - return result; -} - -// Calculate linear interpolation between two vectors -RMAPI Vector4 Vector4Lerp(Vector4 v1, Vector4 v2, float amount) -{ - Vector4 result = { 0 }; - - result.x = v1.x + amount*(v2.x - v1.x); - result.y = v1.y + amount*(v2.y - v1.y); - result.z = v1.z + amount*(v2.z - v1.z); - result.w = v1.w + amount*(v2.w - v1.w); - - return result; -} - -// Move Vector towards target -RMAPI Vector4 Vector4MoveTowards(Vector4 v, Vector4 target, float maxDistance) -{ - Vector4 result = { 0 }; - - float dx = target.x - v.x; - float dy = target.y - v.y; - float dz = target.z - v.z; - float dw = target.w - v.w; - float value = (dx*dx) + (dy*dy) + (dz*dz) + (dw*dw); - - if ((value == 0) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target; - - float dist = sqrtf(value); - - result.x = v.x + dx/dist*maxDistance; - result.y = v.y + dy/dist*maxDistance; - result.z = v.z + dz/dist*maxDistance; - result.w = v.w + dw/dist*maxDistance; - - return result; -} - -// Invert the given vector -RMAPI Vector4 Vector4Invert(Vector4 v) -{ - Vector4 result = { 1.0f/v.x, 1.0f/v.y, 1.0f/v.z, 1.0f/v.w }; - return result; -} - -// Check whether two given vectors are almost equal -RMAPI int Vector4Equals(Vector4 p, Vector4 q) -{ -#if !defined(EPSILON) - #define EPSILON 0.000001f -#endif - - int result = ((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && - ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && - ((fabsf(p.z - q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))) && - ((fabsf(p.w - q.w)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.w), fabsf(q.w))))); - return result; -} - - -//---------------------------------------------------------------------------------- -// Module Functions Definition - Matrix math -//---------------------------------------------------------------------------------- - -// Compute matrix determinant -RMAPI float MatrixDeterminant(Matrix mat) -{ - float result = 0.0f; -/* - // Cache the matrix values (speed optimization) - float a00 = mat.m0, a01 = mat.m1, a02 = mat.m2, a03 = mat.m3; - float a10 = mat.m4, a11 = mat.m5, a12 = mat.m6, a13 = mat.m7; - float a20 = mat.m8, a21 = mat.m9, a22 = mat.m10, a23 = mat.m11; - float a30 = mat.m12, a31 = mat.m13, a32 = mat.m14, a33 = mat.m15; - - // NOTE: It takes 72 multiplication to calculate 4x4 matrix determinant - result = a30*a21*a12*a03 - a20*a31*a12*a03 - a30*a11*a22*a03 + a10*a31*a22*a03 + - a20*a11*a32*a03 - a10*a21*a32*a03 - a30*a21*a02*a13 + a20*a31*a02*a13 + - a30*a01*a22*a13 - a00*a31*a22*a13 - a20*a01*a32*a13 + a00*a21*a32*a13 + - a30*a11*a02*a23 - a10*a31*a02*a23 - a30*a01*a12*a23 + a00*a31*a12*a23 + - a10*a01*a32*a23 - a00*a11*a32*a23 - a20*a11*a02*a33 + a10*a21*a02*a33 + - a20*a01*a12*a33 - a00*a21*a12*a33 - a10*a01*a22*a33 + a00*a11*a22*a33; -*/ - // Using Laplace expansion (https://en.wikipedia.org/wiki/Laplace_expansion), - // previous operation can be simplified to 40 multiplications, decreasing matrix - // size from 4x4 to 2x2 using minors - - // Cache the matrix values (speed optimization) - float m0 = mat.m0, m1 = mat.m1, m2 = mat.m2, m3 = mat.m3; - float m4 = mat.m4, m5 = mat.m5, m6 = mat.m6, m7 = mat.m7; - float m8 = mat.m8, m9 = mat.m9, m10 = mat.m10, m11 = mat.m11; - float m12 = mat.m12, m13 = mat.m13, m14 = mat.m14, m15 = mat.m15; - - result = (m0*((m5*(m10*m15 - m11*m14) - m9*(m6*m15 - m7*m14) + m13*(m6*m11 - m7*m10))) - - m4*((m1*(m10*m15 - m11*m14) - m9*(m2*m15 - m3*m14) + m13*(m2*m11 - m3*m10))) + - m8*((m1*(m6*m15 - m7*m14) - m5*(m2*m15 - m3*m14) + m13*(m2*m7 - m3*m6))) - - m12*((m1*(m6*m11 - m7*m10) - m5*(m2*m11 - m3*m10) + m9*(m2*m7 - m3*m6)))); - - return result; -} - -// Get the trace of the matrix (sum of the values along the diagonal) -RMAPI float MatrixTrace(Matrix mat) -{ - float result = (mat.m0 + mat.m5 + mat.m10 + mat.m15); - - return result; -} - -// Transposes provided matrix -RMAPI Matrix MatrixTranspose(Matrix mat) -{ - Matrix result = { 0 }; - - result.m0 = mat.m0; - result.m1 = mat.m4; - result.m2 = mat.m8; - result.m3 = mat.m12; - result.m4 = mat.m1; - result.m5 = mat.m5; - result.m6 = mat.m9; - result.m7 = mat.m13; - result.m8 = mat.m2; - result.m9 = mat.m6; - result.m10 = mat.m10; - result.m11 = mat.m14; - result.m12 = mat.m3; - result.m13 = mat.m7; - result.m14 = mat.m11; - result.m15 = mat.m15; - - return result; -} - -// Invert provided matrix -RMAPI Matrix MatrixInvert(Matrix mat) -{ - Matrix result = { 0 }; - - // Cache the matrix values (speed optimization) - float a00 = mat.m0, a01 = mat.m1, a02 = mat.m2, a03 = mat.m3; - float a10 = mat.m4, a11 = mat.m5, a12 = mat.m6, a13 = mat.m7; - float a20 = mat.m8, a21 = mat.m9, a22 = mat.m10, a23 = mat.m11; - float a30 = mat.m12, a31 = mat.m13, a32 = mat.m14, a33 = mat.m15; - - float b00 = a00*a11 - a01*a10; - float b01 = a00*a12 - a02*a10; - float b02 = a00*a13 - a03*a10; - float b03 = a01*a12 - a02*a11; - float b04 = a01*a13 - a03*a11; - float b05 = a02*a13 - a03*a12; - float b06 = a20*a31 - a21*a30; - float b07 = a20*a32 - a22*a30; - float b08 = a20*a33 - a23*a30; - float b09 = a21*a32 - a22*a31; - float b10 = a21*a33 - a23*a31; - float b11 = a22*a33 - a23*a32; - - // Calculate the invert determinant (inlined to avoid double-caching) - float invDet = 1.0f/(b00*b11 - b01*b10 + b02*b09 + b03*b08 - b04*b07 + b05*b06); - - result.m0 = (a11*b11 - a12*b10 + a13*b09)*invDet; - result.m1 = (-a01*b11 + a02*b10 - a03*b09)*invDet; - result.m2 = (a31*b05 - a32*b04 + a33*b03)*invDet; - result.m3 = (-a21*b05 + a22*b04 - a23*b03)*invDet; - result.m4 = (-a10*b11 + a12*b08 - a13*b07)*invDet; - result.m5 = (a00*b11 - a02*b08 + a03*b07)*invDet; - result.m6 = (-a30*b05 + a32*b02 - a33*b01)*invDet; - result.m7 = (a20*b05 - a22*b02 + a23*b01)*invDet; - result.m8 = (a10*b10 - a11*b08 + a13*b06)*invDet; - result.m9 = (-a00*b10 + a01*b08 - a03*b06)*invDet; - result.m10 = (a30*b04 - a31*b02 + a33*b00)*invDet; - result.m11 = (-a20*b04 + a21*b02 - a23*b00)*invDet; - result.m12 = (-a10*b09 + a11*b07 - a12*b06)*invDet; - result.m13 = (a00*b09 - a01*b07 + a02*b06)*invDet; - result.m14 = (-a30*b03 + a31*b01 - a32*b00)*invDet; - result.m15 = (a20*b03 - a21*b01 + a22*b00)*invDet; - - return result; -} - -// Get identity matrix -RMAPI Matrix MatrixIdentity(void) -{ - Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 1.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 1.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 1.0f }; - - return result; -} - -// Add two matrices -RMAPI Matrix MatrixAdd(Matrix left, Matrix right) -{ - Matrix result = { 0 }; - - result.m0 = left.m0 + right.m0; - result.m1 = left.m1 + right.m1; - result.m2 = left.m2 + right.m2; - result.m3 = left.m3 + right.m3; - result.m4 = left.m4 + right.m4; - result.m5 = left.m5 + right.m5; - result.m6 = left.m6 + right.m6; - result.m7 = left.m7 + right.m7; - result.m8 = left.m8 + right.m8; - result.m9 = left.m9 + right.m9; - result.m10 = left.m10 + right.m10; - result.m11 = left.m11 + right.m11; - result.m12 = left.m12 + right.m12; - result.m13 = left.m13 + right.m13; - result.m14 = left.m14 + right.m14; - result.m15 = left.m15 + right.m15; - - return result; -} - -// Subtract two matrices (left - right) -RMAPI Matrix MatrixSubtract(Matrix left, Matrix right) -{ - Matrix result = { 0 }; - - result.m0 = left.m0 - right.m0; - result.m1 = left.m1 - right.m1; - result.m2 = left.m2 - right.m2; - result.m3 = left.m3 - right.m3; - result.m4 = left.m4 - right.m4; - result.m5 = left.m5 - right.m5; - result.m6 = left.m6 - right.m6; - result.m7 = left.m7 - right.m7; - result.m8 = left.m8 - right.m8; - result.m9 = left.m9 - right.m9; - result.m10 = left.m10 - right.m10; - result.m11 = left.m11 - right.m11; - result.m12 = left.m12 - right.m12; - result.m13 = left.m13 - right.m13; - result.m14 = left.m14 - right.m14; - result.m15 = left.m15 - right.m15; - - return result; -} - -// Get two matrix multiplication -// NOTE: When multiplying matrices... the order matters! -RMAPI Matrix MatrixMultiply(Matrix left, Matrix right) -{ - Matrix result = { 0 }; - -#if defined(RAYMATH_SSE_ENABLED) - // Load left side and right side - __m128 c0 = _mm_set_ps(right.m12, right.m8, right.m4, right.m0); - __m128 c1 = _mm_set_ps(right.m13, right.m9, right.m5, right.m1); - __m128 c2 = _mm_set_ps(right.m14, right.m10, right.m6, right.m2); - __m128 c3 = _mm_set_ps(right.m15, right.m11, right.m7, right.m3); - - // Transpose so c0..c3 become *rows* of the right matrix in semantic order - _MM_TRANSPOSE4_PS(c0, c1, c2, c3); - - float tmp[4] = { 0 }; - __m128 row; - - // Row 0 of result: [m0, m1, m2, m3] - row = _mm_mul_ps(_mm_set1_ps(left.m0), c0); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m1), c1)); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m2), c2)); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m3), c3)); - _mm_storeu_ps(tmp, row); - result.m0 = tmp[0]; - result.m1 = tmp[1]; - result.m2 = tmp[2]; - result.m3 = tmp[3]; - - // Row 1 of result: [m4, m5, m6, m7] - row = _mm_mul_ps(_mm_set1_ps(left.m4), c0); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m5), c1)); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m6), c2)); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m7), c3)); - _mm_storeu_ps(tmp, row); - result.m4 = tmp[0]; - result.m5 = tmp[1]; - result.m6 = tmp[2]; - result.m7 = tmp[3]; - - // Row 2 of result: [m8, m9, m10, m11] - row = _mm_mul_ps(_mm_set1_ps(left.m8), c0); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m9), c1)); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m10), c2)); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m11), c3)); - _mm_storeu_ps(tmp, row); - result.m8 = tmp[0]; - result.m9 = tmp[1]; - result.m10 = tmp[2]; - result.m11 = tmp[3]; - - // Row 3 of result: [m12, m13, m14, m15] - row = _mm_mul_ps(_mm_set1_ps(left.m12), c0); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m13), c1)); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m14), c2)); - row = _mm_add_ps(row, _mm_mul_ps(_mm_set1_ps(left.m15), c3)); - _mm_storeu_ps(tmp, row); - result.m12 = tmp[0]; - result.m13 = tmp[1]; - result.m14 = tmp[2]; - result.m15 = tmp[3]; -#else - result.m0 = left.m0*right.m0 + left.m1*right.m4 + left.m2*right.m8 + left.m3*right.m12; - result.m1 = left.m0*right.m1 + left.m1*right.m5 + left.m2*right.m9 + left.m3*right.m13; - result.m2 = left.m0*right.m2 + left.m1*right.m6 + left.m2*right.m10 + left.m3*right.m14; - result.m3 = left.m0*right.m3 + left.m1*right.m7 + left.m2*right.m11 + left.m3*right.m15; - result.m4 = left.m4*right.m0 + left.m5*right.m4 + left.m6*right.m8 + left.m7*right.m12; - result.m5 = left.m4*right.m1 + left.m5*right.m5 + left.m6*right.m9 + left.m7*right.m13; - result.m6 = left.m4*right.m2 + left.m5*right.m6 + left.m6*right.m10 + left.m7*right.m14; - result.m7 = left.m4*right.m3 + left.m5*right.m7 + left.m6*right.m11 + left.m7*right.m15; - result.m8 = left.m8*right.m0 + left.m9*right.m4 + left.m10*right.m8 + left.m11*right.m12; - result.m9 = left.m8*right.m1 + left.m9*right.m5 + left.m10*right.m9 + left.m11*right.m13; - result.m10 = left.m8*right.m2 + left.m9*right.m6 + left.m10*right.m10 + left.m11*right.m14; - result.m11 = left.m8*right.m3 + left.m9*right.m7 + left.m10*right.m11 + left.m11*right.m15; - result.m12 = left.m12*right.m0 + left.m13*right.m4 + left.m14*right.m8 + left.m15*right.m12; - result.m13 = left.m12*right.m1 + left.m13*right.m5 + left.m14*right.m9 + left.m15*right.m13; - result.m14 = left.m12*right.m2 + left.m13*right.m6 + left.m14*right.m10 + left.m15*right.m14; - result.m15 = left.m12*right.m3 + left.m13*right.m7 + left.m14*right.m11 + left.m15*right.m15; -#endif - - return result; -} - -// Get translation matrix -RMAPI Matrix MatrixTranslate(float x, float y, float z) -{ - Matrix result = { 1.0f, 0.0f, 0.0f, x, - 0.0f, 1.0f, 0.0f, y, - 0.0f, 0.0f, 1.0f, z, - 0.0f, 0.0f, 0.0f, 1.0f }; - - return result; -} - -// Create rotation matrix from axis and angle -// NOTE: Angle should be provided in radians -RMAPI Matrix MatrixRotate(Vector3 axis, float angle) -{ - Matrix result = { 0 }; - - float x = axis.x, y = axis.y, z = axis.z; - - float lengthSquared = x*x + y*y + z*z; - - if ((lengthSquared != 1.0f) && (lengthSquared != 0.0f)) - { - float ilength = 1.0f/sqrtf(lengthSquared); - x *= ilength; - y *= ilength; - z *= ilength; - } - - float sinres = sinf(angle); - float cosres = cosf(angle); - float t = 1.0f - cosres; - - result.m0 = x*x*t + cosres; - result.m1 = y*x*t + z*sinres; - result.m2 = z*x*t - y*sinres; - result.m3 = 0.0f; - - result.m4 = x*y*t - z*sinres; - result.m5 = y*y*t + cosres; - result.m6 = z*y*t + x*sinres; - result.m7 = 0.0f; - - result.m8 = x*z*t + y*sinres; - result.m9 = y*z*t - x*sinres; - result.m10 = z*z*t + cosres; - result.m11 = 0.0f; - - result.m12 = 0.0f; - result.m13 = 0.0f; - result.m14 = 0.0f; - result.m15 = 1.0f; - - return result; -} - -// Get x-rotation matrix -// NOTE: Angle must be provided in radians -RMAPI Matrix MatrixRotateX(float angle) -{ - Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 1.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 1.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() - - float cosres = cosf(angle); - float sinres = sinf(angle); - - result.m5 = cosres; - result.m6 = sinres; - result.m9 = -sinres; - result.m10 = cosres; - - return result; -} - -// Get y-rotation matrix -// NOTE: Angle must be provided in radians -RMAPI Matrix MatrixRotateY(float angle) -{ - Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 1.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 1.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() - - float cosres = cosf(angle); - float sinres = sinf(angle); - - result.m0 = cosres; - result.m2 = -sinres; - result.m8 = sinres; - result.m10 = cosres; - - return result; -} - -// Get z-rotation matrix -// NOTE: Angle must be provided in radians -RMAPI Matrix MatrixRotateZ(float angle) -{ - Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 1.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 1.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() - - float cosres = cosf(angle); - float sinres = sinf(angle); - - result.m0 = cosres; - result.m1 = sinres; - result.m4 = -sinres; - result.m5 = cosres; - - return result; -} - - -// Get xyz-rotation matrix -// NOTE: Angle must be provided in radians -RMAPI Matrix MatrixRotateXYZ(Vector3 angle) -{ - Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 1.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 1.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() - - float cosz = cosf(-angle.z); - float sinz = sinf(-angle.z); - float cosy = cosf(-angle.y); - float siny = sinf(-angle.y); - float cosx = cosf(-angle.x); - float sinx = sinf(-angle.x); - - result.m0 = cosz*cosy; - result.m1 = (cosz*siny*sinx) - (sinz*cosx); - result.m2 = (cosz*siny*cosx) + (sinz*sinx); - - result.m4 = sinz*cosy; - result.m5 = (sinz*siny*sinx) + (cosz*cosx); - result.m6 = (sinz*siny*cosx) - (cosz*sinx); - - result.m8 = -siny; - result.m9 = cosy*sinx; - result.m10= cosy*cosx; - - return result; -} - -// Get zyx-rotation matrix -// NOTE: Angle must be provided in radians -RMAPI Matrix MatrixRotateZYX(Vector3 angle) -{ - Matrix result = { 0 }; - - float cz = cosf(angle.z); - float sz = sinf(angle.z); - float cy = cosf(angle.y); - float sy = sinf(angle.y); - float cx = cosf(angle.x); - float sx = sinf(angle.x); - - result.m0 = cz*cy; - result.m4 = cz*sy*sx - cx*sz; - result.m8 = sz*sx + cz*cx*sy; - result.m12 = 0; - - result.m1 = cy*sz; - result.m5 = cz*cx + sz*sy*sx; - result.m9 = cx*sz*sy - cz*sx; - result.m13 = 0; - - result.m2 = -sy; - result.m6 = cy*sx; - result.m10 = cy*cx; - result.m14 = 0; - - result.m3 = 0; - result.m7 = 0; - result.m11 = 0; - result.m15 = 1; - - return result; -} - -// Get scaling matrix -RMAPI Matrix MatrixScale(float x, float y, float z) -{ - Matrix result = { x, 0.0f, 0.0f, 0.0f, - 0.0f, y, 0.0f, 0.0f, - 0.0f, 0.0f, z, 0.0f, - 0.0f, 0.0f, 0.0f, 1.0f }; - - return result; -} - -// Get perspective projection matrix -RMAPI Matrix MatrixFrustum(double left, double right, double bottom, double top, double nearPlane, double farPlane) -{ - Matrix result = { 0 }; - - float rl = (float)(right - left); - float tb = (float)(top - bottom); - float fn = (float)(farPlane - nearPlane); - - result.m0 = ((float)nearPlane*2.0f)/rl; - result.m1 = 0.0f; - result.m2 = 0.0f; - result.m3 = 0.0f; - - result.m4 = 0.0f; - result.m5 = ((float)nearPlane*2.0f)/tb; - result.m6 = 0.0f; - result.m7 = 0.0f; - - result.m8 = ((float)right + (float)left)/rl; - result.m9 = ((float)top + (float)bottom)/tb; - result.m10 = -((float)farPlane + (float)nearPlane)/fn; - result.m11 = -1.0f; - - result.m12 = 0.0f; - result.m13 = 0.0f; - result.m14 = -((float)farPlane*(float)nearPlane*2.0f)/fn; - result.m15 = 0.0f; - - return result; -} - -// Get perspective projection matrix -// NOTE: Fovy angle must be provided in radians -RMAPI Matrix MatrixPerspective(double fovY, double aspect, double nearPlane, double farPlane) -{ - Matrix result = { 0 }; - - double top = nearPlane*tan(fovY*0.5); - double bottom = -top; - double right = top*aspect; - double left = -right; - - // MatrixFrustum(-right, right, -top, top, near, far); - float rl = (float)(right - left); - float tb = (float)(top - bottom); - float fn = (float)(farPlane - nearPlane); - - result.m0 = ((float)nearPlane*2.0f)/rl; - result.m5 = ((float)nearPlane*2.0f)/tb; - result.m8 = ((float)right + (float)left)/rl; - result.m9 = ((float)top + (float)bottom)/tb; - result.m10 = -((float)farPlane + (float)nearPlane)/fn; - result.m11 = -1.0f; - result.m14 = -((float)farPlane*(float)nearPlane*2.0f)/fn; - - return result; -} - -// Get orthographic projection matrix -RMAPI Matrix MatrixOrtho(double left, double right, double bottom, double top, double nearPlane, double farPlane) -{ - Matrix result = { 0 }; - - float rl = (float)(right - left); - float tb = (float)(top - bottom); - float fn = (float)(farPlane - nearPlane); - - result.m0 = 2.0f/rl; - result.m1 = 0.0f; - result.m2 = 0.0f; - result.m3 = 0.0f; - result.m4 = 0.0f; - result.m5 = 2.0f/tb; - result.m6 = 0.0f; - result.m7 = 0.0f; - result.m8 = 0.0f; - result.m9 = 0.0f; - result.m10 = -2.0f/fn; - result.m11 = 0.0f; - result.m12 = -((float)left + (float)right)/rl; - result.m13 = -((float)top + (float)bottom)/tb; - result.m14 = -((float)farPlane + (float)nearPlane)/fn; - result.m15 = 1.0f; - - return result; -} - -// Get camera look-at matrix (view matrix) -RMAPI Matrix MatrixLookAt(Vector3 eye, Vector3 target, Vector3 up) -{ - Matrix result = { 0 }; - - float length = 0.0f; - float ilength = 0.0f; - - // Vector3Subtract(eye, target) - Vector3 vz = { eye.x - target.x, eye.y - target.y, eye.z - target.z }; - - // Vector3Normalize(vz) - Vector3 v = vz; - length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); - if (length == 0.0f) length = 1.0f; - ilength = 1.0f/length; - vz.x *= ilength; - vz.y *= ilength; - vz.z *= ilength; - - // Vector3CrossProduct(up, vz) - Vector3 vx = { up.y*vz.z - up.z*vz.y, up.z*vz.x - up.x*vz.z, up.x*vz.y - up.y*vz.x }; - - // Vector3Normalize(x) - v = vx; - length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); - if (length == 0.0f) length = 1.0f; - ilength = 1.0f/length; - vx.x *= ilength; - vx.y *= ilength; - vx.z *= ilength; - - // Vector3CrossProduct(vz, vx) - Vector3 vy = { vz.y*vx.z - vz.z*vx.y, vz.z*vx.x - vz.x*vx.z, vz.x*vx.y - vz.y*vx.x }; - - result.m0 = vx.x; - result.m1 = vy.x; - result.m2 = vz.x; - result.m3 = 0.0f; - result.m4 = vx.y; - result.m5 = vy.y; - result.m6 = vz.y; - result.m7 = 0.0f; - result.m8 = vx.z; - result.m9 = vy.z; - result.m10 = vz.z; - result.m11 = 0.0f; - result.m12 = -(vx.x*eye.x + vx.y*eye.y + vx.z*eye.z); // Vector3DotProduct(vx, eye) - result.m13 = -(vy.x*eye.x + vy.y*eye.y + vy.z*eye.z); // Vector3DotProduct(vy, eye) - result.m14 = -(vz.x*eye.x + vz.y*eye.y + vz.z*eye.z); // Vector3DotProduct(vz, eye) - result.m15 = 1.0f; - - return result; -} - -// Get float array of matrix data -RMAPI float16 MatrixToFloatV(Matrix mat) -{ - float16 result = { 0 }; - - result.v[0] = mat.m0; - result.v[1] = mat.m1; - result.v[2] = mat.m2; - result.v[3] = mat.m3; - result.v[4] = mat.m4; - result.v[5] = mat.m5; - result.v[6] = mat.m6; - result.v[7] = mat.m7; - result.v[8] = mat.m8; - result.v[9] = mat.m9; - result.v[10] = mat.m10; - result.v[11] = mat.m11; - result.v[12] = mat.m12; - result.v[13] = mat.m13; - result.v[14] = mat.m14; - result.v[15] = mat.m15; - - return result; -} - -//---------------------------------------------------------------------------------- -// Module Functions Definition - Quaternion math -//---------------------------------------------------------------------------------- - -// Add two quaternions -RMAPI Quaternion QuaternionAdd(Quaternion q1, Quaternion q2) -{ - Quaternion result = {q1.x + q2.x, q1.y + q2.y, q1.z + q2.z, q1.w + q2.w}; - - return result; -} - -// Add quaternion and float value -RMAPI Quaternion QuaternionAddValue(Quaternion q, float add) -{ - Quaternion result = {q.x + add, q.y + add, q.z + add, q.w + add}; - - return result; -} - -// Subtract two quaternions -RMAPI Quaternion QuaternionSubtract(Quaternion q1, Quaternion q2) -{ - Quaternion result = {q1.x - q2.x, q1.y - q2.y, q1.z - q2.z, q1.w - q2.w}; - - return result; -} - -// Subtract quaternion and float value -RMAPI Quaternion QuaternionSubtractValue(Quaternion q, float sub) -{ - Quaternion result = {q.x - sub, q.y - sub, q.z - sub, q.w - sub}; - - return result; -} - -// Get identity quaternion -RMAPI Quaternion QuaternionIdentity(void) -{ - Quaternion result = { 0.0f, 0.0f, 0.0f, 1.0f }; - - return result; -} - -// Computes the length of a quaternion -RMAPI float QuaternionLength(Quaternion q) -{ - float result = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); - - return result; -} - -// Normalize provided quaternion -RMAPI Quaternion QuaternionNormalize(Quaternion q) -{ - Quaternion result = { 0 }; - - float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); - if (length == 0.0f) length = 1.0f; - float ilength = 1.0f/length; - - result.x = q.x*ilength; - result.y = q.y*ilength; - result.z = q.z*ilength; - result.w = q.w*ilength; - - return result; -} - -// Invert provided quaternion -RMAPI Quaternion QuaternionInvert(Quaternion q) -{ - Quaternion result = q; - - float lengthSq = q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w; - - if (lengthSq != 0.0f) - { - float invLength = 1.0f/lengthSq; - - result.x *= -invLength; - result.y *= -invLength; - result.z *= -invLength; - result.w *= invLength; - } - - return result; -} - -// Calculate two quaternion multiplication -RMAPI Quaternion QuaternionMultiply(Quaternion q1, Quaternion q2) -{ - Quaternion result = { 0 }; - - float qax = q1.x, qay = q1.y, qaz = q1.z, qaw = q1.w; - float qbx = q2.x, qby = q2.y, qbz = q2.z, qbw = q2.w; - - result.x = qax*qbw + qaw*qbx + qay*qbz - qaz*qby; - result.y = qay*qbw + qaw*qby + qaz*qbx - qax*qbz; - result.z = qaz*qbw + qaw*qbz + qax*qby - qay*qbx; - result.w = qaw*qbw - qax*qbx - qay*qby - qaz*qbz; - - return result; -} - -// Scale quaternion by float value -RMAPI Quaternion QuaternionScale(Quaternion q, float mul) -{ - Quaternion result = { 0 }; - - result.x = q.x*mul; - result.y = q.y*mul; - result.z = q.z*mul; - result.w = q.w*mul; - - return result; -} - -// Divide two quaternions -RMAPI Quaternion QuaternionDivide(Quaternion q1, Quaternion q2) -{ - Quaternion result = { q1.x/q2.x, q1.y/q2.y, q1.z/q2.z, q1.w/q2.w }; - - return result; -} - -// Calculate linear interpolation between two quaternions -RMAPI Quaternion QuaternionLerp(Quaternion q1, Quaternion q2, float amount) -{ - Quaternion result = { 0 }; - - result.x = q1.x + amount*(q2.x - q1.x); - result.y = q1.y + amount*(q2.y - q1.y); - result.z = q1.z + amount*(q2.z - q1.z); - result.w = q1.w + amount*(q2.w - q1.w); - - return result; -} - -// Calculate slerp-optimized interpolation between two quaternions -RMAPI Quaternion QuaternionNlerp(Quaternion q1, Quaternion q2, float amount) -{ - Quaternion result = { 0 }; - - // QuaternionLerp(q1, q2, amount) - result.x = q1.x + amount*(q2.x - q1.x); - result.y = q1.y + amount*(q2.y - q1.y); - result.z = q1.z + amount*(q2.z - q1.z); - result.w = q1.w + amount*(q2.w - q1.w); - - // QuaternionNormalize(q); - Quaternion q = result; - float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); - if (length == 0.0f) length = 1.0f; - float ilength = 1.0f/length; - - result.x = q.x*ilength; - result.y = q.y*ilength; - result.z = q.z*ilength; - result.w = q.w*ilength; - - return result; -} - -// Calculates spherical linear interpolation between two quaternions -RMAPI Quaternion QuaternionSlerp(Quaternion q1, Quaternion q2, float amount) -{ - Quaternion result = { 0 }; - -#if !defined(EPSILON) - #define EPSILON 0.000001f -#endif - - float cosHalfTheta = q1.x*q2.x + q1.y*q2.y + q1.z*q2.z + q1.w*q2.w; - - if (cosHalfTheta < 0) - { - q2.x = -q2.x; q2.y = -q2.y; q2.z = -q2.z; q2.w = -q2.w; - cosHalfTheta = -cosHalfTheta; - } - - if (fabsf(cosHalfTheta) >= 1.0f) result = q1; - else if (cosHalfTheta > 0.95f) result = QuaternionNlerp(q1, q2, amount); - else - { - float halfTheta = acosf(cosHalfTheta); - float sinHalfTheta = sqrtf(1.0f - cosHalfTheta*cosHalfTheta); - - if (fabsf(sinHalfTheta) < EPSILON) - { - result.x = (q1.x*0.5f + q2.x*0.5f); - result.y = (q1.y*0.5f + q2.y*0.5f); - result.z = (q1.z*0.5f + q2.z*0.5f); - result.w = (q1.w*0.5f + q2.w*0.5f); - } - else - { - float ratioA = sinf((1 - amount)*halfTheta)/sinHalfTheta; - float ratioB = sinf(amount*halfTheta)/sinHalfTheta; - - result.x = (q1.x*ratioA + q2.x*ratioB); - result.y = (q1.y*ratioA + q2.y*ratioB); - result.z = (q1.z*ratioA + q2.z*ratioB); - result.w = (q1.w*ratioA + q2.w*ratioB); - } - } - - return result; -} - -// Calculate quaternion cubic spline interpolation using Cubic Hermite Spline algorithm -// as described in the GLTF 2.0 specification: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#interpolation-cubic -RMAPI Quaternion QuaternionCubicHermiteSpline(Quaternion q1, Quaternion outTangent1, Quaternion q2, Quaternion inTangent2, float t) -{ - float t2 = t*t; - float t3 = t2*t; - float h00 = 2*t3 - 3*t2 + 1; - float h10 = t3 - 2*t2 + t; - float h01 = -2*t3 + 3*t2; - float h11 = t3 - t2; - - Quaternion p0 = QuaternionScale(q1, h00); - Quaternion m0 = QuaternionScale(outTangent1, h10); - Quaternion p1 = QuaternionScale(q2, h01); - Quaternion m1 = QuaternionScale(inTangent2, h11); - - Quaternion result = { 0 }; - - result = QuaternionAdd(p0, m0); - result = QuaternionAdd(result, p1); - result = QuaternionAdd(result, m1); - result = QuaternionNormalize(result); - - return result; -} - -// Calculate quaternion based on the rotation from one vector to another -RMAPI Quaternion QuaternionFromVector3ToVector3(Vector3 from, Vector3 to) -{ - Quaternion result = { 0 }; - - float cos2Theta = (from.x*to.x + from.y*to.y + from.z*to.z); // Vector3DotProduct(from, to) - Vector3 cross = { from.y*to.z - from.z*to.y, from.z*to.x - from.x*to.z, from.x*to.y - from.y*to.x }; // Vector3CrossProduct(from, to) - - result.x = cross.x; - result.y = cross.y; - result.z = cross.z; - result.w = sqrtf(cross.x*cross.x + cross.y*cross.y + cross.z*cross.z + cos2Theta*cos2Theta) + cos2Theta; - - // QuaternionNormalize(q); - // NOTE: Normalize to essentially nlerp the original and identity to 0.5 - Quaternion q = result; - float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); - if (length == 0.0f) length = 1.0f; - float ilength = 1.0f/length; - - result.x = q.x*ilength; - result.y = q.y*ilength; - result.z = q.z*ilength; - result.w = q.w*ilength; - - return result; -} - -// Get a quaternion for a given rotation matrix -RMAPI Quaternion QuaternionFromMatrix(Matrix mat) -{ - Quaternion result = { 0 }; - - float fourWSquaredMinus1 = mat.m0 + mat.m5 + mat.m10; - float fourXSquaredMinus1 = mat.m0 - mat.m5 - mat.m10; - float fourYSquaredMinus1 = mat.m5 - mat.m0 - mat.m10; - float fourZSquaredMinus1 = mat.m10 - mat.m0 - mat.m5; - - int biggestIndex = 0; - float fourBiggestSquaredMinus1 = fourWSquaredMinus1; - if (fourXSquaredMinus1 > fourBiggestSquaredMinus1) - { - fourBiggestSquaredMinus1 = fourXSquaredMinus1; - biggestIndex = 1; - } - - if (fourYSquaredMinus1 > fourBiggestSquaredMinus1) - { - fourBiggestSquaredMinus1 = fourYSquaredMinus1; - biggestIndex = 2; - } - - if (fourZSquaredMinus1 > fourBiggestSquaredMinus1) - { - fourBiggestSquaredMinus1 = fourZSquaredMinus1; - biggestIndex = 3; - } - - float biggestVal = sqrtf(fourBiggestSquaredMinus1 + 1.0f)*0.5f; - float mult = 0.25f/biggestVal; - - switch (biggestIndex) - { - case 0: - result.w = biggestVal; - result.x = (mat.m6 - mat.m9)*mult; - result.y = (mat.m8 - mat.m2)*mult; - result.z = (mat.m1 - mat.m4)*mult; - break; - case 1: - result.x = biggestVal; - result.w = (mat.m6 - mat.m9)*mult; - result.y = (mat.m1 + mat.m4)*mult; - result.z = (mat.m8 + mat.m2)*mult; - break; - case 2: - result.y = biggestVal; - result.w = (mat.m8 - mat.m2)*mult; - result.x = (mat.m1 + mat.m4)*mult; - result.z = (mat.m6 + mat.m9)*mult; - break; - case 3: - result.z = biggestVal; - result.w = (mat.m1 - mat.m4)*mult; - result.x = (mat.m8 + mat.m2)*mult; - result.y = (mat.m6 + mat.m9)*mult; - break; - } - - return result; -} - -// Get a matrix for a given quaternion -RMAPI Matrix QuaternionToMatrix(Quaternion q) -{ - Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 1.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 1.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() - - float a2 = q.x*q.x; - float b2 = q.y*q.y; - float c2 = q.z*q.z; - float ac = q.x*q.z; - float ab = q.x*q.y; - float bc = q.y*q.z; - float ad = q.w*q.x; - float bd = q.w*q.y; - float cd = q.w*q.z; - - result.m0 = 1 - 2*(b2 + c2); - result.m1 = 2*(ab + cd); - result.m2 = 2*(ac - bd); - - result.m4 = 2*(ab - cd); - result.m5 = 1 - 2*(a2 + c2); - result.m6 = 2*(bc + ad); - - result.m8 = 2*(ac + bd); - result.m9 = 2*(bc - ad); - result.m10 = 1 - 2*(a2 + b2); - - return result; -} - -// Get rotation quaternion for an angle and axis -// NOTE: Angle must be provided in radians -RMAPI Quaternion QuaternionFromAxisAngle(Vector3 axis, float angle) -{ - Quaternion result = { 0.0f, 0.0f, 0.0f, 1.0f }; - - float axisLength = sqrtf(axis.x*axis.x + axis.y*axis.y + axis.z*axis.z); - - if (axisLength != 0.0f) - { - angle *= 0.5f; - - float length = 0.0f; - float ilength = 0.0f; - - // Vector3Normalize(axis) - length = axisLength; - if (length == 0.0f) length = 1.0f; - ilength = 1.0f/length; - axis.x *= ilength; - axis.y *= ilength; - axis.z *= ilength; - - float sinres = sinf(angle); - float cosres = cosf(angle); - - result.x = axis.x*sinres; - result.y = axis.y*sinres; - result.z = axis.z*sinres; - result.w = cosres; - - // QuaternionNormalize(q); - Quaternion q = result; - length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); - if (length == 0.0f) length = 1.0f; - ilength = 1.0f/length; - result.x = q.x*ilength; - result.y = q.y*ilength; - result.z = q.z*ilength; - result.w = q.w*ilength; - } - - return result; -} - -// Get the rotation angle and axis for a given quaternion -RMAPI void QuaternionToAxisAngle(Quaternion q, Vector3 *outAxis, float *outAngle) -{ - if (fabsf(q.w) > 1.0f) - { - // QuaternionNormalize(q); - float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); - if (length == 0.0f) length = 1.0f; - float ilength = 1.0f/length; - - q.x = q.x*ilength; - q.y = q.y*ilength; - q.z = q.z*ilength; - q.w = q.w*ilength; - } - - Vector3 resAxis = { 0.0f, 0.0f, 0.0f }; - float resAngle = 2.0f*acosf(q.w); - float den = sqrtf(1.0f - q.w*q.w); - - if (den > EPSILON) - { - resAxis.x = q.x/den; - resAxis.y = q.y/den; - resAxis.z = q.z/den; - } - else - { - // This occurs when the angle is zero. - // Not a problem: just set an arbitrary normalized axis. - resAxis.x = 1.0f; - } - - *outAxis = resAxis; - *outAngle = resAngle; -} - -// Get the quaternion equivalent to Euler angles -// NOTE: Rotation order is ZYX -RMAPI Quaternion QuaternionFromEuler(float pitch, float yaw, float roll) -{ - Quaternion result = { 0 }; - - float x0 = cosf(pitch*0.5f); - float x1 = sinf(pitch*0.5f); - float y0 = cosf(yaw*0.5f); - float y1 = sinf(yaw*0.5f); - float z0 = cosf(roll*0.5f); - float z1 = sinf(roll*0.5f); - - result.x = x1*y0*z0 - x0*y1*z1; - result.y = x0*y1*z0 + x1*y0*z1; - result.z = x0*y0*z1 - x1*y1*z0; - result.w = x0*y0*z0 + x1*y1*z1; - - return result; -} - -// Get the Euler angles equivalent to quaternion (roll, pitch, yaw) -// NOTE: Angles are returned in a Vector3 struct in radians -RMAPI Vector3 QuaternionToEuler(Quaternion q) -{ - Vector3 result = { 0 }; - - // Roll (x-axis rotation) - float x0 = 2.0f*(q.w*q.x + q.y*q.z); - float x1 = 1.0f - 2.0f*(q.x*q.x + q.y*q.y); - result.x = atan2f(x0, x1); - - // Pitch (y-axis rotation) - float y0 = 2.0f*(q.w*q.y - q.z*q.x); - y0 = y0 > 1.0f ? 1.0f : y0; - y0 = y0 < -1.0f ? -1.0f : y0; - result.y = asinf(y0); - - // Yaw (z-axis rotation) - float z0 = 2.0f*(q.w*q.z + q.x*q.y); - float z1 = 1.0f - 2.0f*(q.y*q.y + q.z*q.z); - result.z = atan2f(z0, z1); - - return result; -} - -// Transform a quaternion given a transformation matrix -RMAPI Quaternion QuaternionTransform(Quaternion q, Matrix mat) -{ - Quaternion result = { 0 }; - - result.x = mat.m0*q.x + mat.m4*q.y + mat.m8*q.z + mat.m12*q.w; - result.y = mat.m1*q.x + mat.m5*q.y + mat.m9*q.z + mat.m13*q.w; - result.z = mat.m2*q.x + mat.m6*q.y + mat.m10*q.z + mat.m14*q.w; - result.w = mat.m3*q.x + mat.m7*q.y + mat.m11*q.z + mat.m15*q.w; - - return result; -} - -// Check whether two given quaternions are almost equal -RMAPI int QuaternionEquals(Quaternion p, Quaternion q) -{ -#if !defined(EPSILON) - #define EPSILON 0.000001f -#endif - - int result = (((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && - ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && - ((fabsf(p.z - q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))) && - ((fabsf(p.w - q.w)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.w), fabsf(q.w)))))) || - (((fabsf(p.x + q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && - ((fabsf(p.y + q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && - ((fabsf(p.z + q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))) && - ((fabsf(p.w + q.w)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.w), fabsf(q.w)))))); - - return result; -} - -// Compose a transformation matrix from rotational, translational and scaling components -// TODO: This function is not following raymath conventions defined in header: NOT self-contained -RMAPI Matrix MatrixCompose(Vector3 translation, Quaternion rotation, Vector3 scale) -{ - // Initialize vectors - Vector3 right = { 1.0f, 0.0f, 0.0f }; - Vector3 up = { 0.0f, 1.0f, 0.0f }; - Vector3 forward = { 0.0f, 0.0f, 1.0f }; - - // Scale vectors - right = Vector3Scale(right, scale.x); - up = Vector3Scale(up, scale.y); - forward = Vector3Scale(forward , scale.z); - - // Rotate vectors - right = Vector3RotateByQuaternion(right, rotation); - up = Vector3RotateByQuaternion(up, rotation); - forward = Vector3RotateByQuaternion(forward, rotation); - - // Set result matrix output - Matrix result = { - right.x, up.x, forward.x, translation.x, - right.y, up.y, forward.y, translation.y, - right.z, up.z, forward.z, translation.z, - 0.0f, 0.0f, 0.0f, 1.0f - }; - - return result; -} - -// Decompose a transformation matrix into its rotational, translational and scaling components and remove shear -// TODO: This function is not following raymath conventions defined in header: NOT self-contained -RMAPI void MatrixDecompose(Matrix mat, Vector3 *translation, Quaternion *rotation, Vector3 *scale) -{ - float eps = (float)1e-9; - - // Extract Translation - translation->x = mat.m12; - translation->y = mat.m13; - translation->z = mat.m14; - - // Matrix Columns - Rotation will be extracted into here. - Vector3 matColumns[3] = { { mat.m0, mat.m4, mat.m8 }, - { mat.m1, mat.m5, mat.m9 }, - { mat.m2, mat.m6, mat.m10 } }; - - // Shear Parameters XY, XZ, and YZ (extract and ignored) - float shear[3] = { 0 }; - - // Normalized Scale Parameters - Vector3 scl = { 0 }; - - // Max-Normalizing helps numerical stability - float stabilizer = eps; - for (int i = 0; i < 3; i++) - { - stabilizer = fmaxf(stabilizer, fabsf(matColumns[i].x)); - stabilizer = fmaxf(stabilizer, fabsf(matColumns[i].y)); - stabilizer = fmaxf(stabilizer, fabsf(matColumns[i].z)); - } - matColumns[0] = Vector3Scale(matColumns[0], 1.0f / stabilizer); - matColumns[1] = Vector3Scale(matColumns[1], 1.0f / stabilizer); - matColumns[2] = Vector3Scale(matColumns[2], 1.0f / stabilizer); - - // X Scale - scl.x = Vector3Length(matColumns[0]); - if (scl.x > eps) matColumns[0] = Vector3Scale(matColumns[0], 1.0f / scl.x); - - // Compute XY shear and make col2 orthogonal - shear[0] = Vector3DotProduct(matColumns[0], matColumns[1]); - matColumns[1] = Vector3Subtract(matColumns[1], Vector3Scale(matColumns[0], shear[0])); - - // Y Scale - scl.y = Vector3Length(matColumns[1]); - if (scl.y > eps) - { - matColumns[1] = Vector3Scale(matColumns[1], 1.0f / scl.y); - shear[0] /= scl.y; // Correct XY shear - } - - // Compute XZ and YZ shears and make col3 orthogonal - shear[1] = Vector3DotProduct(matColumns[0], matColumns[2]); - matColumns[2] = Vector3Subtract(matColumns[2], Vector3Scale(matColumns[0], shear[1])); - shear[2] = Vector3DotProduct(matColumns[1], matColumns[2]); - matColumns[2] = Vector3Subtract(matColumns[2], Vector3Scale(matColumns[1], shear[2])); - - // Z Scale - scl.z = Vector3Length(matColumns[2]); - if (scl.z > eps) - { - matColumns[2] = Vector3Scale(matColumns[2], 1.0f / scl.z); - shear[1] /= scl.z; // Correct XZ shear - shear[2] /= scl.z; // Correct YZ shear - } - - // matColumns are now orthonormal in O(3). Now ensure its in SO(3) by enforcing det = 1. - if (Vector3DotProduct(matColumns[0], Vector3CrossProduct(matColumns[1], matColumns[2])) < 0) - { - scl = Vector3Negate(scl); - matColumns[0] = Vector3Negate(matColumns[0]); - matColumns[1] = Vector3Negate(matColumns[1]); - matColumns[2] = Vector3Negate(matColumns[2]); - } - - // Set Scale - *scale = Vector3Scale(scl, stabilizer); - - // Extract Rotation - Matrix rotationMatrix = { matColumns[0].x, matColumns[0].y, matColumns[0].z, 0, - matColumns[1].x, matColumns[1].y, matColumns[1].z, 0, - matColumns[2].x, matColumns[2].y, matColumns[2].z, 0, - 0, 0, 0, 1 }; - *rotation = QuaternionFromMatrix(rotationMatrix); -} - -#if defined(__cplusplus) && !defined(RAYMATH_DISABLE_CPP_OPERATORS) - -// Optional C++ math operators -//------------------------------------------------------------------------------- - -// Vector2 operators -static constexpr Vector2 Vector2Zeros = { 0, 0 }; -static constexpr Vector2 Vector2Ones = { 1, 1 }; -static constexpr Vector2 Vector2UnitX = { 1, 0 }; -static constexpr Vector2 Vector2UnitY = { 0, 1 }; - -inline Vector2 operator + (const Vector2& lhs, const Vector2& rhs) -{ - return Vector2Add(lhs, rhs); -} - -inline const Vector2& operator += (Vector2& lhs, const Vector2& rhs) -{ - lhs = Vector2Add(lhs, rhs); - return lhs; -} - -inline Vector2 operator - (const Vector2& lhs, const Vector2& rhs) -{ - return Vector2Subtract(lhs, rhs); -} - -inline const Vector2& operator -= (Vector2& lhs, const Vector2& rhs) -{ - lhs = Vector2Subtract(lhs, rhs); - return lhs; -} - -inline Vector2 operator * (const Vector2& lhs, const float& rhs) -{ - return Vector2Scale(lhs, rhs); -} - -inline const Vector2& operator *= (Vector2& lhs, const float& rhs) -{ - lhs = Vector2Scale(lhs, rhs); - return lhs; -} - -inline Vector2 operator * (const Vector2& lhs, const Vector2& rhs) -{ - return Vector2Multiply(lhs, rhs); -} - -inline const Vector2& operator *= (Vector2& lhs, const Vector2& rhs) -{ - lhs = Vector2Multiply(lhs, rhs); - return lhs; -} - -inline Vector2 operator * (const Vector2& lhs, const Matrix& rhs) -{ - return Vector2Transform(lhs, rhs); -} - -inline const Vector2& operator *= (Vector2& lhs, const Matrix& rhs) -{ - lhs = Vector2Transform(lhs, rhs); - return lhs; -} - -inline Vector2 operator / (const Vector2& lhs, const float& rhs) -{ - return Vector2Scale(lhs, 1.0f/rhs); -} - -inline const Vector2& operator /= (Vector2& lhs, const float& rhs) -{ - lhs = Vector2Scale(lhs, 1.0f/rhs); - return lhs; -} - -inline Vector2 operator / (const Vector2& lhs, const Vector2& rhs) -{ - return Vector2Divide(lhs, rhs); -} - -inline const Vector2& operator /= (Vector2& lhs, const Vector2& rhs) -{ - lhs = Vector2Divide(lhs, rhs); - return lhs; -} - -inline bool operator == (const Vector2& lhs, const Vector2& rhs) -{ - return FloatEquals(lhs.x, rhs.x) && FloatEquals(lhs.y, rhs.y); -} - -inline bool operator != (const Vector2& lhs, const Vector2& rhs) -{ - return !FloatEquals(lhs.x, rhs.x) || !FloatEquals(lhs.y, rhs.y); -} - -// Vector3 operators -static constexpr Vector3 Vector3Zeros = { 0, 0, 0 }; -static constexpr Vector3 Vector3Ones = { 1, 1, 1 }; -static constexpr Vector3 Vector3UnitX = { 1, 0, 0 }; -static constexpr Vector3 Vector3UnitY = { 0, 1, 0 }; -static constexpr Vector3 Vector3UnitZ = { 0, 0, 1 }; - -inline Vector3 operator + (const Vector3& lhs, const Vector3& rhs) -{ - return Vector3Add(lhs, rhs); -} - -inline const Vector3& operator += (Vector3& lhs, const Vector3& rhs) -{ - lhs = Vector3Add(lhs, rhs); - return lhs; -} - -inline Vector3 operator - (const Vector3& lhs, const Vector3& rhs) -{ - return Vector3Subtract(lhs, rhs); -} - -inline const Vector3& operator -= (Vector3& lhs, const Vector3& rhs) -{ - lhs = Vector3Subtract(lhs, rhs); - return lhs; -} - -inline Vector3 operator * (const Vector3& lhs, const float& rhs) -{ - return Vector3Scale(lhs, rhs); -} - -inline const Vector3& operator *= (Vector3& lhs, const float& rhs) -{ - lhs = Vector3Scale(lhs, rhs); - return lhs; -} - -inline Vector3 operator * (const Vector3& lhs, const Vector3& rhs) -{ - return Vector3Multiply(lhs, rhs); -} - -inline const Vector3& operator *= (Vector3& lhs, const Vector3& rhs) -{ - lhs = Vector3Multiply(lhs, rhs); - return lhs; -} - -inline Vector3 operator * (const Vector3& lhs, const Matrix& rhs) -{ - return Vector3Transform(lhs, rhs); -} - -inline const Vector3& operator *= (Vector3& lhs, const Matrix& rhs) -{ - lhs = Vector3Transform(lhs, rhs); - return lhs; -} - -inline Vector3 operator / (const Vector3& lhs, const float& rhs) -{ - return Vector3Scale(lhs, 1.0f/rhs); -} - -inline const Vector3& operator /= (Vector3& lhs, const float& rhs) -{ - lhs = Vector3Scale(lhs, 1.0f/rhs); - return lhs; -} - -inline Vector3 operator / (const Vector3& lhs, const Vector3& rhs) -{ - return Vector3Divide(lhs, rhs); -} - -inline const Vector3& operator /= (Vector3& lhs, const Vector3& rhs) -{ - lhs = Vector3Divide(lhs, rhs); - return lhs; -} - -inline bool operator == (const Vector3& lhs, const Vector3& rhs) -{ - return FloatEquals(lhs.x, rhs.x) && FloatEquals(lhs.y, rhs.y) && FloatEquals(lhs.z, rhs.z); -} - -inline bool operator != (const Vector3& lhs, const Vector3& rhs) -{ - return !FloatEquals(lhs.x, rhs.x) || !FloatEquals(lhs.y, rhs.y) || !FloatEquals(lhs.z, rhs.z); -} - -// Vector4 operators -static constexpr Vector4 Vector4Zeros = { 0, 0, 0, 0 }; -static constexpr Vector4 Vector4Ones = { 1, 1, 1, 1 }; -static constexpr Vector4 Vector4UnitX = { 1, 0, 0, 0 }; -static constexpr Vector4 Vector4UnitY = { 0, 1, 0, 0 }; -static constexpr Vector4 Vector4UnitZ = { 0, 0, 1, 0 }; -static constexpr Vector4 Vector4UnitW = { 0, 0, 0, 1 }; - -inline Vector4 operator + (const Vector4& lhs, const Vector4& rhs) -{ - return Vector4Add(lhs, rhs); -} - -inline const Vector4& operator += (Vector4& lhs, const Vector4& rhs) -{ - lhs = Vector4Add(lhs, rhs); - return lhs; -} - -inline Vector4 operator - (const Vector4& lhs, const Vector4& rhs) -{ - return Vector4Subtract(lhs, rhs); -} - -inline const Vector4& operator -= (Vector4& lhs, const Vector4& rhs) -{ - lhs = Vector4Subtract(lhs, rhs); - return lhs; -} - -inline Vector4 operator * (const Vector4& lhs, const float& rhs) -{ - return Vector4Scale(lhs, rhs); -} - -inline const Vector4& operator *= (Vector4& lhs, const float& rhs) -{ - lhs = Vector4Scale(lhs, rhs); - return lhs; -} - -inline Vector4 operator * (const Vector4& lhs, const Vector4& rhs) -{ - return Vector4Multiply(lhs, rhs); -} - -inline const Vector4& operator *= (Vector4& lhs, const Vector4& rhs) -{ - lhs = Vector4Multiply(lhs, rhs); - return lhs; -} - -inline Vector4 operator / (const Vector4& lhs, const float& rhs) -{ - return Vector4Scale(lhs, 1.0f/rhs); -} - -inline const Vector4& operator /= (Vector4& lhs, const float& rhs) -{ - lhs = Vector4Scale(lhs, 1.0f/rhs); - return lhs; -} - -inline Vector4 operator / (const Vector4& lhs, const Vector4& rhs) -{ - return Vector4Divide(lhs, rhs); -} - -inline const Vector4& operator /= (Vector4& lhs, const Vector4& rhs) -{ - lhs = Vector4Divide(lhs, rhs); - return lhs; -} - -inline bool operator == (const Vector4& lhs, const Vector4& rhs) -{ - return FloatEquals(lhs.x, rhs.x) && FloatEquals(lhs.y, rhs.y) && FloatEquals(lhs.z, rhs.z) && FloatEquals(lhs.w, rhs.w); -} - -inline bool operator != (const Vector4& lhs, const Vector4& rhs) -{ - return !FloatEquals(lhs.x, rhs.x) || !FloatEquals(lhs.y, rhs.y) || !FloatEquals(lhs.z, rhs.z) || !FloatEquals(lhs.w, rhs.w); -} - -// Quaternion operators -static constexpr Quaternion QuaternionZeros = { 0, 0, 0, 0 }; -static constexpr Quaternion QuaternionOnes = { 1, 1, 1, 1 }; -static constexpr Quaternion QuaternionUnitX = { 0, 0, 0, 1 }; - -inline Quaternion operator + (const Quaternion& lhs, const float& rhs) -{ - return QuaternionAddValue(lhs, rhs); -} - -inline const Quaternion& operator += (Quaternion& lhs, const float& rhs) -{ - lhs = QuaternionAddValue(lhs, rhs); - return lhs; -} - -inline Quaternion operator - (const Quaternion& lhs, const float& rhs) -{ - return QuaternionSubtractValue(lhs, rhs); -} - -inline const Quaternion& operator -= (Quaternion& lhs, const float& rhs) -{ - lhs = QuaternionSubtractValue(lhs, rhs); - return lhs; -} - -inline Quaternion operator * (const Quaternion& lhs, const Matrix& rhs) -{ - return QuaternionTransform(lhs, rhs); -} - -inline const Quaternion& operator *= (Quaternion& lhs, const Matrix& rhs) -{ - lhs = QuaternionTransform(lhs, rhs); - return lhs; -} - -// Matrix operators -inline Matrix operator + (const Matrix& lhs, const Matrix& rhs) -{ - return MatrixAdd(lhs, rhs); -} - -inline const Matrix& operator += (Matrix& lhs, const Matrix& rhs) -{ - lhs = MatrixAdd(lhs, rhs); - return lhs; -} - -inline Matrix operator - (const Matrix& lhs, const Matrix& rhs) -{ - return MatrixSubtract(lhs, rhs); -} - -inline const Matrix& operator -= (Matrix& lhs, const Matrix& rhs) -{ - lhs = MatrixSubtract(lhs, rhs); - return lhs; -} - -inline Matrix operator * (const Matrix& lhs, const Matrix& rhs) -{ - return MatrixMultiply(lhs, rhs); -} - -inline const Matrix& operator *= (Matrix& lhs, const Matrix& rhs) -{ - lhs = MatrixMultiply(lhs, rhs); - return lhs; -} -//------------------------------------------------------------------------------- -#endif // C++ operators - -#endif // RAYMATH_H +/********************************************************************************************** +* +* raymath v2.0 - Math functions to work with Vector2, Vector3, Matrix and Quaternions +* +* CONVENTIONS: +* - Matrix structure is defined as row-major (memory layout) but parameters naming AND all +* math operations performed by the library consider the structure as it was column-major +* It is like transposed versions of the matrices are used for all the maths +* It benefits some functions making them cache-friendly and also avoids matrix +* transpositions sometimes required by OpenGL +* Example: In memory order, row0 is [m0 m4 m8 m12] but in semantic math row0 is [m0 m1 m2 m3] +* - Functions are always self-contained, no function use another raymath function inside, +* required code is directly re-implemented inside +* - Functions input parameters are always received by value (2 unavoidable exceptions) +* - Functions use always a "result" variable for return (except C++ operators) +* - Functions are always defined inline +* - Angles are always in radians (DEG2RAD/RAD2DEG macros provided for convenience) +* - No compound literals used to make sure libray is compatible with C++ +* +* CONFIGURATION: +* #define RAYMATH_IMPLEMENTATION +* Generates the implementation of the library into the included file. +* If not defined, the library is in header only mode and can be included in other headers +* or source files without problems. But only ONE file should hold the implementation. +* +* #define RAYMATH_STATIC_INLINE +* Define static inline functions code, so #include header suffices for use. +* This may use up lots of memory. +* +* #define RAYMATH_DISABLE_CPP_OPERATORS +* Disables C++ operator overloads for raymath types. +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5) +* +* This software is provided "as-is", without any express or implied warranty. In no event +* will the authors be held liable for any damages arising from the use of this software. +* +* Permission is granted to anyone to use this software for any purpose, including commercial +* applications, and to alter it and redistribute it freely, subject to the following restrictions: +* +* 1. The origin of this software must not be misrepresented; you must not claim that you +* wrote the original software. If you use this software in a product, an acknowledgment +* in the product documentation would be appreciated but is not required. +* +* 2. Altered source versions must be plainly marked as such, and must not be misrepresented +* as being the original software. +* +* 3. This notice may not be removed or altered from any source distribution. +* +**********************************************************************************************/ + +#ifndef RAYMATH_H +#define RAYMATH_H + +#if defined(RAYMATH_IMPLEMENTATION) && defined(RAYMATH_STATIC_INLINE) + #error "Specifying both RAYMATH_IMPLEMENTATION and RAYMATH_STATIC_INLINE is contradictory" +#endif + +// Function specifiers definition +#if defined(RAYMATH_IMPLEMENTATION) + #if defined(_WIN32) && defined(BUILD_LIBTYPE_SHARED) + #define RMAPI __declspec(dllexport) extern inline // We are building raylib as a Win32 shared library (.dll) + #elif defined(BUILD_LIBTYPE_SHARED) + #define RMAPI __attribute__((visibility("default"))) // We are building raylib as a Unix shared library (.so/.dylib) + #elif defined(_WIN32) && defined(USE_LIBTYPE_SHARED) + #define RMAPI __declspec(dllimport) // We are using raylib as a Win32 shared library (.dll) + #else + #define RMAPI extern inline // Provide external definition + #endif +#elif defined(RAYMATH_STATIC_INLINE) + #define RMAPI static inline // Functions may be inlined, no external out-of-line definition +#else + #if defined(__TINYC__) + #define RMAPI static inline // plain inline not supported by tinycc (See issue #435) + #else + #define RMAPI inline // Functions may be inlined or external definition used + #endif +#endif + + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- +#ifndef PI + #define PI 3.14159265358979323846f +#endif + +#ifndef EPSILON + #define EPSILON 0.000001f +#endif + +#ifndef DEG2RAD + #define DEG2RAD (PI/180.0f) +#endif + +#ifndef RAD2DEG + #define RAD2DEG (180.0f/PI) +#endif + +// Get float vector for Matrix +#ifndef MatrixToFloat + #define MatrixToFloat(mat) (MatrixToFloatV(mat).v) +#endif + +// Get float vector for Vector3 +#ifndef Vector3ToFloat + #define Vector3ToFloat(vec) (Vector3ToFloatV(vec).v) +#endif + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +#if !defined(RL_VECTOR2_TYPE) +// Vector2 type +typedef struct Vector2 { + float x; + float y; +} Vector2; +#define RL_VECTOR2_TYPE +#endif + +#if !defined(RL_VECTOR3_TYPE) +// Vector3 type +typedef struct Vector3 { + float x; + float y; + float z; +} Vector3; +#define RL_VECTOR3_TYPE +#endif + +#if !defined(RL_VECTOR4_TYPE) +// Vector4 type +typedef struct Vector4 { + float x; + float y; + float z; + float w; +} Vector4; +#define RL_VECTOR4_TYPE +#endif + +#if !defined(RL_QUATERNION_TYPE) +// Quaternion type +typedef Vector4 Quaternion; +#define RL_QUATERNION_TYPE +#endif + +#if !defined(RL_MATRIX_TYPE) +// Matrix type (OpenGL style 4x4 - right handed, column major) +typedef struct Matrix { + float m0, m4, m8, m12; // Matrix first row (4 components) + float m1, m5, m9, m13; // Matrix second row (4 components) + float m2, m6, m10, m14; // Matrix third row (4 components) + float m3, m7, m11, m15; // Matrix fourth row (4 components) +} Matrix; +#define RL_MATRIX_TYPE +#endif + +// NOTE: Helper types to be used instead of array return types for *ToFloat functions +typedef struct float3 { + float v[3]; +} float3; + +typedef struct float16 { + float v[16]; +} float16; + +#include // Required for: sinf(), cosf(), tan(), atan2f(), sqrtf(), floor(), fminf(), fmaxf(), fabsf() + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Utils math +//---------------------------------------------------------------------------------- + +// Clamp float value +RMAPI float Clamp(float value, float min, float max) +{ + float result = (value < min)? min : value; + + if (result > max) result = max; + + return result; +} + +// Calculate linear interpolation between two floats +RMAPI float Lerp(float start, float end, float amount) +{ + float result = start + amount*(end - start); + + return result; +} + +// Normalize input value within input range +RMAPI float Normalize(float value, float start, float end) +{ + float result = (value - start)/(end - start); + + return result; +} + +// Remap input value within input range to output range +RMAPI float Remap(float value, float inputStart, float inputEnd, float outputStart, float outputEnd) +{ + float result = (value - inputStart)/(inputEnd - inputStart)*(outputEnd - outputStart) + outputStart; + + return result; +} + +// Wrap input value from min to max +RMAPI float Wrap(float value, float min, float max) +{ + float result = value - (max - min)*floorf((value - min)/(max - min)); + + return result; +} + +// Check whether two given floats are almost equal +RMAPI int FloatEquals(float x, float y) +{ +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + int result = (fabsf(x - y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(x), fabsf(y)))); + + return result; +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Vector2 math +//---------------------------------------------------------------------------------- + +// Vector with components value 0.0f +RMAPI Vector2 Vector2Zero(void) +{ + Vector2 result = { 0.0f, 0.0f }; + + return result; +} + +// Vector with components value 1.0f +RMAPI Vector2 Vector2One(void) +{ + Vector2 result = { 1.0f, 1.0f }; + + return result; +} + +// Add two vectors (v1 + v2) +RMAPI Vector2 Vector2Add(Vector2 v1, Vector2 v2) +{ + Vector2 result = { v1.x + v2.x, v1.y + v2.y }; + + return result; +} + +// Add vector and float value +RMAPI Vector2 Vector2AddValue(Vector2 v, float add) +{ + Vector2 result = { v.x + add, v.y + add }; + + return result; +} + +// Subtract two vectors (v1 - v2) +RMAPI Vector2 Vector2Subtract(Vector2 v1, Vector2 v2) +{ + Vector2 result = { v1.x - v2.x, v1.y - v2.y }; + + return result; +} + +// Subtract vector by float value +RMAPI Vector2 Vector2SubtractValue(Vector2 v, float sub) +{ + Vector2 result = { v.x - sub, v.y - sub }; + + return result; +} + +// Calculate vector length +RMAPI float Vector2Length(Vector2 v) +{ + float result = sqrtf((v.x*v.x) + (v.y*v.y)); + + return result; +} + +// Calculate vector square length +RMAPI float Vector2LengthSqr(Vector2 v) +{ + float result = (v.x*v.x) + (v.y*v.y); + + return result; +} + +// Calculate two vectors dot product +RMAPI float Vector2DotProduct(Vector2 v1, Vector2 v2) +{ + float result = (v1.x*v2.x + v1.y*v2.y); + + return result; +} + +// Calculate distance between two vectors +RMAPI float Vector2Distance(Vector2 v1, Vector2 v2) +{ + float result = sqrtf((v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y)); + + return result; +} + +// Calculate square distance between two vectors +RMAPI float Vector2DistanceSqr(Vector2 v1, Vector2 v2) +{ + float result = ((v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y)); + + return result; +} + +// Calculate angle between two vectors +// NOTE: Angle is calculated from origin point (0, 0) +RMAPI float Vector2Angle(Vector2 v1, Vector2 v2) +{ + float result = 0.0f; + + float dot = v1.x*v2.x + v1.y*v2.y; + float det = v1.x*v2.y - v1.y*v2.x; + + result = atan2f(det, dot); + + return result; +} + +// Calculate angle defined by a two vectors line +// NOTE: Parameters need to be normalized +// Current implementation should be aligned with glm::angle +RMAPI float Vector2LineAngle(Vector2 start, Vector2 end) +{ + float result = 0.0f; + + // TODO(10/9/2023): Currently angles move clockwise, determine if this is wanted behavior + result = -atan2f(end.y - start.y, end.x - start.x); + + return result; +} + +// Scale vector (multiply by value) +RMAPI Vector2 Vector2Scale(Vector2 v, float scale) +{ + Vector2 result = { v.x*scale, v.y*scale }; + + return result; +} + +// Multiply vector by vector +RMAPI Vector2 Vector2Multiply(Vector2 v1, Vector2 v2) +{ + Vector2 result = { v1.x*v2.x, v1.y*v2.y }; + + return result; +} + +// Negate vector +RMAPI Vector2 Vector2Negate(Vector2 v) +{ + Vector2 result = { -v.x, -v.y }; + + return result; +} + +// Divide vector by vector +RMAPI Vector2 Vector2Divide(Vector2 v1, Vector2 v2) +{ + Vector2 result = { v1.x/v2.x, v1.y/v2.y }; + + return result; +} + +// Normalize provided vector +RMAPI Vector2 Vector2Normalize(Vector2 v) +{ + Vector2 result = { 0 }; + float length = sqrtf((v.x*v.x) + (v.y*v.y)); + + if (length > 0) + { + float ilength = 1.0f/length; + result.x = v.x*ilength; + result.y = v.y*ilength; + } + + return result; +} + +// Transforms a Vector2 by a given Matrix +RMAPI Vector2 Vector2Transform(Vector2 v, Matrix mat) +{ + Vector2 result = { 0 }; + + float x = v.x; + float y = v.y; + float z = 0; + + result.x = mat.m0*x + mat.m4*y + mat.m8*z + mat.m12; + result.y = mat.m1*x + mat.m5*y + mat.m9*z + mat.m13; + + return result; +} + +// Calculate linear interpolation between two vectors +RMAPI Vector2 Vector2Lerp(Vector2 v1, Vector2 v2, float amount) +{ + Vector2 result = { 0 }; + + result.x = v1.x + amount*(v2.x - v1.x); + result.y = v1.y + amount*(v2.y - v1.y); + + return result; +} + +// Calculate reflected vector to normal +RMAPI Vector2 Vector2Reflect(Vector2 v, Vector2 normal) +{ + Vector2 result = { 0 }; + + float dotProduct = (v.x*normal.x + v.y*normal.y); // Dot product + + result.x = v.x - (2.0f*normal.x)*dotProduct; + result.y = v.y - (2.0f*normal.y)*dotProduct; + + return result; +} + +// Get min value for each pair of components +RMAPI Vector2 Vector2Min(Vector2 v1, Vector2 v2) +{ + Vector2 result = { 0 }; + + result.x = fminf(v1.x, v2.x); + result.y = fminf(v1.y, v2.y); + + return result; +} + +// Get max value for each pair of components +RMAPI Vector2 Vector2Max(Vector2 v1, Vector2 v2) +{ + Vector2 result = { 0 }; + + result.x = fmaxf(v1.x, v2.x); + result.y = fmaxf(v1.y, v2.y); + + return result; +} + +// Rotate vector by angle +RMAPI Vector2 Vector2Rotate(Vector2 v, float angle) +{ + Vector2 result = { 0 }; + + float cosres = cosf(angle); + float sinres = sinf(angle); + + result.x = v.x*cosres - v.y*sinres; + result.y = v.x*sinres + v.y*cosres; + + return result; +} + +// Move Vector towards target +RMAPI Vector2 Vector2MoveTowards(Vector2 v, Vector2 target, float maxDistance) +{ + Vector2 result = { 0 }; + + float dx = target.x - v.x; + float dy = target.y - v.y; + float value = (dx*dx) + (dy*dy); + + if ((value == 0) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target; + + float dist = sqrtf(value); + + result.x = v.x + dx/dist*maxDistance; + result.y = v.y + dy/dist*maxDistance; + + return result; +} + +// Invert the given vector +RMAPI Vector2 Vector2Invert(Vector2 v) +{ + Vector2 result = { 1.0f/v.x, 1.0f/v.y }; + + return result; +} + +// Clamp the components of the vector between +// min and max values specified by the given vectors +RMAPI Vector2 Vector2Clamp(Vector2 v, Vector2 min, Vector2 max) +{ + Vector2 result = { 0 }; + + result.x = fminf(max.x, fmaxf(min.x, v.x)); + result.y = fminf(max.y, fmaxf(min.y, v.y)); + + return result; +} + +// Clamp the magnitude of the vector between two min and max values +RMAPI Vector2 Vector2ClampValue(Vector2 v, float min, float max) +{ + Vector2 result = v; + + float length = (v.x*v.x) + (v.y*v.y); + if (length > 0.0f) + { + length = sqrtf(length); + + float scale = 1; // By default, 1 as the neutral element. + if (length < min) + { + scale = min/length; + } + else if (length > max) + { + scale = max/length; + } + + result.x = v.x*scale; + result.y = v.y*scale; + } + + return result; +} + +// Check whether two given vectors are almost equal +RMAPI int Vector2Equals(Vector2 p, Vector2 q) +{ +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + int result = ((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && + ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))); + + return result; +} + +// Compute the direction of a refracted ray +// v: normalized direction of the incoming ray +// n: normalized normal vector of the interface of two optical media +// r: ratio of the refractive index of the medium from where the ray comes +// to the refractive index of the medium on the other side of the surface +RMAPI Vector2 Vector2Refract(Vector2 v, Vector2 n, float r) +{ + Vector2 result = { 0 }; + + float dot = v.x*n.x + v.y*n.y; + float d = 1.0f - r*r*(1.0f - dot*dot); + + if (d >= 0.0f) + { + d = sqrtf(d); + v.x = r*v.x - (r*dot + d)*n.x; + v.y = r*v.y - (r*dot + d)*n.y; + + result = v; + } + + return result; +} + + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Vector3 math +//---------------------------------------------------------------------------------- + +// Vector with components value 0.0f +RMAPI Vector3 Vector3Zero(void) +{ + Vector3 result = { 0.0f, 0.0f, 0.0f }; + + return result; +} + +// Vector with components value 1.0f +RMAPI Vector3 Vector3One(void) +{ + Vector3 result = { 1.0f, 1.0f, 1.0f }; + + return result; +} + +// Add two vectors +RMAPI Vector3 Vector3Add(Vector3 v1, Vector3 v2) +{ + Vector3 result = { v1.x + v2.x, v1.y + v2.y, v1.z + v2.z }; + + return result; +} + +// Add vector and float value +RMAPI Vector3 Vector3AddValue(Vector3 v, float add) +{ + Vector3 result = { v.x + add, v.y + add, v.z + add }; + + return result; +} + +// Subtract two vectors +RMAPI Vector3 Vector3Subtract(Vector3 v1, Vector3 v2) +{ + Vector3 result = { v1.x - v2.x, v1.y - v2.y, v1.z - v2.z }; + + return result; +} + +// Subtract vector by float value +RMAPI Vector3 Vector3SubtractValue(Vector3 v, float sub) +{ + Vector3 result = { v.x - sub, v.y - sub, v.z - sub }; + + return result; +} + +// Multiply vector by scalar +RMAPI Vector3 Vector3Scale(Vector3 v, float scalar) +{ + Vector3 result = { v.x*scalar, v.y*scalar, v.z*scalar }; + + return result; +} + +// Multiply vector by vector +RMAPI Vector3 Vector3Multiply(Vector3 v1, Vector3 v2) +{ + Vector3 result = { v1.x*v2.x, v1.y*v2.y, v1.z*v2.z }; + + return result; +} + +// Calculate two vectors cross product +RMAPI Vector3 Vector3CrossProduct(Vector3 v1, Vector3 v2) +{ + Vector3 result = { v1.y*v2.z - v1.z*v2.y, v1.z*v2.x - v1.x*v2.z, v1.x*v2.y - v1.y*v2.x }; + + return result; +} + +// Calculate one vector perpendicular vector +RMAPI Vector3 Vector3Perpendicular(Vector3 v) +{ + Vector3 result = { 0 }; + + float min = fabsf(v.x); + Vector3 cardinalAxis = {1.0f, 0.0f, 0.0f}; + + if (fabsf(v.y) < min) + { + min = fabsf(v.y); + Vector3 tmp = {0.0f, 1.0f, 0.0f}; + cardinalAxis = tmp; + } + + if (fabsf(v.z) < min) + { + Vector3 tmp = {0.0f, 0.0f, 1.0f}; + cardinalAxis = tmp; + } + + // Cross product between vectors + result.x = v.y*cardinalAxis.z - v.z*cardinalAxis.y; + result.y = v.z*cardinalAxis.x - v.x*cardinalAxis.z; + result.z = v.x*cardinalAxis.y - v.y*cardinalAxis.x; + + return result; +} + +// Calculate vector length +RMAPI float Vector3Length(const Vector3 v) +{ + float result = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + + return result; +} + +// Calculate vector square length +RMAPI float Vector3LengthSqr(const Vector3 v) +{ + float result = v.x*v.x + v.y*v.y + v.z*v.z; + + return result; +} + +// Calculate two vectors dot product +RMAPI float Vector3DotProduct(Vector3 v1, Vector3 v2) +{ + float result = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); + + return result; +} + +// Calculate distance between two vectors +RMAPI float Vector3Distance(Vector3 v1, Vector3 v2) +{ + float result = 0.0f; + + float dx = v2.x - v1.x; + float dy = v2.y - v1.y; + float dz = v2.z - v1.z; + result = sqrtf(dx*dx + dy*dy + dz*dz); + + return result; +} + +// Calculate square distance between two vectors +RMAPI float Vector3DistanceSqr(Vector3 v1, Vector3 v2) +{ + float result = 0.0f; + + float dx = v2.x - v1.x; + float dy = v2.y - v1.y; + float dz = v2.z - v1.z; + result = dx*dx + dy*dy + dz*dz; + + return result; +} + +// Calculate angle between two vectors +RMAPI float Vector3Angle(Vector3 v1, Vector3 v2) +{ + float result = 0.0f; + + Vector3 cross = { v1.y*v2.z - v1.z*v2.y, v1.z*v2.x - v1.x*v2.z, v1.x*v2.y - v1.y*v2.x }; + float len = sqrtf(cross.x*cross.x + cross.y*cross.y + cross.z*cross.z); + float dot = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); + result = atan2f(len, dot); + + return result; +} + +// Negate provided vector (invert direction) +RMAPI Vector3 Vector3Negate(Vector3 v) +{ + Vector3 result = { -v.x, -v.y, -v.z }; + + return result; +} + +// Divide vector by vector +RMAPI Vector3 Vector3Divide(Vector3 v1, Vector3 v2) +{ + Vector3 result = { v1.x/v2.x, v1.y/v2.y, v1.z/v2.z }; + + return result; +} + +// Normalize provided vector +RMAPI Vector3 Vector3Normalize(Vector3 v) +{ + Vector3 result = v; + + float length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + if (length != 0.0f) + { + float ilength = 1.0f/length; + + result.x *= ilength; + result.y *= ilength; + result.z *= ilength; + } + + return result; +} + +//Calculate the projection of the vector v1 on to v2 +RMAPI Vector3 Vector3Project(Vector3 v1, Vector3 v2) +{ + Vector3 result = { 0 }; + + float v1dv2 = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); + float v2dv2 = (v2.x*v2.x + v2.y*v2.y + v2.z*v2.z); + + float mag = v1dv2/v2dv2; + + result.x = v2.x*mag; + result.y = v2.y*mag; + result.z = v2.z*mag; + + return result; +} + +//Calculate the rejection of the vector v1 on to v2 +RMAPI Vector3 Vector3Reject(Vector3 v1, Vector3 v2) +{ + Vector3 result = { 0 }; + + float v1dv2 = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z); + float v2dv2 = (v2.x*v2.x + v2.y*v2.y + v2.z*v2.z); + + float mag = v1dv2/v2dv2; + + result.x = v1.x - (v2.x*mag); + result.y = v1.y - (v2.y*mag); + result.z = v1.z - (v2.z*mag); + + return result; +} + +// Orthonormalize provided vectors +// Makes vectors normalized and orthogonal to each other +// Gram-Schmidt function implementation +RMAPI void Vector3OrthoNormalize(Vector3 *v1, Vector3 *v2) +{ + float length = 0.0f; + float ilength = 0.0f; + + // Vector3Normalize(*v1); + Vector3 v = *v1; + length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + if (length == 0.0f) length = 1.0f; + ilength = 1.0f/length; + v1->x *= ilength; + v1->y *= ilength; + v1->z *= ilength; + + // Vector3CrossProduct(*v1, *v2) + Vector3 vn1 = { v1->y*v2->z - v1->z*v2->y, v1->z*v2->x - v1->x*v2->z, v1->x*v2->y - v1->y*v2->x }; + + // Vector3Normalize(vn1); + v = vn1; + length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + if (length == 0.0f) length = 1.0f; + ilength = 1.0f/length; + vn1.x *= ilength; + vn1.y *= ilength; + vn1.z *= ilength; + + // Vector3CrossProduct(vn1, *v1) + Vector3 vn2 = { vn1.y*v1->z - vn1.z*v1->y, vn1.z*v1->x - vn1.x*v1->z, vn1.x*v1->y - vn1.y*v1->x }; + + *v2 = vn2; +} + +// Transforms a Vector3 by a given Matrix +RMAPI Vector3 Vector3Transform(Vector3 v, Matrix mat) +{ + Vector3 result = { 0 }; + + float x = v.x; + float y = v.y; + float z = v.z; + + result.x = mat.m0*x + mat.m4*y + mat.m8*z + mat.m12; + result.y = mat.m1*x + mat.m5*y + mat.m9*z + mat.m13; + result.z = mat.m2*x + mat.m6*y + mat.m10*z + mat.m14; + + return result; +} + +// Transform a vector by quaternion rotation +RMAPI Vector3 Vector3RotateByQuaternion(Vector3 v, Quaternion q) +{ + Vector3 result = { 0 }; + + result.x = v.x*(q.x*q.x + q.w*q.w - q.y*q.y - q.z*q.z) + v.y*(2*q.x*q.y - 2*q.w*q.z) + v.z*(2*q.x*q.z + 2*q.w*q.y); + result.y = v.x*(2*q.w*q.z + 2*q.x*q.y) + v.y*(q.w*q.w - q.x*q.x + q.y*q.y - q.z*q.z) + v.z*(-2*q.w*q.x + 2*q.y*q.z); + result.z = v.x*(-2*q.w*q.y + 2*q.x*q.z) + v.y*(2*q.w*q.x + 2*q.y*q.z)+ v.z*(q.w*q.w - q.x*q.x - q.y*q.y + q.z*q.z); + + return result; +} + +// Rotates a vector around an axis +RMAPI Vector3 Vector3RotateByAxisAngle(Vector3 v, Vector3 axis, float angle) +{ + // Using Euler-Rodrigues Formula + // Ref.: https://en.wikipedia.org/w/index.php?title=Euler%E2%80%93Rodrigues_formula + + Vector3 result = v; + + // Vector3Normalize(axis); + float length = sqrtf(axis.x*axis.x + axis.y*axis.y + axis.z*axis.z); + if (length == 0.0f) length = 1.0f; + float ilength = 1.0f/length; + axis.x *= ilength; + axis.y *= ilength; + axis.z *= ilength; + + angle /= 2.0f; + float a = sinf(angle); + float b = axis.x*a; + float c = axis.y*a; + float d = axis.z*a; + a = cosf(angle); + Vector3 w = { b, c, d }; + + // Vector3CrossProduct(w, v) + Vector3 wv = { w.y*v.z - w.z*v.y, w.z*v.x - w.x*v.z, w.x*v.y - w.y*v.x }; + + // Vector3CrossProduct(w, wv) + Vector3 wwv = { w.y*wv.z - w.z*wv.y, w.z*wv.x - w.x*wv.z, w.x*wv.y - w.y*wv.x }; + + // Vector3Scale(wv, 2*a) + a *= 2; + wv.x *= a; + wv.y *= a; + wv.z *= a; + + // Vector3Scale(wwv, 2) + wwv.x *= 2; + wwv.y *= 2; + wwv.z *= 2; + + result.x += wv.x; + result.y += wv.y; + result.z += wv.z; + + result.x += wwv.x; + result.y += wwv.y; + result.z += wwv.z; + + return result; +} + +// Move Vector towards target +RMAPI Vector3 Vector3MoveTowards(Vector3 v, Vector3 target, float maxDistance) +{ + Vector3 result = { 0 }; + + float dx = target.x - v.x; + float dy = target.y - v.y; + float dz = target.z - v.z; + float value = (dx*dx) + (dy*dy) + (dz*dz); + + if ((value == 0) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target; + + float dist = sqrtf(value); + + result.x = v.x + dx/dist*maxDistance; + result.y = v.y + dy/dist*maxDistance; + result.z = v.z + dz/dist*maxDistance; + + return result; +} + +// Calculate linear interpolation between two vectors +RMAPI Vector3 Vector3Lerp(Vector3 v1, Vector3 v2, float amount) +{ + Vector3 result = { 0 }; + + result.x = v1.x + amount*(v2.x - v1.x); + result.y = v1.y + amount*(v2.y - v1.y); + result.z = v1.z + amount*(v2.z - v1.z); + + return result; +} + +// Calculate cubic hermite interpolation between two vectors and their tangents +// as described in the GLTF 2.0 specification: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#interpolation-cubic +RMAPI Vector3 Vector3CubicHermite(Vector3 v1, Vector3 tangent1, Vector3 v2, Vector3 tangent2, float amount) +{ + Vector3 result = { 0 }; + + float amountPow2 = amount*amount; + float amountPow3 = amount*amount*amount; + + result.x = (2*amountPow3 - 3*amountPow2 + 1)*v1.x + (amountPow3 - 2*amountPow2 + amount)*tangent1.x + (-2*amountPow3 + 3*amountPow2)*v2.x + (amountPow3 - amountPow2)*tangent2.x; + result.y = (2*amountPow3 - 3*amountPow2 + 1)*v1.y + (amountPow3 - 2*amountPow2 + amount)*tangent1.y + (-2*amountPow3 + 3*amountPow2)*v2.y + (amountPow3 - amountPow2)*tangent2.y; + result.z = (2*amountPow3 - 3*amountPow2 + 1)*v1.z + (amountPow3 - 2*amountPow2 + amount)*tangent1.z + (-2*amountPow3 + 3*amountPow2)*v2.z + (amountPow3 - amountPow2)*tangent2.z; + + return result; +} + +// Calculate reflected vector to normal +RMAPI Vector3 Vector3Reflect(Vector3 v, Vector3 normal) +{ + Vector3 result = { 0 }; + + // I is the original vector + // N is the normal of the incident plane + // R = I - (2*N*(DotProduct[I, N])) + + float dotProduct = (v.x*normal.x + v.y*normal.y + v.z*normal.z); + + result.x = v.x - (2.0f*normal.x)*dotProduct; + result.y = v.y - (2.0f*normal.y)*dotProduct; + result.z = v.z - (2.0f*normal.z)*dotProduct; + + return result; +} + +// Get min value for each pair of components +RMAPI Vector3 Vector3Min(Vector3 v1, Vector3 v2) +{ + Vector3 result = { 0 }; + + result.x = fminf(v1.x, v2.x); + result.y = fminf(v1.y, v2.y); + result.z = fminf(v1.z, v2.z); + + return result; +} + +// Get max value for each pair of components +RMAPI Vector3 Vector3Max(Vector3 v1, Vector3 v2) +{ + Vector3 result = { 0 }; + + result.x = fmaxf(v1.x, v2.x); + result.y = fmaxf(v1.y, v2.y); + result.z = fmaxf(v1.z, v2.z); + + return result; +} + +// Compute barycenter coordinates (u, v, w) for point p with respect to triangle (a, b, c) +// NOTE: Assumes P is on the plane of the triangle +RMAPI Vector3 Vector3Barycenter(Vector3 p, Vector3 a, Vector3 b, Vector3 c) +{ + Vector3 result = { 0 }; + + Vector3 v0 = { b.x - a.x, b.y - a.y, b.z - a.z }; // Vector3Subtract(b, a) + Vector3 v1 = { c.x - a.x, c.y - a.y, c.z - a.z }; // Vector3Subtract(c, a) + Vector3 v2 = { p.x - a.x, p.y - a.y, p.z - a.z }; // Vector3Subtract(p, a) + float d00 = (v0.x*v0.x + v0.y*v0.y + v0.z*v0.z); // Vector3DotProduct(v0, v0) + float d01 = (v0.x*v1.x + v0.y*v1.y + v0.z*v1.z); // Vector3DotProduct(v0, v1) + float d11 = (v1.x*v1.x + v1.y*v1.y + v1.z*v1.z); // Vector3DotProduct(v1, v1) + float d20 = (v2.x*v0.x + v2.y*v0.y + v2.z*v0.z); // Vector3DotProduct(v2, v0) + float d21 = (v2.x*v1.x + v2.y*v1.y + v2.z*v1.z); // Vector3DotProduct(v2, v1) + + float denom = d00*d11 - d01*d01; + + result.y = (d11*d20 - d01*d21)/denom; + result.z = (d00*d21 - d01*d20)/denom; + result.x = 1.0f - (result.z + result.y); + + return result; +} + +// Projects a Vector3 from screen space into object space +// NOTE: We are avoiding calling other raymath functions despite available +RMAPI Vector3 Vector3Unproject(Vector3 source, Matrix projection, Matrix view) +{ + Vector3 result = { 0 }; + + // Calculate unprojected matrix (multiply view matrix by projection matrix) and invert it + Matrix matViewProj = { // MatrixMultiply(view, projection); + view.m0*projection.m0 + view.m1*projection.m4 + view.m2*projection.m8 + view.m3*projection.m12, + view.m0*projection.m1 + view.m1*projection.m5 + view.m2*projection.m9 + view.m3*projection.m13, + view.m0*projection.m2 + view.m1*projection.m6 + view.m2*projection.m10 + view.m3*projection.m14, + view.m0*projection.m3 + view.m1*projection.m7 + view.m2*projection.m11 + view.m3*projection.m15, + view.m4*projection.m0 + view.m5*projection.m4 + view.m6*projection.m8 + view.m7*projection.m12, + view.m4*projection.m1 + view.m5*projection.m5 + view.m6*projection.m9 + view.m7*projection.m13, + view.m4*projection.m2 + view.m5*projection.m6 + view.m6*projection.m10 + view.m7*projection.m14, + view.m4*projection.m3 + view.m5*projection.m7 + view.m6*projection.m11 + view.m7*projection.m15, + view.m8*projection.m0 + view.m9*projection.m4 + view.m10*projection.m8 + view.m11*projection.m12, + view.m8*projection.m1 + view.m9*projection.m5 + view.m10*projection.m9 + view.m11*projection.m13, + view.m8*projection.m2 + view.m9*projection.m6 + view.m10*projection.m10 + view.m11*projection.m14, + view.m8*projection.m3 + view.m9*projection.m7 + view.m10*projection.m11 + view.m11*projection.m15, + view.m12*projection.m0 + view.m13*projection.m4 + view.m14*projection.m8 + view.m15*projection.m12, + view.m12*projection.m1 + view.m13*projection.m5 + view.m14*projection.m9 + view.m15*projection.m13, + view.m12*projection.m2 + view.m13*projection.m6 + view.m14*projection.m10 + view.m15*projection.m14, + view.m12*projection.m3 + view.m13*projection.m7 + view.m14*projection.m11 + view.m15*projection.m15 }; + + // Calculate inverted matrix -> MatrixInvert(matViewProj); + // Cache the matrix values (speed optimization) + float a00 = matViewProj.m0, a01 = matViewProj.m1, a02 = matViewProj.m2, a03 = matViewProj.m3; + float a10 = matViewProj.m4, a11 = matViewProj.m5, a12 = matViewProj.m6, a13 = matViewProj.m7; + float a20 = matViewProj.m8, a21 = matViewProj.m9, a22 = matViewProj.m10, a23 = matViewProj.m11; + float a30 = matViewProj.m12, a31 = matViewProj.m13, a32 = matViewProj.m14, a33 = matViewProj.m15; + + float b00 = a00*a11 - a01*a10; + float b01 = a00*a12 - a02*a10; + float b02 = a00*a13 - a03*a10; + float b03 = a01*a12 - a02*a11; + float b04 = a01*a13 - a03*a11; + float b05 = a02*a13 - a03*a12; + float b06 = a20*a31 - a21*a30; + float b07 = a20*a32 - a22*a30; + float b08 = a20*a33 - a23*a30; + float b09 = a21*a32 - a22*a31; + float b10 = a21*a33 - a23*a31; + float b11 = a22*a33 - a23*a32; + + // Calculate the invert determinant (inlined to avoid double-caching) + float invDet = 1.0f/(b00*b11 - b01*b10 + b02*b09 + b03*b08 - b04*b07 + b05*b06); + + Matrix matViewProjInv = { + (a11*b11 - a12*b10 + a13*b09)*invDet, + (-a01*b11 + a02*b10 - a03*b09)*invDet, + (a31*b05 - a32*b04 + a33*b03)*invDet, + (-a21*b05 + a22*b04 - a23*b03)*invDet, + (-a10*b11 + a12*b08 - a13*b07)*invDet, + (a00*b11 - a02*b08 + a03*b07)*invDet, + (-a30*b05 + a32*b02 - a33*b01)*invDet, + (a20*b05 - a22*b02 + a23*b01)*invDet, + (a10*b10 - a11*b08 + a13*b06)*invDet, + (-a00*b10 + a01*b08 - a03*b06)*invDet, + (a30*b04 - a31*b02 + a33*b00)*invDet, + (-a20*b04 + a21*b02 - a23*b00)*invDet, + (-a10*b09 + a11*b07 - a12*b06)*invDet, + (a00*b09 - a01*b07 + a02*b06)*invDet, + (-a30*b03 + a31*b01 - a32*b00)*invDet, + (a20*b03 - a21*b01 + a22*b00)*invDet }; + + // Create quaternion from source point + Quaternion quat = { source.x, source.y, source.z, 1.0f }; + + // Multiply quat point by unprojecte matrix + Quaternion qtransformed = { // QuaternionTransform(quat, matViewProjInv) + matViewProjInv.m0*quat.x + matViewProjInv.m4*quat.y + matViewProjInv.m8*quat.z + matViewProjInv.m12*quat.w, + matViewProjInv.m1*quat.x + matViewProjInv.m5*quat.y + matViewProjInv.m9*quat.z + matViewProjInv.m13*quat.w, + matViewProjInv.m2*quat.x + matViewProjInv.m6*quat.y + matViewProjInv.m10*quat.z + matViewProjInv.m14*quat.w, + matViewProjInv.m3*quat.x + matViewProjInv.m7*quat.y + matViewProjInv.m11*quat.z + matViewProjInv.m15*quat.w }; + + // Normalized world points in vectors + result.x = qtransformed.x/qtransformed.w; + result.y = qtransformed.y/qtransformed.w; + result.z = qtransformed.z/qtransformed.w; + + return result; +} + +// Get Vector3 as float array +RMAPI float3 Vector3ToFloatV(Vector3 v) +{ + float3 buffer = { 0 }; + + buffer.v[0] = v.x; + buffer.v[1] = v.y; + buffer.v[2] = v.z; + + return buffer; +} + +// Invert the given vector +RMAPI Vector3 Vector3Invert(Vector3 v) +{ + Vector3 result = { 1.0f/v.x, 1.0f/v.y, 1.0f/v.z }; + + return result; +} + +// Clamp the components of the vector between +// min and max values specified by the given vectors +RMAPI Vector3 Vector3Clamp(Vector3 v, Vector3 min, Vector3 max) +{ + Vector3 result = { 0 }; + + result.x = fminf(max.x, fmaxf(min.x, v.x)); + result.y = fminf(max.y, fmaxf(min.y, v.y)); + result.z = fminf(max.z, fmaxf(min.z, v.z)); + + return result; +} + +// Clamp the magnitude of the vector between two values +RMAPI Vector3 Vector3ClampValue(Vector3 v, float min, float max) +{ + Vector3 result = v; + + float length = (v.x*v.x) + (v.y*v.y) + (v.z*v.z); + if (length > 0.0f) + { + length = sqrtf(length); + + float scale = 1; // By default, 1 as the neutral element. + if (length < min) + { + scale = min/length; + } + else if (length > max) + { + scale = max/length; + } + + result.x = v.x*scale; + result.y = v.y*scale; + result.z = v.z*scale; + } + + return result; +} + +// Check whether two given vectors are almost equal +RMAPI int Vector3Equals(Vector3 p, Vector3 q) +{ +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + int result = ((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && + ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && + ((fabsf(p.z - q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))); + + return result; +} + +// Compute the direction of a refracted ray +// v: normalized direction of the incoming ray +// n: normalized normal vector of the interface of two optical media +// r: ratio of the refractive index of the medium from where the ray comes +// to the refractive index of the medium on the other side of the surface +RMAPI Vector3 Vector3Refract(Vector3 v, Vector3 n, float r) +{ + Vector3 result = { 0 }; + + float dot = v.x*n.x + v.y*n.y + v.z*n.z; + float d = 1.0f - r*r*(1.0f - dot*dot); + + if (d >= 0.0f) + { + d = sqrtf(d); + v.x = r*v.x - (r*dot + d)*n.x; + v.y = r*v.y - (r*dot + d)*n.y; + v.z = r*v.z - (r*dot + d)*n.z; + + result = v; + } + + return result; +} + + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Vector4 math +//---------------------------------------------------------------------------------- + +RMAPI Vector4 Vector4Zero(void) +{ + Vector4 result = { 0.0f, 0.0f, 0.0f, 0.0f }; + return result; +} + +RMAPI Vector4 Vector4One(void) +{ + Vector4 result = { 1.0f, 1.0f, 1.0f, 1.0f }; + return result; +} + +RMAPI Vector4 Vector4Add(Vector4 v1, Vector4 v2) +{ + Vector4 result = { + v1.x + v2.x, + v1.y + v2.y, + v1.z + v2.z, + v1.w + v2.w + }; + return result; +} + +RMAPI Vector4 Vector4AddValue(Vector4 v, float add) +{ + Vector4 result = { + v.x + add, + v.y + add, + v.z + add, + v.w + add + }; + return result; +} + +RMAPI Vector4 Vector4Subtract(Vector4 v1, Vector4 v2) +{ + Vector4 result = { + v1.x - v2.x, + v1.y - v2.y, + v1.z - v2.z, + v1.w - v2.w + }; + return result; +} + +RMAPI Vector4 Vector4SubtractValue(Vector4 v, float add) +{ + Vector4 result = { + v.x - add, + v.y - add, + v.z - add, + v.w - add + }; + return result; +} + +RMAPI float Vector4Length(Vector4 v) +{ + float result = sqrtf((v.x*v.x) + (v.y*v.y) + (v.z*v.z) + (v.w*v.w)); + return result; +} + +RMAPI float Vector4LengthSqr(Vector4 v) +{ + float result = (v.x*v.x) + (v.y*v.y) + (v.z*v.z) + (v.w*v.w); + return result; +} + +RMAPI float Vector4DotProduct(Vector4 v1, Vector4 v2) +{ + float result = (v1.x*v2.x + v1.y*v2.y + v1.z*v2.z + v1.w*v2.w); + return result; +} + +// Calculate distance between two vectors +RMAPI float Vector4Distance(Vector4 v1, Vector4 v2) +{ + float result = sqrtf( + (v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y) + + (v1.z - v2.z)*(v1.z - v2.z) + (v1.w - v2.w)*(v1.w - v2.w)); + return result; +} + +// Calculate square distance between two vectors +RMAPI float Vector4DistanceSqr(Vector4 v1, Vector4 v2) +{ + float result = + (v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y) + + (v1.z - v2.z)*(v1.z - v2.z) + (v1.w - v2.w)*(v1.w - v2.w); + + return result; +} + +RMAPI Vector4 Vector4Scale(Vector4 v, float scale) +{ + Vector4 result = { v.x*scale, v.y*scale, v.z*scale, v.w*scale }; + return result; +} + +// Multiply vector by vector +RMAPI Vector4 Vector4Multiply(Vector4 v1, Vector4 v2) +{ + Vector4 result = { v1.x*v2.x, v1.y*v2.y, v1.z*v2.z, v1.w*v2.w }; + return result; +} + +// Negate vector +RMAPI Vector4 Vector4Negate(Vector4 v) +{ + Vector4 result = { -v.x, -v.y, -v.z, -v.w }; + return result; +} + +// Divide vector by vector +RMAPI Vector4 Vector4Divide(Vector4 v1, Vector4 v2) +{ + Vector4 result = { v1.x/v2.x, v1.y/v2.y, v1.z/v2.z, v1.w/v2.w }; + return result; +} + +// Normalize provided vector +RMAPI Vector4 Vector4Normalize(Vector4 v) +{ + Vector4 result = { 0 }; + float length = sqrtf((v.x*v.x) + (v.y*v.y) + (v.z*v.z) + (v.w*v.w)); + + if (length > 0) + { + float ilength = 1.0f/length; + result.x = v.x*ilength; + result.y = v.y*ilength; + result.z = v.z*ilength; + result.w = v.w*ilength; + } + + return result; +} + +// Get min value for each pair of components +RMAPI Vector4 Vector4Min(Vector4 v1, Vector4 v2) +{ + Vector4 result = { 0 }; + + result.x = fminf(v1.x, v2.x); + result.y = fminf(v1.y, v2.y); + result.z = fminf(v1.z, v2.z); + result.w = fminf(v1.w, v2.w); + + return result; +} + +// Get max value for each pair of components +RMAPI Vector4 Vector4Max(Vector4 v1, Vector4 v2) +{ + Vector4 result = { 0 }; + + result.x = fmaxf(v1.x, v2.x); + result.y = fmaxf(v1.y, v2.y); + result.z = fmaxf(v1.z, v2.z); + result.w = fmaxf(v1.w, v2.w); + + return result; +} + +// Calculate linear interpolation between two vectors +RMAPI Vector4 Vector4Lerp(Vector4 v1, Vector4 v2, float amount) +{ + Vector4 result = { 0 }; + + result.x = v1.x + amount*(v2.x - v1.x); + result.y = v1.y + amount*(v2.y - v1.y); + result.z = v1.z + amount*(v2.z - v1.z); + result.w = v1.w + amount*(v2.w - v1.w); + + return result; +} + +// Move Vector towards target +RMAPI Vector4 Vector4MoveTowards(Vector4 v, Vector4 target, float maxDistance) +{ + Vector4 result = { 0 }; + + float dx = target.x - v.x; + float dy = target.y - v.y; + float dz = target.z - v.z; + float dw = target.w - v.w; + float value = (dx*dx) + (dy*dy) + (dz*dz) + (dw*dw); + + if ((value == 0) || ((maxDistance >= 0) && (value <= maxDistance*maxDistance))) return target; + + float dist = sqrtf(value); + + result.x = v.x + dx/dist*maxDistance; + result.y = v.y + dy/dist*maxDistance; + result.z = v.z + dz/dist*maxDistance; + result.w = v.w + dw/dist*maxDistance; + + return result; +} + +// Invert the given vector +RMAPI Vector4 Vector4Invert(Vector4 v) +{ + Vector4 result = { 1.0f/v.x, 1.0f/v.y, 1.0f/v.z, 1.0f/v.w }; + return result; +} + +// Check whether two given vectors are almost equal +RMAPI int Vector4Equals(Vector4 p, Vector4 q) +{ +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + int result = ((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && + ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && + ((fabsf(p.z - q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))) && + ((fabsf(p.w - q.w)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.w), fabsf(q.w))))); + return result; +} + + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Matrix math +//---------------------------------------------------------------------------------- + +// Compute matrix determinant +RMAPI float MatrixDeterminant(Matrix mat) +{ + float result = 0.0f; + + // Cache the matrix values (speed optimization) + float a00 = mat.m0, a01 = mat.m1, a02 = mat.m2, a03 = mat.m3; + float a10 = mat.m4, a11 = mat.m5, a12 = mat.m6, a13 = mat.m7; + float a20 = mat.m8, a21 = mat.m9, a22 = mat.m10, a23 = mat.m11; + float a30 = mat.m12, a31 = mat.m13, a32 = mat.m14, a33 = mat.m15; + + result = a30*a21*a12*a03 - a20*a31*a12*a03 - a30*a11*a22*a03 + a10*a31*a22*a03 + + a20*a11*a32*a03 - a10*a21*a32*a03 - a30*a21*a02*a13 + a20*a31*a02*a13 + + a30*a01*a22*a13 - a00*a31*a22*a13 - a20*a01*a32*a13 + a00*a21*a32*a13 + + a30*a11*a02*a23 - a10*a31*a02*a23 - a30*a01*a12*a23 + a00*a31*a12*a23 + + a10*a01*a32*a23 - a00*a11*a32*a23 - a20*a11*a02*a33 + a10*a21*a02*a33 + + a20*a01*a12*a33 - a00*a21*a12*a33 - a10*a01*a22*a33 + a00*a11*a22*a33; + + return result; +} + +// Get the trace of the matrix (sum of the values along the diagonal) +RMAPI float MatrixTrace(Matrix mat) +{ + float result = (mat.m0 + mat.m5 + mat.m10 + mat.m15); + + return result; +} + +// Transposes provided matrix +RMAPI Matrix MatrixTranspose(Matrix mat) +{ + Matrix result = { 0 }; + + result.m0 = mat.m0; + result.m1 = mat.m4; + result.m2 = mat.m8; + result.m3 = mat.m12; + result.m4 = mat.m1; + result.m5 = mat.m5; + result.m6 = mat.m9; + result.m7 = mat.m13; + result.m8 = mat.m2; + result.m9 = mat.m6; + result.m10 = mat.m10; + result.m11 = mat.m14; + result.m12 = mat.m3; + result.m13 = mat.m7; + result.m14 = mat.m11; + result.m15 = mat.m15; + + return result; +} + +// Invert provided matrix +RMAPI Matrix MatrixInvert(Matrix mat) +{ + Matrix result = { 0 }; + + // Cache the matrix values (speed optimization) + float a00 = mat.m0, a01 = mat.m1, a02 = mat.m2, a03 = mat.m3; + float a10 = mat.m4, a11 = mat.m5, a12 = mat.m6, a13 = mat.m7; + float a20 = mat.m8, a21 = mat.m9, a22 = mat.m10, a23 = mat.m11; + float a30 = mat.m12, a31 = mat.m13, a32 = mat.m14, a33 = mat.m15; + + float b00 = a00*a11 - a01*a10; + float b01 = a00*a12 - a02*a10; + float b02 = a00*a13 - a03*a10; + float b03 = a01*a12 - a02*a11; + float b04 = a01*a13 - a03*a11; + float b05 = a02*a13 - a03*a12; + float b06 = a20*a31 - a21*a30; + float b07 = a20*a32 - a22*a30; + float b08 = a20*a33 - a23*a30; + float b09 = a21*a32 - a22*a31; + float b10 = a21*a33 - a23*a31; + float b11 = a22*a33 - a23*a32; + + // Calculate the invert determinant (inlined to avoid double-caching) + float invDet = 1.0f/(b00*b11 - b01*b10 + b02*b09 + b03*b08 - b04*b07 + b05*b06); + + result.m0 = (a11*b11 - a12*b10 + a13*b09)*invDet; + result.m1 = (-a01*b11 + a02*b10 - a03*b09)*invDet; + result.m2 = (a31*b05 - a32*b04 + a33*b03)*invDet; + result.m3 = (-a21*b05 + a22*b04 - a23*b03)*invDet; + result.m4 = (-a10*b11 + a12*b08 - a13*b07)*invDet; + result.m5 = (a00*b11 - a02*b08 + a03*b07)*invDet; + result.m6 = (-a30*b05 + a32*b02 - a33*b01)*invDet; + result.m7 = (a20*b05 - a22*b02 + a23*b01)*invDet; + result.m8 = (a10*b10 - a11*b08 + a13*b06)*invDet; + result.m9 = (-a00*b10 + a01*b08 - a03*b06)*invDet; + result.m10 = (a30*b04 - a31*b02 + a33*b00)*invDet; + result.m11 = (-a20*b04 + a21*b02 - a23*b00)*invDet; + result.m12 = (-a10*b09 + a11*b07 - a12*b06)*invDet; + result.m13 = (a00*b09 - a01*b07 + a02*b06)*invDet; + result.m14 = (-a30*b03 + a31*b01 - a32*b00)*invDet; + result.m15 = (a20*b03 - a21*b01 + a22*b00)*invDet; + + return result; +} + +// Get identity matrix +RMAPI Matrix MatrixIdentity(void) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; + + return result; +} + +// Add two matrices +RMAPI Matrix MatrixAdd(Matrix left, Matrix right) +{ + Matrix result = { 0 }; + + result.m0 = left.m0 + right.m0; + result.m1 = left.m1 + right.m1; + result.m2 = left.m2 + right.m2; + result.m3 = left.m3 + right.m3; + result.m4 = left.m4 + right.m4; + result.m5 = left.m5 + right.m5; + result.m6 = left.m6 + right.m6; + result.m7 = left.m7 + right.m7; + result.m8 = left.m8 + right.m8; + result.m9 = left.m9 + right.m9; + result.m10 = left.m10 + right.m10; + result.m11 = left.m11 + right.m11; + result.m12 = left.m12 + right.m12; + result.m13 = left.m13 + right.m13; + result.m14 = left.m14 + right.m14; + result.m15 = left.m15 + right.m15; + + return result; +} + +// Subtract two matrices (left - right) +RMAPI Matrix MatrixSubtract(Matrix left, Matrix right) +{ + Matrix result = { 0 }; + + result.m0 = left.m0 - right.m0; + result.m1 = left.m1 - right.m1; + result.m2 = left.m2 - right.m2; + result.m3 = left.m3 - right.m3; + result.m4 = left.m4 - right.m4; + result.m5 = left.m5 - right.m5; + result.m6 = left.m6 - right.m6; + result.m7 = left.m7 - right.m7; + result.m8 = left.m8 - right.m8; + result.m9 = left.m9 - right.m9; + result.m10 = left.m10 - right.m10; + result.m11 = left.m11 - right.m11; + result.m12 = left.m12 - right.m12; + result.m13 = left.m13 - right.m13; + result.m14 = left.m14 - right.m14; + result.m15 = left.m15 - right.m15; + + return result; +} + +// Get two matrix multiplication +// NOTE: When multiplying matrices... the order matters! +RMAPI Matrix MatrixMultiply(Matrix left, Matrix right) +{ + Matrix result = { 0 }; + + result.m0 = left.m0*right.m0 + left.m1*right.m4 + left.m2*right.m8 + left.m3*right.m12; + result.m1 = left.m0*right.m1 + left.m1*right.m5 + left.m2*right.m9 + left.m3*right.m13; + result.m2 = left.m0*right.m2 + left.m1*right.m6 + left.m2*right.m10 + left.m3*right.m14; + result.m3 = left.m0*right.m3 + left.m1*right.m7 + left.m2*right.m11 + left.m3*right.m15; + result.m4 = left.m4*right.m0 + left.m5*right.m4 + left.m6*right.m8 + left.m7*right.m12; + result.m5 = left.m4*right.m1 + left.m5*right.m5 + left.m6*right.m9 + left.m7*right.m13; + result.m6 = left.m4*right.m2 + left.m5*right.m6 + left.m6*right.m10 + left.m7*right.m14; + result.m7 = left.m4*right.m3 + left.m5*right.m7 + left.m6*right.m11 + left.m7*right.m15; + result.m8 = left.m8*right.m0 + left.m9*right.m4 + left.m10*right.m8 + left.m11*right.m12; + result.m9 = left.m8*right.m1 + left.m9*right.m5 + left.m10*right.m9 + left.m11*right.m13; + result.m10 = left.m8*right.m2 + left.m9*right.m6 + left.m10*right.m10 + left.m11*right.m14; + result.m11 = left.m8*right.m3 + left.m9*right.m7 + left.m10*right.m11 + left.m11*right.m15; + result.m12 = left.m12*right.m0 + left.m13*right.m4 + left.m14*right.m8 + left.m15*right.m12; + result.m13 = left.m12*right.m1 + left.m13*right.m5 + left.m14*right.m9 + left.m15*right.m13; + result.m14 = left.m12*right.m2 + left.m13*right.m6 + left.m14*right.m10 + left.m15*right.m14; + result.m15 = left.m12*right.m3 + left.m13*right.m7 + left.m14*right.m11 + left.m15*right.m15; + + return result; +} + +// Get translation matrix +RMAPI Matrix MatrixTranslate(float x, float y, float z) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, x, + 0.0f, 1.0f, 0.0f, y, + 0.0f, 0.0f, 1.0f, z, + 0.0f, 0.0f, 0.0f, 1.0f }; + + return result; +} + +// Create rotation matrix from axis and angle +// NOTE: Angle should be provided in radians +RMAPI Matrix MatrixRotate(Vector3 axis, float angle) +{ + Matrix result = { 0 }; + + float x = axis.x, y = axis.y, z = axis.z; + + float lengthSquared = x*x + y*y + z*z; + + if ((lengthSquared != 1.0f) && (lengthSquared != 0.0f)) + { + float ilength = 1.0f/sqrtf(lengthSquared); + x *= ilength; + y *= ilength; + z *= ilength; + } + + float sinres = sinf(angle); + float cosres = cosf(angle); + float t = 1.0f - cosres; + + result.m0 = x*x*t + cosres; + result.m1 = y*x*t + z*sinres; + result.m2 = z*x*t - y*sinres; + result.m3 = 0.0f; + + result.m4 = x*y*t - z*sinres; + result.m5 = y*y*t + cosres; + result.m6 = z*y*t + x*sinres; + result.m7 = 0.0f; + + result.m8 = x*z*t + y*sinres; + result.m9 = y*z*t - x*sinres; + result.m10 = z*z*t + cosres; + result.m11 = 0.0f; + + result.m12 = 0.0f; + result.m13 = 0.0f; + result.m14 = 0.0f; + result.m15 = 1.0f; + + return result; +} + +// Get x-rotation matrix +// NOTE: Angle must be provided in radians +RMAPI Matrix MatrixRotateX(float angle) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() + + float cosres = cosf(angle); + float sinres = sinf(angle); + + result.m5 = cosres; + result.m6 = sinres; + result.m9 = -sinres; + result.m10 = cosres; + + return result; +} + +// Get y-rotation matrix +// NOTE: Angle must be provided in radians +RMAPI Matrix MatrixRotateY(float angle) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() + + float cosres = cosf(angle); + float sinres = sinf(angle); + + result.m0 = cosres; + result.m2 = -sinres; + result.m8 = sinres; + result.m10 = cosres; + + return result; +} + +// Get z-rotation matrix +// NOTE: Angle must be provided in radians +RMAPI Matrix MatrixRotateZ(float angle) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() + + float cosres = cosf(angle); + float sinres = sinf(angle); + + result.m0 = cosres; + result.m1 = sinres; + result.m4 = -sinres; + result.m5 = cosres; + + return result; +} + + +// Get xyz-rotation matrix +// NOTE: Angle must be provided in radians +RMAPI Matrix MatrixRotateXYZ(Vector3 angle) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() + + float cosz = cosf(-angle.z); + float sinz = sinf(-angle.z); + float cosy = cosf(-angle.y); + float siny = sinf(-angle.y); + float cosx = cosf(-angle.x); + float sinx = sinf(-angle.x); + + result.m0 = cosz*cosy; + result.m1 = (cosz*siny*sinx) - (sinz*cosx); + result.m2 = (cosz*siny*cosx) + (sinz*sinx); + + result.m4 = sinz*cosy; + result.m5 = (sinz*siny*sinx) + (cosz*cosx); + result.m6 = (sinz*siny*cosx) - (cosz*sinx); + + result.m8 = -siny; + result.m9 = cosy*sinx; + result.m10= cosy*cosx; + + return result; +} + +// Get zyx-rotation matrix +// NOTE: Angle must be provided in radians +RMAPI Matrix MatrixRotateZYX(Vector3 angle) +{ + Matrix result = { 0 }; + + float cz = cosf(angle.z); + float sz = sinf(angle.z); + float cy = cosf(angle.y); + float sy = sinf(angle.y); + float cx = cosf(angle.x); + float sx = sinf(angle.x); + + result.m0 = cz*cy; + result.m4 = cz*sy*sx - cx*sz; + result.m8 = sz*sx + cz*cx*sy; + result.m12 = 0; + + result.m1 = cy*sz; + result.m5 = cz*cx + sz*sy*sx; + result.m9 = cx*sz*sy - cz*sx; + result.m13 = 0; + + result.m2 = -sy; + result.m6 = cy*sx; + result.m10 = cy*cx; + result.m14 = 0; + + result.m3 = 0; + result.m7 = 0; + result.m11 = 0; + result.m15 = 1; + + return result; +} + +// Get scaling matrix +RMAPI Matrix MatrixScale(float x, float y, float z) +{ + Matrix result = { x, 0.0f, 0.0f, 0.0f, + 0.0f, y, 0.0f, 0.0f, + 0.0f, 0.0f, z, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; + + return result; +} + +// Get perspective projection matrix +RMAPI Matrix MatrixFrustum(double left, double right, double bottom, double top, double nearPlane, double farPlane) +{ + Matrix result = { 0 }; + + float rl = (float)(right - left); + float tb = (float)(top - bottom); + float fn = (float)(farPlane - nearPlane); + + result.m0 = ((float)nearPlane*2.0f)/rl; + result.m1 = 0.0f; + result.m2 = 0.0f; + result.m3 = 0.0f; + + result.m4 = 0.0f; + result.m5 = ((float)nearPlane*2.0f)/tb; + result.m6 = 0.0f; + result.m7 = 0.0f; + + result.m8 = ((float)right + (float)left)/rl; + result.m9 = ((float)top + (float)bottom)/tb; + result.m10 = -((float)farPlane + (float)nearPlane)/fn; + result.m11 = -1.0f; + + result.m12 = 0.0f; + result.m13 = 0.0f; + result.m14 = -((float)farPlane*(float)nearPlane*2.0f)/fn; + result.m15 = 0.0f; + + return result; +} + +// Get perspective projection matrix +// NOTE: Fovy angle must be provided in radians +RMAPI Matrix MatrixPerspective(double fovY, double aspect, double nearPlane, double farPlane) +{ + Matrix result = { 0 }; + + double top = nearPlane*tan(fovY*0.5); + double bottom = -top; + double right = top*aspect; + double left = -right; + + // MatrixFrustum(-right, right, -top, top, near, far); + float rl = (float)(right - left); + float tb = (float)(top - bottom); + float fn = (float)(farPlane - nearPlane); + + result.m0 = ((float)nearPlane*2.0f)/rl; + result.m5 = ((float)nearPlane*2.0f)/tb; + result.m8 = ((float)right + (float)left)/rl; + result.m9 = ((float)top + (float)bottom)/tb; + result.m10 = -((float)farPlane + (float)nearPlane)/fn; + result.m11 = -1.0f; + result.m14 = -((float)farPlane*(float)nearPlane*2.0f)/fn; + + return result; +} + +// Get orthographic projection matrix +RMAPI Matrix MatrixOrtho(double left, double right, double bottom, double top, double nearPlane, double farPlane) +{ + Matrix result = { 0 }; + + float rl = (float)(right - left); + float tb = (float)(top - bottom); + float fn = (float)(farPlane - nearPlane); + + result.m0 = 2.0f/rl; + result.m1 = 0.0f; + result.m2 = 0.0f; + result.m3 = 0.0f; + result.m4 = 0.0f; + result.m5 = 2.0f/tb; + result.m6 = 0.0f; + result.m7 = 0.0f; + result.m8 = 0.0f; + result.m9 = 0.0f; + result.m10 = -2.0f/fn; + result.m11 = 0.0f; + result.m12 = -((float)left + (float)right)/rl; + result.m13 = -((float)top + (float)bottom)/tb; + result.m14 = -((float)farPlane + (float)nearPlane)/fn; + result.m15 = 1.0f; + + return result; +} + +// Get camera look-at matrix (view matrix) +RMAPI Matrix MatrixLookAt(Vector3 eye, Vector3 target, Vector3 up) +{ + Matrix result = { 0 }; + + float length = 0.0f; + float ilength = 0.0f; + + // Vector3Subtract(eye, target) + Vector3 vz = { eye.x - target.x, eye.y - target.y, eye.z - target.z }; + + // Vector3Normalize(vz) + Vector3 v = vz; + length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + if (length == 0.0f) length = 1.0f; + ilength = 1.0f/length; + vz.x *= ilength; + vz.y *= ilength; + vz.z *= ilength; + + // Vector3CrossProduct(up, vz) + Vector3 vx = { up.y*vz.z - up.z*vz.y, up.z*vz.x - up.x*vz.z, up.x*vz.y - up.y*vz.x }; + + // Vector3Normalize(x) + v = vx; + length = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z); + if (length == 0.0f) length = 1.0f; + ilength = 1.0f/length; + vx.x *= ilength; + vx.y *= ilength; + vx.z *= ilength; + + // Vector3CrossProduct(vz, vx) + Vector3 vy = { vz.y*vx.z - vz.z*vx.y, vz.z*vx.x - vz.x*vx.z, vz.x*vx.y - vz.y*vx.x }; + + result.m0 = vx.x; + result.m1 = vy.x; + result.m2 = vz.x; + result.m3 = 0.0f; + result.m4 = vx.y; + result.m5 = vy.y; + result.m6 = vz.y; + result.m7 = 0.0f; + result.m8 = vx.z; + result.m9 = vy.z; + result.m10 = vz.z; + result.m11 = 0.0f; + result.m12 = -(vx.x*eye.x + vx.y*eye.y + vx.z*eye.z); // Vector3DotProduct(vx, eye) + result.m13 = -(vy.x*eye.x + vy.y*eye.y + vy.z*eye.z); // Vector3DotProduct(vy, eye) + result.m14 = -(vz.x*eye.x + vz.y*eye.y + vz.z*eye.z); // Vector3DotProduct(vz, eye) + result.m15 = 1.0f; + + return result; +} + +// Get float array of matrix data +RMAPI float16 MatrixToFloatV(Matrix mat) +{ + float16 result = { 0 }; + + result.v[0] = mat.m0; + result.v[1] = mat.m1; + result.v[2] = mat.m2; + result.v[3] = mat.m3; + result.v[4] = mat.m4; + result.v[5] = mat.m5; + result.v[6] = mat.m6; + result.v[7] = mat.m7; + result.v[8] = mat.m8; + result.v[9] = mat.m9; + result.v[10] = mat.m10; + result.v[11] = mat.m11; + result.v[12] = mat.m12; + result.v[13] = mat.m13; + result.v[14] = mat.m14; + result.v[15] = mat.m15; + + return result; +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Quaternion math +//---------------------------------------------------------------------------------- + +// Add two quaternions +RMAPI Quaternion QuaternionAdd(Quaternion q1, Quaternion q2) +{ + Quaternion result = {q1.x + q2.x, q1.y + q2.y, q1.z + q2.z, q1.w + q2.w}; + + return result; +} + +// Add quaternion and float value +RMAPI Quaternion QuaternionAddValue(Quaternion q, float add) +{ + Quaternion result = {q.x + add, q.y + add, q.z + add, q.w + add}; + + return result; +} + +// Subtract two quaternions +RMAPI Quaternion QuaternionSubtract(Quaternion q1, Quaternion q2) +{ + Quaternion result = {q1.x - q2.x, q1.y - q2.y, q1.z - q2.z, q1.w - q2.w}; + + return result; +} + +// Subtract quaternion and float value +RMAPI Quaternion QuaternionSubtractValue(Quaternion q, float sub) +{ + Quaternion result = {q.x - sub, q.y - sub, q.z - sub, q.w - sub}; + + return result; +} + +// Get identity quaternion +RMAPI Quaternion QuaternionIdentity(void) +{ + Quaternion result = { 0.0f, 0.0f, 0.0f, 1.0f }; + + return result; +} + +// Computes the length of a quaternion +RMAPI float QuaternionLength(Quaternion q) +{ + float result = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + + return result; +} + +// Normalize provided quaternion +RMAPI Quaternion QuaternionNormalize(Quaternion q) +{ + Quaternion result = { 0 }; + + float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + if (length == 0.0f) length = 1.0f; + float ilength = 1.0f/length; + + result.x = q.x*ilength; + result.y = q.y*ilength; + result.z = q.z*ilength; + result.w = q.w*ilength; + + return result; +} + +// Invert provided quaternion +RMAPI Quaternion QuaternionInvert(Quaternion q) +{ + Quaternion result = q; + + float lengthSq = q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w; + + if (lengthSq != 0.0f) + { + float invLength = 1.0f/lengthSq; + + result.x *= -invLength; + result.y *= -invLength; + result.z *= -invLength; + result.w *= invLength; + } + + return result; +} + +// Calculate two quaternion multiplication +RMAPI Quaternion QuaternionMultiply(Quaternion q1, Quaternion q2) +{ + Quaternion result = { 0 }; + + float qax = q1.x, qay = q1.y, qaz = q1.z, qaw = q1.w; + float qbx = q2.x, qby = q2.y, qbz = q2.z, qbw = q2.w; + + result.x = qax*qbw + qaw*qbx + qay*qbz - qaz*qby; + result.y = qay*qbw + qaw*qby + qaz*qbx - qax*qbz; + result.z = qaz*qbw + qaw*qbz + qax*qby - qay*qbx; + result.w = qaw*qbw - qax*qbx - qay*qby - qaz*qbz; + + return result; +} + +// Scale quaternion by float value +RMAPI Quaternion QuaternionScale(Quaternion q, float mul) +{ + Quaternion result = { 0 }; + + result.x = q.x*mul; + result.y = q.y*mul; + result.z = q.z*mul; + result.w = q.w*mul; + + return result; +} + +// Divide two quaternions +RMAPI Quaternion QuaternionDivide(Quaternion q1, Quaternion q2) +{ + Quaternion result = { q1.x/q2.x, q1.y/q2.y, q1.z/q2.z, q1.w/q2.w }; + + return result; +} + +// Calculate linear interpolation between two quaternions +RMAPI Quaternion QuaternionLerp(Quaternion q1, Quaternion q2, float amount) +{ + Quaternion result = { 0 }; + + result.x = q1.x + amount*(q2.x - q1.x); + result.y = q1.y + amount*(q2.y - q1.y); + result.z = q1.z + amount*(q2.z - q1.z); + result.w = q1.w + amount*(q2.w - q1.w); + + return result; +} + +// Calculate slerp-optimized interpolation between two quaternions +RMAPI Quaternion QuaternionNlerp(Quaternion q1, Quaternion q2, float amount) +{ + Quaternion result = { 0 }; + + // QuaternionLerp(q1, q2, amount) + result.x = q1.x + amount*(q2.x - q1.x); + result.y = q1.y + amount*(q2.y - q1.y); + result.z = q1.z + amount*(q2.z - q1.z); + result.w = q1.w + amount*(q2.w - q1.w); + + // QuaternionNormalize(q); + Quaternion q = result; + float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + if (length == 0.0f) length = 1.0f; + float ilength = 1.0f/length; + + result.x = q.x*ilength; + result.y = q.y*ilength; + result.z = q.z*ilength; + result.w = q.w*ilength; + + return result; +} + +// Calculates spherical linear interpolation between two quaternions +RMAPI Quaternion QuaternionSlerp(Quaternion q1, Quaternion q2, float amount) +{ + Quaternion result = { 0 }; + +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + float cosHalfTheta = q1.x*q2.x + q1.y*q2.y + q1.z*q2.z + q1.w*q2.w; + + if (cosHalfTheta < 0) + { + q2.x = -q2.x; q2.y = -q2.y; q2.z = -q2.z; q2.w = -q2.w; + cosHalfTheta = -cosHalfTheta; + } + + if (fabsf(cosHalfTheta) >= 1.0f) result = q1; + else if (cosHalfTheta > 0.95f) result = QuaternionNlerp(q1, q2, amount); + else + { + float halfTheta = acosf(cosHalfTheta); + float sinHalfTheta = sqrtf(1.0f - cosHalfTheta*cosHalfTheta); + + if (fabsf(sinHalfTheta) < EPSILON) + { + result.x = (q1.x*0.5f + q2.x*0.5f); + result.y = (q1.y*0.5f + q2.y*0.5f); + result.z = (q1.z*0.5f + q2.z*0.5f); + result.w = (q1.w*0.5f + q2.w*0.5f); + } + else + { + float ratioA = sinf((1 - amount)*halfTheta)/sinHalfTheta; + float ratioB = sinf(amount*halfTheta)/sinHalfTheta; + + result.x = (q1.x*ratioA + q2.x*ratioB); + result.y = (q1.y*ratioA + q2.y*ratioB); + result.z = (q1.z*ratioA + q2.z*ratioB); + result.w = (q1.w*ratioA + q2.w*ratioB); + } + } + + return result; +} + +// Calculate quaternion cubic spline interpolation using Cubic Hermite Spline algorithm +// as described in the GLTF 2.0 specification: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#interpolation-cubic +RMAPI Quaternion QuaternionCubicHermiteSpline(Quaternion q1, Quaternion outTangent1, Quaternion q2, Quaternion inTangent2, float t) +{ + float t2 = t*t; + float t3 = t2*t; + float h00 = 2*t3 - 3*t2 + 1; + float h10 = t3 - 2*t2 + t; + float h01 = -2*t3 + 3*t2; + float h11 = t3 - t2; + + Quaternion p0 = QuaternionScale(q1, h00); + Quaternion m0 = QuaternionScale(outTangent1, h10); + Quaternion p1 = QuaternionScale(q2, h01); + Quaternion m1 = QuaternionScale(inTangent2, h11); + + Quaternion result = { 0 }; + + result = QuaternionAdd(p0, m0); + result = QuaternionAdd(result, p1); + result = QuaternionAdd(result, m1); + result = QuaternionNormalize(result); + + return result; +} + +// Calculate quaternion based on the rotation from one vector to another +RMAPI Quaternion QuaternionFromVector3ToVector3(Vector3 from, Vector3 to) +{ + Quaternion result = { 0 }; + + float cos2Theta = (from.x*to.x + from.y*to.y + from.z*to.z); // Vector3DotProduct(from, to) + Vector3 cross = { from.y*to.z - from.z*to.y, from.z*to.x - from.x*to.z, from.x*to.y - from.y*to.x }; // Vector3CrossProduct(from, to) + + result.x = cross.x; + result.y = cross.y; + result.z = cross.z; + result.w = 1.0f + cos2Theta; + + // QuaternionNormalize(q); + // NOTE: Normalize to essentially nlerp the original and identity to 0.5 + Quaternion q = result; + float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + if (length == 0.0f) length = 1.0f; + float ilength = 1.0f/length; + + result.x = q.x*ilength; + result.y = q.y*ilength; + result.z = q.z*ilength; + result.w = q.w*ilength; + + return result; +} + +// Get a quaternion for a given rotation matrix +RMAPI Quaternion QuaternionFromMatrix(Matrix mat) +{ + Quaternion result = { 0 }; + + float fourWSquaredMinus1 = mat.m0 + mat.m5 + mat.m10; + float fourXSquaredMinus1 = mat.m0 - mat.m5 - mat.m10; + float fourYSquaredMinus1 = mat.m5 - mat.m0 - mat.m10; + float fourZSquaredMinus1 = mat.m10 - mat.m0 - mat.m5; + + int biggestIndex = 0; + float fourBiggestSquaredMinus1 = fourWSquaredMinus1; + if (fourXSquaredMinus1 > fourBiggestSquaredMinus1) + { + fourBiggestSquaredMinus1 = fourXSquaredMinus1; + biggestIndex = 1; + } + + if (fourYSquaredMinus1 > fourBiggestSquaredMinus1) + { + fourBiggestSquaredMinus1 = fourYSquaredMinus1; + biggestIndex = 2; + } + + if (fourZSquaredMinus1 > fourBiggestSquaredMinus1) + { + fourBiggestSquaredMinus1 = fourZSquaredMinus1; + biggestIndex = 3; + } + + float biggestVal = sqrtf(fourBiggestSquaredMinus1 + 1.0f)*0.5f; + float mult = 0.25f/biggestVal; + + switch (biggestIndex) + { + case 0: + result.w = biggestVal; + result.x = (mat.m6 - mat.m9)*mult; + result.y = (mat.m8 - mat.m2)*mult; + result.z = (mat.m1 - mat.m4)*mult; + break; + case 1: + result.x = biggestVal; + result.w = (mat.m6 - mat.m9)*mult; + result.y = (mat.m1 + mat.m4)*mult; + result.z = (mat.m8 + mat.m2)*mult; + break; + case 2: + result.y = biggestVal; + result.w = (mat.m8 - mat.m2)*mult; + result.x = (mat.m1 + mat.m4)*mult; + result.z = (mat.m6 + mat.m9)*mult; + break; + case 3: + result.z = biggestVal; + result.w = (mat.m1 - mat.m4)*mult; + result.x = (mat.m8 + mat.m2)*mult; + result.y = (mat.m6 + mat.m9)*mult; + break; + } + + return result; +} + +// Get a matrix for a given quaternion +RMAPI Matrix QuaternionToMatrix(Quaternion q) +{ + Matrix result = { 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f }; // MatrixIdentity() + + float a2 = q.x*q.x; + float b2 = q.y*q.y; + float c2 = q.z*q.z; + float ac = q.x*q.z; + float ab = q.x*q.y; + float bc = q.y*q.z; + float ad = q.w*q.x; + float bd = q.w*q.y; + float cd = q.w*q.z; + + result.m0 = 1 - 2*(b2 + c2); + result.m1 = 2*(ab + cd); + result.m2 = 2*(ac - bd); + + result.m4 = 2*(ab - cd); + result.m5 = 1 - 2*(a2 + c2); + result.m6 = 2*(bc + ad); + + result.m8 = 2*(ac + bd); + result.m9 = 2*(bc - ad); + result.m10 = 1 - 2*(a2 + b2); + + return result; +} + +// Get rotation quaternion for an angle and axis +// NOTE: Angle must be provided in radians +RMAPI Quaternion QuaternionFromAxisAngle(Vector3 axis, float angle) +{ + Quaternion result = { 0.0f, 0.0f, 0.0f, 1.0f }; + + float axisLength = sqrtf(axis.x*axis.x + axis.y*axis.y + axis.z*axis.z); + + if (axisLength != 0.0f) + { + angle *= 0.5f; + + float length = 0.0f; + float ilength = 0.0f; + + // Vector3Normalize(axis) + length = axisLength; + if (length == 0.0f) length = 1.0f; + ilength = 1.0f/length; + axis.x *= ilength; + axis.y *= ilength; + axis.z *= ilength; + + float sinres = sinf(angle); + float cosres = cosf(angle); + + result.x = axis.x*sinres; + result.y = axis.y*sinres; + result.z = axis.z*sinres; + result.w = cosres; + + // QuaternionNormalize(q); + Quaternion q = result; + length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + if (length == 0.0f) length = 1.0f; + ilength = 1.0f/length; + result.x = q.x*ilength; + result.y = q.y*ilength; + result.z = q.z*ilength; + result.w = q.w*ilength; + } + + return result; +} + +// Get the rotation angle and axis for a given quaternion +RMAPI void QuaternionToAxisAngle(Quaternion q, Vector3 *outAxis, float *outAngle) +{ + if (fabsf(q.w) > 1.0f) + { + // QuaternionNormalize(q); + float length = sqrtf(q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w); + if (length == 0.0f) length = 1.0f; + float ilength = 1.0f/length; + + q.x = q.x*ilength; + q.y = q.y*ilength; + q.z = q.z*ilength; + q.w = q.w*ilength; + } + + Vector3 resAxis = { 0.0f, 0.0f, 0.0f }; + float resAngle = 2.0f*acosf(q.w); + float den = sqrtf(1.0f - q.w*q.w); + + if (den > EPSILON) + { + resAxis.x = q.x/den; + resAxis.y = q.y/den; + resAxis.z = q.z/den; + } + else + { + // This occurs when the angle is zero. + // Not a problem: just set an arbitrary normalized axis. + resAxis.x = 1.0f; + } + + *outAxis = resAxis; + *outAngle = resAngle; +} + +// Get the quaternion equivalent to Euler angles +// NOTE: Rotation order is ZYX +RMAPI Quaternion QuaternionFromEuler(float pitch, float yaw, float roll) +{ + Quaternion result = { 0 }; + + float x0 = cosf(pitch*0.5f); + float x1 = sinf(pitch*0.5f); + float y0 = cosf(yaw*0.5f); + float y1 = sinf(yaw*0.5f); + float z0 = cosf(roll*0.5f); + float z1 = sinf(roll*0.5f); + + result.x = x1*y0*z0 - x0*y1*z1; + result.y = x0*y1*z0 + x1*y0*z1; + result.z = x0*y0*z1 - x1*y1*z0; + result.w = x0*y0*z0 + x1*y1*z1; + + return result; +} + +// Get the Euler angles equivalent to quaternion (roll, pitch, yaw) +// NOTE: Angles are returned in a Vector3 struct in radians +RMAPI Vector3 QuaternionToEuler(Quaternion q) +{ + Vector3 result = { 0 }; + + // Roll (x-axis rotation) + float x0 = 2.0f*(q.w*q.x + q.y*q.z); + float x1 = 1.0f - 2.0f*(q.x*q.x + q.y*q.y); + result.x = atan2f(x0, x1); + + // Pitch (y-axis rotation) + float y0 = 2.0f*(q.w*q.y - q.z*q.x); + y0 = y0 > 1.0f ? 1.0f : y0; + y0 = y0 < -1.0f ? -1.0f : y0; + result.y = asinf(y0); + + // Yaw (z-axis rotation) + float z0 = 2.0f*(q.w*q.z + q.x*q.y); + float z1 = 1.0f - 2.0f*(q.y*q.y + q.z*q.z); + result.z = atan2f(z0, z1); + + return result; +} + +// Transform a quaternion given a transformation matrix +RMAPI Quaternion QuaternionTransform(Quaternion q, Matrix mat) +{ + Quaternion result = { 0 }; + + result.x = mat.m0*q.x + mat.m4*q.y + mat.m8*q.z + mat.m12*q.w; + result.y = mat.m1*q.x + mat.m5*q.y + mat.m9*q.z + mat.m13*q.w; + result.z = mat.m2*q.x + mat.m6*q.y + mat.m10*q.z + mat.m14*q.w; + result.w = mat.m3*q.x + mat.m7*q.y + mat.m11*q.z + mat.m15*q.w; + + return result; +} + +// Check whether two given quaternions are almost equal +RMAPI int QuaternionEquals(Quaternion p, Quaternion q) +{ +#if !defined(EPSILON) + #define EPSILON 0.000001f +#endif + + int result = (((fabsf(p.x - q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && + ((fabsf(p.y - q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && + ((fabsf(p.z - q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))) && + ((fabsf(p.w - q.w)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.w), fabsf(q.w)))))) || + (((fabsf(p.x + q.x)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.x), fabsf(q.x))))) && + ((fabsf(p.y + q.y)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.y), fabsf(q.y))))) && + ((fabsf(p.z + q.z)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.z), fabsf(q.z))))) && + ((fabsf(p.w + q.w)) <= (EPSILON*fmaxf(1.0f, fmaxf(fabsf(p.w), fabsf(q.w)))))); + + return result; +} + +// Decompose a transformation matrix into its rotational, translational and scaling components +RMAPI void MatrixDecompose(Matrix mat, Vector3 *translation, Quaternion *rotation, Vector3 *scale) +{ + // Extract translation. + translation->x = mat.m12; + translation->y = mat.m13; + translation->z = mat.m14; + + // Extract upper-left for determinant computation + const float a = mat.m0; + const float b = mat.m4; + const float c = mat.m8; + const float d = mat.m1; + const float e = mat.m5; + const float f = mat.m9; + const float g = mat.m2; + const float h = mat.m6; + const float i = mat.m10; + const float A = e*i - f*h; + const float B = f*g - d*i; + const float C = d*h - e*g; + + // Extract scale + const float det = a*A + b*B + c*C; + Vector3 abc = { a, b, c }; + Vector3 def = { d, e, f }; + Vector3 ghi = { g, h, i }; + + float scalex = Vector3Length(abc); + float scaley = Vector3Length(def); + float scalez = Vector3Length(ghi); + Vector3 s = { scalex, scaley, scalez }; + + if (det < 0) s = Vector3Negate(s); + + *scale = s; + + // Remove scale from the matrix if it is not close to zero + Matrix clone = mat; + if (!FloatEquals(det, 0)) + { + clone.m0 /= s.x; + clone.m4 /= s.x; + clone.m8 /= s.x; + clone.m1 /= s.y; + clone.m5 /= s.y; + clone.m9 /= s.y; + clone.m2 /= s.z; + clone.m6 /= s.z; + clone.m10 /= s.z; + + // Extract rotation + *rotation = QuaternionFromMatrix(clone); + } + else + { + // Set to identity if close to zero + *rotation = QuaternionIdentity(); + } +} + +#if defined(__cplusplus) && !defined(RAYMATH_DISABLE_CPP_OPERATORS) + +// Optional C++ math operators +//------------------------------------------------------------------------------- + +// Vector2 operators +static constexpr Vector2 Vector2Zeros = { 0, 0 }; +static constexpr Vector2 Vector2Ones = { 1, 1 }; +static constexpr Vector2 Vector2UnitX = { 1, 0 }; +static constexpr Vector2 Vector2UnitY = { 0, 1 }; + +inline Vector2 operator + (const Vector2& lhs, const Vector2& rhs) +{ + return Vector2Add(lhs, rhs); +} + +inline const Vector2& operator += (Vector2& lhs, const Vector2& rhs) +{ + lhs = Vector2Add(lhs, rhs); + return lhs; +} + +inline Vector2 operator - (const Vector2& lhs, const Vector2& rhs) +{ + return Vector2Subtract(lhs, rhs); +} + +inline const Vector2& operator -= (Vector2& lhs, const Vector2& rhs) +{ + lhs = Vector2Subtract(lhs, rhs); + return lhs; +} + +inline Vector2 operator * (const Vector2& lhs, const float& rhs) +{ + return Vector2Scale(lhs, rhs); +} + +inline const Vector2& operator *= (Vector2& lhs, const float& rhs) +{ + lhs = Vector2Scale(lhs, rhs); + return lhs; +} + +inline Vector2 operator * (const Vector2& lhs, const Vector2& rhs) +{ + return Vector2Multiply(lhs, rhs); +} + +inline const Vector2& operator *= (Vector2& lhs, const Vector2& rhs) +{ + lhs = Vector2Multiply(lhs, rhs); + return lhs; +} + +inline Vector2 operator * (const Vector2& lhs, const Matrix& rhs) +{ + return Vector2Transform(lhs, rhs); +} + +inline const Vector2& operator -= (Vector2& lhs, const Matrix& rhs) +{ + lhs = Vector2Transform(lhs, rhs); + return lhs; +} + +inline Vector2 operator / (const Vector2& lhs, const float& rhs) +{ + return Vector2Scale(lhs, 1.0f / rhs); +} + +inline const Vector2& operator /= (Vector2& lhs, const float& rhs) +{ + lhs = Vector2Scale(lhs, rhs); + return lhs; +} + +inline Vector2 operator / (const Vector2& lhs, const Vector2& rhs) +{ + return Vector2Divide(lhs, rhs); +} + +inline const Vector2& operator /= (Vector2& lhs, const Vector2& rhs) +{ + lhs = Vector2Divide(lhs, rhs); + return lhs; +} + +inline bool operator == (const Vector2& lhs, const Vector2& rhs) +{ + return FloatEquals(lhs.x, rhs.x) && FloatEquals(lhs.y, rhs.y); +} + +inline bool operator != (const Vector2& lhs, const Vector2& rhs) +{ + return !FloatEquals(lhs.x, rhs.x) || !FloatEquals(lhs.y, rhs.y); +} + +// Vector3 operators +static constexpr Vector3 Vector3Zeros = { 0, 0, 0 }; +static constexpr Vector3 Vector3Ones = { 1, 1, 1 }; +static constexpr Vector3 Vector3UnitX = { 1, 0, 0 }; +static constexpr Vector3 Vector3UnitY = { 0, 1, 0 }; +static constexpr Vector3 Vector3UnitZ = { 0, 0, 1 }; + +inline Vector3 operator + (const Vector3& lhs, const Vector3& rhs) +{ + return Vector3Add(lhs, rhs); +} + +inline const Vector3& operator += (Vector3& lhs, const Vector3& rhs) +{ + lhs = Vector3Add(lhs, rhs); + return lhs; +} + +inline Vector3 operator - (const Vector3& lhs, const Vector3& rhs) +{ + return Vector3Subtract(lhs, rhs); +} + +inline const Vector3& operator -= (Vector3& lhs, const Vector3& rhs) +{ + lhs = Vector3Subtract(lhs, rhs); + return lhs; +} + +inline Vector3 operator * (const Vector3& lhs, const float& rhs) +{ + return Vector3Scale(lhs, rhs); +} + +inline const Vector3& operator *= (Vector3& lhs, const float& rhs) +{ + lhs = Vector3Scale(lhs, rhs); + return lhs; +} + +inline Vector3 operator * (const Vector3& lhs, const Vector3& rhs) +{ + return Vector3Multiply(lhs, rhs); +} + +inline const Vector3& operator *= (Vector3& lhs, const Vector3& rhs) +{ + lhs = Vector3Multiply(lhs, rhs); + return lhs; +} + +inline Vector3 operator * (const Vector3& lhs, const Matrix& rhs) +{ + return Vector3Transform(lhs, rhs); +} + +inline const Vector3& operator -= (Vector3& lhs, const Matrix& rhs) +{ + lhs = Vector3Transform(lhs, rhs); + return lhs; +} + +inline Vector3 operator / (const Vector3& lhs, const float& rhs) +{ + return Vector3Scale(lhs, 1.0f / rhs); +} + +inline const Vector3& operator /= (Vector3& lhs, const float& rhs) +{ + lhs = Vector3Scale(lhs, rhs); + return lhs; +} + +inline Vector3 operator / (const Vector3& lhs, const Vector3& rhs) +{ + return Vector3Divide(lhs, rhs); +} + +inline const Vector3& operator /= (Vector3& lhs, const Vector3& rhs) +{ + lhs = Vector3Divide(lhs, rhs); + return lhs; +} + +inline bool operator == (const Vector3& lhs, const Vector3& rhs) +{ + return FloatEquals(lhs.x, rhs.x) && FloatEquals(lhs.y, rhs.y) && FloatEquals(lhs.z, rhs.z); +} + +inline bool operator != (const Vector3& lhs, const Vector3& rhs) +{ + return !FloatEquals(lhs.x, rhs.x) || !FloatEquals(lhs.y, rhs.y) || !FloatEquals(lhs.z, rhs.z); +} + +// Vector4 operators +static constexpr Vector4 Vector4Zeros = { 0, 0, 0, 0 }; +static constexpr Vector4 Vector4Ones = { 1, 1, 1, 1 }; +static constexpr Vector4 Vector4UnitX = { 1, 0, 0, 0 }; +static constexpr Vector4 Vector4UnitY = { 0, 1, 0, 0 }; +static constexpr Vector4 Vector4UnitZ = { 0, 0, 1, 0 }; +static constexpr Vector4 Vector4UnitW = { 0, 0, 0, 1 }; + +inline Vector4 operator + (const Vector4& lhs, const Vector4& rhs) +{ + return Vector4Add(lhs, rhs); +} + +inline const Vector4& operator += (Vector4& lhs, const Vector4& rhs) +{ + lhs = Vector4Add(lhs, rhs); + return lhs; +} + +inline Vector4 operator - (const Vector4& lhs, const Vector4& rhs) +{ + return Vector4Subtract(lhs, rhs); +} + +inline const Vector4& operator -= (Vector4& lhs, const Vector4& rhs) +{ + lhs = Vector4Subtract(lhs, rhs); + return lhs; +} + +inline Vector4 operator * (const Vector4& lhs, const float& rhs) +{ + return Vector4Scale(lhs, rhs); +} + +inline const Vector4& operator *= (Vector4& lhs, const float& rhs) +{ + lhs = Vector4Scale(lhs, rhs); + return lhs; +} + +inline Vector4 operator * (const Vector4& lhs, const Vector4& rhs) +{ + return Vector4Multiply(lhs, rhs); +} + +inline const Vector4& operator *= (Vector4& lhs, const Vector4& rhs) +{ + lhs = Vector4Multiply(lhs, rhs); + return lhs; +} + +inline Vector4 operator / (const Vector4& lhs, const float& rhs) +{ + return Vector4Scale(lhs, 1.0f / rhs); +} + +inline const Vector4& operator /= (Vector4& lhs, const float& rhs) +{ + lhs = Vector4Scale(lhs, rhs); + return lhs; +} + +inline Vector4 operator / (const Vector4& lhs, const Vector4& rhs) +{ + return Vector4Divide(lhs, rhs); +} + +inline const Vector4& operator /= (Vector4& lhs, const Vector4& rhs) +{ + lhs = Vector4Divide(lhs, rhs); + return lhs; +} + +inline bool operator == (const Vector4& lhs, const Vector4& rhs) +{ + return FloatEquals(lhs.x, rhs.x) && FloatEquals(lhs.y, rhs.y) && FloatEquals(lhs.z, rhs.z) && FloatEquals(lhs.w, rhs.w); +} + +inline bool operator != (const Vector4& lhs, const Vector4& rhs) +{ + return !FloatEquals(lhs.x, rhs.x) || !FloatEquals(lhs.y, rhs.y) || !FloatEquals(lhs.z, rhs.z) || !FloatEquals(lhs.w, rhs.w); +} + +// Quaternion operators +static constexpr Quaternion QuaternionZeros = { 0, 0, 0, 0 }; +static constexpr Quaternion QuaternionOnes = { 1, 1, 1, 1 }; +static constexpr Quaternion QuaternionUnitX = { 0, 0, 0, 1 }; + +inline Quaternion operator + (const Quaternion& lhs, const float& rhs) +{ + return QuaternionAddValue(lhs, rhs); +} + +inline const Quaternion& operator += (Quaternion& lhs, const float& rhs) +{ + lhs = QuaternionAddValue(lhs, rhs); + return lhs; +} + +inline Quaternion operator - (const Quaternion& lhs, const float& rhs) +{ + return QuaternionSubtractValue(lhs, rhs); +} + +inline const Quaternion& operator -= (Quaternion& lhs, const float& rhs) +{ + lhs = QuaternionSubtractValue(lhs, rhs); + return lhs; +} + +inline Quaternion operator * (const Quaternion& lhs, const Matrix& rhs) +{ + return QuaternionTransform(lhs, rhs); +} + +inline const Quaternion& operator *= (Quaternion& lhs, const Matrix& rhs) +{ + lhs = QuaternionTransform(lhs, rhs); + return lhs; +} + +// Matrix operators +inline Matrix operator + (const Matrix& lhs, const Matrix& rhs) +{ + return MatrixAdd(lhs, rhs); +} + +inline const Matrix& operator += (Matrix& lhs, const Matrix& rhs) +{ + lhs = MatrixAdd(lhs, rhs); + return lhs; +} + +inline Matrix operator - (const Matrix& lhs, const Matrix& rhs) +{ + return MatrixSubtract(lhs, rhs); +} + +inline const Matrix& operator -= (Matrix& lhs, const Matrix& rhs) +{ + lhs = MatrixSubtract(lhs, rhs); + return lhs; +} + +inline Matrix operator * (const Matrix& lhs, const Matrix& rhs) +{ + return MatrixMultiply(lhs, rhs); +} + +inline const Matrix& operator *= (Matrix& lhs, const Matrix& rhs) +{ + lhs = MatrixMultiply(lhs, rhs); + return lhs; +} +//------------------------------------------------------------------------------- +#endif // C++ operators + +#endif // RAYMATH_H diff --git a/lib/raylib_win_arm64/include/rlgl.h b/lib/raylib_win_arm64/include/rlgl.h index 510bd7a..756656e 100644 --- a/lib/raylib_win_arm64/include/rlgl.h +++ b/lib/raylib_win_arm64/include/rlgl.h @@ -1,5392 +1,5262 @@ -/********************************************************************************************** -* -* rlgl v5.0 - A multi-OpenGL abstraction layer with an immediate-mode style API -* -* DESCRIPTION: -* An abstraction layer for multiple OpenGL versions (1.1, 2.1, 3.3 Core, 4.3 Core, ES 2.0, ES 3.0) -* that provides a pseudo-OpenGL 1.1 immediate-mode style API (rlVertex, rlTranslate, rlRotate...) -* -* ADDITIONAL NOTES: -* When choosing an OpenGL backend different than OpenGL 1.1, some internal buffer are -* initialized on rlglInit() to accumulate vertex data -* -* When an internal state change is required all the stored vertex data is rendered in batch, -* additionally, rlDrawRenderBatchActive() could be called to force flushing of the batch -* -* Some resources are also loaded for convenience, here the complete list: -* - Default batch (RLGL.defaultBatch): RenderBatch system to accumulate vertex data -* - Default texture (RLGL.defaultTextureId): 1x1 white pixel R8G8B8A8 -* - Default shader (RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs) -* -* Internal buffer (and resources) must be manually unloaded calling rlglClose() -* -* CONFIGURATION: -* #define GRAPHICS_API_OPENGL_11_SOFTWARE -* #define GRAPHICS_API_OPENGL_11 -* #define GRAPHICS_API_OPENGL_21 -* #define GRAPHICS_API_OPENGL_33 -* #define GRAPHICS_API_OPENGL_43 -* #define GRAPHICS_API_OPENGL_ES2 -* #define GRAPHICS_API_OPENGL_ES3 -* Use selected OpenGL graphics backend, should be supported by platform -* Those preprocessor defines are only used on rlgl module, if OpenGL version is -* required by any other module, use rlGetVersion() to check it -* -* #define RLGL_IMPLEMENTATION -* Generates the implementation of the library into the included file -* If not defined, the library is in header only mode and can be included in other headers -* or source files without problems. But only ONE file should hold the implementation -* -* #define RLGL_SHOW_GL_DETAILS_INFO -* Show OpenGL extensions and capabilities detailed logs on init -* -* #define RLGL_ENABLE_OPENGL_DEBUG_CONTEXT -* Enable debug context (only available on OpenGL 4.3) -* -* rlgl capabilities could be customized just defining some internal -* values before library inclusion (default values listed): -* -* #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 8192 // Default internal render batch elements limits -* #define RL_DEFAULT_BATCH_BUFFERS 1 // Default number of batch buffers (multi-buffering) -* #define RL_DEFAULT_BATCH_DRAWCALLS 256 // Default number of batch draw calls (by state changes: mode, texture) -* #define RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS 4 // Maximum number of textures units that can be activated on batch drawing (SetShaderValueTexture()) -* -* #define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of internal Matrix stack -* #define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported -* #define RL_CULL_DISTANCE_NEAR 0.05 // Default projection matrix near cull distance -* #define RL_CULL_DISTANCE_FAR 4000.0 // Default projection matrix far cull distance -* -* When loading a shader, the following vertex attributes and uniform -* location names are tried to be set automatically: -* -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEINDICES "vertexBoneIndices" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEINDICES -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS "vertexBoneWeights" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL "matModel" // model matrix -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView))) -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color) -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_BONEMATRICES "boneMatrices" // bone matrices -* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0) -* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 "texture1" // texture1 (texture slot active 1) -* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 "texture2" // texture2 (texture slot active 2) -* -* DEPENDENCIES: -* - OpenGL libraries (depending on platform and OpenGL version selected) -* - GLAD OpenGL extensions loading library (only for OpenGL 3.3 Core, 4.3 Core) -* -* -* LICENSE: zlib/libpng -* -* Copyright (c) 2014-2026 Ramon Santamaria (@raysan5) -* -* This software is provided "as-is", without any express or implied warranty. In no event -* will the authors be held liable for any damages arising from the use of this software. -* -* Permission is granted to anyone to use this software for any purpose, including commercial -* applications, and to alter it and redistribute it freely, subject to the following restrictions: -* -* 1. The origin of this software must not be misrepresented; you must not claim that you -* wrote the original software. If you use this software in a product, an acknowledgment -* in the product documentation would be appreciated but is not required. -* -* 2. Altered source versions must be plainly marked as such, and must not be misrepresented -* as being the original software. -* -* 3. This notice may not be removed or altered from any source distribution. -* -**********************************************************************************************/ - -#ifndef RLGL_H -#define RLGL_H - -#define RLGL_VERSION "5.0" - -// Function specifiers in case library is build/used as a shared library -// NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll -// NOTE: visibility(default) attribute makes symbols "visible" when compiled with -fvisibility=hidden -#if defined(_WIN32) && defined(BUILD_LIBTYPE_SHARED) - #define RLAPI __declspec(dllexport) // Building the library as a Win32 shared library (.dll) -#elif defined(BUILD_LIBTYPE_SHARED) - #define RLAPI __attribute__((visibility("default"))) // Building the library as a Unix shared library (.so/.dylib) -#elif defined(_WIN32) && defined(USE_LIBTYPE_SHARED) - #define RLAPI __declspec(dllimport) // Using the library as a Win32 shared library (.dll) -#endif - -// Function specifiers definition -#ifndef RLAPI - #define RLAPI // Functions defined as 'extern' by default (implicit specifiers) -#endif - -// Support TRACELOG macros -#ifndef TRACELOG - #define TRACELOG(level, ...) (void)0 -#endif - -// Allow custom memory allocators -#ifndef RL_MALLOC - #define RL_MALLOC(sz) malloc(sz) -#endif -#ifndef RL_CALLOC - #define RL_CALLOC(n,sz) calloc(n,sz) -#endif -#ifndef RL_REALLOC - #define RL_REALLOC(n,sz) realloc(n,sz) -#endif -#ifndef RL_FREE - #define RL_FREE(p) free(p) -#endif - -// Security check in case no GRAPHICS_API_OPENGL_* defined -#if !defined(GRAPHICS_API_OPENGL_11_SOFTWARE) && \ - !defined(GRAPHICS_API_OPENGL_11) && \ - !defined(GRAPHICS_API_OPENGL_21) && \ - !defined(GRAPHICS_API_OPENGL_33) && \ - !defined(GRAPHICS_API_OPENGL_43) && \ - !defined(GRAPHICS_API_OPENGL_ES2) && \ - !defined(GRAPHICS_API_OPENGL_ES3) - #define GRAPHICS_API_OPENGL_33 -#endif - -// Security check in case multiple GRAPHICS_API_OPENGL_* defined -#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_11_SOFTWARE) - #if defined(GRAPHICS_API_OPENGL_21) - #undef GRAPHICS_API_OPENGL_21 - #endif - #if defined(GRAPHICS_API_OPENGL_33) - #undef GRAPHICS_API_OPENGL_33 - #endif - #if defined(GRAPHICS_API_OPENGL_43) - #undef GRAPHICS_API_OPENGL_43 - #endif - #if defined(GRAPHICS_API_OPENGL_ES2) - #undef GRAPHICS_API_OPENGL_ES2 - #endif -#endif - -// Software implementation uses OpenGL 1.1 functionality -#if defined(GRAPHICS_API_OPENGL_11_SOFTWARE) - #define GRAPHICS_API_OPENGL_11 -#endif - -// OpenGL 2.1 uses most of OpenGL 3.3 Core functionality -// WARNING: Specific parts are checked with #if defines -#if defined(GRAPHICS_API_OPENGL_21) - #define GRAPHICS_API_OPENGL_33 -#endif - -// OpenGL 4.3 uses OpenGL 3.3 Core functionality -#if defined(GRAPHICS_API_OPENGL_43) - #define GRAPHICS_API_OPENGL_33 -#endif - -// OpenGL ES 3.0 uses OpenGL ES 2.0 functionality (and more) -#if defined(GRAPHICS_API_OPENGL_ES3) - #define GRAPHICS_API_OPENGL_ES2 -#endif - -//---------------------------------------------------------------------------------- -// Defines and Macros -//---------------------------------------------------------------------------------- - -// Default internal render batch elements limits -#ifndef RL_DEFAULT_BATCH_BUFFER_ELEMENTS - #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) - // This is the maximum amount of elements (quads) per batch - // NOTE: Be careful with text, every letter maps to a quad - #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 8192 - #endif - #if defined(GRAPHICS_API_OPENGL_ES2) - // Reducing memory sizes for embedded systems (RPI and HTML5) - // NOTE: On HTML5 (emscripten) this is allocated on heap, - // by default heap is only 16MB!...just take care... - #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 2048 - #endif -#endif -#ifndef RL_DEFAULT_BATCH_BUFFERS - #define RL_DEFAULT_BATCH_BUFFERS 1 // Default number of batch buffers (multi-buffering) -#endif -#ifndef RL_DEFAULT_BATCH_DRAWCALLS - #define RL_DEFAULT_BATCH_DRAWCALLS 256 // Default number of batch draw calls (by state changes: mode, texture) -#endif -#ifndef RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS - #define RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS 4 // Maximum number of textures units that can be activated on batch drawing (SetShaderValueTexture()) -#endif - -// Internal Matrix stack -#ifndef RL_MAX_MATRIX_STACK_SIZE - #define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of Matrix stack -#endif - -// Shader limits -#ifndef RL_MAX_SHADER_LOCATIONS - #define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported -#endif - -// Projection matrix culling -#ifndef RL_CULL_DISTANCE_NEAR - #define RL_CULL_DISTANCE_NEAR 0.05 // Default near cull distance -#endif -#ifndef RL_CULL_DISTANCE_FAR - #define RL_CULL_DISTANCE_FAR 4000.0 // Default far cull distance -#endif - -// Texture parameters (equivalent to OpenGL defines) -#define RL_TEXTURE_WRAP_S 0x2802 // GL_TEXTURE_WRAP_S -#define RL_TEXTURE_WRAP_T 0x2803 // GL_TEXTURE_WRAP_T -#define RL_TEXTURE_MAG_FILTER 0x2800 // GL_TEXTURE_MAG_FILTER -#define RL_TEXTURE_MIN_FILTER 0x2801 // GL_TEXTURE_MIN_FILTER - -#define RL_TEXTURE_FILTER_NEAREST 0x2600 // GL_NEAREST -#define RL_TEXTURE_FILTER_LINEAR 0x2601 // GL_LINEAR -#define RL_TEXTURE_FILTER_MIP_NEAREST 0x2700 // GL_NEAREST_MIPMAP_NEAREST -#define RL_TEXTURE_FILTER_NEAREST_MIP_LINEAR 0x2702 // GL_NEAREST_MIPMAP_LINEAR -#define RL_TEXTURE_FILTER_LINEAR_MIP_NEAREST 0x2701 // GL_LINEAR_MIPMAP_NEAREST -#define RL_TEXTURE_FILTER_MIP_LINEAR 0x2703 // GL_LINEAR_MIPMAP_LINEAR -#define RL_TEXTURE_FILTER_ANISOTROPIC 0x3000 // Anisotropic filter (custom identifier) -#define RL_TEXTURE_MIPMAP_BIAS_RATIO 0x4000 // Texture mipmap bias, percentage ratio (custom identifier) - -#define RL_TEXTURE_WRAP_REPEAT 0x2901 // GL_REPEAT -#define RL_TEXTURE_WRAP_CLAMP 0x812F // GL_CLAMP_TO_EDGE -#define RL_TEXTURE_WRAP_MIRROR_REPEAT 0x8370 // GL_MIRRORED_REPEAT -#define RL_TEXTURE_WRAP_MIRROR_CLAMP 0x8742 // GL_MIRROR_CLAMP_EXT - -// Matrix modes (equivalent to OpenGL) -#define RL_MODELVIEW 0x1700 // GL_MODELVIEW -#define RL_PROJECTION 0x1701 // GL_PROJECTION -#define RL_TEXTURE 0x1702 // GL_TEXTURE - -// Primitive assembly draw modes -#define RL_LINES 0x0001 // GL_LINES -#define RL_TRIANGLES 0x0004 // GL_TRIANGLES -#define RL_QUADS 0x0007 // GL_QUADS - -// GL equivalent data types -#define RL_UNSIGNED_BYTE 0x1401 // GL_UNSIGNED_BYTE -#define RL_FLOAT 0x1406 // GL_FLOAT - -// GL buffer usage hint -#define RL_STREAM_DRAW 0x88E0 // GL_STREAM_DRAW -#define RL_STREAM_READ 0x88E1 // GL_STREAM_READ -#define RL_STREAM_COPY 0x88E2 // GL_STREAM_COPY -#define RL_STATIC_DRAW 0x88E4 // GL_STATIC_DRAW -#define RL_STATIC_READ 0x88E5 // GL_STATIC_READ -#define RL_STATIC_COPY 0x88E6 // GL_STATIC_COPY -#define RL_DYNAMIC_DRAW 0x88E8 // GL_DYNAMIC_DRAW -#define RL_DYNAMIC_READ 0x88E9 // GL_DYNAMIC_READ -#define RL_DYNAMIC_COPY 0x88EA // GL_DYNAMIC_COPY - -// GL Shader type -#define RL_FRAGMENT_SHADER 0x8B30 // GL_FRAGMENT_SHADER -#define RL_VERTEX_SHADER 0x8B31 // GL_VERTEX_SHADER -#define RL_COMPUTE_SHADER 0x91B9 // GL_COMPUTE_SHADER - -// GL blending factors -#define RL_ZERO 0 // GL_ZERO -#define RL_ONE 1 // GL_ONE -#define RL_SRC_COLOR 0x0300 // GL_SRC_COLOR -#define RL_ONE_MINUS_SRC_COLOR 0x0301 // GL_ONE_MINUS_SRC_COLOR -#define RL_SRC_ALPHA 0x0302 // GL_SRC_ALPHA -#define RL_ONE_MINUS_SRC_ALPHA 0x0303 // GL_ONE_MINUS_SRC_ALPHA -#define RL_DST_ALPHA 0x0304 // GL_DST_ALPHA -#define RL_ONE_MINUS_DST_ALPHA 0x0305 // GL_ONE_MINUS_DST_ALPHA -#define RL_DST_COLOR 0x0306 // GL_DST_COLOR -#define RL_ONE_MINUS_DST_COLOR 0x0307 // GL_ONE_MINUS_DST_COLOR -#define RL_SRC_ALPHA_SATURATE 0x0308 // GL_SRC_ALPHA_SATURATE -#define RL_CONSTANT_COLOR 0x8001 // GL_CONSTANT_COLOR -#define RL_ONE_MINUS_CONSTANT_COLOR 0x8002 // GL_ONE_MINUS_CONSTANT_COLOR -#define RL_CONSTANT_ALPHA 0x8003 // GL_CONSTANT_ALPHA -#define RL_ONE_MINUS_CONSTANT_ALPHA 0x8004 // GL_ONE_MINUS_CONSTANT_ALPHA - -// GL blending functions/equations -#define RL_FUNC_ADD 0x8006 // GL_FUNC_ADD -#define RL_MIN 0x8007 // GL_MIN -#define RL_MAX 0x8008 // GL_MAX -#define RL_FUNC_SUBTRACT 0x800A // GL_FUNC_SUBTRACT -#define RL_FUNC_REVERSE_SUBTRACT 0x800B // GL_FUNC_REVERSE_SUBTRACT -#define RL_BLEND_EQUATION 0x8009 // GL_BLEND_EQUATION -#define RL_BLEND_EQUATION_RGB 0x8009 // GL_BLEND_EQUATION_RGB // (Same as BLEND_EQUATION) -#define RL_BLEND_EQUATION_ALPHA 0x883D // GL_BLEND_EQUATION_ALPHA -#define RL_BLEND_DST_RGB 0x80C8 // GL_BLEND_DST_RGB -#define RL_BLEND_SRC_RGB 0x80C9 // GL_BLEND_SRC_RGB -#define RL_BLEND_DST_ALPHA 0x80CA // GL_BLEND_DST_ALPHA -#define RL_BLEND_SRC_ALPHA 0x80CB // GL_BLEND_SRC_ALPHA -#define RL_BLEND_COLOR 0x8005 // GL_BLEND_COLOR - -#define RL_READ_FRAMEBUFFER 0x8CA8 // GL_READ_FRAMEBUFFER -#define RL_DRAW_FRAMEBUFFER 0x8CA9 // GL_DRAW_FRAMEBUFFER - -// Default shader vertex attribute locations -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION 0 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD 1 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL 2 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR 3 -#endif - #ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT -#define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT 4 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 5 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_INDICES - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_INDICES 6 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEINDICES - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEINDICES 7 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS 8 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_INSTANCETRANSFORM - #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_INSTANCETRANSFORM 9 -#endif - -//---------------------------------------------------------------------------------- -// Types and Structures Definition -//---------------------------------------------------------------------------------- -#if (defined(__STDC__) && __STDC_VERSION__ >= 199901L) || (defined(_MSC_VER) && _MSC_VER >= 1800) - #include -#elif !defined(__cplusplus) && !defined(bool) && !defined(RL_BOOL_TYPE) - // Boolean type -typedef enum bool { false = 0, true = !false } bool; -#endif - -#if !defined(RL_MATRIX_TYPE) -// Matrix, 4x4 components, column major, OpenGL style, right handed -typedef struct Matrix { - float m0, m4, m8, m12; // Matrix first row (4 components) - float m1, m5, m9, m13; // Matrix second row (4 components) - float m2, m6, m10, m14; // Matrix third row (4 components) - float m3, m7, m11, m15; // Matrix fourth row (4 components) -} Matrix; -#define RL_MATRIX_TYPE -#endif - -// Dynamic vertex buffers (position + texcoords + colors + indices arrays) -typedef struct rlVertexBuffer { - int elementCount; // Number of elements in the buffer (QUADS) - - float *vertices; // Vertex position (XYZ - 3 components per vertex) (shader-location = 0) - float *texcoords; // Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1) - float *normals; // Vertex normal (XYZ - 3 components per vertex) (shader-location = 2) - unsigned char *colors; // Vertex colors (RGBA - 4 components per vertex) (shader-location = 3) -#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) - unsigned int *indices; // Vertex indices (in case vertex data comes indexed) (6 indices per quad) -#endif -#if defined(GRAPHICS_API_OPENGL_ES2) - unsigned short *indices; // Vertex indices (in case vertex data comes indexed) (6 indices per quad) -#endif - unsigned int vaoId; // OpenGL Vertex Array Object id - unsigned int vboId[5]; // OpenGL Vertex Buffer Objects id (5 types of vertex data) -} rlVertexBuffer; - -// Draw call type -// NOTE: Only texture changes register a new draw, other state-change-related elements are not -// used at this moment (vaoId, shaderId, matrices), raylib just forces a batch draw call if any -// of those state-change happens (this is done in core module) -typedef struct rlDrawCall { - int mode; // Drawing mode: LINES, TRIANGLES, QUADS - int vertexCount; // Number of vertex of the draw - int vertexAlignment; // Number of vertex required for index alignment (LINES, TRIANGLES) - //unsigned int vaoId; // Vertex array id to be used on the draw -> Using RLGL.currentBatch->vertexBuffer.vaoId - //unsigned int shaderId; // Shader id to be used on the draw -> Using RLGL.currentShaderId - unsigned int textureId; // Texture id to be used on the draw -> Use to create new draw call if changes - - //Matrix projection; // Projection matrix for this draw -> Using RLGL.projection by default - //Matrix modelview; // Modelview matrix for this draw -> Using RLGL.modelview by default -} rlDrawCall; - -// rlRenderBatch type -typedef struct rlRenderBatch { - int bufferCount; // Number of vertex buffers (multi-buffering support) - int currentBuffer; // Current buffer tracking in case of multi-buffering - rlVertexBuffer *vertexBuffer; // Dynamic buffer(s) for vertex data - - rlDrawCall *draws; // Draw calls array, depends on textureId - int drawCounter; // Draw calls counter - float currentDepth; // Current depth value for next draw -} rlRenderBatch; - -// OpenGL version -typedef enum { - RL_OPENGL_11_SOFTWARE = 0, // Software rendering - RL_OPENGL_11, // OpenGL 1.1 - RL_OPENGL_21, // OpenGL 2.1 (GLSL 120) - RL_OPENGL_33, // OpenGL 3.3 (GLSL 330) - RL_OPENGL_43, // OpenGL 4.3 (using GLSL 330) - RL_OPENGL_ES_20, // OpenGL ES 2.0 (GLSL 100) - RL_OPENGL_ES_30 // OpenGL ES 3.0 (GLSL 300 es) -} rlGlVersion; - -// Trace log level -// NOTE: Organized by priority level -typedef enum { - RL_LOG_ALL = 0, // Display all logs - RL_LOG_TRACE, // Trace logging, intended for internal use only - RL_LOG_DEBUG, // Debug logging, used for internal debugging, it should be disabled on release builds - RL_LOG_INFO, // Info logging, used for program execution info - RL_LOG_WARNING, // Warning logging, used on recoverable failures - RL_LOG_ERROR, // Error logging, used on unrecoverable failures - RL_LOG_FATAL, // Fatal logging, used to abort program: exit(EXIT_FAILURE) - RL_LOG_NONE // Disable logging -} rlTraceLogLevel; - -// Texture pixel formats -// NOTE: Support depends on OpenGL version -typedef enum { - RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1, // 8 bit per pixel (no alpha) - RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA, // 8*2 bpp (2 channels) - RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5, // 16 bpp - RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8, // 24 bpp - RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1, // 16 bpp (1 bit alpha) - RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4, // 16 bpp (4 bit alpha) - RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, // 32 bpp - RL_PIXELFORMAT_UNCOMPRESSED_R32, // 32 bpp (1 channel - float) - RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32, // 32*3 bpp (3 channels - float) - RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32, // 32*4 bpp (4 channels - float) - RL_PIXELFORMAT_UNCOMPRESSED_R16, // 16 bpp (1 channel - half float) - RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16, // 16*3 bpp (3 channels - half float) - RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16, // 16*4 bpp (4 channels - half float) - RL_PIXELFORMAT_COMPRESSED_DXT1_RGB, // 4 bpp (no alpha) - RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA, // 4 bpp (1 bit alpha) - RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA, // 8 bpp - RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA, // 8 bpp - RL_PIXELFORMAT_COMPRESSED_ETC1_RGB, // 4 bpp - RL_PIXELFORMAT_COMPRESSED_ETC2_RGB, // 4 bpp - RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA, // 8 bpp - RL_PIXELFORMAT_COMPRESSED_PVRT_RGB, // 4 bpp - RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA, // 4 bpp - RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA, // 8 bpp - RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA // 2 bpp -} rlPixelFormat; - -// Texture parameters: filter mode -// NOTE 1: Filtering considers mipmaps if available in the texture -// NOTE 2: Filter is accordingly set for minification and magnification -typedef enum { - RL_TEXTURE_FILTER_POINT = 0, // No filter, just pixel approximation - RL_TEXTURE_FILTER_BILINEAR, // Linear filtering - RL_TEXTURE_FILTER_TRILINEAR, // Trilinear filtering (linear with mipmaps) - RL_TEXTURE_FILTER_ANISOTROPIC_4X, // Anisotropic filtering 4x - RL_TEXTURE_FILTER_ANISOTROPIC_8X, // Anisotropic filtering 8x - RL_TEXTURE_FILTER_ANISOTROPIC_16X, // Anisotropic filtering 16x -} rlTextureFilter; - -// Color blending modes (pre-defined) -typedef enum { - RL_BLEND_ALPHA = 0, // Blend textures considering alpha (default) - RL_BLEND_ADDITIVE, // Blend textures adding colors - RL_BLEND_MULTIPLIED, // Blend textures multiplying colors - RL_BLEND_ADD_COLORS, // Blend textures adding colors (alternative) - RL_BLEND_SUBTRACT_COLORS, // Blend textures subtracting colors (alternative) - RL_BLEND_ALPHA_PREMULTIPLY, // Blend premultiplied textures considering alpha - RL_BLEND_CUSTOM, // Blend textures using custom src/dst factors (use rlSetBlendFactors()) - RL_BLEND_CUSTOM_SEPARATE // Blend textures using custom src/dst factors (use rlSetBlendFactorsSeparate()) -} rlBlendMode; - -// Shader location point type -typedef enum { - RL_SHADER_LOC_VERTEX_POSITION = 0, // Shader location: vertex attribute: position - RL_SHADER_LOC_VERTEX_TEXCOORD01, // Shader location: vertex attribute: texcoord01 - RL_SHADER_LOC_VERTEX_TEXCOORD02, // Shader location: vertex attribute: texcoord02 - RL_SHADER_LOC_VERTEX_NORMAL, // Shader location: vertex attribute: normal - RL_SHADER_LOC_VERTEX_TANGENT, // Shader location: vertex attribute: tangent - RL_SHADER_LOC_VERTEX_COLOR, // Shader location: vertex attribute: color - RL_SHADER_LOC_MATRIX_MVP, // Shader location: matrix uniform: model-view-projection - RL_SHADER_LOC_MATRIX_VIEW, // Shader location: matrix uniform: view (camera transform) - RL_SHADER_LOC_MATRIX_PROJECTION, // Shader location: matrix uniform: projection - RL_SHADER_LOC_MATRIX_MODEL, // Shader location: matrix uniform: model (transform) - RL_SHADER_LOC_MATRIX_NORMAL, // Shader location: matrix uniform: normal - RL_SHADER_LOC_VECTOR_VIEW, // Shader location: vector uniform: view - RL_SHADER_LOC_COLOR_DIFFUSE, // Shader location: vector uniform: diffuse color - RL_SHADER_LOC_COLOR_SPECULAR, // Shader location: vector uniform: specular color - RL_SHADER_LOC_COLOR_AMBIENT, // Shader location: vector uniform: ambient color - RL_SHADER_LOC_MAP_ALBEDO, // Shader location: sampler2d texture: albedo (same as: RL_SHADER_LOC_MAP_DIFFUSE) - RL_SHADER_LOC_MAP_METALNESS, // Shader location: sampler2d texture: metalness (same as: RL_SHADER_LOC_MAP_SPECULAR) - RL_SHADER_LOC_MAP_NORMAL, // Shader location: sampler2d texture: normal - RL_SHADER_LOC_MAP_ROUGHNESS, // Shader location: sampler2d texture: roughness - RL_SHADER_LOC_MAP_OCCLUSION, // Shader location: sampler2d texture: occlusion - RL_SHADER_LOC_MAP_EMISSION, // Shader location: sampler2d texture: emission - RL_SHADER_LOC_MAP_HEIGHT, // Shader location: sampler2d texture: height - RL_SHADER_LOC_MAP_CUBEMAP, // Shader location: samplerCube texture: cubemap - RL_SHADER_LOC_MAP_IRRADIANCE, // Shader location: samplerCube texture: irradiance - RL_SHADER_LOC_MAP_PREFILTER, // Shader location: samplerCube texture: prefilter - RL_SHADER_LOC_MAP_BRDF // Shader location: sampler2d texture: brdf -} rlShaderLocationIndex; - -#define RL_SHADER_LOC_MAP_DIFFUSE RL_SHADER_LOC_MAP_ALBEDO -#define RL_SHADER_LOC_MAP_SPECULAR RL_SHADER_LOC_MAP_METALNESS - -// Shader uniform data type -typedef enum { - RL_SHADER_UNIFORM_FLOAT = 0, // Shader uniform type: float - RL_SHADER_UNIFORM_VEC2, // Shader uniform type: vec2 (2 float) - RL_SHADER_UNIFORM_VEC3, // Shader uniform type: vec3 (3 float) - RL_SHADER_UNIFORM_VEC4, // Shader uniform type: vec4 (4 float) - RL_SHADER_UNIFORM_INT, // Shader uniform type: int - RL_SHADER_UNIFORM_IVEC2, // Shader uniform type: ivec2 (2 int) - RL_SHADER_UNIFORM_IVEC3, // Shader uniform type: ivec3 (3 int) - RL_SHADER_UNIFORM_IVEC4, // Shader uniform type: ivec4 (4 int) - RL_SHADER_UNIFORM_UINT, // Shader uniform type: unsigned int - RL_SHADER_UNIFORM_UIVEC2, // Shader uniform type: uivec2 (2 unsigned int) - RL_SHADER_UNIFORM_UIVEC3, // Shader uniform type: uivec3 (3 unsigned int) - RL_SHADER_UNIFORM_UIVEC4, // Shader uniform type: uivec4 (4 unsigned int) - RL_SHADER_UNIFORM_SAMPLER2D // Shader uniform type: sampler2d -} rlShaderUniformDataType; - -// Shader attribute data types -typedef enum { - RL_SHADER_ATTRIB_FLOAT = 0, // Shader attribute type: float - RL_SHADER_ATTRIB_VEC2, // Shader attribute type: vec2 (2 float) - RL_SHADER_ATTRIB_VEC3, // Shader attribute type: vec3 (3 float) - RL_SHADER_ATTRIB_VEC4 // Shader attribute type: vec4 (4 float) -} rlShaderAttributeDataType; - -// Framebuffer attachment type -// NOTE: By default up to 8 color channels defined, but it can be more -typedef enum { - RL_ATTACHMENT_COLOR_CHANNEL0 = 0, // Framebuffer attachment type: color 0 - RL_ATTACHMENT_COLOR_CHANNEL1 = 1, // Framebuffer attachment type: color 1 - RL_ATTACHMENT_COLOR_CHANNEL2 = 2, // Framebuffer attachment type: color 2 - RL_ATTACHMENT_COLOR_CHANNEL3 = 3, // Framebuffer attachment type: color 3 - RL_ATTACHMENT_COLOR_CHANNEL4 = 4, // Framebuffer attachment type: color 4 - RL_ATTACHMENT_COLOR_CHANNEL5 = 5, // Framebuffer attachment type: color 5 - RL_ATTACHMENT_COLOR_CHANNEL6 = 6, // Framebuffer attachment type: color 6 - RL_ATTACHMENT_COLOR_CHANNEL7 = 7, // Framebuffer attachment type: color 7 - RL_ATTACHMENT_DEPTH = 100, // Framebuffer attachment type: depth - RL_ATTACHMENT_STENCIL = 200, // Framebuffer attachment type: stencil -} rlFramebufferAttachType; - -// Framebuffer texture attachment type -typedef enum { - RL_ATTACHMENT_CUBEMAP_POSITIVE_X = 0, // Framebuffer texture attachment type: cubemap, +X side - RL_ATTACHMENT_CUBEMAP_NEGATIVE_X = 1, // Framebuffer texture attachment type: cubemap, -X side - RL_ATTACHMENT_CUBEMAP_POSITIVE_Y = 2, // Framebuffer texture attachment type: cubemap, +Y side - RL_ATTACHMENT_CUBEMAP_NEGATIVE_Y = 3, // Framebuffer texture attachment type: cubemap, -Y side - RL_ATTACHMENT_CUBEMAP_POSITIVE_Z = 4, // Framebuffer texture attachment type: cubemap, +Z side - RL_ATTACHMENT_CUBEMAP_NEGATIVE_Z = 5, // Framebuffer texture attachment type: cubemap, -Z side - RL_ATTACHMENT_TEXTURE2D = 100, // Framebuffer texture attachment type: texture2d - RL_ATTACHMENT_RENDERBUFFER = 200, // Framebuffer texture attachment type: renderbuffer -} rlFramebufferAttachTextureType; - -// Face culling mode -typedef enum { - RL_CULL_FACE_FRONT = 0, - RL_CULL_FACE_BACK -} rlCullMode; - -//------------------------------------------------------------------------------------ -// Functions Declaration - Matrix operations -//------------------------------------------------------------------------------------ - -#if defined(__cplusplus) -extern "C" { // Prevents name mangling of functions -#endif - -RLAPI void rlMatrixMode(int mode); // Choose the current matrix to be transformed -RLAPI void rlPushMatrix(void); // Push the current matrix to stack -RLAPI void rlPopMatrix(void); // Pop latest inserted matrix from stack -RLAPI void rlLoadIdentity(void); // Reset current matrix to identity matrix -RLAPI void rlTranslatef(float x, float y, float z); // Multiply the current matrix by a translation matrix -RLAPI void rlRotatef(float angle, float x, float y, float z); // Multiply the current matrix by a rotation matrix -RLAPI void rlScalef(float x, float y, float z); // Multiply the current matrix by a scaling matrix -RLAPI void rlMultMatrixf(const float *matf); // Multiply the current matrix by another matrix -RLAPI void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar); -RLAPI void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar); -RLAPI void rlViewport(int x, int y, int width, int height); // Set the viewport area -RLAPI void rlSetClipPlanes(double nearPlane, double farPlane); // Set clip planes distances -RLAPI double rlGetCullDistanceNear(void); // Get cull plane distance near -RLAPI double rlGetCullDistanceFar(void); // Get cull plane distance far - -//------------------------------------------------------------------------------------ -// Functions Declaration - Vertex level operations -//------------------------------------------------------------------------------------ -RLAPI void rlBegin(int mode); // Initialize drawing mode (how to organize vertex) -RLAPI void rlEnd(void); // Finish vertex providing -RLAPI void rlVertex2i(int x, int y); // Define one vertex (position) - 2 int -RLAPI void rlVertex2f(float x, float y); // Define one vertex (position) - 2 float -RLAPI void rlVertex3f(float x, float y, float z); // Define one vertex (position) - 3 float -RLAPI void rlTexCoord2f(float x, float y); // Define one vertex (texture coordinate) - 2 float -RLAPI void rlNormal3f(float x, float y, float z); // Define one vertex (normal) - 3 float -RLAPI void rlColor4ub(unsigned char r, unsigned char g, unsigned char b, unsigned char a); // Define one vertex (color) - 4 byte -RLAPI void rlColor3f(float x, float y, float z); // Define one vertex (color) - 3 float -RLAPI void rlColor4f(float x, float y, float z, float w); // Define one vertex (color) - 4 float - -//------------------------------------------------------------------------------------ -// Functions Declaration - OpenGL style functions (common to 1.1, 3.3+, ES2) -// NOTE: This functions are used to completely abstract raylib code from OpenGL layer, -// some of them are direct wrappers over OpenGL calls, some others are custom -//------------------------------------------------------------------------------------ - -// Vertex buffers state -RLAPI bool rlEnableVertexArray(unsigned int vaoId); // Enable vertex array (VAO, if supported) -RLAPI void rlDisableVertexArray(void); // Disable vertex array (VAO, if supported) -RLAPI void rlEnableVertexBuffer(unsigned int id); // Enable vertex buffer (VBO) -RLAPI void rlDisableVertexBuffer(void); // Disable vertex buffer (VBO) -RLAPI void rlEnableVertexBufferElement(unsigned int id); // Enable vertex buffer element (VBO element) -RLAPI void rlDisableVertexBufferElement(void); // Disable vertex buffer element (VBO element) -RLAPI void rlEnableVertexAttribute(unsigned int index); // Enable vertex attribute index -RLAPI void rlDisableVertexAttribute(unsigned int index); // Disable vertex attribute index -RLAPI void rlEnableStatePointer(int vertexAttribType, void *buffer); // Enable attribute state pointer -RLAPI void rlDisableStatePointer(int vertexAttribType); // Disable attribute state pointer - -// Textures state -RLAPI void rlActiveTextureSlot(int slot); // Select and active a texture slot -RLAPI void rlEnableTexture(unsigned int id); // Enable texture -RLAPI void rlDisableTexture(void); // Disable texture -RLAPI void rlEnableTextureCubemap(unsigned int id); // Enable texture cubemap -RLAPI void rlDisableTextureCubemap(void); // Disable texture cubemap -RLAPI void rlTextureParameters(unsigned int id, int param, int value); // Set texture parameters (filter, wrap) -RLAPI void rlCubemapParameters(unsigned int id, int param, int value); // Set cubemap parameters (filter, wrap) - -// Shader state -RLAPI void rlEnableShader(unsigned int id); // Enable shader program -RLAPI void rlDisableShader(void); // Disable shader program - -// Framebuffer state -RLAPI void rlEnableFramebuffer(unsigned int id); // Enable render texture (fbo) -RLAPI void rlDisableFramebuffer(void); // Disable render texture (fbo), return to default framebuffer -RLAPI unsigned int rlGetActiveFramebuffer(void); // Get the currently active render texture (fbo), 0 for default framebuffer -RLAPI void rlActiveDrawBuffers(int count); // Activate multiple draw color buffers -RLAPI void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask); // Blit active framebuffer to main framebuffer -RLAPI void rlBindFramebuffer(unsigned int target, unsigned int framebuffer); // Bind framebuffer (FBO) - -// General render state -RLAPI void rlEnableColorBlend(void); // Enable color blending -RLAPI void rlDisableColorBlend(void); // Disable color blending -RLAPI void rlEnableDepthTest(void); // Enable depth test -RLAPI void rlDisableDepthTest(void); // Disable depth test -RLAPI void rlEnableDepthMask(void); // Enable depth write -RLAPI void rlDisableDepthMask(void); // Disable depth write -RLAPI void rlEnableBackfaceCulling(void); // Enable backface culling -RLAPI void rlDisableBackfaceCulling(void); // Disable backface culling -RLAPI void rlColorMask(bool r, bool g, bool b, bool a); // Color mask control -RLAPI void rlSetCullFace(int mode); // Set face culling mode -RLAPI void rlEnableScissorTest(void); // Enable scissor test -RLAPI void rlDisableScissorTest(void); // Disable scissor test -RLAPI void rlScissor(int x, int y, int width, int height); // Scissor test -RLAPI void rlEnablePointMode(void); // Enable point mode -RLAPI void rlDisablePointMode(void); // Disable point mode -RLAPI void rlSetPointSize(float size); // Set the point drawing size -RLAPI float rlGetPointSize(void); // Get the point drawing size -RLAPI void rlEnableWireMode(void); // Enable wire mode -RLAPI void rlDisableWireMode(void); // Disable wire mode -RLAPI void rlSetLineWidth(float width); // Set the line drawing width -RLAPI float rlGetLineWidth(void); // Get the line drawing width -RLAPI void rlEnableSmoothLines(void); // Enable line aliasing -RLAPI void rlDisableSmoothLines(void); // Disable line aliasing -RLAPI void rlEnableStereoRender(void); // Enable stereo rendering -RLAPI void rlDisableStereoRender(void); // Disable stereo rendering -RLAPI bool rlIsStereoRenderEnabled(void); // Check if stereo render is enabled - -RLAPI void rlClearColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a); // Clear color buffer with color -RLAPI void rlClearScreenBuffers(void); // Clear used screen buffers (color and depth) -RLAPI void rlCheckErrors(void); // Check and log OpenGL error codes -RLAPI void rlSetBlendMode(int mode); // Set blending mode -RLAPI void rlSetBlendFactors(int glSrcFactor, int glDstFactor, int glEquation); // Set blending mode factor and equation (using OpenGL factors) -RLAPI void rlSetBlendFactorsSeparate(int glSrcRGB, int glDstRGB, int glSrcAlpha, int glDstAlpha, int glEqRGB, int glEqAlpha); // Set blending mode factors and equations separately (using OpenGL factors) - -//------------------------------------------------------------------------------------ -// Functions Declaration - rlgl functionality -//------------------------------------------------------------------------------------ -// rlgl initialization functions -RLAPI void rlglInit(int width, int height); // Initialize rlgl (buffers, shaders, textures, states) -RLAPI void rlglClose(void); // De-initialize rlgl (buffers, shaders, textures) -RLAPI void rlLoadExtensions(void *loader); // Load OpenGL extensions (loader function required) -RLAPI void *rlGetProcAddress(const char *procName); // Get OpenGL procedure address -RLAPI int rlGetVersion(void); // Get current OpenGL version -RLAPI void rlSetFramebufferWidth(int width); // Set current framebuffer width -RLAPI int rlGetFramebufferWidth(void); // Get default framebuffer width -RLAPI void rlSetFramebufferHeight(int height); // Set current framebuffer height -RLAPI int rlGetFramebufferHeight(void); // Get default framebuffer height - -RLAPI unsigned int rlGetTextureIdDefault(void); // Get default texture id -RLAPI unsigned int rlGetShaderIdDefault(void); // Get default shader id -RLAPI int *rlGetShaderLocsDefault(void); // Get default shader locations - -// Render batch management -// NOTE: rlgl provides a default render batch to behave like OpenGL 1.1 immediate mode -// but this render batch API is exposed in case of custom batches are required -RLAPI rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements); // Load a render batch system -RLAPI void rlUnloadRenderBatch(rlRenderBatch batch); // Unload render batch system -RLAPI void rlDrawRenderBatch(rlRenderBatch *batch); // Draw render batch data (Update->Draw->Reset) -RLAPI void rlSetRenderBatchActive(rlRenderBatch *batch); // Set the active render batch for rlgl (NULL for default internal) -RLAPI void rlDrawRenderBatchActive(void); // Update and draw internal render batch -RLAPI bool rlCheckRenderBatchLimit(int vCount); // Check internal buffer overflow for a given number of vertex - -RLAPI void rlSetTexture(unsigned int id); // Set current texture for render batch and check buffers limits - -//------------------------------------------------------------------------------------------------------------------------ - -// Vertex buffers management -RLAPI unsigned int rlLoadVertexArray(void); // Load vertex array (vao) if supported -RLAPI unsigned int rlLoadVertexBuffer(const void *buffer, int size, bool dynamic); // Load a vertex buffer object -RLAPI unsigned int rlLoadVertexBufferElement(const void *buffer, int size, bool dynamic); // Load vertex buffer elements object -RLAPI void rlUpdateVertexBuffer(unsigned int bufferId, const void *data, int dataSize, int offset); // Update vertex buffer object data on GPU buffer -RLAPI void rlUpdateVertexBufferElements(unsigned int id, const void *data, int dataSize, int offset); // Update vertex buffer elements data on GPU buffer -RLAPI void rlUnloadVertexArray(unsigned int vaoId); // Unload vertex array (vao) -RLAPI void rlUnloadVertexBuffer(unsigned int vboId); // Unload vertex buffer object -RLAPI void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, int offset); // Set vertex attribute data configuration -RLAPI void rlSetVertexAttributeDivisor(unsigned int index, int divisor); // Set vertex attribute data divisor -RLAPI void rlSetVertexAttributeDefault(int locIndex, const void *value, int attribType, int count); // Set vertex attribute default value, when attribute to provided -RLAPI void rlDrawVertexArray(int offset, int count); // Draw vertex array (currently active vao) -RLAPI void rlDrawVertexArrayElements(int offset, int count, const void *buffer); // Draw vertex array elements -RLAPI void rlDrawVertexArrayInstanced(int offset, int count, int instances); // Draw vertex array (currently active vao) with instancing -RLAPI void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffer, int instances); // Draw vertex array elements with instancing - -// Textures management -RLAPI unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipmapCount); // Load texture data -RLAPI unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer); // Load depth texture/renderbuffer (to be attached to fbo) -RLAPI unsigned int rlLoadTextureCubemap(const void *data, int size, int format, int mipmapCount); // Load texture cubemap data -RLAPI void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data); // Update texture with new data on GPU -RLAPI void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType); // Get OpenGL internal formats -RLAPI const char *rlGetPixelFormatName(unsigned int format); // Get name string for pixel format -RLAPI void rlUnloadTexture(unsigned int id); // Unload texture from GPU memory -RLAPI void rlGenTextureMipmaps(unsigned int id, int width, int height, int format, int *mipmaps); // Generate mipmap data for selected texture -RLAPI void *rlReadTexturePixels(unsigned int id, int width, int height, int format); // Read texture pixel data -RLAPI unsigned char *rlReadScreenPixels(int width, int height); // Read screen pixel data (color buffer) - -// Framebuffer management (fbo) -RLAPI unsigned int rlLoadFramebuffer(void); // Load an empty framebuffer -RLAPI void rlFramebufferAttach(unsigned int fboId, unsigned int texId, int attachType, int texType, int mipLevel); // Attach texture/renderbuffer to a framebuffer -RLAPI bool rlFramebufferComplete(unsigned int id); // Verify framebuffer is complete -RLAPI void rlUnloadFramebuffer(unsigned int id); // Delete framebuffer from GPU -// WARNING: Copy and resize framebuffer functionality only defined for software backend -RLAPI void rlCopyFramebuffer(int x, int y, int width, int height, int format, void *pixels); // Copy framebuffer pixel data to internal buffer -RLAPI void rlResizeFramebuffer(int width, int height); // Resize internal framebuffer - -// Shaders management -RLAPI unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode); // Load shader from code strings -RLAPI unsigned int rlCompileShader(const char *shaderCode, int type); // Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER) -RLAPI unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fShaderId); // Load custom shader program -RLAPI void rlUnloadShaderProgram(unsigned int id); // Unload shader program -RLAPI int rlGetLocationUniform(unsigned int shaderId, const char *uniformName); // Get shader location uniform, requires shader program id -RLAPI int rlGetLocationAttrib(unsigned int shaderId, const char *attribName); // Get shader location attribute, requires shader program id -RLAPI void rlSetUniform(int locIndex, const void *value, int uniformType, int count); // Set shader value uniform -RLAPI void rlSetUniformMatrix(int locIndex, Matrix mat); // Set shader value matrix -RLAPI void rlSetUniformMatrices(int locIndex, const Matrix *mat, int count); // Set shader value matrices -RLAPI void rlSetUniformSampler(int locIndex, unsigned int textureId); // Set shader value sampler -RLAPI void rlSetShader(unsigned int id, int *locs); // Set shader currently active (id and locations) - -// Compute shader management -RLAPI unsigned int rlLoadComputeShaderProgram(unsigned int shaderId); // Load compute shader program -RLAPI void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ); // Dispatch compute shader (equivalent to *draw* for graphics pipeline) - -// Shader buffer storage object management (ssbo) -RLAPI unsigned int rlLoadShaderBuffer(unsigned int size, const void *data, int usageHint); // Load shader storage buffer object (SSBO) -RLAPI void rlUnloadShaderBuffer(unsigned int ssboId); // Unload shader storage buffer object (SSBO) -RLAPI void rlUpdateShaderBuffer(unsigned int id, const void *data, unsigned int dataSize, unsigned int offset); // Update SSBO buffer data -RLAPI void rlBindShaderBuffer(unsigned int id, unsigned int index); // Bind SSBO buffer -RLAPI void rlReadShaderBuffer(unsigned int id, void *dest, unsigned int count, unsigned int offset); // Read SSBO buffer data (GPU->CPU) -RLAPI void rlCopyShaderBuffer(unsigned int destId, unsigned int srcId, unsigned int destOffset, unsigned int srcOffset, unsigned int count); // Copy SSBO data between buffers -RLAPI unsigned int rlGetShaderBufferSize(unsigned int id); // Get SSBO buffer size - -// Buffer management -RLAPI void rlBindImageTexture(unsigned int id, unsigned int index, int format, bool readonly); // Bind image texture - -// Matrix state management -RLAPI Matrix rlGetMatrixModelview(void); // Get internal modelview matrix -RLAPI Matrix rlGetMatrixProjection(void); // Get internal projection matrix -RLAPI Matrix rlGetMatrixTransform(void); // Get internal accumulated transform matrix -RLAPI Matrix rlGetMatrixProjectionStereo(int eye); // Get internal projection matrix for stereo render (selected eye) -RLAPI Matrix rlGetMatrixViewOffsetStereo(int eye); // Get internal view offset matrix for stereo render (selected eye) -RLAPI void rlSetMatrixProjection(Matrix proj); // Set a custom projection matrix (replaces internal projection matrix) -RLAPI void rlSetMatrixModelview(Matrix view); // Set a custom modelview matrix (replaces internal modelview matrix) -RLAPI void rlSetMatrixProjectionStereo(Matrix right, Matrix left); // Set eyes projection matrices for stereo rendering -RLAPI void rlSetMatrixViewOffsetStereo(Matrix right, Matrix left); // Set eyes view offsets matrices for stereo rendering - -// Quick and dirty cube/quad buffers load->draw->unload -RLAPI void rlLoadDrawCube(void); // Load and draw a cube -RLAPI void rlLoadDrawQuad(void); // Load and draw a quad - -#if defined(__cplusplus) -} -#endif - -#endif // RLGL_H - -/*********************************************************************************** -* -* RLGL IMPLEMENTATION -* -************************************************************************************/ - -#if defined(RLGL_IMPLEMENTATION) - -// Expose OpenGL functions from glad in raylib -#if defined(BUILD_LIBTYPE_SHARED) - #define GLAD_API_CALL_EXPORT - #define GLAD_API_CALL_EXPORT_BUILD -#endif - -#if defined(GRAPHICS_API_OPENGL_11) - #if defined(GRAPHICS_API_OPENGL_11_SOFTWARE) - #define RLSW_IMPLEMENTATION - #define SW_MALLOC(sz) RL_MALLOC(sz) - #define SW_REALLOC(ptr, newSz) RL_REALLOC(ptr, newSz) - #define SW_FREE(ptr) RL_FREE(ptr) - #include "external/rlsw.h" // OpenGL 1.1 software implementation - #else - #if defined(__APPLE__) - #include // OpenGL 1.1 library for OSX - #include // OpenGL extensions library - #else - // APIENTRY for OpenGL function pointer declarations is required - #if !defined(APIENTRY) - #if defined(_WIN32) - #define APIENTRY __stdcall - #else - #define APIENTRY - #endif - #endif - // WINGDIAPI definition. Some Windows OpenGL headers need it - #if !defined(WINGDIAPI) && defined(_WIN32) - #define WINGDIAPI __declspec(dllimport) - #endif - - #include // OpenGL 1.1 library - #endif - #endif -#endif - -#if defined(GRAPHICS_API_OPENGL_33) - #define GLAD_MALLOC RL_MALLOC - #define GLAD_FREE RL_FREE - - #define GLAD_GL_IMPLEMENTATION - #include "external/glad.h" // GLAD extensions loading library, includes OpenGL headers -#endif - -#if defined(GRAPHICS_API_OPENGL_ES3) - #include // OpenGL ES 3.0 library - #define GL_GLEXT_PROTOTYPES - #include // OpenGL ES 2.0 extensions library -#elif defined(GRAPHICS_API_OPENGL_ES2) - // NOTE: OpenGL ES 2.0 can be enabled on Desktop platforms, - // in that case, functions are loaded from a custom glad for OpenGL ES 2.0 - // TODO: OpenGL ES 2.0 support shouldn't be platform-dependant, neither require GLAD - #if defined(PLATFORM_DESKTOP_GLFW) || defined(PLATFORM_DESKTOP_SDL) - #define GLAD_GLES2_IMPLEMENTATION - #include "external/glad_gles2.h" - #else - #define GL_GLEXT_PROTOTYPES - //#include // EGL library -> not required, platform layer - #include // OpenGL ES 2.0 library - #include // OpenGL ES 2.0 extensions library - #endif - - // It seems OpenGL ES 2.0 instancing entry points are not defined on Raspberry Pi - // provided headers (despite being defined in official Khronos GLES2 headers) - // TODO: Avoid raylib platform-dependant code on rlgl, it should be a completely portable library - #if defined(PLATFORM_DRM) - typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); - typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); - typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISOREXTPROC) (GLuint index, GLuint divisor); - #endif -#endif - -#include // Required for: calloc(), free() -#include // Required for: strcmp(), strlen() [Used in rlglInit(), on extensions loading] -#include // Required for: sqrtf(), sinf(), cosf(), floor(), log() - -//---------------------------------------------------------------------------------- -// Defines and Macros -//---------------------------------------------------------------------------------- -#ifndef PI - #define PI 3.14159265358979323846f -#endif -#ifndef DEG2RAD - #define DEG2RAD (PI/180.0f) -#endif -#ifndef RAD2DEG - #define RAD2DEG (180.0f/PI) -#endif - -#ifndef GL_SHADING_LANGUAGE_VERSION - #define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#endif - -#ifndef GL_COMPRESSED_RGB_S3TC_DXT1_EXT - #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#endif -#ifndef GL_COMPRESSED_RGBA_S3TC_DXT1_EXT - #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#endif -#ifndef GL_COMPRESSED_RGBA_S3TC_DXT3_EXT - #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 -#endif -#ifndef GL_COMPRESSED_RGBA_S3TC_DXT5_EXT - #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 -#endif -#ifndef GL_ETC1_RGB8_OES - #define GL_ETC1_RGB8_OES 0x8D64 -#endif -#ifndef GL_COMPRESSED_RGB8_ETC2 - #define GL_COMPRESSED_RGB8_ETC2 0x9274 -#endif -#ifndef GL_COMPRESSED_RGBA8_ETC2_EAC - #define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 -#endif -#ifndef GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG - #define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 -#endif -#ifndef GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG - #define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 -#endif -#ifndef GL_COMPRESSED_RGBA_ASTC_4x4_KHR - #define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93b0 -#endif -#ifndef GL_COMPRESSED_RGBA_ASTC_8x8_KHR - #define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93b7 -#endif - -#ifndef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT - #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF -#endif -#ifndef GL_TEXTURE_MAX_ANISOTROPY_EXT - #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE -#endif - -#ifndef GL_PROGRAM_POINT_SIZE - #define GL_PROGRAM_POINT_SIZE 0x8642 -#endif - -#ifndef GL_LINE_WIDTH - #define GL_LINE_WIDTH 0x0B21 -#endif - -#if defined(GRAPHICS_API_OPENGL_11) - #define GL_UNSIGNED_SHORT_5_6_5 0x8363 - #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 - #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#endif - -#if defined(GRAPHICS_API_OPENGL_21) - #define GL_LUMINANCE 0x1909 - #define GL_LUMINANCE_ALPHA 0x190A -#endif - -#if defined(GRAPHICS_API_OPENGL_ES2) - #define glClearDepth glClearDepthf - #if !defined(GRAPHICS_API_OPENGL_ES3) - #define GL_READ_FRAMEBUFFER GL_FRAMEBUFFER - #define GL_DRAW_FRAMEBUFFER GL_FRAMEBUFFER - #endif -#endif - -// Default shader vertex attribute names to set location points -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION - #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD - #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL - #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR - #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT - #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 - #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_BONEINDICES - #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEINDICES "vertexBoneIndices" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEINDICES -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS - #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS "vertexBoneWeights" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS -#endif -#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_BONEMATRICES - #define RL_DEFAULT_SHADER_UNIFORM_NAME_BONEMATRICES "boneMatrices" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEMATRICES -#endif -#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_INSTANCETRANSFORM - #define RL_DEFAULT_SHADER_ATTRIB_NAME_INSTANCETRANSFORM "instanceTransform" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_INSTANCETRANSFORM -#endif - -#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_MVP - #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix -#endif -#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW - #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix -#endif -#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION - #define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix -#endif -#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL - #define RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL "matModel" // model matrix -#endif -#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL - #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView)) -#endif -#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR - #define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color) -#endif -#ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 - #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0) -#endif -#ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 - #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 "texture1" // texture1 (texture slot active 1) -#endif -#ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 - #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 "texture2" // texture2 (texture slot active 2) -#endif -#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_BONEMATRICES - #define RL_DEFAULT_SHADER_UNIFORM_NAME_BONEMATRICES "boneMatrices" // bone matrices (required for GPU skinning) -#endif - -//---------------------------------------------------------------------------------- -// Module Types and Structures Definition -//---------------------------------------------------------------------------------- -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - -typedef void *(*rlglLoadProc)(const char *name); // OpenGL extension functions loader signature (same as GLADloadproc) - -typedef struct rlglData { - rlRenderBatch *currentBatch; // Current render batch - rlRenderBatch defaultBatch; // Default internal render batch - - rlglLoadProc loader; // OpenGL function loader - - struct { - int vertexCounter; // Current active render batch vertex counter (generic, used for all batches) - float texcoordx, texcoordy; // Current active texture coordinate (added on glVertex*()) - float normalx, normaly, normalz; // Current active normal (added on glVertex*()) - unsigned char colorr, colorg, colorb, colora; // Current active color (added on glVertex*()) - - int currentMatrixMode; // Current matrix mode - Matrix *currentMatrix; // Current matrix pointer - Matrix modelview; // Default modelview matrix - Matrix projection; // Default projection matrix - Matrix transform; // Transform matrix to be used with rlTranslate, rlRotate, rlScale - bool transformRequired; // Require transform matrix application to current draw-call vertex (if required) - Matrix stack[RL_MAX_MATRIX_STACK_SIZE];// Matrix stack for push/pop - int stackCounter; // Matrix stack counter - - unsigned int currentTextureId; // Current texture id to be used on glBegin - unsigned int defaultTextureId; // Default texture used on shapes/poly drawing (required by shader) - unsigned int activeTextureId[RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS]; // Active texture ids to be enabled on batch drawing (0 active by default) - unsigned int defaultVShaderId; // Default vertex shader id (used by default shader program) - unsigned int defaultFShaderId; // Default fragment shader id (used by default shader program) - unsigned int defaultShaderId; // Default shader program id, supports vertex color and diffuse texture - int *defaultShaderLocs; // Default shader locations pointer to be used on rendering - unsigned int currentShaderId; // Current shader id to be used on rendering (by default, defaultShaderId) - int *currentShaderLocs; // Current shader locations pointer to be used on rendering (by default, defaultShaderLocs) - - bool stereoRender; // Stereo rendering flag - Matrix projectionStereo[2]; // VR stereo rendering eyes projection matrices - Matrix viewOffsetStereo[2]; // VR stereo rendering eyes view offset matrices - - // Blending variables - int currentBlendMode; // Blending mode active - int glBlendSrcFactor; // Blending source factor - int glBlendDstFactor; // Blending destination factor - int glBlendEquation; // Blending equation - int glBlendSrcFactorRGB; // Blending source RGB factor - int glBlendDestFactorRGB; // Blending destination RGB factor - int glBlendSrcFactorAlpha; // Blending source alpha factor - int glBlendDestFactorAlpha; // Blending destination alpha factor - int glBlendEquationRGB; // Blending equation for RGB - int glBlendEquationAlpha; // Blending equation for alpha - bool glCustomBlendModeModified; // Custom blending factor and equation modification status - - int framebufferWidth; // Current framebuffer width - int framebufferHeight; // Current framebuffer height - - } State; // Renderer state - struct { - bool vao; // VAO support (OpenGL ES2 could not support VAO extension) (GL_ARB_vertex_array_object) - bool instancing; // Instancing supported (GL_ANGLE_instanced_arrays, GL_EXT_draw_instanced + GL_EXT_instanced_arrays) - bool texNPOT; // NPOT textures full support (GL_ARB_texture_non_power_of_two, GL_OES_texture_npot) - bool texDepth; // Depth textures supported (GL_ARB_depth_texture, GL_OES_depth_texture) - bool texDepthWebGL; // Depth textures supported WebGL specific (GL_WEBGL_depth_texture) - bool texFloat32; // float textures support (32 bit per channel) (GL_OES_texture_float) - bool texFloat16; // half float textures support (16 bit per channel) (GL_OES_texture_half_float) - bool texCompDXT; // DDS texture compression support (GL_EXT_texture_compression_s3tc, GL_WEBGL_compressed_texture_s3tc, GL_WEBKIT_WEBGL_compressed_texture_s3tc) - bool texCompETC1; // ETC1 texture compression support (GL_OES_compressed_ETC1_RGB8_texture, GL_WEBGL_compressed_texture_etc1) - bool texCompETC2; // ETC2/EAC texture compression support (GL_ARB_ES3_compatibility) - bool texCompPVRT; // PVR texture compression support (GL_IMG_texture_compression_pvrtc) - bool texCompASTC; // ASTC texture compression support (GL_KHR_texture_compression_astc_hdr, GL_KHR_texture_compression_astc_ldr) - bool texMirrorClamp; // Clamp mirror wrap mode supported (GL_EXT_texture_mirror_clamp) - bool texAnisoFilter; // Anisotropic texture filtering support (GL_EXT_texture_filter_anisotropic) - bool computeShader; // Compute shaders support (GL_ARB_compute_shader) - bool ssbo; // Shader storage buffer object support (GL_ARB_shader_storage_buffer_object) - - float maxAnisotropyLevel; // Maximum anisotropy level supported (minimum is 2.0f) - int maxDepthBits; // Maximum bits for depth component - - } ExtSupported; // Extensions supported flags -} rlglData; - -#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 - -//---------------------------------------------------------------------------------- -// Global Variables Definition -//---------------------------------------------------------------------------------- -static double rlCullDistanceNear = RL_CULL_DISTANCE_NEAR; -static double rlCullDistanceFar = RL_CULL_DISTANCE_FAR; - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) -static rlglData RLGL = { 0 }; -#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 -static bool isGpuReady = false; - -#if defined(GRAPHICS_API_OPENGL_ES2) && !defined(GRAPHICS_API_OPENGL_ES3) -// NOTE: VAO functionality is exposed through extensions (OES) -static PFNGLGENVERTEXARRAYSOESPROC glGenVertexArrays = NULL; -static PFNGLBINDVERTEXARRAYOESPROC glBindVertexArray = NULL; -static PFNGLDELETEVERTEXARRAYSOESPROC glDeleteVertexArrays = NULL; - -// NOTE: Instancing functionality could also be available through extension -static PFNGLDRAWARRAYSINSTANCEDEXTPROC glDrawArraysInstanced = NULL; -static PFNGLDRAWELEMENTSINSTANCEDEXTPROC glDrawElementsInstanced = NULL; -static PFNGLVERTEXATTRIBDIVISOREXTPROC glVertexAttribDivisor = NULL; -#endif - -//---------------------------------------------------------------------------------- -// Module Functions Declaration -//---------------------------------------------------------------------------------- -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) -static void rlLoadShaderDefault(void); // Load default shader -static void rlUnloadShaderDefault(void); // Unload default shader -#if RLGL_SHOW_GL_DETAILS_INFO -static const char *rlGetCompressedFormatName(int format); // Get compressed format official GL identifier name -#endif -#endif - -static int rlGetPixelDataSize(int width, int height, int format); // Get pixel data size in bytes (image or texture) - -static Matrix rlMatrixIdentity(void); // Get identity matrix -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) -// Auxiliar matrix math functions -typedef struct rl_float16 { float v[16]; } rl_float16; -static rl_float16 rlMatrixToFloatV(Matrix mat); // Get float array of matrix data -#define rlMatrixToFloat(mat) (rlMatrixToFloatV(mat).v) // Get float vector for Matrix -static Matrix rlMatrixMultiply(Matrix left, Matrix right); // Multiply two matrices -static Matrix rlMatrixTranspose(Matrix mat); // Transposes provided matrix -static Matrix rlMatrixInvert(Matrix mat); // Invert provided matrix -#endif - -//---------------------------------------------------------------------------------- -// Module Functions Definition - Matrix operations -//---------------------------------------------------------------------------------- - -#if defined(GRAPHICS_API_OPENGL_11) -// Fallback to OpenGL 1.1 function calls -//--------------------------------------- -void rlMatrixMode(int mode) -{ - switch (mode) - { - case RL_PROJECTION: glMatrixMode(GL_PROJECTION); break; - case RL_MODELVIEW: glMatrixMode(GL_MODELVIEW); break; - case RL_TEXTURE: glMatrixMode(GL_TEXTURE); break; - default: break; - } -} - -void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar) -{ - glFrustum(left, right, bottom, top, znear, zfar); -} - -void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar) -{ - glOrtho(left, right, bottom, top, znear, zfar); -} - -void rlPushMatrix(void) { glPushMatrix(); } -void rlPopMatrix(void) { glPopMatrix(); } -void rlLoadIdentity(void) { glLoadIdentity(); } -void rlTranslatef(float x, float y, float z) { glTranslatef(x, y, z); } -void rlRotatef(float angle, float x, float y, float z) { glRotatef(angle, x, y, z); } -void rlScalef(float x, float y, float z) { glScalef(x, y, z); } -void rlMultMatrixf(const float *matf) { glMultMatrixf(matf); } -#endif -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) -// Choose the current matrix to be transformed -void rlMatrixMode(int mode) -{ - if (mode == RL_PROJECTION) RLGL.State.currentMatrix = &RLGL.State.projection; - else if (mode == RL_MODELVIEW) RLGL.State.currentMatrix = &RLGL.State.modelview; - //else if (mode == RL_TEXTURE) // Not supported - - RLGL.State.currentMatrixMode = mode; -} - -// Push the current matrix into RLGL.State.stack -void rlPushMatrix(void) -{ - if (RLGL.State.stackCounter >= RL_MAX_MATRIX_STACK_SIZE) TRACELOG(RL_LOG_ERROR, "RLGL: Matrix stack overflow (RL_MAX_MATRIX_STACK_SIZE)"); - - if (RLGL.State.currentMatrixMode == RL_MODELVIEW) - { - RLGL.State.transformRequired = true; - RLGL.State.currentMatrix = &RLGL.State.transform; - } - - RLGL.State.stack[RLGL.State.stackCounter] = *RLGL.State.currentMatrix; - RLGL.State.stackCounter++; -} - -// Pop latest inserted matrix from RLGL.State.stack -void rlPopMatrix(void) -{ - if (RLGL.State.stackCounter > 0) - { - Matrix mat = RLGL.State.stack[RLGL.State.stackCounter - 1]; - *RLGL.State.currentMatrix = mat; - RLGL.State.stackCounter--; - } - - if ((RLGL.State.stackCounter == 0) && (RLGL.State.currentMatrixMode == RL_MODELVIEW)) - { - RLGL.State.currentMatrix = &RLGL.State.modelview; - RLGL.State.transformRequired = false; - } -} - -// Reset current matrix to identity matrix -void rlLoadIdentity(void) -{ - *RLGL.State.currentMatrix = rlMatrixIdentity(); -} - -// Multiply the current matrix by a translation matrix -void rlTranslatef(float x, float y, float z) -{ - Matrix matTranslation = rlMatrixIdentity(); - - // Set translation component of matrix - matTranslation.m12 = x; - matTranslation.m13 = y; - matTranslation.m14 = z; - - // NOTE: Transposing matrix by multiplication order - *RLGL.State.currentMatrix = rlMatrixMultiply(matTranslation, *RLGL.State.currentMatrix); -} - -// Multiply the current matrix by a rotation matrix -// NOTE: The provided angle must be in degrees -void rlRotatef(float angle, float x, float y, float z) -{ - Matrix matRotation = rlMatrixIdentity(); - - // Axis vector (x, y, z) normalization - float lengthSquared = x*x + y*y + z*z; - if ((lengthSquared != 1.0f) && (lengthSquared != 0.0f)) - { - float inverseLength = 1.0f/sqrtf(lengthSquared); - x *= inverseLength; - y *= inverseLength; - z *= inverseLength; - } - - // Rotation matrix generation - float sinres = sinf(DEG2RAD*angle); - float cosres = cosf(DEG2RAD*angle); - float t = 1.0f - cosres; - - matRotation.m0 = x*x*t + cosres; - matRotation.m1 = y*x*t + z*sinres; - matRotation.m2 = z*x*t - y*sinres; - matRotation.m3 = 0.0f; - - matRotation.m4 = x*y*t - z*sinres; - matRotation.m5 = y*y*t + cosres; - matRotation.m6 = z*y*t + x*sinres; - matRotation.m7 = 0.0f; - - matRotation.m8 = x*z*t + y*sinres; - matRotation.m9 = y*z*t - x*sinres; - matRotation.m10 = z*z*t + cosres; - matRotation.m11 = 0.0f; - - matRotation.m12 = 0.0f; - matRotation.m13 = 0.0f; - matRotation.m14 = 0.0f; - matRotation.m15 = 1.0f; - - // NOTE: Transposing matrix by multiplication order - *RLGL.State.currentMatrix = rlMatrixMultiply(matRotation, *RLGL.State.currentMatrix); -} - -// Multiply the current matrix by a scaling matrix -void rlScalef(float x, float y, float z) -{ - Matrix matScale = rlMatrixIdentity(); - - // Set scale component of matrix - matScale.m0 = x; - matScale.m5 = y; - matScale.m10 = z; - - // NOTE: Transposing matrix by multiplication order - *RLGL.State.currentMatrix = rlMatrixMultiply(matScale, *RLGL.State.currentMatrix); -} - -// Multiply the current matrix by another matrix -void rlMultMatrixf(const float *matf) -{ - // Matrix creation from array - // Conversion from column-major to row-major memory order - Matrix mat = { matf[0], matf[4], matf[8], matf[12], - matf[1], matf[5], matf[9], matf[13], - matf[2], matf[6], matf[10], matf[14], - matf[3], matf[7], matf[11], matf[15] }; - - *RLGL.State.currentMatrix = rlMatrixMultiply(mat, *RLGL.State.currentMatrix); -} - -// Multiply the current matrix by a perspective matrix generated by parameters -void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar) -{ - Matrix matFrustum = { 0 }; - - float rl = (float)(right - left); - float tb = (float)(top - bottom); - float fn = (float)(zfar - znear); - - matFrustum.m0 = ((float) znear*2.0f)/rl; - matFrustum.m1 = 0.0f; - matFrustum.m2 = 0.0f; - matFrustum.m3 = 0.0f; - - matFrustum.m4 = 0.0f; - matFrustum.m5 = ((float) znear*2.0f)/tb; - matFrustum.m6 = 0.0f; - matFrustum.m7 = 0.0f; - - matFrustum.m8 = ((float)right + (float)left)/rl; - matFrustum.m9 = ((float)top + (float)bottom)/tb; - matFrustum.m10 = -((float)zfar + (float)znear)/fn; - matFrustum.m11 = -1.0f; - - matFrustum.m12 = 0.0f; - matFrustum.m13 = 0.0f; - matFrustum.m14 = -((float)zfar*(float)znear*2.0f)/fn; - matFrustum.m15 = 0.0f; - - *RLGL.State.currentMatrix = rlMatrixMultiply(*RLGL.State.currentMatrix, matFrustum); -} - -// Multiply the current matrix by an orthographic matrix generated by parameters -void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar) -{ - // NOTE: If left-right and top-botton values are equal it could create a division by zero, - // response to it is platform/compiler dependant - Matrix matOrtho = { 0 }; - - float rl = (float)(right - left); - float tb = (float)(top - bottom); - float fn = (float)(zfar - znear); - - matOrtho.m0 = 2.0f/rl; - matOrtho.m1 = 0.0f; - matOrtho.m2 = 0.0f; - matOrtho.m3 = 0.0f; - matOrtho.m4 = 0.0f; - matOrtho.m5 = 2.0f/tb; - matOrtho.m6 = 0.0f; - matOrtho.m7 = 0.0f; - matOrtho.m8 = 0.0f; - matOrtho.m9 = 0.0f; - matOrtho.m10 = -2.0f/fn; - matOrtho.m11 = 0.0f; - matOrtho.m12 = -((float)left + (float)right)/rl; - matOrtho.m13 = -((float)top + (float)bottom)/tb; - matOrtho.m14 = -((float)zfar + (float)znear)/fn; - matOrtho.m15 = 1.0f; - - *RLGL.State.currentMatrix = rlMatrixMultiply(*RLGL.State.currentMatrix, matOrtho); -} -#endif - -// Set the viewport area (transformation from normalized device coordinates to window coordinates) -void rlViewport(int x, int y, int width, int height) -{ - glViewport(x, y, width, height); -} - -// Set clip planes distances -void rlSetClipPlanes(double nearPlane, double farPlane) -{ - rlCullDistanceNear = nearPlane; - rlCullDistanceFar = farPlane; -} - -// Get cull plane distance near -double rlGetCullDistanceNear(void) -{ - return rlCullDistanceNear; -} - -// Get cull plane distance far -double rlGetCullDistanceFar(void) -{ - return rlCullDistanceFar; -} - -//---------------------------------------------------------------------------------- -// Module Functions Definition - Vertex level operations -//---------------------------------------------------------------------------------- -#if defined(GRAPHICS_API_OPENGL_11) -// Fallback to OpenGL 1.1 function calls -//--------------------------------------- -void rlBegin(int mode) -{ - switch (mode) - { - case RL_LINES: glBegin(GL_LINES); break; - case RL_TRIANGLES: glBegin(GL_TRIANGLES); break; - case RL_QUADS: glBegin(GL_QUADS); break; - default: break; - } -} - -void rlEnd(void) { glEnd(); } -void rlVertex2i(int x, int y) { glVertex2i(x, y); } -void rlVertex2f(float x, float y) { glVertex2f(x, y); } -void rlVertex3f(float x, float y, float z) { glVertex3f(x, y, z); } -void rlTexCoord2f(float x, float y) { glTexCoord2f(x, y); } -void rlNormal3f(float x, float y, float z) { glNormal3f(x, y, z); } -void rlColor4ub(unsigned char r, unsigned char g, unsigned char b, unsigned char a) { glColor4ub(r, g, b, a); } -void rlColor3f(float x, float y, float z) { glColor3f(x, y, z); } -void rlColor4f(float x, float y, float z, float w) { glColor4f(x, y, z, w); } -#endif -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) -// Initialize drawing mode (how to organize vertex) -void rlBegin(int mode) -{ - // Draw mode can be RL_LINES, RL_TRIANGLES and RL_QUADS - // NOTE: In all three cases, vertex are accumulated over default internal vertex buffer - if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode != mode) - { - if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount > 0) - { - // Make sure current RLGL.currentBatch->draws[i].vertexCount is aligned a multiple of 4, - // that way, following QUADS drawing will keep aligned with index processing - // It implies adding some extra alignment vertex at the end of the draw, - // those vertex are not processed but they are considered as an additional offset - // for the next set of vertex to be drawn - if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount : RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4); - else if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? 1 : (4 - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4))); - else RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = 0; - - if (!rlCheckRenderBatchLimit(RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment)) - { - RLGL.State.vertexCounter += RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment; - RLGL.currentBatch->drawCounter++; - } - } - - if (RLGL.currentBatch->drawCounter >= RL_DEFAULT_BATCH_DRAWCALLS) rlDrawRenderBatch(RLGL.currentBatch); - - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode = mode; - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = RLGL.State.currentTextureId; - RLGL.State.currentTextureId = RLGL.State.defaultTextureId; - } -} - -// Finish vertex providing -void rlEnd(void) -{ - // NOTE: Depth increment is dependant on rlOrtho(): z-near and z-far values, - // as well as depth buffer bit-depth (16bit or 24bit or 32bit) - // Correct increment formula would be: depthInc = (zfar - znear)/pow(2, bits) - RLGL.currentBatch->currentDepth += (1.0f/20000.0f); -} - -// Define one vertex (position) -// NOTE: Vertex position data is the basic information required for drawing -void rlVertex3f(float x, float y, float z) -{ - float tx = x; - float ty = y; - float tz = z; - - // Transform provided vector if required - if (RLGL.State.transformRequired) - { - tx = RLGL.State.transform.m0*x + RLGL.State.transform.m4*y + RLGL.State.transform.m8*z + RLGL.State.transform.m12; - ty = RLGL.State.transform.m1*x + RLGL.State.transform.m5*y + RLGL.State.transform.m9*z + RLGL.State.transform.m13; - tz = RLGL.State.transform.m2*x + RLGL.State.transform.m6*y + RLGL.State.transform.m10*z + RLGL.State.transform.m14; - } - - // WARNING: Be careful with primitives breaking when launching a new batch! - // RL_LINES comes in pairs, RL_TRIANGLES come in groups of 3 vertices and RL_QUADS come in groups of 4 vertices - // Checking current draw.mode when a new vertex is required and finish the batch only if the draw.mode draw.vertexCount is %2, %3 or %4 - if (RLGL.State.vertexCounter > (RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4 - 4)) - { - if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) && - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%2 == 0)) - { - // Reached the maximum number of vertices for RL_LINES drawing - // Launch a draw call but keep current state for next vertices comming - // NOTE: Adding +1 vertex to the check for some safety - rlCheckRenderBatchLimit(2 + 1); - } - else if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) && - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%3 == 0)) - { - rlCheckRenderBatchLimit(3 + 1); - } - else if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_QUADS) && - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4 == 0)) - { - rlCheckRenderBatchLimit(4 + 1); - } - } - - // Add vertices - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter] = tx; - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter + 1] = ty; - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter + 2] = tz; - - // Add current texcoord - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter] = RLGL.State.texcoordx; - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter + 1] = RLGL.State.texcoordy; - - // Add current normal - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter] = RLGL.State.normalx; - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter + 1] = RLGL.State.normaly; - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter + 2] = RLGL.State.normalz; - - // Add current color - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter] = RLGL.State.colorr; - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 1] = RLGL.State.colorg; - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 2] = RLGL.State.colorb; - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 3] = RLGL.State.colora; - - RLGL.State.vertexCounter++; - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount++; -} - -// Define one vertex (position) -void rlVertex2f(float x, float y) -{ - rlVertex3f(x, y, RLGL.currentBatch->currentDepth); -} - -// Define one vertex (position) -void rlVertex2i(int x, int y) -{ - rlVertex3f((float)x, (float)y, RLGL.currentBatch->currentDepth); -} - -// Define one vertex (texture coordinate) -// NOTE: Texture coordinates are limited to QUADS only -void rlTexCoord2f(float x, float y) -{ - RLGL.State.texcoordx = x; - RLGL.State.texcoordy = y; -} - -// Define one vertex (normal) -// NOTE: Normals limited to TRIANGLES only? -void rlNormal3f(float x, float y, float z) -{ - float normalx = x; - float normaly = y; - float normalz = z; - if (RLGL.State.transformRequired) - { - normalx = RLGL.State.transform.m0*x + RLGL.State.transform.m4*y + RLGL.State.transform.m8*z; - normaly = RLGL.State.transform.m1*x + RLGL.State.transform.m5*y + RLGL.State.transform.m9*z; - normalz = RLGL.State.transform.m2*x + RLGL.State.transform.m6*y + RLGL.State.transform.m10*z; - } - float length = sqrtf(normalx*normalx + normaly*normaly + normalz*normalz); - if (length != 0.0f) - { - float ilength = 1.0f/length; - normalx *= ilength; - normaly *= ilength; - normalz *= ilength; - } - RLGL.State.normalx = normalx; - RLGL.State.normaly = normaly; - RLGL.State.normalz = normalz; -} - -// Define one vertex (color) -void rlColor4ub(unsigned char x, unsigned char y, unsigned char z, unsigned char w) -{ - RLGL.State.colorr = x; - RLGL.State.colorg = y; - RLGL.State.colorb = z; - RLGL.State.colora = w; -} - -// Define one vertex (color) -void rlColor4f(float r, float g, float b, float a) -{ - rlColor4ub((unsigned char)(r*255), (unsigned char)(g*255), (unsigned char)(b*255), (unsigned char)(a*255)); -} - -// Define one vertex (color) -void rlColor3f(float x, float y, float z) -{ - rlColor4ub((unsigned char)(x*255), (unsigned char)(y*255), (unsigned char)(z*255), 255); -} - -#endif - -//-------------------------------------------------------------------------------------- -// Module Functions Definition - OpenGL style functions (common to 1.1, 3.3+, ES2) -//-------------------------------------------------------------------------------------- - -// Set current texture to use -void rlSetTexture(unsigned int id) -{ - if (id == 0) - { -#if defined(GRAPHICS_API_OPENGL_11) - rlDisableTexture(); -#else - // NOTE: If quads batch limit is reached, force a draw call and next batch starts - if (RLGL.State.vertexCounter >= - RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4) - { - rlDrawRenderBatch(RLGL.currentBatch); - } - RLGL.State.currentTextureId = RLGL.State.defaultTextureId; -#endif - } - else - { -#if defined(GRAPHICS_API_OPENGL_11) - rlEnableTexture(id); -#else - RLGL.State.currentTextureId = id; - if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId != id) - { - if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount > 0) - { - // Make sure current RLGL.currentBatch->draws[i].vertexCount is aligned a multiple of 4, - // that way, following QUADS drawing will keep aligned with index processing - // It implies adding some extra alignment vertex at the end of the draw, - // those vertex are not processed but they are considered as an additional offset - // for the next set of vertex to be drawn - if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount : RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4); - else if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? 1 : (4 - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4))); - else RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = 0; - - if (!rlCheckRenderBatchLimit(RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment)) - { - RLGL.State.vertexCounter += RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment; - - RLGL.currentBatch->drawCounter++; - - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode = RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 2].mode; - - } - } - - if (RLGL.currentBatch->drawCounter >= RL_DEFAULT_BATCH_DRAWCALLS) rlDrawRenderBatch(RLGL.currentBatch); - - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = id; - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount = 0; - } -#endif - } -} - -// Select and active a texture slot -void rlActiveTextureSlot(int slot) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glActiveTexture(GL_TEXTURE0 + slot); -#endif -} - -// Enable texture -void rlEnableTexture(unsigned int id) -{ -#if defined(GRAPHICS_API_OPENGL_11) - glEnable(GL_TEXTURE_2D); -#endif - glBindTexture(GL_TEXTURE_2D, id); -} - -// Disable texture -void rlDisableTexture(void) -{ -#if defined(GRAPHICS_API_OPENGL_11) - glDisable(GL_TEXTURE_2D); -#endif - glBindTexture(GL_TEXTURE_2D, 0); -} - -// Enable texture cubemap -void rlEnableTextureCubemap(unsigned int id) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindTexture(GL_TEXTURE_CUBE_MAP, id); -#endif -} - -// Disable texture cubemap -void rlDisableTextureCubemap(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindTexture(GL_TEXTURE_CUBE_MAP, 0); -#endif -} - -// Set texture parameters (wrap mode/filter mode) -void rlTextureParameters(unsigned int id, int param, int value) -{ - glBindTexture(GL_TEXTURE_2D, id); - - switch (param) - { - case RL_TEXTURE_WRAP_S: - case RL_TEXTURE_WRAP_T: - { - if (value == RL_TEXTURE_WRAP_MIRROR_CLAMP) - { -#if !defined(GRAPHICS_API_OPENGL_11) - if (RLGL.ExtSupported.texMirrorClamp) glTexParameteri(GL_TEXTURE_2D, param, value); - else TRACELOG(RL_LOG_WARNING, "GL: Clamp mirror wrap mode not supported (GL_MIRROR_CLAMP_EXT)"); -#endif - } - else glTexParameteri(GL_TEXTURE_2D, param, value); - } break; - case RL_TEXTURE_MAG_FILTER: - case RL_TEXTURE_MIN_FILTER: glTexParameteri(GL_TEXTURE_2D, param, value); break; - case RL_TEXTURE_FILTER_ANISOTROPIC: - { -#if !defined(GRAPHICS_API_OPENGL_11) - // Reset anisotropy filter, in case it was set - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0f); - - if (value <= RLGL.ExtSupported.maxAnisotropyLevel) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); - else if (RLGL.ExtSupported.maxAnisotropyLevel > 0.0f) - { - TRACELOG(RL_LOG_WARNING, "GL: Maximum anisotropic filter level supported is %iX", id, (int)RLGL.ExtSupported.maxAnisotropyLevel); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); - } - else TRACELOG(RL_LOG_WARNING, "GL: Anisotropic filtering not supported"); -#endif - } break; -#if defined(GRAPHICS_API_OPENGL_33) - case RL_TEXTURE_MIPMAP_BIAS_RATIO: glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_LOD_BIAS, value/100.0f); -#endif - default: break; - } - - glBindTexture(GL_TEXTURE_2D, 0); -} - -// Set cubemap parameters (wrap mode/filter mode) -void rlCubemapParameters(unsigned int id, int param, int value) -{ -#if !defined(GRAPHICS_API_OPENGL_11) - glBindTexture(GL_TEXTURE_CUBE_MAP, id); - - // Reset anisotropy filter, in case it was set - glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0f); - - switch (param) - { - case RL_TEXTURE_WRAP_S: - case RL_TEXTURE_WRAP_T: - { - if (value == RL_TEXTURE_WRAP_MIRROR_CLAMP) - { - if (RLGL.ExtSupported.texMirrorClamp) glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); - else TRACELOG(RL_LOG_WARNING, "GL: Clamp mirror wrap mode not supported (GL_MIRROR_CLAMP_EXT)"); - } - else glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); - } break; - case RL_TEXTURE_MAG_FILTER: - case RL_TEXTURE_MIN_FILTER: glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); break; - case RL_TEXTURE_FILTER_ANISOTROPIC: - { - if (value <= RLGL.ExtSupported.maxAnisotropyLevel) glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); - else if (RLGL.ExtSupported.maxAnisotropyLevel > 0.0f) - { - TRACELOG(RL_LOG_WARNING, "GL: Maximum anisotropic filter level supported is %iX", id, (int)RLGL.ExtSupported.maxAnisotropyLevel); - glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); - } - else TRACELOG(RL_LOG_WARNING, "GL: Anisotropic filtering not supported"); - } break; -#if defined(GRAPHICS_API_OPENGL_33) - case RL_TEXTURE_MIPMAP_BIAS_RATIO: glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_LOD_BIAS, value/100.0f); -#endif - default: break; - } - - glBindTexture(GL_TEXTURE_CUBE_MAP, 0); -#endif -} - -// Enable shader program -void rlEnableShader(unsigned int id) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) - glUseProgram(id); -#endif -} - -// Disable shader program -void rlDisableShader(void) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) - glUseProgram(0); -#endif -} - -// Enable rendering to texture (fbo) -void rlEnableFramebuffer(unsigned int id) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) - glBindFramebuffer(GL_FRAMEBUFFER, id); -#endif -} - -// return the active render texture (fbo) -unsigned int rlGetActiveFramebuffer(void) -{ - GLint fboId = 0; -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) - glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &fboId); -#endif - return fboId; -} - -// Disable rendering to texture -void rlDisableFramebuffer(void) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) - glBindFramebuffer(GL_FRAMEBUFFER, 0); -#endif -} - -// Blit active framebuffer to main framebuffer -void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) - glBlitFramebuffer(srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, bufferMask, GL_NEAREST); -#endif -} - -// Bind framebuffer object (fbo) -void rlBindFramebuffer(unsigned int target, unsigned int framebuffer) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) - glBindFramebuffer(target, framebuffer); -#endif -} - -// Activate multiple draw color buffers -// NOTE: One color buffer is always active by default -void rlActiveDrawBuffers(int count) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) - // NOTE: Maximum number of draw buffers supported is implementation dependant, - // it can be queried with glGet*() but it must be at least 8 - //GLint maxDrawBuffers = 0; - //glGetIntegerv(GL_MAX_DRAW_BUFFERS, &maxDrawBuffers); - - if (count > 0) - { - if (count > 8) TRACELOG(RL_LOG_WARNING, "GL: Max color buffers limited to 8"); - else - { - unsigned int buffers[8] = { - GL_COLOR_ATTACHMENT0, - GL_COLOR_ATTACHMENT1, - GL_COLOR_ATTACHMENT2, - GL_COLOR_ATTACHMENT3, - GL_COLOR_ATTACHMENT4, - GL_COLOR_ATTACHMENT5, - GL_COLOR_ATTACHMENT6, - GL_COLOR_ATTACHMENT7, - }; - - glDrawBuffers(count, buffers); - } - } - else TRACELOG(RL_LOG_WARNING, "GL: One color buffer active by default"); -#endif -} - -//---------------------------------------------------------------------------------- -// General render state configuration -//---------------------------------------------------------------------------------- - -// Enable color blending -void rlEnableColorBlend(void) { glEnable(GL_BLEND); } - -// Disable color blending -void rlDisableColorBlend(void) { glDisable(GL_BLEND); } - -// Enable depth test -void rlEnableDepthTest(void) { glEnable(GL_DEPTH_TEST); } - -// Disable depth test -void rlDisableDepthTest(void) { glDisable(GL_DEPTH_TEST); } - -// Enable depth write -void rlEnableDepthMask(void) { glDepthMask(GL_TRUE); } - -// Disable depth write -void rlDisableDepthMask(void) { glDepthMask(GL_FALSE); } - -// Enable backface culling -void rlEnableBackfaceCulling(void) { glEnable(GL_CULL_FACE); } - -// Disable backface culling -void rlDisableBackfaceCulling(void) { glDisable(GL_CULL_FACE); } - -// Set color mask active for screen read/draw -void rlColorMask(bool r, bool g, bool b, bool a) { glColorMask(r, g, b, a); } - -// Set face culling mode -void rlSetCullFace(int mode) -{ - switch (mode) - { - case RL_CULL_FACE_BACK: glCullFace(GL_BACK); break; - case RL_CULL_FACE_FRONT: glCullFace(GL_FRONT); break; - default: break; - } -} - -// Enable scissor test -void rlEnableScissorTest(void) { glEnable(GL_SCISSOR_TEST); } - -// Disable scissor test -void rlDisableScissorTest(void) { glDisable(GL_SCISSOR_TEST); } - -// Scissor test -void rlScissor(int x, int y, int width, int height) { glScissor(x, y, width, height); } - -// Enable wire mode -void rlEnableWireMode(void) -{ -#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) - // NOTE: glPolygonMode() not available on OpenGL ES - glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); -#endif -} - -// Disable wire mode -void rlDisableWireMode(void) -{ -#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) - // NOTE: glPolygonMode() not available on OpenGL ES - glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); -#endif -} - -// Enable point mode -void rlEnablePointMode(void) -{ -#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) - // NOTE: glPolygonMode() not available on OpenGL ES - glPolygonMode(GL_FRONT_AND_BACK, GL_POINT); - glEnable(GL_PROGRAM_POINT_SIZE); -#endif -} - -// Disable point mode -void rlDisablePointMode(void) -{ -#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) - // NOTE: glPolygonMode() not available on OpenGL ES - glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); -#endif -} - -// Set the line drawing width -void rlSetLineWidth(float width) { glLineWidth(width); } - -// Get the line drawing width -float rlGetLineWidth(void) -{ - float width = 0; - glGetFloatv(GL_LINE_WIDTH, &width); - return width; -} - -// Set the point drawing size -void rlSetPointSize(float size) -{ -#if defined(GRAPHICS_API_OPENGL_11) - glPointSize(size); -#endif -} - -// Get the point drawing size -float rlGetPointSize(void) -{ - float size = 1; -#if defined(GRAPHICS_API_OPENGL_11) - glGetFloatv(GL_POINT_SIZE, &size); -#endif - return size; - -} - -// Enable line aliasing -void rlEnableSmoothLines(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_11) - glEnable(GL_LINE_SMOOTH); -#endif -} - -// Disable line aliasing -void rlDisableSmoothLines(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_11) - glDisable(GL_LINE_SMOOTH); -#endif -} - -// Enable stereo rendering -void rlEnableStereoRender(void) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) - RLGL.State.stereoRender = true; -#endif -} - -// Disable stereo rendering -void rlDisableStereoRender(void) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) - RLGL.State.stereoRender = false; -#endif -} - -// Check if stereo render is enabled -bool rlIsStereoRenderEnabled(void) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) - return RLGL.State.stereoRender; -#else - return false; -#endif -} - -// Clear color buffer with color -void rlClearColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a) -{ - // Color values clamp to 0.0f(0) and 1.0f(255) - float cr = (float)r/255; - float cg = (float)g/255; - float cb = (float)b/255; - float ca = (float)a/255; - - glClearColor(cr, cg, cb, ca); -} - -// Clear used screen buffers (color and depth) -void rlClearScreenBuffers(void) -{ - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear used buffers: Color and Depth (Depth is used for 3D) - //glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); // Stencil buffer not used... -} - -// Check and log OpenGL error codes -void rlCheckErrors(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - int check = 1; - while (check) - { - const GLenum err = glGetError(); - switch (err) - { - case GL_NO_ERROR: check = 0; break; - case 0x0500: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_ENUM"); break; - case 0x0501: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_VALUE"); break; - case 0x0502: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_OPERATION"); break; - case 0x0503: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_STACK_OVERFLOW"); break; - case 0x0504: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_STACK_UNDERFLOW"); break; - case 0x0505: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_OUT_OF_MEMORY"); break; - case 0x0506: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_FRAMEBUFFER_OPERATION"); break; - default: TRACELOG(RL_LOG_WARNING, "GL: Error detected: Unknown error code: %x", err); break; - } - } -#endif -} - -// Set blend mode -void rlSetBlendMode(int mode) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if ((RLGL.State.currentBlendMode != mode) || ((mode == RL_BLEND_CUSTOM || mode == RL_BLEND_CUSTOM_SEPARATE) && RLGL.State.glCustomBlendModeModified)) - { - rlDrawRenderBatch(RLGL.currentBatch); - - switch (mode) - { - case RL_BLEND_ALPHA: glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; - case RL_BLEND_ADDITIVE: glBlendFunc(GL_SRC_ALPHA, GL_ONE); glBlendEquation(GL_FUNC_ADD); break; - case RL_BLEND_MULTIPLIED: glBlendFunc(GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; - case RL_BLEND_ADD_COLORS: glBlendFunc(GL_ONE, GL_ONE); glBlendEquation(GL_FUNC_ADD); break; - case RL_BLEND_SUBTRACT_COLORS: glBlendFunc(GL_ONE, GL_ONE); glBlendEquation(GL_FUNC_SUBTRACT); break; - case RL_BLEND_ALPHA_PREMULTIPLY: glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; - case RL_BLEND_CUSTOM: - { - // NOTE: Using GL blend src/dst factors and GL equation configured with rlSetBlendFactors() - glBlendFunc(RLGL.State.glBlendSrcFactor, RLGL.State.glBlendDstFactor); glBlendEquation(RLGL.State.glBlendEquation); - } break; - case RL_BLEND_CUSTOM_SEPARATE: - { - // NOTE: Using GL blend src/dst factors and GL equation configured with rlSetBlendFactorsSeparate() - glBlendFuncSeparate(RLGL.State.glBlendSrcFactorRGB, RLGL.State.glBlendDestFactorRGB, RLGL.State.glBlendSrcFactorAlpha, RLGL.State.glBlendDestFactorAlpha); - glBlendEquationSeparate(RLGL.State.glBlendEquationRGB, RLGL.State.glBlendEquationAlpha); - } break; - default: break; - } - - RLGL.State.currentBlendMode = mode; - RLGL.State.glCustomBlendModeModified = false; - } -#endif -} - -// Set blending mode factor and equation -void rlSetBlendFactors(int glSrcFactor, int glDstFactor, int glEquation) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if ((RLGL.State.glBlendSrcFactor != glSrcFactor) || - (RLGL.State.glBlendDstFactor != glDstFactor) || - (RLGL.State.glBlendEquation != glEquation)) - { - RLGL.State.glBlendSrcFactor = glSrcFactor; - RLGL.State.glBlendDstFactor = glDstFactor; - RLGL.State.glBlendEquation = glEquation; - - RLGL.State.glCustomBlendModeModified = true; - } -#endif -} - -// Set blending mode factor and equation separately for RGB and alpha -void rlSetBlendFactorsSeparate(int glSrcRGB, int glDstRGB, int glSrcAlpha, int glDstAlpha, int glEqRGB, int glEqAlpha) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if ((RLGL.State.glBlendSrcFactorRGB != glSrcRGB) || - (RLGL.State.glBlendDestFactorRGB != glDstRGB) || - (RLGL.State.glBlendSrcFactorAlpha != glSrcAlpha) || - (RLGL.State.glBlendDestFactorAlpha != glDstAlpha) || - (RLGL.State.glBlendEquationRGB != glEqRGB) || - (RLGL.State.glBlendEquationAlpha != glEqAlpha)) - { - RLGL.State.glBlendSrcFactorRGB = glSrcRGB; - RLGL.State.glBlendDestFactorRGB = glDstRGB; - RLGL.State.glBlendSrcFactorAlpha = glSrcAlpha; - RLGL.State.glBlendDestFactorAlpha = glDstAlpha; - RLGL.State.glBlendEquationRGB = glEqRGB; - RLGL.State.glBlendEquationAlpha = glEqAlpha; - - RLGL.State.glCustomBlendModeModified = true; - } -#endif -} - -//---------------------------------------------------------------------------------- -// Module Functions Definition - OpenGL Debug -//---------------------------------------------------------------------------------- -#if defined(GRAPHICS_API_OPENGL_43) && RLGL_ENABLE_OPENGL_DEBUG_CONTEXT -static void GLAPIENTRY rlDebugMessageCallback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam) -{ - // Ignore non-significant error/warning codes (NVidia drivers) - // NOTE: Here there are the details with a sample output: - // - #131169 - Framebuffer detailed info: The driver allocated storage for renderbuffer 2. (severity: low) - // - #131185 - Buffer detailed info: Buffer object 1 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_ENUM_88e4) - // will use VIDEO memory as the source for buffer object operations. (severity: low) - // - #131218 - Program/shader state performance warning: Vertex shader in program 7 is being recompiled based on GL state. (severity: medium) - // - #131204 - Texture state usage warning: The texture object (0) bound to texture image unit 0 does not have - // a defined base level and cannot be used for texture mapping. (severity: low) - if ((id == 131169) || (id == 131185) || (id == 131218) || (id == 131204)) return; - - const char *msgSource = NULL; - switch (source) - { - case GL_DEBUG_SOURCE_API: msgSource = "API"; break; - case GL_DEBUG_SOURCE_WINDOW_SYSTEM: msgSource = "WINDOW_SYSTEM"; break; - case GL_DEBUG_SOURCE_SHADER_COMPILER: msgSource = "SHADER_COMPILER"; break; - case GL_DEBUG_SOURCE_THIRD_PARTY: msgSource = "THIRD_PARTY"; break; - case GL_DEBUG_SOURCE_APPLICATION: msgSource = "APPLICATION"; break; - case GL_DEBUG_SOURCE_OTHER: msgSource = "OTHER"; break; - default: break; - } - - const char *msgType = NULL; - switch (type) - { - case GL_DEBUG_TYPE_ERROR: msgType = "ERROR"; break; - case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: msgType = "DEPRECATED_BEHAVIOR"; break; - case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: msgType = "UNDEFINED_BEHAVIOR"; break; - case GL_DEBUG_TYPE_PORTABILITY: msgType = "PORTABILITY"; break; - case GL_DEBUG_TYPE_PERFORMANCE: msgType = "PERFORMANCE"; break; - case GL_DEBUG_TYPE_MARKER: msgType = "MARKER"; break; - case GL_DEBUG_TYPE_PUSH_GROUP: msgType = "PUSH_GROUP"; break; - case GL_DEBUG_TYPE_POP_GROUP: msgType = "POP_GROUP"; break; - case GL_DEBUG_TYPE_OTHER: msgType = "OTHER"; break; - default: break; - } - - const char *msgSeverity = "DEFAULT"; - switch (severity) - { - case GL_DEBUG_SEVERITY_LOW: msgSeverity = "LOW"; break; - case GL_DEBUG_SEVERITY_MEDIUM: msgSeverity = "MEDIUM"; break; - case GL_DEBUG_SEVERITY_HIGH: msgSeverity = "HIGH"; break; - case GL_DEBUG_SEVERITY_NOTIFICATION: msgSeverity = "NOTIFICATION"; break; - default: break; - } - - TRACELOG(RL_LOG_WARNING, "GL: OpenGL debug message: %s", message); - TRACELOG(RL_LOG_WARNING, " > Type: %s", msgType); - TRACELOG(RL_LOG_WARNING, " > Source = %s", msgSource); - TRACELOG(RL_LOG_WARNING, " > Severity = %s", msgSeverity); -} -#endif - -//---------------------------------------------------------------------------------- -// Module Functions Definition - rlgl functionality -//---------------------------------------------------------------------------------- - -// Initialize rlgl: OpenGL extensions, default buffers/shaders/textures, OpenGL states -void rlglInit(int width, int height) -{ - isGpuReady = true; - - // Enable OpenGL debug context if requested (and supported) -#if defined(GRAPHICS_API_OPENGL_43) && RLGL_ENABLE_OPENGL_DEBUG_CONTEXT - if ((glDebugMessageCallback != NULL) && (glDebugMessageControl != NULL)) - { - glDebugMessageCallback(rlDebugMessageCallback, 0); - // glDebugMessageControl(GL_DEBUG_SOURCE_API, GL_DEBUG_TYPE_ERROR, GL_DEBUG_SEVERITY_HIGH, 0, 0, GL_TRUE); - - // Debug context options: - // - GL_DEBUG_OUTPUT - Faster version but not useful for breakpoints - // - GL_DEBUG_OUTPUT_SYNCHRONUS - Callback is in sync with errors, so a breakpoint can be placed on the callback in order to get a stacktrace for the GL error - glEnable(GL_DEBUG_OUTPUT); - glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS); - } -#endif - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // Init default white texture - unsigned char pixels[4] = { 255, 255, 255, 255 }; // 1 pixel RGBA (4 bytes) - RLGL.State.defaultTextureId = rlLoadTexture(pixels, 1, 1, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, 1); - RLGL.State.currentTextureId = RLGL.State.defaultTextureId; - - if (RLGL.State.defaultTextureId != 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Default texture loaded successfully", RLGL.State.defaultTextureId); - else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load default texture"); - - // Init default Shader (customized for GL 3.3 and ES2) - // Loaded: RLGL.State.defaultShaderId + RLGL.State.defaultShaderLocs - rlLoadShaderDefault(); - RLGL.State.currentShaderId = RLGL.State.defaultShaderId; - RLGL.State.currentShaderLocs = RLGL.State.defaultShaderLocs; - - // Init default vertex arrays buffers - // Simulate that the default shader has the location RL_SHADER_LOC_VERTEX_NORMAL to bind the normal buffer for the default render batch - RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL] = RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL; - RLGL.defaultBatch = rlLoadRenderBatch(RL_DEFAULT_BATCH_BUFFERS, RL_DEFAULT_BATCH_BUFFER_ELEMENTS); - RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL] = -1; - RLGL.currentBatch = &RLGL.defaultBatch; - - // Init stack matrices (emulating OpenGL 1.1) - for (int i = 0; i < RL_MAX_MATRIX_STACK_SIZE; i++) RLGL.State.stack[i] = rlMatrixIdentity(); - - // Init internal matrices - RLGL.State.transform = rlMatrixIdentity(); - RLGL.State.projection = rlMatrixIdentity(); - RLGL.State.modelview = rlMatrixIdentity(); - RLGL.State.currentMatrix = &RLGL.State.modelview; -#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 - -#if defined(GRAPHICS_API_OPENGL_11_SOFTWARE) - // Initialize software renderer backend - int result = swInit(width, height); - if (result == 0) - { - TRACELOG(RL_LOG_ERROR, "RLSW: Software renderer initialization failed!"); - exit(-1); - } -#endif - - // Initialize OpenGL default states - //---------------------------------------------------------- - // Init state: Depth test - glDepthFunc(GL_LEQUAL); // Type of depth testing to apply - glDisable(GL_DEPTH_TEST); // Disable depth testing for 2D (only used for 3D) - - // Init state: Blending mode - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // Color blending function (how colors are mixed) - glEnable(GL_BLEND); // Enable color blending (required to work with transparencies) - - // Init state: Culling - // NOTE: All shapes/models triangles are drawn CCW - glCullFace(GL_BACK); // Cull the back face (default) - glFrontFace(GL_CCW); // Front face are defined counter clockwise (default) - glEnable(GL_CULL_FACE); // Enable backface culling - -#if defined(GRAPHICS_API_OPENGL_11) - // Init state: Color hints (deprecated in OpenGL 3.0+) - glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Improve quality of color and texture coordinate interpolation - glShadeModel(GL_SMOOTH); // Smooth shading between vertex (vertex colors interpolation) -#endif -#if defined(GRAPHICS_API_OPENGL_33) - // Init state: Cubemap seamless - glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS); // Seamless cubemaps (not supported on OpenGL ES 2.0) -#endif -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // Store screen size into global variables - RLGL.State.framebufferWidth = width; - RLGL.State.framebufferHeight = height; -#endif - - // Init state: Color/Depth buffers clear - glClearColor(0.0f, 0.0f, 0.0f, 1.0f); // Set clear color (black) - glClearDepth(1.0f); // Set clear depth value (default) - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear color and depth buffers (depth buffer required for 3D) - - TRACELOG(RL_LOG_INFO, "RLGL: Default OpenGL state initialized successfully"); - //---------------------------------------------------------- -} - -// Vertex Buffer Object deinitialization (memory free) -void rlglClose(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - rlUnloadRenderBatch(RLGL.defaultBatch); - - rlUnloadShaderDefault(); // Unload default shader - - glDeleteTextures(1, &RLGL.State.defaultTextureId); // Unload default texture - TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Default texture unloaded successfully", RLGL.State.defaultTextureId); -#endif - -#if defined(GRAPHICS_API_OPENGL_11_SOFTWARE) - swClose(); // Unload sofware renderer resources -#endif - isGpuReady = false; -} - -// Load OpenGL extensions -// NOTE: External loader function must be provided -void rlLoadExtensions(void *loader) -{ -#if defined(GRAPHICS_API_OPENGL_33) // Also defined for GRAPHICS_API_OPENGL_21 - // NOTE: glad is generated and contains only required OpenGL 3.3 Core extensions (and lower versions) - if (gladLoadGL((GLADloadfunc)loader) == 0) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL extensions"); - else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL extensions loaded successfully"); - - // Get number of supported extensions - GLint numExt = 0; - glGetIntegerv(GL_NUM_EXTENSIONS, &numExt); - TRACELOG(RL_LOG_INFO, "GL: Supported extensions count: %i", numExt); - -#if RLGL_SHOW_GL_DETAILS_INFO - // Get supported extensions list - // WARNING: glGetStringi() not available on OpenGL 2.1 - TRACELOG(RL_LOG_INFO, "GL: OpenGL extensions:"); - for (int i = 0; i < numExt; i++) TRACELOG(RL_LOG_INFO, " %s", glGetStringi(GL_EXTENSIONS, i)); -#endif - -#if defined(GRAPHICS_API_OPENGL_21) - // Register supported extensions flags - // Optional OpenGL 2.1 extensions - RLGL.ExtSupported.vao = GLAD_GL_ARB_vertex_array_object; - RLGL.ExtSupported.instancing = (GLAD_GL_EXT_draw_instanced && GLAD_GL_ARB_instanced_arrays); - RLGL.ExtSupported.texNPOT = GLAD_GL_ARB_texture_non_power_of_two; - RLGL.ExtSupported.texFloat32 = GLAD_GL_ARB_texture_float; - RLGL.ExtSupported.texFloat16 = GLAD_GL_ARB_texture_float; - RLGL.ExtSupported.texDepth = GLAD_GL_ARB_depth_texture; - RLGL.ExtSupported.maxDepthBits = 32; - RLGL.ExtSupported.texAnisoFilter = GLAD_GL_EXT_texture_filter_anisotropic; - RLGL.ExtSupported.texMirrorClamp = GLAD_GL_EXT_texture_mirror_clamp; -#else - // Register supported extensions flags - // OpenGL 3.3 extensions supported by default (core) - RLGL.ExtSupported.vao = true; - RLGL.ExtSupported.instancing = true; - RLGL.ExtSupported.texNPOT = true; - RLGL.ExtSupported.texFloat32 = true; - RLGL.ExtSupported.texFloat16 = true; - RLGL.ExtSupported.texDepth = true; - RLGL.ExtSupported.maxDepthBits = 32; - RLGL.ExtSupported.texAnisoFilter = true; - RLGL.ExtSupported.texMirrorClamp = true; -#endif - - // Optional OpenGL 3.3 extensions - RLGL.ExtSupported.texCompASTC = GLAD_GL_KHR_texture_compression_astc_hdr && GLAD_GL_KHR_texture_compression_astc_ldr; - RLGL.ExtSupported.texCompDXT = GLAD_GL_EXT_texture_compression_s3tc; // Texture compression: DXT - RLGL.ExtSupported.texCompETC2 = GLAD_GL_ARB_ES3_compatibility; // Texture compression: ETC2/EAC - #if defined(GRAPHICS_API_OPENGL_43) - RLGL.ExtSupported.computeShader = GLAD_GL_ARB_compute_shader; - RLGL.ExtSupported.ssbo = GLAD_GL_ARB_shader_storage_buffer_object; - #endif - -#endif // GRAPHICS_API_OPENGL_33 - -#if defined(GRAPHICS_API_OPENGL_ES3) - // Register supported extensions flags - // OpenGL ES 3.0 extensions supported by default (or it should be) - RLGL.ExtSupported.vao = true; - RLGL.ExtSupported.instancing = true; - RLGL.ExtSupported.texNPOT = true; - RLGL.ExtSupported.texFloat32 = true; - RLGL.ExtSupported.texFloat16 = true; - RLGL.ExtSupported.texDepth = true; - RLGL.ExtSupported.texDepthWebGL = true; - RLGL.ExtSupported.maxDepthBits = 24; - RLGL.ExtSupported.texAnisoFilter = true; - RLGL.ExtSupported.texMirrorClamp = true; - // TODO: Check for additional OpenGL ES 3.0 supported extensions: - //RLGL.ExtSupported.texCompDXT = true; - //RLGL.ExtSupported.texCompETC1 = true; - //RLGL.ExtSupported.texCompETC2 = true; - //RLGL.ExtSupported.texCompPVRT = true; - //RLGL.ExtSupported.texCompASTC = true; - //RLGL.ExtSupported.maxAnisotropyLevel = true; - //RLGL.ExtSupported.computeShader = true; - //RLGL.ExtSupported.ssbo = true; - -#elif defined(GRAPHICS_API_OPENGL_ES2) - - #if defined(PLATFORM_DESKTOP_GLFW) || defined(PLATFORM_DESKTOP_SDL) - // TODO: Support GLAD loader for OpenGL ES 3.0 - if (gladLoadGLES2((GLADloadfunc)loader) == 0) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL ES2.0 functions"); - else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL ES 2.0 loaded successfully"); - #endif - - // Get supported extensions list - GLint numExt = 0; - const char **extList = (const char **)RL_CALLOC(512, sizeof(const char *)); // Allocate 512 strings pointers (2 KB) - const char *extensions = (const char *)glGetString(GL_EXTENSIONS); // One big const string - - // NOTE: String duplication rquired because glGetString() returns a const string - int extensionsLength = (int)strlen(extensions); // Get extensions string size in bytes - char *extensionsDup = (char *)RL_CALLOC(extensionsLength + 1, sizeof(char)); // Allocate space for copy with additional EOL byte - strncpy(extensionsDup, extensions, extensionsLength); - extList[numExt] = extensionsDup; - - for (int i = 0; i < extensionsLength; i++) - { - if (extensionsDup[i] == ' ') - { - extensionsDup[i] = '\0'; - numExt++; - extList[numExt] = &extensionsDup[i + 1]; - } - } - - TRACELOG(RL_LOG_INFO, "GL: Supported extensions count: %i", numExt); - -#if RLGL_SHOW_GL_DETAILS_INFO - TRACELOG(RL_LOG_INFO, "GL: OpenGL extensions:"); - for (int i = 0; i < numExt; i++) TRACELOG(RL_LOG_INFO, " %s", extList[i]); -#endif - - // Check required extensions - for (int i = 0; i < numExt; i++) - { - // Check VAO support - // NOTE: Only check on OpenGL ES, OpenGL 3.3 has VAO support as core feature - if (strcmp(extList[i], (const char *)"GL_OES_vertex_array_object") == 0) - { - // The extension is supported by our hardware and driver, try to get related functions pointers - // NOTE: emscripten does not support VAOs natively, it uses emulation and it reduces overall performance... - glGenVertexArrays = (PFNGLGENVERTEXARRAYSOESPROC)((rlglLoadProc)loader)("glGenVertexArraysOES"); - glBindVertexArray = (PFNGLBINDVERTEXARRAYOESPROC)((rlglLoadProc)loader)("glBindVertexArrayOES"); - glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSOESPROC)((rlglLoadProc)loader)("glDeleteVertexArraysOES"); - //glIsVertexArray = (PFNGLISVERTEXARRAYOESPROC)loader("glIsVertexArrayOES"); // NOTE: Fails in WebGL, omitted - - if ((glGenVertexArrays != NULL) && (glBindVertexArray != NULL) && (glDeleteVertexArrays != NULL)) RLGL.ExtSupported.vao = true; - } - - // Check instanced rendering support - if (strstr(extList[i], (const char *)"instanced_arrays") != NULL) // Broad check for instanced_arrays - { - // Specific check - if (strcmp(extList[i], (const char *)"GL_ANGLE_instanced_arrays") == 0) // ANGLE - { - glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedANGLE"); - glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedANGLE"); - glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorANGLE"); - } - else if (strcmp(extList[i], (const char *)"GL_EXT_instanced_arrays") == 0) // EXT - { - glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedEXT"); - glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedEXT"); - glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorEXT"); - } - else if (strcmp(extList[i], (const char *)"GL_NV_instanced_arrays") == 0) // NVIDIA GLES - { - glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedNV"); - glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedNV"); - glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorNV"); - } - - // The feature will only be marked as supported if the elements from GL_XXX_instanced_arrays are present - if ((glDrawArraysInstanced != NULL) && (glDrawElementsInstanced != NULL) && (glVertexAttribDivisor != NULL)) RLGL.ExtSupported.instancing = true; - } - else if (strstr(extList[i], (const char *)"draw_instanced") != NULL) - { - // GL_ANGLE_draw_instanced doesn't exist - if (strcmp(extList[i], (const char *)"GL_EXT_draw_instanced") == 0) - { - glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedEXT"); - glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedEXT"); - } - else if (strcmp(extList[i], (const char *)"GL_NV_draw_instanced") == 0) - { - glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedNV"); - glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedNV"); - } - - // But the functions will at least be loaded if only GL_XX_EXT_draw_instanced exist - if ((glDrawArraysInstanced != NULL) && (glDrawElementsInstanced != NULL) && (glVertexAttribDivisor != NULL)) RLGL.ExtSupported.instancing = true; - } - - // Check NPOT textures support - // NOTE: Only check on OpenGL ES, OpenGL 3.3 has NPOT textures full support as core feature - if (strcmp(extList[i], (const char *)"GL_OES_texture_npot") == 0) RLGL.ExtSupported.texNPOT = true; - - // Check texture float support - if (strcmp(extList[i], (const char *)"GL_OES_texture_float") == 0) RLGL.ExtSupported.texFloat32 = true; - if (strcmp(extList[i], (const char *)"GL_OES_texture_half_float") == 0) RLGL.ExtSupported.texFloat16 = true; - - // Check depth texture support - if (strcmp(extList[i], (const char *)"GL_OES_depth_texture") == 0) RLGL.ExtSupported.texDepth = true; - if (strcmp(extList[i], (const char *)"GL_WEBGL_depth_texture") == 0) RLGL.ExtSupported.texDepthWebGL = true; // WebGL requires unsized internal format - if (RLGL.ExtSupported.texDepthWebGL) RLGL.ExtSupported.texDepth = true; - - if (strcmp(extList[i], (const char *)"GL_OES_depth24") == 0) RLGL.ExtSupported.maxDepthBits = 24; // Not available on WebGL - if (strcmp(extList[i], (const char *)"GL_OES_depth32") == 0) RLGL.ExtSupported.maxDepthBits = 32; // Not available on WebGL - - // Check texture compression support: DXT - if ((strcmp(extList[i], (const char *)"GL_EXT_texture_compression_s3tc") == 0) || - (strcmp(extList[i], (const char *)"GL_WEBGL_compressed_texture_s3tc") == 0) || - (strcmp(extList[i], (const char *)"GL_WEBKIT_WEBGL_compressed_texture_s3tc") == 0)) RLGL.ExtSupported.texCompDXT = true; - - // Check texture compression support: ETC1 - if ((strcmp(extList[i], (const char *)"GL_OES_compressed_ETC1_RGB8_texture") == 0) || - (strcmp(extList[i], (const char *)"GL_WEBGL_compressed_texture_etc1") == 0)) RLGL.ExtSupported.texCompETC1 = true; - - // Check texture compression support: ETC2/EAC - if (strcmp(extList[i], (const char *)"GL_ARB_ES3_compatibility") == 0) RLGL.ExtSupported.texCompETC2 = true; - - // Check texture compression support: PVR - if (strcmp(extList[i], (const char *)"GL_IMG_texture_compression_pvrtc") == 0) RLGL.ExtSupported.texCompPVRT = true; - - // Check texture compression support: ASTC - if (strcmp(extList[i], (const char *)"GL_KHR_texture_compression_astc_hdr") == 0) RLGL.ExtSupported.texCompASTC = true; - - // Check anisotropic texture filter support - if (strcmp(extList[i], (const char *)"GL_EXT_texture_filter_anisotropic") == 0) RLGL.ExtSupported.texAnisoFilter = true; - - // Check clamp mirror wrap mode support - if (strcmp(extList[i], (const char *)"GL_EXT_texture_mirror_clamp") == 0) RLGL.ExtSupported.texMirrorClamp = true; - } - - // Free extensions pointers - RL_FREE(extList); - RL_FREE(extensionsDup); // Duplicated string must be deallocated -#endif // GRAPHICS_API_OPENGL_ES2 - - // Check OpenGL information and capabilities - //------------------------------------------------------------------------------ - // Show current OpenGL and GLSL version - TRACELOG(RL_LOG_INFO, "GL: OpenGL device information:"); - TRACELOG(RL_LOG_INFO, " > Vendor: %s", glGetString(GL_VENDOR)); - TRACELOG(RL_LOG_INFO, " > Renderer: %s", glGetString(GL_RENDERER)); - TRACELOG(RL_LOG_INFO, " > Version: %s", glGetString(GL_VERSION)); - TRACELOG(RL_LOG_INFO, " > GLSL: %s", glGetString(GL_SHADING_LANGUAGE_VERSION)); - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - RLGL.loader = (rlglLoadProc)loader; - - // NOTE: Anisotropy levels capability is an extension - #ifndef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT - #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF - #endif - glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &RLGL.ExtSupported.maxAnisotropyLevel); - -#if RLGL_SHOW_GL_DETAILS_INFO - // Show some OpenGL GPU capabilities - TRACELOG(RL_LOG_INFO, "GL: OpenGL capabilities:"); - GLint capability = 0; - glGetIntegerv(GL_MAX_TEXTURE_SIZE, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_SIZE: %i", capability); - glGetIntegerv(GL_MAX_CUBE_MAP_TEXTURE_SIZE, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_CUBE_MAP_TEXTURE_SIZE: %i", capability); - glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_IMAGE_UNITS: %i", capability); - glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_VERTEX_ATTRIBS: %i", capability); - #if !defined(GRAPHICS_API_OPENGL_ES2) - glGetIntegerv(GL_MAX_UNIFORM_BLOCK_SIZE, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_UNIFORM_BLOCK_SIZE: %i", capability); - glGetIntegerv(GL_MAX_DRAW_BUFFERS, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_DRAW_BUFFERS: %i", capability); - if (RLGL.ExtSupported.texAnisoFilter) TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_MAX_ANISOTROPY: %.0f", RLGL.ExtSupported.maxAnisotropyLevel); - #endif - glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &capability); - TRACELOG(RL_LOG_INFO, " GL_NUM_COMPRESSED_TEXTURE_FORMATS: %i", capability); - GLint *compFormats = (GLint *)RL_CALLOC(capability, sizeof(GLint)); - glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS, compFormats); - for (int i = 0; i < capability; i++) TRACELOG(RL_LOG_INFO, " %s", rlGetCompressedFormatName(compFormats[i])); - RL_FREE(compFormats); - -#if defined(GRAPHICS_API_OPENGL_43) - glGetIntegerv(GL_MAX_VERTEX_ATTRIB_BINDINGS, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_VERTEX_ATTRIB_BINDINGS: %i", capability); - glGetIntegerv(GL_MAX_UNIFORM_LOCATIONS, &capability); - TRACELOG(RL_LOG_INFO, " GL_MAX_UNIFORM_LOCATIONS: %i", capability); -#endif - -#else // !RLGL_SHOW_GL_DETAILS_INFO - - // Show some basic info about GL supported features - if (RLGL.ExtSupported.vao) TRACELOG(RL_LOG_INFO, "GL: VAO extension detected, VAO functions loaded successfully"); - else TRACELOG(RL_LOG_WARNING, "GL: VAO extension not found, VAO not supported"); - if (RLGL.ExtSupported.texNPOT) TRACELOG(RL_LOG_INFO, "GL: NPOT textures extension detected, full NPOT textures supported"); - else TRACELOG(RL_LOG_WARNING, "GL: NPOT textures extension not found, limited NPOT support (no-mipmaps, no-repeat)"); - if (RLGL.ExtSupported.texCompDXT) TRACELOG(RL_LOG_INFO, "GL: DXT compressed textures supported"); - if (RLGL.ExtSupported.texCompETC1) TRACELOG(RL_LOG_INFO, "GL: ETC1 compressed textures supported"); - if (RLGL.ExtSupported.texCompETC2) TRACELOG(RL_LOG_INFO, "GL: ETC2/EAC compressed textures supported"); - if (RLGL.ExtSupported.texCompPVRT) TRACELOG(RL_LOG_INFO, "GL: PVRT compressed textures supported"); - if (RLGL.ExtSupported.texCompASTC) TRACELOG(RL_LOG_INFO, "GL: ASTC compressed textures supported"); - if (RLGL.ExtSupported.computeShader) TRACELOG(RL_LOG_INFO, "GL: Compute shaders supported"); - if (RLGL.ExtSupported.ssbo) TRACELOG(RL_LOG_INFO, "GL: Shader storage buffer objects supported"); -#endif - -#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 -} - -// Get OpenGL procedure address -void *rlGetProcAddress(const char *procName) -{ - void *func = NULL; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - func = RLGL.loader(procName); -#endif - return func; -} - -// Get current OpenGL version -int rlGetVersion(void) -{ - int glVersion = 0; - -#if defined(GRAPHICS_API_OPENGL_11_SOFTWARE) - glVersion = RL_OPENGL_11_SOFTWARE; -#elif defined(GRAPHICS_API_OPENGL_11) - glVersion = RL_OPENGL_11; -#endif -#if defined(GRAPHICS_API_OPENGL_21) - glVersion = RL_OPENGL_21; -#elif defined(GRAPHICS_API_OPENGL_43) - glVersion = RL_OPENGL_43; -#elif defined(GRAPHICS_API_OPENGL_33) - glVersion = RL_OPENGL_33; -#endif -#if defined(GRAPHICS_API_OPENGL_ES3) - glVersion = RL_OPENGL_ES_30; -#elif defined(GRAPHICS_API_OPENGL_ES2) - glVersion = RL_OPENGL_ES_20; -#endif - - return glVersion; -} - -// Set current framebuffer width -void rlSetFramebufferWidth(int width) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - RLGL.State.framebufferWidth = width; -#endif -} - -// Set current framebuffer height -void rlSetFramebufferHeight(int height) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - RLGL.State.framebufferHeight = height; -#endif -} - -// Get default framebuffer width -int rlGetFramebufferWidth(void) -{ - int width = 0; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - width = RLGL.State.framebufferWidth; -#endif - return width; -} - -// Get default framebuffer height -int rlGetFramebufferHeight(void) -{ - int height = 0; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - height = RLGL.State.framebufferHeight; -#endif - return height; -} - -// Get default internal texture (white texture) -// NOTE: Default texture is a 1x1 pixel UNCOMPRESSED_R8G8B8A8 -unsigned int rlGetTextureIdDefault(void) -{ - unsigned int id = 0; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - id = RLGL.State.defaultTextureId; -#endif - return id; -} - -// Get default shader id -unsigned int rlGetShaderIdDefault(void) -{ - unsigned int id = 0; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - id = RLGL.State.defaultShaderId; -#endif - return id; -} - -// Get default shader locs -int *rlGetShaderLocsDefault(void) -{ - int *locs = NULL; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - locs = RLGL.State.defaultShaderLocs; -#endif - return locs; -} - -// Render batch management -//------------------------------------------------------------------------------------------------ -// Load render batch -rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements) -{ - rlRenderBatch batch = { 0 }; - if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return batch; } - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // Initialize CPU (RAM) vertex buffers (position, texcoord, color data and indexes) - //-------------------------------------------------------------------------------------------- - batch.vertexBuffer = (rlVertexBuffer *)RL_CALLOC(numBuffers, sizeof(rlVertexBuffer)); - - for (int i = 0; i < numBuffers; i++) - { - batch.vertexBuffer[i].elementCount = bufferElements; - - batch.vertexBuffer[i].vertices = (float *)RL_CALLOC(bufferElements*3*4, sizeof(float)); // 3 float by vertex, 4 vertex by quad - batch.vertexBuffer[i].texcoords = (float *)RL_CALLOC(bufferElements*2*4, sizeof(float)); // 2 float by texcoord, 4 texcoord by quad - batch.vertexBuffer[i].normals = (float *)RL_CALLOC(bufferElements*3*4, sizeof(float)); // 3 float by vertex, 4 vertex by quad - batch.vertexBuffer[i].colors = (unsigned char *)RL_CALLOC(bufferElements*4*4, sizeof(unsigned char)); // 4 float by color, 4 colors by quad -#if defined(GRAPHICS_API_OPENGL_33) - batch.vertexBuffer[i].indices = (unsigned int *)RL_CALLOC(bufferElements*6, sizeof(unsigned int)); // 6 int by quad (indices) -#endif -#if defined(GRAPHICS_API_OPENGL_ES2) - batch.vertexBuffer[i].indices = (unsigned short *)RL_CALLOC(bufferElements*6, sizeof(unsigned short)); // 6 int by quad (indices) -#endif - - for (int j = 0; j < (3*4*bufferElements); j++) batch.vertexBuffer[i].vertices[j] = 0.0f; - for (int j = 0; j < (2*4*bufferElements); j++) batch.vertexBuffer[i].texcoords[j] = 0.0f; - for (int j = 0; j < (3*4*bufferElements); j++) batch.vertexBuffer[i].normals[j] = 0.0f; - for (int j = 0; j < (4*4*bufferElements); j++) batch.vertexBuffer[i].colors[j] = 0; - - int k = 0; - - // Indices can be initialized right now - for (int j = 0; j < (6*bufferElements); j += 6) - { - batch.vertexBuffer[i].indices[j] = 4*k; - batch.vertexBuffer[i].indices[j + 1] = 4*k + 1; - batch.vertexBuffer[i].indices[j + 2] = 4*k + 2; - batch.vertexBuffer[i].indices[j + 3] = 4*k; - batch.vertexBuffer[i].indices[j + 4] = 4*k + 2; - batch.vertexBuffer[i].indices[j + 5] = 4*k + 3; - - k++; - } - - RLGL.State.vertexCounter = 0; - } - - TRACELOG(RL_LOG_INFO, "RLGL: Render batch vertex buffers loaded successfully in RAM (CPU)"); - //-------------------------------------------------------------------------------------------- - - // Upload to GPU (VRAM) vertex data and initialize VAOs/VBOs - //-------------------------------------------------------------------------------------------- - for (int i = 0; i < numBuffers; i++) - { - if (RLGL.ExtSupported.vao) - { - // Initialize Quads VAO - glGenVertexArrays(1, &batch.vertexBuffer[i].vaoId); - glBindVertexArray(batch.vertexBuffer[i].vaoId); - } - - // Quads - Vertex buffers binding and attributes enable - // Vertex position buffer (shader-location = 0) - glGenBuffers(1, &batch.vertexBuffer[i].vboId[0]); - glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[0]); - glBufferData(GL_ARRAY_BUFFER, bufferElements*3*4*sizeof(float), batch.vertexBuffer[i].vertices, GL_DYNAMIC_DRAW); - glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION]); - glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION], 3, GL_FLOAT, 0, 0, 0); - - // Vertex texcoord buffer (shader-location = 1) - glGenBuffers(1, &batch.vertexBuffer[i].vboId[1]); - glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[1]); - glBufferData(GL_ARRAY_BUFFER, bufferElements*2*4*sizeof(float), batch.vertexBuffer[i].texcoords, GL_DYNAMIC_DRAW); - glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01]); - glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01], 2, GL_FLOAT, 0, 0, 0); - - // Vertex normal buffer (shader-location = 2) - glGenBuffers(1, &batch.vertexBuffer[i].vboId[2]); - glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[2]); - glBufferData(GL_ARRAY_BUFFER, bufferElements*3*4*sizeof(float), batch.vertexBuffer[i].normals, GL_DYNAMIC_DRAW); - glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL]); - glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL], 3, GL_FLOAT, 0, 0, 0); - - // Vertex color buffer (shader-location = 3) - glGenBuffers(1, &batch.vertexBuffer[i].vboId[3]); - glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[3]); - glBufferData(GL_ARRAY_BUFFER, bufferElements*4*4*sizeof(unsigned char), batch.vertexBuffer[i].colors, GL_DYNAMIC_DRAW); - glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR]); - glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR], 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0); - - // Fill index buffer - glGenBuffers(1, &batch.vertexBuffer[i].vboId[4]); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[4]); -#if defined(GRAPHICS_API_OPENGL_33) - glBufferData(GL_ELEMENT_ARRAY_BUFFER, bufferElements*6*sizeof(int), batch.vertexBuffer[i].indices, GL_STATIC_DRAW); -#endif -#if defined(GRAPHICS_API_OPENGL_ES2) - glBufferData(GL_ELEMENT_ARRAY_BUFFER, bufferElements*6*sizeof(short), batch.vertexBuffer[i].indices, GL_STATIC_DRAW); -#endif - } - - TRACELOG(RL_LOG_INFO, "RLGL: Render batch vertex buffers loaded successfully in VRAM (GPU)"); - - // Unbind the current VAO - if (RLGL.ExtSupported.vao) glBindVertexArray(0); - //-------------------------------------------------------------------------------------------- - - // Init draw calls tracking system - //-------------------------------------------------------------------------------------------- - batch.draws = (rlDrawCall *)RL_CALLOC(RL_DEFAULT_BATCH_DRAWCALLS, sizeof(rlDrawCall)); - - for (int i = 0; i < RL_DEFAULT_BATCH_DRAWCALLS; i++) - { - batch.draws[i].mode = RL_QUADS; - batch.draws[i].vertexCount = 0; - batch.draws[i].vertexAlignment = 0; - //batch.draws[i].vaoId = 0; - //batch.draws[i].shaderId = 0; - batch.draws[i].textureId = RLGL.State.defaultTextureId; - //batch.draws[i].RLGL.State.projection = rlMatrixIdentity(); - //batch.draws[i].RLGL.State.modelview = rlMatrixIdentity(); - } - - batch.bufferCount = numBuffers; // Record buffer count - batch.drawCounter = 1; // Reset draws counter - batch.currentDepth = -1.0f; // Reset depth value - //-------------------------------------------------------------------------------------------- -#endif - - return batch; -} - -// Unload default internal buffers vertex data from CPU and GPU -void rlUnloadRenderBatch(rlRenderBatch batch) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // Unbind everything - glBindBuffer(GL_ARRAY_BUFFER, 0); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); - - // Unload all vertex buffers data - for (int i = 0; i < batch.bufferCount; i++) - { - // Unbind VAO attribs data - if (RLGL.ExtSupported.vao) - { - glBindVertexArray(batch.vertexBuffer[i].vaoId); - glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); - glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); - glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL); - glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR); - glBindVertexArray(0); - } - - // Delete VBOs from GPU (VRAM) - glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[0]); - glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[1]); - glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[2]); - glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[3]); - glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[4]); - - // Delete VAOs from GPU (VRAM) - if (RLGL.ExtSupported.vao) glDeleteVertexArrays(1, &batch.vertexBuffer[i].vaoId); - - // Free vertex arrays memory from CPU (RAM) - RL_FREE(batch.vertexBuffer[i].vertices); - RL_FREE(batch.vertexBuffer[i].texcoords); - RL_FREE(batch.vertexBuffer[i].normals); - RL_FREE(batch.vertexBuffer[i].colors); - RL_FREE(batch.vertexBuffer[i].indices); - } - - // Unload arrays - RL_FREE(batch.vertexBuffer); - RL_FREE(batch.draws); -#endif -} - -// Draw render batch -// NOTE: Batch is reseted and current buffer is updated (for multi-buffer config) -void rlDrawRenderBatch(rlRenderBatch *batch) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // Update batch vertex buffers - //------------------------------------------------------------------------------------------------------------ - // NOTE: If there is not vertex data, buffers doesn't need to be updated (vertexCount > 0) - if (RLGL.State.vertexCounter > 0) - { - // Activate elements VAO - if (RLGL.ExtSupported.vao) glBindVertexArray(batch->vertexBuffer[batch->currentBuffer].vaoId); - - // TODO: If no data changed on the CPU arrays there is no need to re-upload data to GPU, - // a flag can be used to detect changes but it would imply keeping a copy buffer and memcmp() both, does it worth it? - - // Vertex positions buffer - glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[0]); - glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*3*sizeof(float), batch->vertexBuffer[batch->currentBuffer].vertices); - //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].vertices, GL_DYNAMIC_DRAW); // Update all buffer - - // Texture coordinates buffer - glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[1]); - glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*2*sizeof(float), batch->vertexBuffer[batch->currentBuffer].texcoords); - //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*2*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].texcoords, GL_DYNAMIC_DRAW); // Update all buffer - - // Normals buffer - glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[2]); - glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*3*sizeof(float), batch->vertexBuffer[batch->currentBuffer].normals); - //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].normals, GL_DYNAMIC_DRAW); // Update all buffer - - // Colors buffer - glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[3]); - glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*4*sizeof(unsigned char), batch->vertexBuffer[batch->currentBuffer].colors); - //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*4*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].colors, GL_DYNAMIC_DRAW); // Update all buffer - - // NOTE: glMapBuffer() causes sync issue - // If GPU is working with this buffer, glMapBuffer() will wait(stall) until GPU to finish its job - // To avoid waiting (idle), glBufferData() can bee called first with NULL pointer before glMapBuffer() - // Doing that, the previous data in PBO will be discarded and glMapBuffer() returns a new - // allocated pointer immediately even if GPU is still working with the previous data - - // Another option: map the buffer object into client's memory - //batch->vertexBuffer[batch->currentBuffer].vertices = (float *)glMapBuffer(GL_ARRAY_BUFFER, GL_READ_WRITE); - //if (batch->vertexBuffer[batch->currentBuffer].vertices) - //{ - // Update vertex data - //} - //glUnmapBuffer(GL_ARRAY_BUFFER); - - // Unbind the current VAO - if (RLGL.ExtSupported.vao) glBindVertexArray(0); - } - //------------------------------------------------------------------------------------------------------------ - - // Draw batch vertex buffers (considering VR stereo if required) - //------------------------------------------------------------------------------------------------------------ - Matrix matProjection = RLGL.State.projection; - Matrix matModelView = RLGL.State.modelview; - - int eyeCount = 1; - if (RLGL.State.stereoRender) eyeCount = 2; - - for (int eye = 0; eye < eyeCount; eye++) - { - if (eyeCount == 2) - { - // Setup current eye viewport (half screen width) - rlViewport(eye*RLGL.State.framebufferWidth/2, 0, RLGL.State.framebufferWidth/2, RLGL.State.framebufferHeight); - - // Set current eye view offset to modelview matrix - rlSetMatrixModelview(rlMatrixMultiply(matModelView, RLGL.State.viewOffsetStereo[eye])); - // Set current eye projection matrix - rlSetMatrixProjection(RLGL.State.projectionStereo[eye]); - } - - // Draw buffers - if (RLGL.State.vertexCounter > 0) - { - // Set current shader and upload current MVP matrix - glUseProgram(RLGL.State.currentShaderId); - - // Create modelview-projection matrix and upload to shader - Matrix matMVP = rlMatrixMultiply(RLGL.State.modelview, RLGL.State.projection); - glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MVP], 1, false, rlMatrixToFloat(matMVP)); - - if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_PROJECTION] != -1) - { - glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_PROJECTION], 1, false, rlMatrixToFloat(RLGL.State.projection)); - } - - // WARNING: For the following setup of the view, model, and normal matrices, it is expected that - // transformations and rendering occur between rlPushMatrix() and rlPopMatrix() - - if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_VIEW] != -1) - { - glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_VIEW], 1, false, rlMatrixToFloat(RLGL.State.modelview)); - } - - if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MODEL] != -1) - { - glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MODEL], 1, false, rlMatrixToFloat(RLGL.State.transform)); - } - - if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_NORMAL] != -1) - { - glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_NORMAL], 1, false, rlMatrixToFloat(rlMatrixTranspose(rlMatrixInvert(RLGL.State.transform)))); - } - - if (RLGL.ExtSupported.vao) glBindVertexArray(batch->vertexBuffer[batch->currentBuffer].vaoId); - else - { - // Bind vertex attrib: position (shader-location = 0) - glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[0]); - glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION], 3, GL_FLOAT, 0, 0, 0); - glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION]); - - // Bind vertex attrib: texcoord (shader-location = 1) - glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[1]); - glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01], 2, GL_FLOAT, 0, 0, 0); - glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01]); - - // Bind vertex attrib: normal (shader-location = 2) - glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[2]); - glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL], 3, GL_FLOAT, 0, 0, 0); - glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL]); - - // Bind vertex attrib: color (shader-location = 3) - glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[3]); - glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR], 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0); - glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR]); - - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[4]); - } - - // Setup some default shader values - glUniform4f(RLGL.State.currentShaderLocs[RL_SHADER_LOC_COLOR_DIFFUSE], 1.0f, 1.0f, 1.0f, 1.0f); - glUniform1i(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MAP_DIFFUSE], 0); // Active default sampler2D: texture0 - - // Activate additional sampler textures - // Those additional textures will be common for all draw calls of the batch - for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) - { - if (RLGL.State.activeTextureId[i] > 0) - { - glActiveTexture(GL_TEXTURE0 + 1 + i); - glBindTexture(GL_TEXTURE_2D, RLGL.State.activeTextureId[i]); - } - } - - // Activate default sampler2D texture0 (one texture is always active for default batch shader) - // NOTE: Batch system accumulates calls by texture0 changes, additional textures are enabled for all the draw calls - glActiveTexture(GL_TEXTURE0); - - for (int i = 0, vertexOffset = 0; i < batch->drawCounter; i++) - { - // Bind current draw call texture, activated as GL_TEXTURE0 and bound to sampler2D texture0 by default - glBindTexture(GL_TEXTURE_2D, batch->draws[i].textureId); - - if ((batch->draws[i].mode == RL_LINES) || (batch->draws[i].mode == RL_TRIANGLES)) glDrawArrays(batch->draws[i].mode, vertexOffset, batch->draws[i].vertexCount); - else - { - #if defined(GRAPHICS_API_OPENGL_33) - // The number of indices to be processed needs to be defined: elementCount*6 - // NOTE: The final parameter tells the GPU the offset in bytes from the - // start of the index buffer to the location of the first index to process - glDrawElements(GL_TRIANGLES, batch->draws[i].vertexCount/4*6, GL_UNSIGNED_INT, (GLvoid *)(vertexOffset/4*6*sizeof(GLuint))); - #endif - #if defined(GRAPHICS_API_OPENGL_ES2) - glDrawElements(GL_TRIANGLES, batch->draws[i].vertexCount/4*6, GL_UNSIGNED_SHORT, (GLvoid *)(vertexOffset/4*6*sizeof(GLushort))); - #endif - } - - vertexOffset += (batch->draws[i].vertexCount + batch->draws[i].vertexAlignment); - } - - if (!RLGL.ExtSupported.vao) - { - glBindBuffer(GL_ARRAY_BUFFER, 0); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); - } - - glBindTexture(GL_TEXTURE_2D, 0); // Unbind textures - } - - if (RLGL.ExtSupported.vao) glBindVertexArray(0); // Unbind VAO - - glUseProgram(0); // Unbind shader program - } - - // Restore viewport to default measures - if (eyeCount == 2) rlViewport(0, 0, RLGL.State.framebufferWidth, RLGL.State.framebufferHeight); - //------------------------------------------------------------------------------------------------------------ - - // Reset batch buffers - //------------------------------------------------------------------------------------------------------------ - // Reset vertex counter for next frame - RLGL.State.vertexCounter = 0; - - // Reset depth for next draw - batch->currentDepth = -1.0f; - - // Restore projection/modelview matrices - RLGL.State.projection = matProjection; - RLGL.State.modelview = matModelView; - - // Reset RLGL.currentBatch->draws array - for (int i = 0; i < RL_DEFAULT_BATCH_DRAWCALLS; i++) - { - batch->draws[i].mode = RL_QUADS; - batch->draws[i].vertexCount = 0; - batch->draws[i].textureId = RLGL.State.defaultTextureId; - } - - // Reset active texture units for next batch - for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) RLGL.State.activeTextureId[i] = 0; - - // Reset draws counter to one draw for the batch - batch->drawCounter = 1; - //------------------------------------------------------------------------------------------------------------ - - // Change to next buffer in the list (in case of multi-buffering) - batch->currentBuffer++; - if (batch->currentBuffer >= batch->bufferCount) batch->currentBuffer = 0; -#endif -} - -// Set the active render batch for rlgl -void rlSetRenderBatchActive(rlRenderBatch *batch) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - rlDrawRenderBatch(RLGL.currentBatch); - - if (batch != NULL) RLGL.currentBatch = batch; - else RLGL.currentBatch = &RLGL.defaultBatch; -#endif -} - -// Update and draw internal render batch -void rlDrawRenderBatchActive(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - rlDrawRenderBatch(RLGL.currentBatch); // NOTE: Stereo rendering is checked inside -#endif -} - -// Check internal buffer overflow for a given number of vertex -// and force a rlRenderBatch draw call if required -bool rlCheckRenderBatchLimit(int vCount) -{ - bool overflow = false; - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if ((RLGL.State.vertexCounter + vCount) >= - (RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4)) - { - overflow = true; - - // Store current primitive drawing mode and texture id - int currentMode = RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode; - int currentTexture = RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId; - - rlDrawRenderBatch(RLGL.currentBatch); // NOTE: Stereo rendering is checked inside - - // Restore state of last batch so new vertices can be added - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode = currentMode; - RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = currentTexture; - } -#endif - - return overflow; -} - -// Textures data management -//----------------------------------------------------------------------------------------- -// Convert image data to OpenGL texture (returns OpenGL valid Id) -unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipmapCount) -{ - unsigned int id = 0; - if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return id; } - - glBindTexture(GL_TEXTURE_2D, 0); // Free any old binding - - // Check texture format support by OpenGL 1.1 (compressed textures not supported) -#if defined(GRAPHICS_API_OPENGL_11) - if (format >= RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) - { - TRACELOG(RL_LOG_WARNING, "GL: OpenGL 1.1 does not support GPU compressed texture formats"); - return id; - } -#else - if ((!RLGL.ExtSupported.texCompDXT) && ((format == RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA) || - (format == RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA) || (format == RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA))) - { - TRACELOG(RL_LOG_WARNING, "GL: DXT compressed texture format not supported"); - return id; - } -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if ((!RLGL.ExtSupported.texCompETC1) && (format == RL_PIXELFORMAT_COMPRESSED_ETC1_RGB)) - { - TRACELOG(RL_LOG_WARNING, "GL: ETC1 compressed texture format not supported"); - return id; - } - - if ((!RLGL.ExtSupported.texCompETC2) && ((format == RL_PIXELFORMAT_COMPRESSED_ETC2_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA))) - { - TRACELOG(RL_LOG_WARNING, "GL: ETC2 compressed texture format not supported"); - return id; - } - - if ((!RLGL.ExtSupported.texCompPVRT) && ((format == RL_PIXELFORMAT_COMPRESSED_PVRT_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA))) - { - TRACELOG(RL_LOG_WARNING, "GL: PVRT compressed texture format not supported"); - return id; - } - - if ((!RLGL.ExtSupported.texCompASTC) && ((format == RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA) || (format == RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA))) - { - TRACELOG(RL_LOG_WARNING, "GL: ASTC compressed texture format not supported"); - return id; - } -#endif -#endif // GRAPHICS_API_OPENGL_11 - - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - - glGenTextures(1, &id); // Generate texture id - - glBindTexture(GL_TEXTURE_2D, id); - - int mipWidth = width; - int mipHeight = height; - int mipOffset = 0; // Mipmap data offset, only used for tracelog - (void)mipOffset; // Used to avoid gcc warnings about unused variable - - // NOTE: Added pointer math separately from function to avoid UBSAN complaining - unsigned char *dataPtr = NULL; - if (data != NULL) dataPtr = (unsigned char *)data; - - // Load the different mipmap levels - for (int i = 0; i < mipmapCount; i++) - { - unsigned int mipSize = rlGetPixelDataSize(mipWidth, mipHeight, format); - - unsigned int glInternalFormat, glFormat, glType; - rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); - - TRACELOG(RL_LOG_DEBUG, "TEXTURE: Load mipmap level %i (%i x %i), size: %i, offset: %i", i, mipWidth, mipHeight, mipSize, mipOffset); - - if (glInternalFormat != 0) - { - if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) glTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, glFormat, glType, dataPtr); -#if !defined(GRAPHICS_API_OPENGL_11) - else glCompressedTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, mipSize, dataPtr); -#endif - -#if defined(GRAPHICS_API_OPENGL_33) - if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) - { - GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ONE }; - glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); - } - else if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA) - { -#if defined(GRAPHICS_API_OPENGL_21) - GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ALPHA }; -#elif defined(GRAPHICS_API_OPENGL_33) - GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_GREEN }; -#endif - glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); - } -#endif - } - - mipWidth /= 2; - mipHeight /= 2; - mipOffset += mipSize; // Increment offset position to next mipmap - if (data != NULL) dataPtr += mipSize; // Increment data pointer to next mipmap - - // Security check for NPOT textures - if (mipWidth < 1) mipWidth = 1; - if (mipHeight < 1) mipHeight = 1; - } - - // Texture parameters configuration - // NOTE: glTexParameteri does NOT affect texture uploading, just the way it's used -#if defined(GRAPHICS_API_OPENGL_ES2) - // NOTE: OpenGL ES 2.0 with no GL_OES_texture_npot support (i.e. WebGL) has limited NPOT support, so CLAMP_TO_EDGE must be used - if (RLGL.ExtSupported.texNPOT) - { - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); // Set texture to repeat on x-axis - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); // Set texture to repeat on y-axis - } - else - { - // NOTE: If using negative texture coordinates (LoadOBJ()), it does not work! - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); // Set texture to clamp on x-axis - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); // Set texture to clamp on y-axis - } -#else - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); // Set texture to repeat on x-axis - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); // Set texture to repeat on y-axis -#endif - - // Magnification and minification filters - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); // Alternative: GL_LINEAR - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); // Alternative: GL_LINEAR - -#if defined(GRAPHICS_API_OPENGL_33) - if (mipmapCount > 1) - { - // Activate trilinear filtering if mipmaps are available - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); - - // Define the maximum number of mipmap levels to be used, 0 is base texture size - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 0); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, mipmapCount - 1); - - // Check if the loaded texture with mipmaps is complete, - // uncomplete textures will draw in black if mipmap filtering is required - //GLint complete = 0; - //glGetTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_IMMUTABLE_FORMAT, &complete); - } -#endif - - // At this point texture is loaded in GPU and texture parameters configured - - // NOTE: If mipmaps were not in data, they are not generated automatically - - // Unbind current texture - glBindTexture(GL_TEXTURE_2D, 0); - - if (id > 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Texture loaded successfully (%ix%i | %s | %i mipmaps)", id, width, height, rlGetPixelFormatName(format), mipmapCount); - else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load texture"); - - return id; -} - -// Load depth texture/renderbuffer (to be attached to fbo) -// WARNING: OpenGL ES 2.0 requires GL_OES_depth_texture and WebGL requires WEBGL_depth_texture extensions -unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer) -{ - unsigned int id = 0; - if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return id; } - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // In case depth textures were not supported, force renderbuffer usage - if (!RLGL.ExtSupported.texDepth) useRenderBuffer = true; - - // NOTE: Letting the implementation to choose the best bit-depth - // Possible formats: GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32 and GL_DEPTH_COMPONENT32F - unsigned int glInternalFormat = GL_DEPTH_COMPONENT; - -#if defined(GRAPHICS_API_OPENGL_ES2) - // WARNING: WebGL platform requires unsized internal format definition (GL_DEPTH_COMPONENT) - // while other platforms using OpenGL ES 2.0 require/support sized internal formats depending on the GPU capabilities - if (!RLGL.ExtSupported.texDepthWebGL || useRenderBuffer) - { - if (RLGL.ExtSupported.maxDepthBits == 32) glInternalFormat = GL_DEPTH_COMPONENT32_OES; - else if (RLGL.ExtSupported.maxDepthBits == 24) glInternalFormat = GL_DEPTH_COMPONENT24_OES; - else glInternalFormat = GL_DEPTH_COMPONENT16; - } -#endif -#if defined(GRAPHICS_API_OPENGL_ES3) - // NOTE: This sized internal format should also work for WebGL 2.0 - // WARNING: Specification only allows GL_DEPTH_COMPONENT32F for GL_FLOAT type - // REF: https://registry.khronos.org/OpenGL-Refpages/es3.0/html/glTexImage2D.xhtml - if (RLGL.ExtSupported.maxDepthBits == 24) glInternalFormat = GL_DEPTH_COMPONENT24; - else glInternalFormat = GL_DEPTH_COMPONENT16; -#endif - - if (!useRenderBuffer && RLGL.ExtSupported.texDepth) - { - glGenTextures(1, &id); - glBindTexture(GL_TEXTURE_2D, id); - glTexImage2D(GL_TEXTURE_2D, 0, glInternalFormat, width, height, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, NULL); - - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - - glBindTexture(GL_TEXTURE_2D, 0); - - TRACELOG(RL_LOG_INFO, "TEXTURE: Depth texture loaded successfully"); - } - else - { - // Create the renderbuffer that will serve as the depth attachment for the framebuffer - // NOTE: A renderbuffer is simpler than a texture and could offer better performance on embedded devices - glGenRenderbuffers(1, &id); - glBindRenderbuffer(GL_RENDERBUFFER, id); - glRenderbufferStorage(GL_RENDERBUFFER, glInternalFormat, width, height); - - glBindRenderbuffer(GL_RENDERBUFFER, 0); - - TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Depth renderbuffer loaded successfully (%i bits)", id, (RLGL.ExtSupported.maxDepthBits >= 24)? RLGL.ExtSupported.maxDepthBits : 16); - } -#endif - - return id; -} - -// Load texture cubemap -// NOTE: Cubemap data is expected to be 6 images in a single data array (one after the other), -// expected the following convention: +X, -X, +Y, -Y, +Z, -Z -unsigned int rlLoadTextureCubemap(const void *data, int size, int format, int mipmapCount) -{ - unsigned int id = 0; - if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return id; } - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - int mipSize = size; - - // NOTE: Added pointer math separately from function to avoid UBSAN complaining - unsigned char *dataPtr = NULL; - if (data != NULL) dataPtr = (unsigned char *)data; - - unsigned int dataSize = rlGetPixelDataSize(size, size, format); - - glGenTextures(1, &id); - glBindTexture(GL_TEXTURE_CUBE_MAP, id); - - unsigned int glInternalFormat, glFormat, glType; - rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); - - if (glInternalFormat != 0) - { - // Load cubemap faces/mipmaps - for (int i = 0; i < 6*mipmapCount; i++) - { - int mipmapLevel = i/6; - int face = i%6; - - if (data == NULL) - { - if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) - { - if ((format == RL_PIXELFORMAT_UNCOMPRESSED_R32) || - (format == RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32) || - (format == RL_PIXELFORMAT_UNCOMPRESSED_R16) || - (format == RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16)) TRACELOG(RL_LOG_WARNING, "TEXTURES: Cubemap requested format not supported"); - else glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, glFormat, glType, NULL); - } - else TRACELOG(RL_LOG_WARNING, "TEXTURES: Empty cubemap creation does not support compressed format"); - } - else - { - if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, glFormat, glType, (unsigned char *)dataPtr + face*dataSize); - else glCompressedTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, dataSize, (unsigned char *)dataPtr + face*dataSize); - } - -#if defined(GRAPHICS_API_OPENGL_33) - if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) - { - GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ONE }; - glTexParameteriv(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); - } - else if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA) - { -#if defined(GRAPHICS_API_OPENGL_21) - GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ALPHA }; -#elif defined(GRAPHICS_API_OPENGL_33) - GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_GREEN }; -#endif - glTexParameteriv(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); - } -#endif - if (face == 5) - { - mipSize /= 2; - if (data != NULL) dataPtr += dataSize*6; // Increment data pointer to next mipmap - - // Security check for NPOT textures - if (mipSize < 1) mipSize = 1; - - dataSize = rlGetPixelDataSize(mipSize, mipSize, format); - } - } - } - - // Set cubemap texture sampling parameters - if (mipmapCount > 1) glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); - else glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - - glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); -#if defined(GRAPHICS_API_OPENGL_33) - glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE); // Flag not supported on OpenGL ES 2.0 -#endif - - glBindTexture(GL_TEXTURE_CUBE_MAP, 0); -#endif - - if (id > 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Cubemap texture loaded successfully (%ix%i)", id, size, size); - else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load cubemap texture"); - - return id; -} - -// Update already loaded texture in GPU with new data -// WARNING: Not possible to know safely if internal texture format is the expected one... -void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data) -{ - glBindTexture(GL_TEXTURE_2D, id); - - unsigned int glInternalFormat, glFormat, glType; - rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); - - if ((glInternalFormat != 0) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)) - { - glTexSubImage2D(GL_TEXTURE_2D, 0, offsetX, offsetY, width, height, glFormat, glType, data); - } - else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Failed to update for current texture format (%i)", id, format); -} - -// Get OpenGL internal formats and data type from raylib PixelFormat -void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType) -{ - *glInternalFormat = 0; - *glFormat = 0; - *glType = 0; - - switch (format) - { - #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_21) || defined(GRAPHICS_API_OPENGL_ES2) - // NOTE: on OpenGL ES 2.0 (WebGL), internalFormat must match format and options allowed are: GL_LUMINANCE, GL_RGB, GL_RGBA - case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_UNSIGNED_BYTE; break; - case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: *glInternalFormat = GL_LUMINANCE_ALPHA; *glFormat = GL_LUMINANCE_ALPHA; *glType = GL_UNSIGNED_BYTE; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_UNSIGNED_SHORT_5_6_5; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_UNSIGNED_BYTE; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_5_5_5_1; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_4_4_4_4; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_BYTE; break; - #if !defined(GRAPHICS_API_OPENGL_11) - #if defined(GRAPHICS_API_OPENGL_ES3) - case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_R32F_EXT; *glFormat = GL_RED_EXT; *glType = GL_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB32F_EXT; *glFormat = GL_RGB; *glType = GL_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA32F_EXT; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_R16F_EXT; *glFormat = GL_RED_EXT; *glType = GL_HALF_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB16F_EXT; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA16F_EXT; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT; break; - #else - case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float - #if defined(GRAPHICS_API_OPENGL_21) - case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_HALF_FLOAT_ARB; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT_ARB; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT_ARB; break; - #else // defined(GRAPHICS_API_OPENGL_ES2) - case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float - #endif - #endif - #endif - #elif defined(GRAPHICS_API_OPENGL_33) - case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: *glInternalFormat = GL_R8; *glFormat = GL_RED; *glType = GL_UNSIGNED_BYTE; break; - case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: *glInternalFormat = GL_RG8; *glFormat = GL_RG; *glType = GL_UNSIGNED_BYTE; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: *glInternalFormat = GL_RGB565; *glFormat = GL_RGB; *glType = GL_UNSIGNED_SHORT_5_6_5; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: *glInternalFormat = GL_RGB8; *glFormat = GL_RGB; *glType = GL_UNSIGNED_BYTE; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: *glInternalFormat = GL_RGB5_A1; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_5_5_5_1; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: *glInternalFormat = GL_RGBA4; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_4_4_4_4; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: *glInternalFormat = GL_RGBA8; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_BYTE; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_R32F; *glFormat = GL_RED; *glType = GL_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB32F; *glFormat = GL_RGB; *glType = GL_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA32F; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_R16F; *glFormat = GL_RED; *glType = GL_HALF_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB16F; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA16F; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT; break; - #endif - #if !defined(GRAPHICS_API_OPENGL_11) - case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGB_S3TC_DXT1_EXT; break; - case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT; break; - case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT; break; - case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT; break; - case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: if (RLGL.ExtSupported.texCompETC1) *glInternalFormat = GL_ETC1_RGB8_OES; break; // NOTE: Requires OpenGL ES 2.0 or OpenGL 4.3 - case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: if (RLGL.ExtSupported.texCompETC2) *glInternalFormat = GL_COMPRESSED_RGB8_ETC2; break; // NOTE: Requires OpenGL ES 3.0 or OpenGL 4.3 - case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: if (RLGL.ExtSupported.texCompETC2) *glInternalFormat = GL_COMPRESSED_RGBA8_ETC2_EAC; break; // NOTE: Requires OpenGL ES 3.0 or OpenGL 4.3 - case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: if (RLGL.ExtSupported.texCompPVRT) *glInternalFormat = GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG; break; // NOTE: Requires PowerVR GPU - case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: if (RLGL.ExtSupported.texCompPVRT) *glInternalFormat = GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; break; // NOTE: Requires PowerVR GPU - case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: if (RLGL.ExtSupported.texCompASTC) *glInternalFormat = GL_COMPRESSED_RGBA_ASTC_4x4_KHR; break; // NOTE: Requires OpenGL ES 3.1 or OpenGL 4.3 - case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: if (RLGL.ExtSupported.texCompASTC) *glInternalFormat = GL_COMPRESSED_RGBA_ASTC_8x8_KHR; break; // NOTE: Requires OpenGL ES 3.1 or OpenGL 4.3 - #endif - default: TRACELOG(RL_LOG_WARNING, "TEXTURE: Current format not supported (%i)", format); break; - } -} - -// Unload texture from GPU memory -void rlUnloadTexture(unsigned int id) -{ - glDeleteTextures(1, &id); -} - -// Generate mipmap data for selected texture -// NOTE: Only supports GPU mipmap generation -void rlGenTextureMipmaps(unsigned int id, int width, int height, int format, int *mipmaps) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindTexture(GL_TEXTURE_2D, id); - - // Check if texture is power-of-two (POT) - bool texIsPOT = false; - - if (((width > 0) && ((width & (width - 1)) == 0)) && - ((height > 0) && ((height & (height - 1)) == 0))) texIsPOT = true; - - if ((texIsPOT) || (RLGL.ExtSupported.texNPOT)) - { - //glHint(GL_GENERATE_MIPMAP_HINT, GL_DONT_CARE); // Hint for mipmaps generation algorithm: GL_FASTEST, GL_NICEST, GL_DONT_CARE - glGenerateMipmap(GL_TEXTURE_2D); // Generate mipmaps automatically - - #define MIN(a,b) (((a)<(b))? (a):(b)) - #define MAX(a,b) (((a)>(b))? (a):(b)) - - *mipmaps = 1 + (int)floor(log(MAX(width, height))/log(2)); - TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Mipmaps generated automatically, total: %i", id, *mipmaps); - } - else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Failed to generate mipmaps", id); - - glBindTexture(GL_TEXTURE_2D, 0); -#else - TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] GPU mipmap generation not supported", id); -#endif -} - -// Read texture pixel data -void *rlReadTexturePixels(unsigned int id, int width, int height, int format) -{ - void *pixels = NULL; - -#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) - glBindTexture(GL_TEXTURE_2D, id); - - // NOTE: Using texture id, some texture info can be retrieved (but not on OpenGL ES 2.0) - // Possible texture info: GL_TEXTURE_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE - //int width, height, format; - //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &width); - //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &height); - //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_INTERNAL_FORMAT, &format); - - // NOTE: Each row written to or read from by OpenGL pixel operations like glGetTexImage are aligned to a 4 byte boundary by default, which may add some padding - // Use glPixelStorei to modify padding with the GL_[UN]PACK_ALIGNMENT setting - // GL_PACK_ALIGNMENT affects operations that read from OpenGL memory (glReadPixels, glGetTexImage, etc.) - // GL_UNPACK_ALIGNMENT affects operations that write to OpenGL memory (glTexImage, etc.) - glPixelStorei(GL_PACK_ALIGNMENT, 1); - - unsigned int glInternalFormat, glFormat, glType; - rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); - unsigned int size = rlGetPixelDataSize(width, height, format); - - if ((glInternalFormat != 0) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)) - { - pixels = RL_CALLOC(size, 1); - glGetTexImage(GL_TEXTURE_2D, 0, glFormat, glType, pixels); - } - else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Data retrieval not suported for pixel format (%i)", id, format); - - glBindTexture(GL_TEXTURE_2D, 0); -#endif - -#if defined(GRAPHICS_API_OPENGL_ES2) - // glGetTexImage() is not available on OpenGL ES 2.0 - // Texture width and height are required on OpenGL ES 2.0, there is no way to get it from texture id - // Two possible Options: - // 1 - Bind texture to color fbo attachment and glReadPixels() - // 2 - Create an fbo, activate it, render quad with texture, glReadPixels() - // Using Option 1, just need to care for texture format on retrieval - // NOTE: This behaviour could be conditioned by graphic driver... - unsigned int fboId = rlLoadFramebuffer(); - - glBindFramebuffer(GL_FRAMEBUFFER, fboId); - glBindTexture(GL_TEXTURE_2D, 0); - - // Attach our texture to FBO - glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, id, 0); - - // Reading data as RGBA because FBO texture is configured as RGBA, despite binding another texture format - pixels = RL_CALLOC(rlGetPixelDataSize(width, height, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8), 1); - glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, pixels); - - glBindFramebuffer(GL_FRAMEBUFFER, 0); - - // Clean up temporal fbo - rlUnloadFramebuffer(fboId); -#endif - - return pixels; -} - -// Copy framebuffer pixel data to internal buffer -void rlCopyFramebuffer(int x, int y, int width, int height, int format, void *pixels) -{ -#if defined(GRAPHICS_API_OPENGL_11_SOFTWARE) - unsigned int glInternalFormat, glFormat, glType; - rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); // Get OpenGL texture format - swCopyFramebuffer(x, y, width, height, glFormat, glType, pixels); -#endif -} - -// Resize internal framebuffer -void rlResizeFramebuffer(int width, int height) -{ -#if defined(GRAPHICS_API_OPENGL_11_SOFTWARE) - swResizeFramebuffer(width, height); -#endif -} - -// Read screen pixel data (color buffer) -unsigned char *rlReadScreenPixels(int width, int height) -{ - unsigned char *imgData = (unsigned char *)RL_CALLOC(width*height*4, sizeof(unsigned char)); - - // NOTE: glReadPixels() returns image flipped vertically -> (0,0) is the bottom left corner of the framebuffer - // WARNING: Getting alpha channel! Be careful, it can be transparent if not cleared properly! - glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, imgData); - - // Flip image vertically - // NOTE: Alpha value has already been applied to RGB in framebuffer, not needed anymore - for (int y = height - 1; y >= height/2; y--) - { - for (int x = 0; x < (width*4); x += 4) - { - unsigned int s = ((height - 1) - y)*width*4 + x; - unsigned int e = y*width*4 + x; - - unsigned char r = imgData[s]; - unsigned char g = imgData[s+1]; - unsigned char b = imgData[s+2]; - - imgData[s] = imgData[e]; - imgData[s+1] = imgData[e+1]; - imgData[s+2] = imgData[e+2]; - imgData[s+3] = 255; // Set alpha component value to 255 (no trasparent image retrieval) - - imgData[e] = r; - imgData[e+1] = g; - imgData[e+2] = b; - imgData[e+3] = 255; // Ditto - } - } - - return imgData; // NOTE: image data should be freed -} - -// Framebuffer management (fbo) -//----------------------------------------------------------------------------------------- -// Load a framebuffer to be used for rendering -// NOTE: No textures attached -unsigned int rlLoadFramebuffer(void) -{ - unsigned int fboId = 0; - if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return fboId; } - -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) - glGenFramebuffers(1, &fboId); // Create the framebuffer object - glBindFramebuffer(GL_FRAMEBUFFER, 0); // Unbind any framebuffer -#endif - - return fboId; -} - -// Attach color buffer texture to an fbo (unloads previous attachment) -// NOTE: Attach type: 0-Color, 1-Depth renderbuffer, 2-Depth texture -void rlFramebufferAttach(unsigned int fboId, unsigned int texId, int attachType, int texType, int mipLevel) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) - glBindFramebuffer(GL_FRAMEBUFFER, fboId); - - switch (attachType) - { - case RL_ATTACHMENT_COLOR_CHANNEL0: - case RL_ATTACHMENT_COLOR_CHANNEL1: - case RL_ATTACHMENT_COLOR_CHANNEL2: - case RL_ATTACHMENT_COLOR_CHANNEL3: - case RL_ATTACHMENT_COLOR_CHANNEL4: - case RL_ATTACHMENT_COLOR_CHANNEL5: - case RL_ATTACHMENT_COLOR_CHANNEL6: - case RL_ATTACHMENT_COLOR_CHANNEL7: - { - if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_TEXTURE_2D, texId, mipLevel); - else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_RENDERBUFFER, texId); - else if (texType >= RL_ATTACHMENT_CUBEMAP_POSITIVE_X) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_TEXTURE_CUBE_MAP_POSITIVE_X + texType, texId, mipLevel); - } break; - case RL_ATTACHMENT_DEPTH: - { - if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, texId, mipLevel); - else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, texId); - } break; - case RL_ATTACHMENT_STENCIL: - { - if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D, texId, mipLevel); - else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, texId); - } break; - default: break; - } - - glBindFramebuffer(GL_FRAMEBUFFER, 0); -#endif -} - -// Verify render texture is complete -bool rlFramebufferComplete(unsigned int id) -{ - bool result = false; - -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) - glBindFramebuffer(GL_FRAMEBUFFER, id); - - GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); - - if (status != GL_FRAMEBUFFER_COMPLETE) - { - switch (status) - { - case GL_FRAMEBUFFER_UNSUPPORTED: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer is unsupported", id); break; - case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has incomplete attachment", id); break; -#if defined(GRAPHICS_API_OPENGL_ES2) - case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has incomplete dimensions", id); break; -#endif - case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has a missing attachment", id); break; - default: break; - } - } - - glBindFramebuffer(GL_FRAMEBUFFER, 0); - - result = (status == GL_FRAMEBUFFER_COMPLETE); -#endif - - return result; -} - -// Unload framebuffer from GPU memory -// NOTE: All attached textures/cubemaps/renderbuffers are also deleted -void rlUnloadFramebuffer(unsigned int id) -{ -#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) - // Query depth attachment to automatically delete texture/renderbuffer - int depthType = 0; - glBindFramebuffer(GL_FRAMEBUFFER, id); // Bind framebuffer to query depth texture type - glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &depthType); - - // WARNING: WebGL: INVALID_ENUM: getFramebufferAttachmentParameter: invalid parameter name - // REF: https://registry.khronos.org/webgl/specs/latest/1.0/ - int depthId = 0; - glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, &depthId); - - unsigned int depthIdU = (unsigned int)depthId; - if (depthType == GL_RENDERBUFFER) glDeleteRenderbuffers(1, &depthIdU); - else if (depthType == GL_TEXTURE) glDeleteTextures(1, &depthIdU); - - // NOTE: If a texture object is deleted while its image is attached to the *currently bound* framebuffer, - // the texture image is automatically detached from the currently bound framebuffer - - glBindFramebuffer(GL_FRAMEBUFFER, 0); - glDeleteFramebuffers(1, &id); - - TRACELOG(RL_LOG_INFO, "FBO: [ID %i] Unloaded framebuffer from VRAM (GPU)", id); -#endif -} - -// Vertex data management -//----------------------------------------------------------------------------------------- -// Load a new attributes buffer -unsigned int rlLoadVertexBuffer(const void *buffer, int size, bool dynamic) -{ - unsigned int id = 0; - if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return id; } - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glGenBuffers(1, &id); - glBindBuffer(GL_ARRAY_BUFFER, id); - glBufferData(GL_ARRAY_BUFFER, size, buffer, dynamic? GL_DYNAMIC_DRAW : GL_STATIC_DRAW); -#endif - - return id; -} - -// Load a new attributes element buffer -unsigned int rlLoadVertexBufferElement(const void *buffer, int size, bool dynamic) -{ - unsigned int id = 0; - if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return id; } - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glGenBuffers(1, &id); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); - glBufferData(GL_ELEMENT_ARRAY_BUFFER, size, buffer, dynamic? GL_DYNAMIC_DRAW : GL_STATIC_DRAW); -#endif - - return id; -} - -// Enable vertex buffer (VBO) -void rlEnableVertexBuffer(unsigned int id) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindBuffer(GL_ARRAY_BUFFER, id); -#endif -} - -// Disable vertex buffer (VBO) -void rlDisableVertexBuffer(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindBuffer(GL_ARRAY_BUFFER, 0); -#endif -} - -// Enable vertex buffer element (VBO element) -void rlEnableVertexBufferElement(unsigned int id) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); -#endif -} - -// Disable vertex buffer element (VBO element) -void rlDisableVertexBufferElement(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); -#endif -} - -// Update vertex buffer with new data -// NOTE: dataSize and offset must be provided in bytes -void rlUpdateVertexBuffer(unsigned int id, const void *data, int dataSize, int offset) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindBuffer(GL_ARRAY_BUFFER, id); - glBufferSubData(GL_ARRAY_BUFFER, offset, dataSize, data); -#endif -} - -// Update vertex buffer elements with new data -// NOTE: dataSize and offset must be provided in bytes -void rlUpdateVertexBufferElements(unsigned int id, const void *data, int dataSize, int offset) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); - glBufferSubData(GL_ELEMENT_ARRAY_BUFFER, offset, dataSize, data); -#endif -} - -// Enable vertex array object (VAO) -bool rlEnableVertexArray(unsigned int vaoId) -{ - bool result = false; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if (RLGL.ExtSupported.vao) - { - glBindVertexArray(vaoId); - result = true; - } -#endif - return result; -} - -// Disable vertex array object (VAO) -void rlDisableVertexArray(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if (RLGL.ExtSupported.vao) glBindVertexArray(0); -#endif -} - -// Enable vertex attribute index -void rlEnableVertexAttribute(unsigned int index) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glEnableVertexAttribArray(index); -#endif -} - -// Disable vertex attribute index -void rlDisableVertexAttribute(unsigned int index) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glDisableVertexAttribArray(index); -#endif -} - -// Draw vertex array -void rlDrawVertexArray(int offset, int count) -{ - glDrawArrays(GL_TRIANGLES, offset, count); -} - -// Draw vertex array elements -void rlDrawVertexArrayElements(int offset, int count, const void *buffer) -{ - // NOTE: Added pointer math separately from function to avoid UBSAN complaining - unsigned short *bufferPtr = (unsigned short *)buffer; - if (offset > 0) bufferPtr += offset; - - glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)bufferPtr); -} - -// Draw vertex array instanced -void rlDrawVertexArrayInstanced(int offset, int count, int instances) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glDrawArraysInstanced(GL_TRIANGLES, offset, count, instances); -#endif -} - -// Draw vertex array elements instanced -void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffer, int instances) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // NOTE: Added pointer math separately from function to avoid UBSAN complaining - unsigned short *bufferPtr = (unsigned short *)buffer; - if (offset > 0) bufferPtr += offset; - - glDrawElementsInstanced(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)bufferPtr, instances); -#endif -} - -// Enable vertex state pointer -void rlEnableStatePointer(int vertexAttribType, void *buffer) -{ -#if defined(GRAPHICS_API_OPENGL_11) - if (buffer != NULL) glEnableClientState(vertexAttribType); - switch (vertexAttribType) - { - case GL_VERTEX_ARRAY: glVertexPointer(3, GL_FLOAT, 0, buffer); break; - case GL_TEXTURE_COORD_ARRAY: glTexCoordPointer(2, GL_FLOAT, 0, buffer); break; - case GL_NORMAL_ARRAY: if (buffer != NULL) glNormalPointer(GL_FLOAT, 0, buffer); break; - case GL_COLOR_ARRAY: if (buffer != NULL) glColorPointer(4, GL_UNSIGNED_BYTE, 0, buffer); break; - //case GL_INDEX_ARRAY: if (buffer != NULL) glIndexPointer(GL_SHORT, 0, buffer); break; // Indexed colors - default: break; - } -#endif -} - -// Disable vertex state pointer -void rlDisableStatePointer(int vertexAttribType) -{ -#if defined(GRAPHICS_API_OPENGL_11) - glDisableClientState(vertexAttribType); -#endif -} - -// Load vertex array object (VAO) -unsigned int rlLoadVertexArray(void) -{ - unsigned int vaoId = 0; - if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return vaoId; } - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if (RLGL.ExtSupported.vao) glGenVertexArrays(1, &vaoId); -#endif - - return vaoId; -} - -// Set vertex attribute -void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, int offset) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // NOTE: Data type could be: GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT - // Additional types (depends on OpenGL version or extensions): - // - GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, - // - GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_10F_11F_11F_REV - - size_t offsetNative = offset; - glVertexAttribPointer(index, compSize, type, normalized, stride, (void *)offsetNative); -#endif -} - -// Set vertex attribute divisor -void rlSetVertexAttributeDivisor(unsigned int index, int divisor) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glVertexAttribDivisor(index, divisor); -#endif -} - -// Unload vertex array object (VAO) -void rlUnloadVertexArray(unsigned int vaoId) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if (RLGL.ExtSupported.vao) - { - glBindVertexArray(0); - glDeleteVertexArrays(1, &vaoId); - TRACELOG(RL_LOG_INFO, "VAO: [ID %i] Unloaded vertex array data from VRAM (GPU)", vaoId); - } -#endif -} - -// Unload vertex buffer (VBO) -void rlUnloadVertexBuffer(unsigned int vboId) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glDeleteBuffers(1, &vboId); - //TRACELOG(RL_LOG_INFO, "VBO: Unloaded vertex data from VRAM (GPU)"); -#endif -} - -// Shaders management -//----------------------------------------------------------------------------------------------- -// Load shader from code strings -// NOTE: If shader string is NULL, using default vertex/fragment shaders -unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode) -{ - unsigned int id = 0; - if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return id; } - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - unsigned int vertexShaderId = 0; - unsigned int fragmentShaderId = 0; - - // Compile vertex shader (if provided) - // NOTE: If not vertex shader is provided, use default one - if (vsCode != NULL) vertexShaderId = rlCompileShader(vsCode, GL_VERTEX_SHADER); - else vertexShaderId = RLGL.State.defaultVShaderId; - - // Compile fragment shader (if provided) - // NOTE: If not vertex shader is provided, use default one - if (fsCode != NULL) fragmentShaderId = rlCompileShader(fsCode, GL_FRAGMENT_SHADER); - else fragmentShaderId = RLGL.State.defaultFShaderId; - - // In case vertex and fragment shader are the default ones, no need to recompile, just assign the default shader program id - if ((vertexShaderId == RLGL.State.defaultVShaderId) && (fragmentShaderId == RLGL.State.defaultFShaderId)) id = RLGL.State.defaultShaderId; - else if ((vertexShaderId > 0) && (fragmentShaderId > 0)) - { - // One of or both shader are new, a new shader program needs to be compiled - id = rlLoadShaderProgram(vertexShaderId, fragmentShaderId); - - // Detaching and deleting vertex/fragment shaders (if not default ones) - // WARNING: Detach shader before deletion to make sure memory is freed - if (vertexShaderId != RLGL.State.defaultVShaderId) - { - // WARNING: Shader program linkage could fail and returned id is 0 - if (id > 0) glDetachShader(id, vertexShaderId); - glDeleteShader(vertexShaderId); - } - if (fragmentShaderId != RLGL.State.defaultFShaderId) - { - // WARNING: Shader program linkage could fail and returned id is 0 - if (id > 0) glDetachShader(id, fragmentShaderId); - glDeleteShader(fragmentShaderId); - } - - // In case shader program loading failed, assign default shader - if (id == 0) - { - // In case shader loading fails, reassigning default shader - TRACELOG(RL_LOG_WARNING, "SHADER: Failed to load custom shader code, using default shader"); - id = RLGL.State.defaultShaderId; - } - /* - else - { - // Get available shader uniforms - // NOTE: This information is useful for debug... - int uniformCount = -1; - glGetProgramiv(id, GL_ACTIVE_UNIFORMS, &uniformCount); - - for (int i = 0; i < uniformCount; i++) - { - int namelen = -1; - int num = -1; - char name[256] = { 0 }; // Assume no variable names longer than 256 - GLenum type = GL_ZERO; - - // Get the name of the uniforms - glGetActiveUniform(id, i, sizeof(name) - 1, &namelen, &num, &type, name); - - name[namelen] = 0; - TRACELOG(RL_LOG_DEBUG, "SHADER: [ID %i] Active uniform (%s) set at location: %i", id, name, glGetUniformLocation(id, name)); - } - } - */ - } -#endif - - return id; -} - -// Compile custom shader and return shader id -unsigned int rlCompileShader(const char *shaderCode, int type) -{ - unsigned int shaderId = 0; - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - shaderId = glCreateShader(type); - glShaderSource(shaderId, 1, &shaderCode, NULL); - - GLint success = 0; - glCompileShader(shaderId); - glGetShaderiv(shaderId, GL_COMPILE_STATUS, &success); - - if (success == GL_FALSE) - { - switch (type) - { - case GL_VERTEX_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile vertex shader code", shaderId); break; - case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile fragment shader code", shaderId); break; - //case GL_GEOMETRY_SHADER: - #if defined(GRAPHICS_API_OPENGL_43) - case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile compute shader code", shaderId); break; - #elif defined(GRAPHICS_API_OPENGL_33) - case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43", shaderId); break; - #endif - default: break; - } - - int maxLength = 0; - glGetShaderiv(shaderId, GL_INFO_LOG_LENGTH, &maxLength); - - if (maxLength > 0) - { - int length = 0; - char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); - glGetShaderInfoLog(shaderId, maxLength, &length, log); - TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Compile error: %s", shaderId, log); - RL_FREE(log); - } - - // Unload object allocated by glCreateShader(), - // despite failing in the compilation process - glDeleteShader(shaderId); - shaderId = 0; - } - else - { - switch (type) - { - case GL_VERTEX_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Vertex shader compiled successfully", shaderId); break; - case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Fragment shader compiled successfully", shaderId); break; - //case GL_GEOMETRY_SHADER: - #if defined(GRAPHICS_API_OPENGL_43) - case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader compiled successfully", shaderId); break; - #elif defined(GRAPHICS_API_OPENGL_33) - case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43", shaderId); break; - #endif - default: break; - } - } -#endif - - return shaderId; -} - -// Load custom shader strings and return program id -unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fShaderId) -{ - unsigned int programId = 0; - if (!isGpuReady) { TRACELOG(RL_LOG_WARNING, "GL: GPU is not ready to load data, trying to load before InitWindow()?"); return programId; } - -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - GLint success = 0; - programId = glCreateProgram(); - - glAttachShader(programId, vShaderId); - glAttachShader(programId, fShaderId); - - // Default attribute shader locations must be bound before linking - // NOTE: There is no problem with binding a generic attribute index to an attribute variable name - // that is never used; if some attrib name is no found on the shader, it locations becomes -1 - glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION); - glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD); - glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL, RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL); - glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR, RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR); - glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT, RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT); - glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2); - glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_INSTANCETRANSFORM, RL_DEFAULT_SHADER_ATTRIB_NAME_INSTANCETRANSFORM); - glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEINDICES, RL_DEFAULT_SHADER_ATTRIB_NAME_BONEINDICES); - glBindAttribLocation(programId, RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS, RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS); - - glLinkProgram(programId); - - // NOTE: All uniform variables are intitialised to 0 when a program links - - glGetProgramiv(programId, GL_LINK_STATUS, &success); - - if (success == GL_FALSE) - { - TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to link shader program", programId); - - int maxLength = 0; - glGetProgramiv(programId, GL_INFO_LOG_LENGTH, &maxLength); - - if (maxLength > 0) - { - int length = 0; - char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); - glGetProgramInfoLog(programId, maxLength, &length, log); - TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Link error: %s", programId, log); - RL_FREE(log); - } - - glDeleteProgram(programId); - - programId = 0; - } - else - { - // Get the size of compiled shader program (not available on OpenGL ES 2.0) - // NOTE: If GL_LINK_STATUS is GL_FALSE, program binary length is zero - //GLint binarySize = 0; - //glGetProgramiv(id, GL_PROGRAM_BINARY_LENGTH, &binarySize); - - TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Program shader loaded successfully", programId); - } -#endif - return programId; -} - -// Unload shader program -void rlUnloadShaderProgram(unsigned int id) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glDeleteProgram(id); - - TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Unloaded shader program data from VRAM (GPU)", id); -#endif -} - -// Get shader location uniform -// NOTE: First parameter refers to shader program id -int rlGetLocationUniform(unsigned int shaderId, const char *uniformName) -{ - int location = -1; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - location = glGetUniformLocation(shaderId, uniformName); - - //if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader uniform: %s", shaderId, uniformName); - //else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader uniform (%s) set at location: %i", shaderId, uniformName, location); -#endif - return location; -} - -// Get shader location attribute -// NOTE: First parameter refers to shader program id -int rlGetLocationAttrib(unsigned int shaderId, const char *attribName) -{ - int location = -1; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - location = glGetAttribLocation(shaderId, attribName); - - //if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader attribute: %s", shaderId, attribName); - //else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader attribute (%s) set at location: %i", shaderId, attribName, location); -#endif - return location; -} - -// Set shader value uniform -void rlSetUniform(int locIndex, const void *value, int uniformType, int count) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - switch (uniformType) - { - case RL_SHADER_UNIFORM_FLOAT: glUniform1fv(locIndex, count, (float *)value); break; - case RL_SHADER_UNIFORM_VEC2: glUniform2fv(locIndex, count, (float *)value); break; - case RL_SHADER_UNIFORM_VEC3: glUniform3fv(locIndex, count, (float *)value); break; - case RL_SHADER_UNIFORM_VEC4: glUniform4fv(locIndex, count, (float *)value); break; - case RL_SHADER_UNIFORM_INT: glUniform1iv(locIndex, count, (int *)value); break; - case RL_SHADER_UNIFORM_IVEC2: glUniform2iv(locIndex, count, (int *)value); break; - case RL_SHADER_UNIFORM_IVEC3: glUniform3iv(locIndex, count, (int *)value); break; - case RL_SHADER_UNIFORM_IVEC4: glUniform4iv(locIndex, count, (int *)value); break; - #if !defined(GRAPHICS_API_OPENGL_ES2) - case RL_SHADER_UNIFORM_UINT: glUniform1uiv(locIndex, count, (unsigned int *)value); break; - case RL_SHADER_UNIFORM_UIVEC2: glUniform2uiv(locIndex, count, (unsigned int *)value); break; - case RL_SHADER_UNIFORM_UIVEC3: glUniform3uiv(locIndex, count, (unsigned int *)value); break; - case RL_SHADER_UNIFORM_UIVEC4: glUniform4uiv(locIndex, count, (unsigned int *)value); break; - #endif - case RL_SHADER_UNIFORM_SAMPLER2D: glUniform1iv(locIndex, count, (int *)value); break; - default: TRACELOG(RL_LOG_WARNING, "SHADER: Failed to set uniform value, data type not recognized"); - } -#endif -} - -// Set shader value attribute -void rlSetVertexAttributeDefault(int locIndex, const void *value, int attribType, int count) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - switch (attribType) - { - case RL_SHADER_ATTRIB_FLOAT: if (count == 1) glVertexAttrib1fv(locIndex, (float *)value); break; - case RL_SHADER_ATTRIB_VEC2: if (count == 2) glVertexAttrib2fv(locIndex, (float *)value); break; - case RL_SHADER_ATTRIB_VEC3: if (count == 3) glVertexAttrib3fv(locIndex, (float *)value); break; - case RL_SHADER_ATTRIB_VEC4: if (count == 4) glVertexAttrib4fv(locIndex, (float *)value); break; - default: TRACELOG(RL_LOG_WARNING, "SHADER: Failed to set attrib default value, data type not recognized"); - } -#endif -} - -// Set shader value uniform matrix -void rlSetUniformMatrix(int locIndex, Matrix mat) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glUniformMatrix4fv(locIndex, 1, false, rlMatrixToFloat(mat)); -#endif -} - -// Set shader value uniform matrix -void rlSetUniformMatrices(int locIndex, const Matrix *matrices, int count) -{ -#if defined(GRAPHICS_API_OPENGL_33) - glUniformMatrix4fv(locIndex, count, true, (const float *)matrices); -#elif defined(GRAPHICS_API_OPENGL_ES2) - // WARNING: WebGL does not support Matrix transpose ("true" parameter) - // REF: https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/uniformMatrix - glUniformMatrix4fv(locIndex, count, false, (const float *)matrices); -#endif -} - -// Set shader value uniform sampler -void rlSetUniformSampler(int locIndex, unsigned int textureId) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // Check if texture is already active - for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) - { - if (RLGL.State.activeTextureId[i] == textureId) - { - glUniform1i(locIndex, 1 + i); - return; - } - } - - // Register a new active texture for the internal batch system - // NOTE: Default texture is always activated as GL_TEXTURE0 - for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) - { - if (RLGL.State.activeTextureId[i] == 0) - { - glUniform1i(locIndex, 1 + i); // Activate new texture unit - RLGL.State.activeTextureId[i] = textureId; // Save texture id for binding on drawing - break; - } - } -#endif -} - -// Set shader currently active (id and locations) -void rlSetShader(unsigned int id, int *locs) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - if (RLGL.State.currentShaderId != id) - { - rlDrawRenderBatch(RLGL.currentBatch); - RLGL.State.currentShaderId = id; - RLGL.State.currentShaderLocs = locs; - } -#endif -} - -// Load compute shader program -unsigned int rlLoadComputeShaderProgram(unsigned int shaderId) -{ - unsigned int programId = 0; - -#if defined(GRAPHICS_API_OPENGL_43) - GLint success = 0; - programId = glCreateProgram(); - glAttachShader(programId, shaderId); - glLinkProgram(programId); - - // NOTE: All uniform variables are intitialised to 0 when a program links - - glGetProgramiv(programId, GL_LINK_STATUS, &success); - - if (success == GL_FALSE) - { - TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to link compute shader program", programId); - - int maxLength = 0; - glGetProgramiv(programId, GL_INFO_LOG_LENGTH, &maxLength); - - if (maxLength > 0) - { - int length = 0; - char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); - glGetProgramInfoLog(programId, maxLength, &length, log); - TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Link error: %s", programId, log); - RL_FREE(log); - } - - glDeleteProgram(programId); - - programId = 0; - } - else - { - // Get the size of compiled shader program (not available on OpenGL ES 2.0) - // NOTE: If GL_LINK_STATUS is GL_FALSE, program binary length is zero - //GLint binarySize = 0; - //glGetProgramiv(id, GL_PROGRAM_BINARY_LENGTH, &binarySize); - - TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader program loaded successfully", programId); - } -#else - TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43"); -#endif - - return programId; -} - -// Dispatch compute shader (equivalent to *draw* for graphics pilepine) -void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ) -{ -#if defined(GRAPHICS_API_OPENGL_43) - glDispatchCompute(groupX, groupY, groupZ); -#endif -} - -// Load shader storage buffer object (SSBO) -unsigned int rlLoadShaderBuffer(unsigned int size, const void *data, int usageHint) -{ - unsigned int ssbo = 0; - -#if defined(GRAPHICS_API_OPENGL_43) - glGenBuffers(1, &ssbo); - glBindBuffer(GL_SHADER_STORAGE_BUFFER, ssbo); - glBufferData(GL_SHADER_STORAGE_BUFFER, size, data, usageHint? usageHint : RL_STREAM_COPY); - if (data == NULL) glClearBufferData(GL_SHADER_STORAGE_BUFFER, GL_R8UI, GL_RED_INTEGER, GL_UNSIGNED_BYTE, NULL); // Clear buffer data to 0 - glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0); -#else - TRACELOG(RL_LOG_WARNING, "SSBO: SSBO not enabled. Define GRAPHICS_API_OPENGL_43"); -#endif - - return ssbo; -} - -// Unload shader storage buffer object (SSBO) -void rlUnloadShaderBuffer(unsigned int ssboId) -{ -#if defined(GRAPHICS_API_OPENGL_43) - glDeleteBuffers(1, &ssboId); -#else - TRACELOG(RL_LOG_WARNING, "SSBO: SSBO not enabled. Define GRAPHICS_API_OPENGL_43"); -#endif - -} - -// Update SSBO buffer data -void rlUpdateShaderBuffer(unsigned int id, const void *data, unsigned int dataSize, unsigned int offset) -{ -#if defined(GRAPHICS_API_OPENGL_43) - glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); - glBufferSubData(GL_SHADER_STORAGE_BUFFER, offset, dataSize, data); -#endif -} - -// Get SSBO buffer size -unsigned int rlGetShaderBufferSize(unsigned int id) -{ -#if defined(GRAPHICS_API_OPENGL_43) - GLint64 size = 0; - glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); - glGetBufferParameteri64v(GL_SHADER_STORAGE_BUFFER, GL_BUFFER_SIZE, &size); - return (size > 0)? (unsigned int)size : 0; -#else - return 0; -#endif -} - -// Read SSBO buffer data (GPU->CPU) -void rlReadShaderBuffer(unsigned int id, void *dest, unsigned int count, unsigned int offset) -{ -#if defined(GRAPHICS_API_OPENGL_43) - glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); - glGetBufferSubData(GL_SHADER_STORAGE_BUFFER, offset, count, dest); -#endif -} - -// Bind SSBO buffer -void rlBindShaderBuffer(unsigned int id, unsigned int index) -{ -#if defined(GRAPHICS_API_OPENGL_43) - glBindBufferBase(GL_SHADER_STORAGE_BUFFER, index, id); -#endif -} - -// Copy SSBO buffer data -void rlCopyShaderBuffer(unsigned int destId, unsigned int srcId, unsigned int destOffset, unsigned int srcOffset, unsigned int count) -{ -#if defined(GRAPHICS_API_OPENGL_43) - glBindBuffer(GL_COPY_READ_BUFFER, srcId); - glBindBuffer(GL_COPY_WRITE_BUFFER, destId); - glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, srcOffset, destOffset, count); -#endif -} - -// Bind image texture -void rlBindImageTexture(unsigned int id, unsigned int index, int format, bool readonly) -{ -#if defined(GRAPHICS_API_OPENGL_43) - unsigned int glInternalFormat = 0, glFormat = 0, glType = 0; - - rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); - glBindImageTexture(index, id, 0, 0, 0, readonly? GL_READ_ONLY : GL_READ_WRITE, glInternalFormat); -#else - TRACELOG(RL_LOG_WARNING, "TEXTURE: Image texture binding not enabled. Define GRAPHICS_API_OPENGL_43"); -#endif -} - -// Matrix state management -//----------------------------------------------------------------------------------------- -// Get internal modelview matrix -Matrix rlGetMatrixModelview(void) -{ - Matrix matrix = rlMatrixIdentity(); -#if defined(GRAPHICS_API_OPENGL_11) - float mat[16]; - glGetFloatv(GL_MODELVIEW_MATRIX, mat); - matrix.m0 = mat[0]; - matrix.m1 = mat[1]; - matrix.m2 = mat[2]; - matrix.m3 = mat[3]; - matrix.m4 = mat[4]; - matrix.m5 = mat[5]; - matrix.m6 = mat[6]; - matrix.m7 = mat[7]; - matrix.m8 = mat[8]; - matrix.m9 = mat[9]; - matrix.m10 = mat[10]; - matrix.m11 = mat[11]; - matrix.m12 = mat[12]; - matrix.m13 = mat[13]; - matrix.m14 = mat[14]; - matrix.m15 = mat[15]; -#else - matrix = RLGL.State.modelview; -#endif - return matrix; -} - -// Get internal projection matrix -Matrix rlGetMatrixProjection(void) -{ -#if defined(GRAPHICS_API_OPENGL_11) - float mat[16]; - glGetFloatv(GL_PROJECTION_MATRIX,mat); - Matrix m; - m.m0 = mat[0]; - m.m1 = mat[1]; - m.m2 = mat[2]; - m.m3 = mat[3]; - m.m4 = mat[4]; - m.m5 = mat[5]; - m.m6 = mat[6]; - m.m7 = mat[7]; - m.m8 = mat[8]; - m.m9 = mat[9]; - m.m10 = mat[10]; - m.m11 = mat[11]; - m.m12 = mat[12]; - m.m13 = mat[13]; - m.m14 = mat[14]; - m.m15 = mat[15]; - return m; -#else - return RLGL.State.projection; -#endif -} - -// Get internal accumulated transform matrix -Matrix rlGetMatrixTransform(void) -{ - Matrix mat = rlMatrixIdentity(); -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // TODO: Consider possible transform matrices in the RLGL.State.stack - //Matrix matStackTransform = rlMatrixIdentity(); - //for (int i = RLGL.State.stackCounter; i > 0; i--) matStackTransform = rlMatrixMultiply(RLGL.State.stack[i], matStackTransform); - - mat = RLGL.State.transform; -#endif - return mat; -} - -// Get internal projection matrix for stereo render (selected eye) -Matrix rlGetMatrixProjectionStereo(int eye) -{ - Matrix mat = rlMatrixIdentity(); -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - mat = RLGL.State.projectionStereo[eye]; -#endif - return mat; -} - -// Get internal view offset matrix for stereo render (selected eye) -Matrix rlGetMatrixViewOffsetStereo(int eye) -{ - Matrix mat = rlMatrixIdentity(); -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - mat = RLGL.State.viewOffsetStereo[eye]; -#endif - return mat; -} - -// Set a custom modelview matrix (replaces internal modelview matrix) -void rlSetMatrixModelview(Matrix view) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - RLGL.State.modelview = view; -#endif -} - -// Set a custom projection matrix (replaces internal projection matrix) -void rlSetMatrixProjection(Matrix projection) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - RLGL.State.projection = projection; -#endif -} - -// Set eyes projection matrices for stereo rendering -void rlSetMatrixProjectionStereo(Matrix right, Matrix left) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - RLGL.State.projectionStereo[0] = right; - RLGL.State.projectionStereo[1] = left; -#endif -} - -// Set eyes view offsets matrices for stereo rendering -void rlSetMatrixViewOffsetStereo(Matrix right, Matrix left) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - RLGL.State.viewOffsetStereo[0] = right; - RLGL.State.viewOffsetStereo[1] = left; -#endif -} - -// Load and draw a quad in NDC -void rlLoadDrawQuad(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - unsigned int quadVAO = 0; - unsigned int quadVBO = 0; - - float vertices[] = { - // Positions Texcoords - -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, - -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, - 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, - 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, - }; - - // Gen VAO to contain VBO - glGenVertexArrays(1, &quadVAO); - glBindVertexArray(quadVAO); - - // Gen and fill vertex buffer (VBO) - glGenBuffers(1, &quadVBO); - glBindBuffer(GL_ARRAY_BUFFER, quadVBO); - glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), &vertices, GL_STATIC_DRAW); - - // Bind vertex attributes (position, texcoords) - glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); - glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, 3, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)0); // Positions - glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); - glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, 2, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)(3*sizeof(float))); // Texcoords - - // Draw quad - glBindVertexArray(quadVAO); - glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); - glBindVertexArray(0); - - // Delete buffers (VBO and VAO) - glDeleteBuffers(1, &quadVBO); - glDeleteVertexArrays(1, &quadVAO); -#endif -} - -// Load and draw a cube in NDC -void rlLoadDrawCube(void) -{ -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - unsigned int cubeVAO = 0; - unsigned int cubeVBO = 0; - - float vertices[] = { - // Positions Normals Texcoords - -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, - 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f, - 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f, - -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, - -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f, - -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, - 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, - 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, - -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, - -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, - -1.0f, 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, - -1.0f, 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 1.0f, - -1.0f, -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, - -1.0f, -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, - -1.0f, -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, - -1.0f, 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, - 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, - 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, - 1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, - 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, - 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, - 1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, - -1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, - 1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 1.0f, - 1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f, - 1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f, - -1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, - -1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, - -1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, - 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, - 1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, - 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, - -1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, - -1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f - }; - - // Gen VAO to contain VBO - glGenVertexArrays(1, &cubeVAO); - glBindVertexArray(cubeVAO); - - // Gen and fill vertex buffer (VBO) - glGenBuffers(1, &cubeVBO); - glBindBuffer(GL_ARRAY_BUFFER, cubeVBO); - glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); - - // Bind vertex attributes (position, normals, texcoords) - glBindVertexArray(cubeVAO); - glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); - glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)0); // Positions - glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL); - glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(3*sizeof(float))); // Normals - glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); - glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, 2, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(6*sizeof(float))); // Texcoords - glBindBuffer(GL_ARRAY_BUFFER, 0); - glBindVertexArray(0); - - // Draw cube - glBindVertexArray(cubeVAO); - glDrawArrays(GL_TRIANGLES, 0, 36); - glBindVertexArray(0); - - // Delete VBO and VAO - glDeleteBuffers(1, &cubeVBO); - glDeleteVertexArrays(1, &cubeVAO); -#endif -} - -// Get name string for pixel format -const char *rlGetPixelFormatName(unsigned int format) -{ - switch (format) - { - case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: return "GRAYSCALE"; break; // 8 bit per pixel (no alpha) - case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: return "GRAY_ALPHA"; break; // 8*2 bpp (2 channels) - case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: return "R5G6B5"; break; // 16 bpp - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: return "R8G8B8"; break; // 24 bpp - case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: return "R5G5B5A1"; break; // 16 bpp (1 bit alpha) - case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: return "R4G4B4A4"; break; // 16 bpp (4 bit alpha) - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: return "R8G8B8A8"; break; // 32 bpp - case RL_PIXELFORMAT_UNCOMPRESSED_R32: return "R32"; break; // 32 bpp (1 channel - float) - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: return "R32G32B32"; break; // 32*3 bpp (3 channels - float) - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: return "R32G32B32A32"; break; // 32*4 bpp (4 channels - float) - case RL_PIXELFORMAT_UNCOMPRESSED_R16: return "R16"; break; // 16 bpp (1 channel - half float) - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: return "R16G16B16"; break; // 16*3 bpp (3 channels - half float) - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: return "R16G16B16A16"; break; // 16*4 bpp (4 channels - half float) - case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: return "DXT1_RGB"; break; // 4 bpp (no alpha) - case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: return "DXT1_RGBA"; break; // 4 bpp (1 bit alpha) - case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: return "DXT3_RGBA"; break; // 8 bpp - case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: return "DXT5_RGBA"; break; // 8 bpp - case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: return "ETC1_RGB"; break; // 4 bpp - case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: return "ETC2_RGB"; break; // 4 bpp - case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: return "ETC2_RGBA"; break; // 8 bpp - case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: return "PVRT_RGB"; break; // 4 bpp - case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: return "PVRT_RGBA"; break; // 4 bpp - case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: return "ASTC_4x4_RGBA"; break; // 8 bpp - case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: return "ASTC_8x8_RGBA"; break; // 2 bpp - default: return "UNKNOWN"; break; - } -} - -//---------------------------------------------------------------------------------- -// Module Functions Definition -//---------------------------------------------------------------------------------- -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) -// Load default shader (just vertex positioning and texture coloring) -// NOTE: This shader program is used for internal buffers -// NOTE: Loaded: RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs -static void rlLoadShaderDefault(void) -{ - RLGL.State.defaultShaderLocs = (int *)RL_CALLOC(RL_MAX_SHADER_LOCATIONS, sizeof(int)); - - // NOTE: All locations must be reseted to -1 (no location) - for (int i = 0; i < RL_MAX_SHADER_LOCATIONS; i++) RLGL.State.defaultShaderLocs[i] = -1; - - // Vertex shader directly defined, no external file required - const char *defaultVShaderCode = -#if defined(GRAPHICS_API_OPENGL_21) - "#version 120 \n" - "attribute vec3 vertexPosition; \n" - "attribute vec2 vertexTexCoord; \n" - "attribute vec4 vertexColor; \n" - "varying vec2 fragTexCoord; \n" - "varying vec4 fragColor; \n" -#elif defined(GRAPHICS_API_OPENGL_33) - "#version 330 \n" - "in vec3 vertexPosition; \n" - "in vec2 vertexTexCoord; \n" - "in vec4 vertexColor; \n" - "out vec2 fragTexCoord; \n" - "out vec4 fragColor; \n" -#endif - -#if defined(GRAPHICS_API_OPENGL_ES3) - "#version 300 es \n" - "precision mediump float; \n" // Precision required for OpenGL ES3 (WebGL 2) (on some browsers) - "in vec3 vertexPosition; \n" - "in vec2 vertexTexCoord; \n" - "in vec4 vertexColor; \n" - "out vec2 fragTexCoord; \n" - "out vec4 fragColor; \n" -#elif defined(GRAPHICS_API_OPENGL_ES2) - "#version 100 \n" - "precision mediump float; \n" // Precision required for OpenGL ES2 (WebGL) (on some browsers) - "attribute vec3 vertexPosition; \n" - "attribute vec2 vertexTexCoord; \n" - "attribute vec4 vertexColor; \n" - "varying vec2 fragTexCoord; \n" - "varying vec4 fragColor; \n" -#endif - - "uniform mat4 mvp; \n" - "void main() \n" - "{ \n" - " fragTexCoord = vertexTexCoord; \n" - " fragColor = vertexColor; \n" - " gl_Position = mvp*vec4(vertexPosition, 1.0); \n" - "} \n"; - - // Fragment shader directly defined, no external file required - const char *defaultFShaderCode = -#if defined(GRAPHICS_API_OPENGL_21) - "#version 120 \n" - "varying vec2 fragTexCoord; \n" - "varying vec4 fragColor; \n" - "uniform sampler2D texture0; \n" - "uniform vec4 colDiffuse; \n" - "void main() \n" - "{ \n" - " vec4 texelColor = texture2D(texture0, fragTexCoord); \n" - " gl_FragColor = texelColor*colDiffuse*fragColor; \n" - "} \n"; -#elif defined(GRAPHICS_API_OPENGL_33) - "#version 330 \n" - "in vec2 fragTexCoord; \n" - "in vec4 fragColor; \n" - "out vec4 finalColor; \n" - "uniform sampler2D texture0; \n" - "uniform vec4 colDiffuse; \n" - "void main() \n" - "{ \n" - " vec4 texelColor = texture(texture0, fragTexCoord); \n" - " finalColor = texelColor*colDiffuse*fragColor; \n" - "} \n"; -#endif - -#if defined(GRAPHICS_API_OPENGL_ES3) - "#version 300 es \n" - "precision mediump float; \n" // Precision required for OpenGL ES3 (WebGL 2) - "in vec2 fragTexCoord; \n" - "in vec4 fragColor; \n" - "out vec4 finalColor; \n" - "uniform sampler2D texture0; \n" - "uniform vec4 colDiffuse; \n" - "void main() \n" - "{ \n" - " vec4 texelColor = texture(texture0, fragTexCoord); \n" - " finalColor = texelColor*colDiffuse*fragColor; \n" - "} \n"; -#elif defined(GRAPHICS_API_OPENGL_ES2) - "#version 100 \n" - "precision mediump float; \n" // Precision required for OpenGL ES2 (WebGL) - "varying vec2 fragTexCoord; \n" - "varying vec4 fragColor; \n" - "uniform sampler2D texture0; \n" - "uniform vec4 colDiffuse; \n" - "void main() \n" - "{ \n" - " vec4 texelColor = texture2D(texture0, fragTexCoord); \n" - " gl_FragColor = texelColor*colDiffuse*fragColor; \n" - "} \n"; -#endif - - // NOTE: Compiled vertex/fragment shaders are not deleted, - // they are kept for re-use as default shaders in case some shader loading fails - RLGL.State.defaultVShaderId = rlCompileShader(defaultVShaderCode, GL_VERTEX_SHADER); // Compile default vertex shader - RLGL.State.defaultFShaderId = rlCompileShader(defaultFShaderCode, GL_FRAGMENT_SHADER); // Compile default fragment shader - - RLGL.State.defaultShaderId = rlLoadShaderProgram(RLGL.State.defaultVShaderId, RLGL.State.defaultFShaderId); - - if (RLGL.State.defaultShaderId > 0) - { - TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Default shader loaded successfully", RLGL.State.defaultShaderId); - - // Set default shader locations: attributes locations - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_POSITION] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION); - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD); - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_COLOR] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR); - - // Set default shader locations: uniform locations - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MATRIX_MVP] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_UNIFORM_NAME_MVP); - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_COLOR_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR); - RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MAP_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0); - } - else TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to load default shader", RLGL.State.defaultShaderId); -} - -// Unload default shader -// NOTE: Unloads: RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs -static void rlUnloadShaderDefault(void) -{ - glUseProgram(0); - - glDetachShader(RLGL.State.defaultShaderId, RLGL.State.defaultVShaderId); - glDetachShader(RLGL.State.defaultShaderId, RLGL.State.defaultFShaderId); - glDeleteShader(RLGL.State.defaultVShaderId); - glDeleteShader(RLGL.State.defaultFShaderId); - - glDeleteProgram(RLGL.State.defaultShaderId); - - RL_FREE(RLGL.State.defaultShaderLocs); - - TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Default shader unloaded successfully", RLGL.State.defaultShaderId); -} - -#if RLGL_SHOW_GL_DETAILS_INFO -// Get compressed format official GL identifier name -static const char *rlGetCompressedFormatName(int format) -{ - switch (format) - { - // GL_EXT_texture_compression_s3tc - case 0x83F0: return "GL_COMPRESSED_RGB_S3TC_DXT1_EXT"; break; - case 0x83F1: return "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT"; break; - case 0x83F2: return "GL_COMPRESSED_RGBA_S3TC_DXT3_EXT"; break; - case 0x83F3: return "GL_COMPRESSED_RGBA_S3TC_DXT5_EXT"; break; - // GL_3DFX_texture_compression_FXT1 - case 0x86B0: return "GL_COMPRESSED_RGB_FXT1_3DFX"; break; - case 0x86B1: return "GL_COMPRESSED_RGBA_FXT1_3DFX"; break; - // GL_IMG_texture_compression_pvrtc - case 0x8C00: return "GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG"; break; - case 0x8C01: return "GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG"; break; - case 0x8C02: return "GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG"; break; - case 0x8C03: return "GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG"; break; - // GL_OES_compressed_ETC1_RGB8_texture - case 0x8D64: return "GL_ETC1_RGB8_OES"; break; - // GL_ARB_texture_compression_rgtc - case 0x8DBB: return "GL_COMPRESSED_RED_RGTC1"; break; - case 0x8DBC: return "GL_COMPRESSED_SIGNED_RED_RGTC1"; break; - case 0x8DBD: return "GL_COMPRESSED_RG_RGTC2"; break; - case 0x8DBE: return "GL_COMPRESSED_SIGNED_RG_RGTC2"; break; - // GL_ARB_texture_compression_bptc - case 0x8E8C: return "GL_COMPRESSED_RGBA_BPTC_UNORM_ARB"; break; - case 0x8E8D: return "GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB"; break; - case 0x8E8E: return "GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB"; break; - case 0x8E8F: return "GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB"; break; - // GL_ARB_ES3_compatibility - case 0x9274: return "GL_COMPRESSED_RGB8_ETC2"; break; - case 0x9275: return "GL_COMPRESSED_SRGB8_ETC2"; break; - case 0x9276: return "GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"; break; - case 0x9277: return "GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"; break; - case 0x9278: return "GL_COMPRESSED_RGBA8_ETC2_EAC"; break; - case 0x9279: return "GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"; break; - case 0x9270: return "GL_COMPRESSED_R11_EAC"; break; - case 0x9271: return "GL_COMPRESSED_SIGNED_R11_EAC"; break; - case 0x9272: return "GL_COMPRESSED_RG11_EAC"; break; - case 0x9273: return "GL_COMPRESSED_SIGNED_RG11_EAC"; break; - // GL_KHR_texture_compression_astc_hdr - case 0x93B0: return "GL_COMPRESSED_RGBA_ASTC_4x4_KHR"; break; - case 0x93B1: return "GL_COMPRESSED_RGBA_ASTC_5x4_KHR"; break; - case 0x93B2: return "GL_COMPRESSED_RGBA_ASTC_5x5_KHR"; break; - case 0x93B3: return "GL_COMPRESSED_RGBA_ASTC_6x5_KHR"; break; - case 0x93B4: return "GL_COMPRESSED_RGBA_ASTC_6x6_KHR"; break; - case 0x93B5: return "GL_COMPRESSED_RGBA_ASTC_8x5_KHR"; break; - case 0x93B6: return "GL_COMPRESSED_RGBA_ASTC_8x6_KHR"; break; - case 0x93B7: return "GL_COMPRESSED_RGBA_ASTC_8x8_KHR"; break; - case 0x93B8: return "GL_COMPRESSED_RGBA_ASTC_10x5_KHR"; break; - case 0x93B9: return "GL_COMPRESSED_RGBA_ASTC_10x6_KHR"; break; - case 0x93BA: return "GL_COMPRESSED_RGBA_ASTC_10x8_KHR"; break; - case 0x93BB: return "GL_COMPRESSED_RGBA_ASTC_10x10_KHR"; break; - case 0x93BC: return "GL_COMPRESSED_RGBA_ASTC_12x10_KHR"; break; - case 0x93BD: return "GL_COMPRESSED_RGBA_ASTC_12x12_KHR"; break; - case 0x93D0: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"; break; - case 0x93D1: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"; break; - case 0x93D2: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"; break; - case 0x93D3: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"; break; - case 0x93D4: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"; break; - case 0x93D5: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"; break; - case 0x93D6: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"; break; - case 0x93D7: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"; break; - case 0x93D8: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"; break; - case 0x93D9: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"; break; - case 0x93DA: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"; break; - case 0x93DB: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"; break; - case 0x93DC: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"; break; - case 0x93DD: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"; break; - default: return "GL_COMPRESSED_UNKNOWN"; break; - } -} -#endif - -#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 - -// Get pixel data size in bytes (image or texture) -// NOTE: Size depends on pixel format -static int rlGetPixelDataSize(int width, int height, int format) -{ - int dataSize = 0; // Size in bytes - int bpp = 0; // Bits per pixel - - switch (format) - { - case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: bpp = 8; break; - case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: - case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: - case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: - case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: bpp = 16; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: bpp = 32; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: bpp = 24; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32: bpp = 32; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: bpp = 32*3; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: bpp = 32*4; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16: bpp = 16; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: bpp = 16*3; break; - case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: bpp = 16*4; break; - case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: - case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: - case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: - case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: - case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: - case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: // 8 bytes per each 4x4 block - { - int blockWidth = (width + 3)/4; - int blockHeight = (height + 3)/4; - dataSize = blockWidth*blockHeight*8; - } break; - case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: - case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: - case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: - case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: // 16 bytes per each 4x4 block - { - int blockWidth = (width + 3)/4; - int blockHeight = (height + 3)/4; - dataSize = blockWidth*blockHeight*16; - } break; - case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: // 4 bytes per each 4x4 block - { - int blockWidth = (width + 3)/4; - int blockHeight = (height + 3)/4; - dataSize = blockWidth*blockHeight*4; - } break; - default: break; - } - - // Compute dataSize for uncompressed texture data (no blocks) - if ((format >= RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) && - (format <= RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16)) - { - double bytesPerPixel = (double)bpp/8.0; - dataSize = (int)(bytesPerPixel*width*height); // Total data size in bytes - } - - return dataSize; -} - -// Auxiliar math functions -//------------------------------------------------------------------------------- -// Get identity matrix -static Matrix rlMatrixIdentity(void) -{ - Matrix matIdentity = { 0 }; - matIdentity.m0 = 1.0f; - matIdentity.m5 = 1.0f; - matIdentity.m10 = 1.0f; - matIdentity.m15 = 1.0f; - - return matIdentity; -} -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) -// Get float array of matrix data -// Explicit conversion to column-major memory layout -static rl_float16 rlMatrixToFloatV(Matrix mat) -{ - rl_float16 result = { 0 }; - - result.v[0] = mat.m0; - result.v[1] = mat.m1; - result.v[2] = mat.m2; - result.v[3] = mat.m3; - result.v[4] = mat.m4; - result.v[5] = mat.m5; - result.v[6] = mat.m6; - result.v[7] = mat.m7; - result.v[8] = mat.m8; - result.v[9] = mat.m9; - result.v[10] = mat.m10; - result.v[11] = mat.m11; - result.v[12] = mat.m12; - result.v[13] = mat.m13; - result.v[14] = mat.m14; - result.v[15] = mat.m15; - - return result; -} - -// Get two matrix multiplication -// NOTE: When multiplying matrices... the order matters! -static Matrix rlMatrixMultiply(Matrix left, Matrix right) -{ - Matrix result = { 0 }; - - result.m0 = left.m0*right.m0 + left.m1*right.m4 + left.m2*right.m8 + left.m3*right.m12; - result.m1 = left.m0*right.m1 + left.m1*right.m5 + left.m2*right.m9 + left.m3*right.m13; - result.m2 = left.m0*right.m2 + left.m1*right.m6 + left.m2*right.m10 + left.m3*right.m14; - result.m3 = left.m0*right.m3 + left.m1*right.m7 + left.m2*right.m11 + left.m3*right.m15; - result.m4 = left.m4*right.m0 + left.m5*right.m4 + left.m6*right.m8 + left.m7*right.m12; - result.m5 = left.m4*right.m1 + left.m5*right.m5 + left.m6*right.m9 + left.m7*right.m13; - result.m6 = left.m4*right.m2 + left.m5*right.m6 + left.m6*right.m10 + left.m7*right.m14; - result.m7 = left.m4*right.m3 + left.m5*right.m7 + left.m6*right.m11 + left.m7*right.m15; - result.m8 = left.m8*right.m0 + left.m9*right.m4 + left.m10*right.m8 + left.m11*right.m12; - result.m9 = left.m8*right.m1 + left.m9*right.m5 + left.m10*right.m9 + left.m11*right.m13; - result.m10 = left.m8*right.m2 + left.m9*right.m6 + left.m10*right.m10 + left.m11*right.m14; - result.m11 = left.m8*right.m3 + left.m9*right.m7 + left.m10*right.m11 + left.m11*right.m15; - result.m12 = left.m12*right.m0 + left.m13*right.m4 + left.m14*right.m8 + left.m15*right.m12; - result.m13 = left.m12*right.m1 + left.m13*right.m5 + left.m14*right.m9 + left.m15*right.m13; - result.m14 = left.m12*right.m2 + left.m13*right.m6 + left.m14*right.m10 + left.m15*right.m14; - result.m15 = left.m12*right.m3 + left.m13*right.m7 + left.m14*right.m11 + left.m15*right.m15; - - return result; -} - -// Transposes provided matrix -static Matrix rlMatrixTranspose(Matrix mat) -{ - Matrix result = { 0 }; - - result.m0 = mat.m0; - result.m1 = mat.m4; - result.m2 = mat.m8; - result.m3 = mat.m12; - result.m4 = mat.m1; - result.m5 = mat.m5; - result.m6 = mat.m9; - result.m7 = mat.m13; - result.m8 = mat.m2; - result.m9 = mat.m6; - result.m10 = mat.m10; - result.m11 = mat.m14; - result.m12 = mat.m3; - result.m13 = mat.m7; - result.m14 = mat.m11; - result.m15 = mat.m15; - - return result; -} - -// Invert provided matrix -static Matrix rlMatrixInvert(Matrix mat) -{ - Matrix result = { 0 }; - - // Cache the matrix values (speed optimization) - float a00 = mat.m0, a01 = mat.m1, a02 = mat.m2, a03 = mat.m3; - float a10 = mat.m4, a11 = mat.m5, a12 = mat.m6, a13 = mat.m7; - float a20 = mat.m8, a21 = mat.m9, a22 = mat.m10, a23 = mat.m11; - float a30 = mat.m12, a31 = mat.m13, a32 = mat.m14, a33 = mat.m15; - - float b00 = a00*a11 - a01*a10; - float b01 = a00*a12 - a02*a10; - float b02 = a00*a13 - a03*a10; - float b03 = a01*a12 - a02*a11; - float b04 = a01*a13 - a03*a11; - float b05 = a02*a13 - a03*a12; - float b06 = a20*a31 - a21*a30; - float b07 = a20*a32 - a22*a30; - float b08 = a20*a33 - a23*a30; - float b09 = a21*a32 - a22*a31; - float b10 = a21*a33 - a23*a31; - float b11 = a22*a33 - a23*a32; - - // Calculate the invert determinant (inlined to avoid double-caching) - float invDet = 1.0f/(b00*b11 - b01*b10 + b02*b09 + b03*b08 - b04*b07 + b05*b06); - - result.m0 = (a11*b11 - a12*b10 + a13*b09)*invDet; - result.m1 = (-a01*b11 + a02*b10 - a03*b09)*invDet; - result.m2 = (a31*b05 - a32*b04 + a33*b03)*invDet; - result.m3 = (-a21*b05 + a22*b04 - a23*b03)*invDet; - result.m4 = (-a10*b11 + a12*b08 - a13*b07)*invDet; - result.m5 = (a00*b11 - a02*b08 + a03*b07)*invDet; - result.m6 = (-a30*b05 + a32*b02 - a33*b01)*invDet; - result.m7 = (a20*b05 - a22*b02 + a23*b01)*invDet; - result.m8 = (a10*b10 - a11*b08 + a13*b06)*invDet; - result.m9 = (-a00*b10 + a01*b08 - a03*b06)*invDet; - result.m10 = (a30*b04 - a31*b02 + a33*b00)*invDet; - result.m11 = (-a20*b04 + a21*b02 - a23*b00)*invDet; - result.m12 = (-a10*b09 + a11*b07 - a12*b06)*invDet; - result.m13 = (a00*b09 - a01*b07 + a02*b06)*invDet; - result.m14 = (-a30*b03 + a31*b01 - a32*b00)*invDet; - result.m15 = (a20*b03 - a21*b01 + a22*b00)*invDet; - - return result; -} -#endif - -#endif // RLGL_IMPLEMENTATION +/********************************************************************************************** +* +* rlgl v5.0 - A multi-OpenGL abstraction layer with an immediate-mode style API +* +* DESCRIPTION: +* An abstraction layer for multiple OpenGL versions (1.1, 2.1, 3.3 Core, 4.3 Core, ES 2.0) +* that provides a pseudo-OpenGL 1.1 immediate-mode style API (rlVertex, rlTranslate, rlRotate...) +* +* ADDITIONAL NOTES: +* When choosing an OpenGL backend different than OpenGL 1.1, some internal buffer are +* initialized on rlglInit() to accumulate vertex data +* +* When an internal state change is required all the stored vertex data is renderer in batch, +* additionally, rlDrawRenderBatchActive() could be called to force flushing of the batch +* +* Some resources are also loaded for convenience, here the complete list: +* - Default batch (RLGL.defaultBatch): RenderBatch system to accumulate vertex data +* - Default texture (RLGL.defaultTextureId): 1x1 white pixel R8G8B8A8 +* - Default shader (RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs) +* +* Internal buffer (and resources) must be manually unloaded calling rlglClose() +* +* CONFIGURATION: +* #define GRAPHICS_API_OPENGL_11 +* #define GRAPHICS_API_OPENGL_21 +* #define GRAPHICS_API_OPENGL_33 +* #define GRAPHICS_API_OPENGL_43 +* #define GRAPHICS_API_OPENGL_ES2 +* #define GRAPHICS_API_OPENGL_ES3 +* Use selected OpenGL graphics backend, should be supported by platform +* Those preprocessor defines are only used on rlgl module, if OpenGL version is +* required by any other module, use rlGetVersion() to check it +* +* #define RLGL_IMPLEMENTATION +* Generates the implementation of the library into the included file +* If not defined, the library is in header only mode and can be included in other headers +* or source files without problems. But only ONE file should hold the implementation +* +* #define RLGL_RENDER_TEXTURES_HINT +* Enable framebuffer objects (fbo) support (enabled by default) +* Some GPUs could not support them despite the OpenGL version +* +* #define RLGL_SHOW_GL_DETAILS_INFO +* Show OpenGL extensions and capabilities detailed logs on init +* +* #define RLGL_ENABLE_OPENGL_DEBUG_CONTEXT +* Enable debug context (only available on OpenGL 4.3) +* +* rlgl capabilities could be customized just defining some internal +* values before library inclusion (default values listed): +* +* #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 8192 // Default internal render batch elements limits +* #define RL_DEFAULT_BATCH_BUFFERS 1 // Default number of batch buffers (multi-buffering) +* #define RL_DEFAULT_BATCH_DRAWCALLS 256 // Default number of batch draw calls (by state changes: mode, texture) +* #define RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS 4 // Maximum number of textures units that can be activated on batch drawing (SetShaderValueTexture()) +* +* #define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of internal Matrix stack +* #define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported +* #define RL_CULL_DISTANCE_NEAR 0.01 // Default projection matrix near cull distance +* #define RL_CULL_DISTANCE_FAR 1000.0 // Default projection matrix far cull distance +* +* When loading a shader, the following vertex attributes and uniform +* location names are tried to be set automatically: +* +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS "vertexBoneIds" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS "vertexBoneWeights" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL "matModel" // model matrix +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView))) +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color) +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_BONE_MATRICES "boneMatrices" // bone matrices +* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0) +* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 "texture1" // texture1 (texture slot active 1) +* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 "texture2" // texture2 (texture slot active 2) +* +* DEPENDENCIES: +* - OpenGL libraries (depending on platform and OpenGL version selected) +* - GLAD OpenGL extensions loading library (only for OpenGL 3.3 Core, 4.3 Core) +* +* +* LICENSE: zlib/libpng +* +* Copyright (c) 2014-2024 Ramon Santamaria (@raysan5) +* +* This software is provided "as-is", without any express or implied warranty. In no event +* will the authors be held liable for any damages arising from the use of this software. +* +* Permission is granted to anyone to use this software for any purpose, including commercial +* applications, and to alter it and redistribute it freely, subject to the following restrictions: +* +* 1. The origin of this software must not be misrepresented; you must not claim that you +* wrote the original software. If you use this software in a product, an acknowledgment +* in the product documentation would be appreciated but is not required. +* +* 2. Altered source versions must be plainly marked as such, and must not be misrepresented +* as being the original software. +* +* 3. This notice may not be removed or altered from any source distribution. +* +**********************************************************************************************/ + +#ifndef RLGL_H +#define RLGL_H + +#define RLGL_VERSION "5.0" + +// Function specifiers in case library is build/used as a shared library +// NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll +// NOTE: visibility(default) attribute makes symbols "visible" when compiled with -fvisibility=hidden +#if defined(_WIN32) && defined(BUILD_LIBTYPE_SHARED) + #define RLAPI __declspec(dllexport) // We are building the library as a Win32 shared library (.dll) +#elif defined(BUILD_LIBTYPE_SHARED) + #define RLAPI __attribute__((visibility("default"))) // We are building the library as a Unix shared library (.so/.dylib) +#elif defined(_WIN32) && defined(USE_LIBTYPE_SHARED) + #define RLAPI __declspec(dllimport) // We are using the library as a Win32 shared library (.dll) +#endif + +// Function specifiers definition +#ifndef RLAPI + #define RLAPI // Functions defined as 'extern' by default (implicit specifiers) +#endif + +// Support TRACELOG macros +#ifndef TRACELOG + #define TRACELOG(level, ...) (void)0 + #define TRACELOGD(...) (void)0 +#endif + +// Allow custom memory allocators +#ifndef RL_MALLOC + #define RL_MALLOC(sz) malloc(sz) +#endif +#ifndef RL_CALLOC + #define RL_CALLOC(n,sz) calloc(n,sz) +#endif +#ifndef RL_REALLOC + #define RL_REALLOC(n,sz) realloc(n,sz) +#endif +#ifndef RL_FREE + #define RL_FREE(p) free(p) +#endif + +// Security check in case no GRAPHICS_API_OPENGL_* defined +#if !defined(GRAPHICS_API_OPENGL_11) && \ + !defined(GRAPHICS_API_OPENGL_21) && \ + !defined(GRAPHICS_API_OPENGL_33) && \ + !defined(GRAPHICS_API_OPENGL_43) && \ + !defined(GRAPHICS_API_OPENGL_ES2) && \ + !defined(GRAPHICS_API_OPENGL_ES3) + #define GRAPHICS_API_OPENGL_33 +#endif + +// Security check in case multiple GRAPHICS_API_OPENGL_* defined +#if defined(GRAPHICS_API_OPENGL_11) + #if defined(GRAPHICS_API_OPENGL_21) + #undef GRAPHICS_API_OPENGL_21 + #endif + #if defined(GRAPHICS_API_OPENGL_33) + #undef GRAPHICS_API_OPENGL_33 + #endif + #if defined(GRAPHICS_API_OPENGL_43) + #undef GRAPHICS_API_OPENGL_43 + #endif + #if defined(GRAPHICS_API_OPENGL_ES2) + #undef GRAPHICS_API_OPENGL_ES2 + #endif +#endif + +// OpenGL 2.1 uses most of OpenGL 3.3 Core functionality +// WARNING: Specific parts are checked with #if defines +#if defined(GRAPHICS_API_OPENGL_21) + #define GRAPHICS_API_OPENGL_33 +#endif + +// OpenGL 4.3 uses OpenGL 3.3 Core functionality +#if defined(GRAPHICS_API_OPENGL_43) + #define GRAPHICS_API_OPENGL_33 +#endif + +// OpenGL ES 3.0 uses OpenGL ES 2.0 functionality (and more) +#if defined(GRAPHICS_API_OPENGL_ES3) + #define GRAPHICS_API_OPENGL_ES2 +#endif + +// Support framebuffer objects by default +// NOTE: Some driver implementation do not support it, despite they should +#define RLGL_RENDER_TEXTURES_HINT + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- + +// Default internal render batch elements limits +#ifndef RL_DEFAULT_BATCH_BUFFER_ELEMENTS + #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + // This is the maximum amount of elements (quads) per batch + // NOTE: Be careful with text, every letter maps to a quad + #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 8192 + #endif + #if defined(GRAPHICS_API_OPENGL_ES2) + // We reduce memory sizes for embedded systems (RPI and HTML5) + // NOTE: On HTML5 (emscripten) this is allocated on heap, + // by default it's only 16MB!...just take care... + #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 2048 + #endif +#endif +#ifndef RL_DEFAULT_BATCH_BUFFERS + #define RL_DEFAULT_BATCH_BUFFERS 1 // Default number of batch buffers (multi-buffering) +#endif +#ifndef RL_DEFAULT_BATCH_DRAWCALLS + #define RL_DEFAULT_BATCH_DRAWCALLS 256 // Default number of batch draw calls (by state changes: mode, texture) +#endif +#ifndef RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS + #define RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS 4 // Maximum number of textures units that can be activated on batch drawing (SetShaderValueTexture()) +#endif + +// Internal Matrix stack +#ifndef RL_MAX_MATRIX_STACK_SIZE + #define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of Matrix stack +#endif + +// Shader limits +#ifndef RL_MAX_SHADER_LOCATIONS + #define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported +#endif + +// Projection matrix culling +#ifndef RL_CULL_DISTANCE_NEAR + #define RL_CULL_DISTANCE_NEAR 0.01 // Default near cull distance +#endif +#ifndef RL_CULL_DISTANCE_FAR + #define RL_CULL_DISTANCE_FAR 1000.0 // Default far cull distance +#endif + +// Texture parameters (equivalent to OpenGL defines) +#define RL_TEXTURE_WRAP_S 0x2802 // GL_TEXTURE_WRAP_S +#define RL_TEXTURE_WRAP_T 0x2803 // GL_TEXTURE_WRAP_T +#define RL_TEXTURE_MAG_FILTER 0x2800 // GL_TEXTURE_MAG_FILTER +#define RL_TEXTURE_MIN_FILTER 0x2801 // GL_TEXTURE_MIN_FILTER + +#define RL_TEXTURE_FILTER_NEAREST 0x2600 // GL_NEAREST +#define RL_TEXTURE_FILTER_LINEAR 0x2601 // GL_LINEAR +#define RL_TEXTURE_FILTER_MIP_NEAREST 0x2700 // GL_NEAREST_MIPMAP_NEAREST +#define RL_TEXTURE_FILTER_NEAREST_MIP_LINEAR 0x2702 // GL_NEAREST_MIPMAP_LINEAR +#define RL_TEXTURE_FILTER_LINEAR_MIP_NEAREST 0x2701 // GL_LINEAR_MIPMAP_NEAREST +#define RL_TEXTURE_FILTER_MIP_LINEAR 0x2703 // GL_LINEAR_MIPMAP_LINEAR +#define RL_TEXTURE_FILTER_ANISOTROPIC 0x3000 // Anisotropic filter (custom identifier) +#define RL_TEXTURE_MIPMAP_BIAS_RATIO 0x4000 // Texture mipmap bias, percentage ratio (custom identifier) + +#define RL_TEXTURE_WRAP_REPEAT 0x2901 // GL_REPEAT +#define RL_TEXTURE_WRAP_CLAMP 0x812F // GL_CLAMP_TO_EDGE +#define RL_TEXTURE_WRAP_MIRROR_REPEAT 0x8370 // GL_MIRRORED_REPEAT +#define RL_TEXTURE_WRAP_MIRROR_CLAMP 0x8742 // GL_MIRROR_CLAMP_EXT + +// Matrix modes (equivalent to OpenGL) +#define RL_MODELVIEW 0x1700 // GL_MODELVIEW +#define RL_PROJECTION 0x1701 // GL_PROJECTION +#define RL_TEXTURE 0x1702 // GL_TEXTURE + +// Primitive assembly draw modes +#define RL_LINES 0x0001 // GL_LINES +#define RL_TRIANGLES 0x0004 // GL_TRIANGLES +#define RL_QUADS 0x0007 // GL_QUADS + +// GL equivalent data types +#define RL_UNSIGNED_BYTE 0x1401 // GL_UNSIGNED_BYTE +#define RL_FLOAT 0x1406 // GL_FLOAT + +// GL buffer usage hint +#define RL_STREAM_DRAW 0x88E0 // GL_STREAM_DRAW +#define RL_STREAM_READ 0x88E1 // GL_STREAM_READ +#define RL_STREAM_COPY 0x88E2 // GL_STREAM_COPY +#define RL_STATIC_DRAW 0x88E4 // GL_STATIC_DRAW +#define RL_STATIC_READ 0x88E5 // GL_STATIC_READ +#define RL_STATIC_COPY 0x88E6 // GL_STATIC_COPY +#define RL_DYNAMIC_DRAW 0x88E8 // GL_DYNAMIC_DRAW +#define RL_DYNAMIC_READ 0x88E9 // GL_DYNAMIC_READ +#define RL_DYNAMIC_COPY 0x88EA // GL_DYNAMIC_COPY + +// GL Shader type +#define RL_FRAGMENT_SHADER 0x8B30 // GL_FRAGMENT_SHADER +#define RL_VERTEX_SHADER 0x8B31 // GL_VERTEX_SHADER +#define RL_COMPUTE_SHADER 0x91B9 // GL_COMPUTE_SHADER + +// GL blending factors +#define RL_ZERO 0 // GL_ZERO +#define RL_ONE 1 // GL_ONE +#define RL_SRC_COLOR 0x0300 // GL_SRC_COLOR +#define RL_ONE_MINUS_SRC_COLOR 0x0301 // GL_ONE_MINUS_SRC_COLOR +#define RL_SRC_ALPHA 0x0302 // GL_SRC_ALPHA +#define RL_ONE_MINUS_SRC_ALPHA 0x0303 // GL_ONE_MINUS_SRC_ALPHA +#define RL_DST_ALPHA 0x0304 // GL_DST_ALPHA +#define RL_ONE_MINUS_DST_ALPHA 0x0305 // GL_ONE_MINUS_DST_ALPHA +#define RL_DST_COLOR 0x0306 // GL_DST_COLOR +#define RL_ONE_MINUS_DST_COLOR 0x0307 // GL_ONE_MINUS_DST_COLOR +#define RL_SRC_ALPHA_SATURATE 0x0308 // GL_SRC_ALPHA_SATURATE +#define RL_CONSTANT_COLOR 0x8001 // GL_CONSTANT_COLOR +#define RL_ONE_MINUS_CONSTANT_COLOR 0x8002 // GL_ONE_MINUS_CONSTANT_COLOR +#define RL_CONSTANT_ALPHA 0x8003 // GL_CONSTANT_ALPHA +#define RL_ONE_MINUS_CONSTANT_ALPHA 0x8004 // GL_ONE_MINUS_CONSTANT_ALPHA + +// GL blending functions/equations +#define RL_FUNC_ADD 0x8006 // GL_FUNC_ADD +#define RL_MIN 0x8007 // GL_MIN +#define RL_MAX 0x8008 // GL_MAX +#define RL_FUNC_SUBTRACT 0x800A // GL_FUNC_SUBTRACT +#define RL_FUNC_REVERSE_SUBTRACT 0x800B // GL_FUNC_REVERSE_SUBTRACT +#define RL_BLEND_EQUATION 0x8009 // GL_BLEND_EQUATION +#define RL_BLEND_EQUATION_RGB 0x8009 // GL_BLEND_EQUATION_RGB // (Same as BLEND_EQUATION) +#define RL_BLEND_EQUATION_ALPHA 0x883D // GL_BLEND_EQUATION_ALPHA +#define RL_BLEND_DST_RGB 0x80C8 // GL_BLEND_DST_RGB +#define RL_BLEND_SRC_RGB 0x80C9 // GL_BLEND_SRC_RGB +#define RL_BLEND_DST_ALPHA 0x80CA // GL_BLEND_DST_ALPHA +#define RL_BLEND_SRC_ALPHA 0x80CB // GL_BLEND_SRC_ALPHA +#define RL_BLEND_COLOR 0x8005 // GL_BLEND_COLOR + +#define RL_READ_FRAMEBUFFER 0x8CA8 // GL_READ_FRAMEBUFFER +#define RL_DRAW_FRAMEBUFFER 0x8CA9 // GL_DRAW_FRAMEBUFFER + +// Default shader vertex attribute locations +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION 0 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD 1 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL 2 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR 3 +#endif + #ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT +#define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT 4 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 5 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_INDICES + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_INDICES 6 +#endif +#ifdef RL_SUPPORT_MESH_GPU_SKINNING +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS 7 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS + #define RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS 8 +#endif +#endif + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +#if (defined(__STDC__) && __STDC_VERSION__ >= 199901L) || (defined(_MSC_VER) && _MSC_VER >= 1800) + #include +#elif !defined(__cplusplus) && !defined(bool) && !defined(RL_BOOL_TYPE) + // Boolean type +typedef enum bool { false = 0, true = !false } bool; +#endif + +#if !defined(RL_MATRIX_TYPE) +// Matrix, 4x4 components, column major, OpenGL style, right handed +typedef struct Matrix { + float m0, m4, m8, m12; // Matrix first row (4 components) + float m1, m5, m9, m13; // Matrix second row (4 components) + float m2, m6, m10, m14; // Matrix third row (4 components) + float m3, m7, m11, m15; // Matrix fourth row (4 components) +} Matrix; +#define RL_MATRIX_TYPE +#endif + +// Dynamic vertex buffers (position + texcoords + colors + indices arrays) +typedef struct rlVertexBuffer { + int elementCount; // Number of elements in the buffer (QUADS) + + float *vertices; // Vertex position (XYZ - 3 components per vertex) (shader-location = 0) + float *texcoords; // Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1) + float *normals; // Vertex normal (XYZ - 3 components per vertex) (shader-location = 2) + unsigned char *colors; // Vertex colors (RGBA - 4 components per vertex) (shader-location = 3) +#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + unsigned int *indices; // Vertex indices (in case vertex data comes indexed) (6 indices per quad) +#endif +#if defined(GRAPHICS_API_OPENGL_ES2) + unsigned short *indices; // Vertex indices (in case vertex data comes indexed) (6 indices per quad) +#endif + unsigned int vaoId; // OpenGL Vertex Array Object id + unsigned int vboId[5]; // OpenGL Vertex Buffer Objects id (5 types of vertex data) +} rlVertexBuffer; + +// Draw call type +// NOTE: Only texture changes register a new draw, other state-change-related elements are not +// used at this moment (vaoId, shaderId, matrices), raylib just forces a batch draw call if any +// of those state-change happens (this is done in core module) +typedef struct rlDrawCall { + int mode; // Drawing mode: LINES, TRIANGLES, QUADS + int vertexCount; // Number of vertex of the draw + int vertexAlignment; // Number of vertex required for index alignment (LINES, TRIANGLES) + //unsigned int vaoId; // Vertex array id to be used on the draw -> Using RLGL.currentBatch->vertexBuffer.vaoId + //unsigned int shaderId; // Shader id to be used on the draw -> Using RLGL.currentShaderId + unsigned int textureId; // Texture id to be used on the draw -> Use to create new draw call if changes + + //Matrix projection; // Projection matrix for this draw -> Using RLGL.projection by default + //Matrix modelview; // Modelview matrix for this draw -> Using RLGL.modelview by default +} rlDrawCall; + +// rlRenderBatch type +typedef struct rlRenderBatch { + int bufferCount; // Number of vertex buffers (multi-buffering support) + int currentBuffer; // Current buffer tracking in case of multi-buffering + rlVertexBuffer *vertexBuffer; // Dynamic buffer(s) for vertex data + + rlDrawCall *draws; // Draw calls array, depends on textureId + int drawCounter; // Draw calls counter + float currentDepth; // Current depth value for next draw +} rlRenderBatch; + +// OpenGL version +typedef enum { + RL_OPENGL_11 = 1, // OpenGL 1.1 + RL_OPENGL_21, // OpenGL 2.1 (GLSL 120) + RL_OPENGL_33, // OpenGL 3.3 (GLSL 330) + RL_OPENGL_43, // OpenGL 4.3 (using GLSL 330) + RL_OPENGL_ES_20, // OpenGL ES 2.0 (GLSL 100) + RL_OPENGL_ES_30 // OpenGL ES 3.0 (GLSL 300 es) +} rlGlVersion; + +// Trace log level +// NOTE: Organized by priority level +typedef enum { + RL_LOG_ALL = 0, // Display all logs + RL_LOG_TRACE, // Trace logging, intended for internal use only + RL_LOG_DEBUG, // Debug logging, used for internal debugging, it should be disabled on release builds + RL_LOG_INFO, // Info logging, used for program execution info + RL_LOG_WARNING, // Warning logging, used on recoverable failures + RL_LOG_ERROR, // Error logging, used on unrecoverable failures + RL_LOG_FATAL, // Fatal logging, used to abort program: exit(EXIT_FAILURE) + RL_LOG_NONE // Disable logging +} rlTraceLogLevel; + +// Texture pixel formats +// NOTE: Support depends on OpenGL version +typedef enum { + RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1, // 8 bit per pixel (no alpha) + RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA, // 8*2 bpp (2 channels) + RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5, // 16 bpp + RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8, // 24 bpp + RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1, // 16 bpp (1 bit alpha) + RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4, // 16 bpp (4 bit alpha) + RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, // 32 bpp + RL_PIXELFORMAT_UNCOMPRESSED_R32, // 32 bpp (1 channel - float) + RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32, // 32*3 bpp (3 channels - float) + RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32, // 32*4 bpp (4 channels - float) + RL_PIXELFORMAT_UNCOMPRESSED_R16, // 16 bpp (1 channel - half float) + RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16, // 16*3 bpp (3 channels - half float) + RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16, // 16*4 bpp (4 channels - half float) + RL_PIXELFORMAT_COMPRESSED_DXT1_RGB, // 4 bpp (no alpha) + RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA, // 4 bpp (1 bit alpha) + RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA, // 8 bpp + RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA, // 8 bpp + RL_PIXELFORMAT_COMPRESSED_ETC1_RGB, // 4 bpp + RL_PIXELFORMAT_COMPRESSED_ETC2_RGB, // 4 bpp + RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA, // 8 bpp + RL_PIXELFORMAT_COMPRESSED_PVRT_RGB, // 4 bpp + RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA, // 4 bpp + RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA, // 8 bpp + RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA // 2 bpp +} rlPixelFormat; + +// Texture parameters: filter mode +// NOTE 1: Filtering considers mipmaps if available in the texture +// NOTE 2: Filter is accordingly set for minification and magnification +typedef enum { + RL_TEXTURE_FILTER_POINT = 0, // No filter, just pixel approximation + RL_TEXTURE_FILTER_BILINEAR, // Linear filtering + RL_TEXTURE_FILTER_TRILINEAR, // Trilinear filtering (linear with mipmaps) + RL_TEXTURE_FILTER_ANISOTROPIC_4X, // Anisotropic filtering 4x + RL_TEXTURE_FILTER_ANISOTROPIC_8X, // Anisotropic filtering 8x + RL_TEXTURE_FILTER_ANISOTROPIC_16X, // Anisotropic filtering 16x +} rlTextureFilter; + +// Color blending modes (pre-defined) +typedef enum { + RL_BLEND_ALPHA = 0, // Blend textures considering alpha (default) + RL_BLEND_ADDITIVE, // Blend textures adding colors + RL_BLEND_MULTIPLIED, // Blend textures multiplying colors + RL_BLEND_ADD_COLORS, // Blend textures adding colors (alternative) + RL_BLEND_SUBTRACT_COLORS, // Blend textures subtracting colors (alternative) + RL_BLEND_ALPHA_PREMULTIPLY, // Blend premultiplied textures considering alpha + RL_BLEND_CUSTOM, // Blend textures using custom src/dst factors (use rlSetBlendFactors()) + RL_BLEND_CUSTOM_SEPARATE // Blend textures using custom src/dst factors (use rlSetBlendFactorsSeparate()) +} rlBlendMode; + +// Shader location point type +typedef enum { + RL_SHADER_LOC_VERTEX_POSITION = 0, // Shader location: vertex attribute: position + RL_SHADER_LOC_VERTEX_TEXCOORD01, // Shader location: vertex attribute: texcoord01 + RL_SHADER_LOC_VERTEX_TEXCOORD02, // Shader location: vertex attribute: texcoord02 + RL_SHADER_LOC_VERTEX_NORMAL, // Shader location: vertex attribute: normal + RL_SHADER_LOC_VERTEX_TANGENT, // Shader location: vertex attribute: tangent + RL_SHADER_LOC_VERTEX_COLOR, // Shader location: vertex attribute: color + RL_SHADER_LOC_MATRIX_MVP, // Shader location: matrix uniform: model-view-projection + RL_SHADER_LOC_MATRIX_VIEW, // Shader location: matrix uniform: view (camera transform) + RL_SHADER_LOC_MATRIX_PROJECTION, // Shader location: matrix uniform: projection + RL_SHADER_LOC_MATRIX_MODEL, // Shader location: matrix uniform: model (transform) + RL_SHADER_LOC_MATRIX_NORMAL, // Shader location: matrix uniform: normal + RL_SHADER_LOC_VECTOR_VIEW, // Shader location: vector uniform: view + RL_SHADER_LOC_COLOR_DIFFUSE, // Shader location: vector uniform: diffuse color + RL_SHADER_LOC_COLOR_SPECULAR, // Shader location: vector uniform: specular color + RL_SHADER_LOC_COLOR_AMBIENT, // Shader location: vector uniform: ambient color + RL_SHADER_LOC_MAP_ALBEDO, // Shader location: sampler2d texture: albedo (same as: RL_SHADER_LOC_MAP_DIFFUSE) + RL_SHADER_LOC_MAP_METALNESS, // Shader location: sampler2d texture: metalness (same as: RL_SHADER_LOC_MAP_SPECULAR) + RL_SHADER_LOC_MAP_NORMAL, // Shader location: sampler2d texture: normal + RL_SHADER_LOC_MAP_ROUGHNESS, // Shader location: sampler2d texture: roughness + RL_SHADER_LOC_MAP_OCCLUSION, // Shader location: sampler2d texture: occlusion + RL_SHADER_LOC_MAP_EMISSION, // Shader location: sampler2d texture: emission + RL_SHADER_LOC_MAP_HEIGHT, // Shader location: sampler2d texture: height + RL_SHADER_LOC_MAP_CUBEMAP, // Shader location: samplerCube texture: cubemap + RL_SHADER_LOC_MAP_IRRADIANCE, // Shader location: samplerCube texture: irradiance + RL_SHADER_LOC_MAP_PREFILTER, // Shader location: samplerCube texture: prefilter + RL_SHADER_LOC_MAP_BRDF // Shader location: sampler2d texture: brdf +} rlShaderLocationIndex; + +#define RL_SHADER_LOC_MAP_DIFFUSE RL_SHADER_LOC_MAP_ALBEDO +#define RL_SHADER_LOC_MAP_SPECULAR RL_SHADER_LOC_MAP_METALNESS + +// Shader uniform data type +typedef enum { + RL_SHADER_UNIFORM_FLOAT = 0, // Shader uniform type: float + RL_SHADER_UNIFORM_VEC2, // Shader uniform type: vec2 (2 float) + RL_SHADER_UNIFORM_VEC3, // Shader uniform type: vec3 (3 float) + RL_SHADER_UNIFORM_VEC4, // Shader uniform type: vec4 (4 float) + RL_SHADER_UNIFORM_INT, // Shader uniform type: int + RL_SHADER_UNIFORM_IVEC2, // Shader uniform type: ivec2 (2 int) + RL_SHADER_UNIFORM_IVEC3, // Shader uniform type: ivec3 (3 int) + RL_SHADER_UNIFORM_IVEC4, // Shader uniform type: ivec4 (4 int) + RL_SHADER_UNIFORM_UINT, // Shader uniform type: unsigned int + RL_SHADER_UNIFORM_UIVEC2, // Shader uniform type: uivec2 (2 unsigned int) + RL_SHADER_UNIFORM_UIVEC3, // Shader uniform type: uivec3 (3 unsigned int) + RL_SHADER_UNIFORM_UIVEC4, // Shader uniform type: uivec4 (4 unsigned int) + RL_SHADER_UNIFORM_SAMPLER2D // Shader uniform type: sampler2d +} rlShaderUniformDataType; + +// Shader attribute data types +typedef enum { + RL_SHADER_ATTRIB_FLOAT = 0, // Shader attribute type: float + RL_SHADER_ATTRIB_VEC2, // Shader attribute type: vec2 (2 float) + RL_SHADER_ATTRIB_VEC3, // Shader attribute type: vec3 (3 float) + RL_SHADER_ATTRIB_VEC4 // Shader attribute type: vec4 (4 float) +} rlShaderAttributeDataType; + +// Framebuffer attachment type +// NOTE: By default up to 8 color channels defined, but it can be more +typedef enum { + RL_ATTACHMENT_COLOR_CHANNEL0 = 0, // Framebuffer attachment type: color 0 + RL_ATTACHMENT_COLOR_CHANNEL1 = 1, // Framebuffer attachment type: color 1 + RL_ATTACHMENT_COLOR_CHANNEL2 = 2, // Framebuffer attachment type: color 2 + RL_ATTACHMENT_COLOR_CHANNEL3 = 3, // Framebuffer attachment type: color 3 + RL_ATTACHMENT_COLOR_CHANNEL4 = 4, // Framebuffer attachment type: color 4 + RL_ATTACHMENT_COLOR_CHANNEL5 = 5, // Framebuffer attachment type: color 5 + RL_ATTACHMENT_COLOR_CHANNEL6 = 6, // Framebuffer attachment type: color 6 + RL_ATTACHMENT_COLOR_CHANNEL7 = 7, // Framebuffer attachment type: color 7 + RL_ATTACHMENT_DEPTH = 100, // Framebuffer attachment type: depth + RL_ATTACHMENT_STENCIL = 200, // Framebuffer attachment type: stencil +} rlFramebufferAttachType; + +// Framebuffer texture attachment type +typedef enum { + RL_ATTACHMENT_CUBEMAP_POSITIVE_X = 0, // Framebuffer texture attachment type: cubemap, +X side + RL_ATTACHMENT_CUBEMAP_NEGATIVE_X = 1, // Framebuffer texture attachment type: cubemap, -X side + RL_ATTACHMENT_CUBEMAP_POSITIVE_Y = 2, // Framebuffer texture attachment type: cubemap, +Y side + RL_ATTACHMENT_CUBEMAP_NEGATIVE_Y = 3, // Framebuffer texture attachment type: cubemap, -Y side + RL_ATTACHMENT_CUBEMAP_POSITIVE_Z = 4, // Framebuffer texture attachment type: cubemap, +Z side + RL_ATTACHMENT_CUBEMAP_NEGATIVE_Z = 5, // Framebuffer texture attachment type: cubemap, -Z side + RL_ATTACHMENT_TEXTURE2D = 100, // Framebuffer texture attachment type: texture2d + RL_ATTACHMENT_RENDERBUFFER = 200, // Framebuffer texture attachment type: renderbuffer +} rlFramebufferAttachTextureType; + +// Face culling mode +typedef enum { + RL_CULL_FACE_FRONT = 0, + RL_CULL_FACE_BACK +} rlCullMode; + +//------------------------------------------------------------------------------------ +// Functions Declaration - Matrix operations +//------------------------------------------------------------------------------------ + +#if defined(__cplusplus) +extern "C" { // Prevents name mangling of functions +#endif + +RLAPI void rlMatrixMode(int mode); // Choose the current matrix to be transformed +RLAPI void rlPushMatrix(void); // Push the current matrix to stack +RLAPI void rlPopMatrix(void); // Pop latest inserted matrix from stack +RLAPI void rlLoadIdentity(void); // Reset current matrix to identity matrix +RLAPI void rlTranslatef(float x, float y, float z); // Multiply the current matrix by a translation matrix +RLAPI void rlRotatef(float angle, float x, float y, float z); // Multiply the current matrix by a rotation matrix +RLAPI void rlScalef(float x, float y, float z); // Multiply the current matrix by a scaling matrix +RLAPI void rlMultMatrixf(const float *matf); // Multiply the current matrix by another matrix +RLAPI void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar); +RLAPI void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar); +RLAPI void rlViewport(int x, int y, int width, int height); // Set the viewport area +RLAPI void rlSetClipPlanes(double nearPlane, double farPlane); // Set clip planes distances +RLAPI double rlGetCullDistanceNear(void); // Get cull plane distance near +RLAPI double rlGetCullDistanceFar(void); // Get cull plane distance far + +//------------------------------------------------------------------------------------ +// Functions Declaration - Vertex level operations +//------------------------------------------------------------------------------------ +RLAPI void rlBegin(int mode); // Initialize drawing mode (how to organize vertex) +RLAPI void rlEnd(void); // Finish vertex providing +RLAPI void rlVertex2i(int x, int y); // Define one vertex (position) - 2 int +RLAPI void rlVertex2f(float x, float y); // Define one vertex (position) - 2 float +RLAPI void rlVertex3f(float x, float y, float z); // Define one vertex (position) - 3 float +RLAPI void rlTexCoord2f(float x, float y); // Define one vertex (texture coordinate) - 2 float +RLAPI void rlNormal3f(float x, float y, float z); // Define one vertex (normal) - 3 float +RLAPI void rlColor4ub(unsigned char r, unsigned char g, unsigned char b, unsigned char a); // Define one vertex (color) - 4 byte +RLAPI void rlColor3f(float x, float y, float z); // Define one vertex (color) - 3 float +RLAPI void rlColor4f(float x, float y, float z, float w); // Define one vertex (color) - 4 float + +//------------------------------------------------------------------------------------ +// Functions Declaration - OpenGL style functions (common to 1.1, 3.3+, ES2) +// NOTE: This functions are used to completely abstract raylib code from OpenGL layer, +// some of them are direct wrappers over OpenGL calls, some others are custom +//------------------------------------------------------------------------------------ + +// Vertex buffers state +RLAPI bool rlEnableVertexArray(unsigned int vaoId); // Enable vertex array (VAO, if supported) +RLAPI void rlDisableVertexArray(void); // Disable vertex array (VAO, if supported) +RLAPI void rlEnableVertexBuffer(unsigned int id); // Enable vertex buffer (VBO) +RLAPI void rlDisableVertexBuffer(void); // Disable vertex buffer (VBO) +RLAPI void rlEnableVertexBufferElement(unsigned int id); // Enable vertex buffer element (VBO element) +RLAPI void rlDisableVertexBufferElement(void); // Disable vertex buffer element (VBO element) +RLAPI void rlEnableVertexAttribute(unsigned int index); // Enable vertex attribute index +RLAPI void rlDisableVertexAttribute(unsigned int index); // Disable vertex attribute index +#if defined(GRAPHICS_API_OPENGL_11) +RLAPI void rlEnableStatePointer(int vertexAttribType, void *buffer); // Enable attribute state pointer +RLAPI void rlDisableStatePointer(int vertexAttribType); // Disable attribute state pointer +#endif + +// Textures state +RLAPI void rlActiveTextureSlot(int slot); // Select and active a texture slot +RLAPI void rlEnableTexture(unsigned int id); // Enable texture +RLAPI void rlDisableTexture(void); // Disable texture +RLAPI void rlEnableTextureCubemap(unsigned int id); // Enable texture cubemap +RLAPI void rlDisableTextureCubemap(void); // Disable texture cubemap +RLAPI void rlTextureParameters(unsigned int id, int param, int value); // Set texture parameters (filter, wrap) +RLAPI void rlCubemapParameters(unsigned int id, int param, int value); // Set cubemap parameters (filter, wrap) + +// Shader state +RLAPI void rlEnableShader(unsigned int id); // Enable shader program +RLAPI void rlDisableShader(void); // Disable shader program + +// Framebuffer state +RLAPI void rlEnableFramebuffer(unsigned int id); // Enable render texture (fbo) +RLAPI void rlDisableFramebuffer(void); // Disable render texture (fbo), return to default framebuffer +RLAPI unsigned int rlGetActiveFramebuffer(void); // Get the currently active render texture (fbo), 0 for default framebuffer +RLAPI void rlActiveDrawBuffers(int count); // Activate multiple draw color buffers +RLAPI void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask); // Blit active framebuffer to main framebuffer +RLAPI void rlBindFramebuffer(unsigned int target, unsigned int framebuffer); // Bind framebuffer (FBO) + +// General render state +RLAPI void rlEnableColorBlend(void); // Enable color blending +RLAPI void rlDisableColorBlend(void); // Disable color blending +RLAPI void rlEnableDepthTest(void); // Enable depth test +RLAPI void rlDisableDepthTest(void); // Disable depth test +RLAPI void rlEnableDepthMask(void); // Enable depth write +RLAPI void rlDisableDepthMask(void); // Disable depth write +RLAPI void rlEnableBackfaceCulling(void); // Enable backface culling +RLAPI void rlDisableBackfaceCulling(void); // Disable backface culling +RLAPI void rlColorMask(bool r, bool g, bool b, bool a); // Color mask control +RLAPI void rlSetCullFace(int mode); // Set face culling mode +RLAPI void rlEnableScissorTest(void); // Enable scissor test +RLAPI void rlDisableScissorTest(void); // Disable scissor test +RLAPI void rlScissor(int x, int y, int width, int height); // Scissor test +RLAPI void rlEnableWireMode(void); // Enable wire mode +RLAPI void rlEnablePointMode(void); // Enable point mode +RLAPI void rlDisableWireMode(void); // Disable wire (and point) mode +RLAPI void rlSetLineWidth(float width); // Set the line drawing width +RLAPI float rlGetLineWidth(void); // Get the line drawing width +RLAPI void rlEnableSmoothLines(void); // Enable line aliasing +RLAPI void rlDisableSmoothLines(void); // Disable line aliasing +RLAPI void rlEnableStereoRender(void); // Enable stereo rendering +RLAPI void rlDisableStereoRender(void); // Disable stereo rendering +RLAPI bool rlIsStereoRenderEnabled(void); // Check if stereo render is enabled + +RLAPI void rlClearColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a); // Clear color buffer with color +RLAPI void rlClearScreenBuffers(void); // Clear used screen buffers (color and depth) +RLAPI void rlCheckErrors(void); // Check and log OpenGL error codes +RLAPI void rlSetBlendMode(int mode); // Set blending mode +RLAPI void rlSetBlendFactors(int glSrcFactor, int glDstFactor, int glEquation); // Set blending mode factor and equation (using OpenGL factors) +RLAPI void rlSetBlendFactorsSeparate(int glSrcRGB, int glDstRGB, int glSrcAlpha, int glDstAlpha, int glEqRGB, int glEqAlpha); // Set blending mode factors and equations separately (using OpenGL factors) + +//------------------------------------------------------------------------------------ +// Functions Declaration - rlgl functionality +//------------------------------------------------------------------------------------ +// rlgl initialization functions +RLAPI void rlglInit(int width, int height); // Initialize rlgl (buffers, shaders, textures, states) +RLAPI void rlglClose(void); // De-initialize rlgl (buffers, shaders, textures) +RLAPI void rlLoadExtensions(void *loader); // Load OpenGL extensions (loader function required) +RLAPI int rlGetVersion(void); // Get current OpenGL version +RLAPI void rlSetFramebufferWidth(int width); // Set current framebuffer width +RLAPI int rlGetFramebufferWidth(void); // Get default framebuffer width +RLAPI void rlSetFramebufferHeight(int height); // Set current framebuffer height +RLAPI int rlGetFramebufferHeight(void); // Get default framebuffer height + +RLAPI unsigned int rlGetTextureIdDefault(void); // Get default texture id +RLAPI unsigned int rlGetShaderIdDefault(void); // Get default shader id +RLAPI int *rlGetShaderLocsDefault(void); // Get default shader locations + +// Render batch management +// NOTE: rlgl provides a default render batch to behave like OpenGL 1.1 immediate mode +// but this render batch API is exposed in case of custom batches are required +RLAPI rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements); // Load a render batch system +RLAPI void rlUnloadRenderBatch(rlRenderBatch batch); // Unload render batch system +RLAPI void rlDrawRenderBatch(rlRenderBatch *batch); // Draw render batch data (Update->Draw->Reset) +RLAPI void rlSetRenderBatchActive(rlRenderBatch *batch); // Set the active render batch for rlgl (NULL for default internal) +RLAPI void rlDrawRenderBatchActive(void); // Update and draw internal render batch +RLAPI bool rlCheckRenderBatchLimit(int vCount); // Check internal buffer overflow for a given number of vertex + +RLAPI void rlSetTexture(unsigned int id); // Set current texture for render batch and check buffers limits + +//------------------------------------------------------------------------------------------------------------------------ + +// Vertex buffers management +RLAPI unsigned int rlLoadVertexArray(void); // Load vertex array (vao) if supported +RLAPI unsigned int rlLoadVertexBuffer(const void *buffer, int size, bool dynamic); // Load a vertex buffer object +RLAPI unsigned int rlLoadVertexBufferElement(const void *buffer, int size, bool dynamic); // Load vertex buffer elements object +RLAPI void rlUpdateVertexBuffer(unsigned int bufferId, const void *data, int dataSize, int offset); // Update vertex buffer object data on GPU buffer +RLAPI void rlUpdateVertexBufferElements(unsigned int id, const void *data, int dataSize, int offset); // Update vertex buffer elements data on GPU buffer +RLAPI void rlUnloadVertexArray(unsigned int vaoId); // Unload vertex array (vao) +RLAPI void rlUnloadVertexBuffer(unsigned int vboId); // Unload vertex buffer object +RLAPI void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, int offset); // Set vertex attribute data configuration +RLAPI void rlSetVertexAttributeDivisor(unsigned int index, int divisor); // Set vertex attribute data divisor +RLAPI void rlSetVertexAttributeDefault(int locIndex, const void *value, int attribType, int count); // Set vertex attribute default value, when attribute to provided +RLAPI void rlDrawVertexArray(int offset, int count); // Draw vertex array (currently active vao) +RLAPI void rlDrawVertexArrayElements(int offset, int count, const void *buffer); // Draw vertex array elements +RLAPI void rlDrawVertexArrayInstanced(int offset, int count, int instances); // Draw vertex array (currently active vao) with instancing +RLAPI void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffer, int instances); // Draw vertex array elements with instancing + +// Textures management +RLAPI unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipmapCount); // Load texture data +RLAPI unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer); // Load depth texture/renderbuffer (to be attached to fbo) +RLAPI unsigned int rlLoadTextureCubemap(const void *data, int size, int format, int mipmapCount); // Load texture cubemap data +RLAPI void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data); // Update texture with new data on GPU +RLAPI void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType); // Get OpenGL internal formats +RLAPI const char *rlGetPixelFormatName(unsigned int format); // Get name string for pixel format +RLAPI void rlUnloadTexture(unsigned int id); // Unload texture from GPU memory +RLAPI void rlGenTextureMipmaps(unsigned int id, int width, int height, int format, int *mipmaps); // Generate mipmap data for selected texture +RLAPI void *rlReadTexturePixels(unsigned int id, int width, int height, int format); // Read texture pixel data +RLAPI unsigned char *rlReadScreenPixels(int width, int height); // Read screen pixel data (color buffer) + +// Framebuffer management (fbo) +RLAPI unsigned int rlLoadFramebuffer(void); // Load an empty framebuffer +RLAPI void rlFramebufferAttach(unsigned int fboId, unsigned int texId, int attachType, int texType, int mipLevel); // Attach texture/renderbuffer to a framebuffer +RLAPI bool rlFramebufferComplete(unsigned int id); // Verify framebuffer is complete +RLAPI void rlUnloadFramebuffer(unsigned int id); // Delete framebuffer from GPU + +// Shaders management +RLAPI unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode); // Load shader from code strings +RLAPI unsigned int rlCompileShader(const char *shaderCode, int type); // Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER) +RLAPI unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fShaderId); // Load custom shader program +RLAPI void rlUnloadShaderProgram(unsigned int id); // Unload shader program +RLAPI int rlGetLocationUniform(unsigned int shaderId, const char *uniformName); // Get shader location uniform +RLAPI int rlGetLocationAttrib(unsigned int shaderId, const char *attribName); // Get shader location attribute +RLAPI void rlSetUniform(int locIndex, const void *value, int uniformType, int count); // Set shader value uniform +RLAPI void rlSetUniformMatrix(int locIndex, Matrix mat); // Set shader value matrix +RLAPI void rlSetUniformMatrices(int locIndex, const Matrix *mat, int count); // Set shader value matrices +RLAPI void rlSetUniformSampler(int locIndex, unsigned int textureId); // Set shader value sampler +RLAPI void rlSetShader(unsigned int id, int *locs); // Set shader currently active (id and locations) + +// Compute shader management +RLAPI unsigned int rlLoadComputeShaderProgram(unsigned int shaderId); // Load compute shader program +RLAPI void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ); // Dispatch compute shader (equivalent to *draw* for graphics pipeline) + +// Shader buffer storage object management (ssbo) +RLAPI unsigned int rlLoadShaderBuffer(unsigned int size, const void *data, int usageHint); // Load shader storage buffer object (SSBO) +RLAPI void rlUnloadShaderBuffer(unsigned int ssboId); // Unload shader storage buffer object (SSBO) +RLAPI void rlUpdateShaderBuffer(unsigned int id, const void *data, unsigned int dataSize, unsigned int offset); // Update SSBO buffer data +RLAPI void rlBindShaderBuffer(unsigned int id, unsigned int index); // Bind SSBO buffer +RLAPI void rlReadShaderBuffer(unsigned int id, void *dest, unsigned int count, unsigned int offset); // Read SSBO buffer data (GPU->CPU) +RLAPI void rlCopyShaderBuffer(unsigned int destId, unsigned int srcId, unsigned int destOffset, unsigned int srcOffset, unsigned int count); // Copy SSBO data between buffers +RLAPI unsigned int rlGetShaderBufferSize(unsigned int id); // Get SSBO buffer size + +// Buffer management +RLAPI void rlBindImageTexture(unsigned int id, unsigned int index, int format, bool readonly); // Bind image texture + +// Matrix state management +RLAPI Matrix rlGetMatrixModelview(void); // Get internal modelview matrix +RLAPI Matrix rlGetMatrixProjection(void); // Get internal projection matrix +RLAPI Matrix rlGetMatrixTransform(void); // Get internal accumulated transform matrix +RLAPI Matrix rlGetMatrixProjectionStereo(int eye); // Get internal projection matrix for stereo render (selected eye) +RLAPI Matrix rlGetMatrixViewOffsetStereo(int eye); // Get internal view offset matrix for stereo render (selected eye) +RLAPI void rlSetMatrixProjection(Matrix proj); // Set a custom projection matrix (replaces internal projection matrix) +RLAPI void rlSetMatrixModelview(Matrix view); // Set a custom modelview matrix (replaces internal modelview matrix) +RLAPI void rlSetMatrixProjectionStereo(Matrix right, Matrix left); // Set eyes projection matrices for stereo rendering +RLAPI void rlSetMatrixViewOffsetStereo(Matrix right, Matrix left); // Set eyes view offsets matrices for stereo rendering + +// Quick and dirty cube/quad buffers load->draw->unload +RLAPI void rlLoadDrawCube(void); // Load and draw a cube +RLAPI void rlLoadDrawQuad(void); // Load and draw a quad + +#if defined(__cplusplus) +} +#endif + +#endif // RLGL_H + +/*********************************************************************************** +* +* RLGL IMPLEMENTATION +* +************************************************************************************/ + +#if defined(RLGL_IMPLEMENTATION) + +// Expose OpenGL functions from glad in raylib +#if defined(BUILD_LIBTYPE_SHARED) + #define GLAD_API_CALL_EXPORT + #define GLAD_API_CALL_EXPORT_BUILD +#endif + +#if defined(GRAPHICS_API_OPENGL_11) + #if defined(__APPLE__) + #include // OpenGL 1.1 library for OSX + #include // OpenGL extensions library + #else + // APIENTRY for OpenGL function pointer declarations is required + #if !defined(APIENTRY) + #if defined(_WIN32) + #define APIENTRY __stdcall + #else + #define APIENTRY + #endif + #endif + // WINGDIAPI definition. Some Windows OpenGL headers need it + #if !defined(WINGDIAPI) && defined(_WIN32) + #define WINGDIAPI __declspec(dllimport) + #endif + + #include // OpenGL 1.1 library + #endif +#endif + +#if defined(GRAPHICS_API_OPENGL_33) + #define GLAD_MALLOC RL_MALLOC + #define GLAD_FREE RL_FREE + + #define GLAD_GL_IMPLEMENTATION + #include "external/glad.h" // GLAD extensions loading library, includes OpenGL headers +#endif + +#if defined(GRAPHICS_API_OPENGL_ES3) + #include // OpenGL ES 3.0 library + #define GL_GLEXT_PROTOTYPES + #include // OpenGL ES 2.0 extensions library +#elif defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: OpenGL ES 2.0 can be enabled on Desktop platforms, + // in that case, functions are loaded from a custom glad for OpenGL ES 2.0 + #if defined(PLATFORM_DESKTOP_GLFW) || defined(PLATFORM_DESKTOP_SDL) + #define GLAD_GLES2_IMPLEMENTATION + #include "external/glad_gles2.h" + #else + #define GL_GLEXT_PROTOTYPES + //#include // EGL library -> not required, platform layer + #include // OpenGL ES 2.0 library + #include // OpenGL ES 2.0 extensions library + #endif + + // It seems OpenGL ES 2.0 instancing entry points are not defined on Raspberry Pi + // provided headers (despite being defined in official Khronos GLES2 headers) + #if defined(PLATFORM_DRM) + typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); + typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); + typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISOREXTPROC) (GLuint index, GLuint divisor); + #endif +#endif + +#include // Required for: malloc(), free() +#include // Required for: strcmp(), strlen() [Used in rlglInit(), on extensions loading] +#include // Required for: sqrtf(), sinf(), cosf(), floor(), log() + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- +#ifndef PI + #define PI 3.14159265358979323846f +#endif +#ifndef DEG2RAD + #define DEG2RAD (PI/180.0f) +#endif +#ifndef RAD2DEG + #define RAD2DEG (180.0f/PI) +#endif + +#ifndef GL_SHADING_LANGUAGE_VERSION + #define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#endif + +#ifndef GL_COMPRESSED_RGB_S3TC_DXT1_EXT + #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#endif +#ifndef GL_COMPRESSED_RGBA_S3TC_DXT1_EXT + #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#endif +#ifndef GL_COMPRESSED_RGBA_S3TC_DXT3_EXT + #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#endif +#ifndef GL_COMPRESSED_RGBA_S3TC_DXT5_EXT + #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 +#endif +#ifndef GL_ETC1_RGB8_OES + #define GL_ETC1_RGB8_OES 0x8D64 +#endif +#ifndef GL_COMPRESSED_RGB8_ETC2 + #define GL_COMPRESSED_RGB8_ETC2 0x9274 +#endif +#ifndef GL_COMPRESSED_RGBA8_ETC2_EAC + #define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 +#endif +#ifndef GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG + #define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 +#endif +#ifndef GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG + #define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 +#endif +#ifndef GL_COMPRESSED_RGBA_ASTC_4x4_KHR + #define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93b0 +#endif +#ifndef GL_COMPRESSED_RGBA_ASTC_8x8_KHR + #define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93b7 +#endif + +#ifndef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT + #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF +#endif +#ifndef GL_TEXTURE_MAX_ANISOTROPY_EXT + #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#endif + +#ifndef GL_PROGRAM_POINT_SIZE + #define GL_PROGRAM_POINT_SIZE 0x8642 +#endif + +#ifndef GL_LINE_WIDTH + #define GL_LINE_WIDTH 0x0B21 +#endif + +#if defined(GRAPHICS_API_OPENGL_11) + #define GL_UNSIGNED_SHORT_5_6_5 0x8363 + #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 + #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#endif + +#if defined(GRAPHICS_API_OPENGL_21) + #define GL_LUMINANCE 0x1909 + #define GL_LUMINANCE_ALPHA 0x190A +#endif + +#if defined(GRAPHICS_API_OPENGL_ES2) + #define glClearDepth glClearDepthf + #if !defined(GRAPHICS_API_OPENGL_ES3) + #define GL_READ_FRAMEBUFFER GL_FRAMEBUFFER + #define GL_DRAW_FRAMEBUFFER GL_FRAMEBUFFER + #endif +#endif + +// Default shader vertex attribute names to set location points +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION + #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD + #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL + #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR + #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT + #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 + #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS + #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS "vertexBoneIds" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS +#endif +#ifndef RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS + #define RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS "vertexBoneWeights" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS +#endif + +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_MVP + #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW + #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION + #define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL + #define RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL "matModel" // model matrix +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL + #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView)) +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR + #define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color) +#endif +#ifndef RL_DEFAULT_SHADER_UNIFORM_NAME_BONE_MATRICES + #define RL_DEFAULT_SHADER_UNIFORM_NAME_BONE_MATRICES "boneMatrices" // bone matrices +#endif +#ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 + #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0) +#endif +#ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 + #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 "texture1" // texture1 (texture slot active 1) +#endif +#ifndef RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 + #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 "texture2" // texture2 (texture slot active 2) +#endif + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +typedef struct rlglData { + rlRenderBatch *currentBatch; // Current render batch + rlRenderBatch defaultBatch; // Default internal render batch + + struct { + int vertexCounter; // Current active render batch vertex counter (generic, used for all batches) + float texcoordx, texcoordy; // Current active texture coordinate (added on glVertex*()) + float normalx, normaly, normalz; // Current active normal (added on glVertex*()) + unsigned char colorr, colorg, colorb, colora; // Current active color (added on glVertex*()) + + int currentMatrixMode; // Current matrix mode + Matrix *currentMatrix; // Current matrix pointer + Matrix modelview; // Default modelview matrix + Matrix projection; // Default projection matrix + Matrix transform; // Transform matrix to be used with rlTranslate, rlRotate, rlScale + bool transformRequired; // Require transform matrix application to current draw-call vertex (if required) + Matrix stack[RL_MAX_MATRIX_STACK_SIZE];// Matrix stack for push/pop + int stackCounter; // Matrix stack counter + + unsigned int defaultTextureId; // Default texture used on shapes/poly drawing (required by shader) + unsigned int activeTextureId[RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS]; // Active texture ids to be enabled on batch drawing (0 active by default) + unsigned int defaultVShaderId; // Default vertex shader id (used by default shader program) + unsigned int defaultFShaderId; // Default fragment shader id (used by default shader program) + unsigned int defaultShaderId; // Default shader program id, supports vertex color and diffuse texture + int *defaultShaderLocs; // Default shader locations pointer to be used on rendering + unsigned int currentShaderId; // Current shader id to be used on rendering (by default, defaultShaderId) + int *currentShaderLocs; // Current shader locations pointer to be used on rendering (by default, defaultShaderLocs) + + bool stereoRender; // Stereo rendering flag + Matrix projectionStereo[2]; // VR stereo rendering eyes projection matrices + Matrix viewOffsetStereo[2]; // VR stereo rendering eyes view offset matrices + + // Blending variables + int currentBlendMode; // Blending mode active + int glBlendSrcFactor; // Blending source factor + int glBlendDstFactor; // Blending destination factor + int glBlendEquation; // Blending equation + int glBlendSrcFactorRGB; // Blending source RGB factor + int glBlendDestFactorRGB; // Blending destination RGB factor + int glBlendSrcFactorAlpha; // Blending source alpha factor + int glBlendDestFactorAlpha; // Blending destination alpha factor + int glBlendEquationRGB; // Blending equation for RGB + int glBlendEquationAlpha; // Blending equation for alpha + bool glCustomBlendModeModified; // Custom blending factor and equation modification status + + int framebufferWidth; // Current framebuffer width + int framebufferHeight; // Current framebuffer height + + } State; // Renderer state + struct { + bool vao; // VAO support (OpenGL ES2 could not support VAO extension) (GL_ARB_vertex_array_object) + bool instancing; // Instancing supported (GL_ANGLE_instanced_arrays, GL_EXT_draw_instanced + GL_EXT_instanced_arrays) + bool texNPOT; // NPOT textures full support (GL_ARB_texture_non_power_of_two, GL_OES_texture_npot) + bool texDepth; // Depth textures supported (GL_ARB_depth_texture, GL_OES_depth_texture) + bool texDepthWebGL; // Depth textures supported WebGL specific (GL_WEBGL_depth_texture) + bool texFloat32; // float textures support (32 bit per channel) (GL_OES_texture_float) + bool texFloat16; // half float textures support (16 bit per channel) (GL_OES_texture_half_float) + bool texCompDXT; // DDS texture compression support (GL_EXT_texture_compression_s3tc, GL_WEBGL_compressed_texture_s3tc, GL_WEBKIT_WEBGL_compressed_texture_s3tc) + bool texCompETC1; // ETC1 texture compression support (GL_OES_compressed_ETC1_RGB8_texture, GL_WEBGL_compressed_texture_etc1) + bool texCompETC2; // ETC2/EAC texture compression support (GL_ARB_ES3_compatibility) + bool texCompPVRT; // PVR texture compression support (GL_IMG_texture_compression_pvrtc) + bool texCompASTC; // ASTC texture compression support (GL_KHR_texture_compression_astc_hdr, GL_KHR_texture_compression_astc_ldr) + bool texMirrorClamp; // Clamp mirror wrap mode supported (GL_EXT_texture_mirror_clamp) + bool texAnisoFilter; // Anisotropic texture filtering support (GL_EXT_texture_filter_anisotropic) + bool computeShader; // Compute shaders support (GL_ARB_compute_shader) + bool ssbo; // Shader storage buffer object support (GL_ARB_shader_storage_buffer_object) + + float maxAnisotropyLevel; // Maximum anisotropy level supported (minimum is 2.0f) + int maxDepthBits; // Maximum bits for depth component + + } ExtSupported; // Extensions supported flags +} rlglData; + +typedef void *(*rlglLoadProc)(const char *name); // OpenGL extension functions loader signature (same as GLADloadproc) + +#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- +static double rlCullDistanceNear = RL_CULL_DISTANCE_NEAR; +static double rlCullDistanceFar = RL_CULL_DISTANCE_FAR; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +static rlglData RLGL = { 0 }; +#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 + +#if defined(GRAPHICS_API_OPENGL_ES2) && !defined(GRAPHICS_API_OPENGL_ES3) +// NOTE: VAO functionality is exposed through extensions (OES) +static PFNGLGENVERTEXARRAYSOESPROC glGenVertexArrays = NULL; +static PFNGLBINDVERTEXARRAYOESPROC glBindVertexArray = NULL; +static PFNGLDELETEVERTEXARRAYSOESPROC glDeleteVertexArrays = NULL; + +// NOTE: Instancing functionality could also be available through extension +static PFNGLDRAWARRAYSINSTANCEDEXTPROC glDrawArraysInstanced = NULL; +static PFNGLDRAWELEMENTSINSTANCEDEXTPROC glDrawElementsInstanced = NULL; +static PFNGLVERTEXATTRIBDIVISOREXTPROC glVertexAttribDivisor = NULL; +#endif + +//---------------------------------------------------------------------------------- +// Module specific Functions Declaration +//---------------------------------------------------------------------------------- +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +static void rlLoadShaderDefault(void); // Load default shader +static void rlUnloadShaderDefault(void); // Unload default shader +#if defined(RLGL_SHOW_GL_DETAILS_INFO) +static const char *rlGetCompressedFormatName(int format); // Get compressed format official GL identifier name +#endif // RLGL_SHOW_GL_DETAILS_INFO +#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 + +static int rlGetPixelDataSize(int width, int height, int format); // Get pixel data size in bytes (image or texture) + +// Auxiliar matrix math functions +typedef struct rl_float16 { + float v[16]; +} rl_float16; +static rl_float16 rlMatrixToFloatV(Matrix mat); // Get float array of matrix data +#define rlMatrixToFloat(mat) (rlMatrixToFloatV(mat).v) // Get float vector for Matrix +static Matrix rlMatrixIdentity(void); // Get identity matrix +static Matrix rlMatrixMultiply(Matrix left, Matrix right); // Multiply two matrices +static Matrix rlMatrixTranspose(Matrix mat); // Transposes provided matrix +static Matrix rlMatrixInvert(Matrix mat); // Invert provided matrix + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Matrix operations +//---------------------------------------------------------------------------------- + +#if defined(GRAPHICS_API_OPENGL_11) +// Fallback to OpenGL 1.1 function calls +//--------------------------------------- +void rlMatrixMode(int mode) +{ + switch (mode) + { + case RL_PROJECTION: glMatrixMode(GL_PROJECTION); break; + case RL_MODELVIEW: glMatrixMode(GL_MODELVIEW); break; + case RL_TEXTURE: glMatrixMode(GL_TEXTURE); break; + default: break; + } +} + +void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar) +{ + glFrustum(left, right, bottom, top, znear, zfar); +} + +void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar) +{ + glOrtho(left, right, bottom, top, znear, zfar); +} + +void rlPushMatrix(void) { glPushMatrix(); } +void rlPopMatrix(void) { glPopMatrix(); } +void rlLoadIdentity(void) { glLoadIdentity(); } +void rlTranslatef(float x, float y, float z) { glTranslatef(x, y, z); } +void rlRotatef(float angle, float x, float y, float z) { glRotatef(angle, x, y, z); } +void rlScalef(float x, float y, float z) { glScalef(x, y, z); } +void rlMultMatrixf(const float *matf) { glMultMatrixf(matf); } +#endif +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +// Choose the current matrix to be transformed +void rlMatrixMode(int mode) +{ + if (mode == RL_PROJECTION) RLGL.State.currentMatrix = &RLGL.State.projection; + else if (mode == RL_MODELVIEW) RLGL.State.currentMatrix = &RLGL.State.modelview; + //else if (mode == RL_TEXTURE) // Not supported + + RLGL.State.currentMatrixMode = mode; +} + +// Push the current matrix into RLGL.State.stack +void rlPushMatrix(void) +{ + if (RLGL.State.stackCounter >= RL_MAX_MATRIX_STACK_SIZE) TRACELOG(RL_LOG_ERROR, "RLGL: Matrix stack overflow (RL_MAX_MATRIX_STACK_SIZE)"); + + if (RLGL.State.currentMatrixMode == RL_MODELVIEW) + { + RLGL.State.transformRequired = true; + RLGL.State.currentMatrix = &RLGL.State.transform; + } + + RLGL.State.stack[RLGL.State.stackCounter] = *RLGL.State.currentMatrix; + RLGL.State.stackCounter++; +} + +// Pop lattest inserted matrix from RLGL.State.stack +void rlPopMatrix(void) +{ + if (RLGL.State.stackCounter > 0) + { + Matrix mat = RLGL.State.stack[RLGL.State.stackCounter - 1]; + *RLGL.State.currentMatrix = mat; + RLGL.State.stackCounter--; + } + + if ((RLGL.State.stackCounter == 0) && (RLGL.State.currentMatrixMode == RL_MODELVIEW)) + { + RLGL.State.currentMatrix = &RLGL.State.modelview; + RLGL.State.transformRequired = false; + } +} + +// Reset current matrix to identity matrix +void rlLoadIdentity(void) +{ + *RLGL.State.currentMatrix = rlMatrixIdentity(); +} + +// Multiply the current matrix by a translation matrix +void rlTranslatef(float x, float y, float z) +{ + Matrix matTranslation = { + 1.0f, 0.0f, 0.0f, x, + 0.0f, 1.0f, 0.0f, y, + 0.0f, 0.0f, 1.0f, z, + 0.0f, 0.0f, 0.0f, 1.0f + }; + + // NOTE: We transpose matrix with multiplication order + *RLGL.State.currentMatrix = rlMatrixMultiply(matTranslation, *RLGL.State.currentMatrix); +} + +// Multiply the current matrix by a rotation matrix +// NOTE: The provided angle must be in degrees +void rlRotatef(float angle, float x, float y, float z) +{ + Matrix matRotation = rlMatrixIdentity(); + + // Axis vector (x, y, z) normalization + float lengthSquared = x*x + y*y + z*z; + if ((lengthSquared != 1.0f) && (lengthSquared != 0.0f)) + { + float inverseLength = 1.0f/sqrtf(lengthSquared); + x *= inverseLength; + y *= inverseLength; + z *= inverseLength; + } + + // Rotation matrix generation + float sinres = sinf(DEG2RAD*angle); + float cosres = cosf(DEG2RAD*angle); + float t = 1.0f - cosres; + + matRotation.m0 = x*x*t + cosres; + matRotation.m1 = y*x*t + z*sinres; + matRotation.m2 = z*x*t - y*sinres; + matRotation.m3 = 0.0f; + + matRotation.m4 = x*y*t - z*sinres; + matRotation.m5 = y*y*t + cosres; + matRotation.m6 = z*y*t + x*sinres; + matRotation.m7 = 0.0f; + + matRotation.m8 = x*z*t + y*sinres; + matRotation.m9 = y*z*t - x*sinres; + matRotation.m10 = z*z*t + cosres; + matRotation.m11 = 0.0f; + + matRotation.m12 = 0.0f; + matRotation.m13 = 0.0f; + matRotation.m14 = 0.0f; + matRotation.m15 = 1.0f; + + // NOTE: We transpose matrix with multiplication order + *RLGL.State.currentMatrix = rlMatrixMultiply(matRotation, *RLGL.State.currentMatrix); +} + +// Multiply the current matrix by a scaling matrix +void rlScalef(float x, float y, float z) +{ + Matrix matScale = { + x, 0.0f, 0.0f, 0.0f, + 0.0f, y, 0.0f, 0.0f, + 0.0f, 0.0f, z, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + }; + + // NOTE: We transpose matrix with multiplication order + *RLGL.State.currentMatrix = rlMatrixMultiply(matScale, *RLGL.State.currentMatrix); +} + +// Multiply the current matrix by another matrix +void rlMultMatrixf(const float *matf) +{ + // Matrix creation from array + Matrix mat = { matf[0], matf[4], matf[8], matf[12], + matf[1], matf[5], matf[9], matf[13], + matf[2], matf[6], matf[10], matf[14], + matf[3], matf[7], matf[11], matf[15] }; + + *RLGL.State.currentMatrix = rlMatrixMultiply(mat, *RLGL.State.currentMatrix); +} + +// Multiply the current matrix by a perspective matrix generated by parameters +void rlFrustum(double left, double right, double bottom, double top, double znear, double zfar) +{ + Matrix matFrustum = { 0 }; + + float rl = (float)(right - left); + float tb = (float)(top - bottom); + float fn = (float)(zfar - znear); + + matFrustum.m0 = ((float) znear*2.0f)/rl; + matFrustum.m1 = 0.0f; + matFrustum.m2 = 0.0f; + matFrustum.m3 = 0.0f; + + matFrustum.m4 = 0.0f; + matFrustum.m5 = ((float) znear*2.0f)/tb; + matFrustum.m6 = 0.0f; + matFrustum.m7 = 0.0f; + + matFrustum.m8 = ((float)right + (float)left)/rl; + matFrustum.m9 = ((float)top + (float)bottom)/tb; + matFrustum.m10 = -((float)zfar + (float)znear)/fn; + matFrustum.m11 = -1.0f; + + matFrustum.m12 = 0.0f; + matFrustum.m13 = 0.0f; + matFrustum.m14 = -((float)zfar*(float)znear*2.0f)/fn; + matFrustum.m15 = 0.0f; + + *RLGL.State.currentMatrix = rlMatrixMultiply(*RLGL.State.currentMatrix, matFrustum); +} + +// Multiply the current matrix by an orthographic matrix generated by parameters +void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar) +{ + // NOTE: If left-right and top-botton values are equal it could create a division by zero, + // response to it is platform/compiler dependant + Matrix matOrtho = { 0 }; + + float rl = (float)(right - left); + float tb = (float)(top - bottom); + float fn = (float)(zfar - znear); + + matOrtho.m0 = 2.0f/rl; + matOrtho.m1 = 0.0f; + matOrtho.m2 = 0.0f; + matOrtho.m3 = 0.0f; + matOrtho.m4 = 0.0f; + matOrtho.m5 = 2.0f/tb; + matOrtho.m6 = 0.0f; + matOrtho.m7 = 0.0f; + matOrtho.m8 = 0.0f; + matOrtho.m9 = 0.0f; + matOrtho.m10 = -2.0f/fn; + matOrtho.m11 = 0.0f; + matOrtho.m12 = -((float)left + (float)right)/rl; + matOrtho.m13 = -((float)top + (float)bottom)/tb; + matOrtho.m14 = -((float)zfar + (float)znear)/fn; + matOrtho.m15 = 1.0f; + + *RLGL.State.currentMatrix = rlMatrixMultiply(*RLGL.State.currentMatrix, matOrtho); +} +#endif + +// Set the viewport area (transformation from normalized device coordinates to window coordinates) +// NOTE: We store current viewport dimensions +void rlViewport(int x, int y, int width, int height) +{ + glViewport(x, y, width, height); +} + +// Set clip planes distances +void rlSetClipPlanes(double nearPlane, double farPlane) +{ + rlCullDistanceNear = nearPlane; + rlCullDistanceFar = farPlane; +} + +// Get cull plane distance near +double rlGetCullDistanceNear(void) +{ + return rlCullDistanceNear; +} + +// Get cull plane distance far +double rlGetCullDistanceFar(void) +{ + return rlCullDistanceFar; +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition - Vertex level operations +//---------------------------------------------------------------------------------- +#if defined(GRAPHICS_API_OPENGL_11) +// Fallback to OpenGL 1.1 function calls +//--------------------------------------- +void rlBegin(int mode) +{ + switch (mode) + { + case RL_LINES: glBegin(GL_LINES); break; + case RL_TRIANGLES: glBegin(GL_TRIANGLES); break; + case RL_QUADS: glBegin(GL_QUADS); break; + default: break; + } +} + +void rlEnd(void) { glEnd(); } +void rlVertex2i(int x, int y) { glVertex2i(x, y); } +void rlVertex2f(float x, float y) { glVertex2f(x, y); } +void rlVertex3f(float x, float y, float z) { glVertex3f(x, y, z); } +void rlTexCoord2f(float x, float y) { glTexCoord2f(x, y); } +void rlNormal3f(float x, float y, float z) { glNormal3f(x, y, z); } +void rlColor4ub(unsigned char r, unsigned char g, unsigned char b, unsigned char a) { glColor4ub(r, g, b, a); } +void rlColor3f(float x, float y, float z) { glColor3f(x, y, z); } +void rlColor4f(float x, float y, float z, float w) { glColor4f(x, y, z, w); } +#endif +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +// Initialize drawing mode (how to organize vertex) +void rlBegin(int mode) +{ + // Draw mode can be RL_LINES, RL_TRIANGLES and RL_QUADS + // NOTE: In all three cases, vertex are accumulated over default internal vertex buffer + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode != mode) + { + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount > 0) + { + // Make sure current RLGL.currentBatch->draws[i].vertexCount is aligned a multiple of 4, + // that way, following QUADS drawing will keep aligned with index processing + // It implies adding some extra alignment vertex at the end of the draw, + // those vertex are not processed but they are considered as an additional offset + // for the next set of vertex to be drawn + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount : RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4); + else if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? 1 : (4 - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4))); + else RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = 0; + + if (!rlCheckRenderBatchLimit(RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment)) + { + RLGL.State.vertexCounter += RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment; + RLGL.currentBatch->drawCounter++; + } + } + + if (RLGL.currentBatch->drawCounter >= RL_DEFAULT_BATCH_DRAWCALLS) rlDrawRenderBatch(RLGL.currentBatch); + + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode = mode; + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount = 0; + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = RLGL.State.defaultTextureId; + } +} + +// Finish vertex providing +void rlEnd(void) +{ + // NOTE: Depth increment is dependant on rlOrtho(): z-near and z-far values, + // as well as depth buffer bit-depth (16bit or 24bit or 32bit) + // Correct increment formula would be: depthInc = (zfar - znear)/pow(2, bits) + RLGL.currentBatch->currentDepth += (1.0f/20000.0f); +} + +// Define one vertex (position) +// NOTE: Vertex position data is the basic information required for drawing +void rlVertex3f(float x, float y, float z) +{ + float tx = x; + float ty = y; + float tz = z; + + // Transform provided vector if required + if (RLGL.State.transformRequired) + { + tx = RLGL.State.transform.m0*x + RLGL.State.transform.m4*y + RLGL.State.transform.m8*z + RLGL.State.transform.m12; + ty = RLGL.State.transform.m1*x + RLGL.State.transform.m5*y + RLGL.State.transform.m9*z + RLGL.State.transform.m13; + tz = RLGL.State.transform.m2*x + RLGL.State.transform.m6*y + RLGL.State.transform.m10*z + RLGL.State.transform.m14; + } + + // WARNING: We can't break primitives when launching a new batch + // RL_LINES comes in pairs, RL_TRIANGLES come in groups of 3 vertices and RL_QUADS come in groups of 4 vertices + // We must check current draw.mode when a new vertex is required and finish the batch only if the draw.mode draw.vertexCount is %2, %3 or %4 + if (RLGL.State.vertexCounter > (RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4 - 4)) + { + if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) && + (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%2 == 0)) + { + // Reached the maximum number of vertices for RL_LINES drawing + // Launch a draw call but keep current state for next vertices comming + // NOTE: We add +1 vertex to the check for security + rlCheckRenderBatchLimit(2 + 1); + } + else if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) && + (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%3 == 0)) + { + rlCheckRenderBatchLimit(3 + 1); + } + else if ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_QUADS) && + (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4 == 0)) + { + rlCheckRenderBatchLimit(4 + 1); + } + } + + // Add vertices + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter] = tx; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter + 1] = ty; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].vertices[3*RLGL.State.vertexCounter + 2] = tz; + + // Add current texcoord + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter] = RLGL.State.texcoordx; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter + 1] = RLGL.State.texcoordy; + + // Add current normal + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter] = RLGL.State.normalx; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter + 1] = RLGL.State.normaly; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].normals[3*RLGL.State.vertexCounter + 2] = RLGL.State.normalz; + + // Add current color + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter] = RLGL.State.colorr; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 1] = RLGL.State.colorg; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 2] = RLGL.State.colorb; + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter + 3] = RLGL.State.colora; + + RLGL.State.vertexCounter++; + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount++; +} + +// Define one vertex (position) +void rlVertex2f(float x, float y) +{ + rlVertex3f(x, y, RLGL.currentBatch->currentDepth); +} + +// Define one vertex (position) +void rlVertex2i(int x, int y) +{ + rlVertex3f((float)x, (float)y, RLGL.currentBatch->currentDepth); +} + +// Define one vertex (texture coordinate) +// NOTE: Texture coordinates are limited to QUADS only +void rlTexCoord2f(float x, float y) +{ + RLGL.State.texcoordx = x; + RLGL.State.texcoordy = y; +} + +// Define one vertex (normal) +// NOTE: Normals limited to TRIANGLES only? +void rlNormal3f(float x, float y, float z) +{ + float normalx = x; + float normaly = y; + float normalz = z; + if (RLGL.State.transformRequired) + { + normalx = RLGL.State.transform.m0*x + RLGL.State.transform.m4*y + RLGL.State.transform.m8*z; + normaly = RLGL.State.transform.m1*x + RLGL.State.transform.m5*y + RLGL.State.transform.m9*z; + normalz = RLGL.State.transform.m2*x + RLGL.State.transform.m6*y + RLGL.State.transform.m10*z; + } + float length = sqrtf(normalx*normalx + normaly*normaly + normalz*normalz); + if (length != 0.0f) + { + float ilength = 1.0f/length; + normalx *= ilength; + normaly *= ilength; + normalz *= ilength; + } + RLGL.State.normalx = normalx; + RLGL.State.normaly = normaly; + RLGL.State.normalz = normalz; +} + +// Define one vertex (color) +void rlColor4ub(unsigned char x, unsigned char y, unsigned char z, unsigned char w) +{ + RLGL.State.colorr = x; + RLGL.State.colorg = y; + RLGL.State.colorb = z; + RLGL.State.colora = w; +} + +// Define one vertex (color) +void rlColor4f(float r, float g, float b, float a) +{ + rlColor4ub((unsigned char)(r*255), (unsigned char)(g*255), (unsigned char)(b*255), (unsigned char)(a*255)); +} + +// Define one vertex (color) +void rlColor3f(float x, float y, float z) +{ + rlColor4ub((unsigned char)(x*255), (unsigned char)(y*255), (unsigned char)(z*255), 255); +} + +#endif + +//-------------------------------------------------------------------------------------- +// Module Functions Definition - OpenGL style functions (common to 1.1, 3.3+, ES2) +//-------------------------------------------------------------------------------------- + +// Set current texture to use +void rlSetTexture(unsigned int id) +{ + if (id == 0) + { +#if defined(GRAPHICS_API_OPENGL_11) + rlDisableTexture(); +#else + // NOTE: If quads batch limit is reached, we force a draw call and next batch starts + if (RLGL.State.vertexCounter >= + RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4) + { + rlDrawRenderBatch(RLGL.currentBatch); + } +#endif + } + else + { +#if defined(GRAPHICS_API_OPENGL_11) + rlEnableTexture(id); +#else + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId != id) + { + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount > 0) + { + // Make sure current RLGL.currentBatch->draws[i].vertexCount is aligned a multiple of 4, + // that way, following QUADS drawing will keep aligned with index processing + // It implies adding some extra alignment vertex at the end of the draw, + // those vertex are not processed but they are considered as an additional offset + // for the next set of vertex to be drawn + if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_LINES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount : RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4); + else if (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode == RL_TRIANGLES) RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = ((RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount < 4)? 1 : (4 - (RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount%4))); + else RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment = 0; + + if (!rlCheckRenderBatchLimit(RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment)) + { + RLGL.State.vertexCounter += RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexAlignment; + + RLGL.currentBatch->drawCounter++; + } + } + + if (RLGL.currentBatch->drawCounter >= RL_DEFAULT_BATCH_DRAWCALLS) rlDrawRenderBatch(RLGL.currentBatch); + + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = id; + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].vertexCount = 0; + } +#endif + } +} + +// Select and active a texture slot +void rlActiveTextureSlot(int slot) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glActiveTexture(GL_TEXTURE0 + slot); +#endif +} + +// Enable texture +void rlEnableTexture(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_11) + glEnable(GL_TEXTURE_2D); +#endif + glBindTexture(GL_TEXTURE_2D, id); +} + +// Disable texture +void rlDisableTexture(void) +{ +#if defined(GRAPHICS_API_OPENGL_11) + glDisable(GL_TEXTURE_2D); +#endif + glBindTexture(GL_TEXTURE_2D, 0); +} + +// Enable texture cubemap +void rlEnableTextureCubemap(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindTexture(GL_TEXTURE_CUBE_MAP, id); +#endif +} + +// Disable texture cubemap +void rlDisableTextureCubemap(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindTexture(GL_TEXTURE_CUBE_MAP, 0); +#endif +} + +// Set texture parameters (wrap mode/filter mode) +void rlTextureParameters(unsigned int id, int param, int value) +{ + glBindTexture(GL_TEXTURE_2D, id); + +#if !defined(GRAPHICS_API_OPENGL_11) + // Reset anisotropy filter, in case it was set + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0f); +#endif + + switch (param) + { + case RL_TEXTURE_WRAP_S: + case RL_TEXTURE_WRAP_T: + { + if (value == RL_TEXTURE_WRAP_MIRROR_CLAMP) + { +#if !defined(GRAPHICS_API_OPENGL_11) + if (RLGL.ExtSupported.texMirrorClamp) glTexParameteri(GL_TEXTURE_2D, param, value); + else TRACELOG(RL_LOG_WARNING, "GL: Clamp mirror wrap mode not supported (GL_MIRROR_CLAMP_EXT)"); +#endif + } + else glTexParameteri(GL_TEXTURE_2D, param, value); + + } break; + case RL_TEXTURE_MAG_FILTER: + case RL_TEXTURE_MIN_FILTER: glTexParameteri(GL_TEXTURE_2D, param, value); break; + case RL_TEXTURE_FILTER_ANISOTROPIC: + { +#if !defined(GRAPHICS_API_OPENGL_11) + if (value <= RLGL.ExtSupported.maxAnisotropyLevel) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); + else if (RLGL.ExtSupported.maxAnisotropyLevel > 0.0f) + { + TRACELOG(RL_LOG_WARNING, "GL: Maximum anisotropic filter level supported is %iX", id, (int)RLGL.ExtSupported.maxAnisotropyLevel); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); + } + else TRACELOG(RL_LOG_WARNING, "GL: Anisotropic filtering not supported"); +#endif + } break; +#if defined(GRAPHICS_API_OPENGL_33) + case RL_TEXTURE_MIPMAP_BIAS_RATIO: glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_LOD_BIAS, value/100.0f); +#endif + default: break; + } + + glBindTexture(GL_TEXTURE_2D, 0); +} + +// Set cubemap parameters (wrap mode/filter mode) +void rlCubemapParameters(unsigned int id, int param, int value) +{ +#if !defined(GRAPHICS_API_OPENGL_11) + glBindTexture(GL_TEXTURE_CUBE_MAP, id); + + // Reset anisotropy filter, in case it was set + glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0f); + + switch (param) + { + case RL_TEXTURE_WRAP_S: + case RL_TEXTURE_WRAP_T: + { + if (value == RL_TEXTURE_WRAP_MIRROR_CLAMP) + { + if (RLGL.ExtSupported.texMirrorClamp) glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); + else TRACELOG(RL_LOG_WARNING, "GL: Clamp mirror wrap mode not supported (GL_MIRROR_CLAMP_EXT)"); + } + else glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); + + } break; + case RL_TEXTURE_MAG_FILTER: + case RL_TEXTURE_MIN_FILTER: glTexParameteri(GL_TEXTURE_CUBE_MAP, param, value); break; + case RL_TEXTURE_FILTER_ANISOTROPIC: + { + if (value <= RLGL.ExtSupported.maxAnisotropyLevel) glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); + else if (RLGL.ExtSupported.maxAnisotropyLevel > 0.0f) + { + TRACELOG(RL_LOG_WARNING, "GL: Maximum anisotropic filter level supported is %iX", id, (int)RLGL.ExtSupported.maxAnisotropyLevel); + glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_ANISOTROPY_EXT, (float)value); + } + else TRACELOG(RL_LOG_WARNING, "GL: Anisotropic filtering not supported"); + } break; +#if defined(GRAPHICS_API_OPENGL_33) + case RL_TEXTURE_MIPMAP_BIAS_RATIO: glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_LOD_BIAS, value/100.0f); +#endif + default: break; + } + + glBindTexture(GL_TEXTURE_CUBE_MAP, 0); +#endif +} + +// Enable shader program +void rlEnableShader(unsigned int id) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) + glUseProgram(id); +#endif +} + +// Disable shader program +void rlDisableShader(void) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) + glUseProgram(0); +#endif +} + +// Enable rendering to texture (fbo) +void rlEnableFramebuffer(unsigned int id) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) + glBindFramebuffer(GL_FRAMEBUFFER, id); +#endif +} + +// return the active render texture (fbo) +unsigned int rlGetActiveFramebuffer(void) +{ + GLint fboId = 0; +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT) + glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &fboId); +#endif + return fboId; +} + +// Disable rendering to texture +void rlDisableFramebuffer(void) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) + glBindFramebuffer(GL_FRAMEBUFFER, 0); +#endif +} + +// Blit active framebuffer to main framebuffer +void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT) + glBlitFramebuffer(srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, bufferMask, GL_NEAREST); +#endif +} + +// Bind framebuffer object (fbo) +void rlBindFramebuffer(unsigned int target, unsigned int framebuffer) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) + glBindFramebuffer(target, framebuffer); +#endif +} + +// Activate multiple draw color buffers +// NOTE: One color buffer is always active by default +void rlActiveDrawBuffers(int count) +{ +#if ((defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT)) + // NOTE: Maximum number of draw buffers supported is implementation dependant, + // it can be queried with glGet*() but it must be at least 8 + //GLint maxDrawBuffers = 0; + //glGetIntegerv(GL_MAX_DRAW_BUFFERS, &maxDrawBuffers); + + if (count > 0) + { + if (count > 8) TRACELOG(LOG_WARNING, "GL: Max color buffers limited to 8"); + else + { + unsigned int buffers[8] = { +#if defined(GRAPHICS_API_OPENGL_ES3) + GL_COLOR_ATTACHMENT0_EXT, + GL_COLOR_ATTACHMENT1_EXT, + GL_COLOR_ATTACHMENT2_EXT, + GL_COLOR_ATTACHMENT3_EXT, + GL_COLOR_ATTACHMENT4_EXT, + GL_COLOR_ATTACHMENT5_EXT, + GL_COLOR_ATTACHMENT6_EXT, + GL_COLOR_ATTACHMENT7_EXT, +#else + GL_COLOR_ATTACHMENT0, + GL_COLOR_ATTACHMENT1, + GL_COLOR_ATTACHMENT2, + GL_COLOR_ATTACHMENT3, + GL_COLOR_ATTACHMENT4, + GL_COLOR_ATTACHMENT5, + GL_COLOR_ATTACHMENT6, + GL_COLOR_ATTACHMENT7, +#endif + }; + +#if defined(GRAPHICS_API_OPENGL_ES3) + glDrawBuffersEXT(count, buffers); +#else + glDrawBuffers(count, buffers); +#endif + } + } + else TRACELOG(LOG_WARNING, "GL: One color buffer active by default"); +#endif +} + +//---------------------------------------------------------------------------------- +// General render state configuration +//---------------------------------------------------------------------------------- + +// Enable color blending +void rlEnableColorBlend(void) { glEnable(GL_BLEND); } + +// Disable color blending +void rlDisableColorBlend(void) { glDisable(GL_BLEND); } + +// Enable depth test +void rlEnableDepthTest(void) { glEnable(GL_DEPTH_TEST); } + +// Disable depth test +void rlDisableDepthTest(void) { glDisable(GL_DEPTH_TEST); } + +// Enable depth write +void rlEnableDepthMask(void) { glDepthMask(GL_TRUE); } + +// Disable depth write +void rlDisableDepthMask(void) { glDepthMask(GL_FALSE); } + +// Enable backface culling +void rlEnableBackfaceCulling(void) { glEnable(GL_CULL_FACE); } + +// Disable backface culling +void rlDisableBackfaceCulling(void) { glDisable(GL_CULL_FACE); } + +// Set color mask active for screen read/draw +void rlColorMask(bool r, bool g, bool b, bool a) { glColorMask(r, g, b, a); } + +// Set face culling mode +void rlSetCullFace(int mode) +{ + switch (mode) + { + case RL_CULL_FACE_BACK: glCullFace(GL_BACK); break; + case RL_CULL_FACE_FRONT: glCullFace(GL_FRONT); break; + default: break; + } +} + +// Enable scissor test +void rlEnableScissorTest(void) { glEnable(GL_SCISSOR_TEST); } + +// Disable scissor test +void rlDisableScissorTest(void) { glDisable(GL_SCISSOR_TEST); } + +// Scissor test +void rlScissor(int x, int y, int width, int height) { glScissor(x, y, width, height); } + +// Enable wire mode +void rlEnableWireMode(void) +{ +#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + // NOTE: glPolygonMode() not available on OpenGL ES + glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); +#endif +} + +// Enable point mode +void rlEnablePointMode(void) +{ +#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + // NOTE: glPolygonMode() not available on OpenGL ES + glPolygonMode(GL_FRONT_AND_BACK, GL_POINT); + glEnable(GL_PROGRAM_POINT_SIZE); +#endif +} + +// Disable wire mode +void rlDisableWireMode(void) +{ +#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + // NOTE: glPolygonMode() not available on OpenGL ES + glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); +#endif +} + +// Set the line drawing width +void rlSetLineWidth(float width) { glLineWidth(width); } + +// Get the line drawing width +float rlGetLineWidth(void) +{ + float width = 0; + glGetFloatv(GL_LINE_WIDTH, &width); + return width; +} + +// Enable line aliasing +void rlEnableSmoothLines(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_11) + glEnable(GL_LINE_SMOOTH); +#endif +} + +// Disable line aliasing +void rlDisableSmoothLines(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_11) + glDisable(GL_LINE_SMOOTH); +#endif +} + +// Enable stereo rendering +void rlEnableStereoRender(void) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) + RLGL.State.stereoRender = true; +#endif +} + +// Disable stereo rendering +void rlDisableStereoRender(void) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) + RLGL.State.stereoRender = false; +#endif +} + +// Check if stereo render is enabled +bool rlIsStereoRenderEnabled(void) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) + return RLGL.State.stereoRender; +#else + return false; +#endif +} + +// Clear color buffer with color +void rlClearColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a) +{ + // Color values clamp to 0.0f(0) and 1.0f(255) + float cr = (float)r/255; + float cg = (float)g/255; + float cb = (float)b/255; + float ca = (float)a/255; + + glClearColor(cr, cg, cb, ca); +} + +// Clear used screen buffers (color and depth) +void rlClearScreenBuffers(void) +{ + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear used buffers: Color and Depth (Depth is used for 3D) + //glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); // Stencil buffer not used... +} + +// Check and log OpenGL error codes +void rlCheckErrors(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + int check = 1; + while (check) + { + const GLenum err = glGetError(); + switch (err) + { + case GL_NO_ERROR: check = 0; break; + case 0x0500: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_ENUM"); break; + case 0x0501: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_VALUE"); break; + case 0x0502: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_OPERATION"); break; + case 0x0503: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_STACK_OVERFLOW"); break; + case 0x0504: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_STACK_UNDERFLOW"); break; + case 0x0505: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_OUT_OF_MEMORY"); break; + case 0x0506: TRACELOG(RL_LOG_WARNING, "GL: Error detected: GL_INVALID_FRAMEBUFFER_OPERATION"); break; + default: TRACELOG(RL_LOG_WARNING, "GL: Error detected: Unknown error code: %x", err); break; + } + } +#endif +} + +// Set blend mode +void rlSetBlendMode(int mode) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if ((RLGL.State.currentBlendMode != mode) || ((mode == RL_BLEND_CUSTOM || mode == RL_BLEND_CUSTOM_SEPARATE) && RLGL.State.glCustomBlendModeModified)) + { + rlDrawRenderBatch(RLGL.currentBatch); + + switch (mode) + { + case RL_BLEND_ALPHA: glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; + case RL_BLEND_ADDITIVE: glBlendFunc(GL_SRC_ALPHA, GL_ONE); glBlendEquation(GL_FUNC_ADD); break; + case RL_BLEND_MULTIPLIED: glBlendFunc(GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; + case RL_BLEND_ADD_COLORS: glBlendFunc(GL_ONE, GL_ONE); glBlendEquation(GL_FUNC_ADD); break; + case RL_BLEND_SUBTRACT_COLORS: glBlendFunc(GL_ONE, GL_ONE); glBlendEquation(GL_FUNC_SUBTRACT); break; + case RL_BLEND_ALPHA_PREMULTIPLY: glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); glBlendEquation(GL_FUNC_ADD); break; + case RL_BLEND_CUSTOM: + { + // NOTE: Using GL blend src/dst factors and GL equation configured with rlSetBlendFactors() + glBlendFunc(RLGL.State.glBlendSrcFactor, RLGL.State.glBlendDstFactor); glBlendEquation(RLGL.State.glBlendEquation); + + } break; + case RL_BLEND_CUSTOM_SEPARATE: + { + // NOTE: Using GL blend src/dst factors and GL equation configured with rlSetBlendFactorsSeparate() + glBlendFuncSeparate(RLGL.State.glBlendSrcFactorRGB, RLGL.State.glBlendDestFactorRGB, RLGL.State.glBlendSrcFactorAlpha, RLGL.State.glBlendDestFactorAlpha); + glBlendEquationSeparate(RLGL.State.glBlendEquationRGB, RLGL.State.glBlendEquationAlpha); + + } break; + default: break; + } + + RLGL.State.currentBlendMode = mode; + RLGL.State.glCustomBlendModeModified = false; + } +#endif +} + +// Set blending mode factor and equation +void rlSetBlendFactors(int glSrcFactor, int glDstFactor, int glEquation) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if ((RLGL.State.glBlendSrcFactor != glSrcFactor) || + (RLGL.State.glBlendDstFactor != glDstFactor) || + (RLGL.State.glBlendEquation != glEquation)) + { + RLGL.State.glBlendSrcFactor = glSrcFactor; + RLGL.State.glBlendDstFactor = glDstFactor; + RLGL.State.glBlendEquation = glEquation; + + RLGL.State.glCustomBlendModeModified = true; + } +#endif +} + +// Set blending mode factor and equation separately for RGB and alpha +void rlSetBlendFactorsSeparate(int glSrcRGB, int glDstRGB, int glSrcAlpha, int glDstAlpha, int glEqRGB, int glEqAlpha) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if ((RLGL.State.glBlendSrcFactorRGB != glSrcRGB) || + (RLGL.State.glBlendDestFactorRGB != glDstRGB) || + (RLGL.State.glBlendSrcFactorAlpha != glSrcAlpha) || + (RLGL.State.glBlendDestFactorAlpha != glDstAlpha) || + (RLGL.State.glBlendEquationRGB != glEqRGB) || + (RLGL.State.glBlendEquationAlpha != glEqAlpha)) + { + RLGL.State.glBlendSrcFactorRGB = glSrcRGB; + RLGL.State.glBlendDestFactorRGB = glDstRGB; + RLGL.State.glBlendSrcFactorAlpha = glSrcAlpha; + RLGL.State.glBlendDestFactorAlpha = glDstAlpha; + RLGL.State.glBlendEquationRGB = glEqRGB; + RLGL.State.glBlendEquationAlpha = glEqAlpha; + + RLGL.State.glCustomBlendModeModified = true; + } +#endif +} + +//---------------------------------------------------------------------------------- +// Module Functions Definition - OpenGL Debug +//---------------------------------------------------------------------------------- +#if defined(RLGL_ENABLE_OPENGL_DEBUG_CONTEXT) && defined(GRAPHICS_API_OPENGL_43) +static void GLAPIENTRY rlDebugMessageCallback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam) +{ + // Ignore non-significant error/warning codes (NVidia drivers) + // NOTE: Here there are the details with a sample output: + // - #131169 - Framebuffer detailed info: The driver allocated storage for renderbuffer 2. (severity: low) + // - #131185 - Buffer detailed info: Buffer object 1 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_ENUM_88e4) + // will use VIDEO memory as the source for buffer object operations. (severity: low) + // - #131218 - Program/shader state performance warning: Vertex shader in program 7 is being recompiled based on GL state. (severity: medium) + // - #131204 - Texture state usage warning: The texture object (0) bound to texture image unit 0 does not have + // a defined base level and cannot be used for texture mapping. (severity: low) + if ((id == 131169) || (id == 131185) || (id == 131218) || (id == 131204)) return; + + const char *msgSource = NULL; + switch (source) + { + case GL_DEBUG_SOURCE_API: msgSource = "API"; break; + case GL_DEBUG_SOURCE_WINDOW_SYSTEM: msgSource = "WINDOW_SYSTEM"; break; + case GL_DEBUG_SOURCE_SHADER_COMPILER: msgSource = "SHADER_COMPILER"; break; + case GL_DEBUG_SOURCE_THIRD_PARTY: msgSource = "THIRD_PARTY"; break; + case GL_DEBUG_SOURCE_APPLICATION: msgSource = "APPLICATION"; break; + case GL_DEBUG_SOURCE_OTHER: msgSource = "OTHER"; break; + default: break; + } + + const char *msgType = NULL; + switch (type) + { + case GL_DEBUG_TYPE_ERROR: msgType = "ERROR"; break; + case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: msgType = "DEPRECATED_BEHAVIOR"; break; + case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: msgType = "UNDEFINED_BEHAVIOR"; break; + case GL_DEBUG_TYPE_PORTABILITY: msgType = "PORTABILITY"; break; + case GL_DEBUG_TYPE_PERFORMANCE: msgType = "PERFORMANCE"; break; + case GL_DEBUG_TYPE_MARKER: msgType = "MARKER"; break; + case GL_DEBUG_TYPE_PUSH_GROUP: msgType = "PUSH_GROUP"; break; + case GL_DEBUG_TYPE_POP_GROUP: msgType = "POP_GROUP"; break; + case GL_DEBUG_TYPE_OTHER: msgType = "OTHER"; break; + default: break; + } + + const char *msgSeverity = "DEFAULT"; + switch (severity) + { + case GL_DEBUG_SEVERITY_LOW: msgSeverity = "LOW"; break; + case GL_DEBUG_SEVERITY_MEDIUM: msgSeverity = "MEDIUM"; break; + case GL_DEBUG_SEVERITY_HIGH: msgSeverity = "HIGH"; break; + case GL_DEBUG_SEVERITY_NOTIFICATION: msgSeverity = "NOTIFICATION"; break; + default: break; + } + + TRACELOG(LOG_WARNING, "GL: OpenGL debug message: %s", message); + TRACELOG(LOG_WARNING, " > Type: %s", msgType); + TRACELOG(LOG_WARNING, " > Source = %s", msgSource); + TRACELOG(LOG_WARNING, " > Severity = %s", msgSeverity); +} +#endif + +//---------------------------------------------------------------------------------- +// Module Functions Definition - rlgl functionality +//---------------------------------------------------------------------------------- + +// Initialize rlgl: OpenGL extensions, default buffers/shaders/textures, OpenGL states +void rlglInit(int width, int height) +{ + // Enable OpenGL debug context if required +#if defined(RLGL_ENABLE_OPENGL_DEBUG_CONTEXT) && defined(GRAPHICS_API_OPENGL_43) + if ((glDebugMessageCallback != NULL) && (glDebugMessageControl != NULL)) + { + glDebugMessageCallback(rlDebugMessageCallback, 0); + // glDebugMessageControl(GL_DEBUG_SOURCE_API, GL_DEBUG_TYPE_ERROR, GL_DEBUG_SEVERITY_HIGH, 0, 0, GL_TRUE); + + // Debug context options: + // - GL_DEBUG_OUTPUT - Faster version but not useful for breakpoints + // - GL_DEBUG_OUTPUT_SYNCHRONUS - Callback is in sync with errors, so a breakpoint can be placed on the callback in order to get a stacktrace for the GL error + glEnable(GL_DEBUG_OUTPUT); + glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS); + } +#endif + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Init default white texture + unsigned char pixels[4] = { 255, 255, 255, 255 }; // 1 pixel RGBA (4 bytes) + RLGL.State.defaultTextureId = rlLoadTexture(pixels, 1, 1, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, 1); + + if (RLGL.State.defaultTextureId != 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Default texture loaded successfully", RLGL.State.defaultTextureId); + else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load default texture"); + + // Init default Shader (customized for GL 3.3 and ES2) + // Loaded: RLGL.State.defaultShaderId + RLGL.State.defaultShaderLocs + rlLoadShaderDefault(); + RLGL.State.currentShaderId = RLGL.State.defaultShaderId; + RLGL.State.currentShaderLocs = RLGL.State.defaultShaderLocs; + + // Init default vertex arrays buffers + // Simulate that the default shader has the location RL_SHADER_LOC_VERTEX_NORMAL to bind the normal buffer for the default render batch + RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL] = RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL; + RLGL.defaultBatch = rlLoadRenderBatch(RL_DEFAULT_BATCH_BUFFERS, RL_DEFAULT_BATCH_BUFFER_ELEMENTS); + RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL] = -1; + RLGL.currentBatch = &RLGL.defaultBatch; + + // Init stack matrices (emulating OpenGL 1.1) + for (int i = 0; i < RL_MAX_MATRIX_STACK_SIZE; i++) RLGL.State.stack[i] = rlMatrixIdentity(); + + // Init internal matrices + RLGL.State.transform = rlMatrixIdentity(); + RLGL.State.projection = rlMatrixIdentity(); + RLGL.State.modelview = rlMatrixIdentity(); + RLGL.State.currentMatrix = &RLGL.State.modelview; +#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 + + // Initialize OpenGL default states + //---------------------------------------------------------- + // Init state: Depth test + glDepthFunc(GL_LEQUAL); // Type of depth testing to apply + glDisable(GL_DEPTH_TEST); // Disable depth testing for 2D (only used for 3D) + + // Init state: Blending mode + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // Color blending function (how colors are mixed) + glEnable(GL_BLEND); // Enable color blending (required to work with transparencies) + + // Init state: Culling + // NOTE: All shapes/models triangles are drawn CCW + glCullFace(GL_BACK); // Cull the back face (default) + glFrontFace(GL_CCW); // Front face are defined counter clockwise (default) + glEnable(GL_CULL_FACE); // Enable backface culling + + // Init state: Cubemap seamless +#if defined(GRAPHICS_API_OPENGL_33) + glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS); // Seamless cubemaps (not supported on OpenGL ES 2.0) +#endif + +#if defined(GRAPHICS_API_OPENGL_11) + // Init state: Color hints (deprecated in OpenGL 3.0+) + glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Improve quality of color and texture coordinate interpolation + glShadeModel(GL_SMOOTH); // Smooth shading between vertex (vertex colors interpolation) +#endif + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Store screen size into global variables + RLGL.State.framebufferWidth = width; + RLGL.State.framebufferHeight = height; + + TRACELOG(RL_LOG_INFO, "RLGL: Default OpenGL state initialized successfully"); + //---------------------------------------------------------- +#endif + + // Init state: Color/Depth buffers clear + glClearColor(0.0f, 0.0f, 0.0f, 1.0f); // Set clear color (black) + glClearDepth(1.0f); // Set clear depth value (default) + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear color and depth buffers (depth buffer required for 3D) +} + +// Vertex Buffer Object deinitialization (memory free) +void rlglClose(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + rlUnloadRenderBatch(RLGL.defaultBatch); + + rlUnloadShaderDefault(); // Unload default shader + + glDeleteTextures(1, &RLGL.State.defaultTextureId); // Unload default texture + TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Default texture unloaded successfully", RLGL.State.defaultTextureId); +#endif +} + +// Load OpenGL extensions +// NOTE: External loader function must be provided +void rlLoadExtensions(void *loader) +{ +#if defined(GRAPHICS_API_OPENGL_33) // Also defined for GRAPHICS_API_OPENGL_21 + // NOTE: glad is generated and contains only required OpenGL 3.3 Core extensions (and lower versions) + if (gladLoadGL((GLADloadfunc)loader) == 0) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL extensions"); + else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL extensions loaded successfully"); + + // Get number of supported extensions + GLint numExt = 0; + glGetIntegerv(GL_NUM_EXTENSIONS, &numExt); + TRACELOG(RL_LOG_INFO, "GL: Supported extensions count: %i", numExt); + +#if defined(RLGL_SHOW_GL_DETAILS_INFO) + // Get supported extensions list + // WARNING: glGetStringi() not available on OpenGL 2.1 + TRACELOG(RL_LOG_INFO, "GL: OpenGL extensions:"); + for (int i = 0; i < numExt; i++) TRACELOG(RL_LOG_INFO, " %s", glGetStringi(GL_EXTENSIONS, i)); +#endif + +#if defined(GRAPHICS_API_OPENGL_21) + // Register supported extensions flags + // Optional OpenGL 2.1 extensions + RLGL.ExtSupported.vao = GLAD_GL_ARB_vertex_array_object; + RLGL.ExtSupported.instancing = (GLAD_GL_EXT_draw_instanced && GLAD_GL_ARB_instanced_arrays); + RLGL.ExtSupported.texNPOT = GLAD_GL_ARB_texture_non_power_of_two; + RLGL.ExtSupported.texFloat32 = GLAD_GL_ARB_texture_float; + RLGL.ExtSupported.texFloat16 = GLAD_GL_ARB_texture_float; + RLGL.ExtSupported.texDepth = GLAD_GL_ARB_depth_texture; + RLGL.ExtSupported.maxDepthBits = 32; + RLGL.ExtSupported.texAnisoFilter = GLAD_GL_EXT_texture_filter_anisotropic; + RLGL.ExtSupported.texMirrorClamp = GLAD_GL_EXT_texture_mirror_clamp; +#else + // Register supported extensions flags + // OpenGL 3.3 extensions supported by default (core) + RLGL.ExtSupported.vao = true; + RLGL.ExtSupported.instancing = true; + RLGL.ExtSupported.texNPOT = true; + RLGL.ExtSupported.texFloat32 = true; + RLGL.ExtSupported.texFloat16 = true; + RLGL.ExtSupported.texDepth = true; + RLGL.ExtSupported.maxDepthBits = 32; + RLGL.ExtSupported.texAnisoFilter = true; + RLGL.ExtSupported.texMirrorClamp = true; +#endif + + // Optional OpenGL 3.3 extensions + RLGL.ExtSupported.texCompASTC = GLAD_GL_KHR_texture_compression_astc_hdr && GLAD_GL_KHR_texture_compression_astc_ldr; + RLGL.ExtSupported.texCompDXT = GLAD_GL_EXT_texture_compression_s3tc; // Texture compression: DXT + RLGL.ExtSupported.texCompETC2 = GLAD_GL_ARB_ES3_compatibility; // Texture compression: ETC2/EAC + #if defined(GRAPHICS_API_OPENGL_43) + RLGL.ExtSupported.computeShader = GLAD_GL_ARB_compute_shader; + RLGL.ExtSupported.ssbo = GLAD_GL_ARB_shader_storage_buffer_object; + #endif + +#endif // GRAPHICS_API_OPENGL_33 + +#if defined(GRAPHICS_API_OPENGL_ES3) + // Register supported extensions flags + // OpenGL ES 3.0 extensions supported by default (or it should be) + RLGL.ExtSupported.vao = true; + RLGL.ExtSupported.instancing = true; + RLGL.ExtSupported.texNPOT = true; + RLGL.ExtSupported.texFloat32 = true; + RLGL.ExtSupported.texFloat16 = true; + RLGL.ExtSupported.texDepth = true; + RLGL.ExtSupported.texDepthWebGL = true; + RLGL.ExtSupported.maxDepthBits = 24; + RLGL.ExtSupported.texAnisoFilter = true; + RLGL.ExtSupported.texMirrorClamp = true; + // TODO: Check for additional OpenGL ES 3.0 supported extensions: + //RLGL.ExtSupported.texCompDXT = true; + //RLGL.ExtSupported.texCompETC1 = true; + //RLGL.ExtSupported.texCompETC2 = true; + //RLGL.ExtSupported.texCompPVRT = true; + //RLGL.ExtSupported.texCompASTC = true; + //RLGL.ExtSupported.maxAnisotropyLevel = true; + //RLGL.ExtSupported.computeShader = true; + //RLGL.ExtSupported.ssbo = true; + +#elif defined(GRAPHICS_API_OPENGL_ES2) + + #if defined(PLATFORM_DESKTOP_GLFW) || defined(PLATFORM_DESKTOP_SDL) + // TODO: Support GLAD loader for OpenGL ES 3.0 + if (gladLoadGLES2((GLADloadfunc)loader) == 0) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL ES2.0 functions"); + else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL ES 2.0 loaded successfully"); + #endif + + // Get supported extensions list + GLint numExt = 0; + const char **extList = RL_MALLOC(512*sizeof(const char *)); // Allocate 512 strings pointers (2 KB) + const char *extensions = (const char *)glGetString(GL_EXTENSIONS); // One big const string + + // NOTE: We have to duplicate string because glGetString() returns a const string + int size = strlen(extensions) + 1; // Get extensions string size in bytes + char *extensionsDup = (char *)RL_CALLOC(size, sizeof(char)); + strcpy(extensionsDup, extensions); + extList[numExt] = extensionsDup; + + for (int i = 0; i < size; i++) + { + if (extensionsDup[i] == ' ') + { + extensionsDup[i] = '\0'; + numExt++; + extList[numExt] = &extensionsDup[i + 1]; + } + } + + TRACELOG(RL_LOG_INFO, "GL: Supported extensions count: %i", numExt); + +#if defined(RLGL_SHOW_GL_DETAILS_INFO) + TRACELOG(RL_LOG_INFO, "GL: OpenGL extensions:"); + for (int i = 0; i < numExt; i++) TRACELOG(RL_LOG_INFO, " %s", extList[i]); +#endif + + // Check required extensions + for (int i = 0; i < numExt; i++) + { + // Check VAO support + // NOTE: Only check on OpenGL ES, OpenGL 3.3 has VAO support as core feature + if (strcmp(extList[i], (const char *)"GL_OES_vertex_array_object") == 0) + { + // The extension is supported by our hardware and driver, try to get related functions pointers + // NOTE: emscripten does not support VAOs natively, it uses emulation and it reduces overall performance... + glGenVertexArrays = (PFNGLGENVERTEXARRAYSOESPROC)((rlglLoadProc)loader)("glGenVertexArraysOES"); + glBindVertexArray = (PFNGLBINDVERTEXARRAYOESPROC)((rlglLoadProc)loader)("glBindVertexArrayOES"); + glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSOESPROC)((rlglLoadProc)loader)("glDeleteVertexArraysOES"); + //glIsVertexArray = (PFNGLISVERTEXARRAYOESPROC)loader("glIsVertexArrayOES"); // NOTE: Fails in WebGL, omitted + + if ((glGenVertexArrays != NULL) && (glBindVertexArray != NULL) && (glDeleteVertexArrays != NULL)) RLGL.ExtSupported.vao = true; + } + + // Check instanced rendering support + if (strstr(extList[i], (const char*)"instanced_arrays") != NULL) // Broad check for instanced_arrays + { + // Specific check + if (strcmp(extList[i], (const char *)"GL_ANGLE_instanced_arrays") == 0) // ANGLE + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedANGLE"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedANGLE"); + glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorANGLE"); + } + else if (strcmp(extList[i], (const char *)"GL_EXT_instanced_arrays") == 0) // EXT + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedEXT"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedEXT"); + glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorEXT"); + } + else if (strcmp(extList[i], (const char *)"GL_NV_instanced_arrays") == 0) // NVIDIA GLES + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedNV"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedNV"); + glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOREXTPROC)((rlglLoadProc)loader)("glVertexAttribDivisorNV"); + } + + // The feature will only be marked as supported if the elements from GL_XXX_instanced_arrays are present + if ((glDrawArraysInstanced != NULL) && (glDrawElementsInstanced != NULL) && (glVertexAttribDivisor != NULL)) RLGL.ExtSupported.instancing = true; + } + else if (strstr(extList[i], (const char *)"draw_instanced") != NULL) + { + // GL_ANGLE_draw_instanced doesn't exist + if (strcmp(extList[i], (const char *)"GL_EXT_draw_instanced") == 0) + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedEXT"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedEXT"); + } + else if (strcmp(extList[i], (const char*)"GL_NV_draw_instanced") == 0) + { + glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawArraysInstancedNV"); + glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)((rlglLoadProc)loader)("glDrawElementsInstancedNV"); + } + + // But the functions will at least be loaded if only GL_XX_EXT_draw_instanced exist + if ((glDrawArraysInstanced != NULL) && (glDrawElementsInstanced != NULL) && (glVertexAttribDivisor != NULL)) RLGL.ExtSupported.instancing = true; + } + + // Check NPOT textures support + // NOTE: Only check on OpenGL ES, OpenGL 3.3 has NPOT textures full support as core feature + if (strcmp(extList[i], (const char *)"GL_OES_texture_npot") == 0) RLGL.ExtSupported.texNPOT = true; + + // Check texture float support + if (strcmp(extList[i], (const char *)"GL_OES_texture_float") == 0) RLGL.ExtSupported.texFloat32 = true; + if (strcmp(extList[i], (const char *)"GL_OES_texture_half_float") == 0) RLGL.ExtSupported.texFloat16 = true; + + // Check depth texture support + if (strcmp(extList[i], (const char *)"GL_OES_depth_texture") == 0) RLGL.ExtSupported.texDepth = true; + if (strcmp(extList[i], (const char *)"GL_WEBGL_depth_texture") == 0) RLGL.ExtSupported.texDepthWebGL = true; // WebGL requires unsized internal format + if (RLGL.ExtSupported.texDepthWebGL) RLGL.ExtSupported.texDepth = true; + + if (strcmp(extList[i], (const char *)"GL_OES_depth24") == 0) RLGL.ExtSupported.maxDepthBits = 24; // Not available on WebGL + if (strcmp(extList[i], (const char *)"GL_OES_depth32") == 0) RLGL.ExtSupported.maxDepthBits = 32; // Not available on WebGL + + // Check texture compression support: DXT + if ((strcmp(extList[i], (const char *)"GL_EXT_texture_compression_s3tc") == 0) || + (strcmp(extList[i], (const char *)"GL_WEBGL_compressed_texture_s3tc") == 0) || + (strcmp(extList[i], (const char *)"GL_WEBKIT_WEBGL_compressed_texture_s3tc") == 0)) RLGL.ExtSupported.texCompDXT = true; + + // Check texture compression support: ETC1 + if ((strcmp(extList[i], (const char *)"GL_OES_compressed_ETC1_RGB8_texture") == 0) || + (strcmp(extList[i], (const char *)"GL_WEBGL_compressed_texture_etc1") == 0)) RLGL.ExtSupported.texCompETC1 = true; + + // Check texture compression support: ETC2/EAC + if (strcmp(extList[i], (const char *)"GL_ARB_ES3_compatibility") == 0) RLGL.ExtSupported.texCompETC2 = true; + + // Check texture compression support: PVR + if (strcmp(extList[i], (const char *)"GL_IMG_texture_compression_pvrtc") == 0) RLGL.ExtSupported.texCompPVRT = true; + + // Check texture compression support: ASTC + if (strcmp(extList[i], (const char *)"GL_KHR_texture_compression_astc_hdr") == 0) RLGL.ExtSupported.texCompASTC = true; + + // Check anisotropic texture filter support + if (strcmp(extList[i], (const char *)"GL_EXT_texture_filter_anisotropic") == 0) RLGL.ExtSupported.texAnisoFilter = true; + + // Check clamp mirror wrap mode support + if (strcmp(extList[i], (const char *)"GL_EXT_texture_mirror_clamp") == 0) RLGL.ExtSupported.texMirrorClamp = true; + } + + // Free extensions pointers + RL_FREE(extList); + RL_FREE(extensionsDup); // Duplicated string must be deallocated +#endif // GRAPHICS_API_OPENGL_ES2 + + // Check OpenGL information and capabilities + //------------------------------------------------------------------------------ + // Show current OpenGL and GLSL version + TRACELOG(RL_LOG_INFO, "GL: OpenGL device information:"); + TRACELOG(RL_LOG_INFO, " > Vendor: %s", glGetString(GL_VENDOR)); + TRACELOG(RL_LOG_INFO, " > Renderer: %s", glGetString(GL_RENDERER)); + TRACELOG(RL_LOG_INFO, " > Version: %s", glGetString(GL_VERSION)); + TRACELOG(RL_LOG_INFO, " > GLSL: %s", glGetString(GL_SHADING_LANGUAGE_VERSION)); + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: Anisotropy levels capability is an extension + #ifndef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT + #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF + #endif + glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &RLGL.ExtSupported.maxAnisotropyLevel); + +#if defined(RLGL_SHOW_GL_DETAILS_INFO) + // Show some OpenGL GPU capabilities + TRACELOG(RL_LOG_INFO, "GL: OpenGL capabilities:"); + GLint capability = 0; + glGetIntegerv(GL_MAX_TEXTURE_SIZE, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_SIZE: %i", capability); + glGetIntegerv(GL_MAX_CUBE_MAP_TEXTURE_SIZE, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_CUBE_MAP_TEXTURE_SIZE: %i", capability); + glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_IMAGE_UNITS: %i", capability); + glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_VERTEX_ATTRIBS: %i", capability); + #if !defined(GRAPHICS_API_OPENGL_ES2) + glGetIntegerv(GL_MAX_UNIFORM_BLOCK_SIZE, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_UNIFORM_BLOCK_SIZE: %i", capability); + glGetIntegerv(GL_MAX_DRAW_BUFFERS, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_DRAW_BUFFERS: %i", capability); + if (RLGL.ExtSupported.texAnisoFilter) TRACELOG(RL_LOG_INFO, " GL_MAX_TEXTURE_MAX_ANISOTROPY: %.0f", RLGL.ExtSupported.maxAnisotropyLevel); + #endif + glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &capability); + TRACELOG(RL_LOG_INFO, " GL_NUM_COMPRESSED_TEXTURE_FORMATS: %i", capability); + GLint *compFormats = (GLint *)RL_CALLOC(capability, sizeof(GLint)); + glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS, compFormats); + for (int i = 0; i < capability; i++) TRACELOG(RL_LOG_INFO, " %s", rlGetCompressedFormatName(compFormats[i])); + RL_FREE(compFormats); + +#if defined(GRAPHICS_API_OPENGL_43) + glGetIntegerv(GL_MAX_VERTEX_ATTRIB_BINDINGS, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_VERTEX_ATTRIB_BINDINGS: %i", capability); + glGetIntegerv(GL_MAX_UNIFORM_LOCATIONS, &capability); + TRACELOG(RL_LOG_INFO, " GL_MAX_UNIFORM_LOCATIONS: %i", capability); +#endif // GRAPHICS_API_OPENGL_43 +#else // RLGL_SHOW_GL_DETAILS_INFO + + // Show some basic info about GL supported features + if (RLGL.ExtSupported.vao) TRACELOG(RL_LOG_INFO, "GL: VAO extension detected, VAO functions loaded successfully"); + else TRACELOG(RL_LOG_WARNING, "GL: VAO extension not found, VAO not supported"); + if (RLGL.ExtSupported.texNPOT) TRACELOG(RL_LOG_INFO, "GL: NPOT textures extension detected, full NPOT textures supported"); + else TRACELOG(RL_LOG_WARNING, "GL: NPOT textures extension not found, limited NPOT support (no-mipmaps, no-repeat)"); + if (RLGL.ExtSupported.texCompDXT) TRACELOG(RL_LOG_INFO, "GL: DXT compressed textures supported"); + if (RLGL.ExtSupported.texCompETC1) TRACELOG(RL_LOG_INFO, "GL: ETC1 compressed textures supported"); + if (RLGL.ExtSupported.texCompETC2) TRACELOG(RL_LOG_INFO, "GL: ETC2/EAC compressed textures supported"); + if (RLGL.ExtSupported.texCompPVRT) TRACELOG(RL_LOG_INFO, "GL: PVRT compressed textures supported"); + if (RLGL.ExtSupported.texCompASTC) TRACELOG(RL_LOG_INFO, "GL: ASTC compressed textures supported"); + if (RLGL.ExtSupported.computeShader) TRACELOG(RL_LOG_INFO, "GL: Compute shaders supported"); + if (RLGL.ExtSupported.ssbo) TRACELOG(RL_LOG_INFO, "GL: Shader storage buffer objects supported"); +#endif // RLGL_SHOW_GL_DETAILS_INFO + +#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 +} + +// Get current OpenGL version +int rlGetVersion(void) +{ + int glVersion = 0; +#if defined(GRAPHICS_API_OPENGL_11) + glVersion = RL_OPENGL_11; +#endif +#if defined(GRAPHICS_API_OPENGL_21) + glVersion = RL_OPENGL_21; +#elif defined(GRAPHICS_API_OPENGL_43) + glVersion = RL_OPENGL_43; +#elif defined(GRAPHICS_API_OPENGL_33) + glVersion = RL_OPENGL_33; +#endif +#if defined(GRAPHICS_API_OPENGL_ES3) + glVersion = RL_OPENGL_ES_30; +#elif defined(GRAPHICS_API_OPENGL_ES2) + glVersion = RL_OPENGL_ES_20; +#endif + + return glVersion; +} + +// Set current framebuffer width +void rlSetFramebufferWidth(int width) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.framebufferWidth = width; +#endif +} + +// Set current framebuffer height +void rlSetFramebufferHeight(int height) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.framebufferHeight = height; +#endif +} + +// Get default framebuffer width +int rlGetFramebufferWidth(void) +{ + int width = 0; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + width = RLGL.State.framebufferWidth; +#endif + return width; +} + +// Get default framebuffer height +int rlGetFramebufferHeight(void) +{ + int height = 0; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + height = RLGL.State.framebufferHeight; +#endif + return height; +} + +// Get default internal texture (white texture) +// NOTE: Default texture is a 1x1 pixel UNCOMPRESSED_R8G8B8A8 +unsigned int rlGetTextureIdDefault(void) +{ + unsigned int id = 0; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + id = RLGL.State.defaultTextureId; +#endif + return id; +} + +// Get default shader id +unsigned int rlGetShaderIdDefault(void) +{ + unsigned int id = 0; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + id = RLGL.State.defaultShaderId; +#endif + return id; +} + +// Get default shader locs +int *rlGetShaderLocsDefault(void) +{ + int *locs = NULL; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + locs = RLGL.State.defaultShaderLocs; +#endif + return locs; +} + +// Render batch management +//------------------------------------------------------------------------------------------------ +// Load render batch +rlRenderBatch rlLoadRenderBatch(int numBuffers, int bufferElements) +{ + rlRenderBatch batch = { 0 }; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Initialize CPU (RAM) vertex buffers (position, texcoord, color data and indexes) + //-------------------------------------------------------------------------------------------- + batch.vertexBuffer = (rlVertexBuffer *)RL_MALLOC(numBuffers*sizeof(rlVertexBuffer)); + + for (int i = 0; i < numBuffers; i++) + { + batch.vertexBuffer[i].elementCount = bufferElements; + + batch.vertexBuffer[i].vertices = (float *)RL_MALLOC(bufferElements*3*4*sizeof(float)); // 3 float by vertex, 4 vertex by quad + batch.vertexBuffer[i].texcoords = (float *)RL_MALLOC(bufferElements*2*4*sizeof(float)); // 2 float by texcoord, 4 texcoord by quad + batch.vertexBuffer[i].normals = (float *)RL_MALLOC(bufferElements*3*4*sizeof(float)); // 3 float by vertex, 4 vertex by quad + batch.vertexBuffer[i].colors = (unsigned char *)RL_MALLOC(bufferElements*4*4*sizeof(unsigned char)); // 4 float by color, 4 colors by quad +#if defined(GRAPHICS_API_OPENGL_33) + batch.vertexBuffer[i].indices = (unsigned int *)RL_MALLOC(bufferElements*6*sizeof(unsigned int)); // 6 int by quad (indices) +#endif +#if defined(GRAPHICS_API_OPENGL_ES2) + batch.vertexBuffer[i].indices = (unsigned short *)RL_MALLOC(bufferElements*6*sizeof(unsigned short)); // 6 int by quad (indices) +#endif + + for (int j = 0; j < (3*4*bufferElements); j++) batch.vertexBuffer[i].vertices[j] = 0.0f; + for (int j = 0; j < (2*4*bufferElements); j++) batch.vertexBuffer[i].texcoords[j] = 0.0f; + for (int j = 0; j < (3*4*bufferElements); j++) batch.vertexBuffer[i].normals[j] = 0.0f; + for (int j = 0; j < (4*4*bufferElements); j++) batch.vertexBuffer[i].colors[j] = 0; + + int k = 0; + + // Indices can be initialized right now + for (int j = 0; j < (6*bufferElements); j += 6) + { + batch.vertexBuffer[i].indices[j] = 4*k; + batch.vertexBuffer[i].indices[j + 1] = 4*k + 1; + batch.vertexBuffer[i].indices[j + 2] = 4*k + 2; + batch.vertexBuffer[i].indices[j + 3] = 4*k; + batch.vertexBuffer[i].indices[j + 4] = 4*k + 2; + batch.vertexBuffer[i].indices[j + 5] = 4*k + 3; + + k++; + } + + RLGL.State.vertexCounter = 0; + } + + TRACELOG(RL_LOG_INFO, "RLGL: Render batch vertex buffers loaded successfully in RAM (CPU)"); + //-------------------------------------------------------------------------------------------- + + // Upload to GPU (VRAM) vertex data and initialize VAOs/VBOs + //-------------------------------------------------------------------------------------------- + for (int i = 0; i < numBuffers; i++) + { + if (RLGL.ExtSupported.vao) + { + // Initialize Quads VAO + glGenVertexArrays(1, &batch.vertexBuffer[i].vaoId); + glBindVertexArray(batch.vertexBuffer[i].vaoId); + } + + // Quads - Vertex buffers binding and attributes enable + // Vertex position buffer (shader-location = 0) + glGenBuffers(1, &batch.vertexBuffer[i].vboId[0]); + glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[0]); + glBufferData(GL_ARRAY_BUFFER, bufferElements*3*4*sizeof(float), batch.vertexBuffer[i].vertices, GL_DYNAMIC_DRAW); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION], 3, GL_FLOAT, 0, 0, 0); + + // Vertex texcoord buffer (shader-location = 1) + glGenBuffers(1, &batch.vertexBuffer[i].vboId[1]); + glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[1]); + glBufferData(GL_ARRAY_BUFFER, bufferElements*2*4*sizeof(float), batch.vertexBuffer[i].texcoords, GL_DYNAMIC_DRAW); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01], 2, GL_FLOAT, 0, 0, 0); + + // Vertex normal buffer (shader-location = 2) + glGenBuffers(1, &batch.vertexBuffer[i].vboId[2]); + glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[2]); + glBufferData(GL_ARRAY_BUFFER, bufferElements*3*4*sizeof(float), batch.vertexBuffer[i].normals, GL_DYNAMIC_DRAW); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL], 3, GL_FLOAT, 0, 0, 0); + + // Vertex color buffer (shader-location = 3) + glGenBuffers(1, &batch.vertexBuffer[i].vboId[3]); + glBindBuffer(GL_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[3]); + glBufferData(GL_ARRAY_BUFFER, bufferElements*4*4*sizeof(unsigned char), batch.vertexBuffer[i].colors, GL_DYNAMIC_DRAW); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR], 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0); + + // Fill index buffer + glGenBuffers(1, &batch.vertexBuffer[i].vboId[4]); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch.vertexBuffer[i].vboId[4]); +#if defined(GRAPHICS_API_OPENGL_33) + glBufferData(GL_ELEMENT_ARRAY_BUFFER, bufferElements*6*sizeof(int), batch.vertexBuffer[i].indices, GL_STATIC_DRAW); +#endif +#if defined(GRAPHICS_API_OPENGL_ES2) + glBufferData(GL_ELEMENT_ARRAY_BUFFER, bufferElements*6*sizeof(short), batch.vertexBuffer[i].indices, GL_STATIC_DRAW); +#endif + } + + TRACELOG(RL_LOG_INFO, "RLGL: Render batch vertex buffers loaded successfully in VRAM (GPU)"); + + // Unbind the current VAO + if (RLGL.ExtSupported.vao) glBindVertexArray(0); + //-------------------------------------------------------------------------------------------- + + // Init draw calls tracking system + //-------------------------------------------------------------------------------------------- + batch.draws = (rlDrawCall *)RL_MALLOC(RL_DEFAULT_BATCH_DRAWCALLS*sizeof(rlDrawCall)); + + for (int i = 0; i < RL_DEFAULT_BATCH_DRAWCALLS; i++) + { + batch.draws[i].mode = RL_QUADS; + batch.draws[i].vertexCount = 0; + batch.draws[i].vertexAlignment = 0; + //batch.draws[i].vaoId = 0; + //batch.draws[i].shaderId = 0; + batch.draws[i].textureId = RLGL.State.defaultTextureId; + //batch.draws[i].RLGL.State.projection = rlMatrixIdentity(); + //batch.draws[i].RLGL.State.modelview = rlMatrixIdentity(); + } + + batch.bufferCount = numBuffers; // Record buffer count + batch.drawCounter = 1; // Reset draws counter + batch.currentDepth = -1.0f; // Reset depth value + //-------------------------------------------------------------------------------------------- +#endif + + return batch; +} + +// Unload default internal buffers vertex data from CPU and GPU +void rlUnloadRenderBatch(rlRenderBatch batch) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Unbind everything + glBindBuffer(GL_ARRAY_BUFFER, 0); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); + + // Unload all vertex buffers data + for (int i = 0; i < batch.bufferCount; i++) + { + // Unbind VAO attribs data + if (RLGL.ExtSupported.vao) + { + glBindVertexArray(batch.vertexBuffer[i].vaoId); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL); + glDisableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR); + glBindVertexArray(0); + } + + // Delete VBOs from GPU (VRAM) + glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[0]); + glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[1]); + glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[2]); + glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[3]); + glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[4]); + + // Delete VAOs from GPU (VRAM) + if (RLGL.ExtSupported.vao) glDeleteVertexArrays(1, &batch.vertexBuffer[i].vaoId); + + // Free vertex arrays memory from CPU (RAM) + RL_FREE(batch.vertexBuffer[i].vertices); + RL_FREE(batch.vertexBuffer[i].texcoords); + RL_FREE(batch.vertexBuffer[i].normals); + RL_FREE(batch.vertexBuffer[i].colors); + RL_FREE(batch.vertexBuffer[i].indices); + } + + // Unload arrays + RL_FREE(batch.vertexBuffer); + RL_FREE(batch.draws); +#endif +} + +// Draw render batch +// NOTE: We require a pointer to reset batch and increase current buffer (multi-buffer) +void rlDrawRenderBatch(rlRenderBatch *batch) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Update batch vertex buffers + //------------------------------------------------------------------------------------------------------------ + // NOTE: If there is not vertex data, buffers doesn't need to be updated (vertexCount > 0) + // TODO: If no data changed on the CPU arrays --> No need to re-update GPU arrays (use a change detector flag?) + if (RLGL.State.vertexCounter > 0) + { + // Activate elements VAO + if (RLGL.ExtSupported.vao) glBindVertexArray(batch->vertexBuffer[batch->currentBuffer].vaoId); + + // Vertex positions buffer + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[0]); + glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*3*sizeof(float), batch->vertexBuffer[batch->currentBuffer].vertices); + //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].vertices, GL_DYNAMIC_DRAW); // Update all buffer + + // Texture coordinates buffer + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[1]); + glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*2*sizeof(float), batch->vertexBuffer[batch->currentBuffer].texcoords); + //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*2*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].texcoords, GL_DYNAMIC_DRAW); // Update all buffer + + // Normals buffer + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[2]); + glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*3*sizeof(float), batch->vertexBuffer[batch->currentBuffer].normals); + //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*3*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].normals, GL_DYNAMIC_DRAW); // Update all buffer + + // Colors buffer + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[3]); + glBufferSubData(GL_ARRAY_BUFFER, 0, RLGL.State.vertexCounter*4*sizeof(unsigned char), batch->vertexBuffer[batch->currentBuffer].colors); + //glBufferData(GL_ARRAY_BUFFER, sizeof(float)*4*4*batch->vertexBuffer[batch->currentBuffer].elementCount, batch->vertexBuffer[batch->currentBuffer].colors, GL_DYNAMIC_DRAW); // Update all buffer + + // NOTE: glMapBuffer() causes sync issue + // If GPU is working with this buffer, glMapBuffer() will wait(stall) until GPU to finish its job + // To avoid waiting (idle), you can call first glBufferData() with NULL pointer before glMapBuffer() + // If you do that, the previous data in PBO will be discarded and glMapBuffer() returns a new + // allocated pointer immediately even if GPU is still working with the previous data + + // Another option: map the buffer object into client's memory + // Probably this code could be moved somewhere else... + // batch->vertexBuffer[batch->currentBuffer].vertices = (float *)glMapBuffer(GL_ARRAY_BUFFER, GL_READ_WRITE); + // if (batch->vertexBuffer[batch->currentBuffer].vertices) + // { + // Update vertex data + // } + // glUnmapBuffer(GL_ARRAY_BUFFER); + + // Unbind the current VAO + if (RLGL.ExtSupported.vao) glBindVertexArray(0); + } + //------------------------------------------------------------------------------------------------------------ + + // Draw batch vertex buffers (considering VR stereo if required) + //------------------------------------------------------------------------------------------------------------ + Matrix matProjection = RLGL.State.projection; + Matrix matModelView = RLGL.State.modelview; + + int eyeCount = 1; + if (RLGL.State.stereoRender) eyeCount = 2; + + for (int eye = 0; eye < eyeCount; eye++) + { + if (eyeCount == 2) + { + // Setup current eye viewport (half screen width) + rlViewport(eye*RLGL.State.framebufferWidth/2, 0, RLGL.State.framebufferWidth/2, RLGL.State.framebufferHeight); + + // Set current eye view offset to modelview matrix + rlSetMatrixModelview(rlMatrixMultiply(matModelView, RLGL.State.viewOffsetStereo[eye])); + // Set current eye projection matrix + rlSetMatrixProjection(RLGL.State.projectionStereo[eye]); + } + + // Draw buffers + if (RLGL.State.vertexCounter > 0) + { + // Set current shader and upload current MVP matrix + glUseProgram(RLGL.State.currentShaderId); + + // Create modelview-projection matrix and upload to shader + Matrix matMVP = rlMatrixMultiply(RLGL.State.modelview, RLGL.State.projection); + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MVP], 1, false, rlMatrixToFloat(matMVP)); + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_PROJECTION] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_PROJECTION], 1, false, rlMatrixToFloat(RLGL.State.projection)); + } + + // WARNING: For the following setup of the view, model, and normal matrices, it is expected that + // transformations and rendering occur between rlPushMatrix() and rlPopMatrix() + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_VIEW] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_VIEW], 1, false, rlMatrixToFloat(RLGL.State.modelview)); + } + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MODEL] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_MODEL], 1, false, rlMatrixToFloat(RLGL.State.transform)); + } + + if (RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_NORMAL] != -1) + { + glUniformMatrix4fv(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MATRIX_NORMAL], 1, false, rlMatrixToFloat(rlMatrixTranspose(rlMatrixInvert(RLGL.State.transform)))); + } + + if (RLGL.ExtSupported.vao) glBindVertexArray(batch->vertexBuffer[batch->currentBuffer].vaoId); + else + { + // Bind vertex attrib: position (shader-location = 0) + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[0]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION], 3, GL_FLOAT, 0, 0, 0); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_POSITION]); + + // Bind vertex attrib: texcoord (shader-location = 1) + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[1]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01], 2, GL_FLOAT, 0, 0, 0); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01]); + + // Bind vertex attrib: normal (shader-location = 2) + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[2]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL], 3, GL_FLOAT, 0, 0, 0); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_NORMAL]); + + // Bind vertex attrib: color (shader-location = 3) + glBindBuffer(GL_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[3]); + glVertexAttribPointer(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR], 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0); + glEnableVertexAttribArray(RLGL.State.currentShaderLocs[RL_SHADER_LOC_VERTEX_COLOR]); + + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batch->vertexBuffer[batch->currentBuffer].vboId[4]); + } + + // Setup some default shader values + glUniform4f(RLGL.State.currentShaderLocs[RL_SHADER_LOC_COLOR_DIFFUSE], 1.0f, 1.0f, 1.0f, 1.0f); + glUniform1i(RLGL.State.currentShaderLocs[RL_SHADER_LOC_MAP_DIFFUSE], 0); // Active default sampler2D: texture0 + + // Activate additional sampler textures + // Those additional textures will be common for all draw calls of the batch + for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) + { + if (RLGL.State.activeTextureId[i] > 0) + { + glActiveTexture(GL_TEXTURE0 + 1 + i); + glBindTexture(GL_TEXTURE_2D, RLGL.State.activeTextureId[i]); + } + } + + // Activate default sampler2D texture0 (one texture is always active for default batch shader) + // NOTE: Batch system accumulates calls by texture0 changes, additional textures are enabled for all the draw calls + glActiveTexture(GL_TEXTURE0); + + for (int i = 0, vertexOffset = 0; i < batch->drawCounter; i++) + { + // Bind current draw call texture, activated as GL_TEXTURE0 and Bound to sampler2D texture0 by default + glBindTexture(GL_TEXTURE_2D, batch->draws[i].textureId); + + if ((batch->draws[i].mode == RL_LINES) || (batch->draws[i].mode == RL_TRIANGLES)) glDrawArrays(batch->draws[i].mode, vertexOffset, batch->draws[i].vertexCount); + else + { + #if defined(GRAPHICS_API_OPENGL_33) + // We need to define the number of indices to be processed: elementCount*6 + // NOTE: The final parameter tells the GPU the offset in bytes from the + // start of the index buffer to the location of the first index to process + glDrawElements(GL_TRIANGLES, batch->draws[i].vertexCount/4*6, GL_UNSIGNED_INT, (GLvoid *)(vertexOffset/4*6*sizeof(GLuint))); + #endif + #if defined(GRAPHICS_API_OPENGL_ES2) + glDrawElements(GL_TRIANGLES, batch->draws[i].vertexCount/4*6, GL_UNSIGNED_SHORT, (GLvoid *)(vertexOffset/4*6*sizeof(GLushort))); + #endif + } + + vertexOffset += (batch->draws[i].vertexCount + batch->draws[i].vertexAlignment); + } + + if (!RLGL.ExtSupported.vao) + { + glBindBuffer(GL_ARRAY_BUFFER, 0); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); + } + + glBindTexture(GL_TEXTURE_2D, 0); // Unbind textures + } + + if (RLGL.ExtSupported.vao) glBindVertexArray(0); // Unbind VAO + + glUseProgram(0); // Unbind shader program + } + + // Restore viewport to default measures + if (eyeCount == 2) rlViewport(0, 0, RLGL.State.framebufferWidth, RLGL.State.framebufferHeight); + //------------------------------------------------------------------------------------------------------------ + + // Reset batch buffers + //------------------------------------------------------------------------------------------------------------ + // Reset vertex counter for next frame + RLGL.State.vertexCounter = 0; + + // Reset depth for next draw + batch->currentDepth = -1.0f; + + // Restore projection/modelview matrices + RLGL.State.projection = matProjection; + RLGL.State.modelview = matModelView; + + // Reset RLGL.currentBatch->draws array + for (int i = 0; i < RL_DEFAULT_BATCH_DRAWCALLS; i++) + { + batch->draws[i].mode = RL_QUADS; + batch->draws[i].vertexCount = 0; + batch->draws[i].textureId = RLGL.State.defaultTextureId; + } + + // Reset active texture units for next batch + for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) RLGL.State.activeTextureId[i] = 0; + + // Reset draws counter to one draw for the batch + batch->drawCounter = 1; + //------------------------------------------------------------------------------------------------------------ + + // Change to next buffer in the list (in case of multi-buffering) + batch->currentBuffer++; + if (batch->currentBuffer >= batch->bufferCount) batch->currentBuffer = 0; +#endif +} + +// Set the active render batch for rlgl +void rlSetRenderBatchActive(rlRenderBatch *batch) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + rlDrawRenderBatch(RLGL.currentBatch); + + if (batch != NULL) RLGL.currentBatch = batch; + else RLGL.currentBatch = &RLGL.defaultBatch; +#endif +} + +// Update and draw internal render batch +void rlDrawRenderBatchActive(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + rlDrawRenderBatch(RLGL.currentBatch); // NOTE: Stereo rendering is checked inside +#endif +} + +// Check internal buffer overflow for a given number of vertex +// and force a rlRenderBatch draw call if required +bool rlCheckRenderBatchLimit(int vCount) +{ + bool overflow = false; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if ((RLGL.State.vertexCounter + vCount) >= + (RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].elementCount*4)) + { + overflow = true; + + // Store current primitive drawing mode and texture id + int currentMode = RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode; + int currentTexture = RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId; + + rlDrawRenderBatch(RLGL.currentBatch); // NOTE: Stereo rendering is checked inside + + // Restore state of last batch so we can continue adding vertices + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].mode = currentMode; + RLGL.currentBatch->draws[RLGL.currentBatch->drawCounter - 1].textureId = currentTexture; + } +#endif + + return overflow; +} + +// Textures data management +//----------------------------------------------------------------------------------------- +// Convert image data to OpenGL texture (returns OpenGL valid Id) +unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipmapCount) +{ + unsigned int id = 0; + + glBindTexture(GL_TEXTURE_2D, 0); // Free any old binding + + // Check texture format support by OpenGL 1.1 (compressed textures not supported) +#if defined(GRAPHICS_API_OPENGL_11) + if (format >= RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) + { + TRACELOG(RL_LOG_WARNING, "GL: OpenGL 1.1 does not support GPU compressed texture formats"); + return id; + } +#else + if ((!RLGL.ExtSupported.texCompDXT) && ((format == RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA) || + (format == RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA) || (format == RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA))) + { + TRACELOG(RL_LOG_WARNING, "GL: DXT compressed texture format not supported"); + return id; + } +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if ((!RLGL.ExtSupported.texCompETC1) && (format == RL_PIXELFORMAT_COMPRESSED_ETC1_RGB)) + { + TRACELOG(RL_LOG_WARNING, "GL: ETC1 compressed texture format not supported"); + return id; + } + + if ((!RLGL.ExtSupported.texCompETC2) && ((format == RL_PIXELFORMAT_COMPRESSED_ETC2_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA))) + { + TRACELOG(RL_LOG_WARNING, "GL: ETC2 compressed texture format not supported"); + return id; + } + + if ((!RLGL.ExtSupported.texCompPVRT) && ((format == RL_PIXELFORMAT_COMPRESSED_PVRT_RGB) || (format == RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA))) + { + TRACELOG(RL_LOG_WARNING, "GL: PVRT compressed texture format not supported"); + return id; + } + + if ((!RLGL.ExtSupported.texCompASTC) && ((format == RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA) || (format == RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA))) + { + TRACELOG(RL_LOG_WARNING, "GL: ASTC compressed texture format not supported"); + return id; + } +#endif +#endif // GRAPHICS_API_OPENGL_11 + + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + + glGenTextures(1, &id); // Generate texture id + + glBindTexture(GL_TEXTURE_2D, id); + + int mipWidth = width; + int mipHeight = height; + int mipOffset = 0; // Mipmap data offset, only used for tracelog + + // NOTE: Added pointer math separately from function to avoid UBSAN complaining + unsigned char *dataPtr = NULL; + if (data != NULL) dataPtr = (unsigned char *)data; + + // Load the different mipmap levels + for (int i = 0; i < mipmapCount; i++) + { + unsigned int mipSize = rlGetPixelDataSize(mipWidth, mipHeight, format); + + unsigned int glInternalFormat, glFormat, glType; + rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); + + TRACELOGD("TEXTURE: Load mipmap level %i (%i x %i), size: %i, offset: %i", i, mipWidth, mipHeight, mipSize, mipOffset); + + if (glInternalFormat != 0) + { + if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) glTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, glFormat, glType, dataPtr); +#if !defined(GRAPHICS_API_OPENGL_11) + else glCompressedTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, mipSize, dataPtr); +#endif + +#if defined(GRAPHICS_API_OPENGL_33) + if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) + { + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ONE }; + glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); + } + else if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA) + { +#if defined(GRAPHICS_API_OPENGL_21) + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ALPHA }; +#elif defined(GRAPHICS_API_OPENGL_33) + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_GREEN }; +#endif + glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); + } +#endif + } + + mipWidth /= 2; + mipHeight /= 2; + mipOffset += mipSize; // Increment offset position to next mipmap + if (data != NULL) dataPtr += mipSize; // Increment data pointer to next mipmap + + // Security check for NPOT textures + if (mipWidth < 1) mipWidth = 1; + if (mipHeight < 1) mipHeight = 1; + } + + // Texture parameters configuration + // NOTE: glTexParameteri does NOT affect texture uploading, just the way it's used +#if defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: OpenGL ES 2.0 with no GL_OES_texture_npot support (i.e. WebGL) has limited NPOT support, so CLAMP_TO_EDGE must be used + if (RLGL.ExtSupported.texNPOT) + { + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); // Set texture to repeat on x-axis + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); // Set texture to repeat on y-axis + } + else + { + // NOTE: If using negative texture coordinates (LoadOBJ()), it does not work! + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); // Set texture to clamp on x-axis + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); // Set texture to clamp on y-axis + } +#else + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); // Set texture to repeat on x-axis + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); // Set texture to repeat on y-axis +#endif + + // Magnification and minification filters + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); // Alternative: GL_LINEAR + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); // Alternative: GL_LINEAR + +#if defined(GRAPHICS_API_OPENGL_33) + if (mipmapCount > 1) + { + // Activate Trilinear filtering if mipmaps are available + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); + } +#endif + + // At this point we have the texture loaded in GPU and texture parameters configured + + // NOTE: If mipmaps were not in data, they are not generated automatically + + // Unbind current texture + glBindTexture(GL_TEXTURE_2D, 0); + + if (id > 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Texture loaded successfully (%ix%i | %s | %i mipmaps)", id, width, height, rlGetPixelFormatName(format), mipmapCount); + else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load texture"); + + return id; +} + +// Load depth texture/renderbuffer (to be attached to fbo) +// WARNING: OpenGL ES 2.0 requires GL_OES_depth_texture and WebGL requires WEBGL_depth_texture extensions +unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer) +{ + unsigned int id = 0; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // In case depth textures not supported, we force renderbuffer usage + if (!RLGL.ExtSupported.texDepth) useRenderBuffer = true; + + // NOTE: We let the implementation to choose the best bit-depth + // Possible formats: GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32 and GL_DEPTH_COMPONENT32F + unsigned int glInternalFormat = GL_DEPTH_COMPONENT; + +#if (defined(GRAPHICS_API_OPENGL_ES2) || defined(GRAPHICS_API_OPENGL_ES3)) + // WARNING: WebGL platform requires unsized internal format definition (GL_DEPTH_COMPONENT) + // while other platforms using OpenGL ES 2.0 require/support sized internal formats depending on the GPU capabilities + if (!RLGL.ExtSupported.texDepthWebGL || useRenderBuffer) + { + if (RLGL.ExtSupported.maxDepthBits == 32) glInternalFormat = GL_DEPTH_COMPONENT32_OES; + else if (RLGL.ExtSupported.maxDepthBits == 24) glInternalFormat = GL_DEPTH_COMPONENT24_OES; + else glInternalFormat = GL_DEPTH_COMPONENT16; + } +#endif + + if (!useRenderBuffer && RLGL.ExtSupported.texDepth) + { + glGenTextures(1, &id); + glBindTexture(GL_TEXTURE_2D, id); + glTexImage2D(GL_TEXTURE_2D, 0, glInternalFormat, width, height, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, NULL); + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + + glBindTexture(GL_TEXTURE_2D, 0); + + TRACELOG(RL_LOG_INFO, "TEXTURE: Depth texture loaded successfully"); + } + else + { + // Create the renderbuffer that will serve as the depth attachment for the framebuffer + // NOTE: A renderbuffer is simpler than a texture and could offer better performance on embedded devices + glGenRenderbuffers(1, &id); + glBindRenderbuffer(GL_RENDERBUFFER, id); + glRenderbufferStorage(GL_RENDERBUFFER, glInternalFormat, width, height); + + glBindRenderbuffer(GL_RENDERBUFFER, 0); + + TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Depth renderbuffer loaded successfully (%i bits)", id, (RLGL.ExtSupported.maxDepthBits >= 24)? RLGL.ExtSupported.maxDepthBits : 16); + } +#endif + + return id; +} + +// Load texture cubemap +// NOTE: Cubemap data is expected to be 6 images in a single data array (one after the other), +// expected the following convention: +X, -X, +Y, -Y, +Z, -Z +unsigned int rlLoadTextureCubemap(const void *data, int size, int format, int mipmapCount) +{ + unsigned int id = 0; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + int mipSize = size; + + // NOTE: Added pointer math separately from function to avoid UBSAN complaining + unsigned char *dataPtr = NULL; + if (data != NULL) dataPtr = (unsigned char *)data; + + unsigned int dataSize = rlGetPixelDataSize(size, size, format); + + glGenTextures(1, &id); + glBindTexture(GL_TEXTURE_CUBE_MAP, id); + + unsigned int glInternalFormat, glFormat, glType; + rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); + + if (glInternalFormat != 0) + { + // Load cubemap faces/mipmaps + for (int i = 0; i < 6*mipmapCount; i++) + { + int mipmapLevel = i/6; + int face = i%6; + + if (data == NULL) + { + if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) + { + if ((format == RL_PIXELFORMAT_UNCOMPRESSED_R32) || + (format == RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32) || + (format == RL_PIXELFORMAT_UNCOMPRESSED_R16) || + (format == RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16)) TRACELOG(RL_LOG_WARNING, "TEXTURES: Cubemap requested format not supported"); + else glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, glFormat, glType, NULL); + } + else TRACELOG(RL_LOG_WARNING, "TEXTURES: Empty cubemap creation does not support compressed format"); + } + else + { + if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, glFormat, glType, (unsigned char *)dataPtr + face*dataSize); + else glCompressedTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mipmapLevel, glInternalFormat, mipSize, mipSize, 0, dataSize, (unsigned char *)dataPtr + face*dataSize); + } + +#if defined(GRAPHICS_API_OPENGL_33) + if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) + { + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ONE }; + glTexParameteriv(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); + } + else if (format == RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA) + { +#if defined(GRAPHICS_API_OPENGL_21) + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_ALPHA }; +#elif defined(GRAPHICS_API_OPENGL_33) + GLint swizzleMask[] = { GL_RED, GL_RED, GL_RED, GL_GREEN }; +#endif + glTexParameteriv(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); + } +#endif + if (face == 5) + { + mipSize /= 2; + if (data != NULL) dataPtr += dataSize*6; // Increment data pointer to next mipmap + + // Security check for NPOT textures + if (mipSize < 1) mipSize = 1; + + dataSize = rlGetPixelDataSize(mipSize, mipSize, format); + } + } + } + + // Set cubemap texture sampling parameters + if (mipmapCount > 1) glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); + else glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + + glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); +#if defined(GRAPHICS_API_OPENGL_33) + glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE); // Flag not supported on OpenGL ES 2.0 +#endif + + glBindTexture(GL_TEXTURE_CUBE_MAP, 0); +#endif + + if (id > 0) TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Cubemap texture loaded successfully (%ix%i)", id, size, size); + else TRACELOG(RL_LOG_WARNING, "TEXTURE: Failed to load cubemap texture"); + + return id; +} + +// Update already loaded texture in GPU with new data +// NOTE: We don't know safely if internal texture format is the expected one... +void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data) +{ + glBindTexture(GL_TEXTURE_2D, id); + + unsigned int glInternalFormat, glFormat, glType; + rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); + + if ((glInternalFormat != 0) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)) + { + glTexSubImage2D(GL_TEXTURE_2D, 0, offsetX, offsetY, width, height, glFormat, glType, data); + } + else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Failed to update for current texture format (%i)", id, format); +} + +// Get OpenGL internal formats and data type from raylib PixelFormat +void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType) +{ + *glInternalFormat = 0; + *glFormat = 0; + *glType = 0; + + switch (format) + { + #if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_21) || defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: on OpenGL ES 2.0 (WebGL), internalFormat must match format and options allowed are: GL_LUMINANCE, GL_RGB, GL_RGBA + case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: *glInternalFormat = GL_LUMINANCE_ALPHA; *glFormat = GL_LUMINANCE_ALPHA; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_UNSIGNED_SHORT_5_6_5; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_5_5_5_1; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_4_4_4_4; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_BYTE; break; + #if !defined(GRAPHICS_API_OPENGL_11) + #if defined(GRAPHICS_API_OPENGL_ES3) + case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_R32F_EXT; *glFormat = GL_RED_EXT; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB32F_EXT; *glFormat = GL_RGB; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA32F_EXT; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_R16F_EXT; *glFormat = GL_RED_EXT; *glType = GL_HALF_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB16F_EXT; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA16F_EXT; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT; break; + #else + case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float + #if defined(GRAPHICS_API_OPENGL_21) + case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_HALF_FLOAT_ARB; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT_ARB; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT_ARB; break; + #else // defined(GRAPHICS_API_OPENGL_ES2) + case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float + #endif + #endif + #endif + #elif defined(GRAPHICS_API_OPENGL_33) + case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: *glInternalFormat = GL_R8; *glFormat = GL_RED; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: *glInternalFormat = GL_RG8; *glFormat = GL_RG; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: *glInternalFormat = GL_RGB565; *glFormat = GL_RGB; *glType = GL_UNSIGNED_SHORT_5_6_5; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: *glInternalFormat = GL_RGB8; *glFormat = GL_RGB; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: *glInternalFormat = GL_RGB5_A1; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_5_5_5_1; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: *glInternalFormat = GL_RGBA4; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_4_4_4_4; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: *glInternalFormat = GL_RGBA8; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_BYTE; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_R32F; *glFormat = GL_RED; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB32F; *glFormat = GL_RGB; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA32F; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_R16F; *glFormat = GL_RED; *glType = GL_HALF_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB16F; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA16F; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT; break; + #endif + #if !defined(GRAPHICS_API_OPENGL_11) + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGB_S3TC_DXT1_EXT; break; + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT; break; + case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT; break; + case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT; break; + case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: if (RLGL.ExtSupported.texCompETC1) *glInternalFormat = GL_ETC1_RGB8_OES; break; // NOTE: Requires OpenGL ES 2.0 or OpenGL 4.3 + case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: if (RLGL.ExtSupported.texCompETC2) *glInternalFormat = GL_COMPRESSED_RGB8_ETC2; break; // NOTE: Requires OpenGL ES 3.0 or OpenGL 4.3 + case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: if (RLGL.ExtSupported.texCompETC2) *glInternalFormat = GL_COMPRESSED_RGBA8_ETC2_EAC; break; // NOTE: Requires OpenGL ES 3.0 or OpenGL 4.3 + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: if (RLGL.ExtSupported.texCompPVRT) *glInternalFormat = GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG; break; // NOTE: Requires PowerVR GPU + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: if (RLGL.ExtSupported.texCompPVRT) *glInternalFormat = GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; break; // NOTE: Requires PowerVR GPU + case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: if (RLGL.ExtSupported.texCompASTC) *glInternalFormat = GL_COMPRESSED_RGBA_ASTC_4x4_KHR; break; // NOTE: Requires OpenGL ES 3.1 or OpenGL 4.3 + case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: if (RLGL.ExtSupported.texCompASTC) *glInternalFormat = GL_COMPRESSED_RGBA_ASTC_8x8_KHR; break; // NOTE: Requires OpenGL ES 3.1 or OpenGL 4.3 + #endif + default: TRACELOG(RL_LOG_WARNING, "TEXTURE: Current format not supported (%i)", format); break; + } +} + +// Unload texture from GPU memory +void rlUnloadTexture(unsigned int id) +{ + glDeleteTextures(1, &id); +} + +// Generate mipmap data for selected texture +// NOTE: Only supports GPU mipmap generation +void rlGenTextureMipmaps(unsigned int id, int width, int height, int format, int *mipmaps) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindTexture(GL_TEXTURE_2D, id); + + // Check if texture is power-of-two (POT) + bool texIsPOT = false; + + if (((width > 0) && ((width & (width - 1)) == 0)) && + ((height > 0) && ((height & (height - 1)) == 0))) texIsPOT = true; + + if ((texIsPOT) || (RLGL.ExtSupported.texNPOT)) + { + //glHint(GL_GENERATE_MIPMAP_HINT, GL_DONT_CARE); // Hint for mipmaps generation algorithm: GL_FASTEST, GL_NICEST, GL_DONT_CARE + glGenerateMipmap(GL_TEXTURE_2D); // Generate mipmaps automatically + + #define MIN(a,b) (((a)<(b))? (a):(b)) + #define MAX(a,b) (((a)>(b))? (a):(b)) + + *mipmaps = 1 + (int)floor(log(MAX(width, height))/log(2)); + TRACELOG(RL_LOG_INFO, "TEXTURE: [ID %i] Mipmaps generated automatically, total: %i", id, *mipmaps); + } + else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Failed to generate mipmaps", id); + + glBindTexture(GL_TEXTURE_2D, 0); +#else + TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] GPU mipmap generation not supported", id); +#endif +} + +// Read texture pixel data +void *rlReadTexturePixels(unsigned int id, int width, int height, int format) +{ + void *pixels = NULL; + +#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + glBindTexture(GL_TEXTURE_2D, id); + + // NOTE: Using texture id, we can retrieve some texture info (but not on OpenGL ES 2.0) + // Possible texture info: GL_TEXTURE_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE + //int width, height, format; + //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &width); + //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &height); + //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_INTERNAL_FORMAT, &format); + + // NOTE: Each row written to or read from by OpenGL pixel operations like glGetTexImage are aligned to a 4 byte boundary by default, which may add some padding + // Use glPixelStorei to modify padding with the GL_[UN]PACK_ALIGNMENT setting + // GL_PACK_ALIGNMENT affects operations that read from OpenGL memory (glReadPixels, glGetTexImage, etc.) + // GL_UNPACK_ALIGNMENT affects operations that write to OpenGL memory (glTexImage, etc.) + glPixelStorei(GL_PACK_ALIGNMENT, 1); + + unsigned int glInternalFormat, glFormat, glType; + rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); + unsigned int size = rlGetPixelDataSize(width, height, format); + + if ((glInternalFormat != 0) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)) + { + pixels = RL_MALLOC(size); + glGetTexImage(GL_TEXTURE_2D, 0, glFormat, glType, pixels); + } + else TRACELOG(RL_LOG_WARNING, "TEXTURE: [ID %i] Data retrieval not suported for pixel format (%i)", id, format); + + glBindTexture(GL_TEXTURE_2D, 0); +#endif + +#if defined(GRAPHICS_API_OPENGL_ES2) + // glGetTexImage() is not available on OpenGL ES 2.0 + // Texture width and height are required on OpenGL ES 2.0, there is no way to get it from texture id + // Two possible Options: + // 1 - Bind texture to color fbo attachment and glReadPixels() + // 2 - Create an fbo, activate it, render quad with texture, glReadPixels() + // We are using Option 1, just need to care for texture format on retrieval + // NOTE: This behaviour could be conditioned by graphic driver... + unsigned int fboId = rlLoadFramebuffer(); + + glBindFramebuffer(GL_FRAMEBUFFER, fboId); + glBindTexture(GL_TEXTURE_2D, 0); + + // Attach our texture to FBO + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, id, 0); + + // We read data as RGBA because FBO texture is configured as RGBA, despite binding another texture format + pixels = (unsigned char *)RL_MALLOC(rlGetPixelDataSize(width, height, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8)); + glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, pixels); + + glBindFramebuffer(GL_FRAMEBUFFER, 0); + + // Clean up temporal fbo + rlUnloadFramebuffer(fboId); +#endif + + return pixels; +} + +// Read screen pixel data (color buffer) +unsigned char *rlReadScreenPixels(int width, int height) +{ + unsigned char *screenData = (unsigned char *)RL_CALLOC(width*height*4, sizeof(unsigned char)); + + // NOTE 1: glReadPixels returns image flipped vertically -> (0,0) is the bottom left corner of the framebuffer + // NOTE 2: We are getting alpha channel! Be careful, it can be transparent if not cleared properly! + glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, screenData); + + // Flip image vertically! + unsigned char *imgData = (unsigned char *)RL_MALLOC(width*height*4*sizeof(unsigned char)); + + for (int y = height - 1; y >= 0; y--) + { + for (int x = 0; x < (width*4); x++) + { + imgData[((height - 1) - y)*width*4 + x] = screenData[(y*width*4) + x]; // Flip line + + // Set alpha component value to 255 (no trasparent image retrieval) + // NOTE: Alpha value has already been applied to RGB in framebuffer, we don't need it! + if (((x + 1)%4) == 0) imgData[((height - 1) - y)*width*4 + x] = 255; + } + } + + RL_FREE(screenData); + + return imgData; // NOTE: image data should be freed +} + +// Framebuffer management (fbo) +//----------------------------------------------------------------------------------------- +// Load a framebuffer to be used for rendering +// NOTE: No textures attached +unsigned int rlLoadFramebuffer(void) +{ + unsigned int fboId = 0; + +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) + glGenFramebuffers(1, &fboId); // Create the framebuffer object + glBindFramebuffer(GL_FRAMEBUFFER, 0); // Unbind any framebuffer +#endif + + return fboId; +} + +// Attach color buffer texture to an fbo (unloads previous attachment) +// NOTE: Attach type: 0-Color, 1-Depth renderbuffer, 2-Depth texture +void rlFramebufferAttach(unsigned int fboId, unsigned int texId, int attachType, int texType, int mipLevel) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) + glBindFramebuffer(GL_FRAMEBUFFER, fboId); + + switch (attachType) + { + case RL_ATTACHMENT_COLOR_CHANNEL0: + case RL_ATTACHMENT_COLOR_CHANNEL1: + case RL_ATTACHMENT_COLOR_CHANNEL2: + case RL_ATTACHMENT_COLOR_CHANNEL3: + case RL_ATTACHMENT_COLOR_CHANNEL4: + case RL_ATTACHMENT_COLOR_CHANNEL5: + case RL_ATTACHMENT_COLOR_CHANNEL6: + case RL_ATTACHMENT_COLOR_CHANNEL7: + { + if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_TEXTURE_2D, texId, mipLevel); + else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_RENDERBUFFER, texId); + else if (texType >= RL_ATTACHMENT_CUBEMAP_POSITIVE_X) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + attachType, GL_TEXTURE_CUBE_MAP_POSITIVE_X + texType, texId, mipLevel); + + } break; + case RL_ATTACHMENT_DEPTH: + { + if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, texId, mipLevel); + else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, texId); + + } break; + case RL_ATTACHMENT_STENCIL: + { + if (texType == RL_ATTACHMENT_TEXTURE2D) glFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D, texId, mipLevel); + else if (texType == RL_ATTACHMENT_RENDERBUFFER) glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, texId); + + } break; + default: break; + } + + glBindFramebuffer(GL_FRAMEBUFFER, 0); +#endif +} + +// Verify render texture is complete +bool rlFramebufferComplete(unsigned int id) +{ + bool result = false; + +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) + glBindFramebuffer(GL_FRAMEBUFFER, id); + + GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); + + if (status != GL_FRAMEBUFFER_COMPLETE) + { + switch (status) + { + case GL_FRAMEBUFFER_UNSUPPORTED: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer is unsupported", id); break; + case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has incomplete attachment", id); break; +#if defined(GRAPHICS_API_OPENGL_ES2) + case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has incomplete dimensions", id); break; +#endif + case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: TRACELOG(RL_LOG_WARNING, "FBO: [ID %i] Framebuffer has a missing attachment", id); break; + default: break; + } + } + + glBindFramebuffer(GL_FRAMEBUFFER, 0); + + result = (status == GL_FRAMEBUFFER_COMPLETE); +#endif + + return result; +} + +// Unload framebuffer from GPU memory +// NOTE: All attached textures/cubemaps/renderbuffers are also deleted +void rlUnloadFramebuffer(unsigned int id) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) + // Query depth attachment to automatically delete texture/renderbuffer + int depthType = 0, depthId = 0; + glBindFramebuffer(GL_FRAMEBUFFER, id); // Bind framebuffer to query depth texture type + glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &depthType); + + // TODO: Review warning retrieving object name in WebGL + // WARNING: WebGL: INVALID_ENUM: getFramebufferAttachmentParameter: invalid parameter name + // https://registry.khronos.org/webgl/specs/latest/1.0/ + glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, &depthId); + + unsigned int depthIdU = (unsigned int)depthId; + if (depthType == GL_RENDERBUFFER) glDeleteRenderbuffers(1, &depthIdU); + else if (depthType == GL_TEXTURE) glDeleteTextures(1, &depthIdU); + + // NOTE: If a texture object is deleted while its image is attached to the *currently bound* framebuffer, + // the texture image is automatically detached from the currently bound framebuffer + + glBindFramebuffer(GL_FRAMEBUFFER, 0); + glDeleteFramebuffers(1, &id); + + TRACELOG(RL_LOG_INFO, "FBO: [ID %i] Unloaded framebuffer from VRAM (GPU)", id); +#endif +} + +// Vertex data management +//----------------------------------------------------------------------------------------- +// Load a new attributes buffer +unsigned int rlLoadVertexBuffer(const void *buffer, int size, bool dynamic) +{ + unsigned int id = 0; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glGenBuffers(1, &id); + glBindBuffer(GL_ARRAY_BUFFER, id); + glBufferData(GL_ARRAY_BUFFER, size, buffer, dynamic? GL_DYNAMIC_DRAW : GL_STATIC_DRAW); +#endif + + return id; +} + +// Load a new attributes element buffer +unsigned int rlLoadVertexBufferElement(const void *buffer, int size, bool dynamic) +{ + unsigned int id = 0; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glGenBuffers(1, &id); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, size, buffer, dynamic? GL_DYNAMIC_DRAW : GL_STATIC_DRAW); +#endif + + return id; +} + +// Enable vertex buffer (VBO) +void rlEnableVertexBuffer(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ARRAY_BUFFER, id); +#endif +} + +// Disable vertex buffer (VBO) +void rlDisableVertexBuffer(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ARRAY_BUFFER, 0); +#endif +} + +// Enable vertex buffer element (VBO element) +void rlEnableVertexBufferElement(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); +#endif +} + +// Disable vertex buffer element (VBO element) +void rlDisableVertexBufferElement(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); +#endif +} + +// Update vertex buffer with new data +// NOTE: dataSize and offset must be provided in bytes +void rlUpdateVertexBuffer(unsigned int id, const void *data, int dataSize, int offset) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ARRAY_BUFFER, id); + glBufferSubData(GL_ARRAY_BUFFER, offset, dataSize, data); +#endif +} + +// Update vertex buffer elements with new data +// NOTE: dataSize and offset must be provided in bytes +void rlUpdateVertexBufferElements(unsigned int id, const void *data, int dataSize, int offset) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id); + glBufferSubData(GL_ELEMENT_ARRAY_BUFFER, offset, dataSize, data); +#endif +} + +// Enable vertex array object (VAO) +bool rlEnableVertexArray(unsigned int vaoId) +{ + bool result = false; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if (RLGL.ExtSupported.vao) + { + glBindVertexArray(vaoId); + result = true; + } +#endif + return result; +} + +// Disable vertex array object (VAO) +void rlDisableVertexArray(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if (RLGL.ExtSupported.vao) glBindVertexArray(0); +#endif +} + +// Enable vertex attribute index +void rlEnableVertexAttribute(unsigned int index) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glEnableVertexAttribArray(index); +#endif +} + +// Disable vertex attribute index +void rlDisableVertexAttribute(unsigned int index) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glDisableVertexAttribArray(index); +#endif +} + +// Draw vertex array +void rlDrawVertexArray(int offset, int count) +{ + glDrawArrays(GL_TRIANGLES, offset, count); +} + +// Draw vertex array elements +void rlDrawVertexArrayElements(int offset, int count, const void *buffer) +{ + // NOTE: Added pointer math separately from function to avoid UBSAN complaining + unsigned short *bufferPtr = (unsigned short *)buffer; + if (offset > 0) bufferPtr += offset; + + glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)bufferPtr); +} + +// Draw vertex array instanced +void rlDrawVertexArrayInstanced(int offset, int count, int instances) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glDrawArraysInstanced(GL_TRIANGLES, 0, count, instances); +#endif +} + +// Draw vertex array elements instanced +void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffer, int instances) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: Added pointer math separately from function to avoid UBSAN complaining + unsigned short *bufferPtr = (unsigned short *)buffer; + if (offset > 0) bufferPtr += offset; + + glDrawElementsInstanced(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)bufferPtr, instances); +#endif +} + +#if defined(GRAPHICS_API_OPENGL_11) +// Enable vertex state pointer +void rlEnableStatePointer(int vertexAttribType, void *buffer) +{ + if (buffer != NULL) glEnableClientState(vertexAttribType); + switch (vertexAttribType) + { + case GL_VERTEX_ARRAY: glVertexPointer(3, GL_FLOAT, 0, buffer); break; + case GL_TEXTURE_COORD_ARRAY: glTexCoordPointer(2, GL_FLOAT, 0, buffer); break; + case GL_NORMAL_ARRAY: if (buffer != NULL) glNormalPointer(GL_FLOAT, 0, buffer); break; + case GL_COLOR_ARRAY: if (buffer != NULL) glColorPointer(4, GL_UNSIGNED_BYTE, 0, buffer); break; + //case GL_INDEX_ARRAY: if (buffer != NULL) glIndexPointer(GL_SHORT, 0, buffer); break; // Indexed colors + default: break; + } +} + +// Disable vertex state pointer +void rlDisableStatePointer(int vertexAttribType) +{ + glDisableClientState(vertexAttribType); +} +#endif + +// Load vertex array object (VAO) +unsigned int rlLoadVertexArray(void) +{ + unsigned int vaoId = 0; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if (RLGL.ExtSupported.vao) + { + glGenVertexArrays(1, &vaoId); + } +#endif + return vaoId; +} + +// Set vertex attribute +void rlSetVertexAttribute(unsigned int index, int compSize, int type, bool normalized, int stride, int offset) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // NOTE: Data type could be: GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT + // Additional types (depends on OpenGL version or extensions): + // - GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, + // - GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_10F_11F_11F_REV + + size_t offsetNative = offset; + glVertexAttribPointer(index, compSize, type, normalized, stride, (void *)offsetNative); +#endif +} + +// Set vertex attribute divisor +void rlSetVertexAttributeDivisor(unsigned int index, int divisor) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glVertexAttribDivisor(index, divisor); +#endif +} + +// Unload vertex array object (VAO) +void rlUnloadVertexArray(unsigned int vaoId) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if (RLGL.ExtSupported.vao) + { + glBindVertexArray(0); + glDeleteVertexArrays(1, &vaoId); + TRACELOG(RL_LOG_INFO, "VAO: [ID %i] Unloaded vertex array data from VRAM (GPU)", vaoId); + } +#endif +} + +// Unload vertex buffer (VBO) +void rlUnloadVertexBuffer(unsigned int vboId) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glDeleteBuffers(1, &vboId); + //TRACELOG(RL_LOG_INFO, "VBO: Unloaded vertex data from VRAM (GPU)"); +#endif +} + +// Shaders management +//----------------------------------------------------------------------------------------------- +// Load shader from code strings +// NOTE: If shader string is NULL, using default vertex/fragment shaders +unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode) +{ + unsigned int id = 0; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + unsigned int vertexShaderId = 0; + unsigned int fragmentShaderId = 0; + + // Compile vertex shader (if provided) + // NOTE: If not vertex shader is provided, use default one + if (vsCode != NULL) vertexShaderId = rlCompileShader(vsCode, GL_VERTEX_SHADER); + else vertexShaderId = RLGL.State.defaultVShaderId; + + // Compile fragment shader (if provided) + // NOTE: If not vertex shader is provided, use default one + if (fsCode != NULL) fragmentShaderId = rlCompileShader(fsCode, GL_FRAGMENT_SHADER); + else fragmentShaderId = RLGL.State.defaultFShaderId; + + // In case vertex and fragment shader are the default ones, no need to recompile, we can just assign the default shader program id + if ((vertexShaderId == RLGL.State.defaultVShaderId) && (fragmentShaderId == RLGL.State.defaultFShaderId)) id = RLGL.State.defaultShaderId; + else if ((vertexShaderId > 0) && (fragmentShaderId > 0)) + { + // One of or both shader are new, we need to compile a new shader program + id = rlLoadShaderProgram(vertexShaderId, fragmentShaderId); + + // We can detach and delete vertex/fragment shaders (if not default ones) + // NOTE: We detach shader before deletion to make sure memory is freed + if (vertexShaderId != RLGL.State.defaultVShaderId) + { + // WARNING: Shader program linkage could fail and returned id is 0 + if (id > 0) glDetachShader(id, vertexShaderId); + glDeleteShader(vertexShaderId); + } + if (fragmentShaderId != RLGL.State.defaultFShaderId) + { + // WARNING: Shader program linkage could fail and returned id is 0 + if (id > 0) glDetachShader(id, fragmentShaderId); + glDeleteShader(fragmentShaderId); + } + + // In case shader program loading failed, we assign default shader + if (id == 0) + { + // In case shader loading fails, we return the default shader + TRACELOG(RL_LOG_WARNING, "SHADER: Failed to load custom shader code, using default shader"); + id = RLGL.State.defaultShaderId; + } + /* + else + { + // Get available shader uniforms + // NOTE: This information is useful for debug... + int uniformCount = -1; + glGetProgramiv(id, GL_ACTIVE_UNIFORMS, &uniformCount); + + for (int i = 0; i < uniformCount; i++) + { + int namelen = -1; + int num = -1; + char name[256] = { 0 }; // Assume no variable names longer than 256 + GLenum type = GL_ZERO; + + // Get the name of the uniforms + glGetActiveUniform(id, i, sizeof(name) - 1, &namelen, &num, &type, name); + + name[namelen] = 0; + TRACELOGD("SHADER: [ID %i] Active uniform (%s) set at location: %i", id, name, glGetUniformLocation(id, name)); + } + } + */ + } +#endif + + return id; +} + +// Compile custom shader and return shader id +unsigned int rlCompileShader(const char *shaderCode, int type) +{ + unsigned int shader = 0; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + shader = glCreateShader(type); + glShaderSource(shader, 1, &shaderCode, NULL); + + GLint success = 0; + glCompileShader(shader); + glGetShaderiv(shader, GL_COMPILE_STATUS, &success); + + if (success == GL_FALSE) + { + switch (type) + { + case GL_VERTEX_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile vertex shader code", shader); break; + case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile fragment shader code", shader); break; + //case GL_GEOMETRY_SHADER: + #if defined(GRAPHICS_API_OPENGL_43) + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile compute shader code", shader); break; + #elif defined(GRAPHICS_API_OPENGL_33) + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43", shader); break; + #endif + default: break; + } + + int maxLength = 0; + glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &maxLength); + + if (maxLength > 0) + { + int length = 0; + char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); + glGetShaderInfoLog(shader, maxLength, &length, log); + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Compile error: %s", shader, log); + RL_FREE(log); + } + + shader = 0; + } + else + { + switch (type) + { + case GL_VERTEX_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Vertex shader compiled successfully", shader); break; + case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Fragment shader compiled successfully", shader); break; + //case GL_GEOMETRY_SHADER: + #if defined(GRAPHICS_API_OPENGL_43) + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader compiled successfully", shader); break; + #elif defined(GRAPHICS_API_OPENGL_33) + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43", shader); break; + #endif + default: break; + } + } +#endif + + return shader; +} + +// Load custom shader strings and return program id +unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fShaderId) +{ + unsigned int program = 0; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + GLint success = 0; + program = glCreateProgram(); + + glAttachShader(program, vShaderId); + glAttachShader(program, fShaderId); + + // NOTE: Default attribute shader locations must be Bound before linking + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL, RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR, RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT, RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2); + +#ifdef RL_SUPPORT_MESH_GPU_SKINNING + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS, RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS); + glBindAttribLocation(program, RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS, RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS); +#endif + + // NOTE: If some attrib name is no found on the shader, it locations becomes -1 + + glLinkProgram(program); + + // NOTE: All uniform variables are intitialised to 0 when a program links + + glGetProgramiv(program, GL_LINK_STATUS, &success); + + if (success == GL_FALSE) + { + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to link shader program", program); + + int maxLength = 0; + glGetProgramiv(program, GL_INFO_LOG_LENGTH, &maxLength); + + if (maxLength > 0) + { + int length = 0; + char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); + glGetProgramInfoLog(program, maxLength, &length, log); + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Link error: %s", program, log); + RL_FREE(log); + } + + glDeleteProgram(program); + + program = 0; + } + else + { + // Get the size of compiled shader program (not available on OpenGL ES 2.0) + // NOTE: If GL_LINK_STATUS is GL_FALSE, program binary length is zero + //GLint binarySize = 0; + //glGetProgramiv(id, GL_PROGRAM_BINARY_LENGTH, &binarySize); + + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Program shader loaded successfully", program); + } +#endif + return program; +} + +// Unload shader program +void rlUnloadShaderProgram(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + glDeleteProgram(id); + + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Unloaded shader program data from VRAM (GPU)", id); +#endif +} + +// Get shader location uniform +int rlGetLocationUniform(unsigned int shaderId, const char *uniformName) +{ + int location = -1; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + location = glGetUniformLocation(shaderId, uniformName); + + //if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader uniform: %s", shaderId, uniformName); + //else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader uniform (%s) set at location: %i", shaderId, uniformName, location); +#endif + return location; +} + +// Get shader location attribute +int rlGetLocationAttrib(unsigned int shaderId, const char *attribName) +{ + int location = -1; +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + location = glGetAttribLocation(shaderId, attribName); + + //if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader attribute: %s", shaderId, attribName); + //else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader attribute (%s) set at location: %i", shaderId, attribName, location); +#endif + return location; +} + +// Set shader value uniform +void rlSetUniform(int locIndex, const void *value, int uniformType, int count) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + switch (uniformType) + { + case RL_SHADER_UNIFORM_FLOAT: glUniform1fv(locIndex, count, (float *)value); break; + case RL_SHADER_UNIFORM_VEC2: glUniform2fv(locIndex, count, (float *)value); break; + case RL_SHADER_UNIFORM_VEC3: glUniform3fv(locIndex, count, (float *)value); break; + case RL_SHADER_UNIFORM_VEC4: glUniform4fv(locIndex, count, (float *)value); break; + case RL_SHADER_UNIFORM_INT: glUniform1iv(locIndex, count, (int *)value); break; + case RL_SHADER_UNIFORM_IVEC2: glUniform2iv(locIndex, count, (int *)value); break; + case RL_SHADER_UNIFORM_IVEC3: glUniform3iv(locIndex, count, (int *)value); break; + case RL_SHADER_UNIFORM_IVEC4: glUniform4iv(locIndex, count, (int *)value); break; + #if !defined(GRAPHICS_API_OPENGL_ES2) + case RL_SHADER_UNIFORM_UINT: glUniform1uiv(locIndex, count, (unsigned int *)value); break; + case RL_SHADER_UNIFORM_UIVEC2: glUniform2uiv(locIndex, count, (unsigned int *)value); break; + case RL_SHADER_UNIFORM_UIVEC3: glUniform3uiv(locIndex, count, (unsigned int *)value); break; + case RL_SHADER_UNIFORM_UIVEC4: glUniform4uiv(locIndex, count, (unsigned int *)value); break; + #endif + case RL_SHADER_UNIFORM_SAMPLER2D: glUniform1iv(locIndex, count, (int *)value); break; + default: TRACELOG(RL_LOG_WARNING, "SHADER: Failed to set uniform value, data type not recognized"); + + // TODO: Support glUniform1uiv(), glUniform2uiv(), glUniform3uiv(), glUniform4uiv() + } +#endif +} + +// Set shader value attribute +void rlSetVertexAttributeDefault(int locIndex, const void *value, int attribType, int count) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + switch (attribType) + { + case RL_SHADER_ATTRIB_FLOAT: if (count == 1) glVertexAttrib1fv(locIndex, (float *)value); break; + case RL_SHADER_ATTRIB_VEC2: if (count == 2) glVertexAttrib2fv(locIndex, (float *)value); break; + case RL_SHADER_ATTRIB_VEC3: if (count == 3) glVertexAttrib3fv(locIndex, (float *)value); break; + case RL_SHADER_ATTRIB_VEC4: if (count == 4) glVertexAttrib4fv(locIndex, (float *)value); break; + default: TRACELOG(RL_LOG_WARNING, "SHADER: Failed to set attrib default value, data type not recognized"); + } +#endif +} + +// Set shader value uniform matrix +void rlSetUniformMatrix(int locIndex, Matrix mat) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + float matfloat[16] = { + mat.m0, mat.m1, mat.m2, mat.m3, + mat.m4, mat.m5, mat.m6, mat.m7, + mat.m8, mat.m9, mat.m10, mat.m11, + mat.m12, mat.m13, mat.m14, mat.m15 + }; + glUniformMatrix4fv(locIndex, 1, false, matfloat); +#endif +} + +// Set shader value uniform matrix +void rlSetUniformMatrices(int locIndex, const Matrix *matrices, int count) +{ +#if defined(GRAPHICS_API_OPENGL_33) + glUniformMatrix4fv(locIndex, count, true, (const float *)matrices); +#elif defined(GRAPHICS_API_OPENGL_ES2) + // WARNING: WebGL does not support Matrix transpose ("true" parameter) + // REF: https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/uniformMatrix + glUniformMatrix4fv(locIndex, count, false, (const float *)matrices); +#endif +} + +// Set shader value uniform sampler +void rlSetUniformSampler(int locIndex, unsigned int textureId) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // Check if texture is already active + for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) + { + if (RLGL.State.activeTextureId[i] == textureId) + { + glUniform1i(locIndex, 1 + i); + return; + } + } + + // Register a new active texture for the internal batch system + // NOTE: Default texture is always activated as GL_TEXTURE0 + for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) + { + if (RLGL.State.activeTextureId[i] == 0) + { + glUniform1i(locIndex, 1 + i); // Activate new texture unit + RLGL.State.activeTextureId[i] = textureId; // Save texture id for binding on drawing + break; + } + } +#endif +} + +// Set shader currently active (id and locations) +void rlSetShader(unsigned int id, int *locs) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if (RLGL.State.currentShaderId != id) + { + rlDrawRenderBatch(RLGL.currentBatch); + RLGL.State.currentShaderId = id; + RLGL.State.currentShaderLocs = locs; + } +#endif +} + +// Load compute shader program +unsigned int rlLoadComputeShaderProgram(unsigned int shaderId) +{ + unsigned int program = 0; + +#if defined(GRAPHICS_API_OPENGL_43) + GLint success = 0; + program = glCreateProgram(); + glAttachShader(program, shaderId); + glLinkProgram(program); + + // NOTE: All uniform variables are intitialised to 0 when a program links + + glGetProgramiv(program, GL_LINK_STATUS, &success); + + if (success == GL_FALSE) + { + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to link compute shader program", program); + + int maxLength = 0; + glGetProgramiv(program, GL_INFO_LOG_LENGTH, &maxLength); + + if (maxLength > 0) + { + int length = 0; + char *log = (char *)RL_CALLOC(maxLength, sizeof(char)); + glGetProgramInfoLog(program, maxLength, &length, log); + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Link error: %s", program, log); + RL_FREE(log); + } + + glDeleteProgram(program); + + program = 0; + } + else + { + // Get the size of compiled shader program (not available on OpenGL ES 2.0) + // NOTE: If GL_LINK_STATUS is GL_FALSE, program binary length is zero + //GLint binarySize = 0; + //glGetProgramiv(id, GL_PROGRAM_BINARY_LENGTH, &binarySize); + + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader program loaded successfully", program); + } +#else + TRACELOG(RL_LOG_WARNING, "SHADER: Compute shaders not enabled. Define GRAPHICS_API_OPENGL_43"); +#endif + + return program; +} + +// Dispatch compute shader (equivalent to *draw* for graphics pilepine) +void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glDispatchCompute(groupX, groupY, groupZ); +#endif +} + +// Load shader storage buffer object (SSBO) +unsigned int rlLoadShaderBuffer(unsigned int size, const void *data, int usageHint) +{ + unsigned int ssbo = 0; + +#if defined(GRAPHICS_API_OPENGL_43) + glGenBuffers(1, &ssbo); + glBindBuffer(GL_SHADER_STORAGE_BUFFER, ssbo); + glBufferData(GL_SHADER_STORAGE_BUFFER, size, data, usageHint? usageHint : RL_STREAM_COPY); + if (data == NULL) glClearBufferData(GL_SHADER_STORAGE_BUFFER, GL_R8UI, GL_RED_INTEGER, GL_UNSIGNED_BYTE, NULL); // Clear buffer data to 0 + glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0); +#else + TRACELOG(RL_LOG_WARNING, "SSBO: SSBO not enabled. Define GRAPHICS_API_OPENGL_43"); +#endif + + return ssbo; +} + +// Unload shader storage buffer object (SSBO) +void rlUnloadShaderBuffer(unsigned int ssboId) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glDeleteBuffers(1, &ssboId); +#else + TRACELOG(RL_LOG_WARNING, "SSBO: SSBO not enabled. Define GRAPHICS_API_OPENGL_43"); +#endif + +} + +// Update SSBO buffer data +void rlUpdateShaderBuffer(unsigned int id, const void *data, unsigned int dataSize, unsigned int offset) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); + glBufferSubData(GL_SHADER_STORAGE_BUFFER, offset, dataSize, data); +#endif +} + +// Get SSBO buffer size +unsigned int rlGetShaderBufferSize(unsigned int id) +{ +#if defined(GRAPHICS_API_OPENGL_43) + GLint64 size = 0; + glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); + glGetBufferParameteri64v(GL_SHADER_STORAGE_BUFFER, GL_BUFFER_SIZE, &size); + return (size > 0)? (unsigned int)size : 0; +#else + return 0; +#endif +} + +// Read SSBO buffer data (GPU->CPU) +void rlReadShaderBuffer(unsigned int id, void *dest, unsigned int count, unsigned int offset) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); + glGetBufferSubData(GL_SHADER_STORAGE_BUFFER, offset, count, dest); +#endif +} + +// Bind SSBO buffer +void rlBindShaderBuffer(unsigned int id, unsigned int index) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glBindBufferBase(GL_SHADER_STORAGE_BUFFER, index, id); +#endif +} + +// Copy SSBO buffer data +void rlCopyShaderBuffer(unsigned int destId, unsigned int srcId, unsigned int destOffset, unsigned int srcOffset, unsigned int count) +{ +#if defined(GRAPHICS_API_OPENGL_43) + glBindBuffer(GL_COPY_READ_BUFFER, srcId); + glBindBuffer(GL_COPY_WRITE_BUFFER, destId); + glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, srcOffset, destOffset, count); +#endif +} + +// Bind image texture +void rlBindImageTexture(unsigned int id, unsigned int index, int format, bool readonly) +{ +#if defined(GRAPHICS_API_OPENGL_43) + unsigned int glInternalFormat = 0, glFormat = 0, glType = 0; + + rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); + glBindImageTexture(index, id, 0, 0, 0, readonly? GL_READ_ONLY : GL_READ_WRITE, glInternalFormat); +#else + TRACELOG(RL_LOG_WARNING, "TEXTURE: Image texture binding not enabled. Define GRAPHICS_API_OPENGL_43"); +#endif +} + +// Matrix state management +//----------------------------------------------------------------------------------------- +// Get internal modelview matrix +Matrix rlGetMatrixModelview(void) +{ + Matrix matrix = rlMatrixIdentity(); +#if defined(GRAPHICS_API_OPENGL_11) + float mat[16]; + glGetFloatv(GL_MODELVIEW_MATRIX, mat); + matrix.m0 = mat[0]; + matrix.m1 = mat[1]; + matrix.m2 = mat[2]; + matrix.m3 = mat[3]; + matrix.m4 = mat[4]; + matrix.m5 = mat[5]; + matrix.m6 = mat[6]; + matrix.m7 = mat[7]; + matrix.m8 = mat[8]; + matrix.m9 = mat[9]; + matrix.m10 = mat[10]; + matrix.m11 = mat[11]; + matrix.m12 = mat[12]; + matrix.m13 = mat[13]; + matrix.m14 = mat[14]; + matrix.m15 = mat[15]; +#else + matrix = RLGL.State.modelview; +#endif + return matrix; +} + +// Get internal projection matrix +Matrix rlGetMatrixProjection(void) +{ +#if defined(GRAPHICS_API_OPENGL_11) + float mat[16]; + glGetFloatv(GL_PROJECTION_MATRIX,mat); + Matrix m; + m.m0 = mat[0]; + m.m1 = mat[1]; + m.m2 = mat[2]; + m.m3 = mat[3]; + m.m4 = mat[4]; + m.m5 = mat[5]; + m.m6 = mat[6]; + m.m7 = mat[7]; + m.m8 = mat[8]; + m.m9 = mat[9]; + m.m10 = mat[10]; + m.m11 = mat[11]; + m.m12 = mat[12]; + m.m13 = mat[13]; + m.m14 = mat[14]; + m.m15 = mat[15]; + return m; +#else + return RLGL.State.projection; +#endif +} + +// Get internal accumulated transform matrix +Matrix rlGetMatrixTransform(void) +{ + Matrix mat = rlMatrixIdentity(); +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + // TODO: Consider possible transform matrices in the RLGL.State.stack + // Is this the right order? or should we start with the first stored matrix instead of the last one? + //Matrix matStackTransform = rlMatrixIdentity(); + //for (int i = RLGL.State.stackCounter; i > 0; i--) matStackTransform = rlMatrixMultiply(RLGL.State.stack[i], matStackTransform); + mat = RLGL.State.transform; +#endif + return mat; +} + +// Get internal projection matrix for stereo render (selected eye) +Matrix rlGetMatrixProjectionStereo(int eye) +{ + Matrix mat = rlMatrixIdentity(); +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + mat = RLGL.State.projectionStereo[eye]; +#endif + return mat; +} + +// Get internal view offset matrix for stereo render (selected eye) +Matrix rlGetMatrixViewOffsetStereo(int eye) +{ + Matrix mat = rlMatrixIdentity(); +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + mat = RLGL.State.viewOffsetStereo[eye]; +#endif + return mat; +} + +// Set a custom modelview matrix (replaces internal modelview matrix) +void rlSetMatrixModelview(Matrix view) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.modelview = view; +#endif +} + +// Set a custom projection matrix (replaces internal projection matrix) +void rlSetMatrixProjection(Matrix projection) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.projection = projection; +#endif +} + +// Set eyes projection matrices for stereo rendering +void rlSetMatrixProjectionStereo(Matrix right, Matrix left) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.projectionStereo[0] = right; + RLGL.State.projectionStereo[1] = left; +#endif +} + +// Set eyes view offsets matrices for stereo rendering +void rlSetMatrixViewOffsetStereo(Matrix right, Matrix left) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + RLGL.State.viewOffsetStereo[0] = right; + RLGL.State.viewOffsetStereo[1] = left; +#endif +} + +// Load and draw a quad in NDC +void rlLoadDrawQuad(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + unsigned int quadVAO = 0; + unsigned int quadVBO = 0; + + float vertices[] = { + // Positions Texcoords + -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, + -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, + 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, + 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, + }; + + // Gen VAO to contain VBO + glGenVertexArrays(1, &quadVAO); + glBindVertexArray(quadVAO); + + // Gen and fill vertex buffer (VBO) + glGenBuffers(1, &quadVBO); + glBindBuffer(GL_ARRAY_BUFFER, quadVBO); + glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), &vertices, GL_STATIC_DRAW); + + // Bind vertex attributes (position, texcoords) + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, 3, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)0); // Positions + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, 2, GL_FLOAT, GL_FALSE, 5*sizeof(float), (void *)(3*sizeof(float))); // Texcoords + + // Draw quad + glBindVertexArray(quadVAO); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); + glBindVertexArray(0); + + // Delete buffers (VBO and VAO) + glDeleteBuffers(1, &quadVBO); + glDeleteVertexArrays(1, &quadVAO); +#endif +} + +// Load and draw a cube in NDC +void rlLoadDrawCube(void) +{ +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + unsigned int cubeVAO = 0; + unsigned int cubeVBO = 0; + + float vertices[] = { + // Positions Normals Texcoords + -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, + 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f, + 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f, + 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f, + -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, + -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f, + -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, + 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, + 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, + 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, + -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, + -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, + -1.0f, 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + -1.0f, 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 1.0f, + -1.0f, -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + -1.0f, -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + -1.0f, -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, + -1.0f, 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + 1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, + 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + 1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, + -1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, + 1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 1.0f, + 1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f, + 1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f, + -1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, + -1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, + -1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, + 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, + 1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, + 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, + -1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, + -1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f + }; + + // Gen VAO to contain VBO + glGenVertexArrays(1, &cubeVAO); + glBindVertexArray(cubeVAO); + + // Gen and fill vertex buffer (VBO) + glGenBuffers(1, &cubeVBO); + glBindBuffer(GL_ARRAY_BUFFER, cubeVBO); + glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); + + // Bind vertex attributes (position, normals, texcoords) + glBindVertexArray(cubeVAO); + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)0); // Positions + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(3*sizeof(float))); // Normals + glEnableVertexAttribArray(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD); + glVertexAttribPointer(RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD, 2, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void *)(6*sizeof(float))); // Texcoords + glBindBuffer(GL_ARRAY_BUFFER, 0); + glBindVertexArray(0); + + // Draw cube + glBindVertexArray(cubeVAO); + glDrawArrays(GL_TRIANGLES, 0, 36); + glBindVertexArray(0); + + // Delete VBO and VAO + glDeleteBuffers(1, &cubeVBO); + glDeleteVertexArrays(1, &cubeVAO); +#endif +} + +// Get name string for pixel format +const char *rlGetPixelFormatName(unsigned int format) +{ + switch (format) + { + case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: return "GRAYSCALE"; break; // 8 bit per pixel (no alpha) + case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: return "GRAY_ALPHA"; break; // 8*2 bpp (2 channels) + case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: return "R5G6B5"; break; // 16 bpp + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: return "R8G8B8"; break; // 24 bpp + case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: return "R5G5B5A1"; break; // 16 bpp (1 bit alpha) + case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: return "R4G4B4A4"; break; // 16 bpp (4 bit alpha) + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: return "R8G8B8A8"; break; // 32 bpp + case RL_PIXELFORMAT_UNCOMPRESSED_R32: return "R32"; break; // 32 bpp (1 channel - float) + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: return "R32G32B32"; break; // 32*3 bpp (3 channels - float) + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: return "R32G32B32A32"; break; // 32*4 bpp (4 channels - float) + case RL_PIXELFORMAT_UNCOMPRESSED_R16: return "R16"; break; // 16 bpp (1 channel - half float) + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: return "R16G16B16"; break; // 16*3 bpp (3 channels - half float) + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: return "R16G16B16A16"; break; // 16*4 bpp (4 channels - half float) + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: return "DXT1_RGB"; break; // 4 bpp (no alpha) + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: return "DXT1_RGBA"; break; // 4 bpp (1 bit alpha) + case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: return "DXT3_RGBA"; break; // 8 bpp + case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: return "DXT5_RGBA"; break; // 8 bpp + case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: return "ETC1_RGB"; break; // 4 bpp + case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: return "ETC2_RGB"; break; // 4 bpp + case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: return "ETC2_RGBA"; break; // 8 bpp + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: return "PVRT_RGB"; break; // 4 bpp + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: return "PVRT_RGBA"; break; // 4 bpp + case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: return "ASTC_4x4_RGBA"; break; // 8 bpp + case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: return "ASTC_8x8_RGBA"; break; // 2 bpp + default: return "UNKNOWN"; break; + } +} + +//---------------------------------------------------------------------------------- +// Module specific Functions Definition +//---------------------------------------------------------------------------------- +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) +// Load default shader (just vertex positioning and texture coloring) +// NOTE: This shader program is used for internal buffers +// NOTE: Loaded: RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs +static void rlLoadShaderDefault(void) +{ + RLGL.State.defaultShaderLocs = (int *)RL_CALLOC(RL_MAX_SHADER_LOCATIONS, sizeof(int)); + + // NOTE: All locations must be reseted to -1 (no location) + for (int i = 0; i < RL_MAX_SHADER_LOCATIONS; i++) RLGL.State.defaultShaderLocs[i] = -1; + + // Vertex shader directly defined, no external file required + const char *defaultVShaderCode = +#if defined(GRAPHICS_API_OPENGL_21) + "#version 120 \n" + "attribute vec3 vertexPosition; \n" + "attribute vec2 vertexTexCoord; \n" + "attribute vec4 vertexColor; \n" + "varying vec2 fragTexCoord; \n" + "varying vec4 fragColor; \n" +#elif defined(GRAPHICS_API_OPENGL_33) + "#version 330 \n" + "in vec3 vertexPosition; \n" + "in vec2 vertexTexCoord; \n" + "in vec4 vertexColor; \n" + "out vec2 fragTexCoord; \n" + "out vec4 fragColor; \n" +#endif + +#if defined(GRAPHICS_API_OPENGL_ES3) + "#version 300 es \n" + "precision mediump float; \n" // Precision required for OpenGL ES3 (WebGL 2) (on some browsers) + "in vec3 vertexPosition; \n" + "in vec2 vertexTexCoord; \n" + "in vec4 vertexColor; \n" + "out vec2 fragTexCoord; \n" + "out vec4 fragColor; \n" +#elif defined(GRAPHICS_API_OPENGL_ES2) + "#version 100 \n" + "precision mediump float; \n" // Precision required for OpenGL ES2 (WebGL) (on some browsers) + "attribute vec3 vertexPosition; \n" + "attribute vec2 vertexTexCoord; \n" + "attribute vec4 vertexColor; \n" + "varying vec2 fragTexCoord; \n" + "varying vec4 fragColor; \n" +#endif + + "uniform mat4 mvp; \n" + "void main() \n" + "{ \n" + " fragTexCoord = vertexTexCoord; \n" + " fragColor = vertexColor; \n" + " gl_Position = mvp*vec4(vertexPosition, 1.0); \n" + "} \n"; + + // Fragment shader directly defined, no external file required + const char *defaultFShaderCode = +#if defined(GRAPHICS_API_OPENGL_21) + "#version 120 \n" + "varying vec2 fragTexCoord; \n" + "varying vec4 fragColor; \n" + "uniform sampler2D texture0; \n" + "uniform vec4 colDiffuse; \n" + "void main() \n" + "{ \n" + " vec4 texelColor = texture2D(texture0, fragTexCoord); \n" + " gl_FragColor = texelColor*colDiffuse*fragColor; \n" + "} \n"; +#elif defined(GRAPHICS_API_OPENGL_33) + "#version 330 \n" + "in vec2 fragTexCoord; \n" + "in vec4 fragColor; \n" + "out vec4 finalColor; \n" + "uniform sampler2D texture0; \n" + "uniform vec4 colDiffuse; \n" + "void main() \n" + "{ \n" + " vec4 texelColor = texture(texture0, fragTexCoord); \n" + " finalColor = texelColor*colDiffuse*fragColor; \n" + "} \n"; +#endif + +#if defined(GRAPHICS_API_OPENGL_ES3) + "#version 300 es \n" + "precision mediump float; \n" // Precision required for OpenGL ES3 (WebGL 2) + "in vec2 fragTexCoord; \n" + "in vec4 fragColor; \n" + "out vec4 finalColor; \n" + "uniform sampler2D texture0; \n" + "uniform vec4 colDiffuse; \n" + "void main() \n" + "{ \n" + " vec4 texelColor = texture(texture0, fragTexCoord); \n" + " finalColor = texelColor*colDiffuse*fragColor; \n" + "} \n"; +#elif defined(GRAPHICS_API_OPENGL_ES2) + "#version 100 \n" + "precision mediump float; \n" // Precision required for OpenGL ES2 (WebGL) + "varying vec2 fragTexCoord; \n" + "varying vec4 fragColor; \n" + "uniform sampler2D texture0; \n" + "uniform vec4 colDiffuse; \n" + "void main() \n" + "{ \n" + " vec4 texelColor = texture2D(texture0, fragTexCoord); \n" + " gl_FragColor = texelColor*colDiffuse*fragColor; \n" + "} \n"; +#endif + + // NOTE: Compiled vertex/fragment shaders are not deleted, + // they are kept for re-use as default shaders in case some shader loading fails + RLGL.State.defaultVShaderId = rlCompileShader(defaultVShaderCode, GL_VERTEX_SHADER); // Compile default vertex shader + RLGL.State.defaultFShaderId = rlCompileShader(defaultFShaderCode, GL_FRAGMENT_SHADER); // Compile default fragment shader + + RLGL.State.defaultShaderId = rlLoadShaderProgram(RLGL.State.defaultVShaderId, RLGL.State.defaultFShaderId); + + if (RLGL.State.defaultShaderId > 0) + { + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Default shader loaded successfully", RLGL.State.defaultShaderId); + + // Set default shader locations: attributes locations + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_POSITION] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_TEXCOORD01] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_VERTEX_COLOR] = glGetAttribLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR); + + // Set default shader locations: uniform locations + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MATRIX_MVP] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_UNIFORM_NAME_MVP); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_COLOR_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR); + RLGL.State.defaultShaderLocs[RL_SHADER_LOC_MAP_DIFFUSE] = glGetUniformLocation(RLGL.State.defaultShaderId, RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0); + } + else TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to load default shader", RLGL.State.defaultShaderId); +} + +// Unload default shader +// NOTE: Unloads: RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs +static void rlUnloadShaderDefault(void) +{ + glUseProgram(0); + + glDetachShader(RLGL.State.defaultShaderId, RLGL.State.defaultVShaderId); + glDetachShader(RLGL.State.defaultShaderId, RLGL.State.defaultFShaderId); + glDeleteShader(RLGL.State.defaultVShaderId); + glDeleteShader(RLGL.State.defaultFShaderId); + + glDeleteProgram(RLGL.State.defaultShaderId); + + RL_FREE(RLGL.State.defaultShaderLocs); + + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Default shader unloaded successfully", RLGL.State.defaultShaderId); +} + +#if defined(RLGL_SHOW_GL_DETAILS_INFO) +// Get compressed format official GL identifier name +static const char *rlGetCompressedFormatName(int format) +{ + switch (format) + { + // GL_EXT_texture_compression_s3tc + case 0x83F0: return "GL_COMPRESSED_RGB_S3TC_DXT1_EXT"; break; + case 0x83F1: return "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT"; break; + case 0x83F2: return "GL_COMPRESSED_RGBA_S3TC_DXT3_EXT"; break; + case 0x83F3: return "GL_COMPRESSED_RGBA_S3TC_DXT5_EXT"; break; + // GL_3DFX_texture_compression_FXT1 + case 0x86B0: return "GL_COMPRESSED_RGB_FXT1_3DFX"; break; + case 0x86B1: return "GL_COMPRESSED_RGBA_FXT1_3DFX"; break; + // GL_IMG_texture_compression_pvrtc + case 0x8C00: return "GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG"; break; + case 0x8C01: return "GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG"; break; + case 0x8C02: return "GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG"; break; + case 0x8C03: return "GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG"; break; + // GL_OES_compressed_ETC1_RGB8_texture + case 0x8D64: return "GL_ETC1_RGB8_OES"; break; + // GL_ARB_texture_compression_rgtc + case 0x8DBB: return "GL_COMPRESSED_RED_RGTC1"; break; + case 0x8DBC: return "GL_COMPRESSED_SIGNED_RED_RGTC1"; break; + case 0x8DBD: return "GL_COMPRESSED_RG_RGTC2"; break; + case 0x8DBE: return "GL_COMPRESSED_SIGNED_RG_RGTC2"; break; + // GL_ARB_texture_compression_bptc + case 0x8E8C: return "GL_COMPRESSED_RGBA_BPTC_UNORM_ARB"; break; + case 0x8E8D: return "GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB"; break; + case 0x8E8E: return "GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB"; break; + case 0x8E8F: return "GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB"; break; + // GL_ARB_ES3_compatibility + case 0x9274: return "GL_COMPRESSED_RGB8_ETC2"; break; + case 0x9275: return "GL_COMPRESSED_SRGB8_ETC2"; break; + case 0x9276: return "GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"; break; + case 0x9277: return "GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"; break; + case 0x9278: return "GL_COMPRESSED_RGBA8_ETC2_EAC"; break; + case 0x9279: return "GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"; break; + case 0x9270: return "GL_COMPRESSED_R11_EAC"; break; + case 0x9271: return "GL_COMPRESSED_SIGNED_R11_EAC"; break; + case 0x9272: return "GL_COMPRESSED_RG11_EAC"; break; + case 0x9273: return "GL_COMPRESSED_SIGNED_RG11_EAC"; break; + // GL_KHR_texture_compression_astc_hdr + case 0x93B0: return "GL_COMPRESSED_RGBA_ASTC_4x4_KHR"; break; + case 0x93B1: return "GL_COMPRESSED_RGBA_ASTC_5x4_KHR"; break; + case 0x93B2: return "GL_COMPRESSED_RGBA_ASTC_5x5_KHR"; break; + case 0x93B3: return "GL_COMPRESSED_RGBA_ASTC_6x5_KHR"; break; + case 0x93B4: return "GL_COMPRESSED_RGBA_ASTC_6x6_KHR"; break; + case 0x93B5: return "GL_COMPRESSED_RGBA_ASTC_8x5_KHR"; break; + case 0x93B6: return "GL_COMPRESSED_RGBA_ASTC_8x6_KHR"; break; + case 0x93B7: return "GL_COMPRESSED_RGBA_ASTC_8x8_KHR"; break; + case 0x93B8: return "GL_COMPRESSED_RGBA_ASTC_10x5_KHR"; break; + case 0x93B9: return "GL_COMPRESSED_RGBA_ASTC_10x6_KHR"; break; + case 0x93BA: return "GL_COMPRESSED_RGBA_ASTC_10x8_KHR"; break; + case 0x93BB: return "GL_COMPRESSED_RGBA_ASTC_10x10_KHR"; break; + case 0x93BC: return "GL_COMPRESSED_RGBA_ASTC_12x10_KHR"; break; + case 0x93BD: return "GL_COMPRESSED_RGBA_ASTC_12x12_KHR"; break; + case 0x93D0: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"; break; + case 0x93D1: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"; break; + case 0x93D2: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"; break; + case 0x93D3: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"; break; + case 0x93D4: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"; break; + case 0x93D5: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"; break; + case 0x93D6: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"; break; + case 0x93D7: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"; break; + case 0x93D8: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"; break; + case 0x93D9: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"; break; + case 0x93DA: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"; break; + case 0x93DB: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"; break; + case 0x93DC: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"; break; + case 0x93DD: return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"; break; + default: return "GL_COMPRESSED_UNKNOWN"; break; + } +} +#endif // RLGL_SHOW_GL_DETAILS_INFO + +#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 + +// Get pixel data size in bytes (image or texture) +// NOTE: Size depends on pixel format +static int rlGetPixelDataSize(int width, int height, int format) +{ + int dataSize = 0; // Size in bytes + int bpp = 0; // Bits per pixel + + switch (format) + { + case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: bpp = 8; break; + case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: + case RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5: + case RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: + case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: bpp = 16; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: bpp = 32; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8: bpp = 24; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32: bpp = 32; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: bpp = 32*3; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: bpp = 32*4; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16: bpp = 16; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: bpp = 16*3; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: bpp = 16*4; break; + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: + case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: + case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: + case RL_PIXELFORMAT_COMPRESSED_ETC2_RGB: + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGB: + case RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA: bpp = 4; break; + case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: + case RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA: + case RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: + case RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: bpp = 8; break; + case RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: bpp = 2; break; + default: break; + } + + double bytesPerPixel = (double)bpp/8.0; + dataSize = (int)(bytesPerPixel*width*height); // Total data size in bytes + + // Most compressed formats works on 4x4 blocks, + // if texture is smaller, minimum dataSize is 8 or 16 + if ((width < 4) && (height < 4)) + { + if ((format >= RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) && (format < RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA)) dataSize = 8; + else if ((format >= RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA) && (format < RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA)) dataSize = 16; + } + + return dataSize; +} + +// Auxiliar math functions + +// Get float array of matrix data +static rl_float16 rlMatrixToFloatV(Matrix mat) +{ + rl_float16 result = { 0 }; + + result.v[0] = mat.m0; + result.v[1] = mat.m1; + result.v[2] = mat.m2; + result.v[3] = mat.m3; + result.v[4] = mat.m4; + result.v[5] = mat.m5; + result.v[6] = mat.m6; + result.v[7] = mat.m7; + result.v[8] = mat.m8; + result.v[9] = mat.m9; + result.v[10] = mat.m10; + result.v[11] = mat.m11; + result.v[12] = mat.m12; + result.v[13] = mat.m13; + result.v[14] = mat.m14; + result.v[15] = mat.m15; + + return result; +} + +// Get identity matrix +static Matrix rlMatrixIdentity(void) +{ + Matrix result = { + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + }; + + return result; +} + +// Get two matrix multiplication +// NOTE: When multiplying matrices... the order matters! +static Matrix rlMatrixMultiply(Matrix left, Matrix right) +{ + Matrix result = { 0 }; + + result.m0 = left.m0*right.m0 + left.m1*right.m4 + left.m2*right.m8 + left.m3*right.m12; + result.m1 = left.m0*right.m1 + left.m1*right.m5 + left.m2*right.m9 + left.m3*right.m13; + result.m2 = left.m0*right.m2 + left.m1*right.m6 + left.m2*right.m10 + left.m3*right.m14; + result.m3 = left.m0*right.m3 + left.m1*right.m7 + left.m2*right.m11 + left.m3*right.m15; + result.m4 = left.m4*right.m0 + left.m5*right.m4 + left.m6*right.m8 + left.m7*right.m12; + result.m5 = left.m4*right.m1 + left.m5*right.m5 + left.m6*right.m9 + left.m7*right.m13; + result.m6 = left.m4*right.m2 + left.m5*right.m6 + left.m6*right.m10 + left.m7*right.m14; + result.m7 = left.m4*right.m3 + left.m5*right.m7 + left.m6*right.m11 + left.m7*right.m15; + result.m8 = left.m8*right.m0 + left.m9*right.m4 + left.m10*right.m8 + left.m11*right.m12; + result.m9 = left.m8*right.m1 + left.m9*right.m5 + left.m10*right.m9 + left.m11*right.m13; + result.m10 = left.m8*right.m2 + left.m9*right.m6 + left.m10*right.m10 + left.m11*right.m14; + result.m11 = left.m8*right.m3 + left.m9*right.m7 + left.m10*right.m11 + left.m11*right.m15; + result.m12 = left.m12*right.m0 + left.m13*right.m4 + left.m14*right.m8 + left.m15*right.m12; + result.m13 = left.m12*right.m1 + left.m13*right.m5 + left.m14*right.m9 + left.m15*right.m13; + result.m14 = left.m12*right.m2 + left.m13*right.m6 + left.m14*right.m10 + left.m15*right.m14; + result.m15 = left.m12*right.m3 + left.m13*right.m7 + left.m14*right.m11 + left.m15*right.m15; + + return result; +} + +// Transposes provided matrix +static Matrix rlMatrixTranspose(Matrix mat) +{ + Matrix result = { 0 }; + + result.m0 = mat.m0; + result.m1 = mat.m4; + result.m2 = mat.m8; + result.m3 = mat.m12; + result.m4 = mat.m1; + result.m5 = mat.m5; + result.m6 = mat.m9; + result.m7 = mat.m13; + result.m8 = mat.m2; + result.m9 = mat.m6; + result.m10 = mat.m10; + result.m11 = mat.m14; + result.m12 = mat.m3; + result.m13 = mat.m7; + result.m14 = mat.m11; + result.m15 = mat.m15; + + return result; +} + +// Invert provided matrix +static Matrix rlMatrixInvert(Matrix mat) +{ + Matrix result = { 0 }; + + // Cache the matrix values (speed optimization) + float a00 = mat.m0, a01 = mat.m1, a02 = mat.m2, a03 = mat.m3; + float a10 = mat.m4, a11 = mat.m5, a12 = mat.m6, a13 = mat.m7; + float a20 = mat.m8, a21 = mat.m9, a22 = mat.m10, a23 = mat.m11; + float a30 = mat.m12, a31 = mat.m13, a32 = mat.m14, a33 = mat.m15; + + float b00 = a00*a11 - a01*a10; + float b01 = a00*a12 - a02*a10; + float b02 = a00*a13 - a03*a10; + float b03 = a01*a12 - a02*a11; + float b04 = a01*a13 - a03*a11; + float b05 = a02*a13 - a03*a12; + float b06 = a20*a31 - a21*a30; + float b07 = a20*a32 - a22*a30; + float b08 = a20*a33 - a23*a30; + float b09 = a21*a32 - a22*a31; + float b10 = a21*a33 - a23*a31; + float b11 = a22*a33 - a23*a32; + + // Calculate the invert determinant (inlined to avoid double-caching) + float invDet = 1.0f/(b00*b11 - b01*b10 + b02*b09 + b03*b08 - b04*b07 + b05*b06); + + result.m0 = (a11*b11 - a12*b10 + a13*b09)*invDet; + result.m1 = (-a01*b11 + a02*b10 - a03*b09)*invDet; + result.m2 = (a31*b05 - a32*b04 + a33*b03)*invDet; + result.m3 = (-a21*b05 + a22*b04 - a23*b03)*invDet; + result.m4 = (-a10*b11 + a12*b08 - a13*b07)*invDet; + result.m5 = (a00*b11 - a02*b08 + a03*b07)*invDet; + result.m6 = (-a30*b05 + a32*b02 - a33*b01)*invDet; + result.m7 = (a20*b05 - a22*b02 + a23*b01)*invDet; + result.m8 = (a10*b10 - a11*b08 + a13*b06)*invDet; + result.m9 = (-a00*b10 + a01*b08 - a03*b06)*invDet; + result.m10 = (a30*b04 - a31*b02 + a33*b00)*invDet; + result.m11 = (-a20*b04 + a21*b02 - a23*b00)*invDet; + result.m12 = (-a10*b09 + a11*b07 - a12*b06)*invDet; + result.m13 = (a00*b09 - a01*b07 + a02*b06)*invDet; + result.m14 = (-a30*b03 + a31*b01 - a32*b00)*invDet; + result.m15 = (a20*b03 - a21*b01 + a22*b00)*invDet; + + return result; +} + +#endif // RLGL_IMPLEMENTATION diff --git a/lib/raylib_win_arm64/lib/libraylib.a b/lib/raylib_win_arm64/lib/libraylib.a index 18b0777031590fd4e9187527731c6621db775b21..da396392cb18864ab3bc031e1c7aab7e55803d76 100644 GIT binary patch literal 2154454 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

Zgi}m%ILATba&7?sD?W55cPfMDjbh&!i9Z3 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
`}>X@*%ReHyk9lSLaq7@&+m9XsQ#ee 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%0Ata-?pU@xlk#5TeN>CO1p@; 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

qS;SrhZH4DD|_J>gr;V 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%0A;p72-b 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�y<|fg5QgkF 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/O( zFy)%@u_B;4=iDjRq)oj@Fq*)TMH`B#qlEI@I92E^lo=6?C-FnPdhgSX25TWJ z6|c02cjR^Qu{MT%Z6nH4%(s&5%EvrgtMagqXMOkej6q=2o}RLqi^#XP(9LIX)`@(K zciwF+8ny%Zdp+_yI08BST%)-o1?T8c=Jn`cHyY1X7CzV5f!?*}-sfCfnD3=Kg_~%1 zFkDlH%v_NYGTt50WpF>*B<7jTPkU8OwO}??AFamj$ew$v2zp@Hps=eExNb;6`WezXzuNYhco~$v1+>FFQh>{%i8|Uz6t_ zh|d*0Mxe(-H7<=!bm%cc+%&P$=x+`!GLD#&%F{R!ttp1i9UsKh(U**qNG)`xZ=Lu= z<$)fRC&4q${i;8B8|%OrH^ij0uuom2lKd(w20iZjZH_Z81V^?vE>ht*d0gyt=v^=z z^k9}PHwQR$ZlK_G$Az2E9~XjS-}s%4PCLji9;vu+?a`%gd|1|Wj{H(s`f+map9zlZ zT{!$P?Za`+e_CG($NvaUP6JE9zfJg3SWbzPMLy4R`-U?q{@ZoSdd_e(>uVQ#c=DWEK2ZW4Y)2YZArc1B_M4iwby&?t7+Oo6!AS_=)bF zckq*H#9DI%ZC0tk7&o!eiixs>y_}8{%iP(uIKR0+`NJE=aR>- zYc6>bp32v|&%Z9==;nMQzAxUF%G-AUXM}ep)L9LjJ(C9b z`CRg5^3LJ)z|emU47&bPdHV~mjdWps2|oTBeEr|y_0RD$0KPvrem`rQFy&lmSUPvtNcf?z=htxF z+7@>%;5z0V%zfwz_UgtmOD?1tsqe**gX0r9=QAzs^;@LlFNZRic^N9W1^5dz6(ZY)h zqpwVz5WR2e*l6hDvC*q8o)GoxXs8<(eHhuT@*alXZ@MgKh1gR<@5}1O6O#`d)caCa zn)R+ZA^L=wYdLwLxv%GjtjltP)?XRpqxZ9)!`}^=U-1jpfc}_03VxiHX8kSy%SrE% z%1AT6JHy7`+PViF-jrTWd|W0vzij$M;H>k)G1g9FW1F-wbB$~R_nc?P$ESWlr!N|2 zJhyqs@Otg}ES=to*9!#e)fao4lP!CRN0WWA8T&&1$;iCS#+6(j!k<@}p0t;NANkg9 zreAN7{(&w1`ifP%c4B|L?%=e!@uj?^{WAGx6^)CAipECIE;>8jd8=SbsBNX~3rold#(jm~86rcL1V$*gp%8vNY| z{+fr(shA1=UNOf;Ur7sDFY$jLsf_d_DUCBD+2^~}gjQt#`+JgkHg-!L`yV>j)8Lz& zJKxJ)zo#wQyJ|S?$!A{6@$d5t+p)ov{er)( z5L%TCk-da%fMfqmE_7bm?-G_};99Xhz3AEjg%@~`N ze8I%8{V>;NA{GU=?+38`zE9r0!6nWdUkqERjX6B!`!zALife5P8m+T0VQz5T^Npj% zV4Do19_(euHW`y@n~ZKYhZ)#9#&e2~)c)neuqRCNw_Q%%`1lOyavOF0658y-b`ejw z{-_tLwgNtbpGWx6xp4X5WCS=F&KT|u4s+%l+Bp+BQBsyrpU30RHO1YJD!x@n8~wBJ4E8=W ztDqO=blJP0cQfY{%t&)%HNv&fHussw;e(v#`vmZ6d?n6qZcM-*mf)KT^2`Eno4~Wa zqkr%f2aAb2zi=41s=`ktyt1EdbLv@l;-})HACgyRo14tJ_+y{>onm4m*#}WEy2F}7 z?87b?tDJrQSbso&RL6{l*&8@ZoG}>zZpA~%Zm8I8?egzU<}I-+TPj{Qc18G}7(T~_ zl>a~MvH#a^MhIcF|s(+Z6vTWv! z*psiBGc%gM&0O{Cz;Og$z|rZ+MD9>{G<&k@xt{HuY&0BYO~H|Hvc-9q>Ad6o+?<}V zj2WFzARdxQJ&7Xrj;5Xj`B!}0cj3QzwD}YM`(_3?4$H3O8m)YdI3HLcP_oM%;?>E zrrRbnqo6-dFv(sj#5@*Hh3+>mB<>74D0yamf|!H%6ZCh*Gcyu%!1q#MR=L%{t^J0~ z1UwnoOyFtG+&6mm+u~G?phnt8~&*b$9 z`(UQM85d;z=sOGNUGeBb`9)V|ZNGKZ`%m2(%>7Dq6a4*G zo4>d4DgFJ@@v(jSIh}{D1Skg?10m zkN*7DTy%+NdDcLx249EJH6-uqX+QF_L4Kk`=pKrZ6tB{l)1Lh5->wPet9sX60li!f z-OOT7jmw&#BWF*j8sL^plRWF;jKMPIc5h}cok=8Uv!;@<{0;i$_0p#ss~J~E_<#G_ zr2Q|*vk(6wY4`F!pJ&p=rd={M`q;%6MnAduqUi9&!>#;lMp`2(M_K>ptA_m!^6N0? zT}%ddZ`^BcBBcQXIsqQYo(z-YO0x?5)cbxHezzf9UD`+r?} zW2rr+y42p4c|r7=<)f^BSvJzTXZe}dn&p>T+sDSD1y@dwo|ThkSy!B4oi*kxOTU6E zEo%mQg#AZkdUV(FsPz|fZ2u@(HxQn9GW{$8f;{UPCi=xky3b_85 z{|{;J@oNKi6XR919$^gX48C7MPalV}izh-;zlNrELQj7;eSPAm;Kb2K7VK#Jr_!K9 zPppT@dl8=*eu>5N7hG8XYj6A&EgS!07yF1$4#1BF${=q_8QOo;Kkq|y zCYgDo)6Q^l7XQZniwEIr2s0 zXD@hhlr}7&s?r_du)%QB@vQp1f?wo;g#Y_A;Dz6*3u3F~R z_YbG2k7sUu?D_83NB%F=r)Pq_+AHhTl(LY)4(vR0%G#4s7WuzWmY%7sTbVcFJou`A zgO4DKe0{?N4|Rq4__DlwyjQt`Py2c6JG~cAE8^@P-EZbzvU&E2z6%snI}&-Oa{PDn zxpRiN@+e+B2u=BA7%T2N-gctT=^OQRCFMErErd6tCsY+Cr|k{qPN{kv-iR!A;3Ou& zX*189HZODG(;ib*d^fnwpR6l`Ms()wOWUi;^`~TP#mgzHjhyni)wE&l__~I z7^DL@xXN_r$13EXKLfl$GY^9I9d}o)d5C+-hZ=OBO6p*~yA^w?HHO|?3GbI*Hi4|I z$*e{HkMz{QJAB=tHt4psHq-m3EY(*#!u@w-)3D^{u1@&UcHRx|o0*P&lLdWbBd>5WqkfI>$|W8nklHyTql|yGe>?qPKnJ=mC$H9;YTh(L9qQMjbw$L7qBlp>U*Vp5beFDB z7#EN6NHKO-fPKiB&zzRYJ@b~2Ea$A=*&)f2QO#w%pH0lT%3j3xRYQhFjC=0=j_#{| zzy7V`4t=?{`+96%t*;YJ>3g51deAK=uB%$}@VI97VwmW_BD-WOv{eahZH2Zfp{=dp zpprJ%(B=)aHAxw&XEFBPH6f$-J41#?D(_wI)J;2kw@{zzub`c(n>C)CSys@z;*~9< z=Z;IR0k5kM-o0|oO7`BDF6-MF<+MX>>tGGdH4*j?@^I&`_xlum`Dd(GO2zA^)U(|i zGd=XD+E(S^waFO=E?$i{9#|L$XMSI(A4=fab7+g~mk9oWhv1#r=P_rEE}*$z*)q~y z)i-UlC3*jPyKKXf7p^jiWW7Y?9YbwFdInd3}e<@jW6rR0E z{f^x$Jk+CaUqyW%Uma-Td|%nI#RnDz8#o8M;p0ugh6d^nQ2)Qq3%oI{XM98ZkzmvB zIlo2wTzpzHvq|sUM<#neyqYsS$#--tuzTN&295x4E^9yf0>gSZG7TGNMD8!cP# zCD_E}fLqQfCUy(lZGZwlKb9@@YiS6KhL=ZXQr{PfqVxhMH1Z);KK$FieEi&J?EF+m2CNp z*e&$T2J9r(IcL@Uh`6yBFHpgeMU@|=4y}MWwc~Nf1;-Y54b*rfFvK9fTIU(DB8~lDn6@AYPUfZ}WJW zD=@rf8*6-hzUK0wG4P>L%>z8h#a+3_^H{jy#K2Tw6CekAKf#YB9J(;O=YG#) zy~?~%zz!_)Ipbk&*jTHx(&kczXsCvF>icTiypsJ7Zcb0Gy(OGnyNY(+yzb^TD;d8p z28P!BZQk6we?dypwkx6IzCd=(D&p+=c$ZB)Zy#kmjs0dU2s~oc7B!U4HIBw7j&JDv zPnX}tjM)DXe1feUpWOG*@t=h^-hrI(^#k!I=^(Cb8i`M5cylJa8h_RM)$6L)6!-IL z;e~UCJ-sDJzkC=PgD&IhHa@QoB3~s7ldP{V#ZOqqo-nDrw+DJIXABBwsj{{W-n14t8x!NmHhnR&ljPCEM&jR1*=ZfYro2?&{3{LSDBB_G7p`0F1B^LV_R>X zA2@3Ke-rv~v+SJ#+_YZ_-i{8udm;sIl~)DcFs2URbWiHLD|xpo<-7koP-fpITaWi_{ zE$NZ^`f1ILJ4r{-FTb%NY2O50|0#L@Wz|b^L{sV9Qw;R_IkyS zJ@xG9OZ=x@e0KD8^3SS^MQ^N|5Iwi0J+2;W7@8Hq5Q1^ZC=pb_++qi#ydUK=dx}Q4F zt)pD(Dx=PhWSUc_eEwxc_@Hz zoi|X{@LbJygwm^^bIK3wiM><2fE! zZ%ZyoCdGj@&VQ_p*mQK(Z$bMe|MSGF&^zPV>+Q426ENe^5OWNM3BI#u*fIE)&g+Vy z%XVcLEeA4OeNXit$bd#NsF!lG8T*IHcOr-R0(cR$=brJHV;w)iHxB)wi);Ky z9iME>(`V5Mdfy5ipHdYZ8{Hf%j4EDGdc};;uo}e(w!{DBE7W{M`xv8jabMpQ;vkEY zJd=Ldz8rYjYt>n!06%KC*o&VtOWPkPwUKdoo$N<%g+|v@lBY7mu$M*HE1$mU0;ke7 z9lg<;Yuq{lSc1o=R07KeU=bY%77IBn8fXV+L41~F^lPUFi+Efi&&2bI(XJ^&K6U~_ zXUQC(r}$rLanO{0w#of~i5SFImww;fhtCuDhJRokbsCMqkf_&z3dO_b$yXa?e-p$}v7S z*#Eo^dJ+8v*pCbvXf}$ljoKLd=F+Iio+`41MFX|WBlTYoFepd{pd`pTl<0*@o%!Ps2MP(lyluio^){cB<=iL z#^)30wVE$;@&$~A-F%~Od-zv=?MYfg>Kaz(JfB0J8j{Ao&g#^6Gr8^=RzLdd{QGUH zpubd4s{9z-M-1x4vGn!!x4`pF>Tmk~Dz4ki@zDvRX4vN<7ut;sro(c-AX9eIS6kIr zqt@FKJee|t?+oGw;(RNa@~+=k^igL{z?uO12JY23PeBrZNeikt8eQW5+lOp-4~Wo9P%_pXzS;YxUn|1O;JPUD%q zZ~FO9C47hTq(1MOz_@l~;>_a?Oewt0Eb#n&l;h}fp07f>ob+goP4)2(`rAkpMbQx) zI<7~jJBY5V^>xw@q(7|U8__oFo3ID6YclEod7K+JpY!6bLjSu3olo&5eymA+bkZ)w z7XC$k(*7mm;VAl^VomNt2Z~=DkN$Y-_~>$YSSKmt;_=aM)SVsuE&5hjGGIMf5VGQR zhkU6Qh>HA9BQiW_1 zj&DaE4d&6uJiX(8k{*yPcDd*w-=&Aaw2*)f#KZmm{&Um93EJqlPrQAGcs%DEiD!xC zcknM+BK}jywdj=pM*^c*XB}G_eNE4N8Gzm)T%JJp5}hUI7(X@69yegCOdhZ+jCsaU z45qJ88^J3a%24_6kR5B|o3Txg;7l@gj6kWbhxtmte0*H!Oer7$$zB6d7IV zjTs-m&iK-}nN-F(H>VyqjEjC*_!=}0JjKErdPzSnuq}x-80PDik5x05=IJ`k)%RwO zc@6z&&OPaiq;pBGN#`-phZ6Wob^fJ&Pf4TVh%~OG<0RNWOY{9(u<>irXQZE(Av=ef zoDoS`uLrX0-(al0360}FTm1&~|K@IM&FhSTQu1lvaaVu#cvOlmax7=e0FMIS2d9KM zLo3a}yBRbd$&7ovN<2z+K|Lzi)`!}NoAmT-8^Zg?3q5Xg;3Bk+13uiE!NyJ%wn zeSmrDws>_^GC0ojNt8Q|_Gg-t99}n+_bSIQi=&l+Y%7)LX$<(~8YZ;K_Yq+5pGD|n z!{e7mT?sLB7eteRfRzO<4Z&Ab9o62kZuyhGP`>gTz$O0amnnGl%oz*7s&j_I-1pbR z`Cj6^hi6;{{$_GcQY!t-a>hd$d)fsHh;Ko6s%P9FOM4S(fr$BXqTZyhId5i7CjD2& z`!M~NN&lH%|7kp(ZmepIYOL1qFT884mOIz@`MLhGF&euP{q2zf+ke@G17kF{z<9&> z!GOOdHyNv(bC@_+upHWPWE}iFkP9C#K{g48ilZSduZ`&bex}rIk(}Wz%QvA>;F{-hF!{xW#pozeIOT5<4n|YctA}QZhhAW}1`Brwy zcY)kh(8|*2wy+(|5}l=+)`mbJj|9L7N$Sr~-Iw?g~xR?M=4v~&N=`vL@+fYtg6HNQc31vyQ!DuOmrct49uLo#0m&8E-t_ zoM`wN|L^=;qG9A>wIa)>v8aMvUSkh%A;h-{O_eACG zP>h$C&(EXxNw2Ijr>v3vc}`W9;N&d$ylLnO*O9ic9&!h|nsiOUy@PY96vK7LV&kXJ zUsT*+Mv`m8q2yZCpP7+dD_A8f3rS;1XOm`;E+<_U1iXdGx%3G0r}) zHTBpOKVp2SuDh{QE3hH8r-6^B5#Z;YKM_ACw|@Xfr)xj)qW$gfW9{w^d|v(SXU)6X z|JAP=N1y*Y+E3fVwA*PvxKR6vf6NP!)b?>CzwPRa!R?KpCsfkjPlp)Ky@qT}ZL3cc ze@_-?ptNCSIT{2=u@HSTEy zK7k^VtHUvO3UA=7tVq|8k&%4-i+=nCyt8)&zP<;s&+7Q!0FQ_TiW_Cy1-%%KyE2WI zI{cQaZ zfv^<_nEiUi|6;N z%!TtmcWQBTS-2#cK##8tXITe-V%P_;Q{%MB*OOjB?xpHS(yKP`?J`n~)KPEPvTYq3 z0QwWI&_j`{!{q;e>}~ciZexyK?c9T3V$&Jm4w&xe+F!e&bsU?{Fzox$BOW70LGbGP zgFn9ldbylAyjiPGl&}{-&1KNjOz5f%zjA4RY^<+G2+ozv$!K5T)Ms~k z#=7Xux8K5|JdGtKetj&;cjlQ(QeY79EdnbS`HUOWvIqE{rbX-D2Kd zh`#te{&&*_PbBlK{d*@{f7>?Mx*?cned}v^*6+&mtViCNY_)N}gRxfy50US3_$=3V znUAmLQO?GFmh>j+JkHczGHMb<6W{+e7 zyrqk|TjmE_W&oRb_@A@rFP`oDh8+6_ z+NlIbq9O4z=btt@|L{Nkr}_oChv)MgUsp`$t4c4#A06Y&Sm}j|FN<+DY>Y9cxHH9? zNmnr!uuh0^6vwubpUogXK=xgX*fFOJVgrmA_7nGUv($FVl3&u#LwW8u@Dt+CbdI^| zH=OUV8;L~|38XZVi|1G)&HKO;7HuBQD7C$E6uNjU2a(Fl8ht1D&op zmR`2Aa8%oL$%bHo$_eg_@tr~b!a(WH1nXUbX6^LwRK+MVrn76OpX`fu=MhhWn>zd9 zj-Cqc%XbE+0rynZ$GNiUmr-9DaL)qn^qqk~+0KB@pAFCCKE!>Jd*Bb3?yMu`*lCYR zJIAMZ1#VkxqbU)g!a+Ev-ex4b0$ z5}ujOGtRNd8pZ!v#@a~SSZmHU8pQ8Y>FjiUwHF%dZ*%xmZ7$szjuZ13qu=NwwaKJ^ z)fT61$U)Kc>DrR5_8@bCzoka)+08!Q#NY3rEdk`k7hv@K(W(9Nmr`;LbRC2)g3yI)qQh|_;W_7F3_Jcv#c zYC192=p9XL@3m>{W0Nte2AR9~n$W0-+M=~mtc8iNUaHxTZPH#Qcf!*&*Dbx#vH$1; zo=2K^UYs#1Qct@I*OxT5zgkou-&gGDbpBePwdiYiG43zQ7#?AtHe#k+y{;%@RQ*zT zq~^)}m?X{fmLLNXlqnh3{7Rxe92j0v?&x*K0^;9Rvqs2?9hnUdD!@TG?VnBi71thLX!7Y-J8u(y-&DB6P#9Ur*%;n)2b#(Dl- z*x?Ue(y)#=A?euouX-y(Gu}}gt?cv*p!F$tVVggCNyC~o#v28fTX2C?~yh3g=;Om(48IrFp1^P`L(jecyzW260gMxW?=-ei2#-dp6X+o)Ur z&F`pheV;-*^PP2TjHBkfOB>q3UpwRALf}$6y1r&KeZqXE>Il%5c-?dN~fXv+U)peaA5cDuftc26H@yZ6#YCmuuJj0yieYu}o~^6#1K zHN?J5!b8`U@?{Js-oz@NaZj-6z}Qez9q+XM%v{mbIIJqzlwUv|+F6b*VP1&e(|F@I zd$YPe$PC={H#%2WXX@%K-E7*{=IJPHo{rMy=_qaeI*PlF4;y~L_s1Qda{R^@8b^#R zYoflE%xqVG>qf?CT}Uzg8MxbcByLP^$i&~0&mPqONcq}hPk3l&-LI~f-VMD>o$ic@ zt}Bx*&kjk-7FyjNEWdjP{tib@D?fQR+>M`W?(_!7XR2qcLDutaD&rcrjJ6T(v)y+a zKaGF=<_f75%$9*ueySSK2GpKTrOK8vrTyvN*Uu`}IgrRykf ztNY9tcy=`YwEK)09jCmdDsPwjEXmqRBcsd?;;$@|FP9W21@V&_89}=lT5QMHs5J({ zlXO$@4(aF-%^y8bW;0LJ9Q=0DmY$IQol?6Ryu#xev~Py^{pDvR?W@oc&o$4Dev3Kr z4CchILeIYZEW>_{ymz3d-@2g8zH{D8`+fBD56ttTzcbH|-u4%z_A{3cu|AkH#Cjz< z#JVY-Y+ZeMuJ!1gTc@!su1StQW_|xuVptFQ?3E?0@w3o*w*kTj{&F`l7(Y z3G39`;jccg)1J%X<*%WuUOyIF7Qd?2s%ef3+w}c)j7|I;iz_!RIqrXx?CZO*DwJ%= z59CL*?&|4aVf6P`mo>2%ZMe$rWSshWD?R%4`Mi7fp;tQ`Y;IIt=L+e zx%8Jt!Nln631TkdcC;S(BOde-u?F&iIdxOlF~-mx_(4>sIWu|Oc&Y8u^+CglldLK; zj#uufy>wg(yrpYJbC)`C`+gg?>De2XGS6OxPheo~Y9!z71-7(6(oWANo+Z1?9ul5O zyj}vDOE5Q{h}H(uEcOd%-H@JcZ43`#n{3VnIOR7kor-2_jj;30wzROd#|&G}J+!iv z`;FX(zQYZaDYEc>JsG8DGvl`Cg8kzXExGIkx(&CglG~F<`Rs#K&yVLmbA5Fu z)xmf`cXGes+CR6)$?y5(TtA%nF7Ya#fD9g}*!mKie(c zjqlY@cYw1y!6Sp|qT9jMcZs*(>aEGqm{mVS7?Y}Be6or9>h5;eAI%7uHQTT+eEy)A z4#oGRt_wW2=!Jg0_yqHpU6w&S-+*sVF#N#N@e5>o46Po{C`+}QM4kG@@W zVRUuEXl*FED0&ff-1_Da`}U$K(KY*K+qb=)VgIh^yy$KFX4$#LQ=_ZjH0?L}b~(?! z@z-JdrrmSw)eooJV|OokVR_Mn=uI!rwI}eOS2Q`g{HsRmSjNZlqI09)*f-DqG5@dd z-STUV*4uW^x5wfey6NRC`=)&r_67G}^D5Gta2!r_(F^H6~8{uthvCdfb3r`3uLcY_ACX)c9~9 z=4sfc&wUb@;_0tNKFboA8KY&KoS& zcaD9DuS(ZydnJ397)kfO_FkiDEAyESZ}OiFF?!pW_uI!Bt~&HKojcGIV!!IO#p1~g zO9E-{3pdTt`+rk1_L1K_{oc2K(|p=pjZ+8V8Sdvkrd@ys(T&Rw$&Mi979P3EV>pToycB9|zMSq-4 z(i}_Nn`habI44?`C`PXw-W4~-*qA!uQ8*8Gkk+#N`MGsuPWprC? zc{DQ+u2>vc7Cp%Qia-|rn{ebp?t`Sgl=0xftGfQ-SEk+po|Z?K z72O^UP9^@Mi2I_iv(~3Fy1MA5=y{~ro(0yTjSDTslUEg1MjuA+sK5rzGLpTwW!@I8 z;q0Y)_E0Vfus*=Mt_iPyG!lr^uS{>7R>K*UwZL&ZDVbRry_IijgA1%Y%1d6Jv=&gu z+0^+c{}ZU|s=rxiJympL)TAzg?O7(r*=v-WoB56C%4=D_7s!g}TCsT#@w|p-gX{Z_ zSKmVFYM8UYGN>~Dtq_}Y(j)`8~%A;=ugJ7A*xA2oZ z`QU!cyBm3SKk01Zd}flik@k?%Y3t>Wm09C|P-^XsRYvF0{%mkM2i(0vyiqgzKC?$_ zMAr$PHC?-6O@jUl<4Z24{}S}y72xw+Qrx^L8W>V$wHc+>(#K|68}7TzD)P$IT7zo7 zk2B_qDN}oY>RRaSD)>N z3w>6yqMZ5?q*T~4Js1X;FPKjUo5q_n7t6o$D0a+$rns@7CrkCN8<}`AjKA<;^yD4B z=u^o$!FvGMUM1}yJwy`RRs7E*3Ag9)FZ|~4@4yOfc9Wj)a1`U;$Kg!>nb)rEmv31p zAKKoAryO4xyz!(y&{rJKNUUx(t*40rN9^BDL%a|z3IgHuCKKiK6T=J z+1<0Sy9dpYzZ7unZs|8_i{h%kN}qp?{=XV}P~3%Jz&}j?jU>K$1Y;=Q={wD_Y{p+B zS+Da+4g_l-ts1|*@oLKHHEJKdoBMVAe-@~HlyyD5U94Llj=ZmBzJH_qIh5NMOn%Tq zzLn&u3Ow}q?9dM%e=yYecrE)4Y^YxG!p7?A7rqy$fBgK=T}zu{HgFMzwZ6={rCR8|30<+Q|0&H_w#T1 z+Ms=>`d;nv^Xt9t%SfsD2j8DA|3H1GZlBtdTE2hpm#6!|?HQb3@B8!9ra#1&+U4VM z#@ean_~A*e-28tXYq2jIYmBRG=u2@`6G=l!JEj#!w@;fG-Irj`3EC1M6_SAQu{k{R z?~~p${rk_9=OOawnZDVOl1JBmIV$%L-KUnhld-OE^y~?e>hbISvU}B$`abpEhrxe; zs{7RX{P%@k{r55&gIh* z``#5B*yI7%E+5{v>Ew0egX0Jfzi6)d2pJ~1CZA&!JbX5(nDjMx`qjv}Ymj#l?gfWn zFHLES;lUo{U+)L_dp`1T1oChs^02^_hs;430oH2WxP4(jvHEvzXHDmXsB|IeL5huA z8pL*Gji{cR^21PWLjRQQ#L0Q}Fkjuj4#otwnD_j4^Z1k;=vpz1n&(j*+JTHxyM1iX z);z=hNU1%Eyzg1b))#}rYqbC1*UfR!Qc_uN*jjpD*m{!kgad>1g*TITJwBa}(Np$k zglxqx|6()!6+S0=2!H=Fu0zBCrsd^WfwUYeD;&1WtgzM2cY8?hW(>2p@h|w%MOi=M z>d?ZWo(XPUFZ1s8o$~8jy+3lvBIkR*JUvqx`X=b*iSWOfgb!hL``9u&fbISYwz={i zez6?g=;S!Slh&4R3Thsd{m4#^IaO>%*Hf&a`3Y-ie$E=27c>5>bTYu3zDOrqh8UB3 zhPitTiB_7Rk6QFv(ab*R|2EjFv*^rxN-(!ko|HdiDU=WZ3cv z`u&__9~$+g_5xEpg-5*KX$t=Sv%?els>%9`B_HP@lhrXR`-Rj|aH~G6F z$ySYpxYo9?Cqgm#lHU6oc&MLOd!_l;(uMpyPmrgQ{2RP)V&1=EzV(gj@XIctY~@uy zKE!u^UX|xx59Qj=vxhvjv5i9Jq~kqgJWkk zZhSpi`+#;$z+XBEf9Vwbr89=CVsYPU#bitbhLLS`qs8wkxbC2j#osiC*Tj7tNp|@K z@Y@UFw->>01?znHp!#tuZ4|vM^V&MVV^6jjmA5<|bNDIyWIMLyPS$DVP?z@95M96K z(Vy~WrCbNOmX1{G)uA)A{BM56JO6oh%C-NE;8S^io_Q&G%DC41xR@6|b5rV8xvIm@KY*J* z{u>7t?5;R8lXY4cCPrVSuB6wVNXoU}ezi}y9)RJG|Hg+Q6(5Sj@$H)rk#Vv)PAEIq~xD9K5j`S|ABmGx^t^4zXA) zdiLB{^ncA|9xHZs^hy3Nn>#*Qv>2MK<6PajmiL`|C)pwS<|NSd#*QH4-(5zNxS_upB+<@t%W8$>JsJ* z`0spRh~2Toz3!l#s!um8Y^R^agNjCNzg03>dYhx0L6@#wFTGE`#Nm$Kr?JO=eyx(l zht5y7s^4olzgy$32l-M(n~YMIu8$B?aUkWsqkfLv&i&yXm)oNGgT!Ebo$uo5L96rI zv+crgwly|8%SulhYSpl=AYf)%9p5({m^HNF_^HY>)2y4*(yjJLx}91lXIHegQ&)ggNYa>3^1qa{(YsH5 z&)M>}@)*1mAKc^R8T`%mIBh|Wc7`sqiDz_tScCHnE@K@s_YaLb>K>jt2V45PzQteR zJO9~SuK&BTIMvSnV`cGx9{WXEoXTfUCxa)Z&}1Rke~b*a$ye*)-~VQ-cke&{WAe;P zDW{BUl_7diKl|l;S)NKS@2O;^U(TPB=gV**o)P%i^Hu*DWQFwR)5;5EgBfSMGKP!z z|5N2dM7B;raZ%B}_6DdR4o;uTsc>XN_xa^^U|Nn91Yi5FW_?_Cnk8A0PCEl; zmSrO!I=+uQ6AzYbKqhVV%90H7uT{q32^Dr{&K#%w9`XmV>qFT?tu(JJBP(JZ919Pf zU^q5?$FOvVKXxO($|l_(Z={eSsXOnhtGUZGkYIR*wZl@6^6flP(XChX| zcS3eMaf3b#vs2*dh|IQChGf%=bOW#~jMqNWDpt__%P? z5t?OpPB=9m?tXHn-6J1{@{&ruZ~W`S$Xe$ew*86{qhyc&GWgHeHjaU3qrXR+9L`OZ@*~zQBI3jvjeV^kw*h=sbpQ zxedNB_7r^K6|K*sZEY!fWGY{1gD>o_kJtft!*|gkzlSdQeRRtAZZle!!w3ErT_^@` zSV}BZ8T_J_GtW}>$lo$wuJRe%{rcm59?wxd@8)FNo#>dOQe?NzVVBHS9je=*hx!Wp zz1v)R*v(o~odcviRiw?N`6T7r1MQtn3XxRrQfvp6uX@CP4ECf<)l2oPsMqx?iWh0D z%0J}rBld_?nZ%~xr_>otnzwW3T(u|Ck!KCNXGV_Q^Yegx@GkaVLMA9Kq5Y<0>mkMk zYaa3xAJb01w&#?#I@eCWde`)C_og!YP$BR0C zD8p)EJoEih#F)3rFD3ufO!08y(%N&GT&>N1*R31DLmNrsQf=ueDYv`eH$mtnb{T0o>F|?Tb^w|Snw-TK0gs#? zxBr%8>$~W}arUc`9DE6QV$k}#cO_fL<>pu&>yoX_;jz(De6QW`^Nx|&ck5{f_wDeT zqz7XvT!Qyh&r{(&v;!Umtb$YUm7;%32N!ID@vsBmPzOFAw*A1#S!IlU+Ch_4yConv?4wn4sxD;GIJc6%_eiMv6JLZDFh=V^P%Z2T*gS$)zcY-Mf-#Q5{ z*>^r%gKQnY@9aOae+Teo|@Z#T#zGK`Up>JfTO793vgGXPOW1Yh{p~)fZ0JI!H zf9R%9Bm)AhTQIURt@ics5bEuKXJoMkzSgT_FXj2y?^3>GN9VWk?}y!T52;*qoOgly zO0Lu4&wiO5-ydp=H~H|XEdRQjIglOX7tAVC-v_ay4`l#fB4C9s3}H|EWkJJ?DUBr` zmU6z8pUS`Y%jwKvyiitYoV};R=pATd-eqX?GKdO>PPWseeZvx?{%-fwb<8q>HFv{ zFJ6i6FdrRa9{%0At4=H@_HYU7GOw4PcMdwoYGxP^`e7( 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%0DG}-}@ya*>#JN&=}S;#)}xA2F8MU*xq%P z5!9I0|8-8H(-)h$Z@d{)Tb--S_U`enV3aYbXPovwVzx%#o6B=od-o%m!Du$RsJJZA zTVW)+{=rCe3;x8bTf5H6YSnsJ`{^y>C1gcp$D}3`c_td&#=SNF_nOvy*Q{_-c9+N8 zxIT=YjTIQvGiu@>oURnnrTee21bL&dhVXTqrX|LoyY#aU;(T3=v zwJtUhXSHG@bEzjdz)q?y)hhwMg(vl%r(PNLu;rnvjR&@X_CBiwW24JRRx9b&(+HQi@pCl1OGn$i!kS~!koiGN6j>N=WPxLt@ZbK z@t>=$JfL_Fv(2-@+vdc-cjCuy!RHPgtbT30*+@7#@MF$Pe7K;jl{T%u;WJo^&)?Da zBNf~C7X0^L*tz0SU?G2vP>l7h_CT#?jNyAJ9*P5dKmU6xOuG;N;6iu0Ta$NYv_8i; zeCW>PY(+*}5}R4}t79+maU|_mBxRS@FvbRFKsC0RjAwvx{Tf&688~PzPi5}@uUey3 z`>c|aU7S5b_F8Ar1ShKdZ2ZE4%X5#)r9F@HoOaq*tYi-f*dF@rVU5UtYpuAk*koVS zeionTvi?J}wdK&pV}_Ieb%AIk-~U+7VB|p~opUAb3I2%zyJd_qqVP1%-LZc*C&anC zqR~x7UyE+jUWDfA)KB4S`Zd0UJE$W+x%8rq zpIuM{YXH z<4jm{DmG&i{S#h_L9t?Fif$ zvUjQlk9+yptpE5VEc;&Nh}Za!)bnP_{3i8Zev9o+d15zy&HvsC7d$wGdE{v|&u0y*w;p-XNY=5gl+`-zLpCriI_MpL@qR%Q3PPqTCa>E^Arc5{Cn?S*NN zfC%iEe&6jQz^JRX+bDC|0QS=PX7X!a0{)|CG%cB1mUP+>?&_b@hT0SS!C+TVzwXC^ zJ+{q(ExiBqCFr)VpKgL@<2|-*X_aZwNp&3hL<*tLwPx}w0lVL&7n>iH7W$9dZ`C~> zPUERtce>xAse{vZ)!*yPWa47c)8Dk@+LP<=p@FodeqFU-_xD$@mwdxa=Fc>r%>RME zY3ZP_^HVzfH1N*1XgLtJoBDP43O#bss^OgJ;{e66>_U$op;O1MjY#sw0!ROFS zb8Y^I{-#LC>>F3{#j*8{kI!CU)O|1rKIfRpuYQ@no>kbiG&C3;9h{C2yMp?46AF)| zJY!9QErWgTS6{CTGktKgi#B>afRCzwTcKfqfBp&jRngrw;o$>eqD+ z0{hG09cKK;1x}gXEV<-TGZ{zE%6_xv zA^LC}^3{=j&mkk~x(3KTWWd?C_m9UuFRlRQx}v64z^DrsS?%4v$VlX$W=t&|VjKwM z+kS_KFAHy5e!h{EFCyYHh($8_x!U=#V)dK&S2}c^j-9CMMfk9=6Fuk)5BB$^^y_wf z8I~U-?Rl8zPMMkfuUS>mUhDqd#kH;&`zFLPxG!msx-UOe<9`0)C~eo$Ud^!B%qaRb z&RRk3?8SH9g1^gw;~6og(am0-)9><9=+Sbz)i2ePk67zy=gc{BG4yB7cBp(|g?ozZ z+7rRm*sQG39zao(51c=*Z0&5;7v~jQ?f>(~z0+<^>vNQKg>c%L?AG>fd53qJb@7n#g?Y|D}3iU($zw#pbU3rGp?(yJUL^;cDd>Gpg z`$jxm@XnA6`(VseKm8Vr>#%{-+rrKWIp;j&chfnKu55ci;h(|6AudWp+5_S!X=!{HM&* z{I_|=wmoGteT6YXw}paGEq3fRtPiSNv1_gMflaUe_2=^9+`jdv zXdRt6qV>ie`tw{ScJN5*j{;5}@J6>D{snswzhvz))z~s-27Z?^^Odci2IP;j_8}Y_ zQTq+zNzDV{cACXAquWZc&jQ$I0qp1>!4ub(n;+~tr^wn{Ki2lL^9$Jaotb(61AP*XaC_$*z!w$);fUo)C_3hnUX;nTMyJ)JRX}FA0K;d zr_u5E&Q+`h@#V^I+qsH$!7A1Tt1|gz@f*TAAvUwi&EAjCNF18vTH48ZrXpYnj{ckE zz;gb>=h!$#Q;l+-@vaiSu=dOui!tWLg7o=9pF&?{FE%XRNyz}kQ#flk@C_Z}m#;G$ zpzG@cI4R{_6nr)b(w z^M}Tm$!qZ0sQo`xm>(Q`Z{WC&VNGC!+tY)J8PhL zK^ZZAtn=7Ei~+xJnSGwqq4`Goc|6%T&Egw!Q?(&y@iS*CD=#pw*pghFP%p%dCnfc zV4jWt-GNybY*(#J$>=?`Vt4;yY^AJI?kr15@Xh zR&cK}5oqxkWd_R0=tO6n`ekQyV!!WB{Rv`ML{mOI*%spOKz)w?V>IHV|=Xs1@P6We?{z}S^g{f7gzuAdj(XM z^HVE)T_K&Im&6N3?^PDo*I_1%23!MLyxr+bc{r$eUuX1nog*w-y{tIqZ>c8M#={%>* zDaHJ3t)%hYR}SZjO+nr*o98$EN)nc~(&Pxq8f=m;Lfl zax2E1e&{Dg@;2u5_uySehK&biUB1>bX)=s*4-L0v*pGgVjJdRMfNuI?GHewv>So(* z93{h$4`ZK2M&4i8^zcu}Ym;FMvnqJCYa^mRYpk~a@OWh7fz zi%G6UxyI0W*XsV~`0Tk3obS@zl9?wv?;|VC_Vl?Q4cWdlwR2>Uyh8)|wEXL9j?bqv zY(Bj$*R^)*`JPkaQ`v0d(>JEs{P)XT*DD9F^Zd8??-5|sebr;}_(1;q$_UrmgPT34 z%zqWsuWJ_U{&DQ%zY(qvcD?60WgdBs`gQLN0vrCDJ`&h|?ny~pAW|2;L* zwRTt4sl$GR`gKxeNXl?5b0T{fJ;+H3;m# zfcIEnZ$5R{71Xb59t8GZq4!w$X(0 zHvBEvi%uQ(bAlZ`8umav`0zgMRSvEPm!sqUyEd@=RgTS6hkmO&&(1bbgT-KMXcaI8&VIU$3* zGxj;yf%<(%`|3XZ9>!)g@SoVR;C9aC4xI_hu=dW|qP&-XM}9EvBS#(xC)cqCi?QyC z5T|HeH?t0-T=ahI8Ll-e?KN2Rh4KXV)1uSMScA{nr8QiHy)CWbnpK~@8SBcvg|1O- zx_b5i6=%a%TyR`Xx%g`tO(r-MrQ%c+qe4y^{F3C) z!Ke3K;Knx-6N1n5HvOMomS~}!G1{l)IWZZ@)jV5`4>X&YX`N@&vs+a5qOwGkvhfr2 zTd@-e^qmr+@!A_EY5$Gvim*kGpKAm<>c$`nAozxiIs&{6YNKf zh)y>X*|eKpt~tFNG_%TGWG0|X)$!<&9xE;1q-eMf-@NwdE4Vtb^_}?1to?iN626LY zZqB;2y>m!bdvo?>?VY|M#Fs06IHP?tvBZ0bYu>~;M)G!ZU%|bbd&NT=+?R20+VSTp znRDWpVmroOy!J(7io^8hcrnF{-4;(&IeXdnNS%|B9IT{oTGOnCZiTCjq`|pN&Y1Jl zS$2Lah*4NUti%dpC01nd!$-%tO?+mF!ZWk_yV%{ZJBGCCk;>qQ^?emBK z>k4Zu|A?=!d!&61cr`I;U93k#OAALXaj)ma%!zN;e|yFUd`IDcJEzT9w0K6ZX*6_FhFlK^a)~w8 zxuN&*Ymj^8CgfJNa#qYKdcI(;J61Kz%w7a-t5@G0PH-mZra9CTub&7v$?kj0$)f=6 z=Fwjt@v!ye&?2ux+az#28~8dW{Ve(boSVqs{OWt|p%&i1=U&f+_x$=BXS~mM5G>s5 zZIievzE-i3A@IK`nypeH9#jZpPxH2BZJ}0dhmXTZwxF5q69VGrV%`(n#gxhOY zX1CYg@8wKK1^4CL=Wy@i{u1tIb3csxq1<1_{iW^E9mKM%%;nke_UOaFn-AO+y!zsC zO@is1^>JW2XM7x(&eV$PFD_Udd~eXToL|8uiRG4t_S&fY$3md3xybv@Tb zT>q8pja)aIrJfHStt#Q%V;sKYJbfb0Icddw$E$R2CMchX7IQrZJnseH^SR#7^;bN9 z!IMCDSaJMucvSKG4{=rO{R;SW6Z2a!_)h%&Q1JVrvG@2qtT_4TzU)N&DcX3C>jPZR zcPHX^aGlN-o>H9sLtL%4;TfxKV!HoZZQn}_IP{dw&9171JPpJ2d;SQtuEOtp0+!ocY2(nL47NCJ?HVPytOHK@-@rXEnjn3@9?*V zhjYc(T*STOYqosX_-mW-k;`9OMj6LntC+(`d8)tJ_Wq0J%4){yA$V#fW3s)FvjdO0 zlbt_YF|%u&n>eg1gPpIhnA!OU?q_8sx}M8#GHQ&b&KG(1AN-!<_bk7E=l4r~zu@;% zevk2cl;0!#HuBrR???O|TrsozOIeA%6&K;abhdsOAC)t z?xgh2C-a6RO4%>gJX{S=cUFMQDi^p_2RkoYG4s%sLlRxXGm*)87H-J}LlT|yXzNOT z3;2D7-#_qM$ghsyxA-;i`!>H@_>ZVv_;_rlg<}`8W)FQw zUbA+x_t!remz6kFn3YJ5rysK6G{zH;9ph%%$&9^qg~xQ&*{`-E_^Pq{#IIjxY#jf$ z_MxpY!%zK{)cj&T%)EEC+>k00)2dy!C3i!k; zCy={SS92{PZa)1S+8EBE<-qF>|2gMHbQWk+n6nbhhn>0T`qFSxes5$@C{8~-UVFdY zgI--eJtuMd`TVpV*)tdUl9TBAKK3{BS!Y}tQZf9C&c8gddnNr^TE8v0EPLD{&bkD+ zYK-J#mkfr!ZMTidlAnFcBI-t|Q%|{t;6uDPKH&OBZd^ zc~ci>?N%a7RbH}4v=YoHIFH75u=-*ap0D#E=10BN%l|ct{95*Tks8)XDl7Z^_VrnI z|2QWS<$quQruUywShW7qqx;7>g+co_*KPNYx>4%XQ|@H?=R3*%sSjJtwdWGM$^J)Z{4_-Sb zMKb<=?^a|rdB1>N54|`Gz8ZS%C7!5`Gwzw->V;ReS5`8@W5vZ3Uq)QWKXdjBIMz78 zpAQrJv#Y$Q>6cs&RuwgI?)U0hIwLz8If*T#z05u2_1F1Wjk7xtt0Feu;(4_lWo*Tp z;vL~rdl@k=PmXW;@nyyb_x$I0;g~klakS_Qoj1=R{^^gOQG= z_)H7#_wI5NUIrfz*8h3H++vqIUYTg^cS`rn1J6TtImz<9u7}qjxBNH1Q|h{c_G1&R z_CL4$BFfJPzUQoyD}Up6N{g=q{@Rl)e>3H;0)BqUG4N{`hlq8yk=(hl6rT-3r}C?5 zuek*Nz=maP)pzl~ZF8NtZfzBH&kG(^7heZw8f`gJ2Jebz#ji!cK3Sf#|(K5!8!6{> zT2~lW?gQmURhj3Nr+~G;dFl z^n5blm$#iVvfHNf%}4PN=lFDP+|r{h_%>pTbdGwIeKy=RdcSjyIvq~BuepOfWS+2{ zXPO*d@j1jkrE*~FD`#?v$clOI*fe< ze00v90%h}@{~GIo`zD+J(0_JS{>6p(ptsYvE_kt+?i0o5xH$)w(b{uoX6p}QvDbjJuJ@L6Uksef z_!{=UP05rpoeO2Y_s9EdjZiYVKPF%6D01mmbq+TYdDzUO#dGkH{0pMd818rRKMZen za6gv&JLuPSzsPMm$n&pK_jF@rmH1eE+DVxh`wPl}Pn~MjSzc=-)Q;vz{aM5Za@9I! zw{j!^!*iN_Ue)2_fcOp`j!;iN4&h<+^iCs(b6zLoMZQ}re_lTLir4kt!H;~B$q&cp zCwtGzxAM(*4iB?7z-Phy=p6smq$dwvhbGO<{P)c_d}ZPCY~i~PZ-!B1nui9_U`)f`F!vykU6fva>N zabnfF58#`5hBmeSKo(VtrbT0+DYm%s1X%URWt%r;b-}G;jH!~ZAB{2+@~0}Mt(38A z8BKl&S6)LcwxDRR+BJ6GZfG{k9M`bd7bX_dZ1T|O;wc*n>OR14qjfy=GSCMf&x#~I zqO8{1>s+Sw4G6()@$!8H)+t&K?;R3uvT`p#FUbb=f6pUElVHuevtip?&!GpQM?JRU zoIC5ci7wWfTeMv^W}Ild+V_0H3K!qxlIk?3gYUudazv0H8`)p=v$ z!aI>SJE8A%bBymz`13h@`I=v9Q?kUFE1JK_w|l2bZb?>2K1p^-W=TFtwn;__2M@U` z;;H#<$ph>nM_zpNMdd|Go^^wx>bdh0WcX}sq6%yx=R1JEYmwfG%y7M8%t$*oeW+jW49vr@`NRHq5&9>a#6ZT{ zwn~5QdGUWS{xvthw;21lC&RbUa5uz|Q{H8pH|#@)z2kO;^zFYzo*nkL|L${*Yw*6b zJ~TOd13BdM?Z1LJ`%$-`18(_wZqqlhL*;vYvl72JXQS({i)`y4S3?K68iLEraUC&t zdxs}Bvl|{}4HydG*Xwd;YQHS>+kmN9Z){ENW09xUoe_Eqd4JHI)h51qi}L_)W9!QI zs5U%|EjCHh8&{18zPXlffY9Df>-$5o2Rb;D{pMkJ>(0B()}8sT);IHw13r@MOV9}H{1@a{|l%3r;m$G`kXv)3o=a^o; zKS+*P@_TcZ-^%YjaGzNCeG{AcQ)EQ5#t;47!d1Q)jUnUK)~CVe;>OY~|Uszw@g7g`LdJl1Y3Ex@mNi z_iN4D^gVRTrh<2jwYgRt`BD3-vT4Yd@e%#dp6Vw2;qn`xx8RLJ@@JT#0?v_0o`2#V z*H-8ryT6&eliTQH^P=z05dDRd)=A{B4hd)dtn=4g#~EW9(dp1*+*zSSmShXZ?w7tYw!BVz$_XOg zszDw~25KDDclHqR3sIK!MF;N(&F}ow?9vvMS&wZ7ywA<=tn%p5BNkuS-)VRL(`H_n zb_{r3Jkgt$`z0(|rLC*HqM2+)Y@XfFTl6`f`kFWAS#V+_&*3^6`4C~PBRg~}{cA=Z zJ9g(R`Q;On^9{3CPv-|+qsbO*WsMmrw%1Ov0c$haooYvIKrhSQrA)QQl2JBo zBhXYbkLOc`hvSzPjxp-t>nC5v(RpZO3&)|0V`pi6!nD(YE*6YA4*s%pmm957t1NTd z;v4wDv2T6s!P95yNBdo2=>NjM1N|a<+WP$>CtB+`e0bckp)F@@E=-Nhv=r_aa21`M zv02C1sQ-Oqqj6<_X0_8d-dD2cp>-is6vSI@PzzaD+C=13nMQn59X(V7?Zb&Dqu@c)>;dX0&G_0jV) zlQo$AEnJg1rm~U?dTzaEj+Gepx3vVrlGR*irJgz8*b>~uz*U)%jIFtLqF?b{Mt+gs z>?rmdYp*BNgmYWGUm*Ceee#-Ve(PV2K#l)5;>U2Ug-?|D1>q)~jtqgHQ*k(wmx4JE zp6d0&^kdZbsmQ_jWycxE7ef-9Jnz%(JDcLsoB9yGJh2nb}LwB?IyjJ!j`7@_53;)48pjFOrEd>=La3nVZ%ca1&Po zEw_v+F{bLgWTM>NS>CA7tLg+~d&m$`fgy zmlW&^{l>Hw@NsZ1G{-hPPfSKDxCy3sNO1YC%iJLC&E?ksZrF75WP>~gj`|-oeZIDH z76u((fSzMR7cAmOOjJX}%X&V0XF7?Eo?BIN$S3kT#N9s_{rc~ zgKgl{h5S}OTh%vcBwQxZzGpK11%4rLvBRo^*r@tH347Fwtr;~}7tHEi7%%Dd#`$K_ zv=;gz7?Kl$5i&hV#R&?o2<1d@A9#oN-N0c;I_YIU$V;nmVJP;uSJ%IZ`ljJ z1G^d?xnLChgl}*s=iyq?WPJ^BD)M1$qfbk*AxrT=WrJ%vFIEnxE_EDvrunhrzj~`% zz5zV?(~6&=jeU$}*8Y#tMi;b?;`0dNd(gOOOcYb6@sJ;)?YfF&*<|kqjZGIk-O7C% zupYyo6XaVzm8R##*6ZBKmT&OGzY~O)HE!MT{6Ux3H}z`IhF%vwWzKa9hZ5}kmh%?| zA7e~32in>$r4G3Q8JiYFbrl_;-3fbGM!w==Z;3V@}oDWry+#f9E@;ds(x{W{)F_?DbY* zo9y#md?DmPZR+`~qV@0~@tSdD6lN;>h0B z$X@4N_qmnHX?zRlf-7v<%N!^Eft=X1>2Z&KF@_8(kC;t+Y2TJXquRR8^&}5EG6=s2 zzM5nO>z_T8aqt#T{1^7jiEy`Uh5>Z1E$gRW;7cyne*I&zGVR@m3lc~9w-1jOeKT6S z9?e|5??R*J$}~D}Cnt>PjP~B*$-S;r`4mNG559>wc7@~}aYV@=zE>OnQP5p}2Ibwv zE|9FvJ;!ep1^k)J6QeBPUxjSA2iYK>lFBSX4fg*qL<>UR}bD;K8G1m?PU$V2r zC*05Rd#UTlGi;PRwHJkt;@4IrH!`>4%qy*RcjVD7G9-=-yc%5Y1&6m7(?(#%kY{`9 zSYt5v?ukf-jcU_8y*DMlx?TA%GH3U95BDUM_qPk*foMRE|7qQ<-Bqp;*j>Xb`KB4) z}<yZQWpCKII`o~{KDr<5P0@YKxRQgtQ=6f; z>YKk004L}VTv24vyE#SgC#ma&zS(K?Enwb!%o@KQc`UfAprq zhf{P3Tw?Q~IY`2^nh7{8MEB7zKvGv2EiZ-+MBtm9`e_Lf|MPh``z zeB8U$k_W5!zRQK-o~}nPS={s4?AF7?q95%G`48K#IY90fPwkft;V^P{LjPI$^7MDm zoVDyUlW!Mz^2-veNpA9f=SNjR_PBRq-?2`!z5^m3r}N))I%isVr~L)lYwQtEjpyLk zMn9*=7J7&+bn29Ny}rJ8`2LgwKmGkC3m*AX@EaQ5?bdfcWNS$76&mLLPS!X5`+jxo z^<<1IXWtK+=BZ5oJ9|$sV0bp1=(*NH2C|zRK3i5ogRbGRk=?^%RiOzTOBR~0DRZ~S z3l{d6H_iRo>VonNzEfhJR+XJ+%rKER&Ke~A71ohIp46x7How-tj_mvjzPJzi-|a|y zr?xw3a}#aXs_ot%j_mIJVO3~$c-z9Fu-!KHw$pa@1Y?Qh-0|8i{^Rl6El+!=c4M?z zhP|d3N)O*n>3*dC=h+`TJ95%J;X}*K$j=(KuU;=7Ys1g(U9W!M&{O%kZ+GF0hMucl z&pA*y!#B;Cv57pT$HQgw8^_0GN7}n%Xt1j0=lW)Q2s{=dPoe+%g`7cv1{NOKvyE*h zqQS~P9lzbpY3~NM>*$!`+2N-L>KOIkHQS!s$Lp`_e;>cy;zMNR~0J%Aq6GLt&o)#bPc6@3r*g7Y|Pdd=S?;_^Ga`wz)oD&i3?Z6@S zVhemVav!`k3Eo-`Z!x~uu-OfaZ-MIjQoMy>npc7^)C*7SgC~6O#Mz9+MtEY)_IuZF zG=2Nm{H$@k>f8rUoDEN`fhQ)z6KAJ*;xu4*;H_@PGMllqdCI##ou{leQ)4-l^4M=% zn0F)hG501h_m(sFEF7784vr1XJ>Tcdy_J7C{y1z-dx!kBz6*rR+ES7io}n=|&GCK{ zUq#WjP2VWNZ{ndX@tWkvQRTtUE?<0f`4kORzJqzCdA%|Q+(e8yaCLLI4wRQHi z@Qk@%&tEXN%omzllM^a4ZCD{=hJW5N&w|UBY4nmjs!7qx3!So|lj`_5vlN6* z!Lsa7u*MfEO2G(1rx0|S1f7D=DH}TZpp!R^P67I7>Su(XN#Qyujmks^l}pj610Cbk z8QA}3%B|q1cofas68;C_AMtZh8vg|4cT3}+LF>UscD;T+vg)PL#b6%ohAvKfasF#= zlBBz79(1}KItj)V@KXbHYADMIHPj3Z)uiY&2|C>Xofbo<2I!>us<}ETjZQK8P?Odt z*JKgnT@WeYy>;OC6V zRNzFAr)B({dR-}b`9C!#1a;?y8TTT7P8&O+^@+x07RzUZ6x19^R59WV3Ws*^VV2lBb(rPEH7{}zv@>hHSyb?q-}?_d5q>atJlZ7kwfXu2#pTt~jW{hY0Qhdt(ZssA4Jn=c7J%~{L? zE4a#k-oe_U1{wSTW1{wsvEe%N{f_?hAP1yFeZ=-OEXy4=P?t(yIJ$KE32eAM$>Zx% z*QfpOgiDydn(*rm=<5+KY4%0~>j8eF2HG9MLw3jR6X3Apv;KAl+R}T{-U$cE%I*9t zoeK`>HjHOk_(9n*Yxwranx4uB2ih~jWiWfD<^;HH?m0egJJQ}+HXroSeBR^GCuJK6 zFWE=XXF~&cEyvbPx05UyVJDr4MtgdXkB7^6s0vtFou72S_}j(WeLOPS z?HTWnz~>WQ(zV!Marp$l+IFM+P5AD3cJF4hAO67c*^%~6Z4*zoWj8;yt2tGJo)uip z743PUtE(lWSK#-Q+|#Sm+E_hVz{U}Fd2gURqg`!er_cKF~~?CtjLjq9H^bN09Y zY>j1aKY_h{1@f&OdwV`I?h0g___Ij#!|!3?17G>DxdqSWcW;W{v-c0Q-*ZxYHA3~_ z39CLf_`3gX|y58@AJ?QiRQ+vXDQ6u~RPS$f`)=SE49-+*5wC*@mr>=;){-b-eeQAYM` z8D$)wg!pd{Hi@$iko@$RBdR=%nP5rYx-@SYFWGvU7lpeEmjvm*>`kZ4Q83Q%0K=^E zKx5~<=3Ghc+A4!N=ZQUfvx%S7Y14)6NX~43c}c*pwVd!%yW%@T_7Hq;axG?@rBA$k zXEa1?$K3kpjF9vlxn%TT`emWv*&jO7_EC(cZ$*?-AIqVa>UN`x6wBl2BIzM?Wc4ca z&_2F*wIBWS4tnUm?}ZQXUDgBbz+F7rn6Uz!K1}JK!C*N$Z7^7iQ?TwI9iH(-eaTU< z_Hrg;GqxAL*|qx)Y^>^T`cYL5-}c@&tNG>tcxqnV2S2wj9m@BMBd@=_?2J*r@42F} zec4do8gr=cKHmS3?}$D@nfLX6>9EE%=J0v1^elVuoy^O9!;Z{v{2{jQ%gcuO9yf>i z-urC`XwY3(7_MPn0YAnj2)6w`W zd+=yn@)syhRo}SP)#8baaH(Jx!9O0_(7Mv$iSk3s2^(T;Qv3y9S^O2`yW3vIHAr36 z6Q32OctY#5k_lmJ4eFVhyFfgqu@S%6@9g!d@mrTQADnl!jDP)I%lqt+_5FVPdDxn=dj+=Ts#+hGaVfG2ddc)}V}Tb5XI zgf^UU8qeOuo)jG#jI~vw#W2kW=rPG?zBvbayo=5`6PmmXO}5kTq9tbIgu{{7@44%Y zQ7aCYH5T1v`d&6o-*(>rcG+VaCfpT%@Za=)Nk-$#X6C%_A71w06B+Y;zd1a+@wcoE z@3||(caD+a+cbN=uP6|{dKh!#{S=+vFUt*`NB#F}Muc*AoZEP=G2Hh)bqZZM```cB zeU@KzII>bSIu{z9m!i=WXk?_(=xAJ*J$N*pxeN9{8!Lt&okj;1+I-G^1eR9?L%(UwmUSB{r%Lu9l;(F@x|;p z(Y|DNPNv6a=V&p=FXIc{M~=_fX>}U4<7$qF*B|KD`%8y6et^Eoz59$&!;f6q`2Mot%(>ydKk)ul^w9^DnR0~p z$g7vl5%V&TOXpS1rH@2|v^k}@WZ5{_vU-19|5|D; zm49@%rMoP;rs^2qEB7mo%t+Z`;$d4)^sj@zpx)Vb|0TA5J6i7?3-6@#&L!b(=$&nn zBM!WHI99ddTbaWZi&lbNww%2$7q*$1Q{;E$6#HHJ7I|Q8)&6fS`nh{Xk>9)4F0=nj zU4NfIxpx+}R7q!LvaZR(w)+;bcx!o{4eyADGIA#PC9CJc7xUnWhNZs78<-D`J@XnH zmic^hu|cZLTEFwYs^DAx!OAS4%q_gDDzEidWw{G);d+b9Rah0efVPapl+gM9K=GOW zpT9JP>qP(6p)>tcvd{C6xO|GWmYedcP2ZU0n&_8p6M>heU^{C*g^|%C>AU9CZep_? zJO;x-cnUuohm1nWY>lxe5UVnQ;ew7H!={fR`_?c*o}u9f0yzPH5wz^$Y}eew<*$og zb1z|?MjbEfyLX|jH}}z---V{bJ2qB{u8%^;q5Ri)y!&R$&F{at?dA&T@6dTRbbXR? z2l#28&iVN6*Cz#xrX2YCUFiO0YpxDWo2y69jW_7a%ggNdTj`TMpN}rHi!!@-w-s7% zh331s?#ea_w}z(ErjfY)>&qus@&A_4h5p;WzT@mL^k2vQR_>pA>3n~L`(M6vfj`D| z7h|#QrK$dA{wH3V<_|MQf9Kis`O_&k(Lc&}p8x#$=Tml~e=7ekn12CfC;H!D+^YCZ zoj=uo3s>3X4{a~J>w(>ccdg_8LDN{aF4I`HrpRdOxX4~Bbf(tQ+W&F-I9UH)8!(=H zO9A*v*V-V3L};QtYP*YVDV?=D=&7_S50TS8O&@HN0UFNNYL^;zw{?7n;_GV{=z;_2?9iW&2M|7YClr*BOOZFpnz_SG?YG{;_k? zntv%-=Vd--Gk3e0k3V64&S&0fPM$e5W4`ymvez{yCvmpm9p>M=tRwZ^++1S6hw!`U z`Q`2My)>*an*R33Df4r8oj?C?|9R$(xqm(L#=mXbG(Y!Oo96$mvS!$jxi#}2&0KMD zgzuJ*=WMzqm+NucVbpr*Uop<*6BCy z;(klt`@9?f$o~g;_iIZY{J*BV`;_RO%Y1P9{kM|ytg#$OchTWky1S2}`#_p&ti&Ip zrD&E;b0$L{&82^x_RmU^R`o6#pudBOhE03JD*!c}E7b`A~?(&nGj z%1W*}FfW5=9GLmzzG>0mf2YbG1cq=pNV`sXr>xrlOR8Kc^&A@HSJYbcQn`E|eNEBf zgU}5B|4GBafp;BsRkoCRPTBu-;0_slT*ZrO|No}ST}NG~{p)B`<0Y6gCSBAAGj~YN zjen(lKi|3w@1*TF=;IdXBia2e`1)UXb|>&|r|oC>|1bRi5inmxKc5G!{>rli&!+MI zFI=zX-OthAS5bF9y6SaeU^#=_HrMd(C+A1C>=hsO$~)LAKJ1lukc-2RiPvL;`~Z2F zld@OdK|a1Wh`l1a@Kt_8k(-k|-bQbRw^6ck0`sgLK9LV=;CiW@_0listMguZY_Kw0 zD04hLHk7`IPh_9`0=q=E$IaLtvNvQ;$iA5Gn&>|VA5Syi&$*d>CreMK*6*9JC!F>N zYg_mUFGok~ET8oIUaq2FrRc}r?5WUC`bIXNbc^h3hlW@DKc?XoC!nG9S~?A5*bD!Y zG_-sH_#mF=`^_)#Q#?@j!q%JjElk|3*w|uts)C=^ZxgWVWBAWAUz*^L;Vb{Kr`Uh} z<@SEg>Qvl>7e8Z=HD)$GM$3nt@^kFKN4O8(Hga#YVs7`r-|`s;@jH~m-}{D`=Z{|! zefs*2Vqi!7882OL?Hk?Wsr5G+OZ@Z78Vh_&O15>my&?G~g7_ffDcH_>@#NQoCVpu7 zA+y_V#79D2-2)v%o3_@_c`Q@n8lhZMm)3bi+FD5&dDH7 zH#20xk$*oGt5tM5<$(7%c_&maQefZLj5Dfd6KAclm4Emi*5-3k{^2?DEzAFv@(;fP zZh~<+I0;6xaG>ona$XEiCb2>q8kD|C-yL4b9lGly?+-f0#7BAsQbkK$L>_rI-kf#&J**{@SRw0!s2#v*)h%5{F^bIxO) zh~9Qy23MPC`w3@M_Co)Yq46!prSYgf8V}SpC!(JU@N`?c>Xac%Cx`iZK7fC?AYT$QKcNBg&~2Io*Y4;3K}Lgy@NkQwX?Cqyru50oE@{bBoiBV1<@ z&u#JyIwnM$k_;nZWQ2Q6!KR*(U*i`%Vl1pP;>15bV|eWMdMCeqActr7lr8SN&o!Pg zjq?8cJl^Nqbu^}ZulL*^TI;je>7@! zfoH_V^?$VZFE2DOZ%iB>W8Jewu@x^UHk3FDn`b;$ju6T9-NZ|TIh!ON5wA(t3@ig5 ztkW4Lop;kYe(}|V$m>1G*yHi^=oC*YCza++H$0t}>VwWIir2}#G_spBH^{xV1@QHQ zz>D*<+qZM?9ZchCo1e$FjRKD9RugBl;83p>`&*L3S+aw~fzn4OH-?oHlD1y|w0G;R zl>a5N+ImNS^j*~!zV7C+8njkXXTSMEl5AdxOl zB;z#a4D2Q1g}3bB=ghGHbIUr*%o=qsdRaW{#4!4v3{l7BDJ=(Fl;Kyro$MqW74S##` z-h#81Oj$AneBWL&Wm_hBM1IVb?|w8bH%IKR!H?}@&a#diu^ij5A-VkZBE#2M&d)Ob~wYombv^X>`%k|5U%|>9zba^Rf!hjE0_m zG(O({v-kwRkG9V`J*)7N*;$1{LTCBERUdlV2Oj^#b?yl5QD^U$KV9%0JOo$ksB(Ul z;32vwZpzUGfyoBnUmeqT_G#tRhx_6UD;f7fa;0{<62s|;OW@t*q4 zeDcs|M_+l)V2^a!vIn03LVC;o#@A-}Nb`GPF5hpK-V(pkhL<)(SJ6`XDo7ha+IWFB zN*QPQOBh%5VQgd@d+%jAMpAO9m7gs?Oy-xZvm}G|AcHjTly_6}Q?kYd9B-Dfwah~< zSNO)^^GHgUY)1#oNz)~}bq{XPb80qM>5?*@RiaDm@9%K-m*LKiY~vZ>q&|s%(sO{qCnG;YHb}m!EN4d(2R}zv zIQen}FM=#B<2SI6(uK(EK7FbF1PAnS6ZUwC)ko3P?qdmkgb(aKjyQ22iw5-3Lm$;2 z#d-@j>7Dd`S#u{XUz4N5lxIvbRJm3njI(GBZ;bT9C(>ne(P0jsNT+q9+Z>&ivU^4% z`)>Mp)V&37So&=AF}6wxa2N2a&$7RhR6|UN@_&Jom5)<6EB}`4Gv~SZO5Z!znc>@+ zCz9z-o)XH00`T%vCI2;Fk>80~$o|1(K4(a_tl(E`#dp~J*$h8O z<`=QfT4kN*C?pkWyejAMa8Pn}vgw;Q%o9#txn$pxm-&vw%f!<^Q967aF)X9bSrS?@ zoOkan4Q<1J+N7A3P58MqcO2O{*OKAcjpasmV-&eM4!RQCYMtd1pPS4b$pf|JVh_!d z;lP}Y46j3ek0&O(A}6D8JTlzJ^SU%St+*uBb=o>gPScj)pGZ!-zSb|NEg20ziEh2C zj8~87j50E#GBpP@$Ia2$kcWF;OP}jr#VHBE8z{vYsowDziilW zYQ6CW{IQchHcu>DY@QMB*_<7IMl#r;he!5v8DB2~7mtgaMMdGBq8U-YCmity`0063 zu%3AP8~uW-byi014a72h$KP5U4pu<7Av`lr1CHmP{NF4v+cobEV`D-0cr$pt=X(FQ z{6_m*!_CDLOKSaPGiv;AjdLyT9O7Qw#T>kq?`@I5bBoJbYbhT=nEnQxP(QlRXRl309ku$?RqoKbe#~j*7 zFL>aUXR|!}W6ZU<=o7Sg#d*&Btd`8vI!pbY29LCmpHS<%Q7M__W$p}=S(1T+$*NDN zGf-B=ppzq~7|WyNR5oxVn{Fp3m1I*&epkgWG7`$O?#L$Fh3)sI7{~nn{P6Tpzh_^eKx2y}d?9{kSfLABmV#_Oo8EKZzy5jC+xYIMy;IR!H*G>!OcZ|)F&0aPb`5d2c9Ji< z8`-+=TqCh(l+p92OqEaGd&rwR_0Xa9#sW33jpQzzA$krU|Ap3ZTM{SV2noyu3D+$4Iw+kJZ5o*(j`yxngzCMu^o1Iwz6 z%Bq}r0^1Nej5T zV>y>Gor9jLY-NnCxm0<&%^&Ez2PC5fOF3VZ%d=*Tkt}1*>Rg3C0*S%wGKI_e9 z92mQhJDgYqpDiR;-X`c18p3^^?mZ0w@)L=JVa|Cn3qnD1wushxRyo8N5isjGw^!#6z=P5)M#*B!)-g&V{y6m8aC11=wLCLe z#(U9^Zz=?}ZhvuTjlc6;_u|pe%kX^Lg5ibN9a~{mre{BE#_Hx2FYCUU`;G81xQrYF zt)Ip|s9b*fhI(?f?vwn%b}T-vps{SIrxBU3PVwn_*DAX%)y8z*r|Z5=rAOOnHNggd zIc*xA8~kqUGmWF{h|g~Ea7?4dU*W0q?`_OjJfUQfzpS*zzxTn+#hpLMTCDca^XR#; zp=;?AbAPJVLp!A_ifmnB47I-VApM2CIwr&i4Ynu`pvLhadFp48g9?49`H_rsCfmce zmA$3dMC_{=YyKbCAZgOY(!mtlX$G>a?asPCHQQ*JJN@+o|M;dmoh zc8Q&rvxxC`*8bvW@vYYVf*0@^&!~SM*7mwb4kmWH3#_>i>+GGj0GKDTH+xqpzo%`Z zOGbA?m$%;8>Z_Tp=7 z`dYf0wUhjMj;_u@SI^4K>C@HDeHb}?1G*Z!;HGMGUBMdU^gHe~>mMS|Ttl*VD(gH; zR|mkW^9Sf^$>MX-)y&+JT~dO5wG z%JVG&i$9!tf1#e}E52&+8%^r(Xk_lc@mxAo{sYm@f`ct<+v9m{Td~)F0gp?b+Wso# zC>w>mk5w&ay%Jezv`1W){N)tKZW1c!?vG#CHL}I2%qKrPhYbz54L!6!urO7npRz9On_p7LupFwYGMpXWAw#(W$;V?GX_F>k|X%nu9y?--ZhtBy0XLdZ9Dee=N2Jk!@WpSY}YY%y!lq3j%_S++bm6$a0281T7Zu=iwfD)#9(jBKlK z0dN=(ty_UJ4|{$&zmMCrb@G8}?o&TrUo`049&+6GFh6$?L!mR^ogBc1&7;MJr`JNC zlZ=y&S4UijY(QPa*yN0N&J{bsp6)*O`s5|oEzHLrqB9_O3&J7oU+I(1yPOK4PC?OJuyS zu@Lyvc9%q^x0gmj$)(NTS#`A5sJ(Mfn5)9f&aY3-&i~Hp?0f^CMG&9G-Up3*Psf+@ zvVS--zuXvKQ~K@4^0u$Kw00u2D5<@4PY4=hbJscLxg(uig^?aL4KA^8rkLv@P1}zhPK%b@VY0&k-gf_?rlt|a5(ADw%v5#&lI^1dJFgRzb zG?jXOZrmJ>`+~M_8L-)Pl#rLSbHJXrr!<3rAA zeLr|jf8M?$=4;z`^pU^$j{a=EqnOTQ{^Rg|m3rob|FOQK6h|*KD~Io6cu*fDi^`C1 zG27$cd`HYB((xMp1im9T7N7}zaIjyf4qbe(Unp&d716xCAlter17FMsYY*1$WWH8R z{0*}*^LOGCiq=MI@0pE%7&}|bbg^FPY<-W z)5{w7Pv95YK8#=JP5FiBqwN=3eipyb2<+@D&TMCwZZp^~}K?zlZ;}zh}eW{5}8c{XNiHHgVD3e3*IE zAM^KY`kTM!PwDUJ&Nt%zo;^eOdxrA$oUflJ)OY@Vo{cd-kCou(=^W(esfhV`4kr3} z;G4)}_<6XW;^%?CrvD%OJn&ZB&qEp8&jXMBwfK4J2Kjk92Kjk@a~40(`tA&l866f^LhJE_8=p**7-DZ+PV5q>W1;3Gz{TCG15=>pOl`1 z|3tZxbJ#oM`cGUMj~|M*34WAn`B8?UZNX{&lksu?i4pUk$d8ifLn&eK5>NwlAak5BFsx#(wXQ&3CqqZ|Cqf zK7SfEzVH0$Yn{Vt=AwvBK1@HV~%%9*W0+e?zM<7sRw2HZ=0RX?#C z&BT|Dh}ri(Hpbj(5MLA|21GI6iv9isG2fH@m4PW6Dg*Jj?=<7&D}M#C-}~un+`iX- zZuUK2I{4Z9zt_HZ3a|c|?Ry=u*zYoMY}@yKbawk5^TQ+N(?j#C_*C{i@v7p!#jld% zj%{ygK(@W%cvEwC&v3Ede<9mmm>2-Xafi645kscEcJl4uYZ|3k?)}VH-}D(*D9%jJ zeZ+oYo0<8H@XB5X#VeQm)H<1(VLVd$3-&@Q?vXgJ^n^ICR68a+H6G{X{;$Bdw2?Tk zt&H(`#J=3X{^LXVSel8+epUM&VsT!|7uwnA#CaW5Og8(&dV<8x!Belg@z{;la<%0k z@zk#pi`~WEf}SApCplK1op))_ciqSh_gj6VZ}nX_@m`7F{wMR4aG`i8^XeXAy!803^lXV5tL6meLFuiB0`c4LjVDsG-U zsa7o3SpO^7k5nFuHP(K$&5X?+Vkpf?d0RRkH#ULWK94!xj$g_HHy`HzzaW2I*oiU5 zoHl#PJ}`4UG19~rcTOU<*fYNItr~x%{}Q8bqVJBtB;u4O7t{nQi7oD)YMeZflR~WL z2s^&m;RRxhp|x~`yF3kfRh-qVd@73n9fzzIzD>@1Ro+dF*`Z>81xMus=PCFkk%#nr zAJ1eXBA-EF8F?Et?#c}A@O)X4(Rv5(hqdFdXXf=qUiQ@`H7jOUF_)=~LCFrqTEb7G z%8|1T;CLD1QE>G9*y~~J-9tQW3+s(9#>U=EjlDEy?+dcEuXC!|+?8WE<8Nw7v)a&^ zW-aehTYuM8;r`g>fRK=JI z6Z@+8|BbH9+$lFti!s87GOFJrj4+%FMt@aUQ1az_!D>oInUClnLp z#^mmPXCNlGjNf59PlOYb`yBP15|c~3#?!IB|0))f`y>9lF}dQeQ(|%%HyW?Q#^e%% zep<|I>K_m@J24hBORV0XB4#%6{PMmUZ}WS|pE~wQ4i$%LFdw<`h0Jkw%!zW9-NjkZ zicfUc*RBmk@j(q|h(mpvJa5v?hP0o6J7SZa_(5=XVez5oY2To3H&#{gp+ATAS_92j zU-XXg?#73ze|iVLX6apGeCIyx8>Q{T#dluL_m47W5^;AL&Jyer#MGWM&i*X+f&^SC z=2Cm$WG{H{w6mUnWS{js*j7+_{lGf80v*hr1BpR)<0gBMEwT~#*ncxPPsU#MY*aHB z`O|J>%W$Jj=V#gW!d~*q(7;RsxThCFitfyo_(m^I<5e~G=Hf4Dv4`$dn8k~8EuIF(;zLlD1eJs^G+uWo=>#h2pI!MrKm z<3jBQ>{;36Wn9QM>d7`vdNa^z++0KC1sYP`Wt^Y93u%8$HoQ!JHQP>_U2?`88BMIg z=2A91+Tme0M+PuBOR$H$8tAv=*Yz3y`Fu}W&v8@vB={eq{Xh95=FwQY^!#Mv3(P@7 z<v+8Q3mxis)rm^Hg>v929fF_)61lAn|PRxq@|3d$Di^`B~s z{dk^}e`5;qZ6(Ok&as~52mXTjH!8H3WmE$Hh0iWan`9&58*|F3vb00G=vnx18fCOr zbJsHelXG;OG7iolZ?%_6dl|(u(yQga5g#Q!YvY-PUUfcs>)bJsn75+|SyIo{0B!tr z@PFhSWU%NMJ^L7_Kf@Ss`QKhQAfqLp#sA`ajRDzr6|*^*-~Sl$xd5C=J`W|E-PrWu zYz%JxuR8R7UrxdpnBmA^cP;7WJCUu&mAM_r+_`)co^`4$)^m-4I`Ab~Y|CKit^S(m zUh6WglM~6e5gxY`|IGsd4{{)kUggcI2$ZCk1U1*ZjD1)7^;ePEk|~$bPp#S3cnsTS zBcDzKc2qYfY8B7lldWaZK3k_BoJ+>DGC^K5UnbfHmFq}rZ?#Wrg^3-N0V_njIBN&Z zt!~~SeWTo4ChtR`%E0yH^w&4C^SZp~%IEF)`(?Xz<+Bybf7FTnwE>(pjdJu@b9Twe zGvzj!5qQ(>X9{aV^(o>fZz=t{j{go% zKLA}SIV<4KfX<$gTo%Zpvc;L6(m!Q9N@hsc70vq0Kfmiaq%a5g**yud*JWRjDzVgS&!=yEf zi#rea)ZT_4LNj+QWAkO~xoj%KkC%4xXPC{(GuI?rdTzp)DJeNQ23}I$CdoGGeTm~n z`u0oML_4szm+_r>?ZDij=S@5pZJW+8Zq7zmjhi1rJB^$5%rQF{FNyTof$i16mM5E4 z6}jtrxV!tTr6*s`f7kBe=B5i_=e)#lw$>B&_-1@oVe?8H+xC6~#`5)y-#ayq8PgBO z#_*4Qp9px#t)`r78oNn_l>zh0O3q#WSl~cDV>rjNyc>N^v>7T_Rp%80^s&d|71qfY zp@*J#@;g2r`K@-_IStRj$N5K{3r8o6>zmGTF65i=-~aW`h1);(S2P!bv-n*2kzvLR ztaFt))4;D!AHcHn7(j8Wf~nZYWq?bOW97xiiL*zV8MPC$rH>a(;wo5E0 zT|v4kc22&{X+f{<+YemTGcSbxOFgBlo42e*e-LcNSJ-+9_e1C$ip$V9oUOIHin?Cm znZfsD(zEkZV&6Pt-h8#qz}D8q+Ib%rxsUC*9_4pZE@J-^b0W$mg5NGXXnJe#lVyj= zVXQpH)BMloZTMPRzJCI__0h?ccYhhaMa2na^Sx(%Y1FE%w)4sx(;ahz?+hqpGJ*?MPVX7Z5Y0GSa(sPxOB;!R{j-6d|j3Oa~qT03065^xjFF)1w#$#Q??mni#V;Z!IBq;VIj0;r2&o zafqk2M)C8#&f_R#?N&_egJPfVV!ho-{ zeNcRn@{0|ewc)JCG~RS}i^sOlDQ-nNcMoHU*qvS7F`Npvi_ac_xlm4Z#eU!yRxZiicTv{If3;6}Lj*^7xGa_*t*pRq=V@n~*lWlFWEy;c|KhAN zqkj&0Ro7vw`m7Vr;3FT#Tyj#b;ao@Z>uy$l%8BgZ@Q+2VaK_s{F3X%moYka28a(Vl z#;$pgeAeT_ffBCm#9K{;<{6ikG#~bQHhI#m_9I?n(@}3)%R0`sBFEIRuX0~nG?|=> zlLEZzNB!7%$Gumd1LiVgRj+H%)u+Da47^QQYk^nqgKo|8>gy&UN4#r;nk6P(XFh@QiHSN=}h1?v>R2_tdF+6!&mm{atdF z{>I+h{ar$TD+l_k9QNl`*C^wdH5_hZ@9nxKQdfAOF7L+b!o$9AAPrDQ9g^UdY$rFJ2`lzPid~JisiTS zthb{6f|BO&e}*3@<(k8Jo#AohJLA5zXks7?UzZesd(PbSgR>BK#RmzWL1^fue(796 z>TjZc%@4{SsxhW{Q@M2fv9{>HGaoTm#@f*kYlm6qw8Nkcc3Y@lvM0>Fw1}|}9yG4P zoY$x}s4Z$!Vp|R{#@x14#M+`cP;JnB=(NLUpG8GmcR9KodRm5~Pq=N?bNxmiaL)S5 zu-b*okl~bbbqMAiTaS=_sc(w!H<~MA^Qg)bcipPI;}K#o{eJG?!2p)d>`K%vl-tOy zvkY5rn9IYZZ=vgoI>uD7&b@%&^nEI@G*?R>-Y8ou^0S!Sh;ZUQdU8P) z=R|U;J>equU_HDhx|H!0Vcbpzr={seFlj?^)W`oY{PlO>OF0)i@vZo%qndqzk?&+} zDp*;yXL9TvdcOT`8Sm!tu8eomwUryGi7~CVRL1mlwI_pig{WI_>u9SN+Mm*{z2$9c zlla`+8*B?dXtkLSI{dD9Nqq-i2hMjTkCTr$sUFUykxr%atf~gidd1#L3|8!1qQ}WE zXreo6K0BpO+G8M367jLbXJR**6!1JefRDq{)8T)$L4BKavVZ8dyX{sVVr_p(u5A5Hadam_Q zE%kD)u+~MP1@tY(V-+fkoYQxMbztyjkA)IslJwbPbg2;jqYijjG9oBCf_L$z`f$iz z&q)Wd`U*RY6UFbE&En}Z>B`bA4Z%WRQ9Pw|;Qhvle`^?pjX&wclU2}G<7^rCgI?dW zYdrqmdoFMIwatIj+kmau<*@m3 zOIX`!T!mS?2}U{fN`F;c^tw@2M7hC3Rw%HZckWnH&R+xlRCp2Hec(m-8+_hgo!2=B z%7Vs~@R@i9UT9sS-^koDelOK;cokaP{8}Nok4$(FT#7Gtm?!?tUPmL(g_G^j-Jo9+ zxeVqZ&qF0q%|iy`(n9`g9@bgf!jt$~@*RD+-3Psl^=7n~`L96pAG|4^@B9W}e%5B>Bp&NOeSpWU&3hV6bbb{ib}x$|7&cvXMx|L!=Z zzxr=KLl+IBbC(uPamrZGnyZvc@5AV+Mv^yZ8OcHCKXYl4!GF(b|IH3$M<^WlICH0X z!iEoi1>c|^)e(l5-0#m+-i9yZwi-}dFGmQPmmabOB$emi2kpmzKYPKz-RcK zL?73Wn}ls^a$pMAbzBv+VH?*zF8SPnYo8;~?e#|Mct$K!yZF@0?{4p$XxB)qUGn-f z4HE<3Xb1)FYzPOYj7tudOz;LhR#LEua(17RjHrjRG=u35Pe$+?`Yts#rJgKr@UKp5 zc$R%p%g_<^T>MoW^8PASYd_}VCdN);xp|b;x8THqd2(xm>bOvtoC6vaTo3!yf-#uV z6RKje+JE$S&l{Zi>M!w}nEU(s=Og2H97opfjMQ_s9C??~$NKyw=830&^2LSK_w4vo zFq>yluCI9`?%X(>|5p)n z27xbZUHu^S>AV%`ZH3SwLVeG$-u@@(A={O^$88?xbS#=_^nH)-nzf91=$r%P6 z&zD=tC(1jLPLy>dpQuD;mtAUZ5-t+?;e7bUN-B#AMrj%6K>|l~HW;_=`29oS3Z|9h zivhGTwC7jx#a6s&bFZ3;_CYPg?d))F;?2P z(LpvOz2iK9T{D@Fw72D-Q;c6|zQCSQ2)+w7Hk-*2t#TF1W)&5ixi$OH(O>e6?tN41 z9M%r9jSk0$9q^&=0`Y8sXTk7*XLl?~7jpE%57;sR-R^?xQ5^<&_r&lnIpEsa63+{? zz`f>5`|MkIJczAL{Cx;}+i>UKz8O3J_E(Gz;wMgvX(#~hBChJc#Cd@qKgaU|Z;RQm zW}e-KWl491Z-vJS{a){ha`uZo_X&s6Ik2C%hgg?M=a8R(Z`!4E7!#~^zOl>Nv^{EE z&{*~Hy^)j>^%OZ{N^P=v^8(=-N!LXM+fy_IZ^EOh$8P_f7ba_bd~YPBMm;wVYX1eo zHIn8<1>1A;ncELdb{Qdu7SM#>j{f4VN9^Dn`LX{xzTs*1)`Xc)qjd}YbI-eqp zy4E@y7`v&g>&qGQiY@HqKk~5!gRs38QvXy=`$1LCmu&Uf=Z+yC=3_5HRveRz(D&8I z4#^OmMO%SgynuDWJmC2mfv!-8 zp1|6-X02?QUg-(G7WoYdyqrD3xc1#@a8_2`sK4i&t$&zrwaO=CtV`M{UNk1vT|F8< z&Sl=Qjoa}L$uA`O?|SQj7jhOkXW~_RavNLLj%n%bf9VSvcR3gPo70dF@)MH;#ez;4XY_ww>K~Bj>xJUzQ-F z3R(X@!##p;a3H=wGRrx~Di*tnz0L8L8tBmCVfhGs9mpr-t?^O$6&-jJfw!G876zUh zmu{aOln|rtJ_lBA|2nU8KG&_uoY9xUS$!ioZ_(HM-hA?ve8bOKeyN=4m&SRE>C3SJ z@A6s3rU}sU3eofAOAT*%lWZTZ+AjYqwyK#`ORPvW=fEucF1r3pMr+jqhgN*j3;1j^`{!Z_9zlb4RV~Ez~=h4H>2=fZ)TzJci20j@BrsE z_HpLjTflttb*uR`?^t~FDywhuTDsO<7d2$7G|XUEv2=Jd=))dlgbM-}T?tN0jZK;8 zdllY`1H$!o^Wwl>u3(1a57BuKO{`HxgL>BDMrdLHd*@;!jLqy29+=Mm(XnrqVXxFTTARP4 zJ|*Bp^@TeI>a_UY;Jh zMAes&&RC>B`nJR$4y4krP{Q+9K5In}@crkx4tVoh>NkV~+t#NAU&*oBx2^XEL!rXJ z?dlibl|j=Gcz=yKUOp*{T!Ajm^`HD7!RP!1fnVaoDx+_8V~GEvU#9RwACmDQsU6s- z(cz}seR+rWSJU<&^GhLpQXk|G38xp>v>-=F`$H*nqRJV=IeNC;P%!H0OM0v?dS~|$ zS{#5*-Mp*xn?cUlYcEOi(}!t+bbN8@gWCTvJfZg1(SC9=wI}wW41QL8RyXqE1IQC+ zY>g$hU;_Sa_B4P?A3BHZB~`1?Jt@-z4E4MEQ^uyMwZ^8s;4%W;Qn@Vp-Vp{*+;0PK zqP6g$c6^Ng4c@wi%KxPA^iH%_`LC*M66fx5_L-h%@?2+K`rdxv1=-P--NM-@)seOc zdXDVU@;BYh+#;DN-TsxAjRZTw!AS(^OxA9AVDhwT~-Nj(8}uFKFz(B4F&Y zc^2Q~9%Ql0-!H@8$a+L}gRyyKz);$|Ls$TT)R%$d;WjgLIXZ;j6-jDe-t zhm)YM))_};@7(gc@mBOGXLw!byD0EU&KNsFUoRRrBKSM{`|)vE!5wzxYz`Y%>LVQLgc(u>4|EaNJ z!#n+pWfLF4l|>)4H@AQ>QAJyJphs7G%JytPe-?cz*WMUiHhpfh>la_LvfB2GmvB$? zi<|tnRz}*EeUP)?xGP3)*;?spslD=xS8cRxAAJRFk{&C%RDA~hWTVkq;qkDSP-i{r zoVOTn!aEuCIV0Uz{7ZC~2Ig|n=MSBW>Qb(Y3dY(i9lcg|Sk1Av4UYST&Y??3&5a7i z$CyKu6t6@1G~4OW_I!I0)GXq}?H zw%qHG30-N|L|^`It9>0ZJM5btC`tANyMtDHCHH;)NTAf89t<-_Eb)&FTHHhUK*G#H z<|Z>}@Y~=w(mNRCo#eyvRYv>aA1pvGn~#1rkF%ENE`N`8%J1(gLw~y-J?=X8id{== zALq2M^V&X=H<-8Ig`SD?RN`FyPHe9BS;*mpx%t$&Y65X7d4+E?n|m%!S$^n} z5zAk_!ngeJeB;M(n-jsWY&=R@NO>hDTp4D zg1(Y$>mvAgR`l__f_X3KGgiEfPQp5EaWIKoZp*T9fl+mW^m-k$J-SU(7T}xZ9q0Mu^dntWTOyx5>Xk%_|nX&8dxh^j= zX37?#*gnZ*tLE;a-~{7S1pIBfE9KF=eot<11u<~9^!M*}?B!!=f3DqL<^L+W&e)ZE z9p{{0YwX(ko_B?Zb1L7q^(F@ppU z_T2i8cSRL-Z$)OE$T#}>KI!Wt2kPRNK4Yv67~E9V$EU;2w2t3R z{H|CvvrRY^KI_;cn@4Q*V0JxBez%?DsiO)}^(HyzirK@s;@L zL^d(5BaPkPXP&?63S-xJa7ygxBX@adKj#6zyT)u5Zr>_4S~ah}JE^4ktzvR)fj`z* z*~+sgJnM{KpE)K?X9yphiELIZ_v0mub>a$%Yw+`}kMl@8siW$^dpdG-xVYF5BFut&+Rn=`3rqM3?uLaij zi=`7uwge0R5V^8_im_`rADMXMUDo?sCmJh4m-Ci^srg+vQ$4D$7yFs&RvTVLr~LXYHEq|M zR=emYn)2gaA=~G6Hqw5ye8^^XWMipx_j<|v# z^z9NX@FV;Qcg1O}Etw8u|Y2EoKw=?^;AjwL4J47DQ!RS zRB8LmbLO36nq)9OiMf-65U&MB8cxr@g-<^0A? zb{X0+{#I}iHnIhaeEN&!6aOf2{4TFd;lFfL>8dWxPUD#s?^`6ES->@Q#rrOs#wETP z0Z%OBSqiWlxfk+W?~~z?C-|Sl`)9bTyq7Y1-^+iM5&wB8C%zINinqj98(6phGkO2d z#8)m~i?3Y$`rF|6rWk)MgufQW_-irzH6oB5yb1nF$r}|+9+MMX2#+O=$_*|u=d>@b zpVRKm%no`|N7=k)rsM<-Pi{~#R$2dJ^5tqD|?-J#t#?kr8IoY3^n3sHyB&=U~CY;3IH4XFb+rzxW zzZzc?3nuFt!DJra<+~A0o3*0;+xGh#FU*!_B+ZTbfZ@4u2>X4kFa7JxUnrN%66!C< zKUYo+_0NWEU)>PK$V` zrJScOzrcm8^Gu)PzrZJJufr;RMpQn)3vIJE>r}j6XgiZ9IPFY{wX*;oxsZO(D7!8y z7?;NU_yw0<7#@p0S{5Axzsx3PC71hXt{g7G?M%HQpf#xB9TyCF#|O3U3}IVyM_w6_ zulknM*?}#-*@2Iy76tx~uPCrEbr$(YW(D3^mL2^49p2zocV-8#zS|qz^h|be-50#U zA1=!ZK7WTNn0IGZF#m2(@XjA+1($rz6P$D9(Ux$qA2KE8q zz6{Ln)Z}0|JsCL3!F{PIK{F{OSn;`(;1c5eDk%TnRK+8j_FDS@xu7|tuCI$c?=Pn% zM_(D~iyqBSiXID&h@P15jrNs$qFVomo+j($E^@f{m6t}l(KAlWpA$WBiPd*3cs<`- z!?$J8m(#9|K7xE74(=PkefvXZ^u&if(Y_HednT~^Ub1*r8hxEu$Txtkx>V0lb$pIG zY#E4;$CZKD)a^YFz79ub78pkBTFIfGJO7atj;!i*{#WroE}!olBxmVw{9WCd-<2Dt z?e8_pmK3QxxU$z>@ox>*yU0M>rkNnWZF&9k3ma!f(hX4`Fg$mjSzb5Mf5mcWZDKs^ z#Hh%>r1t5#e(#`6J(uzDse45%JtOu&W$oYiM&tbg??HS!=1G48`Il$KpWk@;^A6zn zjf(=lZ#(b&CsP}qiG34)2mS?b$amoXjPD*9=3Ue2?+oT3yDc53zKf`RKR@-^Ts`YN z^_lt^Z}ZV%-a+@lZEpHw%zrn^_wA2*ZZzUPb{p;m@{;(-NXm$M?i_$?$0RYP&|^Ni z0sYn>M%Pa)uAls{hVolxm=XWE=CORr_yx9%zW4Csg@LKOPl_+zAL_bj~wW)vp(#9%88v;J3`vyp*(ExrS^DKV9y9@e-XY+#m4mD)74%k&4<1M zE21(5qc?0W3-8~IJm@R%5id2(ij?y_!t?6z)0-80Dckh!^VnvGakyjow5(%|DR6|`Et|v)I-~hO^3V>ZGM(GfNAVMMz_4_A@aa) zjHGSZXr?yKqrAr7ykmCU@l3@G=)WCfz%$h=zH-MU`nf$WpJrdJ&bYvqhu_;nj(cyj zbSU9L{%hgR&7D?mogM=vys~Fu);5o|vm4yr{Q;w|l6>pA;NQcg*cR7kDtmzHAIZJc zW9;tvhSl5+eAi$43hiyc53|AJZ>+k=+x+;bl86l-x@kRGHOAquRGWZzGrDpn}lFUtmV6;RV6Els@1)s4>Y6-Lu9UnL1-*UZj3w zUd72dfrD$zNZO@VL^;QLFEb+K<3E{WkASeP8KPQ6xN&~RcEXkSk4`iz~TeE<~WkAjia-V#nq zZp_Xti2$p{z^;;QQ4af*Sw`CzSgqN>cm@BS%8r<3_5GInHzs6mdE+Nm}LD@>LhrzRkP0R$a8`$4QDyOX=N4TT_7fHU9s= zNaL%CNrmek~QPM59j57^r?sPKJvS<`CGjiHDCGO!+BS&Dysbr z`?j{+SG4EX}ghOGID9g2XhzA zNc~Y>af-EKfn_WnF>X$CjwgG*@c#yW{9jG(s0GHcx46%GV08XH|1c(h_XFvRzH|}0 z9Kp3{x-=;p9A6VjnQ(1HvhEi~cG_=^u3X;MwKCe42@iy8m$&WZH@2NknUwv3nHlH3 zGVA;Hv0q^~QdAj5>+76#&P;VyfQQ493p7{G` zSEq03!gqd@cw-NH2($2!yyCa|zDjO|$E#MfO(Nc8PI^-Caq=tZ`Queio`s+%yLYd~ z3UIMaZFzB1lwx9b^S+WZab`8xId zf=fR8uT#&@8zu*yZKsX(@ixGB zk3sY0g~k<2;X9K!UFCQ<3U6gzHK$p0are7xulv53eeD2u?KMp5NA9NXebbFy>o0M5s|EZ0 zDSU-YL&l9djGP+@k7Xg}68Wr-xHMPB$zB+jDMQG*SD>Y29rI9J)@{NkbUw1~AniS0 zS*Kj#D}u%qPq9yZsB!&J*csQ4n&&aDV=}W7yQwQPD+Bz7zm6dSKF$KQJQyOSZho%(yG}2mC+FV=vcJ1u@KE3A_uD;vG z<*!;cF8|99jLV;myevjue*e(;{P#cga9+`YG5Kq}nKk!)?{j(g)m~Bi@5swl_g%54 z6?s|2UFW2{WQ?`trDV0+7Rk$O@!DBr+fxa$?Jnpr5nJKQT$)ekjXJv=tK-ZXSB{Cl z;&NjMc}6~#IDfhF>|yw8DA{x-c_#ikUwJ0}TAt4Mg}*L%{Kn*A2Yltq!@c;)GT?)Z zm~763uXN7Nw`Qkr*^4avSxgolVcqfzWZrF6ceYJh#ubx=ORFwz)ALEoE^W&i#r%gI zU$Rg#R`OZ0T(U3&`ewje!dE7|r8=G)pV27zdy$1tAq#(mEVSzxUE2H!>bZz|zN0&` z@Z;3u%EDg^l7*L2_b-rz7bUbovQY9j-UfK;T;$iJBLnj5UT`m6Ogfp?k=lEqwN@Ex ztPNbUeVrZy@#7u#y1vBoh|w7uSg$o|Y#?9gQyX{*B-gVyW`L=QQKy1nO z%*W#2g`&ird}U1hJ5O=KyAM;}BU9t=_KhBRXWYy?V*qA%!n@F*?@9~L{N0j-cc*<9 z9Ok=(cZ0v%ciEZ0>rQz0GBGa)yk?>F%WkeItOHn6Hm@#ta9E9cIuRpNIJ0ee(L@HEz77sZTB@1AMobSNZV5Fe|mGo%xEl| z;@c85&EB#HH*OvbI|Lkm$chw#vs7~L6{82Ck1g(DE)jqG$DzxwEZF0hPS0KI2-z%H zr`S0X6u;@VQ|qOKZ)#)T)DHf}$N2Zf;A{LSRwk8aTEFY!1?(!V$ARbK zxSRE^XvUhiMR@Ljhh(qcPv2yh$F8wB(p1u{^1>PW6lM~KxN8#mKIU-OdbYv{#%U*f zxMlssvP6i_+=#tJ^mNyA@{_4ku z|5*k5&nnn|)sI~l zuJq2~rR1;LdKWi)oh7qE%Q-cx~{til65 zJJ%wbl#q5p>rZ!8%`&Ez%Fa&#V3zcU$y?jhqC9G^i4dboGq>mYQy)D!Qg@YG4?*8 zKg7P%0k6M8Y~{<06^+$0Be|u@Fm}6RM(t5wQpi8~Tgs|Ee%hk3tafNWQwQT@U|jrP zY_Dc>6K&U=AvoKRacjBAbJZ8&c_A|F5HS7V%b=h1uTU|c^sP|)00mPqo));GeY3u| zFe##SlVC|tQC)A|r+CbLwk{(4sZO`P9^p-MCSz~z=XWgBJ_+p;$YH+324}aUnffEN zqnf+gVA2-V?_FKDP;JQNu5nZstAD6^HGYJj9`NEp4$H14{D@Yza=^0ALGXrE7`{#AMSpNdWn+zmY6K)a=5x$oo~8I5n`9?I6GmNc)Q zXtmaV4!b>V4Q3fD?#VRz@LB4d&ek3HCEV|VSAH&|*a*t6R4C z`~!7pzI1&sr{ElX55!0R&>oNd>pW-Pd-x&aG3^r#qRv=T3~xCh)FgoodcZg?L)p{JRH@1;%uJi?gyY2bgD`~5GLG|R3l z`6v5p&^xxb4*y+GkU6cUsOTQ>(z>j+NOQDkjSMm(5TObI;;n#8~l@n2(ULyV%}?$2}X^!5NN@MQ))L+jwS=0c`#umE&0_-^s>c zKc{Sk;IN0Ug!?Mm8Ly|WfAKB!que{DcMdjlaxjgpV$Khu%T~@&zZ{&%&$x`daOe$v z<-F^no@(?B`TLZo^LFs#hhOJTN#AmN9{MqHq8nCDJ%K-Q6aE_XW4~=<&7@6|_2>It z6)+lNy18V4U}_DZHN!r&h5D<}b)}mvga6dVWopODsuSfaBYUL7FQbffc-d~16SNW- zCON&OQ;lU$*f?YDLc!Ma-L?!cdp*bl+eZY=jOu%eDuL0(9P~Edi@t8Y9X&5W50so4 zk38}Lr;7T0EAKfmZsp~B^j>o1CHxj1Yz5%BZ-))@-lAe}sK%sCF3-3!NzZ|~7RN@yVq%(<{HO|MvXDgwP#`#Lx5UQz-w;^#n+hfbTye32pz3q$fjI-wq(Yn5`e`aFcW2sxb zk(R(0=E{593TTJMq_OhywnQFT%Q;5k5#hk7zPCv7#=*hBd^NcLCb%cAGTwjLSbgm4 zIM@Dn(tq@XOT<%UtcwPJ+nItrKiOjcF#A+J+B?j?knECZcP9Hp4EBi_N&F|iDwEvy zvHvdbR&Z{U%e(%S_wH#v(Lc-Z6$A|UYcKVx?`P!^%DCgw=8+hF{_H%$xUzYKx#kb% z5n!C1NA5jguDmCKM`pE2Ho0=d<`LTP*Tf^;Deyd6@3k*-mt z{2z`-?mgjOdCzG)(r^(rlT6NI1_$@h?>EpDG^RA?Hl3o^DG%DfIFXDX*RZYEZH?)5 zPE3Ha_lvy1%mGFr>%-Pcc!GR!Imp1Q;Q7C zLxvTwXK?f{#s#J@PQ?>%#`COb50f+h`}A|ObFzQz zxqR0>=(}h6&KXyCgR^`0Y#@e6?bV*3t;{v0vH8p4k-HP*h|_n;u!9p_IXcdkqi2^R z-yc?vN{+bWK8#M`w$DJ`N$#3F^C9nEq}*ucv0rkRZ0q@ub@IJ4?yvNmH7+O72E=-o zb%cj?tj<0NvMUv^ zs*`zk8#s^Igoyhw3$-ufcK9L#zChox_fLZxbYfhzF6?5xc}m<6`Z_i!J9iDVn<*d3 zo3~zrEn*IPa{t0{L#5{)H)Np``z);^*`tqLoWAVZ%cVRsOSp%zVaR?V8?FI=xHNh% z$FO72IypyTFV{qLayzaJU2p-qpmf8!97i{-B!(PYg{?1|x3b^TV4jDb#gvWW?=5D1 zP&b=wpbj-gs7U%mYGO^h$;I3KL8 zA}?lUO@#4f)!xx2eO}Ki$qOtv(hC*GAF3_Xp0Q2k!0o_ynTEaMS@iq@f7%w6f0Z*6 zOyU=`kIpC{_lCwRu+D@ds=mpRMT*4y5}(PE4Q6r&{NT zZZ0it`r(rm|CiB6ty%HEZCOyeY)?Ap`DmT0cjA#b(C`@jD5m~S_A+XGbfM!bXFTvZ zSL*YldWj(!jN_+SOAp4e@aU{l(`_7QP{(rW*ZC8QJsJs)qcbw{p99B7!10llx9@?M zHhu8s!?lN3XXamW^J}$-XM8U0rLZ;QxxE|nUSixl_npSP={HAf1#7FB(fbsA|81>owaR;YC;b<28cdUO`#OL6Bo?)$AN<3L%SFm>8WUIFDTBBC$ zto6Xy3XF~!jA_0zkFvM#NdKYinRX<3WZHBi(>`YNs7fcI0H$qbhS`^^7gVHO$W1m(-Hgo!xTeZ&rNg z$ZG4+72j$6b!7}V+Tl-S#w|dW3(?ep33ehdd~FRWRIz`+G<)xF}8HZ;)lJ}fBe&O`8Xp!58$B`w9mGS<1 zV2sU&@1?tmN1n*|$>tl9iJywbCKSmz8V#`?8&;z^D5Mt7`xUvS{Yc*mBf#q_1(`GNU@ z{p*^0Tjp`@-BjWY@Q2UV*r`cQYn*DNHQr8N7r^_s)7J&?`0eypb4C!}SjV_MMEh;M z1X&P9KUn%RWJs1HLoCB;mkbGU&WFX>L?O=RkPNwtyeN~Ni}g9iKe8=?w?e_%;b%<) z4SmSW;7N0Z51HwMh6PoTBI(=egK!i2iNj-M;C-6kC%hMaj(h^N|JY7s-cER=p87Pe zJ^swlxGH^9IIxw5mY#+~mT%!PfmUYBW!X-kK+#`u8)?gn6rTHdiw%3ZT{7Yw{h)cIZC zYL%@^5?{hSm)N#nvIa8o4eP(7LppmNw2mFTeqBNwjMm2g5Q`%^J%7CRLj((zKfa3m zupVgd=8)Ig*v|2?XyAN-A=|{6Np_p??f$vil(_dR!n!gzo7j{U?CsVbmwJ=Sv(qr^ zu0EIZ7zArSxJ1{tb6dw@$(QQFiuqKvrz~l-=bX-YU|-nKd&-9Mrw-av*6)>HFQxgt z_ZxlMH&*O(Vz?x4X!A@Tu{jOg^-gO`)?%}KlS}RWAa(K?-Ha~Gd#$T?fG7Et3Rn-? z`uO{?;V-(5{ZNkGMS88uNzd!VZXugm6L;zQ&B8IyeddNd&NPe2ci44+wf+@GYyVT8 z6FOVh_tlc-Lu)*do^P1V*p>TIzj|$?lfL%g2R?LhaztyM3V0VDDwO@m_B*i#s*=AI zU#rgGe5llFeTY7!MoS~CH)<;U#9~EDB6>zHqX@cijoOs{5v%ofU@6~)d>QGC3+b7i zywe)eE%#b?rl-DJ3C3B^4jo|X_v^cxNkli$Zub6h+z1ip+ZqHs1ZC?^F zcJIKC1g%?lV7shJ;f^g9y0`AY7a^bV4t$dM##?uc;Xa0YA$MY!c9Umj2Ydl<&m>Nu zumGG%S7|OR#m10Y^EPK9i|^h4qJ8r%_zEfiWQ;$aq|TSvC)CNim&Q2!(M)?E zTyAc(VeGib89Rcp0~l4n(6|wgsofd_g5i!0^(k>|G#8dcG$zFNOUM`Lj*T6hHRXIo*L!Y^-Vp`qR#Tg?`gzD?A3f0$NRZ&oPb*R39-=F3B z4A+BP>$%o(t-WgE-(%C7<%vwc+8bf5+4mFhto5RB%UCF+-=j45yJM;sn~8XP+4K?3 zil5wwOe=ujk%4yX7cy{H1$*u^)(m2ZG)^Sr#1}r`==Xlnk~loUZBR^}-ZPdoe^h@f zY4-jR;J)RW*;RZ~{jFMG{rbe`|%WY4ZT@4?c^6cw8+kVY#KmN4puU|7e zV)_c3;Zeb;=5BxY-K5!SM|GhUSpy8=Kg|5PCid-IbkpkZUNd_GZInD&L(HD?NmWC0 zl~r785d4_3^#fNjUF8~RyVfJB%f~bK`yD*@^IT=h_$?h&zpH^?#ednm3%FNN&)fH1 zk8HROd+N3ExxgsFcH9t(>nNok8PHLN%a>L05#tf#+XHdo+dn<<-H>}kq1UjsUdG2? z%^uMwlV+d$9?|c|^!(*C_DN&g?eR`%`6zZ{ALHO)8gX?KocL7v`^V4Nu(=1GteQaFDYTY- z_T5K~W=r;B?1>d)92pk=h~SKE@n@9oQ64;BrPgfznv$iA!_Uw*WU%JV`r9~1_#&(I z@V{BjLdXBmeW1s#hzjyNcHR5q+5)be$cIpN%alPC(VAocga%j^x zM;p7>kvrUO8{@2p@v>tfx#4awc5SBoHQXPi{37nZXFgQ!y}LOJ^NZijvhzEAnQ?nF zzC6i-h6T*Y-kjdj1;*kh8UH^@O+zpI`D)Ymz} z+Vo1E)oNJgrli&WEe7-A7+|YkqFERFbE`f1&-PqNoC*h5&MRkp&SiWaf~MfFw}7*r+2gR{O0!|Jy?lUK0;l1}NTg z=lv-1EU6hCWmkkaXLvt8{tvJ&_&sxyaz}(1_sRj>f$ngy@TN%5B=yx#tm-qHd#Lvy zV_0iB(OR-dvPrzZ1KFUMYK?Kp%T9QrYoa4JU3qECPUt0>VaprI5b**rsNx&ZQuPYI z(pMyV%HHgs`FAm%ll-##${4zp^Nx_$wk$&~#rqPMWyrBtypm=4aamSzvVWH50X>Qx~o%)z-<~AzcRcG2X;5)Iug$EpY=kMLm zGkE)$^e>&M<2%wnQ}eR!?0*)%TS#mrD*#;D0CW6F+7M86MgJKT6(6u85y}F@F3aeE22!P`aNTGfsSqi^GO2#+1#UIla|c!}I6+ZylaL zS50^LQ}eaUp9jH%;>=P~F%l+WRotMOynuo*_=fjKOeZ~FWt(#v2<_`Gs6rO~pk_Cx8DH^{EPksfy z5)Z14qVxXPT-lH?SH29t9)P#(c@_R5Cv%*?>X;{M&=(}*4!}#coP)PrIoAXHTRFR@ zOFT(E6)|4_XUQ+VQJqz4ulNwT7w5x?XXeB4=6IVAi^*x+fb4PkFvrYk)H%@m<)=^J z!~HQn+^hKL7$1(0@u82rH{!z_{(k^IlI%(Po+DFpxJw3#?#`U;@UVE+=3(|L<@5Ve zzS}1n+VfMO>^w&qdM&D#|`b?o*HN34e(R&zkk(G`k-~SN#sx~~z z{*7GVG*Cwa=hYM$&bdjNTe@O$UU}GsYsnJXU(|-jXan@_`wG7WNB^}((r@OJ!v2xg zCe|;ThR#v$?9UaCl+h0D+ezW>@~q~T1Mq~i=O?Y@tgwvWi_&wu;Q{M2*qEnz2i9R< z9#~Hq4{D9(8F=@lfp-<3WzX-ff$x?K^WDC$4}5o8eQg8pPJ@~7Zt!>eetzcfx)a{j zHPFs$lHz?>(lPMe;CJ0m47{^G&v#!P5&v#&!goy@dAB$@{?4;=;JczxQ#K&6aM?9;zoY#>YcPS4I6cG%gUdOom+^5g8FowBc2a`!i5U!o7W?BBM1C)BYGx}MFS zW49llPA+@EXX1-IAK%V)e0+(%orB1iZt`NC4~(_M9VEiAb7aN*Ly9G=gwIO3h$$@e zGA5kZOoOwkf-N7meNdwdySzG=(1{(~PrP8=vdfFya|snY_!hKNjO5^0!E?qbd*yAM zqC1=yPVr;?wcykpEAWgxzQp66Dd-P_cwFOaC>|GoEBB{IdyF`zBVBjS<*1PThqF3D z_*L|LFTVI{416$uLryVLg4INb9)&X1p zw{hl$zTHR6;^1#XQ})~W67>BIvGPx-4f>vaTKax3F^%^3s=LmqySk(4_(AH1H|)A^ zpg$_RAoi^hYd3MPi~m_=)Hk({df3P4^o_i0`lgG!;FH^S@i$}e9u_`$c6$t72srv* z>EZ$0x_#LYYs+`^Ep)L&2kH}!RbMALhlsh&EvHZGz|F2$IYa%UoW*;UQ(M0fdl!n) zqeAuaZW}Z$=f0h`mfg7e1@N%2+GzR|_{$SbRd1c(0I!2}o4zsWr@rxkzb^q7Ti48T z${D~!x3b&XNuTwN!JRYQS1ch8^FFtIv3Fh6T?+5&+e+g3Dp>QV&QR>GIvxiv=w6!d z?03b$VxRuv;t8>~bKgfSsEae3cbYnm&ow)b6Q`W3@;1FGR|4M3xtG$GIK3;j9p6y0 z_jt3>dHln%@+Gl0d#J~SyP>J+cy;~W;~$KbX%el~2Kp?R+xeeZc5da~;~Qv0X{@}B zZ^{|O3$dSa#YA}Kls4?`IDW9H^Z4bIx8K9FiSVB8?4bUxV8OzeoU#l zvIy?#_wyxbQ6~+k2&GM1n(y;;{G>*u#Q~TP~Qo!j`mmo)LNUOe%2(u(7!NiOYti+T8kRmp9r%rRAqWUXMNjx z?R{pC2J3;(oLovQ0&9q=2l20Oi*)@i*DgNb&+bT_D_4W z>fPwu)$4D%Y-oN?QuD8qOW8NR)QvqDS~`I^hncLI%u1ekiaqE*W)2BXfv@9W&Wz+! z^y6#%`qoevb33hB%TDm-lKsr7wMT$&nA2_F>L7dc?a3c=e#=u@L%NRjt&b&X$K7MX zSO^APImwgO)6t~^WHwTtx zx4yV0n>prmQ_f<|#?2{&Kl!XH$__k6U%$ngC;6&USEldz-ofqz=bgP*;r9X`2dTqi zUJ$y)x{!HARVw{m0-GuiTUP(w_N-RnRqc@nw&S%&ErV0wE!Et+pK|Qy-Jg04yIIfl zAK#&9ObJvaor;7GkcYS!I*w`p&Ji?h@^cP+m6{Ta_@T~U?* zSH0gDdDi=_$Y2}z@^WpEPp>oerJBDFSUU3uA2a>wM^^6PToln!KeW>}F}?(NcZDZ4 zUG_EloWL&+es(9=BhjuaxgTP>l8*uSJN2BoSZC&Q&A}S2$S$oB5s$P>erL6{n5&)z z({UQ`-xmC?txp#DlHRk9^ZaIgnL#WqqP({j-NCrEW!c5Zt4`IibBfi)y=X4axzn2Z z8n6c&@~5@4$6?W(9oss154@d)Hs{2Cb$Csh7#wW>zqMM!{p-Hq#6w5ZyvsU!UPs(# zncNePQ${jJc}Fa0PVdxa33OMo)+*CCG5VwRYcHRy_|wC)<`wEQu#f#x}Fb<=i&GOYXWC*Q#)tC9Ur@L6U%;;UY0={RHi8`dt#qXi8T zp9Xw}Zh+6&ub+*$^F!Ko8dn|dp>7{>K}}q3lMl$99}0FWzUrvjM!ubPKa6CV&J-zv|LhThJQ()47+Q$^`gMdG2-QXNm1BFK)1=)mcX`333%agTzxU1kPo4 z;40yI1M4BRtcMgc#(~SDM}sF`NGxxNe4*G5wk+eBaBtvF!=!UWwNK_M>Z`ZyT)wZb zMV2CG&HQt@ZBNs)t8IG)F*_yA#G7R1Ust~Zz?li7LtP%6@bXpi4G2!%J9aQvK266* zU-2aimhLnxXQ~HTewE64^;p!S|B8VV-m2N_hAq`OkDp))3U~Cal3&mcEEi0|oBAre z3BD5WCYV;i)0M3Az&C>i=NfmubHE$#TPk@Tyd_dbT+-rsyxYfE@8u`@O6z!&17at% zsWCA0ofADO_|6n_V5#50`5$2n;`GM>H|3TykU9R|_~wF-5`MMN1GF%$9^91M6YHhd zMPG`g-auS^-G!UBI^ee?vam&Q)bD|AuC{Z*aW3n}_vI_kJG5GoNkg74k3jQ=-oc65 zQk!Z^ZK}QPcAy>^QRUKnZj0)^!46)fc2##Bb<5uKXm=qn2sRI{)3w|C7U*w0I=0rg z2Q|i48g9{?a423~&hIMdPIR`MUp=%Z9u+SLFS;+bb8{`Osv`paEuI^i(O8hHtX+C3 z&95GgRKNF3a!2K$&r&^4Q8vsTF4ZyaJI8(J*_^+FSERo@-}O+XS+m(y{E6x(dgItV zao?`u^>#ro@pQdTdnvkH*c*n$3%--MOd-9e^Kz;4Yk@*ljE zs($EUi-W%E{Ls|mC%<6!XYOhzca3AkztBc5uqRLYlkIoe$@Y)=l27K30I)|85xVt5}wNM^e2lHS4#awciPFKEMHRJdUWCS|DJUJWBBeJ zeD_b%|2FD#=zkmiZ=?SX{cofHZS>zs_ur!b>i1!A@OAo~p+6paC;MD2y4(_Vb{B7CBfLGq=TF;^e;&1c;+GKO_ceDr^nmCVG}>+Ayu!3EbA7ZEF4#95IZEtE9W zJrQJ0PI}nk`&{ajOswa31A3?)n*IqiJ&~(o094;z+uE)9)WnalKacX0fw=|V-^DkI z#gS}O4C^=H$)DI0Tdqc~9)N~(-^Iu-lH`QO%eLDT+`S;{UlnnFm z>BUM2ug!PVJu#iQg{JiQjBQhLB50%6X-6_l_;1LFTX^F#*2j4!JvZ+7f%E?;;};o2U*dTK8{?(Co7e}VXiBuF@tX+#7xHU{ z#%|=dnK3B0CmEe6eWf!>r1zkCqZ5}$&ubBlz8#$?dvFx()AmHse;R+{$4UG)0qYIG zkmM&lDISxqRC|JByf!m+rC<}x9=xa1m2ugne+JKpmgUc1te~tpd>zlbmzevu zJNdTi1Ma=beB3P)xtA}$>7G;Gy^%66y7>{RH&N!&Y`4z4Rj2EBvF@SF-R^yL3-_Jr zGC*TxIi`HLkvhNP!qeL-*xcv6w{rj4_nR`kpQp~--FBJnQm0!c{(xZ4F=eU+Pp1n{ zcr(wZxW1V1msS5nQzqU_nIC4E`|kU=f6*;d{YA=Lmg~0lpkN4?`|wuPGs*on0SuMy zw{hX&CoVkUFR6a_+wd1v-o3ZBQ9j{*Yi;B?^evpX-OuxnyD)cu5g0z@mhX;J&kZgf z+8&|&M_ibD@1o2tF8+JJ#Qke-`M5^$Y8MZYIOW6cxAD6vbGeK2_(Qr6x_!Bm@@Kna z+PztArSX%{bGKiShq?czTfX}9)cM|YA0GtfM_io5zaTug_r2=`Pnu?$1arEN8b{W_ z)!*LRsPlw7j@7qOzSF%A-$9uv?zg?V|Ezm&t*88E7tY>$c>c$9Up8>x?c$;Pc3_CP z^c+|DpSb0#Z>Rpn?(^zfDRZgYmW9sr{1@`u+VF7^ehc}e3YjZvT~vMx;!t*Lzl`~h zzv4mWiUISV_$PR^o1f=9(HW%@6eUv@6Vf3%Tn1$9?r_o;o)HrBmFb1T@J>ab^YK3AVJZ|-VxBls@2eh|fT%0> zg*NLK{{n8_hfY=f+NYrQ6ZA=WJdbeJxN;Tru+K$tM!)oJ-+CR-`goS2TqX8$&rH_f z1v}q3jDgAD3k;n5Ltb6{Q(0E&4C-CSIp!O3thJToW=IJy*{;9z(7U5a_C*ZzGjEQ7 z!)neE6CG%sA6;Lnc#1=uA*Fsq?SS!lVN;f>|A%Qa=egq5zO&IZO)_=y4&&XL{a ze(M$EpK&60Sav+$p}dEaZg3*}>bxqGqZm3pxk$PHuYhhYhklkqM-}+2qel@B|` zk5h-^Qw{{avI07ND9nD-YJ*2&)u10ki{?D85n4Ps-=#s(pXd-6JD+4PRu$LnTm?V$ z*mXDk{TqIwQTf?jUdm=~LN+m8ZrqkjhqIx>S@K!B;|IOU$Jn=s__z7c>mt|Z*^3?g zIqD|w6M0aru3L0}75-!Hg*)+V>MZtI@n3U#@q_GVjpNDrTF=P91Myd;Z~hEEr6~nIM&sH=WN?RPHQO*Zv~f7rg4ffm{6}wyA>t33jhPX5TGxSb39Dv#d9E z2xjv5NUzXNS2h1*k|pW`^L95sk7S;!W0a4l+RWdO5gGk(?0H`eBbPK!7YuW`iiYFJ z8+<7jJnPj9FNmJJdJn)0u1uXiN`6a5hgh>xdx{6P$V)`OjqEag!G2ZV1hoZ!ms)c; z3)r&$k+|JAw9ng>4QZQ#v5c^nO*xJ-`@h4*ZI^f?&b`M6+*gqs2wDTbc5pwq9!!z@ z9mQwn%;%-A$m&wWER7f8+k7t>0bUHv zJdR#_6uf|&Or6F$UK%Iv{@7yh5(Y00cu~EY&$ok%et4u%<3Ub7;Y7Z?u{aS7Ck6B2b)JlO$1#Om35Xw62L5pxo44v4ox`DT4#2;r zZSlm(p-$mn_3Hcwa$yVk-}&DPs74RJl3hl$$+Hxp$3Ij@!9bu&G#@uVs&lboSkf1Jh~0l-JQ{= zP;++DE*)JaGhg~3x=bxFX59C&b$a2g+DOxRtT%FIiR`Sm*kl4qc4B%YGA1#@(iPg=)rc-UfHy zTK~=~l8e}bM7+LPpY1>28tfyc1)aTki2D~sGw}Ezx@T;hLEEF)`2X*SZPK)I#5Mts zoz8n*{ZmVO9-j@5^?O{L$RG-IN**n@r{)*(~(EBFvdkDO4 zf)`QryEh>N>U2f_E~j0st2>lS@I1!z1kV#Zk7q@8g|j(l8T#XA_$A1dZ(2j=_}~@y zS)iD6VBf;ponm>@Yk$Vp(3ui@)A0bS{^%Ty#K+_#AooBwdlF4!WaLn)fIVC3ru>>`_56%`ET2iT~XFHYB<-R@-pNZV-PqmGVIgB#_Wh%S00t!ZTz9Y zUW=bGqJ5FbW9f}W=*1o6yOj^w=6(ZtU8{-bQ~x~QnCcn!k5Pwsao&1&4_=7z5PfB? z^{Bksl-yW^U0BU~<-rMX?zHfS4ZOAwe)O#mZu2qLDz7^2DQ>=lv3^D$@XD6-%B9Ec zA;An!vi6_Xp?Q-74WKhx18G`V70zJ|$$eJ2z)AKocj8=8V|%a$Y4nE1p%Ne3@~bB# z{|OjH7g`UpsPA;=;r6k=M7D(ZEzW&jbwzTHMc(F*FHOG2xG4uoyRM9*XxL#KQ_QpV zTsqAg#~{x)(XUxtkCLB5aYbjhMT+x*Ew#$(A||WTTifcN7XN4G6Ae!s2Uo^!W8PSK zuJ#?mZ~pS3 z#;c8UhP*Y#{#6lj!rJ_I*BI5eHqIYv%a1R4@-Ba}>!v{QlP9y2PhM;dCRbQpPcR2& zL4P;7Uw2=}PqN$N)mhNP5uepc4wWslnFCEt_xV?pdmVhi6WEh(Zp>~U{s8~<5|s%s z7c0l7Fo4W`o<1oy<`8qVdW-xRt8#SOr$1j$ zv4S&!=Xu~73*Vj4WE*&P@cG8D<($RXX&>>Kvk8#RRXxDsyF9&~c&TW5WIgd!wZ_#zdmH4$Qr;N67JYTLQ zn&*Aq8!z;9^1bA>=5fgNhZF}ZpUOigU+8%dJjc*~F|IW}*9RzFmFc%tJ?Obtdf6{2 zdZ&HPm5vzOYEQZkajq)Inr=^u_W|Z5icexas-+nG=s9gL?(Q5zCiP+{FVvG5HW=Hi2SBJa?PWis0_c(hugzx##y-At8cjS_PvDJJJ(`O&A|vfLf<2p0zGkjfocrApeczV3;~%;OAE6KF^Z}MDg6RYkJaoKHBeU-^MbNmFx_|<7d14Y;p=Uh9(jV-G5E7Nc-todzf2VVt;r zjm*5sqSrn2Q@mLI-i+8C>|K1{=x+R4^ecca!ynKZhEI#r^H_JBY~rw)t78`z6Vp?E z!k=U>1>=pcU;#YBwfsaja~u5Eh0481OkdGx{&soh)EqY_7vdww7K3L7b>6(@vGOI0 z9@$IVF{d_Cj6GVij^pe|AezmUVGEXC^R?RZo||yW**J4NvSp zAK2FC7u>+SbvZn3t>Vg@PBDjnMa*GiRIR zkE3F~Gu!H=9>KViUp9L23a)Ly=zS-i9owHQ{GXqqoQFHFKNT7HUZuY9U*qj(zwV>y z^3~(u`n2D%7xPTt;Zqo%b9i#gS)ka%(Q`>>0l6hldFC7EnLoJ)oEISr8N1y@nv3b0 z<<13*G`FKadhY0&@jOBQ3e)=sY-Fl%F5G!^<@#~Q_&ye7jrcx_vW;)om60QM#nN2P znM%{I&HVw^U@?TYhz=4y#-I2!hyT4%`{<F!3_1F(Ef!*FGocM0;knW(Z9UhUuH; zD18t5eqMMq(0YXLdzmMx9^tR%A>X$P7YEUS;#a3b@4WBThQ;&BENj{-D|FK`WUpg) zU%y}mxjlJTOuH491+5vqU!wgb*~~3}%QXxf*e~CK->XDRk_9o~Spa>iUcoF_Ll3c+ z6uA;&pP%-gI*xU1h}>m+k-OdCfO%hD=m+-N_wX*%ZLbY8Hx9jMudU{NXrj;Ty_4LT zta9vaGtb#e*{1UBQ`Uxoi&$-jeMR&Wcad zzMnRp%PtD@T)CSqJ3dWoXr3J+oAAHJ?mySq$*zs2Ws2z7qswaSPtojKrPrp@&?|Pl zq1SMlUXk%tne=L&L$B3odaW5lukfXz*B$VY=+(2MyVGPUn@jTs~x^MEeCHVUZr*W^;Ee_eU z>&rL;6upVeaM!9d4(P`fTHmbZ8=WyEnQ*>HtKs?Wwu&t zyE(gV=)c)(H6D5=96iOmFC8;ysg%s(|C9VT?--9Cr0>7S^Dgf>c=~Soeimc%IQL#$ z2r(pQv?2eTG5jt*>4*8@FWe&ATH{v6_`M&Pki~hzANhhxBzIS{Z~T`$pY1=prHwOA z6WG|b>@yD81&rlvGnT%Lu?#aNCm6>#d59&~k1;+T4|!v?IXzZC#f}!9)m9uiE?jqO zJis+Nxav0AJpe8=ZrA7=#!Y2=H6DyzSXahQJTi-M`=!b-Tv6WBup(kMy2#&^T%wZin{YY#byvh;K5s$OiVfYfcoi zw&!nvo}C%n^Rd6Nm82InFK2Hmwt;kF8+NGV%0=Ma)1l4i=!5>Fm!!*=j4GeTtA|t3 z{?+tV`f@Y)@bsk*e0I|(&0%GmDb`AQQ}ll(y*WkY`Oedy|DN(_Xd`*gbMdue3(o_W zvLE|QOpa?GB*3Be?;c>y+{I0(V?MG#b_2AqSZm;(T_JpWc7=nV#e6q?_`4GCyHrlR zE0u#?G!9-pJ47;NEMCXrvpQ{uw58>GAKyr>8+>y0@L8?*Z^IrriCzCHF)!f8#4!Ci z_K3-!J0HBB3tpLH3wOfpp0u9pBbGw=@o1_W8JqeBIoP4gqDIH$S%0f~@88Q#J9#d6 znXi4|ZVc0(gBNsZ=X}}l(EA3_8oa)jzGqqF4COvlR8Ic$*snLG*4Bhx#_&VkVZojdty z{#(iQ&zb+qPvrT6E$+QJt@q3u%gY&$?a+Y6I!y;=F8nt>~H*|0%&tr4m)^46<#M152<=ZzyJ2b;-}Gx@OSkLE5h3 z%GnTuL+BR+C+idmp1rt6G1+dMmpRi9m{J!o|Hk$(zB|gxhx0>xI2Yr?kq*&%uIm0M zeqw!VU`IYbPut4ppz{FrOlO&9QT}4!^l|+nFzP$+n~SkGo@Jc0X41n|IMI5k@Pa*F zvX}a9hd!lC9Y1_Y8;7xfWVf1f!WreB;QwgaGw~RLAuk0CoPW|GK9H`&PO4}By>(zGQ?Rd-kj!4d)id5?1ABWGtX~Py`13^IL8`%JN3m?U)IuH zzHs*vUm<5zWK&O8beEOQxiC%zu;M2tj>XQ7FEM)r)9qX1wEb54Fy!|W_aA`9g2|Jg z)S5+>@p~&yQoip;(FN7Ovl@5~%#SbW&GGN52ApIz$T_=7olRW-*^V=)H?gum{Cg8js$M7CBp3D^T8+jqF_pww0_KX$~a* zkt|VL3DMa%t{`7)pd*HlP4DEFfqvi*a`)U*v8(#?XYE2JuV_aH_L=A68+Y&I$xkXj z%X0X08L`~%eim2ujl{2;y%g)RldGAt7JXLd)cBBtI``L7PL0KBe90y+X_Fs}eCkEm zoQWo4&Dpo0yrnSrsF(xIo63MCy-##SPd0O0%3seJ&a23sx))ne^%OMRakN0|lgzDB z&`Pt9y@0opI~snCe=sum|Lo0a{T=lbH!8QI*4t(y$LA31%lR3S0j?Zd93%EF6HYyk zoN(ut;`buf9)#0=wL?G18&p#J`>bR$ZPcER96z3OiS*#d<}iO}%}H?U{=4J#|0d!T zc&_&v3(AyAc6j+|)SmeN__}fS8*FrKvEGM#?CA;)uU+`wx82ZUnEeKBzMkpOd>*=K z274A}ve#u+^5j#Zf9-W~$EFE=}4U|EW7+c;&-}SGYI4 z;-KTculE~$r}E28Yq9w0b2F{ZDt?P*p|c-|4E_uH=g9nM*O%D8kb0E-OS7U~$Dq5{ zzZ4mq(-<&o>_;Y8uf&2O>p(TeKUEen6|NF7t54$_Kv$m41Tfy1yMe<{0DmK4gnotlVkZ_qQW*XJZb!HlJ?_l1C1bv-x+-hX<@dJKwb-WE+QBYgC*`uOIz2 zR+jj)d4}A0Kl0fyz}EwP1Ps4-_RY^?|I&okgVQIlFTra4QONa6pl3?tn~+Qv zU(454I@KzbO*iV9c$M7h!Sr*Ldl=j8xwG7TBS&(hU9Y!9yHfW?yVzJ!+DuOQQobo4 z^sj9v*WnAt{A*)erDG(oN*MQ{g|m`}fUB2ZIXQn)1$I{-F!uYJ^N-}(UA3F6t`_R) zKg;flaQ4y$%0xJ0X}_-}Kf-xS_4iv{&E(&YaQ;$+bC^`ez%08fz*%n6(XUUZ4&vnc zL$=Bd#y=n3HFTBTl{$A?GI9RW;wa}gH3qwv=v&Tz>Ka&NcSWg7JT96Dv4=(YAvSvJ zZsgJDp!3+|E6av{jLsr&R_yc4Lv#;~DxZ5w^QKM6fhP7p(GPEa5r-GNI7^+u;(X#Z z_T|kiC}AIX?MdR3e{T&2u#FfgVzu4}*`IcWZwYFd_?k=)3mOB!mNGq2!?8<;<^P*`<9S zJMec_2cv^ElcR&e^9E!{HSpD_JpZc?Ma-JJfsMMneq-C0oE$(V{0=|X`F1FMLi zU-{lmTQg__>dj*OJ7 zP#ZVXMrK@dfmY5hU|KHx3qY}v=S4*-9Vc>aa#k5~nK zwT+EirvY0zF=gsQaaH55v}f&U`C+HH?Q8C%ciKDW@Z8RL-tV_L7bq}Lydd!_V&+<$ zjCVsDmCrB_IW+?rHxpSm3;Sqx^5lLi9T(%y4My2V3uV)A-kzBoU>BLWf$Syhqq8#X zqfDE8BlZ!tQ*X}YyACYu#!kXM%Bk3O;KMw-7de-^6dMWqC`UF|_O92AeIz^Z)VYPH zV-xB5MS}T7V#UbXdO|uD-RYIvj@{IZj%}B2#U_cRb#0NZEyh+JrDL~e%sCPnbB+Xa z4(&1X>?Jd=pg!?P>Kh+9bzbq*h@BKq&np~c^K;NxJ7?7<&~48LE%s9*cZeY?;@qHv z8#NbkZ5>bERHKjXrd`=r;fYr1Vf67~zOABs9Nudb?@?!zpJK=v|4!G3&zuIH)%<+; zKlIx<8J&*q-imHNz9`!DN$K{-k;~^syF7h;1lTj26TOq-`Fjkzo9RmM-KdMjqEqYNV|Jf4`To6OobElS@2cUmxP&f znDI7qBR#j?aOWJdzf$OS@j(ASxpNN1W<894Z~iUkZ}3k396fv0XPLQ)@F;uH;E+B? zh~-~InU&Z8tSzp69UJrTEaqp#XRoxaOFTSE&+cJ7g-4C+Fy4TNaWgjL$^EhmJ`S&3 z2hV&A-uWo9s|wlW=0O<#hISvuMt#<@F7AaEJekc{mHq))hJ4(@ueFbN+LIu88K%z~ zPxdphhG6DC<~jCeiPom%1M2+)b}#!XzlhD2m~0QO8%Hi4_{R~sI96u*?i`Ur@@rJn zXY{LldL`P=U?KnPNzuV>`rpSd3tYU&RX&EerC9FhQD8OnD7#89dH#npwdKVg^?K_g zv{i$iRNHD(GFI)zfk%G6D%#wRFK7q<<&%Yf@nx|WQ}c1g;}+hZDIUqfmxT<-Q+d&w z=Yu^3_FU|+m3!MILr;N!-3YGYk1)@yoH#7c=ViP*lN{AN(~Xa@I{v-o=&NU#XL|DS zjB}L?IjZ@m<|>TCTau$^^44P6 za`ZLiXccnQ!(#+Io=%P)PS3^BDWmif^Tg6$49iN_=O$UHc`ZDfAuHW?$fw1!JIBh& zHbl^DmI0Lr=-C8blA|q7Npb7bYc7-Yoypi0^L)axOk$>8_@E zBfi!61Z*9AtMQbZE{-8%~d`7e7U%*yA_W8)sf57Ib%)zeXdf-ui z>l$p17uU%4a_y+W+tPN1{6!zm@E09&{Y6RaD+d~rT_^tq{}=b)?4HXkpTQj770GAh zck@_7iw~hQjnAkOo#dTcb0(jW>ermh^I>_pR3e_Q;pWKTVEr}F&(+Y;RoD~D$*1D_ zn8)g*ioGMc{l93>v%lY(Uw;hkHM}FVhyCz>3+)~F(FpB%`vu{PPTTmhERzrGo%SD~ z164`mooOb2v)@! zs&DO_57|$=Ve{+kOT&&VS$EqLEq}s~hA&|=-@XVusk5BHC4B-Q~5ogvtQ$&we%rk5RYB- z$X3~ziO(}8JgWp2`3N1Z@lBDz#wPg)<->M!a0!n`D3?Mn6;Vd(bb?QCRFG>(Kb1|*gnRz<7f;7LD|53Su@QImNi{brA1@iT!bIJJK^*ia^2cgmF*na`` z9cxVv8msTck0rn74vjmwujO|LKmU37Sr^_J+*Tjhw>9x~r{Ko*6SsA6#%rwD*{1#L zx7^dRbvpfckndvnR+K+Ug=i(jn&t$J zvzsHzvnf=rm$ScwFO9FkS2jK;?t|cMyU)$}wi3Qq+==Rw9jkt-E$#0TUZb4F>ftjJ zkHR1Fq|}aB_${w2Baho+=Wcu-oaY%hhrACu-!p-~HZEVUyEfGhyxv{_?Mc*lYK^}J zexYnvk!5wQ);+mFE4g2zd+;6OekE`_&Xr{;@R9d}^tog)>QB!fJ^zGgNAxQDO?iwm z_xouculHAAhvn^vbmgVbefzFCPfh2?K3i{ z`Q4mMz3jmiP0CN?;)Xm`$W1?WDi$op{aF6oXU3R19)~|4g+Jj@kDfC5Q}rolmH1RP zkLXJ|t9p(Nne}y-Azj_+;HRfzB(|N{v{=HLoiKf91>xP;mjLw$`%&p>;6Y@ElzCC4pO=rr(nVD<& zF#aRiD#%x}H&yvKq}#O@qQGie@mJ`=13A`UK6|k}zpT5Dm3_eztkQD-?13H7YvA~X zXJbCr2(V9XVZUYqTs7X6ziqWyFLL!3w5Yw?yB%omHT<-Xu$Q8Sc@{DxJ%8an>s74h z8=I^LyvrtYY0j-fw54wqV}hMQu1(w2W0AwNa8>>`H%F*w$2|jGu{rF$7|?mZ&5O3@ zOLr%xH|HOvo+9=&s86f|m^#~tN9%#kv{xXC&-r!Qk8O%{^^lh_c0bn%T))6IXmx## zIrsOV3F+WU%IU1&8g#Ja!M~M_D&0BOMy-ag-YjS4kz?-qT{~BO@8$A*hQ3NxX`ff* z%RX}Ij`$znekpqn$WayMoQrVW zw+o%OqzxW+ve5s`Zya(<73n&WoaFd6uq$@?tnMYOpDZclJKmf9sah9lXO1F&d`wsN z@3sSNR7@)$lI4la`@N ztF!#c)#owaB0rSg7ukt?#esNu**P`7B9g>!*p@fqv*%n%$?7n%VV6f07t7SSHpL_H#n+HvW`H##sYa+;E69_QuIuE7$IEVD=2t5a)Us#Eo$zdKX>y!9@9 z7ti<}o*5Nu|DTqAvY^BNi|EIr7wJIcO$W4^H{LVJnjfZR!FFUp9Da-=3*yLvI6RIW z*cn3>w8Q%`WI;?3u4e_kLuxh3|h^6F4|K) zvZqxCG%a7W$!qJ`=grK|US#Yt@SDeH5uRZScIjQa9bZx8&0l@wKIdL_^d`w^aw5;f4E0hjC0Sub8ukrsUlFnb z^-;z4To`FkSv}XanlX;@o0lGI3tU@_v&A@D1L?HT6mn_tZQ*yV zs^gSd_iMW~cD$l2w9Gbpq-%#N%F55N*A_Czsr4@{E1zSp-NU%o=D7FJPt}GBt4n?u zeY1lzmA!AGx=(-8$63(kn;PonUb;BOcd-hc!4@+6ldopZ@hCsdKlXfw{7XJ$>GxSb zp6tT!gH8+MJ`*dK+K%5XY`v0aTP?2%eojJ3t>jtMe&wlex!<;TrN4d3ZuLRehqn{GyxO|!K zym8@v4|7Ptv<&!b8JqTRW%LQ$zvkg@3VDg%o5tVQ%wBn&A8PVUajs@dOC9IiOpTOn z0B1Fi5`PB{Ll;`F6oSXQk%MZZ=bIUIpAKKdIHy=EbOPPihn8^$I`M}3Hr4UwI4fjc zZEyyj?EC0DI1?T3*vvgR6CFo&56*Po*W%(!blHwxcsa|p5rxCbzeN{m+!*gY&}TI; z)IgK+H?Qf zqn`JHBSTwXcKeSFeqkZ^x9B(%Avo0{P+D=T3rd&W7Sp!J|5z~WQyqa$os9X6AP`u6uxWD2kz>9KXT;~ zev9~Bz;EH*OHzDWTM|ubOoqNcr7N}48SKB#89ek!XRzFFy`tFH!9{$ZgWth#-E;yx zrKTtHy*RkkXRI#O%^I-TgF_&~7994b3=v#|L!Tt?>Z3Wu$Ii6|v!UaQ=?iN(i(kkG zS2v9wht>4U8w-s?oO0i#{C8QGR=$j*OQD<3U{4T_w|a6k`CG=W2Dtx*?=*heAN9X1 z;;a4n#@6pee+`0%Tk4|8qM=pK#?U9|kP`VIRmQfyJx%}P%1bIg_q{cLulyD&+k^i0 z%FF`>!L4#$8GPHN$Igum{@S+kbk%##QprXF; zQ_-^WFGFX#|1tNwp)y9oI9nh z){M69IZazUH*#`JTP3tNZd;rwBU(JAt;~L9wsl`dzvyEaSvIy`n@-cOZuJW}ZinG9 za2J|He+sw#is^Mi3j&pAQNf7ANgL**l3;|rT?{`iImmVN6Mm-+rq`d$e_M) z>_@iV`ayU}Jh{}JBNJcSmFIUJBjTp&j@8lRAU-|$dFM>ShJ_A$@c|Y=i=tK07JCd< zC^t*n^bvYJ3~z|uM!lbAEtdcD_q@|L;-gz%94cMFf8lrUS;!dr*?!j;Is7lKe)aU8 zgKn1oY6QozLy-nEHsILEQu^-oyD-Ev;!q^#j{tuy{jUQL#f8BVgCqaE2CuB>xb`;Q z-yC7v9%Z@K@qf5%&PZ89{}h9%QlWr?# zYM0lR`Ti2hJ&^HzOZxjoJby6#{g*Pn&mH;Rz`7mywxwa^TF3ukSPMpARoU1#B4xFY zx@BWrYx(aK21@#&w?oLQ*Z3{B+5d5c^~yuOtkzX;*vV9AUc)NeK03dI?=xxdQlIfr z7}|5JSN1G)@&5dB_IfZT!mHQM9n$;%o%Ys5%BsLk!Z));vPWaD@q3=@w|U+OovDq~ zr$@%!*krx_Q8wA|xc~D|)$IA!GoR;M)h9aoD))xpu7Q`N-^Fj-??Ja4ek((t>0bOc z6@8Z0`IYr!+RUW23_Gw9n{zCE^-ZC^SF0OpbHHbI_w`OR&{6A;l-(m(&_D3VV%8dn z6^4Fgf1y8!wM+KFce?NXDY4Sz1BVMtgr8d$ytVi}w$eUVjoB2VB;I zQy=4ZVE(*@3g)pX|LTTSA7^g@V{PV8tixK+zIVSvHcRFhdVQR~x*^2ggB|ZWwQr3x z;0O9uM}HopKULVdPpMzU zq1QJ33t4jp^5NxU&_dz7Q(-7XmI{Xckkuu;R#Lxo+RxJ0xsr?U_w4D`GpP;G9(L`H zJ)Gs0mS1haachSBD$^W1Ex(|pVfoc9UHdXPPwQIgbx(Hboy9xJE&1~`E}~n9HDJ;3 zSUvjsKMs}t@eRuT0lLVAE<_V&Mat&X1Uk&vg9DAdg}+wvcCnweWa_yE8C*$@f47Xg z#^Ti-Iosq^YEipt^M!Q(BV2_SgCFo@WLkkWEN5)#>?73;b+lg$eIk=O`Y#}E6u9Jb z?1y&irW;w~KA)AYgEhNqXi2(5^5d3Jr0muLSAN{W^;Z6;pljz}p=Sq(o zSv|X>hWZopW|l~w?VE@_cNO+9JlHths;c{Nq-+(suu%6ax##&FWI)|@+|Phdx!2yb z_we&=RG*WM7C z=1?Xy$1US9-|OeS+DV00HypYkGC06GtHw4E;2idvTx<&`*Sv>z4q>mutA;OT`{(TU zWTbFWNlss{ufnTvl4;xi5PmIZj=BdqU}z2-uSWNxx&Mt0(7k95+jR%9h6=5? zd$618E}l>(JXKSdM|aX+S*rV|)XjIM?ti3i-FtQGUUg$X?f_37J=a|{q3kMso3=g8 zx8HH?T=VTuT|Aj@_c4D$mz}n(=6TfZwuAjmf6V;TgXzN4*9)DQvV9q48+9-Eskcz~ z27czIv~eSSRv*p=cHu+Ua_|}TzR&Cf&xhdx&!(+x@ZgmNF7ut*;(4Ffhrf2e`)Rr@ zTWvh|Hrn{;TW{m#bQ>vjYCZDk24Im7W7j0|2BLRs-(^j!r~hI5nmd}gKW}1uMcBUj z4n1#~p!=)tXr_*r*^lH*ZO$)7-|gc13+j7;9CbBwkvX4qeNaVniGeC778;xTxpyHW za<1*_-*7i`GU8B%p1cV;kz1T?O;!BVQ)lyC&gupyJL}qzops?-{fAGSY@7e~g->ZN zQLwrpQD7~84ZYuk&vd)bsqd4mh5este--j9wPx|cynIQ`z8Njjjq)GJA9qQO^^9T_ zr1zzN;(6BM9^Wh@4s ze)<->9(&;*EY=j`(_SF9RJ>~FjDE&+-=X=HwRk4)N8yO|&(wp|0j>8g{o#_nD}T7; z(1yyvTbEnRQzsl1jn{tKVqf^`hU$vDFRQ7z=d#!VtD*L{R>LiatcF`FES;OPdterG z6n}2VLe^sIKESt{?_H6eV=!lwoT)t!X((q-%Q-_;wZG*)VBJLDt7>;f8nVD`-Tje< zW$3bEbeK~XGP-C7Wt+hd@h1(O!BrpOfA#g8_kax(^Kdkc@dHQV(;;kvA%Ax38{{-O ze)Hw*7dbT!I6$7LF!oD%3l$k7vaDBj$~aL z?$3>ZyA-&a-xr!zjt+&ct7?JyNnfBo!oArCjxE_wjNbMST5It*MwbOudIj)^-yE z&0KwLoa@ubfBC$^+?#llKVx0Yzr{*sPqYS^Pj~h#h$Np*teaYiaA;r1y*wgmTX&KbrM!X5$mnaX0EKaI+a#eaa**wL@_JtodRclkRSYb zwbi9^#Z$cJJZs|{{)gJF24B0?<$R6*@Rj03v=(@}{7p`Kq)TT)Xnj*LnlbFg*xyAO zntiPQ-sNn|e`D#h{ou9#s?Yv?|F5_INo$=c_(Zm&ayZ?w!eWix^~cB4>qTMS_YnKI zvIKr0rns`m)mepG$&EgHQfm`%U3arJRdPb_iTmy<%H}*O>Xh6lVvc$<-{@WJ-R`$G zI4oojvDS{Rd(`!9nQw^)ETW9^dKq8ee9ENtVJ+X+E}$OP2P88x>%h*>TX{|zzWHt& zd$#)iSa^dAp9fn28Ql+jm9s~;p+2aL+E`YY(Z)94mcqDOhZnCb{QTNywaABPLvs(R zJl`eKx_rkra>M^(bi2fGtWdj&yi?o#_=D)gH13Y7|8sTD_o@9?8^`qiUCJvs{`Qz^)j1g8Iox{Isv2r4RfT6ThhbqdQxK^N%uT6FlFikHfTpoDIQu)zCsa zI{MW)Zl5{-*Q_D#*#<47M*1u~I*e_K_WCEf_?%(6?WwJ)jMuY#t3LJ2IF%;6v2e1f zgFZD=M&s_)A)4^ULvRvH*^ruUHB2Xmlj^L*PwUZ7g*Ue7487~8TqS#F4`<+LxXg0m zBUA>si_o{3bSStDTpt=Kwi!`FAr86ry!%P3AXQUT1_mRBjpU^SBU6MoYKQ~Vf-#!#UM=FM; z6Fc9__whLPe&#+AwUPPXv_;&N&K-1sgEQ~Dbeh{H#^boJ^pwk`fqV6VQW;ye+n=>!FIrFl+DT`k=zX|+u_&NLn z{DS;)clG$}atD2$=LHu#>d$Y*yC)o*V&iUzB7FD<_xgP4(sPm@eK4R z>xpN;Ul^Sl0e>Gu{=L)q`(+0Hrls*Go#OzLWUmE1YW%R_OSE=b2@UG3hqr>){b{@= z&VX09-dTzbGx*hfUhN6DC-DJ{J8@Aw8Xrt@<+&^9rHNDaD4oqXm$kT0t%h>S-F6G})p5f8sl-d6`gDbPFi>uMPV;=q<{89#IA7{Ky zkGCxL(7E*M!59a|r|z0<#?OT_gOldH5SsUa-$u>+A+RQ_M3FsiAlr!AwOs~^S{uE$;r^2$RPZo!kgxI=Rh~Q zht@h(m-p=MQ|5;587gt;*vU%o0pY&3BGOgYMC>m9yajV2cl1+VF=tWDvx9YQ(5n0q zefThx+s{HzFgKI0x3ji`{d~&5%QYoGYX$zv6)qnXaW2+ttc3-EYcX>(jA65;Kz*mI zttf9<%r|=fNjL4vAL5Ox_@*We3w_0|&KtF7O??pjmi*%Q1|rbMGIFH|_D1@ncv`{U z3!L)n$fpAjcH9EYsxQGDRCCA#b4~|8pyY<;qH5RHoRTv5*i5{K>awR=*GeCSkD8cS zBWD6{R6nad+P1y@dX*=?)hxAd;|CmWU+Yb@srmzf$QKkJVl&4*rT)Tn{fFK9?Ha2! zUpQ2MGV6Og{b8Owsz0phHsY7{VC#NmXmL#%Ho>zA_$BxH&a%3~$XwA(4_CA2gM0<@ zI|-+!lUcqDUs~H4{A{KT{0OJCk>UG3T^mgqex;Vm=e{SH`@V79pFArgHxX-a9o5WRh_mfAYZ*%|w-iBUCclDDPT_Oym4Sul$=5UptruS<&dc{jwGeuR7N6S#zNt^oJq6T^>2 z?~{8J{L9XqOCJQoy!3T8ak&ZK49;OjcCtrbaY{2Ud}Ql9`bRz_bEaHKxpw?t+&aUa z(bC4c@@%VV#qc-TkymQdZRxu{zjEZvbkAqCW)8^bxsyC9DgUgJx_2*2wg=tyzGe1| z{k8J~oKHKWL+hn)9ABC|G0MjJk;$Rp?MKu4QXD(0hF>6s51aquU-@yhzSSmw?q!j| z;MLOU!TrG(S*r!FMc{Q+daX3r=C1MPZjLn6v8J>fd=|6D>#darc)p6b3gJ?59f#n- zSN*{fd;Ron@}n{S4>``WTeSwH_T@{>^dEWiD|en2>d^TqeZX7Gm`R2R-fHBH;0<$) zeSlozA9CTXW8BBWTbCaHdd7G>ctsbP@YXT*hYh?lw$UzC+F)^>Gq@Jjq!65mn{H z_^Pkv#7otnms8+l89e1=Tdx#P>i*TTyRD;*tZ5gfVS?83%Cp_^R9(zXs>Bz3LtG2r z5R+HDe#**a3#{9JKo-?}B*ni$QI}z{v7pp_D92T%DrbhZF zanT3M65vL7?gYL@e$5$lU0r|sI_Rd(O^l21qPf3!R!ssuX4;~j zgk%QzRgBuJ^fPhs2g}-7hfFXo4!XUPXQJ0y_C&FUwW7AJNH}V3*0|jnAg2;`Gq}j? zf6HlTu6Yd2m1NM|9(W`ZM$z2!=mz0Hxt3mCnV#D*4?aPx-W%&i%f?>54>+z&tmR&M zUE{|0CZ^(zb;t-}JdO;{Wq)X7g!rhPwWB)l>&enp;I^7^fcH%tUkv;b`!ukZcooUT z8g#VunbFPUWcFf3y3^}J(exVmhKua3YJ6hV74apdj6r71h!=Yy{;VZtM6nmkGUSPP zB{TNoInE2MU9K3F86{u5E4Z!SAK34l6WrDVT=cixZbZ*}vZR%0`~j;%Wj8U2E9 z)_`KGesR&4(y}?v*eMbA;v|C4tqBe&%rUq(!+;0ms_DRoC6*Pm8_^ z%`iSO=xATCCto*76tX2n z3uiM9fp9b_Icq1}arD-;mDVPT=aG>AUUEzF6x~^cy*(I*U)ej_dVu<6 z$Ar#i-zRnhzO<^;bYj|x&wgosr0fv!<}Evsd4D~7WpmKiu$gN=aoo$f*1yZT)>&dr z-^{PY$JrsXc+Nd`bxA)l>IrbM+|DgY@P8AyNr2}BIH;t}#5~R*p+B4Go7%pNam$2j zZ#wQGbg2th4Kjp0er5f%F+lq-QNLvP%fOcat|Gw&+{??XYg;D!8d~`O(z(Qw1J5R4 ztK&LAe+0jQ?*hu&lS*E`#D!CRFm;quFL>Vs+>fb_g>D_i+`qgiQdY0}=!;`dEP3hu z#53|g!C2K(SAxE%Z^gXx`qx6An;HL>XkWM3-B|C|o3J4v53Gp3v7 zMZ0dE;ItHy1CDc^T8q#t%d)L&6CWZL0lYP`wytrOosdZbO@A1w(m0dM1=)gi{BnQyS$wp74V_fcQvyR7L~zj67q3xRdnB)_4F`)@q^BE@Gen`A9o4nORV zZq9!aIxIXmR3-kL%=bUTcOd>`9e&Fcc=cxuE`Lshhs2-a&1c{l@zMiVoK@iQG?A9+I$Wp#hgLCBG3i+`z zX<#1vj#ALZamMQebA}%FZ6q#cY;|Rf6rUwIutzqICkKdu^5&BRImi?C@kHUb=AFp= z$D(D0%(p{-Lu~lPcGpI9IJA=V=tB1DcAgLT3zRExgomk9u@$17msKaR$2PKOxK8HS zA>|C<+XOPF|NF!{)5bjR4}BwAHt@Y@*-MW`%MumHiN~X^ynzRsKZs0$=fsE0;Ilg0 zDKRqgeel)?;ISsIpQp}Ec2}CGN(7tMaRuuH1LLXizf2kV+z{WiB_K;KTcE`HsAHgy$@=Ic!^Uz2d?ncZXgnmR8g zE=XfHmal!UjNxnQ@%TFRW_-=qJAZ($8T$a^(M&su-w!Q5j(qUO{{%GAmq7z&{1x-f zw~|SX^Rk(Lp51W}J&P^11wUnLF*K2#OMQ%AKi}3Jx$D`5Ga{ExtnYZ@M)>txwl)3R z+4l7B1pF&M1m8c2E&YeU{lO^{?hih*zBTy!N%!ZT<(r!O-uk*HerBJQ`?J#fum71n zCHJ#aFMsd_bmGtUY|MYb&aeO3ceduAUtjXXeYfBE#5e7UxtrI2Gq@eP+5DY*@+b0q zgFWY_&EP}wNAln$|HSw{4Bo|;)W!KQtsBUHd+<-> zOGO6BzX0FoJ?t+)7R`85S#%hl)BdGXWK!P7VV^rTBy*UI9G}<7H+E`{&r`}R8NZxo zSN2n<<|j#0Kj)QjmH(t98~bk(c8BqwIIOV;IwHsi*~<=oKVqgv<+{mSm-goW4>E79 z;iow`vclNOnm;JU+lzsjL7eGs+KVyQas4&!IlhubYKu6n{fglvCxP)ds@?cWawPs~ z{j;jeAxCa4V_PT-nEO&PpnOOQt`{gY|LdPmTNpYXw*N1ynEgyYWTU z?Hq}ZM~7i+`d8LtXV){|*^rJk*F0#IojdG5S%sfqHMArAeiVARj=amo%r}*bSvWY( z`~tt$wvPvXnXh=;!MmQ=W@37VaUoxldzNq}-mmwM;3UGD{`>f?^3NIQr9RD7KDy}3 z_&VJ9fg$4BU&aO>n(X=`hNihb-=TSKOsZr??Yh`e`66o96&=;QSbnfI%!f7S9-83# zB2-VK{1X;#(3jBl!M>w40{a5&Z|cIFx>TDtx0<{@PD3OzdP(Z9jy1WcfzID)VULG zJaj?MjW1o|-1z(Qz>ODV_){elL|;7%IX|7B=2|{@Ezs}!+%%^ypJA=NT0SUji8gEn z%?FiJLOv>+J?o19?p-R{QSM{c4%!F(r?5#Vds7>GPlG!m4Tq*%rAwKs$-csOVEmRt zeE0kEWx!Smj91>6I`@M&jz1<(w_A+4e2o#o!rmEZ*Z6??&JmBeYm*w&w_E2K;b)E} zznkh8Z+QNrY4l^f?|SHWKm9g*51d8xdjW92)9{UIhyCMf=bN+>{Egbr>sSTe!|Z1h z-VgA+av}GJD5G%?A#eJaU-q!aZDAksivLUbKO?Z8T#=!U$9Cox4CE_E zdD9B)sx7mT5x0?FT(;;T<}&K5@}2Y$r`^GCl|5_V7&LW&ajm-WOIww*dC;%(lwBW) z=q++`s8jjD6X#h~KS4(3uAjKAZvBjHtMG*vK~Jhr^{W2!@Q=MjT`%L0_&s}*9>DJS z8UD$$)_vyoZ=GY^E+6F06LMR~mA@ZfMN5ivtsfH}=%eNVCCJ&Q*{_yM-y~btSye8=L*NdkL=E!$2O3s!#(F48hxl2xJCQ@^yB6UGg^xACB@M{oy5a8 z^D9R_DsEmlD#hn7+BgQDH1E>)@_ktNdAGB!(8Ju|X>jx~{;njkH09u^61zXM4awp# zwzOpP4)S}~5kq~5x(9&iCF+b^5&3}?K5uU0Ps4Mq@O$Qli_V*CITy^0ToazV8C*`X zE}gr}p1R^j@VSFI;aC~V81;U7 zZupw&biKEas#p7&GU-tFE)53jiO;Jd2k0;j&gZ{qQ1rK-9L=IXk7h-G9xaZg!vt#v zb^P8A9Tv?wl@5Dm{^fKS0B5=M(OY}i#CnKFhX>H9>igT3SF%e)zxvkDFzZRejiFuk zReoa9tgAFe*JGECPn!j4+B|y{ZT^D2MM-|5P3($Mw0U9-ZAQ=!qRk@mpN*x>cJj*f z`bXN3-oF7mS9U-zx+M-BtLzyAg4Kp! z{s;AUuzsA$8`mJG1jjDskRETGy?ONDL2;s*!zJI zd*0g59>4fGBmRescVoZvT`}_A*mtY18F@Fh&efNn{@vcIN8XLCv+2^2cVp{3a7o5H z_`{1qa?b)&Zc6JRowcBOk=9;P_^fMv+=I(uoAKT5+Er$}5jw83C@*qp1%4~}FCFBW zlV0Nz&zSeDaRtD&DFdzpycd1w{a$^a6=~4BLUQBjTkqX!)}9=60>17GZ1g}1z2HL^ z_|XFkE|2^m9xj}F&QBK1jfdyW{aR7s+`FCmbF;2qFjsXYkgXmplC5gX)Q6sN>-+TF z6uQQTj`5>g7Tg^<5f9f;->0Z=HTBg{-x})sRJy*~PpJybdwXX8 z-b$HQS9YD&e$2EPHTURd@0j*oHgeURM{DD<8{3)F=zR#A@jUFGkZeZQjIf8y+HDA% zu@Adsti9Nd-4trXSH(VhH(pcu?_HZgv6R1pRz{wW$j#H+i$6B@VhDS&7yC_nt-FyM zT36|tt+k>Mexk+|In>(@t&!*1%o9a(4+Wi;ZuX2l&QI^8r`5KT+mpY6HJ;lp;(Qw9 zg=n=~wv07vAVqE_m2H26J(|?f&o|On3(x7+{N|PFANl4+uCRU}ntBo59=HFRDOj8c*>R)4!R}~|He)ElV)F)qOZm9LIFDGo-y^R z4MPvqTZj+bnKaVQM)Evmwo}a7h1wzhW(#xFR<$MluJQ23$HE`}DrW+3;M@goTyDGQ z%fsVgakh%aqi4QVrT+Z??7e+>RMoZkzt2ow<|Tn7BoHT<$%{y4K#}s2#Fu6gKtqCh zA$UvCUlYLEnGC1_UlQIDK<$LVmS}COcyB;!n?$MFO3U2hCBQ8=irQMeRj=Ml0#y^j zi_{_sD*1lanK{W2LEHPizvuTnzo&o9bLO10&)#dVz1G@mt-bcz7O|Jtr0cq+H=AeT zFW1M$g8WTwn~0o7rk|X%>S%2PV^qZ$iJU&n7)9eJx*uK8Q3p8)4SdbuKDr<5cl*kI zw4>kslHXVL1C8nn{jk74|I>aTPY2=NfNw$Ij*RhC87JAxV(27a##_2f{bcPMpTV1v zn0j|u_Z{2z1KXIv@oIn{R`C0(ezssE3jd4|-XZ2#^xQmh6FKdw<|y;LGd^s4%6&0B z(vAKgbk_qP3ZL2GGuArJ;WOEH;v9+G5xyT4Uc=1$bl7*ZJUjL8?k~wyp2a$k%J~0I zzRe|Whx5Gx=osRYFnIbX|0U<*G1jz>n;q^+zNH1*X`4B`=|uKxkG+=Gv5ky2x;V?{SG3W>xkcyn1A5fq(Q?tHU70E`Plu@(nA#|xhn~@mel^%{ z;x!UZR_fm*PV*G_nfv_332y(QM7N(c$Ev4>`X%#^=oP|aGSbqWX|w$lst{#vO&gC#^JMp`FZeRbiWlgiu7A#)W2~?@ zq>O>Xb(E9yi-zkM>sJiv7+=s$?ihME{JTT954{`y-QxNSzgz#n(7WMv?p=G~cZcpD zdN;hiC+ddY4X@J_{f_ZFpAI!8N{8wQ>rjKSJHBhfu{+WF6LB;zY~#0{Umo&ZA?q#3 zcMZ92=v5|Yvc!^|S(2BPX_~2a2~CO|!0vvbi#Bu}>XLR{zf#CjMHv|*y$m{37v=U! z{i26Kw>IcjbR;`;D{C#1$I-RO?sh@9SrNLGIt;xji*Gf4x-K`mcO7bHAQ{?1zjpPqDyf#bg3u6 zSF|qm3NlZ0DNjU~!atzrS?yv@yO55s75hx)`tD>kEk^gd$@;VCRZ;rW6wl}9_qPq{ zPact<=ueXOLiDF%<|L6HU#350kvm`%zrR+0D!rio%+@GT> z;1m5Sou{1~1Ha_=RkAmLA9T3RlP7x61$CaKwVS}}Qt&EtK3wPNCYO={_l6Nex`KH}r|G(hE6n^@UOVzLE|^h7Hpv zEaZZX)(ds{gkGqfS1jbs~F27xZ6jsqkysJSi)*EdHjJzd;Yw+u*yceD?)i;<+I` zW4I2oe#g+e;olv4Vd&lP?@E4i;dhJo4!s**=M(>O;dguY488k8d(RBL`$C;hN4-N% z|8M9@S?COddWhk3VvH<|k%hQu8KW=iMV_$V33)4J)DlU(YL>~ z{D3+B^^YqqYCZJ^vCD6<_W!QxpMlO;uT*Fz*JiG>xb9Y}|3h>OY_=DOOVam+b`C#( zazo7a&JD5r;`qh$v+%R>v+=WYo?62-on}SMqt^Pj>^1AjHMJg@#Q8Jg?<2oM9#_c^ zKwYx7sq0PTws8N2J#`8nCBQxS2WRJD%zp!?C>Wsa@vaT#KVUp{^O5QIE`QFeq^c-=rW|T#YgZQs} z4)%jFrz|FSoU9ATxm@y2_8IegVG(hovOcAsy$s9}@9mUa)W|(~F8#QhdcC)kyNei= zd*nYdw}byv!GV+ym{k7=+VW=de-H+IV6TP7nVJ z^l)nJ-|2z)^S{f7ho=TsgZnRKc|#StT-A?A)ka zM3LN(BFoQ})gq@wZeB=6pHEi(9Tsv!o@Y)!A6`l#V`Gff|CeL*cUV-v;GhzHYncAk z{{cK8@qpRG^866Tpzrw?y{a3%ieJ;;Dsy{swbuJ-xAm{g7i;KZPe*hyuda)k*pG=m z7N5Yr*K>6;$%8ZC*K=}QP$&B!qLWEKJIUGhxA6PlarSqdiSGZuNoVNYq-z*Fds9EJ zllvESn@xF)`~JwiewB47tJhoL<|ny`*)tkGo3EIC9N30g>|2oX%x7-7S`_=1RC}SU z>+V6{XCGjpD<*u8y+;mD?k$n`Qda`^3E}%r^0PFwHkLTDpp78!uFZ-w^UR$pthrPJ?w#lnEpBxps4dKmc2>pP46SC*@2yjU|-hqJ~ z-qCzhcUPZ$cN%|&{#@#k=K{}hawib~<(*fo*GWu~UT2zh-8|%2s$L#jNv<8(M&5br z2HUaWQ23)!nPZ{1;$ukMz4s{>wYyeoy*BJKfm4-d}{uub_cd|!W?^EPjDt4RnF>=i#=AD?i)DCj{TlQqVt|VWdF@6#c zFV7d9``ltYFFyBq;PY^KwXRa{leB~XY)41+-F?<%^*VdNPIj8ZxjZD6P{)G-SL7Oy z>nFgcsU11MRYe~Rcm!uvKOMU70FElgMSm~fNS_Xc$G0~^GimI1(Q$MrJf1uDo=ZEW zLOXn`e0S?G%YF%gOQ%D5F1R39tI**A{D^lQN^D9?Z6LQRV-kTmFM><2T;m!-t!quM z%f7lYSwC2B()aoNAcy$(Yt+dZ`1BzBPDXs^1Td zp%t$aAam^xMg?lkg0= zOEuMRyQJ7{p3PPLmOG0JMP9YAhtivJ zU8s|Mj~%AIe0)tIx!1=W8RJ_&mY5w&o5X_@&C+)6L7qyy5`3=5RwanvIZ4$Vf$v1V z${Adx$XogE{bv<=i~GFxEcWb-YU6BPd@qtyEtc3Q_Qm9=ey>~g*Hcbtt%^0Ft|?m6 zA@aK%&eimN;_|$cbNvp-&vyM~q~y)fW1!sfTxhfNMy10#0h(`I>v_2P&`4r@Ep2nO z1$`1bxyfn`&bdFF4`Kl_*c%G84t%m#R3)gn)$_(SO<1bOh;Dw6z0}8n zQG7Qi=!={IePAO5O*({E3+E`|+VJ!FO4rV(r_& zx#X*ox%RidTMO=sfsYrclTTI6D2x5(w|737WiFF>?mqDT?bYcOyst5yujBc*Q@$H2 z@v6C#RdVnrd6#W@Dn=!LJ0(7}ev@(?T2#DqJ!5_a@LXX^3MT!zvcP%Ptmip6vBsW_TInpX?*@v;9ADJEYnE)vLkV!*OEP<`ZF=1gPcQq`})|>ar$)o1F<29EA=4s zk;m2h&x|W;s9UMu`Jm*i8Qms6LZMm1m&d-~$@ORALRli09^(wlfdS4V!3TL}Ci@3R zxB2jg`X0KtN!k)!q#hXRA29dV(^mZtGYX5~Q+QS1uX(z{5k9k*wi$p z=|R?0c7JX@Y0(mc+h_+qPp(IY5_;m?6L&%$eo-x<7a!|<7qCyEUoy@yT&3Qb$>l4L zq7&JW2jX`n4#?e%UL|GaIeRC1JJ2B#V%2mzbtS+9%{+So9!Oy9uIJaRCHmKay9CZw zo_|TYa9wM0lr#{8dtaDe?WYiHngKq~q}E zv&0?^=zSU)l-PfXK{`kuq)$hA|2A^G6?(NkE@K$h2@M_beEZwZa@O0xzP#5Z9=FS> z`VZy0oBs4mQ`7rX+{{IzA~_<%x?lTZ&Yk)G#?VXj-_AKro0vymHF-j|xvnifu07*9 z|KRoO3TOYvb%jT6)LJ(Z#}`13T|N2fEj`bALjSl8dSkvlHa^z%$u~HwnDg@d)Ac+| zZ9l$FH9eYQZaT9sz3Df=AK+fjF%GcTu_uoB>s9$X+1nqqSUrWK{OH50R@9cUHXAr| zZOA*NFaHtrha=xX?jgsTKZ&F7ksKV*uLt=p;(3@2YF{(qg8CA+>!5)59bOsJ@D@hlJ7%5vtz|SwruhKVL@T3 z)e^MrsoWVbr8cFZ`yHu_X+2e;`d`-i@+*@)H8yCp@)}}fp#@`pvG|S@D|K_=65JD0cQTqA(bDz&e=IPJN&VBAu z$)bmqe*UdbYLc@DyT@Bv zefznO<815k@vYu6t!W{=)}7Cu!*cW*+UUQLvpUE#_HntVzmR>zQcn?ki5JUxsn>b> zNBQasdY-(l^=jXWf((9-V;gZ!WWUh=Bk0`IdFC9aYBtH(b6$(^O5iv=gbWHibaNqk zChJ>Kyn{SFhj(VFn&G@-hj%R4Tf$#&!w-4m$iEj)zQ0B7bsf;Z4IU2Ce%VXpQyTZO zqgu0-m#=BFiHsHg8?&c*q41gD5If5aZ{eSnGkwBmb+V@Aw%p+| zyYo}l&xL1t@;&|kSWhm{?Drh~H>!Sc>7J52DtOAA=eFo|Io;qY`Lz2zho^RWZIL;{ z&p!R8t*6MdW=gZwE^MjoJ3H`e>E~nM=>JXpr2F&E!B60?z>kXHN9LtyycjqkMnT7k zdZ%iq?0u1bAZI6UB@WYj<+Y*1l`~sE`3C1?M&#>foD11U?l{qP^RgP|iM*9LqHCX} zse4IGon7Ky%3_JN9o1IGbHQPe*IiIv>#p@*`9O$yw8=&62lH)j8}r}9;m-tZWv&d?hYYsr?;zJQ#*9Ytpi-B*XSLCq^pNek)J&$vq zX4mG`_VKOYN$?}MIz2v&Cu2^MI`hCsDRYsVbHoF24I%LZi2Z-yW#$j;v{v-+Msj6s z{2_TW(KR&U+)QiMKHLdzyO`TP<|lF>U?vtHTdon_Z~>Fh{si>y`jr!Q)~|HS-e&T> zk#`mTa}zh|Us=7=j_xI8{44$PpCiK<>lvQHx7KQ-yqpR5G5vgG17`*9Gd1D+;=J_CD`~h7Oy@xOF)Aeg%DyeGVnaPnoX;Z+@8%flaKjx}|*+>im62S$jTa9zh;(&x_lLF*X%sXPViglb4m1slAt*IrBYYS>MaaT*B4D zvj(1JbB`W%QuYGiGkftkc|s&cM{HsPALYcu^{rj|u#RKkdldcTF=*sd#uYto^B+z4 zgMeA~L?4RCEujwsw`Fq1^{N#+x2{~#*G)WCfIj%*MvY&vfnMc?xR}t#e5U>HPzi&`wy$NjBL|Le-(W; zn{58Y340v3&fl;Q+pXrh`Rf-Jna23X{o+TC0WH>FhHiT;XF6&N?%377@U~qaz?TPA ztX~l)tQJh#RmS+AHIHL;|A)W4-%+N;+pnYE_J!Zs_2DnqIk59i?pN{UQg5g1(Ev8#%a<9G7SRvUnOgWS z{U6ZA_}l(M496!=;rarc%HJ8KLb7&IuF8MGNyqM zqk>QV;krV};i>OKda+pd5k-$-FEE@MDgMkc<0D@-i$32u*HW0e?|{A;e&wY7cm}z2k@i7yMgcBT$mS|G`*L6lpEL23I*b> z3;DE!a+zzT>|S`lhCC5DePqf;@ReXk{`$+1lf6#zVq#+j`Hs2OzL9oEK?9=yySN^G zcBU&}yDr3ez#)mTmwK(#*@j$Apq^*2yPARR9q`l0^(eLx>o6gSjg&g1PXfa}WTwE? zsEsL?bA+Xzfk+>vAMo_l05C}X@?PGZkJrh4#ks5Dd~r75#{OtJJ3;a9BbW)z2)`w`N$z^BS&>5bTxrKj%0nl zeD&IgH*u9csEM74O(Qy!n@->}mH8+sra_-eE8$IohxB-Fk#8SS_M~|vdA#jyzpbn8 z%l6gmnw+9u&+*;4YpeIpT~F~WDMf6}q+a2VZQfgVWhs+$tM`&!_aOs>S9%ybfyIJ- z=~Cu$D?T)VtCx2Cz$EY_08b+D2rMH8VHwf;GCWa)-(eZB$bQ)qz_FP&pXaBl@7M+W zO<5~1-=+J2v=P180yFJ(Gyd|OHQ~BY-g6rq7R?0xTI|+@cA`_Y{$uavLAL`%&>d}^!e7|ELMxQ|+R=S`?Bv{@ z!JNG3;^ZFA1VbNwp=Z)OmkXbcn`gpv$H1Y))82zGTk`yLkFS6~(4}IV9bWiG>?Z}R zQm5=?{3CVX*Ja)v-6nmI=N%>D?;FjzCu!vYz9EJ|*MCPd9~^mDg?@;yR^XSi;HnLr zG|724=ga4LA-leNlKOnWocy}m~;;x}#&PA?S#6Ezo-Xz^;xtF@6j&}H?yZ0Xoot(8Ta;*CV|DWRAZ~6Z* z|2g+~8+Ld1Y5s5HoN4+0DgPhgOlsl(0sh}ljxhckz9#m$rO5fo;A-$0`2&|P;=Us$ z?01!1-RG2trWY|D!{PJDdGRL_ny}|KlM|@Pa`MKVt@tQ7C%5itTX^52hjXUa!P7>4 zox1JgbeGbW_;m8K51jjkOY>vONxu`v~HzO^K%l=AEjM*=wz%d%f`G>=o0{q8gu`sRFFgG#Pe z1=B@F`?wDv(`a4R$a5*mGF5+$pS}qD+km_Np^U-*0)sp!r;1zpEAOVF{~Kl7 zkC2adIr;REzs56lJ+kaq8|I1aV~hBzTtD8r+)mtb0yKNsnxGAxx8~_sd)YSNDX%l~ zDaD-ZV*W7dai)f8VbQVwds-+ax1`jo(Z2LUdl+4qacTFJK<%V!xg)<3P3 z(en(gamjgnKQPuxpT1Vje-t_&7_a*8!e&3GUXdeKt!B@M!`hSQiO8t)J^v;$>H}zb zJZn<4Y1EfGmvi@Mmw8AZ0|WN7ThgZ(WgdZ-&sPT7f6g}@nduduVtZu^KNpAJwPdO( z-W%0U`CiIbF^1y%lQ~)Hm$LFsWJx3PD{#9i^x?PhnLVMGItQjL;wt52>?1H>k~9B= zVQy=PV~+a?XX~MxO1W*3`ozyN8r(}e(q5hJ^JiV_?fB_l>Qv~|+mYo`5At}BCl9Vy zH5;K1DU+_o*qvsJKY{y}z4<{C=dpH0+#jh%D>Gd!_2pk7(0e?Ag_*hdB`FTC^!<(W)>ty{6d`Uk9hn-D-=LBhU>2_-+)XPSf#w>uN?noaB9FO{aqK~LE-6!+f5m|toSkE@3M zA#KP{#}D@nDa>L~&!i5Uj}{32xz#;M5-!t=^3(_a) zkDlWeeq#Srs735&#yP-#ygYFAqex$b4y9f%SJCI>zJ(lMJ;->OTg2}s@f@sM_4mHY zeksZdA4K)14ZQa^uzykDmwr!RU#R49k$H97O7H3owvx*l*@uz+cJ|ur1d~(C!{1Ps zx64A^jn%-4UC>A$R6=$p@}*b&YF>c}ctxH|TkQA9800_N^N{ZX8w7czYP{yhAG6>? zleW8ApL-fz+(P@G313p?jCrh^`lbdlXZAblR__$KUJ&Vb`kM3%>2oRTlUr!(6Z07N zfGNZOGCEMH{cT4heR>O7xjwGsG8=gzO1D`vq%T|l)4Muwb4G@uPs*Y>l`AVV>z%w^ z0s12_1*prCn3aj&({Dqz3T~`xc5W$JQ}yR6#>mH*TN!g1=V;j|K7rw~(U^NItYIGn zwqCIf@C`i9+D0?$8eQaLkTSFBM@0mu^!m?3Pl=Io-BGl6KDv{6$B@$o zo%|zq-QBu=7N$qzx!_W8?YtlQLmx6|Tku#7Z3~<(U~w@QxR?vXcjIF&AU`F3lyF^A zrjmPo?foX!-k%U1#p!ie7mn-K{2tI@+qv5e!tx|-)s_~6F@lkRbO6~eB=m!hX zYk1xWTvC1;-`iu|Z~= zg&s%yNALNeqnUFQ_Q6{+U&?pWkz?J&5cE;cH@-`5!hcsy??CInqCSy(>Co37OGF>P zs8{S@g79f{dFr0qvGVF#A2EML+w%O|ZwQwcdiUmbIGXq6=`l63j&Hyq{Wf3{Je0nX zuFH6DZo5Npu%JA)sq$y0y3(il@!s=RdSU5RaiQ7hID$vc1#S`?NWV)duiJ0p?+4fK zRNqz5U0qioaUHVXh&B`b2amR@yjsE2aMwd7{A)i3ow3BDzct(6(5@pGxKhcu@{(2vGvP2M+ z&u~i~xe?IXB(+taXUGY|npk3Q7I?XWwJ&_`x{oz^RdubzPdz<3=os;}@8L&J^0!jP zc>c_~O^%W4zwZzqT8|SSh0ITT8$$KyqXL6(Posmi|6ZZz9(a_q5c(}A)0>VkZ@IYk zz@vN@{{N)8wVVD}dEN~!q+IvUOs&0#kfYQsGEnAB;S=(v>hsSY`W;PUnlGcmJCAce zpu4K$=#Vpz7sSo#c397DPdixAzu{^^5+!zjk6xQ(LcrZkg*n-j33Tk>JQuK@?O^T_C|PpQ3OAR4VWFd z_YAi^#$H@;oH5jvjUCh>8b%^-r!!YkC$LQwc_i&h%!E7>pFsMI@EW2C+M4gbx1e7& zJamdRB)tsl4H>>^wX9!1kHX%x7`h?HLvrBK4oBWV*so*Aq5x$TW#uaJ#o{|vEAb8! z`Q~P9p8)4!NNls<+%oQ0dVI51b8*;Ku%mZO22RSPGM-XS#@jOP1JV9 z%;lXmHf+n-@$X5$?DWg96-r+k(Cd@Bq@U8JmAVFy)f?$+8hVYuf;lno4Ku*aR3>wlLN^e1ZNNOeq!PQNAM|o#xs-)`rHNb+{LqU_ywMM9eH%} z8T!q7$BsN~PMMR0hNE@914quCGY#6Y#-gVj(n8scqrg@533Hqq9w63O$4RUuXgan! z%m=k$d2cLHj| z^LoV2T^G4ejneT`XN2jRd82LYB8OH;GIaJ45C$iGz{y20jdU z*ZQq?Ap&fp^03VRXrPR-(&^4D|h33&~ob(AqtR;&q?AA&=VkItz4I zB67F=khAujdt$DlVeL3nS=;^xXF=eGfoUDLd1_0!>T&kKdhB}O`g0gAf$0F_Cf^F( zh>a&cLm4ZH`xLzPMqu*(Jj~OEJtOybjYtcME!ps|n$8nC?P0q#eBCs7ANbee{)Y9Y z{=i7q|G!?+Kbvb7Ki|(ALgG&nzRO`9O}>@!6?_R?LEu{4X2=oFBIUiOWMJyz2pk4( zwiXXet-kywmyfaV0*laC_2sFqUe@pYYs&3QnX}{!LqBoqn}}t2u(00s{n(P7yU{bY zGjAW{`Wn|)wZ!u6*55gHv-a1vXQS??*#>>hMvl6OCk&r;6t*|9jmC&SA}}L-)@bPr zS!jP@=jw+VLZ!ud>_;J{A6vK)eNO6? z`hFty9tp=SHSk>4x$76RF3od;?z-_W$a62xALV(&DD!jb->idczl-hbb=jH4+OM&9 zN%jJW%_i-L43OC20PBX-xM$g|dEM}KWwcDz!3KDhrN(r&514DPUPQl&5Ck=N;T zEAN|4%HK+Vz2I^*@4G3R%GH;1ldGEi4AZ&Cr&#VQxwh}f1jX4!0l(;br=|oP0=tiW z2KPLsLR}kVeKE|RSsrYy3A%kZc@KOkYXcV63w$}~<-{e_Q@#frRR45lYpG@-&e+iF|Jj;lLQj6PqZD6}4>&bskhCLvLnJ0h_zYWL-z&0+@+H72@8$V_QO7+i z@vY*+>71eF!>4{L@rm~?$3~`o@*?_+bCF@W2H%F~e*^xiEAihEBN3R@moNPn`C>X;l9^=s&ocDt;sb*D3rzA3hpbKNS27$A{=~0;5w)^XH-` z>EnU^+4altn906%9iLxACnZK>z?9}cj7*Vo?Ae*-1!fEW4qq8M9kd{0B+sND-NI*2 z%xraOV}i^#y^E#q^h4JFr9UzzAMjt`k~W04Ezq`%k^I-RF%!BO=O6VC+zFzQEM11y9*1e00p(i^q zm3J42jv`~$gU{cVh(Bjd;g*-GeFfsrD@_YHs?S~@#;iv?u$RGHkhjSMV z8R8?}N0*@y8DbLJVO(#cZ<4>ZgKrjq*G{MBMfLWgwW_cxbE`Fcc7kQ5FSBa9{9l@> z{>_)!z!?gvpv;-hx6;mRtD0tsy~S>{Wy$u;eTn_6(d`|=7cA`+@l6k7w}(C+LGG8E zt>taRoKK4qFy@1;^i}Q`Ay;HRkoQ6d5+n21*3pSvJYO9w0_pNs>XbNq zk#X{0XbjzuTt{IU+R54|JTmwm9|*iK#=n>N&8{eV$L^Xc{t#r;;2hb4td)M_KRNFl zxi~UM_Ci;GZGY6TInuz%e^N&euoVH@9{5z~CGhV9gS1wN%_{Te6TCYEJg3>)!`VD; zk-gnBiu=S*B)-`mbOM=E@nm=S*RsD0`6hhs zMb_An1$RF*rb*z-r@RdqWejEPy}B$*w@1q|)@M&v!5bngcaHWHfcFGQQEVHJ;Z7ro9F%(iiC$F&AU1GR&LRbBTjGV9q}d>42V#%)eJH34`xSZj5^8 zFn^>b4t;m%ABNs#J*_sY&1pm5Eg5>(@Qiv+%^W@WZgJGRs6=5}4eV3; zKGm~~naun8-1MYslDI5gRx;lnj-TZ^G}03?;yv`|#C*s(W%?eteZ*Iziw^3x-PeZX zd!b=;kNJlFEIOYt{++BTN~~AdSA;(YynU1L5!~k?PmK9UY)Y&68o|GXcxvBc#22t% z&3O&+U9yjW@`0%GhlZ8Uq)uIDkD?Dx6dlMMuoYSs8${~vfloz8aX~M-{>E6#bL7ob z8Q;mnzO9OUD|%S;H_m?oKIl~7vxqJfnO_%!kLdnH)1(0rac$)vhTL*Le!*+P(--dX_X<=Z$%%S5U_KXD zhCP)B-UTOv_&pB{viJHE*~@qyJXJA237*co*E)iy3E=6g_F7vx=I1W(-~(4Tp%=H9 zROnZnr6YT6?kojj^Juy)T8u4b^wq+57V(Qk zY}(%FoWPOs5C&E7!K&jP%Y_#YTrrw^fxM&w+y9=I5M32mGZx)T}_ zIgPDGEOGf*`R>Yd?Rf)-=cAW)awZ%4*Km3fT8^d{$@MWf&(p?e?7;4;h{FJ8f!$)^ z3OwBw;6*N5FOql*TW>4#iPR%BcO&qL&s%6w`YGQdJEqC^E$71vd&Ts35xclMs;?)3 z$0zL-ou7wtB6#{T{p~Jbisql;`kTBL9uRsN-gn6vEW9LT{=k3fyNp){@f^C1UOZi= z?h0bc=Az~SZnJ(rGfc~`Oz zU&arAiP48{p>gpu6i?Ipuvg{>U=eu~_9LX}euSIgQTXA1ERTea4cZVM6WylM9B`a> zzJca6ZM5F*KYm5K?Y$SK>u=~|HPmhe_X8VD=xglZzBv}%I1U{-9)F*u^(^~vWp6@1 z^NhqoiN1@?rk|5|=3&)j_$h>*MXwQ>wm9)iJqC{P!LuJonEsUEN{L5OtjIp%Gc)ZYxJQy4C z-57PYfWNWuY|BFQuJ5S1vR;Agm_LQKDeN_;W~OjiF2eNAQ^ zu${!2L*QyStb4(Ofl~!eWuIg;tQzl+@k}3+C^+;ndy=&z^syHFvCe74uZZ6HDdQHw ztMu(n`4;@_1{T3l3w~5v@ztCWXYJ)2hxt;bjq%j?s)1uo8>`dkEzqcpjmTZ;hrnda z(;noS+;5}2%vJJU8&r|BYDZOK|>|8}*pLsr{@|vyL=K!xq|Q zTx+~Hdv{(0jOT0fiD7NZe$wc%-5P0A##h?u$t`hNvaR5!*k$3o5z8X0oBi^Bjs8gc zkHQ;9Y!*JS5J8tObpH$*u$n3Y=ymJjC5J&cc1vhg{Lw3^TfUWXxtIT}>A269i!EJ> zoVX5oaV>IV7Pj=vR^&(|@AJR5o@I?)bRN8e zOZxnPtda9nhtCfU(7wzMQeOD6Q!gjy;)Y{ky*dx424zkWxk?PGJNgV5BTt*yqy}82 z5tzgV7a4EZP^pZs)Yn1WFuXZv-wW>x95M&#?}?qOijr9#r}!d(+YP&~%H(-b zQ@NQEXPK3rm1*dvdfAFy(2&-8nz8weSUY`RoH*-XQzp*i+WsjJ#sLmo>bxKQypJ;qQtM4P2)}pAgF@GN-e`;*z>g zEeXq@t=N}6_?o+~i|mUVg{=Uc^h~NaXJ1?*V=Zg-Z<3!+{FufbIB28o2drOoQK!T~ z8++ioKF(}9^zp?_hYx4!&!uf8>ms|a3mvMLyj|>5|IKx}9F(~%RrbbhQK2`bz}E-|$VPNVV*>o}EqB;SPKNN_8%SjS0Z-IhHMtaZq{ zF}l5ByptFf;k(1wOMha&gXk-#my|GuGXDS8Lb=pv`{MK}bF0j8qD#oRipWpmZB$!M zoBF6^Y+94vCvvTOm@fv15jjPy!he86Llz1B%l~s>49lr8YBVs)JK4(|UaOP)Z2BVS zSsw<@KLNkMF8)O5w@vWbA#wtIo?aD|cPV1q8?xdv=%u%DPtu0(hR@BIQqev z1<5sB;*ABVsqJ|8)2KD+ z8<-($?G|{)%3Nw=PPMn5MNZYHtD0A^otzf(*T_|Jqsf*1e-eMi`u^rknreDgc$Pfz zNwqEFi`MfrExqEhEt+Y3X4&;w!E*K~JWy7|^G-G;FMo*{}U!j6EoGV@U(!+@R*J zFqxVvRbualN^3erU!OoX`IX6Je^Z&@PqqD^Db5dWw*O%7BaV9NCQl(}S(vw%L%Rpn zXurf}{PDRTI>;?y|0BLTfk)yp223M*MK}7f?{vX#m0n#1OxS%j6S)4k_TIjJ=!_ge zZRzGwLDO}fUAbn@i^LqAEXm8w%(*UnZknti%QsJ-8JNEVn2;w;r_J$g2UVK?Kc0KU z!Jb+B-fKByg#8Q))TNnDbCN%O-)4u?oa|5kWs^hlRrYZ%uk024H|mnHurlUF&{8@2 zdm^|$f{ybvxZcW{a%IH%CW7zd5quv7*T=x~h~apqUk08hf#=QqPMQHR=f3Bd3`~bPqgh}Qom2EPXwy$D%6u8$`M~nV>iUPL z&B+T+FU~vA@_?sLeIA~RwYEz5Ty(~z#Ek6b{P2l#HJSX#D*av?6Sfa6@cK&;UKe^R&2nwo z2CWf`*0c%!Ht3Cf3asPDvd_-s_7i_@(4E+-9}y3A2WPVFX8cZ=lib4JQvRfl6K7it zv2wv!q-dM?{ic}^EK|?-cBabEfR(?DM0H=`>>V>#0Zb zkKDcTJAGkZjca?NdeN?Z=#a>SlRL-}0OY$zs+_$mlvOngiCJj8iOC9p<1om)8f4jq^1)qQqjkb+;7x9g( z&)rt*tT@Pb!A~S_r?PW4PSb93Vg7_%m=DnB`}SWE+)tT9a)uG|>F8>87vb10%W zzG+GgO3Y379pn@6i>)|^d2N_{*$|d5otdm7){Y!p8(IAD(7MTR+0(x&rnL^fJjMJf zvP5(-;b(~r>s~uL`0j z0r>CJaWn=Tjiz6t&}|}pm)TSU%zd7j2v zC({EAKte&x&>Ib-ba`2C;ZcVNTNda>jH@At>Fe!42QwHCQ( zL0=gz8wrB)U-bMs{j7NlIShUj;d^CcPdc*kRo16OHg44U-WK8ebpMs`eI;=^qTjNY z!Yy+EdmEDL%?^JXGO&nu2bizB%@?&v4mFqe$> z+n85|=91C=jm$0Kxg>1ccj$A;+Be3aw;1QSog#PtA?R0RafL2p(vdNa^T?QJTQFM2 z6uV9j%HpseAP^;s{in$vg&uh!S^Uc{kujgHng#xc$>R+Xd2E(76%(??43ET6E|xWw zxYn~*q5mO|4cXj{zeC2&n9DNAQ`Pl-6FHVNzhiLRhU9e?<0kU@*m=h-&3`rHwi+Ln zjGY~RucL22u3!7G?4jsbd3T?0)!luPvv1>V-wi42MZs*VO}7PPk3pq5tygrAZunbx z9of+)aa;H*{V(fw#VEJb_0|YWun-%k2S3d;&2pf7(6%6lDRl~Oi_Ijqg^b%NV!9q? z>@3Us5h6-d{8-WF}c zJf}CWAnecl^*M9Qrz>JwKZi%V$Hy%@GAVx9(R|CY6W?w4gWzdk#iRrHGs&f662C@U zB{^uu#(0_zlLxnx9A3THSb^NCLZ`%m^S^@}xblDNUBY|JH&cjbK!*`M{u*LmJ1fI` z+13|_&jxjlL8rYmTvqat*+!|kz06MunGN%)OU8FFncPtx_F^;k zn@iZ6dI|l$pI`hHV)KvI_voFPf-j0S7Fm;$^=(hCn!f~?>OV8r$avos=P7K~rdDro zI8$y-x_;$h@|OQ7&bgd8K{llRlA+u{8u<1$m~uTV8r{NFHQ#v6~?oGFjl zir*;Wyjxi#zHR2STl$&DiqzEVcgDTr&^o_2Z;4X#venk*KS;XEwqH386xOSZ{Yj4C zzr?M5XrXuI&izR@1q;=qjxO*pWBfkH0CvItq{@ONm%QnCAQ43oZHN!!uYvz-!TUaQ zMw!?!-Pkaz!1EIGSne~IFXFy_hN?L{zS+^t^%U19P3E#E&&1~oo|nX%DvH$Cs~0i1 zPgBhc*KvOkyHxP9YwZTx{?+Sj+4OmXInJJ~%=YXnRC19@_di3vfAKYPm4(p{TR6*-$~r_D!a;GXR_L*Kb&(Q`#RCz$PuJj4=mbyWiXd< z$p+`QCCqqZwWautwH9Z}LFn^cX!9&%ydQe}?{WX_SY;l2VAZIx!K)KiKeTGpEy2|> z&Xf&FOKi;25fs2IXA$$(3sGa#`AY0bhHRM5?l-a z)k8;F%;V-5mA{|9tkW*F?Grpw_pRx3R(hDv(NPPt!I_K!dhYxs(9a?j$9?AVV(#m~ zZ#144DXnasrt-0?=MK2pBgeSep=Se@Rj1;o%Uo~V|A-h!7rJJ%Dc#?N9FrWW-S`PV z!j~d4<+lHlbGO6gFJ)Yc7$Hb$3uQB2S;(h|( z7(UUTBhP+k8WZecJ^f>JiAK96M9#@jPa^pG+*IScKj>(Udie39qqtCZ< zX=1glI=R~B8uyAra(AN->;BYM8)Yds(W+H6(vC|@C~sxompr>HamE`iYw;V~T|eJ4 z0{_W&=%zK<8azhbuH@^3iLzHNxw7Deb!x8U%V;Ivl6+T0Zs)f(_z@psHu#^IXs);{ zIi}*czyzF|v_$)>iKdE8vE)7lW?Q7yH>d6PN)x)^b{x+_bHKqzn zY-S4iFp`PWNS(;~fggAi%?a+^TB?6LFiKrn)Fr;)=fLM?i%NA{ohf$akV@=}Bk)5t zcsl@&>NQujm3bpe+vq4AsZG0|vabSD5;!^rT+2o*2qu^k%6|?nwzIytJ^O&;74S|U z-J8Z8a4?psODXd`-f!alYir^wUWrX`zeXL$`F@1iZhxm3exSe0peNyHp}%D#t`FV` zE|O`7b5P2EE_GAKYZs}M?c;v$c#U>;Xd~RmB^Lu_$osT8iFvO`yLkC};C}6;Nx@6# z`-$SLEykRvQ6`)Da3A}^NAT{ql-sP!VmGUSAC5fL%b6@$e*H;|6~0ljsa7+-?DxyXKNJH&v^JM>X-Y+ zE_v6nn!Fshn8(@{s`Owja${A6O8)2Ew;ii;)!cM`w~QfgHS+V1_&msmF~858Uj6}c z=7DMSw1 zJ|p*t^l?@0dyX;V-_q;5*GxX1^)WT4Q&pXJf|_4&FERX)dc|&*_5W{xqg8wJgWs^L z<&RTu9d$lxzR0$f@m)pTSLVLu=r?ERw#XR9fpSwsR=-7#UV$Y)(pJC8;T~g7viBD# zavOy4Bzs*((Z)rzv2t%=5d5YTQ0CD~-f`SaJI?W{rqG;W+eceB)0W`qO7JD^p%0}> zJ8x_0FT-2Zeu4!jHbtz}$gj(=OF>*M+Xd$IO2&&a*tNXGWeJam^R z+^5k$q0i5N`%&6xMrT~L_tM~P;H3~66`b4#P98^hyoxdHXFbErH=-Z$EP1~+w)|4s zct>RnwsHDfD!G5b5dLM1rJZYO=VqM`-gVS7H?F3g2cp_}Kxk-;;Qrmgb_DmUM#2vf z`1flWk@g(!{##VxpQ==0T)nO0qVcg6AI#zZD3#Lx532Bk`Ks_Gm7f1Wx~HxW`aAea zd`X z40kEct4Q@v=+yINy5rD07Vxc%r;KH@Q}A36tfl`8ppiY`c{Tla;QtZbq>ue$f@kUf z7UaRZ^jmO{KK@;ur-TmEozMm}^!7ON5!05ycO`8=dxJE%^5vBUE6onuH=)77{-DG3 zdsN~36IIf6NgpD`y(yr0fveb_o@@Fg8*96#tH?+J9i!xU%hpQ#G_N>yS1 zl|%AZ=u_e#&ZLBC_~r=RNu7dAH2bzUqrw>XGuIB$ ztCptBUk zI+r(W9GG9dF+Trg^h+u0)ZEqbzP*t=Md%;(ld%W+9~fU%$llj7S+DO1a6h4{(5l(W ziek}6xp%UEwHv*^l4}oF_HC2}z8jw}Ftnlnp$lyGvu2iues&o;%H^@FF`=W_E^FH| z0e$Tly2`|2h0Wus1Kb6y2p6TYpc(zGp7(q@Fh+D<(Pc$n?4>Po@gFFgJ2Ci7;_8RWlIH}= z>Nx8QJ+YEL+0q;41<~EgIj^J*-L?L|h;IyVhLhl(`8vq&4)j5TZe~C;LZ7D|AdZ?f zmZu*;#{_>H@ul>l=Z;=uu2@y9nyzG?`+>HASbJNr)11-PO>AK!YYjj8#Ul>anpRsM zHh@OFRQIo&9pc*}Pn#Y`Rb+;i%;`Z{mnxm{sKdgZsd<&4%-LcooD~WhIww11pTPglZ-o6pCeQkLpWsuHeT&ln zYJ8wQ=&tN#+x*|a^hqV>nXMU}Q3>rFAzsdcew>$P33lI19>$pxQ{Zfqb+#U21-dId z{fEJo_<>{}{?-}zmu~i8YgpTY$O2=0j}phCrCEb{rPx9<(XpVBZfFSGr=|z~v$&q# zl9&DT7S_Z2h2KkK((?n8s_+%4lWykh9?Ie~Ovy_wt!{*NT*=LkmBMRA{bh`~*nLa+ zC0Y+SZs5E);lXFEuQ`tG7?H8PdSU^2pI>k0{5%aE7hdzbum{Wd&B7m*clX+ddhXzi zDXoG0g_d9saOg3cw2dvQp9{{u^QJ3TdkXV>-h#5{M>bh?J4vOKS`~ZV`NgWj(nM8w z1ibVh8`+ORoE`ax7}GA+`ftg$Zs}feU&xi@sdL|j%o92#X1SEL_#@vXPLcfm(x%XL zmw7CH&hQ#f7we|R*od!9)`T86j}8(uesUGpt*o!JzS=*UGp@*a_k!cBGrxs%Z#sw> zv%^#Pe<#bBRg*{kB=Svxzv?|37mAH7Io;~nECsheTg`nAo9k6_{th5tu=(6`7z;aRAU%z&;9MKGtQCj*FYzhH8rN8T zec8C*MVTICgV0jFT@}`oQ|anhPg4sqBgen%3Au0e6kZPi-FC{jdzHi4qz8t#i z{E;VAmi?;3&u&fzP^r}6M8x$%Zm3rOac{ccwIOPraAcZD+pa)ylx_L*T^~+N|b>53*zEU;Ipa)BFP?xWHd-8%k z$ehM;wk@_ZVE(`I-stmU@8SY8GGz%dbTjGe`;orhr}s4+VFbB)xbmNk`*+9t3HO&vnQ`>>r}UNh9QXF@{f<}Yuh90-=$Fs5d3m zY=8b?$FI;Y{v}PN{AQ6O<&P#u%0lz#@^?)c_E$}b_F{8R=3;Yh=5~Bq$I31XW~b+5 z=3HWPW=}OapP(+G?e#C_WeVRM=4YD_sv%xe^cIJR)s>#7e z@jKHM`BJV5pWX>`UjDN&S@}oVuQM`&gA>`|aXN-CPH0y8C9vPfdV!K$4ZyvfF=1{^ z&Y6>ynZr3^-~T*+di3*bo@d9Z7p0vp;4dkF8U0Y{e%`OY)vtS(gm!Bq{M+|@k34N7xqjbq?AK#m#}2EIFds5&0LKTE_BM7kKJUFb-Q2CuE`%aF#DJ zMpG%GKTbwRdj-0=g6na7%O~jX6|8B$zUC)iz?)i7v$Mv#wBR6dtyO#GuEc*m-*R@+ zbSL}fHX#4i2sKym*9Gq>;^VSa`!zY9z1MJl6gX48xo_s&kp1QpH{_~@YqCA-`Kc!9 z6ZrJ+Wlii-;Ms`pJPSXNhVHJAs|va1?Bv{x=YH(SS#82)sQK4ly4O*{-j$pfm6Ch& z;&bLq+FAZYVs>V3!eyBvi=R(O4(5#TT&5v+OqSftkIYHLSB`AUC3Z21HSw7|%jI{8 z$@*e$BtGId;8kKU1uhe7+VV|O$>akkXHO1h^IeW8I$m zPxHO#tpU8&NWO#F*lLkn zQ+Cludd!UuCpMeJ5M71-*a08-(La0Hk3xLMR4Y0_H{s>)P+qr=`d)Z{@SmY4$qoMBhU7O(5DrANS z`A~%%=rt#{?P0vE*LVu#zmUQp{{XdYfTn@B7Y6s z{O8r4!h67t6<)#11a!-8E+&|`MO^-iJ{!-#cUZFp- z4pTW2``s#gtHU;t(1rBD#F>raCz9{Yz$JAY`DJ-4I8!+g4HLPZ3+9dpzHu-*>C@>E1Zb*&zkZEIj@O2HGaHLnR&%{0dB_*? z5#xE1^&}@UJk6HSbj4`ZWUN17uW`<2I1l%U4gZI|caM*%Ivao2o=ITOOzsJ{1Tr&0 zATwMPxn*oIlYllC2ok7OUXKZ&c9H-JUYfB$5}-9Ws0`X0^!E~Il_WN_Dptmpmw?uS zx7Uh4)V_TssI3X%7C~j?lJkA`%s@cx@ArGpIiKG-pU?SYfA-AYYp?aJXFcm#&wAE# zN%kZ?^H}BybF#aGeVxQ<{Sck)@rRN*>X6)`Zczjn^okzMC|lL@7W(cZan(PUup5S_^bYu zc~|xK^Xjg`HbC{Wihs*+@X_DYKOi>!3mt0q`;M0~|B>O%vvUS90{djy>kTI-pK->m z;@vm+7Uun`pDj?QC3WAalxGz-oT?nBF`JT?s zYiRecj+c#g^J({nXuDUbxYC!edO35A(e532FAASTZV`Qp3w>aTB{5hEzY{&@F>sj# zE>A$GvOWqwJ_8?SPtr4cfXZuvkKCl)mS;x}4zkwWg#Bhd`a?zkQqXDJIZs#w?P4I8 zu7R(uBlcwG4~4hw9Un;LoSqPFhJN1^=k+)qw9j$UW)C($vStX4ICYh}N7In`_GDs* z<30?m0%r|!i0m;-kv(F1$C<#L6xURK0+>^Pc`5WSJ`Eyg!cPsIOeO21iE-G9UVjT~ zy_0&KD*IY^PKMZRi_BUWXR@sZj>5rew#fc6o=+`*dXv!5E9d4P_;Xx8+bbhp$$XOB zr0uMKH>h}9!~1vs(V;uC7qV7*k^NUAU)CwDx*j~lWf3nQ`gt9`7!Mx$gNHNhIeN*l zcGun!fj@zVcyqjQp7b7g_(WH;pK`D#F-PoW#U|jB!Q>Y=^)G$$sz1|iKexzwGN-y$ z&%#$7y&8P9^PySjk}NeQXisodLX2wGvDbNb}(~AzLi#7Ae1kQPZLB^u{ z``&PJ5&F8s`q1`p-GO81jcWGi24-m9XOAJ%TpWi~_Nv$iorGtthhE07NZ2I#F2(O; zDRNI_zM9?01;O#JULAPMoLp+h-$~vhXU}b_z9$d*nrO%NqLVeC^#XZp*(cJc*23Y) zB<#OLpTk^rPs2W>QsrdJw~hy$e`G%y%*P+g!C2Jdmmu>?_V{-(uVnALnrAPMd^z(@ z&J$%m|47AK#lJ=7^FK`e0-r?Z^S?2l{{$WN0>jJDg)yJa=F(q@&5DY1i*2Twu4Y$~ zpCN9!d5*@Mb0(U3ZUSGG)72lH(8^|D(=G5J&L8%OZVeg} z-Jp$i?+E%1^n;}eedQ6x-bEfLjo)I=kwd;~gYQ$;$6la|bxLSb^w&aLHRy|ri9IEC zI9UIjiQZiz6ECP*^v7vjCgens2NzV0;r|#z2HL!bT)x0`RMtAyry67n*L?Jr-0kS% z_AsWM={L5BZrVxxtDseLJbt3g6Iu6kbkZYY>rtOMpeSp=I{L;IOC{@EJn=qVu1x~x z5p=^cUNgYG^ugdGiK?dy`geAc+k^Eym-*0%9ZwoGC;#QU*!qSY`NYw@7g^KF`fB0K zB_A15^t{C*_GiAzy9zD0TIWnf*VbmL6}GJ2bZ@ZtrR3nzDMi>terIv#s2dlb$ENnH zxpDVLZOdQ$ie2S}(c+(L`^)FpP@aOHp23DvY~cQ3R;_Qdui}r6@w)nkm%PJG&${M(~a&=$7zI@$-!Sc2#|5{$!v2EFm!`qgP{b<{= zg}htC^`w;9xUT#++aD@F_I`c&Ye&(ypWe3Yk+|k%ck%8auHSJTz1qM_YZZHwBWCCT zKZ(STQi4aJ!7}8hH=UvvjpRFEY=b8luQo2mwYxnXUIA_NAg6Y)XOMMBa^EWUE%;&u z?Iv6I0_L#He_8Xr*HORiFoa+Wn3q0=FGj%SPlW+2ssb`Ht3l=)GzkK)Lb7hkc z?kF37aAMhgx7Cd;KRBW6xeZUudS}DWW=%TyY}o@Zd;d85;P|qiQSM&KJiFnivz}q! zbej8f-ukJ}I_jtHsH~s51)0#`KeWYM3(hX`w&g2*>71LUwSBL$pzT&)VcR6yxtV&T zEotZM!57Phz8fk#b?~~fjCVa{|9Nmy*)QMyR@npZPAw()O~0*OvX;A?K2V zA2^nH-p!-Tzm@&r;N-IB5B|Q)bI7seXNPi@$oDV2JEiQ253XAB-=G5st-0MAWR$5?=y5-zlb<;U#eOwScC6%jN z&wW>U&*yjK^xRjUb`IE+<|GuHn{;qe()fcDl9ttHox5KRI=57*^Db;kF`(z^tbI(jrL}>Pd$Bi`&9Y< zTHa6K`-zkvPkA5hogOV`MEzP#9S!CGNH$_;82f>4X!!{Aduos(PYW@(pu3H~z;B+M zDOH>g{a{7i$mL#6*@WkJ6cX9SJM;r87=eNu)&8(C6^LyPJ zV*_q}zsA)?EOtK^Ofb;(m=<39pS1^Whi^6h{lNpr@L&3b{o>f3l;9Ebpw`Z-O)aCx zrw8TCO1C8kKAB}{Il_6@5xX}$!I>N&W}=}@Aqr5z;i12|@V|q7XXORnAy1q|ceH>Q&QiD6oE7-;u}Dt!1$)id zv=3pw7l~82U~m86xmm?64$7RJg5Pbv;C_JnGxjY~&llgHJx6^C~ik;NW3tMw!>orNcSiN6i9rJ*~IH=6=$ zz;QopahuvJ{;0Emg(n1^T=qTYXX-nWceV4p{^R6bP0G6~-mC%&o>AY)bN=@;rv}F7 z@c(G!eSJrY@x1=ylwDHa-_7RM`p%?C9Y>RPHSIeza|_=sNGKS)X6H*&e^lE(^~Yyk zn)*;)`_y};7mj_R_NA%Mu3tUt@%5`_eYU<~)rd;0v%Uk52yO_@`tJvyFMDPE`dL5Cdui$dbUTiB9A)dzv`<|&W7^m??>t#{=S|bc zZaX-tY~;a_Wj{Hycj`+U9-pOg9oVp8RtlHmn+Nd_D7W6k@20e zkDu8yb)nLNDF>fHKQ*fC&+C6Q>rUEzg)(>W-L!+lXlN47@T)*4RTzjjpS)LP@bbAW6lP^_| zTW;p}o6N;M)mJZf##wJap$!VOSC3t;_}#|yz13ruujAQE)$ZjbMmg7ViMifhJ$iW! z{~O2$*OkRO2aP{r(t{^Pm$YDe7Cd%!X^U~b$y}B_H@1es6YTfpoYsSk%~@cujq6_W zPJO`tUe4N{=l3u9{fV*!h95?*85B8}*6+-m<1Ee%bTV&6uce{;>q?HSt&UpXAMN3! z9*3M)QU7XWC1il$1$e_(WrtS`*`b4Pg}?o?a?C%me`zf~x#Cj=|L?fNH0v<)(aKsn z+JTPrk-9b=_~lHjq=Em??Lw|XXksDPbjG2OaafhGwd@XlFXVS2QG3-b1wTxWJb7fr3E_Z~9xr;9uli?Jg5~LZ_C4D z3M591f&ZAE$qN4}(NqwN9*fBX-hP;>nBr{&jegc+7p{wFu5CIkym;HIuU{ zhO;Bk*Qq&?xL@szgY}k*u;sRjFmu0qICNg2tle|2d3fW!#E!Aftzhq<;Ri}wC-f~6 zlcE3~AvkKhy#oDSdZ3ZM%Q*Ip;ng%Cj&ZPF90!x{(l|H<#+_6{Z5Q9=^m%syI;RAnfryt zo>niFdh|WcfPR}jEVOl@f591{`zzsGRecFg!O>?w)LQmH1G&UM(uWN&;$jm+fjOpw z6O%zJGB*j906htgjJWRxJqeCt<1RX%zBD7WazC^}ESih7BKq4%dD$E0AH?20Dk+J4Y11 z--O%yz~hy;{VsTIVGg!32gPQmFJ5)!4Z(jVbp!u@1;3rf+>H1>3jg`9;@IG6;8o^l zW1smc@yBDa)Mb9^2{XenJ}WdW@l*ATnPJA+;MK8Q9D<)ZaG}qTd8u}ou9_L%OBrqO zOvX}gjqypZvLB57j;u46$8)3|q}E7&%#3uE z9$+2bvCov=y`S~JC23wr;>`#Rby@dgM+w~H*KQP=XeV}^yw{goHWf)6yOowroH+&8 zT8aBTqPBe{)ryqJaNFzA;W)hk>9->)j3=qLrq|AhR%fU z1!jT&65M(Kr>7mwx6cb5;>_Z`Ya2J-2hN&-t99PI(9^OGt<*Q^b^4}~6;E%f?`H`d zX8&PgFC=|vxwaxKN!8GLClJo2`Li#*cw+9kf!F$msz@)G}C_2*0P>Sg_)-$mSk zQ`Y*{$QXY$mO|wa%BIZ3299y1?+wse)pZr&7JgShxH42NdZKtQc|2_0tMFkKTX}qU z;CpuPXm7nGQokDm&WtMXkx%RyWR$tWUuis}a^TEJ98u=6!j=d<_T9d%D?@eT62odNR_!z%x;ICmkd!dCc zXhCd1YdDMl0{ucY<7w3_rIWM)ff~lNnlbg_69P@wXv6@Tk8WDVQRt%neD9=tfghWp z*<+A9ZRn_vu{S=(cs%-}f-{`;q;iJ;mqVJ?T?K8MDBEqex~-fsRdGf)@w?uZDNe6{ z@(8bg?S+a1q9d#7PwYx?fLwQ}|D507HyN1&99Y1efdk+a90+a&2X)o1ymuMH2>p{k z2LHbYk+sCuR^Tl#Z#L$m!=feyyjDfs&Dbu+ z@b*1^|5xxe-eHNU}Jwpyp@Y9H& zqAzV`IEJ4bS%-u^ILr1;7CxAPFDbG0_|90@qGhFxSXqb2Qm8^sJ zL7RPPADg3zRgAmN9AQqj)-t9;IJXrV$n7)!hM#+#YLR&$<1M;Cq0ui29RcxeMmC%z zxRW*7)BhJ6g||oW*k_&z9%(D`eTFgD`qEh6Hl%I^E^mg`-#4l7ce%g7UHE~FnXHvz zc=x3^BoV&dF$7+Bt`Dz!?-HKy@&Cry4Eo#(gLlcEC>PkP=2e8d;9=Hx9xAV{uFkV& zswvgTs5zRoRAWAWJVDl@NSsN5)jLE@>LjL(>{$ati5pJY>StFi1O>zj%(i;iWhSLmh895IE%9vY~$WKzfQ~JdnSta0uXGQv5abTZ37y8EbPxzReWypE3 z$fUj$`a(OBhqDTt^c_?2D-gJ2W7^HSD`l!_Lu|%NfTs$)Rm<9guX!W#ubhj>7)mTJ z!J*(;;OL8Mfl=@+a>9Jh_G0+{?}gYjM{zFekl^Q^;k=#lQs(~(&N~=G!TJ6Fi#YE9 z&MNv5>#qx(SAmB+B7DyM>*)PS?qW|wJBFX`0B9%|`j&Gdp=F`_7(MT2T#h2!=W|w6 zgb$4sy6+wZUE?bwbX@~oS3%dE$@L+bTQaX?P9X!i|3@)BWK0Y_$WUaR%0Bz~*_U`j zM;83`OdtN*_uUmTQeo+(?_`hiA^NTuKkV#}-b(f<=EjY&eTtMhOc~Z8V=jDM8S+uV zoBE-n=?_oSiBDqTJj~j1LC(F&w<&U!@Vo=*YR48X;pGdsPh|grz&!D=O@(WPw=X27 z$~1|m5|JUiXnqgEWZ~%lRE+<3^Sc9*(YQc7>MF zJ!Sk8nYpxKtRKc%!6jZ^nGC(N&g<9{$eOs%x^E-?lC7Vw#)c>=lXY^YAnS_A2{H#O zSU-f{_m!z+E(~AwO9x6{ja=v-mdv+^T;vhTF{YKvk*zCFwuZgC$BZ5=&zZf4^Q$ixs+K|IM8k&=UAn#X z46tS(E8R^0ZNlHam$6CC6ONFd!?IMhtTkIp2RfDCGD7(!zjK{=P`5(nc#v}Nh43$> zZoZQovt4|1^Kj)ax>vO{lAEq*l=4@SgOR*?M*d^aQ1ul-V$iD7#b~tR=IOkDSX=;qzzBEsw3Z zwC9w)q^v~}i%ewT4s$eyGkUtu%<=3!P_Z6+x)HI`LpaL(T`t}Nn)|lzIuKwae?ku4Q~ssBe8%aUcSVdv9oU4TZe+5 zFJDr@boRuD16oTWbSC@B!#wL^FX>}1S`D7IEOF#Efe+%*m@b73ww%A8I%|`i%KFz_}=;c`# z-wvS+=L^WamR54b;p3LE=`_D%xRdX<7~i6Yku??CZ$hpR9h&TUrF{qR$a*I_q%dc3 zGCuXEdY^v^IHWE|Z}0O@P)6#Kcb%+}QfEZh8G&EoSxH?2zl?+2rED1396i0yKTch8 z)&VmxbO+!d)SNa?Y!yQ?hJE!mV(Z_8TvSO}p`qRAYMPKafZKq<7j0kqBmAj||L}U& zOJc_l7yAo^?&IrhE+Xe9ed8tme`!w5@?M(vqN9;HCA?mA4C&zdu&vKrT1{--s9r{N zGBJIO9X>B(^Eqd##$3`PbLj`x$XpUy`;c$@>R-;#)-62G#7A#4u~-h}3I z>asS;IZYTCgciO+&(K_qS9L%KF*-g69}}E3ebM{;pJ^{6O27M}v=fmzqH}_>0+*C` zeBS%K*sc?!{{Mbjh5m(B2gYdC2CahYe@?4k)j9U%|1lk-tO1wvez6^j@qK&i6!yvk zMaPGX+GQqg*Z1t<{HjamG@Z$p&S^gX7kjw3g1vouVz_HiV)!S(+!ECh>x|_;(*<{B zC5AigiQyx|6T{u3IMd?WKIb&8vfmRui@+f8#%zoo;^#MKUa0GP^Vmbn8WvfLI+HU) zUFn&q&R9!gYtc98H9KaZi-(7Ij$%zX*Sq6zR^;qU?D;P05jfL22X7YL?f;L*uh$R% zb3E>9ImbG4{;YNx{;*SnAIbU@p+jsUjrrRCKP6ifP$%aau{=;68uTfzjuS4!DLYPi_jaS2C1m^kC(YZ+p#g?31j>o;GCA z1Z2@f_DM-C7k;S1&A<3XdGQRDdK7!W#$SY%iH`U~8+EQ|-t-al?8^1J^z(Nd=rG5% zm9D5fP(nNU3QJbaVM}W@w(=4aVDb6d1A3~(wip|A-KkO&3KCkaz~TcIe3n}u0lsy7 zR}DPX=Y0oi&Q~5-42+9_v6@XsO@i`RhN+1kv!=smTSwo63`hUOhDvPwg7DA}&9>GO zRZ%-*y0`YYIR!hOb=AeN;N4@5Ad7-MpHlKDFp7+B;|RAI+D}yX}(Z@l%X3*j@7A$u~h3llhwP9c71|7mUS`zP-#aqioQzfQ1`@$6VIIT#Ql-DHYW6-r>3w+9)P|0S#PM9+(EiF z(AL?D|Nbb+H8;>EHs3~GYWxp4gPB`IJm-#n-nJv;-_jFR+6DT6uSHtY4G+&d(kn2T z+V){1C$ZOG#dp^Vj>Ohs2Dvt3zo!v@;Rx;BMEx1>ovalfCh;SEMzaP=QdMwLnm07w zr`eP<*O)x$=>oa_Hf4lNA_k@)x>35rwiM@)C^@`cHo_9BA zp3qWDd!1_hi9KsFxi3BO%#Skvec#oA&z$w4yKC>?c|^0?Dz><5*mupXaC*mABWE7z zeay%q%>SjOk^kjAvr1g!SEgnyy)ixO?5tAP((hy$zaKYQOYePf!lv;n)8^z~7`}A; z-iI>BUl=}H%C0n}1`e4`-9Gd|CsxFzi)@CETQ5i-Q(TaoTRsQV<&iGw8bU$H3Cx#u^jEDp*0eZU!E<%N4KMY zVO!Xo#5qT{#0Cj>^f$Ntgmq5lqd~t%dM61za-QkF@I%?#mcdVE!dGU%UrO2Amaw;t zi{>`_>Y3MMc-K$aQ|A)L*V3^Y`x(h`WU+M(*RPdx33%k(TKc4qQnT&g9DiBSgCT{g8n(I5xdaS3ZHozUeJgPBJ*P~ILxeHRbD0i(}tA( zsxS{9rp%hd$ce5ML$U@wvyqrA1KssEx&i`|)bqY+h;1-2=p{GZG{#e8QmN+*?T9?7 zqsy|)9xx}DJ}F}P3BS+xlD~yLD(^hx^Yk? zn~}59!ugf>gw0@05m*z^;h$u^*gnkOfSIyi}9}mUt*`s`RpX0!JoypUw2=AJ{37zkv5NTR%pNg&z}h#*h8#; z6aFQ95PnX5*6zLVwHA2!QuzBlD=eF2?aPNZNsf^Zv2h>&?8BMkS6Z@UJpeX*C{=1< zy$bfq*l`#CO1mkwI|o?fy}5y>!0k40w_~u^b6{xEf$#6_-})Tm|4CDN>vN3%C-vM@ zxL0x~=IoP0`Rz?_ef-V)4!m=w?!b=+BnSSk;#;3c`r(F8wA8?zY3O{k6x%!S9nlSo zUg&4w?LBDueN)9w$r*AGel+QOgR|xX!|%_nIPlX4AK3ZdC;!B@d+Q{FH}1}f@W#)g zypjI~Z{&aZ!Ig38qQklWy$Q8vh*{wA{a~k@litcbbJ|ZcZ#56G-RhgN^9$POg~w^M zanS2M^KQF$CpMC{Cr_?8(Az$t8$l`j?p)1<@B3WI8~QM`_lv%A`o;WihFs~Exgv9) z+%R*SO!llW4PGI+jR#}<&_p{@&mc7jpP~rQs0BXpLH#;A2Xq?9h8lKO#9xOO z7yOC%olQBxm~B-(duZ9yerTNCiS0zh?xvo7ujES?yCcbMCpe7dmyGGrg=b42gwA8n zSihJn8QAO;vQ`wdh)yNKGcMT%%9`NB-pfh8JNdo|I}tg5Eu<~s>+(!=GIE!5gT;&; z?MuCK#>(1-jRNmJ1Y*mdZfFY;@21qQ!HzxB2Jy0bqy zF`z#b&J&TXJY8244|lZJ^TqH8{SAayzW`kxLY5IebQ-$551u8kgP;r?|KJr^`CXW_9D2lsd>(Jl?{ZHtbplb~n-o**oao_#n17 z^1qFE09+<6Ggll}JXb%i{#-hjrA^&bKh=INwI#h#g*oU7=|9KkzDb1#-J)CrSchcI z|GFG5eRXY;o8&C{ZuIDSC*x*?*GWFii)){(d0VWlU$^f0n8$;_;}kh-XAV~}hpU;x ze&(;NdxODa2t3;1M}o&M!Q+EbJYEeRCGO#uQ9R1;jZr)r&%tBvoB?xOwjoix4KeVR zW#BE#z}ruV$tLs|qgBD9$OJ;G?IzXMZqm3+TxPB~u6V9~T>ZIpE=yZ`dHvM(N0s3h zv9B;59mv4ecXG7QzKtS(X9W(8)IxuC^M9)fzrR4a-i0TeB|pyPYgSbE&e@yTA`2c> zqwHZL`qIir4IS?eUrs@Yb#J1Kc^z#Coy6?fc$R_g=`W|)yIf$OVdi_OXBzxMcv$5| zFX!X@ z&Z8G@mHf$(d4(-|sIH9nC0ghLd!1A4S41~v@SH39*+f6*y9=W3c54IClf5l-o@myMa}3 zDza1y_^iV3*ur}9@T*e-B8U72{OGi~uBxk+SOUTNKNV&x?}BWvfAk+k&iM`Bh@ABj z^5z%B_BsGhV2rSl7V3$TrmMfp@V+ukdr;B_p^0-14 zm-3>25PgPw`4+3_AMC$YVbMJx8-_+hBOcU{~C6!)uP*+WA!W@ z`YQSEz&X}2TBwon6FbZ3_+@BUflosoy|lIzAt%UOle1u1XQaH~Dstu^xtcDmaR)@V z`(>TjIPI{sZ!Yh`=fHuVK^N$5GyToL(bF#gu@)aU50 zB)=OuAJe-Pws7?i78r4Gn3qQT(kFQqN*WZ99A@_k8Z%)xOocYu{7ekb`q$>ku_w8&l6SE>cz2XNGcwzt`s#vR%HhiHpiZYv`r*u$ei+a3R~Gmc$;=t zJFVUNuh+ia`N(fRZGQBPPn&0a@~J~B`cfxON~Koxphi4^+$Y#0RuQKQn}yt?{Ki(S zKz?`fJC%4@`fcUD-xIfTDsk(UX(0=;T_W!}-*C&f;`@Cx%kpeu$0wgAb!;oYdYE^^ zJBwBzwq|iHFqh$%$r41C2pGCoj6RT?S|Ly zWxgZTI!Y?XK5&ugE{rI{)h1B~cbeqrkqsN|G zPdVYkLI>y+3_7s=FVI1y%#&yxdXydtWPV5K!N)s+(E?56LlbiT2wyjJ5i-`&c7BG| zBf2F$rNEOvSnJu!Z{c-Nf&4S7Cn-nb9ICm=rzICea_gA!+c)K(ir63kt>IwG! zhtQ{>=M1buFEfkyAHCR5%h)FS?#>hVL|<{!5cKV)$nzB6J$WabDXr*ojB+WyYNMR! z^JgPt55fE^+!~{N+1|%~!&DyBS^7DtOLKi!bko z)NjDO^l}&l?ziA6v+s{Qml!M3AJNeW?9%s-&=W`-1EbFh{g=aT^k>E8&o1^ybWPE| z%h(h;%&p@KO%a?j4^7~78o0c&%rtP>_nFiu_?QkZH%IG>^WBlR&=J>a8@GK^q1VjW ziZ$@NFM4-KIgy{lj^nAS>byg0=(2wdcx>YuZ@haUaZ*aq1=XpP?jJc`*|m& zz{FZ8eO(1T{2Cfr)jK+jrhs@Km{8%s-VOL2{EPJcywd=kl_qN~ zbq9{FR@bsO>sgeqLSvwZ5}E5iQ2r9;`vXsBv`G0!+y&&s8EdVZto0#ZT+gD{OnyJl2aW&v#+rXO`D3(UG7oyq(U+d?_4;4@6x}Xo zgmUH~{)c*9Xj4Ql#U2tHFVpbQCZRofUPXCw2L|U2pAy*3`JBAhd4CYw(GT&rDY8S4 zTDrl1e}>(#@B!J277f4jypiW$^dzo(2fjFIk&832>k)7(CQ)&t+H*>f< zusd3pl#@1OoJTXpN%&LMxLkqPG+W@P%A2ws{^bm@^9<*pt(D6EO~Do)rD?^7-X*>a9g}m!ADHIv2$ruL!+W z7iY3kztEY?$6qoZiyl(Jtc3dV$u-!a(r1ZxBK?(qd#ixCL8H%`j6O@>7MO>;)^3XQ z*XZj*=CAbi*+$zIqW2J17=Sb`;N6~CaI^j zB;ABRac00~8fw^jFSgziG-(TqfL4n+Gi<}VQ$K#uBqpzBvp%<_4yD zXn$fi`oFbrM_?5AN)DKUHk0jg7%BU|1ID7q%olmJjH`+M2%e8(n^F8YG3$S8LSGXb z_ett+Pqjj_vvqtuPCjB$kRMyCf zC=JBcQyp1E+WZ22dnPnpl@syR5It`?->CwNy8ztCJnw{-Bo319ZIb`9#V zIa@h$vx}y%PkF$tOl(4ZK>VDN{79cI70RP8 zBu*_b`=CYDLk0@N@5q&1G>w>{jH$q@zNL08kTO*fc~ROE|AvMV6+Dft+3#tuiA&Ct z_kF57Lc9BDvmHMt*?XC^jMwCurNZmkPPu)#v8hqg@gd7#M73+2pkNNXOjcC-HFe$qR!nR@g|-q5~( z^dghnS~vHd2L*j_4K0>jNq4g&^eE#gI5B8wejgh823qVpXJfLu%v}|wMPm#b`m_x# z3f&2P<@aq1nv}UH?eC4XzojCtj{k-5A6YYHKFa^SAM{4%Av7uT@KbUZ2yZCb(QEjA ziT<$B?hV!3RVX})cvbMNdDC(O!h7n>mTuE?#Pb%O$NXJB+_I?=T>gUcovgdWbi2rd z8W}S?V^x5?OFnV4OVJNom#;i9`iqqZpaWvIMPfILZlrwN%%tO*2`u7NOH~Ole{9nNTNBQ68Oma(p*hl!TiI^6T0K3#HI(PZK zrONk52fFxQBQwPG@-z4?w%svUw-9?lV68zn<0zT`aW<9Tn^xz35>g=aP-}S zv;kl2xybDzqtpN!cCt2ftm*Z@xDL3aPJvN=H$-84xetts`27(u8aTvm&jJo(u!$Vh zjUPr|914#Y*g800ST{_i=l8*1-9`M>V%D=46r9Rl6M9M;hwl84mRR#4{3dspcY}{yLg2WDv$462yf@?(c&eHA zqDPgoBD1VR51(*{@*f8#;e9b(btSq)g?%`@EkktH+8zB2`)yTuqjA^Kb-BLn-C%tS zncLO8Non))Oj>51l-1e$81I^6@8A!b-FPSZEGeVzi{2M`{l&V7D{a-8xBV9%eL-J* ze79w>ezedp?KUT2JD5Yg$g%UG4>Zn!dMhFv`n!btC)99w$}G6Fay@zL)Php*P>#UQgwMf?e{=cY8sovRd2a zyGskn_f=03i zTu$_>2s=azxfk;b%!W)aHsFmpxlKk;s``#O~_dv;8NFANC>U&J@m)eXn}M zRe}eB!AUL+bk?K6gRRP)SH(E_cwPmb1vfr$)5TeI6*z3+t`Aeo>cI~-5`OqljeaFg z!QYiQjp4IO@EFBu6}U8T3SJujMNJ&K{sr_L-{#DIQMNUuGFx&T>Sr6uA2pB4w!JkX zJ9kL)vV;_Ow%AdAF`WE`pQZ){&;F~(c{m|0*!f!((${YzzPegJ@Z|5yJD*me&$0D4 z)*5T}SiwJfKkz@P#&QdGh~T{n9A|Jg-w6Kq;k#)G6?*dJtdu^9UbzZfsjh+*drYIU z4VjE{>V`tjoS}1_^{>8A?YaS6U_Tzxy0qY`Yqj8N&JJU?aZ<147t@S7_fSsTZwjuu zjxyxHh?UtynJjGFe1D$i*{7?CjSqVLRWD8RB-4Mf^IgSv3jcB^S2Din$d;)hSFU|f z`Kw-==5b^9Sakwf4!DbkndZ!dHu5DFg51fei4EUeIp5pDx`G|{Y<0|(odbO^rW55G z{A%V}I6FqJEtPj!yeneukabjOw`ry$Th3vM%-CnYv9{dZ|HtL~^O}hvd40A{k~xb% zWloV9-~Ro`*u;ety_>)*V<%&#p^uVrku!ezEqCD$lAmM#pQlY#`k3q(ts4IJ@_z8> z><$a~E$5t{vW?};qv)J(OaiCmnBR}yDE8gvR^^v+X4=+My`CcMLK~lrd?Rx{_Ko17 z3A|V+Be@m4{MN};p)-%{drV8)!S%&DpVd5@A5@nWCVFfw9iK@6X{Z$K}; zLT_l*s)DKJlxwr&po2p8D?%#^6RyghABX)3bE9FT+C}W}x!9T-eOAz4q%S)!>xQugwe-U>Z0Llw2Q`oIZF_-c%*Ac+EvfTIjMt^Ma}4^Fwil8csc*YtBT`TMF`UR4 zu3`)g{&_$1?BI7Y%Y;kmKYoI@k`h>4J z$gL*4IWJnzzLC^(SEL?^S1I$r0bO=Mmrj|}SJ0)cQOF^37+p8 zpeCP>w(Yai*XjaKrx|`o4nHj=CtGMv=v#98ITD1nBlEQ{zOJOVu4sLoL)Ao?qe3Gx zPaEMYu`%=YnWwkK+RsuGH}xy@G+GNi!sn~%;^qjCU%L|79Nyn(MK=lE6_Kwnk$s@> z`pSV3Uf(2lcwEEaOT30nnmjPR$oO!s78{Ft>W}dP2fxP>f9leF{O4m4#~IU3=CLup8UJ%Q`8hBcat`q3 zPokgL)a8%oPX3Ji5sU})AiQmVDtndVWdf1@#*|xDT(E`ou=i;M2m#qjN-f^fKy^`G15pRPK^Pr&zNHk4P&a??hj| z;o_N$QIo*VxE08n1Ma6$$6E5z$usi#T($F0 zfk)nn47P{8cC4?$1BAYFktx1Oo;jRMe?-S5YtMgCo^i4+e4RWq8rXyf3SSW!F1G#| z`R^RepVuS2#ThLp`m?q0PT`r?&|gFDSOLBsab%}a=6_c15c?4stHZYMVo#WJnVjKE zR%sHWN9-fDwi zE`aa);Elp}<-65sMPnE0S7jIK!?VrUiaNP`*j%dioa}||*tZ&Ya<6z6X3y8>XFF7h zUF?OMpYEMl|8V-)+s^-AU(;qq*TozDM(o3jYw|a*i%0+3JNI35R5AyRbuM$7Uw8_% zYs+`C|2b~*`{-XC_qt58zw*t(6=G{Ve_p|^#`m`^6Phu>?;~;=cACUMlKr2o9hKP1 z9^YNeo{d~9za`howi_2;m>@cX8`#@TXOB0HyE^W$x z`5oIcH1P~y+whg~&||Q~c!BiuBm8;f+nBFUq@DrpN%&aUvA^E}Ke`h3f_=a~=Bls2 z?x0=K@o`3Cz`Hw;CI{F;3k$;%q+FS7+%@?gR1_RIRJnIXCeT}xXf%57#^_FTJVbHRV zHK6FbPcGA!=Wep#H=BFD2w!^q#%;N7opU3*OD)~UH&xfht#^$d63o4|d8dPYz4XcP zI`s@5Y19*|+xt3ktgebYyQ1#LrEWX9pQXP26R7X-<@L3{u1=~&vHBwA_Dzgiug}j6 zT5fIHsn97%yM4>WVmHeibTDTkG{m{VO{kHV1afC^2D#GY9PJUU-M=or-H&dxrj0f5QF0!>Ua&6nX!5$!C6f}e#`#Cr ziY~Lxsd^e@%=zsq;H+b+spl~INa(w#1HDOK{}J}IJL(ueEzc6_jB+#&t0@&YgZRY!cjJh#Ma0cNpX6Zj+VwcwGPI0vEZjH;TvF;%1Uj6PyNaj}m} zId{OG(Y`|U>_Ip7?)nkI6XdTri{1EN zB){WGwSJ8wJ!k^w?C*l7@C`kUKj=?J*O#B2qQW9ai@x-ceDwZYC;xVz|4Vbc`<&V0 z-ma2tV>R-S;onC7=JYnMlkeQ;->x3b9IHK&X(!)kd;BA|e#^D=B%T>_*l(ZkmfD>lA=#(B)KHRb-9qtqlR)5dysY@Z}p_{?P%@(Q;rh(Oy=?}i@?Neqm`9wLu@ zzlS`QE_4p<=n39W96X_4^58j%DYv*g++P2;&~N_%z0DzHmPY7sF|ci?FUQl+Ri}CV zCsk@N>%k>wPC^$S6g;!(Ej8%cv+!=aY4FnjxZ3MKJ5c%mV+!|7?%(2`&7E_gmC4=> z7Y-`VeCljtf6n~M=q*$J-nW$pzBTcX%2?XOyEleCv#Ix0-VFdzn<&RaJ6&+e4n$R*5m%gwTHAJHH?ASu5-?k)-xY^PD~@0y_Rj* zIRB5zExCL7vu#>ZpbdYiaMj}4uv=kEZ*jj#{`cPNls_?f@PtEC)zV|vD}UqZ-nloO z?oIizZ%JN?wO>G)><7C};Wr5`rJdeojL8Go^1rA&0-IeW)olG5*v4@d=}H_nr=wi? z-%K24jPG_W$@Z3WNZOn58~cUSr6(UF=jN(MGmqW6q;?$7MHWAFK6UA_n~Al!it)d- zsumjX*RiIJ{gIm827T;qFfWxo?y+CJ=h>W^bjsl{tm{Z4H%9ALsgubR2Z#W=0+Lk(kI_5^T=Fp83EkPiQ~+_ zjx}li7W(@JbJm_Sw&vK+9?k4xULC7V^IyyNi=*`w(?-{g${+fB@5Q#r7c*!k@8MAy zW25C{T(9E!8`1x+k9#L}LA!RIwf!H1=d=yWNE^%iItIOF^6VHe_0pd33)lF~nO(Fi z`-LvxN|XA5TfUb*CGmeZd#MieeY@Fj)uV6PjgC(v=MQ~c=0JCK3?Gk~=;>RSpZVx> zx|R_;lX6`Tc>U5ZIRo3x{*rZO?rzbuA2Pm86Q1-ra`Q20G|Ed#$0l)h1U=>dNn7e_ zcqFq+Xr40CmcY~XSLJd3CwYUIlb>Avtu3)8`tAJ0rLOUjZ$F?+7rYA``Ts-83rxT# zeC#FQl3ZTG;}YNRo!CqNh0pCC!k!RV4PF_=6?`;xx6@T4xN3&hy3X9^?-ji9yz9(F ze-}LX81(6~ypefqMsWyUm3n-JCA6FUWf%Kt;fHI9<=O#n6`r&G7V^_;iKW}2t3#T$ z^w{c0GTUy!zQEv_jvDN~<|e`~?}T4Ib&uC`h&6dEV{j-#Eo}q0hXzBd$k>N+853yt z&^6$db+7F`uSa+#JZE;>d+;y$PaOK))Ggz12-!4&dj8Q5e#P$w&TiXs89)3ox8KJ+ z(UMA&US69fbNFxfR=o!dkReFf{@}fIvdkfo%*S((KrFu6UWZvv% z4Zo@OWNlk&nJs1Iz^pcOGHq`uPs+;vbCQ0#exCGw`wZpZf~|ksKE4H)yV1R^{;YSd z>^0ix#~YvZPHfvroxrg@4jeKbuMAabZ_f7m1^#0XJ(8JZN-AyJsXW`g%D zOMfKue*X7DU&w7e^+UW5evUlWz_>2H%8Px8_i>rqR{8(8g0O4Sq)mxJ+DT zt~joEu6|toxpXc|n?tLg>KY#(l)KQZ=zzpNR^pn<*|W$79p?V6q8AW;Cb8qcaAW^N zUbK93V)p`aAS8B{`^R!tkfi4LQxfL*!Lv>Jz7u>XSp()4hmw$=+VGVXzMgbXafrUz z67R8ul4^@XiGM5izbW$#ev?#d!LOP+DU2G8vZcNN-b0tOUr%dASrib4=UveN3x%Zm>Dvdn8vqe4=IpcR# z$MgEVcc*9nRVi7Qy|+SNQYY_|c>kvXiCF{B^q;b1qSw_1zJ*2}MiX2`@54hqP>nZ%ksQY3$coDYXmpw~5CoD45bw|mth`~kmFPol{loV?kY*i#I3civJQ>e>en?@u23*C+ZV22|%Qme4=@UiLe& zy`3Unv+VCw-pnv^$PVg$qV78Knmm{ps{3-H|9|(MukT*(@>l^8n8oL)vJc#sbVZSK zZs}i4S0uV0>0eA|64QUk`^RJV<14axAx0GeixvVK|bEe2ZvYuY4uVIhpb_^od5m#<|PC)3( z?W@YO`doRe*TMXr6l33re6`-*p5u30@cBo6hmRQf>V(fFbfg3yK@K{Oon6e%#*JM; z+1R#CuTs7h+7&;;^;LK0{e_EoM}}`|FS(Z`CQ<>kE6)m8ldZIIk~v{vezPB#=sKBV z*czEQXBb5v1U@V6Jv}n+t(sfYgNxXg&8UjPN-lEQ<63U%A1p~Brat&zbnAD-zoBQ* z`$-EGWE=-{{owp{hF;^VYgIYZvVL{tcn_@s_9%_u5WYYaZTj9hHDI0F4t9D4z8hG zgSj%eQW~b})bG*~jrKaBFZSd;HSGOMoGK`~%EenMYL^_YsJ&bB`rC-5@+Q{_uC^7) zbKc}S!PVxmFI&9DUi*f}p0*e}{$p~-f2au^NwJ1cGv7)bQrEw0$+lkBQ({-lMJ_5` zLb(pcQ)o~4fX<%g)x)dH?ccV9UhUVk%nt9ckZZSuGZR<5Ug~>sZFy0`)@2e)Vn1VK zVeiv|pNWONjg5GgI{35BwS=nRe>V0&7WVL+%ty<6BNz)MXG=Z#!06I6W31)OOMhAT zO3beqo&ygvbTH;VIvC==W+0~uZ#s-Uugsyy{EFl;_`#RRu%?U}7h`tcyyDQk%=7!1 zYm>M?@Swz~HS)y#Z_`yp+86)#fyTVQA71eQJmUujPt9Q7_tAY5ztZ5zee*ifj|_OS z^nb4OjXpgNv*KZp4|AwXfH#!6z-`DX?fbI>?Voa{z%w(?`nMGE zELWbbj%(}vm4!G+%E*z~u{xeI{kZzKb>g2Su{fn|c-6$i?*h-6OYrb~J(r;;|1Pje z9kG7unm2rrhKY@?ucYkZ{^UqhJ2*#Oue>(nI|pZo4Sz-7K4WZ9WYq{9*fa7?J39J; z_i3|v%tahj(r1B3XhZH(_-4<4P^NQiuri9LA~Sud;>?;o>{?{O4=1VL6`sxv##7b; zjACzqokzeF?+t7JiSB;QxQpMO2DT@b*@E@%X(6e<@!IJjp-Y*=@?UZ%IzQl>jH``r zVljhOjhhx)J$ZUaJ49dBMczsIRVHs}^>sY&;G4K>F1FKn{SBeDg*Su_cTj$Lp-^OPrc%Y-;1^kcB8S#iC`5;ft*~vMQ#(5Gss3eBfy>Ts)A$@zEt-z2cj~glsT29LO-~+5py^7L^C*!^|6IGb`q23i_!S?5bIT9C|M{!0Umz} zdOmH+tl5vBYxDN$p5E`Lgqxx3=Ie;>#BU$8sSo4qn0wRp*m+O(hCi}-g9{yIV&@_2 zfCuTzY07qf|E91V`(tF2xu>L_fAxm{nB)zeeXTN7#P_bxRz-f042;VwV#gN9p6a zs}=PTuj6rtU;6*$w^ZoGdBl*yUr72rlzz+D2#$UI)#SgzPdb4~cWObs*q_H3OrFI1 zI`iO~Ds%+*ac@Ef*eK=lv9)jx$&$Vbj4i1=DLN`XdX$N|{7ft?GpeY~y z@FMeAfKBMzv|?zM(Qjaub049X3SzPiHgC%O;@%rvUy@Je6#j@p&!_QSYOKr5It)x7 za(&FzWghHyGKPf?Ex1OB-Qs}Omr8O2U8D5y>EXJ;8@q-V5gWNE+zm|>X_nS`W@6-O z`0TUSuh4AW(-_C1qy4AML-&U5)%qPOOg-)KpcHus9T%5!f zUCK6<5Tl8*H7irH?Ci4-qf^>aE;dW9Y>A`XlSMvnU_Zhh$>bqdPx0u08M_8&vu2OO z4xq5vWUmxE2Y#Cdc*i2|Eghb^XUqa!*;i+1c2i=*7?FX;n=(spGN;&#xjJo{D~5Ls zTvnI|)olF`{4*x|%xbdG)NaNw6?~s$PRm$|{_*HVcsRFVy$fI?coevV?~0sBJ}+B^ zmeAdVeAdXEAGc!VffK~iT8!@eO;b`}5Am_KYTjKEN7V^@TgW9kAJ`<1n~eRwbI=20 zFXJs^501mqwv7F8bcXxt)cVuF^BHiYpZ`wy6!`TS_%-5l8Th>y{N4+GBkR$3qWPdB z>rF3nop_8v@)Diz9ChR3ug`_BFOs)38V9Zjo~b+QB76@$PHfHBg@=Af{qRs3*DKep z%H!V&*X87UgdSy0-*T9B;BS$2pz`z8Q^n6_&xfoTcZ@gIzS!Q7@)^>mqD@1l#U|s| z(3eguv92MkZ9NIW-1D0oc<67UWs)G|7KuVGXgehS*vzEaV&=+XLbu zxgFqA8(&YZo;YG5nX%6jgVVAD2lY(!Sj{=r(WPq-)##N+_UYb$iNfZ4Ew{*6M(U&Mtk6g! zYiuVl6+y?A&%P6$u#2^tyKgTs5$T)G^Yotn;s2ApbB~X@yz~9((Z~>TkVz!Zrcg5yQO%GikXC7Cg5oqSFIIK3D9GcSh{X2Tc@?h zfIZz{-JYtg-EQ|RNwD1s*sY>m;)OZy&-45Jk|9L2yWM@A^Lp(c^O~9G_xzsA_xV2G z@AvuMp1&%fe9XI|eTq{!34izckgSuS{V+JFHPl#+y2t)3o!tZq99wm+y6A^u6|kn?dGR&iqs- z$R1s$|3@bcx1KCC@~PLZ+H}tbMh1++lPvH>WnO#yCx6~3JOm4kEy36Xk8D_IeEWgB zH@+eLW_*%Iv&YmlW=sY)v?thj{bs{OFga7dGk`^Vn$ z4+$2?xU?>7DoS>qR<(D?f-;wxMlt^FYy-2|?` z8?3DNFb6aKYbR8{*YUp_UbfQKJB@2Rc#t#V?K8nTfRCKP_vQ8vv)e`PecNkK_>ukJ zS;x_QeB`lsTY5aT6@a$OhE$NXw|d9!E#%l3bn#|#`7h!-THyLN&MKeFRT6XWhi1o+ zZzYow8vsAz&N^hqo8q_9O6GzK;er_&}ov9q2Oo}ggo%@@9fo)PW3YXJl}|ZAv4cE@;g0`yJYZ9^xi{WN7qt<&z@{o?{O@J*uO5|TsLn@cV>gL&d`!Y zuYVBS_1CrxwMJ688}o~AKHmxl@r`OKv%`^%&VBHMtW`7@-3ep#a+FJk82A_DuGh0< z44w-=;ye@X;F~BNy2fevkCn^bS{*U%3-@A=Sm9gFa%7l-yJi+geO9XP?$#H?d)3ZJ zziwOjWL7x%=jhWDb&=t&$<`hZPuHqnGe*uc+@+ZL5_e+ZFXg<$UEk1)qu`UdPm6l0 ztNXMB+t+n>){P~uoXgs9hnBZyY3|1w`OW=UBfsZo{l1vr+>xcbu`-`786M(3tqk{R zsc(z*Pv6KrS)b;<#Iqx&-_lS`Qunl`OSmg*o^w}LK)E@AvvS^B_|~QKT2n)3x26tZ z$C=ICN{4{=eT$Ok^IQ0sCQrej=HbG}di5(c**Y!hu%x%j)>Uad@_qCA5uHwRuk9hu zM={odJiB4##%er7UyCZa;~kh@w`Mr>CU+txa1jf2^)PwpDW)>KJIhn<33kDKH$p7``xo(f0hi?MgIi;Z*AtB zt-St0Y?-+>xXW6F;b-ew);&>1j9#`)RpZS5ulZ-5o&^1v1CE{3{nl&bqd#tO7PL*i za8GX0x#`%`4v!0+Wi9U583_yD)`3%7*f)wf&SdQFk~VaeyK=(ICv3+(&FWr*KB~9f zzq_|RhY$A)v~#~eJNFB;bH6}4_Y1V=^2yuXTNGb1vY(*chyI$qgs;__D|sLPsb@3W zSD_bbj`DjlGQ>T|5L5Wx&9~Y=i{C#rzoGezQ+*BGsQXNyt?$z3%ir^Nzsx(ILANft z^KvGqTYY?m_PoBtPk#U13Ekg9k8$X*)pGdvR?DN@544$2dXn8DS>|8yD;}DEc6ex> z{G08TOdg+KTdDLnr*>yrr*~(*Vi{T*;@%$ilz~~A_@?`yGmj%54As}RNVg!{;?M_c zThL2yoB4MA3wyxxbO|~@a&|beTF`HBF?~a1c#qHeNr6?cNl`UYz_&b_65 zM>f7-+6eA{NbLsr7VkI;?~qM*R1S3Ld<30c0-dpF@c`!ut!+YljInJ#KN21UKEi?C zeP5{=@4g7F9rlH=;3rsNXGm#}VBcSVl)KJm(!T8DrAI~ME;DWEx#hDKZ$7^^EO@9d z^`U!e0^qF=*s2bDr(&jUEiTmiuSpIVrK!R@?kTAvH~ZGo=;elXiifLQc%b)tp~VC6 zu|e*$Q~O?<9&f8WIcah2QOU)Z8Gh~AYoLqMPaem%@|yVdpFw{=&b=~|j9w`7^aS?I zH1^DN=<^KdbUt>LncXM9i_YTQ+OT-I_B=Xc6H}u(1>cCTn#H^l_#zay`mc#z;Mj8P z6O7%eF=rBuZN^=Zzxv)A)?>%7UBbRD?1}qk7@hQneW5M2Z!`aId>}be=CkrloqY?P zI{KfX&g)B)@vO2opZ!?r74|7*W8W*CK%M)1XRNb#5_MkkkJJ&K+(w@|v%DAi%iK}P zUU`j==9;c2rWk(E z)t1Iw`)8$>PB3lE;7+1l;7@Iy%^gD%%-AFw8dzF0@^-<`YbWz8H1YIj;C$^Ay*JJ? z@W1vfy*KHU_qupz2JIgE9(xTKi{|acK2p#+;hNgBfzLN48QIj6*-QNP`a;#`tT|8q zp7@_NKsS{KwXZ!(1d7(?f0QR2n7HjVs)1KPV`?`asbeeD?;LZnI73C%MmYL6+%;#x*G+OgU z=M&pBI-g?lDn2>g{@KGf1kHS|nQp(b;eEm6cylRhy8Tjb9%c?ccMkX@j?963%QXiZ z8&vij2BtH{n}g)+3~%why5>@i@wM+cwDOewF8dtM_F&g4odNzl7&QA`dh{Ln{QqdK zp&zI0|L-b3?<4H*)$H?Y*zc>L16M-_Cb&Kdj{a~4{C-B3eoFj3TVL^S)vu}DGwDIp z?jNf2QkyTpQ{G9p@`viYWD^d+FC~*j$H-te(@!ExzDc<9O~RFLw!898hpYe7`(yQv zo(}U&{p4r$(}w;?{ZMA~q`HGj-j-k$&;;*}kxMuGINW=gKt^ zoiXj*4V*U>6DK*bNas!DmqN~)I%k@5U9%ldPjb$hlKT(BkG=CI=f*`{bMb8^PE2{; z1GV=T;WsfOfb1REXcc?99F409Ua}58v=-XyoF$9hvt%Ln@L8tK5&2i=N%|eS#uq+x zgL9_DUcD%Ky%mn~{w=F)bI#=cJ?Ufe?E>guPF_;{b4MZc{Gaemfi8&Fo#_mjeV^vZ zVrzKTM{C1{$Spcc>I~a@x7FQ;Ew5Gma3|nQr zcVUEe##bElBIKzA@dPu>m>iidareyP*UfmGdjnaEYm~28WAk(yM;Z4qpOwmPJ6kuc zv2c$mFtB>mNBr))U(oxD@F|VK_vPOyn6IOsWN|1}=X*NMSIuXBSR-jf3l za&mtOpS*LK#`(JREwedW5Eo$K>#y;KCR>X`;tdNNJdi9pV;*-Ey7wP?e9@X~JziPn z=s!dwk-fN^!0HL|TYB1TeQT#LzNE`%aL&~0Y`1oI`Roy0?Neo=I$YsNXS=<-v)#wX z&nJh^1U?h_OyU#Z6XcW2CvSJx`TlN=yOaC6yMD`^t;j!N#{Vdvm3;p8FF2bt;;U6* zrJfj!5dWAc>WeVm#*psqTp#?^2UFMvQk(59MVT^d{ryGOaD@Fl1kIBjxnf#!m2Anm z)Bfgj;f+1p!pKa@3o(H2hI|ss+Y&|R(vRdYKe1{W3kKDmNGU!`A^VlUpG{4c;BV6r zvVRs{HZ{59Joenrrzg*~6AwjsM{PhGDlWTWLbcwth^rjc-8=Z%JHc8kxO*@)^DV%Z z%lmQ0n_zC5XcIWhNbBOT1^v#-s#-Vv=4wv$+KD1{d(?;j<6!8&fnuj0QpTI7y zcjMrpJz`sM&x#XW+(OT+I?kPfCG1PbpS%}4gJ|3{tj}`RXBqR*+`c#c`qbZ^bv?dM zk(Acw-R9M4=H;vnarz_ks&?lky4jyKuLEbCS7C)89rJ8=eZIiF#-4#g%*)#s{pc*a z=tt|Kd7ZL0AAj#_^Iql<;x0B1$NrEx+{PT7J&SG(nIy#j9kYd(lSj|j;M_6rzkipF zE@Vc}Ui5Vt^b}gR&{?eyLvnqzJaDnLTmtm)HLX?zO5l z?)Q%~*8uo|-38dGAMO!g&R=ED54dwqliyAH4AG?y+R=Sb3EDbmoVL2KpMFg+`-Ct2 zAn&W5;5#rI_?~e1n|IE59NIq??ix#W|2lK34Z%G@-)(b%+ZAV-^NZI`JM!VcIh4Qd zlxx221(DR=xtw96XPdgFtO%VebS%&^HQ5bq3q#v>l^gb)rM1v}RYx(N z`mf)gX;m0Oa zXUikZ@05Kw_L(CW_}NQ2?5PRe!*@_ZOaSYmSp^t!<30xxd_6G)l9a_M-2@k6buLY>h`- zdM{#pBecS)7pi0|Wz-`c#j6)zWGyN!1DErsjnJ@90#8FzTvm1q@#dg{^jx6+ZR~Bl5-u)6;=p$LO&{Jb%p{J0AZe=|0O%^Id78=EE z@mUYI#cSg;M)_3cjJ($I8S!}Sy};jFAMd+#9_N&Yoi!T1^D6N8O7Qs#&II&H@BP=83nj`my_Y;Qzqqz!_`oMhhF>h0GJK$D%5dNLjx9cf zUq^yDdi3$IUfFtcghxYlry&A_9*9MZ$EfAdh9nDBcp1~ zviHKzuYK=(;k~ROa`C@u4Q20;G_nFz@#L zQ)cAdgS0!Ie05tEZuB8v37?ctaJ;(mSMhj4_Iv6ZANvuxunD}9T&T9NTNGMuZYa?K zQ&+k;H}{&>RcAA;t>|t)x+TF!^%lu*s`shs+kJuNXUWUq^j(PWQ+~zIi7)#lab~Kg zHhzL0u`|b7JXRhSPT)Ufi2Kztr^&~w?^&3UyMwAIpfs*7=7$#$!Xc|-OPL2 zv*omr_wz^IFXuh&Dd||WuhdVNHr0oIZvy^-S*~wO$n|Y`k9L1g_bWYzg|1QU)rR36 z-^w4^w>PubSHs6+6|4ifJzvJhUNJLKa#ScDg0tLem6wtmGBFMw#k25eJ9rcak0RiF z0z3-v-R9!pMc{MEOmf>|>p|bLKBD%?G1f>9j5x8Doh~kJXKl8#M%$g(M#&NH7=5}SuSB;EUlLqvp@)K1>jLg8K(8CEi!Twa zR69}VOea2QjTN;i16ycG5zj=IvVF!y7h;qJKND$LhOI+-_RZwL%zMth6)b7s@uFeSzGd_1nQZYCUu&Vjb=a13&RgOV7dW9eitTy758i!1o{*KeH`&b1!m7 zWVqyiSi{RUc5jp4S@YXBy|D7?nb(B*-aIWgZ*sUc)k@xwrb{}CmfPnnm>&%0)m{=T zZYGxx2^Ldv_PB==xh_t4KGxzr?wEQsCatM`9(Ri{j{J*iQ=Z?S?4_M9?GS#(;6*m{ zAiv2@sk{{0;=v?jDIV$joHI|4jsDAc{CV}0*>LesumKIHD;(d#J#MVC;Mhsq0XHs4 zeKqZ@3$LS0zCFwEn_Nu3y&`N*@=aLXT0pMw{KMqMS$#jau%~WmvXecfK0?m9$;|6< zpVdvQWY4duGt>I~s$=--zJbrKYDKcCYfdTkHQ}dPk9H;gI5hXRt?D(`QAeSbGauNNbOs$k4)i{IHRi`q;k#VqTkm|G{D17kc?#ZsufsbF4XAqC6}2&p8~1)()ZD zcl^W(d%AP?liMVosq8T4i5u{rsJO8J{!;s^Mf+H>-@`zJTgZ?;o| ztVk0N#fA7zHWO>DoXa1z^S1Q+ zXPG^a@E0|A($>Da@rUz|-h*DgVM6j4KI(5Ex0Wos{8F{8`Kiyg@*MQv`KC|p`E~4t zAbY{PJL1sA*p%51LFho=Z`dpBiNtRvRjuZI;Y0Zgr_=xPdiHW_usa*Z-a2YMj^pRn zNnW}ZU|&vLLLYvX<$i}hmTqzQV~Bhd<%eDVNDQ;#kN8}v&!r2w|7jEXdg|j#egn>> z!2xgGZTC#*;Y%%Re=l|ZJ!6fKkM55(*70JY@wv?(uRJ;tn+tn;ZEo)p(d+&%*}Dgc z!AUQK--08V8N@>HeEity9~&NhCLVhx-uzzp?;p!o=>KnjB*$;DKnkdem5Iwzo~@#&EtMtK%QuF3smZE7-d$CO*HtPVh9)oys>vb^oc z7~Fq4V+Hw0UY^lGPHS>;^4-)OEZ$5G$N+Z&ZH6u@2VZc?GezY)a*LO3OynZRabH~QLYL4Za<9pT@{oqvj?#`Uv^OuoX318GhcLbi@ybblx$SO`9gBfh49AP;f;B~W-{<-fj8z6b8(M7J8!9f zM)PENPCNX}TrzLJEAPH}=N0%0)nilf{IC93mm~W+ zdtNZ@0;bt#@Hp>g%eFCK5d;R^%zq($NG?#k`9!{F2oLDbdq-;*J4Bc&_njACZsx@xVtT z-O9nFGermQ2Ljw9NgHcy>u@jotAVi>FxFeCE1RzJ$Sh{e=iZ>%d`Y77S)Gru%_G7ch`t;{7Kljlf{+_&od(tflLX zGe^auO22FL!WH%_)?G7`wHH~$LKGz1+Y=+Y6Qdi3_Slm-SMi?SQ9EaPf9>Z_eg6;b z@4xDwc|HDLf=_0X_1tUdKa?ZUUK!~QaLnF`H zSB*X+uNEXJBWR5Y%H#^4t49aim`D<$Y(MOzh@zx3g zXv*$mo^kG5iWbxw8(sEXTMO)At-E>7`sv%uZyvZMUzB<$-hJ%22S2-IWKR88*;}p8 z&KsGNZ~f>q&biEqJDiCL4qRFb&+r-FdiiRx7F+qqZ-48Jd@DA=_#EL+B3z65PE;LGL%hyry=w5k0dn0?zG#6r6k=?9{o7qS4%OZv^Q{Gdy%-&kJ_1t7B zZ3r)bCC3EC`g?bfSx&5DRvuc#2@qp}KaTvwo%_f#e%6ck;<;Ak4B25XtJVKg=XUVa zxpmqns*V!Vsx?j%)1n-r%2#m|zgyvT9Q}vzycRvB#wXuN<*4z-jQn1qaxcaL-v~2y z6K~4g(uLe7&0Pudp^)B9ww*5U;2`6WABFVJij^^Y8aVeemI2^zV8XzrzPui`WNh zd5*kKoBh;1b=~qS6hkp`ADsUk@UUfc|3p{XKeH}9e*_Qr-7@-Y?4De^e)QQp(ap@$ z)1Hf7>-fjb>VJQ-*`_FW-0pWhJ5IB{O@a;dLt*+eKsfA82@R_a@OazC_LcldupQb|6L zz}3*xU#9$-nkeftG{Z_Y&8khUg|3C3?x6hHn$oBLTTNqpe@*D=E&Ts+%}}A8Y6=i5 zT>nM>_whWz^Pkl8*C+VDuV!eTo$8ogUtRk2X3GB;h5y1-6tE~u{_LJ!!nK+nI#^Sw0(nOlGT=WF^0e_C_sV(L6Y8<*SU zh(O*ZK53x7t>#b_JY&~aYP8RK;Z4FzFy`3TC#SOMVzh4Ja0Gg*c-?5(RSs@e zy8GhObt#oKE?AI^J)-x(U3V{~nTu?9>&l9gc{`?%N2I8S9O$>-!yYFOI(G@Pj&_c@ zKM5JUA>0#hOE^u!k_05Tfv=pw-3?Rp}$5J z=S&@%aMkXz>fR-}1Qs1)e1n&fPhjH2-KD`Rc83OjT9Z55PW2Cdxn>}j{OJ>}+}%HM z!tOG=Zug+ix4YD?-#y^-^FP9Wi~qH|htPWmxtn3A8J{KmJA>}>zB!NDEv!oe@{zpo|@j>;!oIN900kLR0d!@))2 z(Ga-UL0@TbH36;)7k9M(U5#+4v;FCsA#kw+Tug(j34^O&;yHdn;A&_4k7|a%!w&E; z4X!2(uC~<-frDxAQn)HS1V2n31Hqu}d~A=bU9{pVm&cCEBCX(_@TC))mrdhZ!Aq@u zv=00NUWVp^v#sEs=z00MR^=AfI(@B1E;&>!}3lz z{eg+dJ1$Po9S5f=Yb*n&cb1NyyQWAE%;yZaeMs$JR(H-GRleRTU5aBnf%5VW0A%0 zdVUx9;?t+{ZSlR7@5MRs>5_*+d|%G@-%<}8%^8o&D?z+oSAPi$Iqq9K!cJdVsDTH?v}N0HmT_Pw@mqi>5jBzz{fQHA!Z zf%Cs}p9(*NdVL{(kZfX2U04 z=fFq#5=a=I{KZ;(>z=ij82ISfEZ|cOd`evSl)LZ=jljprm*T-k?R)U?cxWHK&YuO| zx*zHIo0&Z-PmpUbQG|?w&x;us&m>3cU5^flW<_tEI2>o4RmW>L#=M}Br^>*rZJ^rR zbJH{E%J`9-6IIT8$N}*2Ox)OhNiw!>a%#h6qLGYuwnrbW3e`*aPgF(UH*r|8 zM+w#zI%Mcd7keV{VcKCllC5KF7gn3+F0WFK>;!UjVi?<{o_}g#^?vY1GO2f#iZOQS zhi9@TDB7qe9z9CWb*6}wElf5oSePs!kML4HrPLwkO3xmh(U^DVm^JKj*HCiu_gKS) zoIN(&d#+hSJ$n&fhvRit@_^65@pQX`=TrG z_4lnbzD_p}E=YQE(RO@|RW}=shOX${Yn?r0`ufhw)Xh7`yvJTWHGCg1j8H$WGcdf?`>l2K{5GYx8w;PZC$i57j_sgVc?@Y+X8`MF&Dqt3 zur|V*;LO_LAo|9pe_okd_YGp7s;4KH;%~B?+{}{SyT4&?4PQN-JIOXb)T=qnWr5d&Yn zcjkbvDw8jo#!WwuYY$l9Jo6j3%-JI)J!^N`kJT-jX6}j@DeF|(RCAU#`4+%O4=+_m zFpJ*mz)N_fXJ>?c^(bySdJ%L8H~6sW_=)$*>5hk>nOW;_oH>YQ_G^tl=g3-`SKu7Z z;`G<*!nJ^RUR1eDFZ#rD!5ssyiyZhyCP7=gvP+z@_!M9co(ji>w~Zd2X374-ajlDJ zLiU=p!QTaYo@GyrGSTc`pdTf^tHPt%8mnk>7x8i8 zhbidw>+I$G?wCG8ua85o#d9-^Z!NOy={(oD3q$nU@CEuEua5+>n%75um;Km%6Z6OI zqYjz$-TJs6AE)v9h{3COQ(u$UY2SD_>2W&R?33T8Ja{&sR|FZY7P zp+jx7WoVbHf6(~0UpsMl`*$X%UIh0{9r$Vcz6HsH-?fwEyzJpV!ydhp`AaJmnBvg4 z0CvrCazm7mhoqnLjP`W-v>oPul>eM{DiicI^xfKO^}ql4Bqv{<oe-cjAev_c}g}2cuzyH>OU;^tA~msyG`=YsDwh zkB`~)z&-)*jKkxXkz-DJu)z9u^71B%;?SMYk<21JSNSk`0FV2&U$47Of3CHJUdY$5 zkKf{f@-fhvS7iz8mi_#e9JY3k{Yu@FMdUy&tnl(M5VvIHFV)rErs#$%9*0k;%`U#x zp3YoL{ek8Za?;ka&(gp#W?NNWJv~={UHH_guQvKBd({3}-Geie^LS?PjrMdVQoXc0 zPVc|?lKN3Te(!zX-=N=)&oX>^r0m?>EYSI6vkVq+b<{po(pvUR-x+!XsQ`vST&vybJwQry2FS(t2F zwGbS?i~aoYcc&%~UhLSRnRf;Gk1LPSf8RKJ`X&c96%9HMX-`kFRyQ&4{rJi}^MNZ; zKdHMS^(_2%^PTISSk9jQ$&Xj2qUZH&>tJ8ke&qYx@B?n1jSslDr|aB3-ABE>yvLsA zE*!hL@5hreEq>C+@9cf2vh01g zF9i<1JO>CU%4Ninvc#_0DuA^3FZjTOJRf^UepZ zlI`zfT%L>=W4<~!#NkUZ$>yG{t#Z~td5r+o9FJ17BhVqyI02 zE_O{H{eKg(Ng}I$gq*Sg?rZek@5P?bz+If)|GoT=pXc<`1r1GGj~O1II~Ka&5njEU z&|URqJtrT@>U8dC{Sf^&@Z76!({C?2C5^wlXtex7gyh!7(XrEXsqTrJ)Y-DmJ!}+)=m%B%-Q3a{q)t4 z^}mrh^t*kOXTdJYT4%$yl>c#WOzwC8EN5&{_x+IDU#I&&;{LZ5IQ1gv;53(B7bd-K zJqtagDWBkc3*P$Qe~I%y?yj}v*3b5ts?3p(mTl~D($fUkyW&}%j>@zDnDZtv*PWaP zv`@={K_BtOItzNf3_26`YJcO$Ao)P{x1}NfFW!QlG~wfr3(VW`=Z@pseR!8;?&%8P z=OEiTxzDD{r$POPKh(2Lasqw#RP30Lj7+e0*9GHC=BJR0Tzw~Wu~K!t|N5jOF zT>6Pewl!zQ)a&|U@SdUjUOh8k>UsY)w`^Z9!7;lZ>Ecc76T0}7;6lLD#iN%N?rTlH z&wQoh{tVBh$Fb6#g@oYQKI$tA3h5r`+xAEWn26rBGe}}-2``zE2)KN@;d7nC8@#=$H_wf6* zYqES_i>=|euusdEBC~1MbD2Elt~60tLsfy)emQ6FQ>obuDx7m zCG{y=|H1lMN%g0Gq*wK1@+k6ge_lQMp;=BpuB>h$_ohp(O2s(WNwzVvD*w>~PeTXX zypuKSXYASszP+w*1MLhlUgdksmb)S+GgSkOPret9t-i2l9%HaLb7xyQ~Y#hKg5 z2cTST%KMg2Y#2Q7%}k}_(J1=Wx)sQto#&1CR(utH?AZGY4GcA}PRh(!TwS8ph_y= zb2jJ0qVAKwwuY_w*5f)8?%?}1*8hqN9hpUE!~uK~(DQS4^j93mFCgIJfn*X392sUF z{r=fKf@Q$6pDPL4e-oZ>tu8vz`hsAMj0Ij5ndhzRF1uZI6Zk|3#|n{0PN27o`64aI z_KTWwvGwx1#LjJQV-J;|7rFg7W%y}U4w>>`vuKuRTg>N6^+C@D>$RpPkI#s&M<=?Z z{yffptvTH`bf*-*n+$UEAagNm;m)C-zC}9*FNh5Pxi2Rv8WZ~AcJjuQRQTD46GHJ- zzXgZ?g^$LYsFN>;bC0Lm&tBJCpkJa*7zFY)F0Wq)=L(E1KsYa3z1r#x;2XnU${fHS zri?gf-WfPJk-6YoQtF&n`>AvM05NbpzkOm|sw88rPe5aoLqhP5O`o+Tm;GP`eW{^| zk(S^T^PMW0=_3!RFBP2T!ste0Yjk*qdxnmp|LeyVnQ6@*h0&ve(S%cB#Qq$7)X`gs z=9?Hf#;oyr`toCpF+{xw&LIw(ac)0pt?!ztaXNnPvFZ6+G{*hz7?;t`GvpBsGR}^P z*0d(Zn#)+(EBUfp`2LiAWtAtPQDgjn9N#6c-ry?a<-5Y~SWoX`oXM9z)Zh)&ee0rR zEqx1i9d7x)k8xH^Uzlv=|35Ikz7o#VZ~E64EKC&5Lf-=qy}Fw+(Xx`G{`GGNhdAfV zCKssITeLxW3)N<%x$08s%$E8K4=Z+4{%wH?$n4x}kbzb!cY3k zC1x#|zQ9V|&Y5o(XTD+fL^0)e`mLnSu@Cc|zT?&>hAxP-K#N}u+{t~o>(99+_mXp_ zrsv?J(B)RkA@0}Jo{Rc>&0Un*FYHzBQ0-k3+SFDf zn`ff=jwhUbIMe74gd@ZQq_T0O(>k&EdUBPoIcUAwMhxR@;C%F;b}!%4l~Yve{sc|rmo(Z-BTX6!jkzk@A;*6xPd(p z1E+fZCl<@*gnjx|8yVZ#zZ1+oyuyk0>%g<#`6D=?{gAz<6$>FAm|X@y_VmV0xYdjqojIm|kZrRQrmjnebzhw$fmV$`3jJ?mNM!#taH!3eG2 zne|LGRJ7Fa>M_2UgYnV!L#wcdO%0E*@eU>eQhB-H<;SYu% z>=NDwkVkzzVd!WGS|&bl6d6slOKaxwf&Jic!3ZBP_rja!t?L%U2gv#7@`17PoHIAa zo*O#D+*p?uo$Grgo1vqVY^J>?UBnLL0}oe&rIGI3Z`F3MAyzqRH@sn;;hAK=z`3;B zhF>DTk;hhD2(AX^IAsIONo7Xvq%2TsT^(HFzoxu0P!U{WO<#&!y^sAOx!K~s>KT5; z-58=5<~`aE@?Hh+EvpPxg!LZtc$W9}Lv!@oM)w(^pDFacl(|W^lx?jR+e46kmomOi z>Mw01c3=CGy3%LG-LWZd*>dv|?*R8hl)nKkI`>Gqb|&tU!q@rn!24^Bzo+N-C!fzQ z5nvmp+0HPy0zZkjQg1B2VPe ze)}h&(JL=bPUpAk$Tw6n=>U3X$zPtGRr2T9eR&(U6v3A@&-X=XXEJx_vd6``^g#I+aIyyPhxai39EBekmnufVf1@H;;E_pT_d=g4$FidgAnq%|(*c z-ynz8@WGsG}yt^-%%rPVju_20Inz{H?hEp$)#44s-`Y_2lA6 zkS95qgI```cX_MbedroHb^JPf$A|?E?ZD4$*XL_APx*8lG<0JIwB4@IddLT`-?l29 zGoT}*eSR<}DW3`SUq*L7azo z(arDh)q$jPny&4D&Oer8@s`_*LXUB^cBsZ#Ecy)sOC6W`BqdkD{dHn06 za@-&=F?_&1-&)9+p|g>n=2@x1P0l&QJYV9-ZgKEEJrAE2_RKX2*+vvTg$8UUu{ ze#_x2wN8CKH}AXWgaqp?+BTqb4zx8h1KBLQA6Jfx>-VMI&+?YXYCH8t_GSr*#K0uowUqG0DBOr+qBA9|xb#17>P( zDf7^LOkbt$T%cj;r)pEoaZ&J!d!CP3@#nRE-B#z320lT%_edh~izC6D{v+J+)}3I@ z)0?ao<$plVs?h!~<=hCYTCh7^LR`q|QY*4sZIn+P9hZE+j-jKeb>9;lvSBD3FGrVi z!e^~IHX~8=0QpaE`=q_~_;(g01=IMLv)KcTH@=hjsxjr;cUr@7;tozLXU_@-r!?Mrr$16?|H_PAi?!*AF! z`vKiByfg&Nv_{I!_#*Kh$Esv2K4ENF!Ownm)uB7#VZ2M;-=ZM$UHY5c}@&r13Pu>(~*|9cwg{;;95KN@bz{oA|1*m+F%^`(5}9g`jU$u`kc-er^>=< zCFE!DQ8#nU|LSq%2Ia4q%zBluN3}LXtlwhj)$vcUE}vVNd>dc_YurtM25F|I`bjU(&sI&|k+V z$SvQHSarzmH1F30|LLJ8h@BN)dbDI2^#dE{Y%7X&+*^fC^NwRr9jU?|69@*j6b!e% zAbj}^FxMU=9vHnsLC;Hkgtt0tdNeQ1ofG?gMO&8R_a;61i*K~P5VDuQ;S*1{3Y$yO zYpSi0z2}|l@HJEUan|nG<+Z8o{V+bQb?AWCui{Yx*YA72-*@9&-_)Dt#x6`B@y2Z1 zpZ>ZxZg0GyS<$(BscYU3)UvF%fBhx+pYTv?6~~7o8$OYjGF4CD53q;x0C~w%LqDiZ zDMx?XRA)Y-CmtOep<%Xz*U__~x#0K!@DnXOh)>Z=H(JTxT;s-cEOYAV+(1Isx0@F2MFyM?*M zxjPNm2#y{+HUZs^F z(by8Lfo(x=udt{5?5T23X9(^`p3788UnqDA27Txc)lLSV_OW|KzU=+*aq+5z_%wZX zT+eU%(7k+3+rIex{$t-ivg~KSKGJk!`bc2o{%wJ`SG^$r_%wT~gZlCVNB|%4tn9Vx zm#rjg?FRU-wL9L%S{$*G@>}2xG$IRq@ALQrf5HdNE3T;gNv5iuF)u||`{1X1=KQ_M zHz6rnw5d$A*2#~r^^HUGzWPP*;VOS}1%ANV0uQMyYx{3Mx*iOoCVeHwt z>_?-rxpzj@U7SwLon6rnJhm%lQfD{c)WyPsn9r(4F3Qj6E+6D_^yB&L4SZB5TF*Ir zOZPZCyrvJn67nJJQ~?w?O;2Zwu|?(bG+*usI!=2?Ie3PFwTBI`XPJ+(yt*;5*tEX zPEv7^gI}?`(Wl7Q_`dW~=$6IV&W;x;cFeo0S25QW=MqahEB<_-H+_Ws8_zV@k9|&jG{SGQpC>ppK``^;zyl%jslUA@5z=}0?O*~LRB6t*qvcm;myhH*AkH_~ zxS=`>Z`Pfr#0*`n^DX;ubujs%mLcGr7cNd7LhrEBRzASV&5b;3LMObOc#J0ckspY7 zvvODDesV)~1?LI$Uio@wIqyh+vlLzO5b~;?Z>BHhwOfvDdktr5oAu3WtZU)SwkUUh zPVz$Z39a_M)-#-8R5#ePp}L9jlu)02Vf1M#Uu5vZ zxi?(86WUrljrZjD_?q|bXEs!K=v~@gPJNw0O`FVFIveRGO6|=?W)uxko3FE9G>$-Q zLpAtX8MtXfbpziTm)62xWB=a?WN4?KY^`O{a;T18q3J~fg7FFL-sXyi-o|GK72t0OYhxs)?4qs zpLe}7wUIraonIAy&r3cF9TSYPq4Ze5Rk6I4z+UslZ?fWP;s|pYma^{brQr(JLipW?ydDOhh8VkiQv~C(ZNPZz zl;k%J|0(I&`QJ6hvy!{`FWK&tc6oOl__P#U%x-rFunE&=6YH(ylF`wgmCAdll1?}zWa(&eX zlg#CnzzDv~z)rHAm?Yja@%HkE*sl0u)<23Lq1rQa3>Zm1Rm@tf>?*USic=G=9GwU4 zRegMiPODF>i~M!9-mS!@1wO^S$e(6!^V!UA*(d|E+g9P-xGKnJGryaCd0W=4TlYj0 zK1WgF7iDiHMl>8-7kff6XSy?P`6W5YDD&*xM{Fzcjq)Ylv5$CFV!&i$@7(w0njJg8 zQWKqU#csv=#g<>?#JE1RGS#^+QL|%T2hXnLo;zze_I3OhONec~c0+aNKH>%U5$`&o zj(dA~?|N{7Siq)FY^d%hR&YSEuM_Hbr-=iMJVRTkC)Dm%{NR8a9|(*VnKi=qS8KEq7-$WmS_5F;hTJ2VHnm@nJhY3oA;t3Eap6fUOxIz`;x}5Q-^s*ck=rY z{jS>`-OTSV>v#R`=)L@YK))lqqj&K8ZvC#^9b0ulG6-za*s&Dz8EtQ05@YQZZ`btC zK@YMU$Vq)P##NZYudyscl5DWVg_D$ZH zSXj=jEyA$~_;nR<(tg}|FEIshyju3p$0#e|9o5;3&O@<+O-H6C1;0ZVukMcS3na^# zM>jA`GY>CzFm_cAdF`henEI;YO9WGE!bB4jyAC|HfTQ9Eo55e(cH#$pwi7>S+fMwT z&vxPmZQG3>WUfA&`<|PD(eeqY*oP-LZ~^}t@drB%E-EiOJ+9Kgg_ueYE{DOF@!%pF zqPaUZV<*-ph7L-$!q>iOb;sCqviED>8r`p(Gh}Fn6H8tTzUi58QFXKFaQl7GiO48l zF)>8Q!f&B-JBmK+wQHQ5!DIca%QB;~rsS)rbk{NDFX`o2!vJ*J`UbqyJ)erUd2-QM zxz+dadkk$2ky|*rm;4w{j^@WG%X((?^Tp6a{5sIbJYGt?T<}{?9-@AHD+adM-I8g+ z(XD)v1Hc5GWh#xl7-IhE`SRVfDx3aRyz10?UL7+|d=FmBk{`#8x9o*cU%s(E2X$G` zGMjw(6-+{>9_T)~!Xo#D@iWIS)y9{^>M3Imoxa{B2f*pTMbOImqhpG4*P!m88mPCD ziFL6PNB_j`mOfSMnCASQhNtO08$NdMMjz*hd}G7*?xGBd|ARNzaKB!9F+6j9aZ>ez zms;qh=Ri|)l4Z27{eV6HUisf@Zwr3%A5h&0KGipK=S|`}=oJ`;WGm6!47^F>2ys3X zjtFMzPqKfUKIOlrZ)4*{w{-MRM&Fm6*SqIaFz*57q){-B>)6kC(Sg*=9_U)#oCk}8vxDi|Z0b&!%`Tk4#-a75}y+h_lCbf0x9r`E?ub84+U{)G{m@s9aB{Q1xIUjx143~BOrTsRRtaPoJ^KYUpJ zDx53J$-fbF&scTHv$1c~hS!lh<56IyyEmm%ZAPEEl<$P@%jH`-WF$C{s*j2?T+5^H+s zg7^}RS7*0o{17q=vAOttyISuKbDIuQ2!CYqxr$4)+YYkVhe!gt~x#=f0%IsQYd?*Zplw%qhYhaEJ& z6QK)wml%73@a{T%s5gC~rh)x^D|mJ7a^z0rZPEE1oZ}WVzhm6v6eTW{J%5S}DY^2r zGGxco%8)0=wHf*Oi4!%Fx&TmU{A2=W#>VMW+AM+PhBoR>#dZL;ifsXI)ctTJ%f0iT!$~EORSbO_(i;m z8P{>fl{l8E{7c5!2mkQ7{7O2zQ~8ynM^m}*=GNb4Dh208_6a^DN#U8#ZvBow*!rCu z`|j@u=AF<})fdb|zsc;GFIxMhNXyXnNQ+0i4`UOmKyTj(O&NkF4AHjPv(N?QU7bu! z${}dN%PXwZPtY~2Ybw6xCTu+`vGpvUkhfy_#&2y~{`RL{FgiT?@^q*%#@0uSi{!9sR1F#oT8VJd+M+1^Na2vQih$*1ZST`YF)JN4byqTNA9x3(u)d-30z@VJxzb z3igs;wao8~9|tc(78yeGr+Z}HyC+_iiU@<}r^)q_Vfu(%0WgiG-~ zfd4f!#s}Ka3qg}b&%^^V?AHNk%pLH8Aar}}+Dno*aNmLO?k;|7?`l8C$Xz?s>>EzA zFSWku4L;{=;NoH@_UX8A5E%I4j@|h!ej8Z0wrS%7Oqp;Yy=!mFz&C4K2HE37zk~*3 ze^k5uU$nysf8rtTze-ua-_-4?4Rdk8)@JyN@F9jQ5s)w2udhfg5B3!;5B_7(0bg#j zC4R>^gD$!-Xug`K=I7bO1Mb+>rZwY)k<%8FTj(i|BP^})m^XlpXw}fLGoMrKWSN5^XP}(rN6nXW$3A8EgH+AUtW>w2lr&B3WDFd z<6J&^Y3SdOH-6fbeA?;5jt0I+$EbIPpqoK#!)hlNJLWQ9=jVh+%MMykbR_OywW7LY z`XSnhk)L=-{f=!9+M#x`*X#J0_3D++!I<@G&t5P3jOV4s{GP^l(X6$*p0aI-2OLM&e?Pf(9wax8p}&)?O3AQe_kI_;bFH0t z=GbQe&SiR5GS0Iu&OCZHM{CS}@jWNmzC3xc`+xA){Kpryfd6ChCFZtU#?_X@>TC?|m#s7c0FiY-q&e7s$hPS|L8Vs#Pvw^Wl8Xx!28M zJ9g}YzZ)I&#;5_GQadY_akXrtc`Z z=8ZKI!9^qJ(7Ob+g{lck-m zAH2)^``^w~9c}*8lze*> zbIZ@6ylMHBsdXQ|G8NufSX^G3TdX~zF}77XbAP9CgytBz6aA&hanMZ0_|@HWtknbj zM{i{IQZ4fxw0-O!Yb54ZWxh$2-Q$Ob%TDazy>MP*k)3}hJYWdh8F}i-?c?P7326;n z-Ax0(-{M`_)TR4%Y|bSWiW3oS)mjZLg`QmEt{3u>;IkL_#OR}m`39J;=#b8{Y2c}L z4(3IYFY)o&`73VhwUeKJ#pdiJnJm9TG3su7K}Gl?$CoyW4LjW$O$}cDr|gXxJ$CSy zM%Qn~M45QhAkVRdR~Y>HkSo8Trx>DKW07yoO^m04ck>ui*v`)r|9@G2fShw*_jeQt z77yAF7TsVM=LM0MG)KWpFwi`)dzt(a4bZ^Z(6W#DtUc20YOOhAnKFFf_k55ta#l6h zky|&zdmLCzof!Ew^j-`3HGV)DanwCu!`>3${P-61C{#r|z}^Or@%gS0FDtLd-w}Jg za%5eGOeEW*%9I=HdiVnU9Bv1f8{FJa5#)+e#=Y|hbnoNUMmMN4w)(1e^GuzouX5&n zroPI+`LTV~4a2`XYexFge7w164)~=bTh6I?W6f0#Z@=8ahtt6=$pG&Kw+s%rYY}wk z^D*u!R$p(N0d_HRd6>JKvS9Zxu)7o3Z3lMB;SqCT7jL@+(9q? zr1fra*ZX6vcLQZjgUeIve!HCgUBn#+$Xo2sFmhxiJ~Xv$gS`T6(zlJfNsZfEb00pc41uIwDoJ+WBhItqUWUrer(`HV~J zKHFXQGr`GQ_nIs?W#?bhxD#XYubmF3Q`f!UU!<4>jtSO%TKjT$&HI6+_J!!Ra>PlG zSIHRr!3)8r)6H?EeIWelA}7mN56b_6d{p44=JfqCXD{ekwYwLVx_QvX;^){rabEjs z`}n4-!f!034fVx1kK(hWalG`EDC?Ee9Cc}YY>fWAjk(liz>{w+HS|^Qrg>+u-lI|f z=+G$Ea)2^Jqj)|-qo8f-zZ3b(!yVC@!_*nUp$pLW*|~Z6=r<4fHy3eUO5N(xAdN@) zY(!T_;0Ija34YhTCI6@o{L$g3b?ryL?!ixMt94$F&oecR%iY8yoC6`^?Lc;_)E)oOpXIQhlQ8cdU_ou78IQTVkM7jJ~)&b<{tlqN%0ni3DddLoZnO4*aHc zKJ$F=x}hbyJF3B+vf>apl)l&+uC;?(gloOhw}Pi#!1{O4hQ2p5i?&K%azi9_@Wx1L zkiG|yYXn#E%ssw9-qEl44E@bOH!{3y=0C%BH=ZY@&0Y=?l8#$vlVsvsdIIV=TKUSS(+gI$&`K+s%+axMJCP zfnvdBsXeE;=8}htV&tIGxo9opkevG#c?kNEX+r2*)u&`Gt@p!uzbw)izlJ!yl7bEiojLfrUjLg%GAGly8INi@!G{!FE zSIH|WzqO~$E5lY|%JQr|cTx6UcsE+Q#gaL+-^9ZLVTbmqj|92^wfD8D)}9@-C))li zU=ny2nW!)K%yP;;WUsM&V605kIw{cXga3;ceU!dEJluB_`}0eefpfEwo97t#-}PFi zQZnc;G&#C=I2bjGgeL+rln!RV+xn{2pA+I6tuYc=e z^jE-G`?kU+=7m_38vEg*kC6vvm^~S1Piy^zmzOaf?a@uHtW*8}knE;8XpHi;dN1oA z(H;SIf)g@Vv-f@g-@x>*GmA<}k$rxhSuI+SI|%~SXx-&DoKkBh_bVlU@yh&gC%|LD#kGR_y^9f9CBs%Gs$|AQ{F@-J>MN;Y#bR% z6KuQ|p$c8Mn$9{~kv#Thg=I)g8RkT)NO3cyoDeitlF|-k50i(b&1HMSpOn zyu*Je+!jvuy|Q8M_Ewt}EcjTztk9q17cpnSNSu26 zb6I*?SC2eTcOSE7G*0q-5W^xLS}VDq@#a=Wy60aK>2Ag6J#K&KjREKfHlfFJi3`tr zzgOPyhR(m5PXzo6Ywui$&-{52;>MMqb;TQT_c@2>{MbbJHFGs{WUiX0%A`jN+P;)% z_;_^;51~%ebbJoT1C_0h9y`yqzZ{)s=IPNphN8?BU6S?(>tt61y3i-ilkbhs_$~OVJF|p0QKY0hs3JU|MI1K3O}f2jHzs9N0Ff~vmLq>8;37tncb&_;ti;a)|q#o6KE84vn_C$v{if?aMfCmRnX!oq3;gf*WsP z?r9>&vf?hVz4Y`V=$Jo;>JPGxX}F zrgcwjM`ma*ZMfriU&R)KE!3KNPtj*=Yw>b?*Vf>>Hh}M1XiQ#=vhR+<&+|cj?V1#R znKn5}eB>(elkX{~TQ)58EN`D38nt5u&`BxBZ;<;MgXrx8_62jnd+bm?!v}O<=pbh@ zYwG*vTBV`6Ux0_^!*9FL2d%>fyBr&AH~Jvt*NO&oL9>8g0KHH*`k~pue<733+~Z(Z)A;xA2m$ksHiP?)3$?7`YaD+R$3eow<%rp>okS`U2*R z`KGTpuhpO5ybIq=(OLNc4xsmO?%;B4KQBPPZ$+l?#ykO9p+0vpmTxdFc$D!0(R-rZ zT@Te(mxCi3tIh^{sozDtz{dRI7wmUvZX{GXw`}FSxdD96 z)?Q^jshmFHh|7!Pap$@%Ym|6ZW8wi-H*kFB#t z%HI`WZ*-l7+&GK5;}hHU0COs^Dtnld<}&1;QLzSlU?cf2ee9XKnWB9KJvO;99|4Yk z^;Sml+!bCPA<_Fc4NnR5yyf!$0djc_`ipxG`sehhFTq}Xrt6`rQco@BZl14COjY>{ z^D@2}%|3FK+~F%+@jAS=Yw^ld_kxuv?IYoQ59|IY>z?c8lYO*+yy+M9Y$I-MMeWt! z+s4_p`D5f@8kIPOlz)Jl;%AA6CDu;D$@jAx!=<@pE2F6r-QTMhU+75k; zangP@x(#ofUM_33$2eCA9;R*bNqFOlvVSxl^g564pv_(MgO9UWFUC-*F=)M(%Fi5G z#kX_43wAzJA_%nX$PrYCMuz zoejT%SNYEvk*m!Z1-G_WxH}e{YIr4c+86_jG4cD%$QXoE>!F9<7-Nhv@vo!LHAZ6i z3O&2|I&9<(%%yB&*S2L-?O__ftQ2L#e$ecM$X=A9}L9U~w$ZN?nUA_-39jWo_!Mu{Z6lVQ(kXmtU0{ zx^rcVeA4>A$bEnH+&2cy)4L|7hE_~z32kcUNQO?HJcydY#cnW~>}j z_P{89oEA5c^(?c=PuxTv{CRTs$!2RfLLMf`?UL!&LXR4dd1J_5G2|JYDVlt&6YH(G z%41K<&Jn0+gN~Z@hew*Vzforj*51$B<4>)%*Lis+w5Ojn9?%-|u3|)nZiuvKUHiX; zKPYRgGfhJ9r!52faoYKX^7WjloxuPoh<*wWkX;L1mkx#XXJ5})FuH~e4r z-aWpm^2-0;`Pe>30T z>-)#=kMr95?B}+g^{i(->sf0(>sf@q{6hTYy|%x+_CxAtxVLYn;&u3ad)ksI`btOKV$M((DTBCg`*necl$4lO$Ke_ z$8E23YP0U0zP<7dQk&K9^ernOmeGVs#D7P>_zm(423J=q|1bNFI{MqE`xX@k+P!ZP zn}Eik;9}3y6EZGp_yy%3r2O$!(W+YZ0(}dOHpa6``(o`8=UVuN_IaB-rQcu6cVya= zuNVzEg$A*f)_Xd9$gZ&xnjjEF+M%y!-Zxsv^vOKR( z7&W@#cG~abuDUsyo2{WSBGJ_tEun?oekw`?!y;UH&LJ z$U6K_&U+XATTcDL|0;YxucJ?8o~s&8&<8ti?9phi?%Dkoa=YeFH8Oz>TMpw9NNdPo zue(6-ad(~Qr%!j+Sp(b1r;Q@=Jc?goa@*2nb<&QFAMhgmWaEFCktTd3e}RmtI9Wef zDS211bTV=kk3)Ga^uW=|f`X8lQOVl4EcB-LbWc1c!A|@s586JJ&N-lDI?$Lk;^!z| ztzhWAe9rVi3#EG5Omw^h0-dCV$JPtbfqA3}O@O>}ztq49b>XX3XgDBy_Sn z$G^|q;Cx~ua*Q)KCfajjqvpm_&fI8^k45s_U~m36)B25*q4g)yY+C;^<^QL&{z2)y zeGr{%j(m>xlWDzC^b4(L#c3VA#4_R4g;}(|Qe~j^PUV5tb+5T--Hg+^n^&~1b6z&B zqf@qNowE)Otz$?1?uBW+bqe$FlC5Z^dc7rk~aw|6$R0 zbrOBMZ70*W`z@Ki-EYbC?S4z9Z}(d=efNJ8eUCC`9D=^Xal1qfvgDKar0bqi$+GU= zcmXk61ES+R|D+atp5>$N0YAcHgjf`FS%bYiadhx$2hVpe7}nc^ z%<&BAgVPSvr_y+z%2_LP-h2h?OpLo#n}MMW9wb=io4$Zz#)q?8w#TmLo>snf+2?1F zU1__DJ`@swC4`&Du~@{?CPvMH)9yPeq%F6HNJ?N>YF z>~@q_dxX8T^D_5#^|zyZd!2U57|(WSqJs9r4{*kX_iSiLIJCS`o!6Y9HuPQo8lqLn zGbh5H7mDv5YwLX#qfvBp4Qc9|k3O%aUW$Up|4Y_^2i~MhLFO~fM*?G5B#``TAI(ZK?q%-<9 z4ULb}(9E6+@o3H-(QCj6<4a3~rQOv0sTNcs`Q5`FvL z`N*H8$e|xW9=#r!_PYKvpo8r##mxyBw*M{`_SF`C@>s+7t10(hV=mb_#=0Q6BUxTPA7F2~^q{S?8r-K7-$?G$ zen-zp9H!1OPQSE|aph=}*lrg6eB@eSLFRJh(pr2-k^PCu6hhA!YI&*HXka~AQcEA| z$g6o&&ACbIxW*^lrtc{FkzcHy-m{l6TFdyT4t!0!S23Sd&d&dP2N%`M8GX~aXLNYZ zJ$dK^WfRwT3pV9ajSQ-_HGEWZ(;3Koav_zy$_(lI#p(F@Z+^8C(*78GwL zjP6~0B8Gq4L%^yzBR(ZM%_uS&IK$MUSXjh6?NuJl4bC{VXkMTfT-GtHq=)tHwDi;R zBM?1{C!kNU`)>1#IR9vj(<_)vll`ks6Ddl1XecW0v)cl0c} zKaKk>@(seqV^2i~LF}-tKY;H@mwYciHmtR|?)q~vyy!9R{sb?}bPl?S{NHyYiqn_eC*jGP}nOY6$B-2E)NZsyL!7VbeR-_a@FlMx?H`metaCV^{XQl!@;V=UB(%XE~uV|Ek9_53Qd#>BRc+ljM6>7Wb7^ zJI$2o^-K&19%QLNGws-M&!|H_n%T%d#HwC0Uh?s+a885ix+4PyLc*vH+AH+XNrG`cWK|CxY$jUx1i$*@Y@NpCB=Qk)Mw$y ziu;L4zR8&E_(17fGLOm;Um0{~^ua5UNn(!PRJ=p5t8SNm&SIMte^UG_$)q=;H_`v5 z)5B+7%s25N^o%wil8)yFc+iW~W5^aHTxxv*f7p1^{P--F?(|J+T8Yhodgo$;szpa3 z9|pJoU4I%rOE#(T^!YjJxs&Gsp88J=jy+Y-nH~2RpS1V7`)@FfpZIlx#*HgI#O8m1nE*dLr#aXCm#r=0=pcVZPtofakp5+<0Kn+{o74xMk4Xi1Q$gyP>(^ zrYFyhPsiuRwe#9qis#vLW5B%lbYfl{VIF91xbtE@b42sPU``NYmY7EY+is|KnkhG6 zZqQEh+%S{ph6~r=xdHqxec5%!=SCyE+GNg!5By&+FFve!F>!z&-Upc%9Uo*~2#>5Y z&w{%F^Wv6wpBL7j|If^emH&~T@4@q8V^UiCbmq*f6Z_}P!50(d+&H4|q!V{3gIIJW zGi)Cy*=4jwM2(aNGs{`GU7sfD&VBHj2sV4`I|pq)A?*3xW#;_1s?ozVUC*88CDR%_ zl(Tsxdix{LmiW^NzQ0-$e&5)tD>FS?i?1Bn(20G=thVDOJ*4*&ly(0%EidYA?A!6+ zWMWOr4)p3|c%kw1U$FD#mc(_K2D+KEd~aS^gpIj+iPqiYlRPhE_lzX}=!V~?kH+Vp z82$XZhNswZq&mpcd`l5BhJ4YimMr-Ei?So2uU<)9CAa-7z9Fx*oaDQFNV>efmPo46 zkZVQ@SL|f3jm)u`7@A$|mz9V0py32=M)St}cC&!=3HgTSvHW&VEZ@L~CyEbGwb#loJOAZ;_ijSl=Z13f zw~-7epB(98<&$Ik^u+y*T)&?Az!?KZ`LVeEI=UCc_1BRPi|PRg?4JMId~Z5gW9=Aig^o^5%w|y#!^Y#vO`({7gK5y^o2jjzYe*zza zZI?MoY3|wmDEok2;JXyN8Z>3w_+&?H0#0l3qz2h4Pty0uxy*(#c&HnTP4c%pccpvi z@*3Y0tTB&CJWh)>tNNM&evw7;2TR1u+gO``vwv*l!ssug+X{eF z*((pgR}AccYxu7{GV9OSCY2AO=fGYroml_ejQhlOpdWAYBgSXct3ULgVWE%-Dh3w@r?L=4;$g#$@e{cfqvEjr}THp{p4 zCgm$ttlfCM*_4x<=P{lhqk0uDS!=m$xMk?hRrk*sqZn<&Yqzc<9%Gs8E98|8(L5P# zOT{<1mpg|NcRW5%cd_FR`eyTE>QH;OyudxCKheH~n7FUWrX0V=)DySyw6mW$0#6pK z$z>Kn%PO-7U6EU6qwXyRR+Z_XjD7d1@^Sa6L4CUW)R0b`yHBNaP+kK&({APE-k_+` zxcfAUohg)sohfbuDxSpEGYFsr|v@&0zY{iRL8 zrT!}3eB+-IceSpKx82E{QQPIf>$a`4$u^Aa7v;xff5(RU>G*piZLe~_lc&thkFE6Y zc^6(g1(WWSRsF!Nn6H9GaIYp$*yl^EwZwmM*V@2)q|GL+{bZsK_St0cXUH#^KI{aK zYD4&2OkTGS#qswn`Y<>Cu0CAtey0zGZhrbOi}xseN^?T_Z5)zE`R)3tNBQ-xdX(S( zPM+y*e(Jf>eJ4*I?}PWfyS|jn>;J9!e8A}KM3yY4UFr9?eCS`-u)i&raZbFFkk8mZ9yJ!Oz4S)V|FVfFVZgTh%r8+>YA!s&C~ZN%h6g zE<~xXD5*bgT_M%=9`R~+J({Si&#O4B9^@1+ye0+PL@NHi!)lL{1D1!!e)2?6^ zyowLd#JD#N8uwc7_Q#)L+>NAhZ)V)H-e=s84;uGF+^48Yux)bT|n23e}5TcsIk(xXuLA`jpIlBfvp-h&2Np}oAAcH{9fWGUZ(jkzR3i% z@0uxP%w;nXUlq=(8NZN~vL=dr*9h;7EyvfIJ?~GEOVMZBai+9q5ni&8w=@STz;D?F z@C#gHP5k#`z!Ag7Abm;}<=pZrD_g||bV{)gBcstC?aoxYvW1EkBxkjYhriWlf0y1? z_Wg4F&P9)!x8=})+AzZ9!LnJy&ROUB_WquHZr$%yuiIWH^Wg1!uVdcMW8Nm+AGyhF zklZ%-EXIlZ-hKRX?ny*(bf|3ElbUprl#$NdW3^{t(?_Y2F>zfo3W z?Dr8cgy2PB=4VIcT9I1Tc+7yWe2wVv0;=_CIZhEzDa+OvjFwd#aMjTf7Xnd+VfkvDpv}eN^|Zxbf09*RO|U%-~8vri6xcE;JY-De|zXy2b@C~k&)O+B_8Qo9k`F!-*%Rx-S? zXDPpx_^xY@T+SSG<$@@9ci#o8`%c?q<>T+b=S3fv!agEZb&usvHTE_hba6_@7lYpv zhaZmJN&S(=`H^s{6)@0isZMawqNfQAZd&f8MG=eiFh2H%@9^Wv`MmTAnV^?FroFFO z$us<&d6D@k#?jnq*ia(Y_S_NhW6I@bVJph>>#Rn7ERJt?OiJSQm^>p{MUknL%_G0Y zX2E^d_W8a;kLNx;FOp07QeVg8mN}w6oIP@T$nv${4CS? z$wqIFHw7D>m%Bnd_{EsqPj9qrFihf`d66ZIWjfbb&f2gI{KP!bLh-8O%%doHlV95g zPewOzFR4a`xr00D&M&3Oa7V2ShByarF_}yI|`)d6J8zIoV&!Viv`21%696N9a#14@Qmv&$3MbP z{%ZbP{pGZOm#y8odu!%7_$cY;Cr5jGE0g!E{~kZLG;j>wzBi@0nzbfwPqlUB^0}6N zV8Z9khKbC}d+^^`jt`iZHnrEV{Kl+$@P3HBWK-_q$aglH4Nu)}Hf%5_c2{2YmB;6E zH~ALU@FspE%@GT3BTnv?Dr1b~uZ%rdf+4+p*tOR7D?DT%l6kfsXG{=W=Vidv?dO?uXlj zi{_lgkrvvp)=iqUkTW*(X(yLspubgU{=uLh2ns7&F z--=qR&sTd0-FFjpHPcVYCK1(TS_=esgx_lV$2?l7vmL5i@0RHggwO?baV}cViu4_i z=i}2>dUkle#``XK)7$sXV?7!=M$xO0A+v)0GGxxq?Y7L6#n~6v&Y}Buvf%AH-wOTh zv1(-_HQH9{eG5E{_f>k|YU}mdrbB@JF-zYvi2HIOT~D>} zdu6nDuE9P6TxIpIX*zcw$~E(xbu4+ztWsy3tVPZkS)XvmXC7lSMdQQwzcM}=*Z-|C z;tYJR;DJ8ubyYAY|7X68WzFgDOBp(=6ZFTrG};?_C$-s^ZO8LH-Q}%&+zK1LZl5FI zQ+WoYpL@B(wi7X)E|1b0#XRo_nSt&obu))LIvC49D)(F&zU~U7tC!#tU)B!Apd6eUHW0D)rT^ z!yY${9ls&%7G1bq<<DSf8AM!~J|GN}_K0k^daQpIbQEmE3?r{0A z@H(t|%xs<>&IQ@^Mvc=o$STLNyQ*Ffa=-mO%Q%fqY*|-&w2(b~;i*Z{Lhf@Z^kw^6 zEFbH2rqLED^0%Ctj4xDqpr!kAo;CcR%5x|Gui$yW-x4_uw^KaZ-jDDsF{fs03t8TStv8MMxU&(yq0JQ7a08RT0-`RgI|DFeU#__%B z{EB0WOQ`v2VoT6@uxiF73a{Sl8DB4(tK>-cdo_C*@$WeAS~7UuOpXN-erLrowX6Ne zE6kl3duhpZ?ER4qu|d$D{!6D*W;px7H-POS&$#+p;A()Vv%0~@k>T7)%J&%ZQFuzn<3_5J27LBD zr>|rf`pg+*kI<634$(cOD*JVKm&8gIx+-87BG?@@WrJ9^+0tV8Qq7boOG_w2ScfB~KT! zD0|$tlPfe=jKY(vcuwK@8J-cIl|1u!evao=JlFD^$@4Crg+}3>oDU3Lg)JwGzT6MY zz-jk|{?&|&_k})Y>s@_mpfAJ%u=`TZoc)y3myU%_UuG>D+7}OgCdqxtE|2%6%s72u zfzuZs{Gq=uYl~X3v$mbwU353Tg;ghy@w|lR8NR3SeR^@LZye9H#dp)Es*~Gz&g8k9 z@A&B#sZZZE*R*HSC&r;&blWM9M{ zqJ9BBZ|q6BJ8q!=Ior~GT84Kjuv6`c|BF~AQkF&-sgrA9~A7JfMTDA7b(DecKk=h4q+#6+| zdv13bvP%hX<$cnGlUM89pfM;pi8_KwHfj`Iw)y^%3q5%Zm1b# zV6%Ay`vch>Hxg4&ZHj*ihE8Z96o*H2A>1@}_AQfM)rMsXu<+gP`$vIA?}BA9bqKH2 zg&gV3C3r%O-r;qcW7&GwTsjJVDW|nawt$J?WfE~6#?XfP;^Jqr_!}?_Ug_!2KPNlK zr{KXiz>7Z#PhQ44y0jS{ZR<;ClmFM}hv%!0@=;$IKMRE)mOUr!`KUVKnUY;Zhtgkk z!57s}WY1;djpAQLdWS!XFRQ=ek#p&r`pX$Z;^S2>k-j$sK2)xYa-l+}To>g+6Pswk;gEGMFF2sSS@{15O(r!3K>89v3zn|5{%d zSGynk!MWb!{Wt(^+j*gLmrd`<~g zbIL@U&ed+2^fR=jwOny%V(_pEc$@xr;SU%=XKAGwM=RiyvCE9!uaQUNdEBJ~(YH$n zjAypq1i|o+r1xTOSu2M}Hir)&9OwUw_}`C&4zjZ^lNu?i=2#Z@|;vw;|=f zXqUhKy~-!IpEd|L+!-%Anl-rmB}wpur~dY->i}~ift#&%d7aG~FgA?A1^Yj!{T!pw zE`O(Gv7-w8uk8XTf#ja>G zyndnNV9gQNN46Hd5qx>gUhY2X{AJ&aySVdReCT;%&c-%Io3qKQGB$4`-&>p=*gNdu z$M-26nisE?jy?vhKNY_(z~z(KFJdoCnxEfN84oe(R-_b$xx>_zIXzi!{VAu*k2!pk zeb^PHd`;ijs$L$}wx!m^nd7>~eZ(R72dFZ&$6Y~pxp|%9aUy-K-2VQ_j zE!y2NrnFo0O#QUbHD9m}`0!4~#8MxCZ#8|Yy{u{bN$OevE?0v~8&>Q{f>rx6_4E6O z`)2C76xd%Xu71$Q<;zB42fkfyJD#{)7^>Dfg#YHDI6m3CCF3(A#kpTpGL?9xWGuJ7 zQv5?NT;I6*njbm!)haeX()d`^C*88@>!3eff9{)6!PA!ahLto&koPneVFUh%?M!;g z7;A)Ny#xG?;}fCw+1KtlNIA7Hn$uc(EAX+GZK>m%>Nw)bsK1pw?5*s&gsVEyAh-%c ztKz$UaMbuUbjvSX)KJr6Y|W02YuNR+!w<92Ek}3CcVTpY+Q!=)UZ=FOUFd`g()!a@ zX1#lw=aP3%TX|6;t^Hfn*)^uW&f?*TG~=73S&6h=>4`MghG$*s*u1qbjIn3dJP0!e z$UVJf$g?%z&fe$n-IfQzlfjwgnw)5}zL$Bt&8*{lR8HwWlXK4+4{%6~v+h#y9Oix5 z807TxUP7KR*U(idZjWp4)86*I`q5V+`+nS~2U|;yeFuyk7q_L0_iDy3Zu@FEzLq^q zoUhcz_nAA{+uAZDGSp6FV)Qy~K6EtN$5gO)(H%%rOnZ;IciDT? zL0@(BTeMgYuC(`1-uig|-MvRG_0*EL0{xATIGZs)x>V#BJuRL(>!o?}FmTs`Z_?~O zNuM-$AF>nqh;qFr*>}8&oxxWztJVH*?>olZ`w;s-x+;q^_u4<(|E0&$|0(hR(go>% zB>o?rko}*1wVmJIr;yIR#r|*aQ~1xm#r{t$eC2;BzHi|hzDQQL7oP*!aKukE*6NdF z;Wx3<^!xdgn6~`;Uh`&WqlEe2et+--i#?LNl5xn{O#;_A!?>LoZ$Eza($EJS;4I1T^yu z=g|a<;#w%Kqt>jx)w2qOW6{m`@#7HfoSZbTkbC|b?ivP70*hj4`chLGrdF&jxPf}> zfn&uw4Ird{9=?TT(s0*Bxi?aF3^FTgU<`CVz~?C{}zUpThM;egir;kf^Q z4o8#rvcQqgd^c;}AC9gN_lr$UZ8)`~xXL>H@t)O7jH(Lrf zv5{D}jD^NzGjmut@G~a0%wr!u87>~0w6`UH3>#P%`b&*<%N{>PROYkHHf;e3d55%_o{`)0o%PaZr!bMh1OEczt&jc<QS@W?2dz$SJ6rYz`qmJ)(_&etkh|!SHB^JRKwMX6wzPhg9eogj@_zbkc zd)pe3n}{v7*dAweQ!((qI*xNkcJTDe4#KzSq6Ye9&uPmJwXAQh++d7$A!`qdFCei|6Y8p^GWzxPXebKqlt2^kIx&}MQps;=Ww8fWV}rWZ|EbFaaJz9 z%_q=TvX`~8xId1)>d7aGF9P1WmO@jxX5{43qPuI0jY8=h>c*IN*M1B=>*SJ1-7ZhW z#_J7nyrR?lKzKzCxFB9X5yvYq?x3z6ep7hbEMLSAbh-%qP6 zuS=BcmysqYhJx7=MuxYt9KD!-G*5I?Iq0d^icW?Zi^WUB=>4p4v@MWQ((H$)$_5)Y z();z0rNZ^a%w^7;gZDieFMHlHR*D&@@zLB38R^~HOV{NflfaMba*STtaeUP6r_T5~ zleU0(Aigki>7_=m&W+%c)}}O`y*^-7Sznfcj>>BJpz>DqUnRq4^y6e#=}?@M;42-* zo)G#9I%#CQPy_o&=1v5AhpY36SdJbfQBu`hqZIS*rYQylG$U>@+#)3V2$M%g{lvEzEE|=a(U9$ zO7zt5^+JuCpK%i}7LLP4f-jWPH;r5QMT{Hgy;gEZwUsn>_PpX-2tB3t*|m(D*7I7% z%}N?K#)C2Q^pBZzJ0Emh8lQ%D{@sNBaq)aCF)r_A_u;%j%kiJF|M{8jMf4C8*RcUf zMpIfB_uq8=m@|ESsm;ePcjzb!+>JHH)_46F-&o{K=_ecS2M5sj8^ntE!DrF`OV^j3 zaeKAKm;5I`W7zTjW!up>&PVqxAIU7_o{%pyk#E%n^5L(le7;oXk?C8o!t_-}6fehY zUv9@GPitQuqOL{A(xu#&r8crSQ?GA3$#*PUb1>Rldl+8L-lhEOoa-$Z)xQ^bn>lqR z%gJ+6u&!myf9&K{EKqmPptxaYLQcMLhm&4}FR#0o*FIvpn;tJ;ba^7315hn%gYoh| zikF|7NSB|^?n~n7{~k}jB9SiNy)zfb)1Qy0!@J$~JEt1GOWpM6;_3NL`a9l9Hvdpx zw@q^Dunxxa%t_So67*=t|I(VtdAg|PBz~(}4?ejx+Lj(K8*X>X9{;-M>Fh5ga48(U zKpmxwukB07T)u(*!qPQPo3Ve3w+Y@{yb5pIKJTQT1^2Z-jMp8FMr_co~_ws3E0%m7l2LW?xM^me={$#JHsi{ z)E0+J{kb$zM)=xGnQfEf@V7eoYQFAyJ$uo>e7kd;JU(Gu=)ilI~0r#|h5=H}y%;O4WE+I913Tz1E4uZ#Ag z>Cyd~3odb;nG!b_`mZKRwZI>30+P+;%(hK|KS_%+F8c zvz{K9?;Z9XXOrmjOlEvcXg3HLGj%Q?~m3wlj(Y7>BpEmxR6YaQg zi-y)x{{Z|q4b69i`nOZ>+L!zGKBi}9-`<%#ryuXztNV%0@SMeS_ldr}I-|VymA<{= zi^5C#t9^Sl-xQDf81MRC>m6HqGO2Zl{aBng9Lt^R=P*1p9Q+ zH}l!e*Rg$QK9{E^(_`)9L-UEgr$gV&m;U-nzcMtR#(%o#8$FNPuJzc^e4<V#GU-+S+`CQuD{ky)sUtz3v|5xAMNA-jj zKdC3Qc%z=s;3IlMgS9-npuKI-VX5AMf2~c2&fL10Z)<c^T!{o9wL|A23DXQARcj#ay7;`KFApXfrgth_$fVBOQE zdzME+({7u}qq~;X-o2~z%&6bt^>sUKPqfSCu!gTi$5k3YhOW4`)x~Gm=An2JK9{ne zQC`7`Uta?Mbwl%umeScbs?IR=0Z*@Zpm;-s^4aL=#REmd>B!&x^^Q!`+w@OE>lN)C z^Caa@OXLsVKQzBRZ;7$@19Z&7WBOZtd&SF^zU_?jQsOU(4{Sq!qw!Ba+n0c4T%zvM zjYI4HHg#%@-0?cen!S%XuX>I_N1sBs$@;T*JkL+Ew};0#v;)0NpKRE0Ouy7{Xb9R) zpJMEl4HVr)?{400+9JNgw#(x0_(`w5JpRtvkfq`Hdw}{P#$M6gCuskxJg3L$csg_} zc&0bH2R`a2yu7Cxp!!?ip`!{Vj(dwiaq;eRsi#o((a(N8$E>-Zxl=owmmvZPtO zRrIX+>C)(YXjJqmIvqfx#Ml0pGG_G7&;!J(QTs9 zIE=|OTKa{d`9-5kq0#>Q#5WVYiZ6HEJ~V$nt-AFm(P}9&SMnM!+U}=SH-8eXc6@GV zewS8T!x3@3q&Ha#ZQW`6>)o zBw)&c-h?0aGvD>HP8Pu%w5FB<*WfkvF#6KD=u6!-RXQ`b-PmUawY%PM+TCdMw;TJ% z_h^@Mw*PP1ZCdsI?KYLad%MC(Z9Khb6Z&oVgUbt9f1LeOnNz;#No)`CbkVo?$eG_c zdESux@b`&!T)9i@>2&fmpD#P+(sSwG4b5k-_rLAiGk;S;UaY+(k*_#DPMz?BrN437 z?6?^^f#-=%Jn$;P-6?+cYwCF}QBQJv{q?}hj{S;!KThPcsL!1@{rTW?XMRb(BZ+(+ z@{fzl(Ea(~f$7TkABlXmH(ns0_~S3gcPx>w^ixCgY5$@4FMX3ud_7XQvm%w>Fn+`N zSxBi{bU83*J9;Y4G=y;Lol+ggj3F<&)D z<#TJ#;rRD)@&8I6!@JglV_%ltVtlUny!Lzj_2X+<1Z>ImOZIShLPoB`+dcL3?;Sqt z%smcmXr6b?Pv9jdPCqZajeYks(YD$Q=J$`W0hbsJYR?A@{+bo7hdutl4O5J?!yf#F zhzn{RFdJ^*9Cjl-#BUPk2HnO1{H<2#yqwOB9pD@Kh8n%2&$r8G8)>@dZLK$spX(hs z%pK?-Y7=`$(fl^#2h9t6|67uPcVir0&9mL{aW0+br0<-DjrkMf`}fh(<=gl}Zctx# zpLgUv;iw8d!R%{Owk}T(v9>vKnsiUvo4C51LiXF}rA|xV(@rdsaLI~R>2S)>1q{%= z6gj#V3%!dq#aJAgVyxL1CB^`8ad2#&u@>Ke3i{%k%Q|**Q>(^H{V4KU^;yt``b*5p zv~8@RZlAm64DGYlwgT$h&H8Ecr>lu6Q4;M@eJ2!Ko4V}vEY-00Skvi`bPgtZ)Z^ZX zE#c>ZUt@xPZr1Q<+gbF0>G3whvz_)_{0gSEv=bp;KYz-e(5Kn^#$nQ7C;9JCmM@4fa~Wt|K*1#=#2Amy(5pb@ZYZY4kJzX z8`^UPo!)VL+LGtWE2O>jVI%Fhp0^umFY|QgPSZ4}zwbA9nj#6jxMQ0_ z`kSvN=HPqHojbslJ7<*7oiprZPVYTvHnd-g4au{jHF=I4vY0dACIW6aXs}qk;W>Cm z1RT!=HwVyPuf^X-wAL}jfoZ4s!Y>mr3GPbTYd*N5bw2l9g-mqgJJ4x8J*uG*9V+L6 z*JR_1U$X<9)$^kony~+MU1sc=?$RfFdUx)*b7eC1HBp~*d^;J_Cbb_n_WaO;j*k7V z;3>_H!;@niO~&Ci_P9!an>8LgSpVAR=Fwc-9oOB2k>Pfd*O{x1?om1$-G3YyFA7b&O5a<>E~6Z1WB5Tdn-m2H`+`d*=%FUGP@XgT_I7f-te< z2j|r|xV*K?O-BxP+mtTn7`(38pO8IbNo^K`6XCs+b>IxN)O=AQUvhhHKJn>y(EFcZ z&)hsFk+)-X0ygD+2cFz3KLzSOMH!8I^Y}!5?h5Jei}IiK`r~=Ww@6NSoNvd@I(tXq z;@F$czEQkY`^#TFYL=ZF>RV*0R5j@(gS5h)nW*#?3M_8Bggy zqz7T&h)m$fIgV~ldJX(DX6(eiu02N$es->0(!rYI(3sOV(d)MOT5Zc8;LshT9NJa? zJK*oycdD)tJVlTCrZrhKDZQcQ$Zm8jo#+znG++}PH~$v-CNBHh^+WH2>;EObXfu4o z&&1CEe!k|7-@|@<q*d>x&W=Q#yM{Zyw^{hQ4XN{Y ziE@L}4xUJ)4YqTyOi$D~#8#V;lr{*K;-qp}d$4DY&g}2|iOfW~!8WxM6B22mX`VGr z@Zi$9DO;_bp$6lovR3&;81Xa8It#gi*p4UgU6o&s{9QYFKhHTzatshxn>jLTz@T^pOS)OM9 zG;ec&xs4vBrGq&ucx^u@{GqH`>=G99XA92}JWGwX`He-91$!N}Fw?uoaUR~s9NvgOzT!1-_Rx;+tNS(a&)KVUm9^vLn?>A4{DGQz_L8rL{Nlgz zYtuY0qmCQ-ac`RKqa|Lc{>g_(d3CRl&1>=DlFZtOpQY~l5WkcCw~@7|7B~&l=zaJe z&L;6*x8Cswuz*$ZyY2e;R(Gd(R=Vw5S-aloErvd8@5I+C=VQ%b%FAE-Lg(y_?_oP0 zk(jH+I}>znJVV-+N&WLo zYf9lRbI#3fI6JJ(O$((MS2ZF_DZS$C^=_M;wKzsvF7ba>ldqXOtYfzq6~;y?o|n_M>fb<~8uU`J$Jw6{yX&XO#umIr zWn;zML90FZX8gz=ftSEHcH)az@fYHwvLBiXuIHvj*NlMv=N1`jZbkNV`AGKst^(-@ z6k9I2y~eY&MR|M{Di`qH!8jORqiy1%@b>Vrj}*q_qe@@y{+DQ5hyTJjX&>{q;Utgz zE>47x*(R|+z=`^JEimQ+gWqhteWAHNZ7%zdTx`quAy#gd-^{s>A9MQ@uIMT-uQAeo z0*>%AUbDzfziwbUa_94;`;BiBQ`TQ;#}7Ss)4)9cXr%p+Ja@N5+jKqwzscM#=IKdz zz-z3l-OTZ;fh&fer)Vqob>w1=%eiF(>sf51HQV184E!E3(!ODTzh&U}DkJS{d{>*R z!SUcW4|{v^PhE%x8P^X&gQ`>Kgr9;QZiNOv1`WDxs862--w%NQ&EQ}Cyp1ssji~=0 zV(dq5Fw;NAd}4g^KMQUy@?Ny?XX`xapT*y)lK++Fgg_<#y_DI&w{GvqTzEp;RLb&y zO*iY{YSW*)nselNd}rLo`iE17vJ1_?LY0MP+ba04IaI)Z@qr0^8y&}sX#XDJj;G)f zjeLdw#-CWvjr@iKPa02WzdEkr#9`=``7602`Wk6jvl3~w3E9GpGiLQ%&z$MW7eBzK zFqb`7WiEK#@o8htlh9G<@0mZ)T`BRe!~^X4%(tH~$CBqy_298!-n}b7p!{u&g-!eA z#^T&{6PC{Wdx!RGRvL>{ullEcG_K^HQt%~uyM*TeIEX28cn}<&z?w`G7W_!DXH=iy z5pQz&lEwF_xBdR}_ZfpMvnM|^ zI=UtoI73%ExU}N3jWNHoK(dkQ)zj*Hc8vIs@EtOW*Q|!e;{TTG&U4Lq&2@vhuKb~Q zhOe16B+qqD9_G7Ur?Jnj^C#3fu&$e&e9U>}8<@7tNn;)lOR3&ZRs^lakHk?$SW4CbJPPo974q{0Y(V7_;TDc0j2Uzqihwb28-=ogU3w3bB+ za~XT>r5aaNlgHQf zPi?uhX&JtHf7h@!tKn0H_@%F@W<8!tIp6EU+5)c)Yx8wp2jB2jqLX0#s2<}Zua7=d zaKC{C+_l_K{5!_qZL8vOqs`!4WpaF0i#i0S);)`Q1uL@6jM$fME)<ku9MAeQX&HKMiy>Qz&UAjr z#Rcoz5L^VnMVB{_yWwxZ$06cw2p{%2mf_e&;xhmH^*#K~@O&SA_tAI3=Js9vmhSEY z^$i+A*6F7k>}vgVV?a03c?_nLY@25|F~DPtna+ws|1BCv!QuOg(Uv@h{dlA;)m2J+ z6}b+bo`|T&Y(|O@ezI}o^b!Nz=%|>VlpUE+HI`5^VC)16-m$UbY<>)Nkd({6m zr~ZO>t6%BVf92r%`Cg7*`-9e>^*;5Bjt0Q5`kAwX>)#lk$Nl)>T(0n+KB)dE-)#Jl zUd?+4z8D${$r#CFF`!NI$|j+CXvX!qEIkRGc^d&x2!HF@A&E}hd?4E`^`)TALh)zdScXHoqk-xi=aPSXFZHw30zQJ*N6%ChtN%PNI__OK0d=b2Zc<&tc-NV z=ApYZPpEShb3@-0*V5JzIXwLI0eBMpZ_JKi##J%T@V0VjnV5}Nl>t}m#C4oiORtYS zkRiLxnj@s;zOkZUg?N?r3grL7u;Fd7M{X`;d}k=X>?21gE5FH8_8NNVl$;gQ0vJIz(wGF<1uHQc% zc}n!A^BJLXW6c)Exzv@N{^aoC*n_|a9lB$n@f7_h%PrE243?h)(7N{EG4{-Lne%!N zvG=bVhF|d%_MqTxGvAOI_S6-Zw#ATh=b~eoid^PLFJDiZ`Zo^VG^!uSoC~f-fRnnO3=zr_Lvf*ax!P|+*DSuEHPXj7^-D0<5%ae$IIlMg z-PBRm4{OTd%ouf4Ap0fzm8;x4q<6lKeEj)>e)-t*^Q5(NX&YzsOk!1Vhe)NDxIrn+ z=ZK@+HQhLOjx&4cA&>gzU0UydP3I3%az{QCZR=$}t+P0h=HjYF%6Y;}kiNTfh1dqfOr`pr`L_0$#>6KwVF6THa%=i*8#z zlGt&~o7MLlJ;YF~*WB4LoU`iq%Rf~zwl%;Q|8o8MZO?db>iMfT6TQO37S+u?kEh?v zk)Ij17v^5A;zxO~cQ9tQO%r$&>q>QHQAbnBr)(SM0lV#+di1?JTe2%>2`gg-&G2#N ze!~jl!bm^R#U0@x^Ww^E@~}T1YZ2f1nN2tKJnPNu`N3yqHSc?FY^!Kw-*d}aC0B*# z8Tn0K`a~U}Y~yqj`Kn83che_zALg1Pm+(%y?ro9nCS)3?YXe31bUm>nvuV@V){b;z zR+BfLmzY8-x4~;wZswhRSxf7t3>)T!_~Xmp>W9xwXl?OM=#d>ww0r37zM1j~+~Lja z&cateTzQ|3lP2(d@*;R?)qOoy)!jW7XBER~R(&(D_^O)kj-2m%rq|C|8fatnEz#at zk*V98!F3mQtb)mtCe5T=Gq|h3ZZ;R31>$#DsNF;4nPH9%6tGVv{%qv}&JT+BNVg|? zujZA7PWn0(W`V;BB(b+oYga6$dTb;hI}n)lz`oVfzrjD)8?iH%b+v@6%G-}V#q zdE%ut6_xuc(-`A$b}-wF?#~Wq1+%X+_8k}#-LG$2qh;GXLL48robst`b${7#FpF|o zlrtIEW8}Bt9(5>_wO~!XWS7YkCv9K9{+P~q?mZl?pN;NJ{nOds<-?7|d&d|J+yT%X zWj!C#KXeE_Z$?0UjCg$ur2~o3FPqMRZ$5ohzgC!;l?%T6c&79Mk$4|h0&7i0#XinM zH< zV{0T0TH@}zb>tH*QLX_WyfpYgx1V@LqAAg<=<3No_AR@PKFZ%p^T|1XlG)wa-3RU5 zVbhM*jW0kGXJ;XQPWj(ob1Z01d*qjvG;I%0i9Xmd%&ND_+pD@f&ur0R|y>sMtx z;i`fj#XCtJKb0*#-#7CN--Q=<&NXdX)~dVRD_;>GVC_CWd{zXXIL-5}&f&8z<6Ymy zAIdJZ?>K3hKwl;?7IEIxupZ)FwQqa<$ee z_;dw6FV>XIN$}t?);cr2>2hym4>m@ZHxO&o9!HfSPJ-?T#}=5Gt9jl+z3dfw=Z}o` zendR~SMU_8w!1>1Kq$G^GOX!zDDC;mtYefvXy{1IZ`d3R(Y zJIstBPka=Z!_fGAVC%XVTZHKgB*Q0M)LO>OW@xU9Iir2{Def(ZP^N|cy@`ATk4M+& zuROxp^>*+r+PVu^s#uHuPtaEWiq`F-Ezwn1oUSZ%&Zj;gU3JCjsw+-c8Z*(B&SSQK z>k6NJJ}`Fy_>Mqd^M5tdPCxLMzGXT?=!|hjz^0kk`(}KFZw~Ec*t}8ohlznLKMo7J zQQgO1M-C(Q#+S&uV-#x!bM*b_rscIkbTjg|nciQx?mcOau1BUk8bcna_l&NW&Rnq+ zihR+$YF~7Jv^Fcaku@`Fn4zpxV}Eh#fob|~SUJIssYUznrRuiR?hoxNhc`O9_VF!} zGv}J4x+gPt1Na6YQyf*DWi>1IsjSxFXmz4a`+F_lQ&;S>zf+&eucXdHeyjeO^`7)d zjd66YIllW9v7Xx^^WXx?XezZChSxL|THs~{`* zd`)QIH)-#FeqRhv2|iyG+BZ3^IIo8G%oJ~^ob>FG#d(G`IjFvrk-o_+qOPL60rem! ze3QQ4&u>eS(O}ngKy^hEb&)4~e3I|`DyK%; zyyJVMqiHHx-l{d5bGnsT>`Nz3elb%r@j~QE$s0|6BP~DDk=ZoHNSn=5eEs6=7m@F8 z>Un$kqYKXvkEfHh+QCygcWgMg`aL{UuyBvV;W*+4C3cueoe^bIoGs}2i%r6`JaxuSE{Qe1kVDS8A z$E8R9o3Z>>$7M(U;2qJTw*K4l){my%A5|MiKgwQvF7K7JamF(0->}U3H!V;7X(O69 z8ytRqSTyg9cUa5!{5&s;=A}flgH!lj&+jw*?)9YB-?5}9@2;DR@+5<=0MF0N&JRA8 zJ1h9m>{-FPFEaL@^9u)Vke8lj%)h(o#-3*Hr+S`z?uORL;Yj@k_DA*Xt6DbQ&{}!h#Y@|Ny?USI zyv=@py$PNc9-4Zjq;7rQbq)9A-T1q8dCPxamG_Z?OM`0*rUaLSFAd)Cm3#Bn!)HEu zbVJ^&vkQZNfBL>W!Txr5dhj!|FAq+fIy=~qds%Sf?8|~rgWF|4y*uw4;P;k8*X9kg zE)Nc$GduVg?L0hZdhq*mW(2oQogUmXbw)7NniKrQzt7FP>37%U-T1Y_yb07fn)-hY zuJ=;Utla$I&AHQqza{UopI)7J6=Sz#_VnP-siUNBPF|)pJGj@+ct1Ql?-#jqg6UJQ z4!$&dPH@7UtAmA%)m4nu55u#A-zu0L{N%}kyrsXJoA;^k<-zpX9}eF5t84S_q>sN0 z&kT;v{V=@s^5BmOW(HT$-~XnrzfjN8-(QpWd~N|SUY+;C?1JFp@MYw?EI99LbMpQH z+^hm8pExu-Z{EKb=9SbHZE#GLOQetoo-meX6IiJh4aEAHj)oNr~U0bUp4Q`6Pzae=z?{_ZyqY+X}36O*k;e2!)D3aU?DdW8@3_BJzAD@iQy%Y1;}9B6LDlN zGGYt*b?I~4vE^p*owaYQ?;)d2K3MuD9q5^*@p}kXdC`-mAjhUQpPz2@cI6xA!v7F0 zlpk-$D0Ft{R^CD}O*eGA7k|$2s~Z(+X62tc9iMoGQ(6fw^XS%`>b8F$QlcHbU zyHEP6qF>F~XWLf6lSSRqpNDr4r;T;&$X~e^?*p_^eTK6O)a}PV?}*x>?lRgl!j9f9 z>bAj{l>Vh}=6_SS+L3NvZP|WrlcUX9$UrmkYnjAPa=+5M^0^0dy8P@faGxG$bZq)N zEjxEYSAXzSvaa5_16K5A+h?&|NN-`=V3KIY_Fws5u)(;8N}qtf zM*BtCA><3~=o`k`w5xQ{Pi>rjHbcjaM$atUX2f^b_K|GQh|wqM)qBBt^e^CPT4BPb z@p1xB@?S)MaXaz6mig}Uq)YeNjlMCrBgc-XTzY77{er8Equ!bgdC=A3V%8qz(b}Uu z(LDHQ%7GR8=COWjt(pf<-ZVO~k1^q~H6x<^dm_*M>+=lO(Gu3N6zNP0a)L%dc5ohi zJf&#GzJH*ed6d~SdS3rt$Yi~(88I)Zj&*rPk?Pnmuny`?IdF?p2W2*mE=|;7s*cj6 zI_?9GAa$%CSO@i{6vgYHjMlbIqZcLWsR>fgqP#B}o(6YcW)ubYS>$_-Ip_LmW~F<# z8e4t+I6s(|@UselXUT?@;5-bTTkc!Gtx~=x;MoVhB`0h#{PiAi&G*I1>*6~Fd|!&3 z;^I4H5WcfXPsVo+@`hv??;w1qfbUC@e}wN8;X7&XnN3>F$Y|ac_P=f)b5b|tWs%Q2 z28j6#DT_SX z%Wnbi;s>rzhHcwF<@oj#F;_H~v<8&LeQd&g!)ICSvBYO&Gt~Y^JZJ+xCL7j!dpA5d zsqlP~&x&iuRlTamwWZ4+RsSE#F#>9%|9|no|J5svfYOrZXZT_x&5tj*YO zzlGnp^fOmFYwkk6Z7@evj?lUV{sLR&6JyzHZ;W|w#MfW?VSjVsln)iY>D(`ezxsjc z#L{y7QmibacNOcm^qR!`7yu73!t6L}s$YE~o+tOYrU!H}%LJyUW>Ec5#-Svs;z$hh*G<)tB+o1wAOLwm5;fnw(*azJd7Ny zG6CpAWu!A9f5QsHS2+@S`HEOYK_512_2;AP+n#+oqY|L7f+%Q>$Z zAH$Z8K6vI+%-`?Omp_6_?CkdUH2SjQro7e{u*0w6TN?ek^4HT^N7JWKho==({Bl~W z*2g?xP#cPE{a>^(ihQqEMOv=}jxE6btU0<;>%r&D(F+&f^!e7s_+6d$j?PWV{*TN* zlYS*}_d=eLm0vV23e2mzs`WMG8^NJEi2$%Huh+Q)-uBZf;Y*2g$8`00FaBkLe*U#_ zOJdC^8xL>0GLg1xb0RG|&P!}de}B1y+yO0m%EI^5P&p$}?nF|W>z|`L2Q6^p+*M@Q zzUW=x$6ouu<3eyP+N#6nLB0)aQa#6 z{fwp7ci99jtA_JWwU5_w_q1TH#~&8^Fe08Yb~Cn&`Bl?e9e9W}2Oex+3+Sx!o{H8d zS63FC;(Y`C(wvG=rrYal(f8HJ0k;D04&e0y?-u&}C1Bk`e_zH2;Q{*mBxSw~%&*ap z7w`v3^Na}m44Ue^X-#X$7+HDI#xG@VscFc38Mx#RA~}t`EnlL{&#G?4XJllhe7z2H zpSobZ4VXR(ypn+yR!l4SPjECi4ru!XXzbPz{j{?3!33>zWiCun8YV~Mn^3~213 zMB0gm5@{|E6t5oJj{TY6@lf>=kKwGpF>vhz&zl(w;e0-4Un*Buv}%nFpf`MtJEv9y zv+yq7Tlw8BnaO;BJy3T${ro7gr8I}|bzjy6-fsgBPl3;;z~!^&My)vnfA}kXz71UK zyS`cAzHWKm-5;aum$HAB`BQUbfcd*-6?L2xeuyz}X6ZqDzbU!Q`UJj#oS8DrRYB|S zaZ8QGBNm&{@?h4YvY-)N88q6FotRsCcjXTIEYQ7XbJyjb+fGd~&KX8d5M1QSkK4^( z)QtOr+dEtaAqBOvLcD}a>^N5 z$`q$yNz4j5~TL*9ts;<&l1B-J}=WA zC_b0Tw?gJknRivtux<@n6Dop+=p;^q(dR<@-2d6i1C3>q&p-#6P2T7~8~ei6>H%d8 zYih7Mshr9XD_~6_dhL7DjWj!*a^>ix-|}*nioNiY%)bs`lW)fjz~cut+0olQf@}2< zxEj&_x^Ss}boFaqLeDR_8vn`ISEPA~A5CpBx({eV_-8-1r|v@z{&V?;e$mGNIP@Hw z%>fiV;Pw!sNyxzIqOn;gFX#ME`J|FnCBF0wXHqcOfPCiAsz;6g& zVemPDQ{@&<;VF(+!^(2zp;g)ct?{0Mee!d7*)yR#8~D2zr_J=Cjy_mbA)D@9xpFi8 z@!Jx}LcHws+l& z$K{2NBwAEmjmTp1QVhd9nG3L8`tOe1ZOdfDq$+}UN_KydwsclPyhdjwHlUwFXM(Jd zKIE)~b&ZiGUBm`-bIw_by0Z&c1JM6QYZ5RbEch?C)x--Znrb3*4- z1(#w{x^Q)}9^V!B>+d9w9TN+f<$EkVy#c#2m(4Yb{b-}vfX z^O|+%uJ%D5=u@~+e4J+P_m=;-iGL1v6x;V=3+K9*)Ar>C=h};@Kb%X*RhzMQIFHHq za>^C+zl=8A{o8M-)6PTv`u^ zrH?$kWW=AIxIOPjPu%`x-e0@iX#39RHreN8wsbvl`^o8MgFk9C{BgQB^4dL*EP0@5 z(~|FWKXLmXUwq>B?r&f}PdD1O)Nfkyv2Q@U&2OtZ(wpTjNR>F>aN1RwgP+Bjo7mOoO@+(H{V~qJi7n2{OJB8 z-9~5$HoN6huMLhZyau~kPH>AaCwLlL+W4unf(3Kt1iPLn&Fd?P?(e#zoG6weZ~l(NesR^Il4c;FhA&<9SQ#1oZMjHoVmbX5WJ&s zW-t#O&Qnu!S(m4<##|bF=X3r%+4}ZR4F~7?E(;!tToKH`{`bP1ux<0(=es=EQFukr zUob8Bc4Z*%*M-@^AJR83{jZK>1%tqQB{=%a%_H)@HfLJ!!&CEvW+XefwD9WS)rE6| zJ%8|q{)(N_D3}v`qhw^>59m(={U1+%Gv-_yd^mS@@bt~8c@5Ymr=w4lzvmlAhUGoT zSp1yv+{^FHA6t2U{g2eVBHqvN`^%=`dBoV>e|)a7|I9~>{a?g(l2!5g)#dyiG}^D( z7Cm_NJY#hIBfLM#``F+9Kg_*vBYOr7jZwCubMHN< z%nVM<77L3SR5HfF5horWwhubYgvK-Ry4JO>ANTj)eZ%(i?+*Ms4KF^{ zblVMm2Q6Xq{kJXs?F;Yz$lt!;?!Wxorn`R*F7z$5)O_yTZRa2Ro!d&_D()LqUpaHz zsS7+4c%l04(D&Od&*T1B_FHs2CC@(je*SUY$@_$5cinQjOHMTwxIb9nd5($j-XdfCcK!}yS(>Mu3h2em&N==(w#+Zoh0CE(^4{0}gi$lIMK>sp0aQxF2{Qd;hKc zn|WgK@(0*kd=v9r8TCBPb2|5PUvMNBPMz=TTfWd&zns~B^*sB=W2|lR*POhjs_axD zl%Bcv^=W9Q6ntQ6$H`e=nxb5-<>Jb*6ee$O8%FA(1F z{N-HM7h&S!-0<8zu|2c8hxW@ig$tJpA$RIL?U1Fp5N<-d^>RK;UR-;Kw3&^xX1fJj zE4KSC)-SqEelNpzGq!hMoO|TE{o1g-{BpkV?u%_-_>Ny`7SqmqFSh+_rj?$`{yraG zaXCNp(8ayKGpz(I6i%OfBj?WiPNpy2leFx5s)T;b?%(7?^U3^6#<)ynkBsZoY`ve= zmo?O-{14Av%zTRZ+lX)aV&BxAlP^1UrsC*@*A>d%d*(G~mTy82^l_n*`IEo1@=jdM z+N(A+jV!(Y9VJ{BU-7Ks*MBygJ6T44PaY~>s(fwn+m8|dr{Ha+od@sWSd-sxoD z<~(^n>2&dtn_hGGayz!9U5S>;dlr6;E9_Gd^L>oT_wY`^lgXpw=IbB4x8%upJ?Z)H z{>4A0?)&I>J@03qk^FcuxBAUlo?K_HP)-$jzWGGB{oCwY-pt>(-TZwIejLAce)}^^ z!yM6BNt(M!^LOmOoZ#>5y{xnR&Baf3)>hfL|8d&)e`JU%|fuf1jn_UO{_5^Z%yIuTbWVD}mqN zX53sl^{Q)2t~t5Nb1tducTsLOUb8-WkUC{)^Ncah9k-X0Hj6WRm;FyE_Zt4ajDM%; zhaIwdp&-$jE_9y`c$?L$#GQ1^Nb;%J9WB}XBip8d7kS`$JJa` zKF3rk$J8|(J9Qj8H&y0N-Ou%1c1&HvG1Q9w1nPgG>ItVV@ONgbZ#(l~$%i<%J<78e z9Anw|yoT{v#`w&U#|82@vmY*h>|5V{!D;jYoTW>9di9-r6NF=+gt}&PU}30u`E&>8 zK#s$BU%Xg+uo@ zbK@m>@8Vz9R(;$rzJ>Se?&9CwF9}zzlJ9N&|Bv~9k>laQ>@_F9gb&v}pULvO z@p<95@8i6ijhXD(i!YU(_+(wlHNSEvKG}LAeh~q)(@s+YGZ@neEkHf!g+_w=E&njPamVJUU z{?66|XDI(PYmThXR;X8jG1B(a@41-&kq^Z_E!1Rd&2YJ->-^=@99MzX|oENA?=7dL{W}?*r~+|K~Z@Vs=jBw@0$;-~4^y_V7=o zC!bCI*~e+heC}foIl*-jdxN)TwgR@m+@GDRPH`WqFkU#B%~`AsCLaFO0~fEaco)At z$v0V>8PlZW-M?pEcd6=CC%BJReAMccjmKD*Z`^k=J6`IaK6ekl_jg@9Rwh0e*Aekp zp^n+H!ZkGa26;w-^F8l<6UffHY3}oxT7+> zCEKg#d>;209y${q8T(i`_W?d&GR8YV9Pf+aIn0|c2$!?Jvw1I^V-5Sv6CZitKbdcL zK6vq=x8ZYb?n7grJ%4WGMIj#l54|fq^3b)V=dfMM&TkL>bGS5Cdf{AlY{b8>C_VSO z^85??E)*XbDYZGHK--rv-s^dPHUEcm7f&#EWc5A6zmgnlQ(`Y+yyqFiX{?trwzKhH zLOuV_#&sIg*)eea|HE;ewc+E(bvDkkHT`MEbxFSDRC+$-zH6CJ>5Dr*#+r!x77yGK zVw+`upLl!tdTPV?_i6Tt9(Rx7@!t*m7T=1#ncsd&bLH9Wx43!tkZ+fsyMyt#LL1(} zZ{UpZ|NIHo0Us@U%j+3~eUw?xchTNR-+Y-p#v*-{^-&M~RivN3Oh4V}{d6z=^hWyW zPWq{be#*x2z4X()^b@w&PxsPKchXOpE$gRy>8A&%%bnCK`+ruaKFX@k-f7PMrcU2O zzl^=r?j2<7q~S?w9iCb9{e1e7!B$^EO#NdyKC%-)FyV zd4D#(Y-~TAr8~iVedF6p-qOa{xRdsHEA_q3+oZ?a%Q-y4tEm6qkIG4y05OBJNwZUzO|me^7P-A zo(%MJb}gJ8tJ&JWr3A9;dH;L%94J%KAO_pC5gG@zR~FzdrXy zetVO99Qm)_(R?HC7C%bgjlF~QGHcH48N2LVrPL1DahXN4}>~mcis7p3xvpPJkF3)LWto0Gscgj3< z9fekBeV6_J|1ZZ`)|S~`W{UI7(N>$DQ);R0*3*IvtciFM4!i8ISP%Zu~)?Kj>K z-m-TM>wxRS#w{OuTJ{^KRqdDV9J=d7CExfv^_cR%r{r9=m$}CpA{%!f_Iw_AL-A4^ zE2nL49y?QhF3W%Hy7F_JH{v^$w=nmOU2A$)E_q&6fBK4Njy<>h9OuRu&)O-z+xrr} z2TNV<{J{BhXP;Pm73Zz%`aV!{?mxV&InI`S_m`aeH~%|3j|I-PEY#w;ESpdE-PU$B zY2U~<&He8+uG9MNE;+aBe`ocY$;v9f@SU>COJnTW`TQo{%g$`|PYmDRht9=ib+M}W zlD#+EHFVa#@w~+x^=F>v+|#K8=hZciy|GV}UV7B^?~ZfijU|^q_T6zj_P9DfR-!n{ zzLz+##W>Ix@yq6 z&5ikz(%TE!`J6fOyXSghnT+?e=!+iijokU0=g(#LfwJGAyZ1Ls&OOAjnDt9`j(*@1 z7cS+W!d#Rcdwg$n>=|X3PGigFYVH->kj=Go{69;ZrQH}oV988EY-aq3+G;Yrg%9|zh~E(+4?YBhh%-2cYC^y&1_lPY%a>|-`zghT6pZS zm!0c-xa8as&!V%=dP?kn>hl2gdEm2|?L5D$T7K>Tdy4G~#P;2JWqnn@LR~lp`WSz& z&7P&q6)&aZG22h;3G8+AENlMYgBSZkcqA*oe#?BaJ&gMG;yKP&m-4*#SKrq+#GG_j zw$?wpRy=nW?QGwjL)rV%ZS1ebvN-l`%8oDkHuKBAxp(E&A%5577V2_u$#r+#%z3pw zf8B$XT*o{_f3~Jdzf$JAY%HATU)d9i zZ-2edK_yQtzCF7>xj>s{Yw8~M5VP?ZNK=~qAA8nUdDiD?ZJyOTe`NJMpVf2I`191Q ze)WH@b2ev;pfgr3QLm?Dbcw%PSfHg>*yJsemMXX*aGI!}L+7;fPjFT2jm z_A0XLq%8mMzTW%4S{Db_#hFhXgM+ada-rU-JWO*D`!xP43v1B#M%saDBXK7>u=|3w z06jHQ_A~9K4M2scO-Y-Fc$fu`Bj`*do*@g@K)F!mR1s>Sx@c{IEUKbYc^HB?;_w)C zstB`?M2xRHnohrh# zTXQ_tn9?0XFN%>?UYR^2jgjsXVkuD@tpFESGM` zdcV)9B1}Qgjj>ESRfO&*r}%oD%0sWTK4}AxGh{WNb*c!fkd?;UM3E}O zNL4Cr)Tum-NgJ0o2{pzxorSEo=AFnH@|>M2!q`(%&f`wyVM5xZv}vd@=DY~q99v_> zsUqw_mh-+7$JSLT=LIJ|8X|2;8s8H3oHwB7$DFsED#9*g<6zIJJnTz5kah%Fe0e51 zYtw2c#sOsUH9J)V?oD{khfd|;NZPTq9227DTn)W4##eBv2rZE1Ty$cBcv{Li=Tsip z4fE0}rBy?ga|2|fuE~iJ23gKMP8Ff~dr}J(ohrfxWG%GmR35gZZA;sQth9Yu4`e-* zb|fu3p_oSv^nzIPTF9cRbFCuOyGEZw7R!PYeJ*WD+6rVjugSVD>xQ&VY1@!_96~q5 zSdJizCGe5POsfbvDAOv!@Y6$hbxb$nR34V0uBfdzm4|i6+J4iCSroFIkDV&QI$!&@ zHrRAx+(VXb--+I5gYx;Y41T2~QblNhEaqk>7SNFSb~$lg<-~1e)H%`Tkfm#JVrFHh z@(#)<3stAm`JC%f*Xjysj_neyv2?bcS$8TA8`3tVZ9~@1E1dq#W7VlVtVvs!wh5WX zG4zI5^XycgQF&n&uxjuyc82tfcWgI$jZfpqQCDEFP-VCu`b7EXU=E2>7 zNZinb%%dH8OZ4b)stA3aE*JWp%EK^Z9wX3CMvrkP&Sjo17p9%c!vbU;$FgPzTNVp* zBJ|dnOQjQ0No$tI`)z^4ka5sNqZA^oLia}BHK+2>@VpT2i`Ev%>RWVTO(<cx?#wyV@}M#kj1j-#LNX*EE6O*T7;~=8_+vr1id(#bqq4=EM(TP z7l!bzm~IOCX^XizXK7-i#;H8iN-IdKhwMmcl(k9L zW@#btq84Vrp!76k|$m%wHJ_IIBXbQ4i zrk%>ejI>#4YYz zk_d94)rqryXwBnMa?j{jv^98K+}kcFNi< ztw-7*WMz!YIw9+%v?*z`ka;Y~x+v?iv=wO^ka_IMx-aX2v_om(WyzxwvSX&oiBTf0 zR$2pOWwgrLCTqL24r$$xdGyKJFYBPRA!%cfdCbTxisl(#EAtL*}t4 z>yoU?(pIFcL*}tB>w&C?(vGC%UXeU%AsZzHr}9uItzKFaWMxdqIw|X{v^i<>ka;Z0 zx-9F8v{h+qka=v#x+&|nv>j=Cka--+dL(OTOV&!rj|C@I0Mcrt)k2nEAN2F_{L$~k zekb(bqc-Zq{v`Cis7*MPhfV0MQQLB2hXu+-WPUT?^;sStk5@}< zSe3RWZ40tkwjo=W>^fD1Lr<3rM^5D-w5ObNPK+GLa;brAl~L!!&X}iTht!E3QfWnL z?U3ctDQlOk-O_rb4M65GA?u{9Q_`lT%|Yg|AnT&6OVXC5twH9|_sVn)+wa7VwX|_* z^N_Xuf>U`|lC~`E0J5BOwh&|Bgd4?kd35h|hQM6Je& zBL(6>0K6`Hh8Y28pGzFZZ_ znmq}Y9RZvTq)kYhfvl%zp*P2J=bgBc^K`ke?!;b(v`uL{kmYh9>!GYi(vGE7zAAZC zL3S+EId4W@)XEmD?d}r>x!5dZZ0N<}oJgxU3V>CZ)|l<}okpf~-r@ zmZhyj=CLd5o~--Q4x}AJ=8^AAHLrAHMweD2tsXLuqO7g5wn=N3)&-fz2;?gTCyq;K zHunCw6L*`TUyIs|6Gsp9>rtC?V%HD)VAK|!IC`MDs4Y9On+$y@YU@tymq6CjhfZ8= zOFNd9dvzMwb&z?~J25t-HA`!QtiJ7#jch)s8;N~ePnQdWPVC!C8SuPXMPsZq{ zo!EWzbh)tL#MxfjlC)LGa@mk|Q`T*1JJJpy^T_{Ts&A!Jd8m?BEv*2VM}w@5vNlU= zk=72GN3X1Xvi3_GkTwjN$C#|+vQA2yk~RmK$BL}0vaU&6m$n6&$F8hwPjhGZRln zvQEf4DQ!yHEMy)FvM$QHENw;F24o(4vhK@zAnj0Ecun%Cglv>lIngfCYNa(mRz|C= zZL+pY>yXwBnMa?j{jv^98tt<^)+ntAnMaqb-Lm#b>yna856OR_FY zTamU7na7r_+p_LT+mm(#nMc)+q)}4s#3+$gE3F#6+NKjv9Y70F+jc4syU=e(ZO@6Ta_A#bJ8bvL4BL zEG@hBpXJBhImkTPA&YMv`qLO`(~qYJ+M#zwZ9&?aw8}T6>*OjYu52K-!>MmG^n556 zicZ`Eg6#UY%c&xaL*_B%>2hJli97v2k*ssjTFkkXbdAovzP&p-;qg)6mN!9YXo&apc6V-y2i99>}b{P8>&&wcn3%gFtFVI_KR0mFsM5W7aRAxETtI$hgE>*7OLba?l(rTr(LF>_@ zN7i0h`=s?t8-lEiN$6A2cUCm->9}5SVow1wj~!WeW!;yx@=d9Qs+>3IPoNcw1Tt-$RmY56@9xz zJ)VwdlbyI{4VlNJtW&bi$hsoys;uj>?#p^0>#?lW1B%{>yUmc5+ahaG)(%Dra9N9l%?ZdmEYlx|km zIa%kWEl68}8e_RDvaZUyCT(5XCS)Gn_oUtZ9w$~0&~@a;lNV0RDr^c@f$0IdD zmm>{B*GG>Lr}8igSuSHvoa3SUqsKmE=akmLG<&x@@r)c~XV`wHiZBE{HFJ#w(K=+29zizS=9x_G_^5PZ$3a@Pv|7m8s#VrDS^FT%Z%Ec*Sx2Oe zN*jkPzXfO`w#E_kf>^ikU(<>r4_SRHohm{NbVE#63t999C-wl`%6kcy0-qep&cCbB zXCoa;JA7LRe;&2A{}#e#qy@+#ScI(HCCEx!b}P^8xs~Ux-O7_#poxY&q28`<;0x$j`ZBzA@sDEuIk?O7D*dq z?bq(ab12e!q^&|WPS>EnjJa$;wUG`WAI~G{DWu|kiF!nfkhSEB6Hh}z*5U_FJON8) z*7h|{JSi)!McNi*(QiAk^Db>y+CF6McPQ(TtjE%_hxM}jIL;yS=zuKdZYQ2^f-JsW zC*Em*tR9u4Y3#N`7GH-GYc6SB(t02(txwi|SqG#IN*jjEV^r2LS;wVKNSlJpqew@7 zA@trcM>1?p?`R51F;Wi8a5pO(#}qkR4k!Kb?-PZRn0z#^6{wF7pqh z)~$A8)eKn~jZVA=1X=42IPnyw(#D>S_fpMb;;T-Ymc;EY5kCSOhFdk4zw2|&A&T@FGU)F zEP_EN_75P7wEI2DV-zxv4aht;ow!Fjk(l(@RO52jQ16jFyvhK@zAnj1v zF=QUCKbInHb1Dz*(mJGdLFUmTYp<+*()y(hLguj{>!z$*(zd1TLgukA>w&C?(vGBM z%PjL~gKQkMJJI6OI;C|(=Fux_pRE1T2BZx^=CLB{s;q0$)}?Ji=CLj7j;y=V_M{y^ zUXTB-dN@%JX`Rx#A+Lw5{LX4@gYwWXZ9v)(WF9-y>8P0e>QT%Aa(lhy#4N0Y40vbIPoN^676V^P*6S(l})NLz!yUYD%DN@% zwzM5-dysil&V+Cn=b>@Pj+qH3c7&ljqIK*2$-3>tx=Gruw0+2OK9u!H)?;beV+~np zteYV77>8_59Qf5l)w3Zyqa<6O7M!?t5mo+LN>}^qDP6r2*FB=T4<>7)6Kerc>s-oZ z@k1%yiWB=`51Ym_^iH`jC$0K7l64KT=r`t5F1t<@q2t3TUAA>@HR^EUia>PqTPfY# zLZbHHPPFXA4u-VZ-%HkPqdCi&{a8^08_iZ)s}pbOijE#hG0(EmY`s6{#9lLGHOl<~ zeMHV>VFWr8X%0FYsqJzIrz4F)^^x*_7{d2O8it-8X&SOJW}J8q0D3{R&i+xd&N;Cz zfh>ajN0YVEiK`CCtjn^l$hs{K4N0!+(&+^jrD23gKU$Z}cx)8xDE#BPAJO=;VZ z`4-laN1ao7sF&6ttqC%ZHd#BI7(>zqowySsZCKhUWVv)asy2Y~v_UScI#q-%i0@0$ z&UK$i)_Ny){iHQYYlbZ68CmC?cvBv-{N_HHdSL~6MJ%IoJ+)s^H1MfZ?w}Jjk~S=D z6tZ$>WnFOM+C|!?w8E!T&UH?-xU>doO_1f>4t2yx`$dbME*F-aXf;{4W!;hWK-RuL zOKm?4*{GX_tQTgSxbG)zPTB%wQLV|k>BLp4v}~!K<;Q&p=;}De`=Q%oJr*GwvFo0W z_j{b!Q;@bLZ3k+Mxg0{)8u`y8DngcD4`lV|bK*U9r5l%ZLe?2s_aJMHmd}Q8Ax1h5 zS$-2v+^3T^C2a<>_-g()WmLQ9C)u|$ELU#OC{#CM8Iq^)Jv>Isz$ogYd)(t1}leR6b^RH7ZX}~1qMs5Si6;IgS!W>Y%e}wl=40&D{0?sdN9u=cgsnnm-TZv2+m=&#*p{{< zZ4a`#9mskp>yfl$X}K>Xk4nf|x5|n3lU5_G09hH`vi8W@E3Hr30AwDcvW`3PbepsV zC+=BGTavZ{SuW#WOr!V+vY7b>P9*m5AR7@qu5s_giTxaD{n7>@%XwSYT_@h!hb+I{ zzfXOB485TwI}5e_L+aIG(bzwxsK%XmdP3Tyv}wr7U6ystiTz1w`_h{CQqC<-ydxp4 zRa!e_Irl<#9F2-UvT1%31r9bk*vo~zR&!PtlKxc16Sgk*wp8dF((I z->wsD!lQJ>()M-UE029X5BXUGGLJPU_ILj?dDMI(S!>FWaDoNvNoM|;`u9Sv(n}vi)vNY4JXbd(vGEdd@GHTKIk2>FBhN| zMk3!|gRIIy-w_dDBYN>2GM93x71cShGMCmMYLvA}TC=nkQBkx8S+DLv)-y+<#wV0`n+`%|9T%-Y z*1D@syxkyeUD_sOty^23JnEget0k>b+6-i+t&93AN_@VWfvla6AR9Ri`9!OtO~}&K zolv<>thAu}V>`EBk;Y38=a4sk=6%U&Lfbu>5OR4)8)c}6FY%VOzEm1YmI6ruHYPCTP2ZClzdWKkWCw5|#ZbjBrSvO^^txBy?gf7HLXCTXO z)`@3frOiuQge<-_SvQ?{_f^`Fw7#dLoco=)7btB|+Aw4}PeL6rszuQT#N`V!dd*cS zzk(BQHA3c5l(kjXPFaT_%ViI;v2hI9*r`b$=d0}_syh@NIQaT zY*ba3g!jd|bwSpb1CX`-pcDIH(uSptLRRh+Wc8gFtw2_{Bgk^Dd0NW3;8YQckomUC z+9qq4tizDyw+vYe?LanO>b@uCT<^r*p|nP6&5*_1E^C()&)rBHl{OD~Pk(PJqt>ZB z6r|NjYk;hb7Rc(>F6x6GiY-1OT7;~{SDe`4gUokZ)?HZ-WUZ`8@f|=mhH`AITMIQn zR$8m56SC5}oR|rv^+@Z3tR5q>jyv(rt+ZunyO6b2H#Zk%Vl77@8*59Dje`xyBG`0d z)|0j^Z5Of#4k2re@XSQDkkze8)CXA^;o*)-~TrJENWeP4>;*ooc7#-!Ca zv0ox>OxhfDe>|HGJwJI2J8@kGnRP+dMOh2qpFHZE*g=EL;{d9PEp&84Nq8(${R0O+%J$-iiBavhImG zZY>G_8Ox|@Pt*iiJqDp~V9kXgC-yR+ ztp>8zt%Gb_H7Q-Q(zQq{N^676cNp4;y|4&tJU}w;&pNb!y2G$ogZ{iRX}|jZ2$^tVYE9teXmdX z^*gclmNqDD7_$6kpsP!>b@owjqQZ}-_`0A|(K-ZKq{B}1xwKJfL8zbBR3;Ka9qq%}!vfvntCS=(f7m)0Sz3o?%$ zS$k#elh!Y75HgQpSx00Yl{O}A0y2*&S*K;4kv1!B9x{(bS^2%z*!DabB5g(58e|?D zvTn+{C2d>UE@U42vL48KDD6mE_{rpvhin{FI`IyIv}$R!kd;vBRFikd5*EONsi2Q%epw@t%^jA!#F!#XJk0i^oji?dgc`6|F)$TCKD?$ojVz^79d7`K>zfHL#ya`4ydb@=;owv<}Gf z>youw)*flS()uCuScWWu+6U7Z8h~tlKL))hw#GJO3P%6cU0@~T7@Ye#7Z z(kkatx+*8`!+t2`R|{Dg%hDPjP99B8d?!KLgtU2S3({tOBjuc*PdT?j7X2Y)b*ubv zDx=DYFFrwL9fT~Z+TTp+3Qp{^N~@RF2wDF&%i1DqQCh3CcE~(BW$lu+TUw8_KFB-< zWF3@sNZPQpQOG>TWu1_9QreWX8OS{5WSy6FLE56UWym~MWnGhXUD}4UEyz4}WZji@ zPujk;L&!XiWevY&J;VKOC*Eh0Rt1?yjjXk@7NpflYkrxChNGY6VfK7O+)5U{gHIUcR)7FPl}F2eZP~^%|e!L zPgM6vIx1Qqn?Z&lOPBv2i3*}g$YzEqC+^Qko0oP7{ZO1=ihq#i#39J$#3{(;#5u_3 z#0}^(aZYSoPBaghbw#u(8n|5I??n$falZn(o?LQa*omDds3B@&POOXnFx7kvvZyv7 z9;ReYtox%>ZvLYwT^(dKuXkb>R$8O9X2|+z?T?ekx)bHDrZVcG&&8-3oVX_pSsCk2 ztk?b|dDKGYQE=ipTF5-MoVc?7c+v))%0uB#lUC=%S_SeMb1hk`oY=#YRwJzdS=}0C zZIX3E+NQMrM^nxNPFyE{B56%d^pUhNX*<$(rR6@EeDhAs?b4d1^-AlLwk2&_+K#kc zX-CqIrRCODt`j{Yty)^Gw1TvHX${hvq%}(`N^6zYF0Dgam$Ytaz0&%m4M-c5HY{yK z+L*L)X_L~Xq|Hd1l{PPJLE4hEWofI@)}(Dn+myB~ZAaRkw0&uZ(vGBsPo+M}IkAT) ztx8&rv|4F(((0u(N^6qVBCRN`Oz6hlZAjX%v{7ke(k7%$N}HB8 zBW+IFytGAWOVU=Ptx8*$wjpgx+P1V^X?xNRq#a5-mKHv3y~XnfPPtGity)@*w1Tuc zX${gEr8P@yk=81$Oz6htZAjXPv{7l}(k7%$Nt>27D{W5Ng0w|x z%hFb)tw~##wkd5(+K#kcY5UR+q#a2+mX`aobe3!ubwhUk7=_*$&-N3dNyyIK(;J-a zqjl&r=?EQmVuknFWUYtnT-M;kxk6f#v=+$DLi3PCFty1lBbG7tmnGqsA-?|O#CiI! zQqGM|oN=K0y)-_qzrEN&tf~?%uzfSqJIq~M&c3O=rJ8_1EY&Ej##I+h^tC0;S z-kgN2=DSXO>si{qv_r@u$o)-8csSO#2w8nwow%nCS$^A2tN{KtX?0HAL4d3crevL# zbs4hO-GHu(Yn4qW%7CnH+fLj|g{*FSPONzTE=4*ESyXdQJmoFzP+H|qimC%Lk4`66 zH;_d&30cjjoVZGbEUE)1_H!VM>d1-jeL+^E@OdMyLm~5>aAKbUGT$jD_8B1aopEB_ z`GpkeuoKUBLe{!fUrg3&C-&T=)k>>_tbgZZotO1+Hyu&4f1mQ3bK=VNA5v*ukgaGJ zAv*@^|1o(qI1w{s=@uZ1v}>;u_TK3bGNg4tltJ{VX*E4Rd z2>XyldI(wFjyzp196Pb!bYRwskcZ5p60*8gLEe5&w4Ymfq875cH9GN2lhEJ9y0ts; zWHn@U8*}3KSHD`~-%9Lt;%R!w(hWQD9Nxc{gujjXjX<7@YqX?m6`^>@-G3|BiFeW= z^O$qu7m~l0VxD&5UO8m--E`s^b;x{=op=-J-;?jYQ$;BJNAj(6;_Yf@5|u{nqAd7F7WOeIw;$0rdj^rW8`e+)mHl1|uZ zZ2|JJA?vcNE7De_twZKfS(W0egRHcAC$7t+HA-uS%y$jSR&LDbO1GzU`_c}i9YN+B zo{~z-IdMcutCUs^na3(**A;8fS7V>AJF%9BtW7tanE4?aFZ)jPIb`GI*ohhBsx)5e zo!GO4Y`io(m4_l^2P9=R9)(4#BRvW zrUQ_Tmtn~2HsZu_3H@tq`x(f_%MN5cxa&k4NZXfo2w9sR%Nm|$zKmxl?&wIXg3MzW zvR)X0z8dQ`>cr6l*^#&A#5@jJOKv%FJq=k)?mE%?-<#^&0UgJ>4MA3;VJDvWkTxo9 z9J2V1AdBx9viL%c5j_Z5e63D=p9`}1I-OWuLl$3;6X)Njr});PZ^!r!A&c+Gi8(@A zct&c|JY?~;K{h7aojCR(>%jrYX5|%VBhJs2&t$%jrENo2+Kv-*Y%McQOg9Hvx=qN^ zZ8>p0cy+Q4L*@|*Y4&b|?4HuNsPar{cxlYJ6{;x9j`P}UQqMF&S43?9veE{fD6OtE zltt@4Wc598VuU>_)wde5`i?-B%cv9Q0BPgWCLwFd_G?oty^zJy^z72`AF-`EAk(HG z%X!*~Gl{fWY4echT%SfshZ7?LvQg6G#B;-tjgmemRyUB9w&cW>rnD7lYmk+;bT*wU z4xy*eYWyOg6Qc>bDr(_6Bd(&MFUDFnLN=b8oEQ<1Mb+ZOJOo+vZBEn(vPgTJsFAcj zX#A&Y(hvgik$Sdl>%{jd{99%Rvv zIkCqBS@bhboExRhNn3y{`ZcI3j>&E4sgYKmlOkAkVh;ea2-cmL!yt=b%ZZs4vIzE_ z*e#QGDD4=s2Szppf$jJ@CB#NG&WDr!wm^f^?BT8k6c z70~He%XP?d*>Ivpkma)F#JUNxTy~r|zcr>@8la6hAB;S&G+Yx)8+Bp@|NPQW7qwL< z&IaFK8lDv+*l#Kg*GB7s6C)dXcGSWRM$8OQebn+!oG&5ErRD|6qt=NPEo2^bPMjNG zTpG^Ca;Ko{A}v7IN9uV=%B9zdwt_5|eka!aka;YLmLZFI#ff9)rHqZ3^9p3StUA%A zka_GlQS%#v1&P=a%pzrTB9|2bi6FJ#)xPV zdQOaf4YGFLhOGULAS-R~<;i!fEsfK0C$2iAO-h@FY~1H=PUA1{#JGZN{8c$|^#s}Y zt8rrHf@~CzK+lVjPD9U+RJojEju_3B@RcSaEJ?bFqk9sG@Gjt}-yIs(WNXOp4 z6Ehd|;;8jI(W}rkc<@aQCw6rqI|r;g5i?|U+jL^ILsqwKCsyX2=@_hqT4JQF&`TqA zL)XUAdLWCw*NOPt%I^z77X7pn;~ui;=bgBl0a^6NPV5}Nx-{GvODjNDk2)vLl91J- z!HKgZWc6rrVx0}yTrvb%J!T+_dDe;b8e}cL4q40_PR!_##k}K01V5N!ZgApVbI2ks zI&mC97HOLkBMh=gJDm8{X~-g-fGpBQ$l7@cvY3~hIRCnpJ!HsY-gjcYf-L4^Ct~@b z6mz>1zbOS-I}bn>{h$+TGsvPJcH(Lbvgk*h*pq=Q`ZdU+--j&b11H8+S8C@*=%(1e zO_23|vr|RrfqYy!Q7&YCG!L2Y0%X36PP{D(neUzx<-R8QHbLgw44H3>6TjdLS&R2W zmdk(>?_9W*w?`q%Wd*WaR-M@UhpbJHASjWICDa`My=C{t0&0D#;g-Z zGGt?8-idJl+1OZgVucKyCcmrSQRomc@tR$7e{>nq4g>vQ5cc*sf{aH2mTD{aV$ zHh`?Oedzu;i&p+TBF^GeuJzvI-OXhLDm{G&=163*oHb{|L!=kVuWsw z+MW}uf;&>VMJHwu$jWVVVm5=U+zuzsDUhB0b|EYGSTxs@=Bs%pW?<;mF@hB*&Q_4k zC56|fb7(8{gRvfiqFLyNqIRHk)vrrhlc*1}W2WDU^_sLnX~U59(WtCrvW`oekTwOG z$GWT=vTjP-lC}ex$DXYFvK~k~ly(f6N8$CfOB~sa&}(ANi_i~8>V`I=weaJm;YXsj zC93?1)CN^f91GHFq!l15Z4Ua;m`i(K%5Mm=GRE&L4L#9X`^M7n+DLuS>mm(7*5boX z%;VBVrHw;Y+Q?m{;r00D!l)BhcTjKCCY;z$yt_2~c+_^CxO#eX@~v}XKN~XNMknqJ zKo-@36KfD@N7A@W=23M*Z-}LJIWao#DGfgnwM{4LHkfiAbz)CT+PJhy$m+ZQUs6kM zyfw{N8~-)svgyPTC2d>UE@ZjP52al4m(p%%5AzOrK_hb!kOCFt&^;@5` z9q7&0&Q7%Re@i*%hLdkAWTo}Ly)+C&j{zsn6_8nH-jO_ZAk#WVQhhs}xK@+aEv*-_ z`u58@AnTyCA!#F!d5pC+obl1!+r=d928~D(jlGb!nTBd2GwN zBkQiTJ!uD!c^t`lENi$gwO`JOt8K_Us%5Q_wN_d|T0LYQjnLh3zoMk6=a3LG9`%au8#?y!$ zg>1ZRKsGiSe>RQNA;_$gkXh%YZHQXloysjbu~LQ1qv|~=mm*|Zej-Ix>BOoJGHcCy zlSdn5+U)<9`fbjMm9Mk~X-kl`(2A_9vaU&6m$nI+$F{6HvhGUTlXd`^$C0eZvWA~a zk>;EjVUT%L%UUCAt+ax)ddNH)Wo?qRSz3#(ZsW$lo)Q(Bj_9>_fUWbK!AK-!?R zVaPm2WgU}sT-t=RDabr#pwT#D7e#B6Y2>UsaUBoYh&^`VZ2I$QWj^o3l^0|y^F=3~ zNq}r+zU;&m24q(R`Tt%T-V-C3g={Wff;yviEUJEA(w3l;SovbF6T1+QmAmT1{S?T` zU3V%EVJekd1HIR34%tz=23fh4zmTX-v<6wZ>rSk`AS-v%i8T^r)dpF+v^jBy4YF}C4Ox7-nN)7x ziDMPAa;u!!;e)I{`klCrf~?#@Cw7k@D|gt5F$r0@8<4d@^ZQe|El$jTkd@orA$ z%AIlI4j^RZ&N(p?LRRjA6Kj6R%FTTswR0n6*HH)1ug9@b{i{i967`ElM1|Ruu0hl+ zS`e*?c0`Aws$WaF6h$4P9?_g=Syc1u$+uqAEE*F{iRMI0qBYT8MzIaHK3Ez)4CTVM z6Z@TWrQtWDwFv!Iq%LS7(jxTR(PPhv-_v}!G<+mln|~wG9%ShX^F};X4E;__H}m0? z?igB(`Gwy!;*KZuyHRU#ViZdolQt`DPTHEZb!j`&cBLIjJC;`UTdCY?C)Nzm@5Pwg zW$lo4P}-2RDQVNvR-~;;+m^N??MT|OwCaTvRgDun;E+YN4O!dw{&s2j{TS&nWZLjY zlGePKt~pnrrI;@Nd!^x#*v^$s+=YT{?X&ayrQv_XbYUsw*Y`*|$M-uiA4nUNHVpas zQr0n9$E8h3n}Ym&DeJ7PbJFIeEkfq8EbEG_tJ2n_Z9wKR{0FI)>(FwnWnsD0pG|It zY(KFVve{x0x*XFTL4O#j{c>seqewlXVbK(1>1Lr7((zkmPP~Z(eKh)3{b9e=uaYbLzZq-))`rMq#a1B zT}d9TqAuv;F~45OA{dl53R!$pkj*r6kj+E$PF!C?7R#}y<)dlbcS08P0OYH6S?5Ko zqCL@(sPbbezgkg)s9n@2nt=W^)@>TH2$p2sh1R0=Kw9k|r}#!7J8CCHyO8B_1lg#o zTTS!*C}h@Y$jV(5ZOGdAC#B)hSZ+IH9(|$-=o8Vp2HAP=NL2Unq%}gHjOkh+i?mzR z1Fc8vfV4qrqtd2Ci_oW{#~x(SSN>_rxf8NjwjqnTV=Ynf(PUj0?TQ*dk*r;iMLHsy z5-mWMbJZtPx;D{(Xj8N&3hT+EQPd|I7Hx|5NOUO59!$0fszkk_anZDBUbHMaglv8( z{6(rqv#3op2>JX1ZN$Eu6E#1kkqB8-eWD@Jm}p8gFWMCKe~u>xV;Lim?Ol&LvBNBF zT-qdLXSGe}v(dL@i>J3EO+tSW=@@z}QuSXZYKJ}-wNA*+AC-TVtaYMxXe*{$fUJz{ zl z$)irxA?g!NKo;{7WNlE`NxsdZ8OUNTd_G0h1X)!5&|k+0Mj`8uF(>X&ESq|HlPgnT6<>x!(a($=JHK<2R}>$a>r(srfoL*{WP>yfO-(!v+4mfW+3%%jS+ z9KU3itTobVrPV>^(FR#x_CVH`Gmwpv`Y)D-?bxQhqD9dTWUHG)=x<`W*4@(Z=hh35 zdh4(mEjXn1`&~Rmf}f4{4Mviw+@6SNV@A z-4tY_X<1aem&RHbWaD%LvUK~R{FhR?0m#zrK$h-El>2f@*9E=C+6uDu_rO_0@S7BcIytS$dh8vZdxKLPE< z=qH`nr-8l{wK*sD@V=g6sr}E=@DI_q2eO=pAZy90ZOVH=frFV9Y?LkiM@5`-=ntZ#J=eFrueFycoL?jEPOMj>u|ysvLk9; z)cW+Y@U57x&57rmpl?TQz=_=e$Xaa+qRIGg+lf7>XOxAKs5LsV@_hed^}d44PAQs=}T51X-1h}xhNGZIuDwP7dnJ5?4cqBh{f z-t}olNz|I1SjS#d7EVNM+=(v*Uz;LbfUbzvMJGnsv&+JjQR{Ll4?R#NT3J|uo)~FE zv?I#ZC*Qmi?*&5Uy97Nc`quGay!Bug^yFAtw-a~vpsJ`1Ik78weOY)))W)3X%ZAjZ zwcnTWTZF8PHOP9p^?7CCs_5J1L=S#{@~FL`EIbu!S!fcqih4zhP<6~@$%$vYno}-E z=Td34FDeV)8}sXjYNE%06Lo{09PUM5w#H~R`Ad>V=l*#%>voOry22{gA;ET zN~?lw1};KY^KR(sm~)R4>j>y%)cT!xVjr?dr<}Mm09m9nPRt;XMLOrile~~c+S`&^ zV-&KO$DBBhq)kYhf-L44S!ZRPlQu7H5i*a4m!vWpoj3xdHA^c(=Fur@m#qEJnK+-0 zLDp*HP$9O^gcGd+osQa!6VKN{*TngG#fj%sA#2G^C+1VgT5{WoJvYc&a@UDoeJN)b zrVhT$2w9sBL9dD081z`AImn(^orkQQ7n~S5Zsn<6$ZE6)S&jCcxC;tdjgFm|sc%d* zs&V3L6_C}a$%*?0kkzQgsXP=Rt5K^HV-2zzjX_qUO~_)|a^mcwbZy0Sew&7#MT?h( zp7Uv3%|e#TDr7ZZb7DS_wjpf`vfkg3bywCsY5UR+A@j&zND&O(l*(;rO|&5De_4uU zz=`8r+K{vn$Z{T&bzIg7X_L~XA@itxc`A1ZdUkA=1<2Z9(TRJ3(w3#ILY7P2E6T#x z;uzY7UK_u@+}f5}_ZTv3+s(Z%Csqa0s-)FG=FtGv$JXc&EsI9lQ>*p8GSMMq?bmQyDy`9p8AMvMv?64swaMBp zYlpN>Y2A={^vc>NYrnJsX+w~CEJGV{M%st$_|5%5I;Ye?&$XihvUIbM^-=Z^vK=!! zkZI$$r{itHiFq8d_3lG^mRCMAlJY@4wn-eQW$mXFACssj_%^UNO zwO{TBQ!EXT#nKMh`Le@_ePzgE>2_i@0$D6$PMqH$i)F%z^D1PqOgV9d23ahJkhN~> z52aXopi{BM2O*1ePS#afw;=Pa>PlBJO`=Z7u2Z^1Ek9fq&XIF26rIXL&ySRa7e%et ziIpYv;;0QcvEu&GR7UHMm4)UQU!f4QESX;j(-WLJE1keyc-Asd~m zP%*}`k!cp6td+f~+$tx|myng)2w8rckVS9^S!oS#NYo-4hU}Qxge-!+jAFURqQ;*{ zIrl*3F$P)du0mE?XJ1)(d5pdvGHq1a=$%PhfGnz2=(gxl^~O~0DD(qS%iqOU^COM- zCyyD(JoX@q^bmSgOgHwXvd|gne`oJ~;Of5W`~Odpn}kNJv{FUI_SPo#wh~HGTCviW zG$bW0Nid;pRJuR{30MMGxTHjJLyZnyrkO?;w`{{1H9FjnZEVIZo3vubG;YYUN|m{6 z!H#Xr;f$I&T)xk9-tY6imm5-R*L@$4@8dW0_C7za_c`Zt{{Q=&&&^>-?lA;O+d2b1 z;H^__!S9*QkfJF_+~uT#Rse~%a(~cDA<^oM1`Y)4FeKJvZwuN0B-)XmUlKj!V^H(X zU~PoNTJ^4AEqHgJiuZ-_wVK-#JLa%llBEdPv+=eK@4NACh#87!@1|=_oa-g(Mv%9|`x!`Dn*XOx)VLlVjqB%#cjyYuF54w8_gUkxGWC@qijAqgc8Nhk?O zT3MANpD%Tgw6|un_CONTgG&779wae6ti*T($vyfZxyJw`eutE(iIDgmR^oREAn`i} ziQft6Z9dnAjs_nml{gt}+Kg#)rbQnUAJk4Io_d&8W?H#v)uz>$R&QFPX(`jXO*;lj zJ0FJLC9%5gj#7q!+k9Sw5M2bEYLMixkpcEu!bl9{ZNbYe`iF=#~?n)ua z-7+OsPmr{LTIfkBX-HZ?(zHX6w1DG~r068{M(<-7l3Fqb_4$%1{LGT*eLfv4mH0(S z(@K;$;Ri{q29@{?wSgtkK_5yLBzJ3tByCA0#&byS7XMsuR|$!`Dka`-fW+My=mS1h z6H3hVe|JfA#E*XYki?}xi8o}R5Bj+DLWjNIgG#K=p(niGv-r-z26aNHAGLX#F;yF$L^{U=j%+HRbmYbP5MygAc=w7(sjf$K1hBCGFNGNRG`*a zRA}y2LK4#==qo6G-arK}gckr^LJ+y3Oat5heQK-wQsUKM0|mgyh$vrXh*JtP*z{3RXcSuc3nbr;6?qlDh#P89XyHnE1ghc&j^xQHv>tny8uZK=Z;-S9>kOwyG<)FEdgmQh9tcuN~F!SDkXNE zP1|AGQRt(-#ScJQuar0?Z`N5z?r~m;_pv{}M1S8g0g2xtCHi(q;#Uso2y5=D&0Vdz z>xQJ?Jqq>tdVc~EztfP!U`C1l0Frt&r^GKFpA7Eul;{PFR+=?oS_vfOTc*UX8=Jct zCGroFyVWW2JH6(vM~UC~H9Bn8Bc>gNvOjPlH9E^s)Hn->mi9tvuewuR@Ip6nY&|VJz?5_X+x02 z<)mq+R9haMQ7sltKytUU=59(gQu)Urlmf`bZ+TRx+VZGEwOCXMNhsCku0}O}Q5cfA zw3;=k8o!6ES}ZyWNhtm1?zn1YT zBy`+UFZ4-IebA>o4MH+nor0uq8dhR80e#xLJ8RY{v(A|Hyjd@p)g6Ntzd4YEoU24n zZPr4w#?6{AYl&G)&022OO0!m(wZ^PF%vxvGMzgk>HEGt9(0$Bac>_v`wFY#**G83i zVgg<3wJ9Z@azod7ZB~h=(oo!M?r@VM=19=>5Nl9K`tgHMo7WCOl2?b7ct#4z2+E+##cI{80hZeg$ zO+b>4A|=LiNMcn6iH}<7BNDP{#~}%25Ry=al$fbP63Q?np`0~$Q|4~Q+~tjgIF~^Z z=Sn3`7eNw(Bc=^Na^FEEW-^f6*B$ab>f@XbNq7a2^hj~l=$}=iFE)2|W^FdD)wC2O zJy*ABJ*v?=LNe+egQOIO)E&Qn1xXBsRa+j7sJ1+EFCa+BF-USPM>WP2NYY!N#Lg2W zGvt(6yUltK`hA}VIe*R$B<+ZQF-eKN0_Y81%U9w}8Yu3yxDqW2y4Gt+C7#Ja*Lkg5 ziJk^pi?$@H9t|wK(6%-yKD8#8z3p+E5MVt*0B%TXfskd$t9c zg`}scf+Un$NXny5-NmAMB~l4VcxND)D^HlaNpm*^{h^Q5j9F*RI%n3{S1is-#2FI5 zaifH}D>8SbW-T{sg;}f2y2Gg6+%=lJRlXKT4L66vsRe3+N?XwT4&Z~v!=}2ZPtTkJ#N+$W*su?lv$_EI&0c_(~3@q zbksu9wst5{Bg~pIYqwbsnsvymC(Sx++K6ehkmOpy*TUTjl{hB|iM0$m>GQr4k{VmB z?qX4m62Dt(TD@tlkksPiko0;dAn9`kRa+hnsYdSuNuP7ttYfP2OI@lFoxcpB8&BZ9>|k|8?+D z28oXfNZLZTS!YbkWeO>=%2T36K{Dc$LDHjFn!74``JKYg(UahfF(c+6hQ%Ot1+$Cv>m1;A&FnNS$oWS5R&*Efut;tL-Kro5R#YS!>N&2T4quq4mDpdLfD5K_%*oY5hvHP)Kre5|a3xRpN<> zX)~tHns(l_+=&pseCP&hHm9DInD0UoazcqWvmtFMki@i7iQWh5^66-V#BZ|_r)(j~ zjXsFV&HV2eRPO1xBj2`8K;m~miCt4j{GKuEgjvr*607r&l=&R=P9K+?r`VPBlm|(i z3zax&2mQIXRzSbxsRoi5)G9HCLK1@>NKQW;Gk5*w?u5A;G3%&V&zN=6tY^(SZPwgx zh8W~2G2@0L1}n{)Fl&if%gkDC)=INho3+NQwWjSbt&@C|)>gBo%-U_%UbFU@ z^^jSQnDv-h`^|d7tb=A9GV3X`j+k}StYc=KFzcjQr_4HI)>*S&FspmLP4X(H#Pdc- z@+#k~1!j$#HDT5wvz9_qMwO7X^E&80dJtAU> zo|Zx~5+7G$#|x5?xbWMdPR5leebcIy*oB3pP9B6L5Bik2uW3h2J8If7(}o~P?=V#B z`^iyA`pMJkj_0OI#1s-A(cguAvwTR}QGpWA#Z4Ab4rQx@}~8gcF?pw z)A}Ka!5}1MGz!T++!Q4HaMMb>6#&UT+<7Ht50LD`MQ4Rr6GO5Om#;*h2+2NNT!}M_ zknF=%L6Y)nCH5ms>rrA?9Fmluge2vsl-R8>ZPc{Wrj4044N1yp&3fLfb7n34`*4rA z5;IUp{8m6RHrANCT60%t?i$V7Y}TY%yUp5T)`Mm}WY)uGJ!0BX(~gLJOOClJOLgKgCk@wpT zeah$aanlAN*_j=JBz`BAXqS-0Zvv7WnuKIsJEa=GDz6&n^BDvL7JjzOA(|gQjHWrnj&*op&IjcNJ6PGYprU_qh8hcC1XfJIb`k*tHwMG zl2H21dR#SHnQDwykc2X6?#`;l{?I>#PzoU_qqu539fqWaU4W#9%_;Fb{+~me8G%^L zMVtb9dC-9W!_R=57QU_jxb_Nt|buI8S5R1=FJMhuWS4 ziH}?*W@)D7n^p)(`zV5>eUv~_ugX+oCsj56r3gq;)N0nGYV4J&7K@HR63Q`i*RL9V z4kV$Bne~in?C+irafv|^O0H_`@2bYXVhu?sE6tivjn<=DENX-#lvZ<>RE=H~l28ts zwNEu-sv5l`B%w^0yGhl^p&x`$Dj?|{D^+7mQH@_>gCvweb2p?Kr;8wo%ZOP=RpVbN z|6$0NYDhwM6#_wf7Qiq0=*uR3LZMj$C zrETRx+M<-0n?cf|3L%L>9FlxlsTw1;YCKhdBrbL4u3j~Ewjl}Suvw3&Mj5F_89@@t zgt?nkjWYU=5K0B4WuzKqq#9)eNhpKnZb&uC2+}e#>!@m+g;gyU&6+jm$05gaAqhEO zHO5udIG+Pa$fag2Q;oB$s>PyuNJ42gcde>1&w-?uKM6^Ar_9~3YRqI*V`FfR{B3B*7lHud`M||bOMt2jj22OY$f)fOq+xx_GisH zr5aDQ%$@r&1s5yc7>49-xk|)Ot+A*Cl9*Ph#=g8!x4G+q~T zv?0?@LDI8Mn{~#lv!F zlBY9DJV)dwTBHpYDN*Ynx$i+G-VcDJ7SAg2?+WsRFcMy_5-kss@T!#v50W_dDJ_rs zA&K*GCFWs})Quq}e%An!x^YU0+6i4GPx%EOCHC8|j77icYuyP*VmhS6ya|$+jww-} zUld}Rr^I>{l6qAEiH}Mpc8^S}Hmw$tk}k;$xmKpc%p8(X8kKl{WLm3fDM&);gCzDx zl*ku#7mJ3J*m*K-)U-Z+C`aygNQw8OOzSso0Frhz1W9^NK~iobO3a%e3Gb{DzkFlb zv}v=D#6Iup5c@(U-ui&Fmsg@jyqMx!>PoOriCr*$WJluC1Ic}Rl{krD+LURP*93P} zO8k2crVW@j3rWa@F9|;4O0)pe5~h_vlA>Bj%A;P1kxAWgLRX1jRe@x^aFB-v68k5>?dX*w2R#}k5zD|jr2HNb$)nO(214w$GF(vw9NMd?ci8^_GaF?URsvMHu zu|SDl+1!56I>q@gGOe-?2 z6cQihX00%5rD;{B)j;CoBoy~O>jWgVq=xOYMZW#kDsi>~TI{tRCH~!9Xo=TOEAgD^ zMxJe;@pd`1)LXliIAvkh7#oa|S2;?|03gY$I3zW!$lR5fy9#qxW$t#EyE=2%Xzr3` zO_}v1^d6t`3uc`&Ye^y&{erJorAj>agCx!sN{kxNGM~z7C4LzNTJE)4C3g6r9IqW$ zqV#VHdDRL@$VnykMIp(JGiIGI>!fLCO`C?KRAtTbMTQ1NeuFo*iSUA zz_d6d_b4@MnOVzCt1zt!5+5~Ytu^Zo)9OrXgv3XyS(9c>nbvJuFC;#OA*s)2A*s)K zuL)_(SE8<&R%qHvNJ6Q0nlG&yB}R5gO1f2vx2uc7oMupoz7CQ(%}FJmHbauT(P|-j zex+DcWm+vHWnKqK3rLx}ZgbaTTCZt+ki>qVINWVeiIE+e^E1`+khIzhO03Fn33n@p zw2muL$4#p?t=6<1rZqwm`&P3i&3YJG;q&x}5-qAE^br+G%cA-R=%x%2G z;8T>N#1kS&-0e_W7WG0B(?e!GY}TV@J#N+$W*s!^DYFinb=0h9%sOG#vu2$!>#SK< z-X3C_P-3-hTA68;kkrIlv+gi!y=jf69X0KkX(u4bgCVn?H0!Wg&zg10tg~tBYeSr; zlsMf1N&GIDbk3Flx@IL-;E;@Thn1K;Kv(!srXdMsMv2)W zBr%A+E?9GvsB5O>n^s_2p=m22X}>+tdwkt3yd&&0%)UMr{jJyH<+12$AD2d>K4{Wg z=OBq+bf*wAH%RjSv})`yoAoRtA;<0t^Q#;s_8lR)TRkKpH!3kJFfCCd-tFDhLgH?R z5^WliJm@iNuUQY8)@RybNc&Sr_HKrhnER-^Sae#6*^OyuOq+xxlqs`Ln{~#tS<@~+ z;v-QRi(X1e$D$%7<`$;an$`_TdV7@Ub4)vE+960nK4R9RW<6$FziB5RjXhN0<1($p zTyH}xdYP|@Wst<6T#50`v?|l;p=*2@T`=pMS#vjrGRlXfMU_G?_xG5Fkhwc)+9}gUAgQOP%{pe*Gp0?Lb`}yJt=mI7l1iL)F|FIQUPyc#hsJ!0 zPMW(@=5FN!A-seVqk(DVrd2^wC!3*becMVZ@m}hKv><cykDn z96t&Dwa?w6H;22GDv=II;#{S~ukb)}w{JTZYJ zn}OtR=ar~y&Ealkkc3>W#5ibLrD@fW^qsY4 z-C@=`)9OuYhQ!A)NY1s4LD%>;liw2VTcE`GcGKdfB_Ii<3cAksvDHfKXhIU+q|qEC zDT>}A#LP&EYt!-|3Hi8LPndNOl6Ev~))BLwG3z8GAwgK2X&WA0{6J8#+?Bq@*W3nAwy(My?@XIcRyJ}yAA zpE#$)+`BD=Ql!L;(X>+2${`7*6&myPV9?wRnY*0!SoBZc8i%GmRT`ztdN3L8+o!}D z43fH5_|~u!Gh$TT5v;S25dXoHZXXh@0HW7;XxMj#3K zv{}c@dd9Q~)6PQTV{Cu8oBO#>xm!$$mA`4ZrsYH8cLb6rw_{3-3*8}>YKOsg~PsAQXVr( zyd(Se5Wj>HyL6D`eVGy`y3Jj)xf_He@2AW*!S76$x zX{SvaGi?HrHa!c;^UDiLtR~(SLO!O%^C;7fn>GMRC=-x8!Jks%T5>NF_OPE#yN$d|pGTS_+ z#4l5*JARo$iJfCe?sh?mQ>^a|e&b4x@;921f_S1IAw+?_Ia zIqwgCbCnpUP0Kf}5R!DPG;6}FMW&UQRtAZW3bR(4waT<=(`q5{aTJogI_&5&99DM+i8T_CUr)?m4!ZD-7>F5uH zbmS?qHh^U3y$E`V@4cJNU8}hpFn1Rqxo_?VEj%T{gCvv^NZeIIGDg+?O7KyyL=S9Q zvuR04QrT_R9<%nEcF?p#koXvbq(?tv?k3FLG$gSq_)u_H2uXd3E77(fao1|rq*+s@ zb(_`;NeueTddRGYO*>-RF-Uxjn03^wW2T)kZ3dE9<$pNDxj>1$H!W^j0+M^2hGcXe zIufYpBVjgDro`J*&?f3ZEIO=24+7o5T#8?MRALVlI^^ri93*oUcUayLdkRXtHE7z9 zX(vsKJ{HmuQ({JITCQpNkffsoTIuI?rO<6YrWH!;=Rh(x)+jBHdLb#_gG#LOO*>@T z5lHSa1j#+d%-tDtH(}bOX;YB+jeafoErhgQDKV;NbWJB#JKhAp=S3$&K>8jA#oQS6JqtQ#Ir5nHAZ$w(i{Jckh>{J(smw_v|UhQpU|}EH$!@J zAh~azYW%weW-TzS(6p71_^5)Uu2n;?_IY0eN$hJO8A*0P(iZ9~Ils){A?KI< zSjhQh-wbko+0BEb^`s!@mvfeoq`cSYpc212q{J?rQSEPqd>MiyUrs9VyvMX*(?%gl z<(OH|n03OmNzN^d54OQy@m=$AgwK8iORS&L}O5dOsOv z85N%j)=DL26sA?1RtrhKoP^}QGv;pA+?_Y=f@$stO~h{*BylNMS{C&}@AB#BH|ue; zo-l2|v>`~st2+_mG6;?Md>Q>r(3(HXNf`g8Xe$)+l!TUgItDHGGz>|sMwIy1BTPGO z+8IdhJ89OlW}Px^+O%0nd{q2SEc%9zUo|9mt5ISH+_W90)kEU9$E>|(J!o2=X@?>4 zF<{m~vksYd(zIbne9V}2)~x4EyI@*05Pal7uk_`X3(3DveDn`u(R$iG|6bNmEUNT$ z658M?^+&O2qo*0@UQhL(=LDIjextKSvxF&+Ao zK(SMSjzLl${YpGFGVO$EgOKFaNwc0Z>#%7frk#ew#~HIun03;$v!+c$;$zmV=goS- zv^mpae;Rz`LXwU=CC)&aR$y8jl6xe~T4dG|(@IS%hr~yvS*y%iZCZ_KJ0MMmSFkv|Q8jA@NaY*0@<$nwBuF1QH)* zW-T{sg=v+hRYT&V;4$mhj1rFrt^7-&{vCv*-1?Mw@@U#&(~d$Ca=%%RoArcg1Evi@ z;^UNAhs`=-+Nfz`kocG|>!exFnl@$H45arM3F#PCVh6~yQPajCy@y#R&3e|fDbr>k z@p0a)7tA_mTJ&X!0i_R#k37|w51F;Vv_jKXLgFL;iI9#0CDtFN#Z5~<;-kc@rDiQN zt=zOqNPJYAwZ^QqrtL7T9ugnTW^FZV(zKLmJ&^dQ|MQTJMkP)Go7QSt3KAbZX6-fW zLDTw7I}C}B3!~v4b4tw7{~~BHC7uvL;v?Uz1!gTYEpA!@5+4;`3E@>L(LTN!w8Kj5 zTbvGBkrI31rq!Ev(6m0&hQAs7jwn%wz7@1wC7vaiR&Ltd-v)Qlw}se=R$^2#ZNjuk z)8_kcm{t#ok7l#Bnl))!%CsIx zd>k_CVY3cGPx@KzdFTO%Gr3BvC85`QE&7fSb5ZD8ukBEx9YNQ5tzL=UEhz4_W+nFK zptWdAq6<*Dr{Sl=n3wmDfodQb^JO&)AA)}0(~ME&KgFUyM59eBkuT66d3XJg_$c`2;I2@Ke#5kK)9OsC zH|@A-CrmqK+OTP7Oq(z*?_WX;3THwp<4Ww#n3gcD1d^1OnYG-k6{c01Rt<@dW00ix z0wj5`@?V424@vnRSKHL5nGo4$~5*Rhw30TC-`brX4h` z&$NEij+++$H%@u`Qaug*si$Z*q$sAu2w_^TY59<(sL-r&v#vBPVOj|!K1LzA+XZts zXYQi!Sqzk@yO8*;f+WtTj0*ofXgx-gMn&J}c~iP%!D zr$tJ{8M@zx++)-aReSA}(S(tEwNR{wj1F_4S6aXkCC*!zcFMGA(`HPI@gk4-%~9gK zk7+ASD>tpev_44I@kP99A}K!sNy=j{TBp|1{OgjvTkE3QiX4Zbwj+-_BiH{+(o;2$z(}qnO zg~Z1RUc%T+O^ihYO4KXpuY7t(cr8MD>QN=$xHfIfvI0e9W2E z9oKhvV~1Xe9>BCbNPLt+(z(fI?Ce%31t+Lc79rkXY@QE6|F>xb10_On$~Svk7-9tJ8IgXX+x%+Hf_wb z%6Moqhau_P6FdwRs)VHHzW_;#D&)|T&*S~syUsiec!Srfl{n*&SgJdVwX2s# z+kDC76fcdodw01??ADrg+O$N;QvDasOO<$rX4DI{`_u0yp`@q&H6i5VO7wMWgSGC~ zrTTA<*OwA|?<427;3HRww^E>#w;q9{mK;^0v~CYti4rsJ*M)l=fogp!&q5D)ie4YW z8!QiZ8&X;pZNC2g>uCVA?kL(^e7}1*;dx_qZD|I(moa=?O4nCy3Ht5I%(S91Wf$Ky zCF`r4n-z}N3gz5QTQ zy6!v*=1S`Cl~Do2L;#9Id7csw12S2%cFSS_+w`lO`SV;?iEpQ-c{(X1qN+b zRFStWh%eziF5{M|ruI1U+Z_ zUytntYP$z^adv(-aUa)Ww=eXYOReW5$#vflfbrApE%17W2C@)@AQE(IK&UmmZNaDRPKMV_nU;}cImJ$m&Er`Ck{R*o)SLc%}J^*;POIf{Mp(y5y@UQgDH zUU>!fl`j9rg!73*$dAVtR}>6V)5ib(Y5qnNFURd460bUUuYVnHb>hmGPM!NK;kjS6 z8h=9S#yIhL!nx7w8wu0RT3jBjbM+`A?k~sY>Y}r~7!GCp{UyBx3G}UehWC$;j^F$B z_dfmf%~NerMZwRZeIw7^J;z1=+^eY1t_<905%T(7lx-K+E^l4CDCF98=IyN|%0E}G&ZiYXIrE9q)-{-QNpSzqN&HF~ubdTCH+u(H>bv8wwzRTdcsXG|6!n%|9StvD$LFy{=g!^h z8s5!Qk41}=h~M%>6&2rQkbi9PxpR}hJn@1}<5l=C#?j);%X8Ne2iKNey03*@dvkmP z9P%Sm&tzBEUB8g+{(AIKZm))2pX1!T3U;Hv*urw;eq)qSSl%sTx>+_;lpu1>gq#Kk*=M_-gvq5fU_ z_igv_#Z#Mcw+?+G_sRQ4bCyp%q}RdU8p?9w1>;|Fw#<9&CJdKHyWEA8=ZgcKYm2r{}$JiE54C~?;@O@ z%i|ud4|DmMdGF_v&Mm~l-ScwkT>C82+4(%A^Pd(-XJ*=-kFt3a`Bv-lma@4JRV0|G zELb-0BTw$f_GH!QvZZABTFT}|u5ae!>T)QX-^SfX+%p&Y>n<)~T>kCF6^XXR)QOKh_0oxtOuTq} z+_%@9D~aEG77y3pCwAAO;aK*Rd|)Eij~=CT!LclbwtB;&ik$Dc zIDTc>RAxS0<;H?9kHy?reH(Feb?eEEqp=v*)z0>WF!dtN$(^Ek0j)dUP2b*H5_jkPB1ubrtt^{o3WOGxOjjgzM7g!p+PN*Ejk; z`Y%UwbBNQcm|Ns9w|MdcPmiuZusCR*q?YuSoL@Y=c=?jy#a~)#Bm0-4rRj0q`Ehv` z;+1`!AH{RV$F7)qlzzzN)%f?ulTVKpy^PzR3-fE2Z?|ORMHOM*iQ7<5e+$2do!^Wx z{k5(vbq=-(_ijvi^1TfBWOfDDWn51#9UpPCHaAyw^9Z>*cdm?US7u>e@j9;ESoq`< zGUr-NTvl@J^6%a78=UQ)l~b-?`Y;^o!^;^*-I(d~RM!L9Vcmrv*SCeV)NuX!j4;}{ zc5|>`&%P!%=C1!@EXVb&>zSi1<+_xQbALV8 zF3o;kM}Ger?p?ZET1I2brZVeH=J?>s$fePR@qo+oCz%%KPMu?JR`4eDZ>*qcj4pOV z?YV22d%cMIG(PLv%jk`+kpC8Uf8p-)cl-Poxi~GPt#awm^7?92QSxdY zt-5)i%=wDkoG;+HF7nCEx0!$Yy5;JUTfc<*?)pEMKcQ|>FAIi?#%*3ppHc93XV0j+ zugh|CXV!J*Jj9KCp)J1!c73@^eW%S~Vw5?iJQSz5dne*mb+kGs`Pq*EC z^3;v1S815n|;IpZE~E#S(?wiw}OkgokgKR{mI?Ak&` zxvxUY&(i20tuFo|bEj^%Mj?DHrN<(LqQ%i0iWnzZ!^B$n>|?xiYni9A$I3-n3T@zD z7xk9W=9aJyUgG@d$m$k1i;Qvi9o!{wceA>ilo8mwGsfLUx3>7 z+=sUQ==c*_70!KmSw+Ev_#dvEWCi2;z#`T#>GD0yJZKGbfWQ6Kr>>d!@WfT)W6sU! zGP+Y~w|=xbcWz&XALgogzD{fZQ_A%U?h*Q{%eKPZ)cW-NaIN2I7`}U+bne{C z7WWn`C$F#KLw~HLA^UZ%zjFOdC}%fj-{SH}+pe4My7@!8UkdZ&`TdRSch|UZ=o{{X z-T3R+^_kbe1uhH?b8XcBdbcH#?m665y6;%WJ^dQ!3F+gexE^!<$tSl4B7E5kQTsLY zB|mibjQn|mygq?8`BFw{{zh|irxMZGwO^XC{_acB@QiJGd@iadPB}}gx8WjMq8$$9 z_)LD^O}LLUW~%GQqs3`|tc^<6(@(nlh7`IR2mWdHmqqnAJHPA4@40cxdGtV;UPiyx z)#-2h6zAtrPu@sg`7v4Z?vt8#xNzI8?5j}!bWe$TZFM!zv6hz~<8*Gt{;cWjG3LF) z<@*y7*x^{bVB(tbGyd)?a;M(8B%XNc!%tl`@xh4~hQ9v=-1P1EtHEEWbL@XvnC0xx zt)y=$e{YFXV*W@+umrAA{kCtX!k>1SxG3McZ zZXNbF6O7+({10ojmvEiOwHx!tA743j4cB2^Cw zwXZ26em4;2O?+J2do|ateY-x;T^Dm-H+S&sK<(GR=K7VNjQ2b}T6UeQ4~t#>neip~ zDz;$H{ol+3=G61jL;U^zt4mX;E2E2g3)V7k_-vRvjK*B`ICmFrZ^hjm8E#iE?)B@& z6mFkn?lHP-`P4q<)7x>=$mcD5Tq$LzG5b2Z+_SH<>p}MQ7l_+I?)97QemW1_LfI_i z+V25THr?zSH^{#666;A^x0ulfEmXf2(w=RdE2l1n`uA-8yp(vmHsb2It5Y}8hFl#B z>B^<=r|J6nH_uRWVz8TExcPXd?f)kGK1=(rB=LQ-i?5D?ZePUJuklgYhg*};4&C#a zpL4b+WWDp););UbcVpCr2hI1O>1 zkGOoPN#_f5=e%p38y!RLSlU}M78_oCJ!`PXudo{acyvX2tSlkjt}J+tWAV6ya7r@5 zxs&U)T!+5$tz2(*b}gelQT?rM&0ur%$0EbOqaC_5ecid&^3P0XANTLTHryJl=gw^= ze7FC?zWV4(*rfYC()tO~`i-kyzq`Us8{OWTe_rG2z{hd_KHP`?>RntvnsNQ-+~cz@ zyo|cw<|?1b(hgH!hQFSE7U%XPTz}!pqZ0RSjz&J&e4DkO-^U60{q{w@c`nS~c&#lY-*r@ZL_b;g^*zMX&#-0uF@%u9_pFTtwZ*^hx$v){c>HjjZO1)@4e0Cot6oGOJ21L=Lwl>Wv=yI zU*pSC=Xh@--20qc^1mK`zJJniUdy%L!_n(kWZa{bJgLWD3!iY`6k)l#;L`uwi{l0V zu)> z)f0y&u5@$HlEu+g!<6wDp913k8a`qEdgXU+yyop+{np*#`%k`b;ak7i|McAjt1D~& z^ZJ(!XMI=5^?wBW^L?%NyJ9#i9(JEBUENze&7H>k`M%csJ?r>A-}krhBp-fwcgPR@ z{^I{oy6wLIZ-)OLcSrSaxM%o(`mcSs>wokXZ)&;!;a`5|mjBUvJh#9<{L$6Fb$j=# zU$>{~7w=yAiVd~zf9RT95C7ivKYwjO`R-%OZf<@1P{-9*{PFL;=-|h4f9J%K&;RLf zf3jrw@wd=#MGxi1a%0=$H*LCxDbG8jhodh?-;8!eABjF5y<^ck7X8@&_Z^F#_TQ!c zzmKZ+jzt@xYxsOV+V#zev0wYbw-+rsH#;2-f9Bn-FYo!K-~0cfPxSmw^as($Klk~b zkN5ER#V_)I_t(=CeKLyvko(KEe#r&@jijDmVfB7{^iWh4xs`tuy_wPCm-t>CRr4Da zuZWV-{^)pg*CO}7-_q|G-*@vlq1W!Y@$YhKuRr=5epB<)P{E=vM_=XpLiD|;q^A~Y}#^fv|-z}t=l-jU3^PZcdDtQt)caneJyP*4PA{b z?ZwT}u9no+J$pKvQt|Tmt!|R|Km50^Vdq=gckLuD9SyrvJ3Cw3QwjHe9-I6*GRkt@ZwzTbyx3=u+Xy`a_M|@T1ifCg)OKVeOJk=g=#XR2@Jait| zx2wH%LHC)a2ihKKYk#!OC7B_OH%uZHkM2FWC}OCKDx3B+bhW19>l>1(u8yX7Wz+ta z-Az%}WpGu~+Hhc3!|q3dv+V12sZ`UxWXh$7xKjkFmWI}rw>6QdxbxT4)>vFzoSD81 zH~YF$P2KT5?H%z(ABlKVTi3p(j)qiAds}gwOx@kyhKtnBy-lf|;-oWiQ@o`!-qxOq zr`xyMfD>T>tlexQ>S$Jcf2Zf;36?RHss z$BHN(-_X|B($FS_Q@sIU`}PfM?}*2J>ArEp_Grsi#B~quFfktAvSI6%;3S=2E`5zH zoejIF5SL3>+BGi7D9Ie3Po1fTR8t};#d=fx&O2R3s@>amcBa~s$)?8W&8s>ec2Os= z#H!AlR)ji$6pwFg@7ULnaw*5^Vos_%JOefV)Hzg98R>@Ci$3=T* zY9S}CJ$VNqrtxjp0DvSmZ{&MjNF zY_N;XTWJ%)vT@tiEwwwVH*BoUlD2KSw<=p(zhO)5hHd7sdSg1!d)BSLe||7tStt~D zvz-!D+`^K0c;{*}lMg8C*4sB#ZkT^Nugt$)?be#?u$;6&lGAe5ebRmJy#v&53=uF@suuGY@8-8%28bl%l%^R8~6clFwNS7r0AUN`S*O;%*)$7ap^ z=&YF^pEdI%v}S&c*36I6n)z{BGe1&m=ErL7{8%wD33b=!(fnAgogb^U^JBGkeyrBc zkJZ}wv06JnR%_?S>el(Ox^+$Tz?S>BY<*};w52`X)X~x25$S|LuQs(Y^0hR^8#?wf z*tVsjAhaiS=#5+>Z{HK&*R-#_<3PCTXlUEp6xB3!>}%Mt- zuF}xh$PGwuYirZqhSqpzQ_~~SJss^#lj6yiq>D&HV{7~FN7A{((DXM?|ZS8HVJH1Z4I~id8#4RL}tbA*ii&j+A(VlAG-QF61 zw1aZ=vGkKZ^=oD~sY~bMJh`(gnQZqXoymI|_O-Mg@Wq?9u9FOoFKE;>xLnHe#%R?> zJ#w|0@@Yy%>$J`?0d)qSV4}3Iy)ipYl)FyAeHD;d{<@k?KIwbf zyJ!hk5v2N)yge;@Lt}6eNYB+9GiBx%zAVy=`u6$i+R_Eoc%rstZ*z+JQ{xsXjW_WU-~!Hq zx@p6P4e^bv%=|*9roAQIZL*@0b(LFdxiywsYq`($2@2jVw3q;GUbk~y?amEbD&sfa zNEeoBXx-RBZ`Mg=-c2(m4R^)e)N7qvzsf{;Thkuaj9nd_bV@8Dvn`!Wqc^olC{eP8 zj-WBa$?Ch3>$^HS=qs`(YnQt0Xlf-{`7V*ZdoAXxmNA>&Utb3-?=# z8EQLrMIG!~aE?8_OmFPi`Dnv_*65Nv7ss9Scsu=|l~I#dE%Q zH;9xJ-(Gy{>!Rf5np??}6eHX|&A_|JK(D&))vb0i6GiIxC2uA5@+{On4|N~6Mt2`q zf858d)5D*uSMC$)m3#IRKF-}m{+yqm@a@9*PrhB4|B-QhHP_$eI?nf5zSr>mSA4r? zFtdE$#`jnGcJC;BobM0wy^rr#@%?SS-LsAl^8Ho5Z{z#*-1y7?b@AfeTtCM3IN!y5 zzYYDp=+#7chzPlK9z}m6`lr$Np??_t2_k&Q+{KH(iG3ILJoH&~_uDS_p?{f#y#B`* zFHT`E#C`#L4)z`BC(vuyI2!!X#f#;HJ3_dxBy-M@@VzAbV;3%7d^ZPW-*Nup#ZO^> z6ZUuD@7?(Odme6G_rr@9e~t%7zfHnd67D47uEgIY{=UgWr5nG0@#0T-AiHGd;>DBL ztFXI=Vzc!~;C>JBF#I$Ba`ECPu8X3F$>;>} znjl`299CWV?-wurJBOdH{KtzIzjh<!qB;W2J*678HkM4>#u>aN8NDs2Py|Js6rFFEvy{om+_wv5u zZEycjg38ivnkr+=4I*2`_^sSv3cj_b=B2d*QeFp7TRu{r<&X#==Nmp zaAOWP47)L%4Q)*;qGxd3&`LAcTd#=jyfa$AI$D1N|G0Bhc|){eb+nQH-w@rqI=c6U zXx-{)-3`&*ck_=xtl@{KZ{@)DZEPyOmUQ18y)If8-4m^kDx(d&ymT)ckkwI5v@NQQ zc91KNL`@Ytqc;uLMm4?nSKM2%zW45^yuYmXw%)b|FH z9DaGl%f?>X`;wAtqWrU0k6ksEclJfmixOAXzpy`d`UMp)IJzQQk-TC$r#WYKdGGT4 z<%7#=mYrYPzqER3wDe>w6)TNhSTeli{Y!Q%Ni6yC;<3e_THL$1Zt)$9U%q&5(b+{` zUNo@i2>Z3oi?%PSSX8{|m5W}u=)a=b=pUjdqpw7N77g)Yd4Ke)(FdbnjDCT)*52x( z&#zIuDSCh;-B04yli+faeH+<8^f|GU;EC!D(e)A0=lzOTaK^ZR--;*toKCu$r=fW~ z6}>WgA^*$ez0())X8jfXFNgmv=YQ)SsNA&mj(B=-&KSA1WS`MZGVBM+j?$%WwU(r} z_V%@Ov%7MsLmBrk6Q0g@(vf4IuWPp(EBAD@wjPMw7Rz1ndt`$#?6}wtaJ+}z8Fe#n zA1l3+rB>aokgY7Nx?`o*?XsK2h9vFk5-UrgmiETZxEm2MuWAfw)X48{ZFeL4ym)K& z2N%}1cG0f9^CI7H8TZ}5$n+#52SV`avhz*KwMkj2`AM}5ahJN)a`8(63R-vD{HlW` z27?r%a#Z}#x(C@~e{e%)4e=Y&h<+In6}Ru*8x?Q8_uhrwVNiFBb5St^;ll1PsJpke zH$=s6*t%|EcNoN-#H!M*WcK*2$*d`ShTTOtE92Q}Y>8LBttieHb4UNJqk88}(e|wm zY^lslGMi{Jg`l_VViLt2!(G#Pcd0kcV=aRDp=zWvylY)}s9`^AXP2&hU2Mit6V}}B z;uvQgp|c!+f0q*)NK?043`NBq4Ua|}H&t(NE!u77#?xVmldN2r?>JqL#BrP&ATfzn z-15Btt%z>9g*Nm&{@rqm57VW2UFUkY0MbNv#P_c$UK3xvP4hxa9q&yL%8%x!(88zH$0Pl`=&Q7Y}dWI?IE>s!e0?F z2&Gz>mAIvyi$&$S+I4SU)$(xs&iLC`M5~HR_v|TJ;k+p8cl;f%H@{tB8A^ZBksU@n zD(PO;twDGc#RqU{)1`L0^;D?HS%b$s_Y1dP4d9Z#^x1W2^LqYEJ1jA;?_fdhHv{AB z8~H}$HWNCd;_iJ>F_Xe*d+oLj>o#kbw2>{n&~MG()0mf>&0U?Y9Gv6y9Fo4!O<~z8 zxt!Yty86f!*InUBl#Si4`=4*paa)IkFki@?5w!ScW6|dJw)SW{TYpXM(PmclEgDv> zTg=N?;U*EQTB70|n;G}ER$4Y(e#{D~lEmxK947B1UQ%a?&v3R-x(8ZQ zpd0$MtkTuV1s(Sf(&_lzBfFxwtZ(NRjEr^Z!hWDl<0M|yi%-*@4mvcNchvbdw;56r zCGTtBm9=H?(7NsHO+~V8yWQ_jJ=D^+c{8gSx?;bz5q0v2wLS9TCrWRMwr<}Z)pWIX zHi>mz_4akqeLVe%)``HDTif>P9v;0u)U->3SkDmKzAxIsB$Bm){dKGoWVz`74(K(@ zKmYe0y>{zt_xDSB?bhV(@1uIXR4$`qdhOQf?(dU&?bhY)?=yPs&Of-nA-#5IFWui4 z^xB=}bANxP*DN#r-Ie4 zkF~dzM&=;Q)-QEIiPp;V`1wy0*&6M*b!~AY`F(FwY9ocYmq)2>jTCNU`=d@{>-Z5K zNUPA$xW6IUqCU1Y?RABCf75{t-RszG-@D$;k-2otv5JlZ4>q)RH92E@Ym<6f-=1y& z)SmRkhHfq&XiLwixm@qpw42%(2iTQGsBP$cgnikK9Zfubpr?D#4WDhP^{q_}9kl-r zmNFZu&i6jBsd8eyMO8NxzTI?vA^p0w+rfCSNGR14Ut}bSJ;x3BLaHG?p!A&5JewZ^6gW% ze5YsQ2ksns=tIBKQas-H;AiqbdfV1dZ~XQz|IzI)efrJPWFO90ONKSZ{KFjW9mUaZ zmMVVoGrx8$5QZD6WNj&PZ_YPp_1mC_Lzs)t4<)&Ivo5HzbeG*(Zlh?+s=DKafA^Cu zz45(Y-*}?ttZO6HpZh}LkH59H`uDmY|3UMom;C+$@uC=7_Pe!~?|)dWwYc3?2FVax zKV3{8Ez!-~_2O=R#1;r%J+hQ*@h4)KAw5&z#Ch|w-}+ur&a1ba>TG`3$N%I5?nrRd z`zM_582~tvHT*E|3_ln}eLLvY9$ggW{T{v9cNa&!90I=THS9OBM-|_-l#Q>Y(E<@- zUgn06mXv!y7SgD5f@ete0wGz_v{;{0Abu;0rztFoQU@52+^Fyj(MUeDF{|Jgh?rK_ zO`-avD;Sk-0r!>=^Rciy4VQ+hHH4#IzF%D^&`TU!9~)8e-Li0g-HE=|y|-h<55KwP zUEiMCpZB%y&n^&AUv|5ABp1ppU8#!GaoFOw{TG~@Ww=UD4ALEE2$lz2P2Ia&nYyuX zbdR8lC`kaG_mVfum&+q-fnd(C?f6d$8_=}&r$MUMS;{ZK* ze3PFkNE^L%XL_jc57p#>3Vl9%`w5zVS3|38`Gn^#ciQnKmND*3-6du@{j-Phj>i!! z#x4y&T(EO>8Nd4)x)-omIv(h}BpDK7(r-?=#}6U4Jk%$`85R3kCtf#gi|OfG-AO6` zIL;mS%M2m2DQw}g3&L?6dO8VT2BM3Zgi2C)*xmlf5#kV;8z3YL9laE8WTecCyvp&i|4; z)oVa~grUajVs(3a(vR`3C-6`I>4DgRqN1$obWg(F_HBGqB`fbDVwdrB+3yBep=_6D z{l0roHB%?{@Z7uhlkE!}cds;Ne9b!W0^cgr3YqOF=1Dwpr!8k?e)HhMa~ z!{4yL#=rRPuN-*a&%bB$yAQV}%V+9`?_@gVHXH8coN~N!!-JdFZ(!APXGX)@)?{6& zYa===Htcby<(M41XDn2Ij&|(v&uNH*3sZygL2szc3Q~G0GTr%ifi~=7=c?U39S@Dp zEyZ|*{ivMNVScf@Io#SEE68j{&my#jF4j?g@1)arkUrw>#vB3UmYin^M_65hl?Lz6 z*pT}iGWZ$qmf^qCop)%I0}s><8-JdAh=js8<8Be^DD}lZogh7#!KQlwd3M3mV}JBK zuH(CAXK}o0+lK8ARM)bJv})loFw1`!@-Gv>z3!-hTaD-<)>>RquqA-FKf&JASmd{6T|04=HzP7EzFJ#}k{m&Lj-fwmZwn=u zq3qctHnV*F8F#mft(8ezvRzU!o0tUAOLVuWnFnupKRUugSa>E|q=lj7gD`yzRGrT+;&$y6C z{!G5--QI6UxV04vT;}rCEL~cErqD9uqAk^D^ZY>OSG!`?H|Z?UT+LeT%ujJvWvrW-M7@}X^xxj zh&zmP?!cV^baS|U48M)8Gv>Z*V`$xVp;Lp!nL9Y=9#Xh@0fUSmJZ>tECz}uOEQhr& zAOtM=d5=!G#AD9w{*Cr^g}MBOU!Nn$>C#|<@%gzGvoB>Ivh+EAnoBts zr_Wvcl5+8O&ZNXTc`DbIs^RcDgK$P!W|vjE+II0Uh$r0(&ONddC+nVPm7ZsJgZcey zT-Q~Xna^ZbH*KajQCW6BBHJfEM^twi;)WGu| zO>OD>Z)&^r_M6%ky8EU!UZs#;%tv5Tn;){2B`!a0+Us*J+WyAvwHr3q(bc<7cs+wj zM|&$1&N{`q%}u;HyPlcn-gaKg?X2@J`tZ|bZ)VSC^X3JfFQqruIjgA^>hsG1%EHD*V0hU$JLU`4wJr(;$C}5$N3pwE|!PKQo8cuvAkYEV~o;a zY-*D`Zj_^&yzLStC4aLl^ZVZ9wtKSjKi!@3DyN&CU0+eG%lm(AWcWKZPT6D{=21d;6gM(FNkh0$>p(oJ->s)HSRre_k$f&^u`X>e>->XYf3e^WbI@}2nTNA zw6|$z2U*CAPyYBf*b^23IZ*hTOYSeV zVkc`U{}Xk=!%h4oK~_A-!D1?!RL;(*nS@<{Rq?g{x7_F}OU>C0 z`VtpDT0RtZ34A^9y~AbPX>i_?>mX#DscrYIz_tFTnH*$(Zsi#A$J`4R97EpYUaa6{ z3jYl|-PtqU`yWAY?)V$#Gt1{RZu(pp?vLLEa9Ic; z?Cu>6=gz&0;oiS+?_9X|EZn;l?yR``%>?(G)9yFhui^7jKJMRna=#&c9iLb6aj#pr zh0$t0?&l|8%cq>rJ$yFtso~>ZR&U_r&d|BvH+~nN5Ayj9KA+?BXMDcS$K}aS_`H;K zyF7XWpH4nU`8>wwyL{p#@iqyr01DzY znCp?zQOIZu%ty%V`^anqGTV>LCLp8xutq`xGCBkq{R8V77?9BD_daFyL>|;2#s2<2T1iN1NkU#~+SA9qo?a9mgFf94(Gxj-MUBI9eS)SxuMJ?%V=>Gf~09c&ldhvMAJ-eHfjCs5E2vFGp! zhOO*r_7(dEh5RM^p8d$aW#6%b>=4_}K4PD;&)H#iq`a@XFTbz2udUD3SJ&6n7usj; z^XUufOYh6+i|`Cn@b+x#Ru2ffPcT2aiJGDEpH?udOH=?(px1+bPx3V|Uo#_s6N4Oi@9qvMR zrQ0#a5$M3`1dfr80LN&@D91&PV8{B6r}k7nh@%@?{11f&x>~ zY@@Kc0$+7uCe~e;%_5V9cp(R?7X%4Df>{U^nuI#RCA0~}LcUNflncpNd?AOWV+8^q ztWglknphoku{KuB@>w-2XQ_%&X~AjUEcS3Kg!4CJwO#gewdd@v zGFPiBq&uy4^1c!^=9`L^;Y#Z z_ICCL_L=&U`m*~9`bzpL`fB>>`-3LbRUJ{__4x zv?M3mPy<>~3))i$S`=fs|IFQ(dspuI+;zEYb64lC$X%9uWA4)2CAnASF3O#sJ1;jT z*OEIo*PJ^m*OWUWHzGGYH!SzE+|b-9xgog|bB*qc-50ro-Q(Tk+!wlo+!wgVy2rQ! z-J{*3+#}J@Mp#DF47Uug8D<$)<8Se=8EP3?<7e@!@wNEY_*i^uhNKJ$9@1MRgg`+SI$0}gWVKlLqKp->JhYumw4PM-g^6fMRR%ZGioi=zQIznL2Y&oIqc^RgOqbB+JNI!*kTXPvU; z_^TBEYZm)^ig048T4(xhIWzOIy@JVN^fOHwH`fvrr2$JOix|%zNvNXVbkl5uT8Vo zx0-e>I%CQ&5F(xDd?O8ij*7hd-rz{*t|^hT@0}j`Zz($RmV`x-Q7f*GeD|8PNcZHd z$VWGBihStABayk^ZjF2}tt9f=Cw4{7T(Ku|a$8MgbNJ!N&*ps{IWN35@&@rtx>NVb(L(ZJHJQ z-XpU%ys>rGo3l!0ZCbW#R^%0XW*w@mnbmrxZk8Z@JuCI(iCGuFcY4+it1$cIF5lUw zibu^pd`a-^i|0?79X)#b?2ETqX5aaB{Olbkmd-wRc-8Djp4l+_%_}y|{$T4Pv$G%A zI{RmzlGz`G?V7!?yK?r%jWx6Ts_SMito>^C*76gxU0J7RJI4v;r|$DLcdr{|Hk=-B zUKu#WeEp9R=B8y9^Va9%&8N$jnrA+|%8Wman!g;f$$a~5kC-D1hm-7Km>@r}CW_mNQ}){c+L+dMg{*A@|VYjsrAijxbYuKG18YT1V? zqe|{wA9erJj;MX7@}s)H*%Gzz+UKL@-L^Ao>SdKt$4lOe8ui(ss0%)6j55A>JSsBz zRMf5qnB|r4eJsTXMp`yUjkgHbPPQZkL|9gAin7#IF0}mgYLcZbccrD#wBGW0ro-~| z;e5;7*SA=lA^suOLY9X z=c1E+cSfH+@Mg3t{Jm)D#zWETu4;@@a7`S5cw-A!dN>z;fw zX1r@(%(jaU#mpSh7<0il$6})MI$}N^#bP(C_KAHeZe;A`Z;gxn%o!59=dNk7dzH*du12Her@T>eJ@UP1Dg3|JE~E$ikSj~BkrgXRw^S6_p*8tn7& zc#qX5!ZTK6@ddiMgS6%9+ad1gzKEr8zXs2M{JEC@3D;s&J$QiUue)sB+BEgJ`p4eC zaRHCZGw<~DiK3f7uP7Bgv_m4n{5$u~*6lk9zi;EWj9H<<`Q| zN@qih!SnO+^B?ZpJ}YKHLdbt|tzN$j z1|P)AW0-i^j9CdUvO#R%c+}Y7iJ{@MW;qF~jxU}PZnh__88?982XXr#BtJi-c=+() zqehJi3JSXT;)_E=Lt$q)rv7j^ARr(xFc61>gM&jtLOfaG|BV}`508RW!^2^t(RkTq zm+|lhF24UEUbqVj3qw@@i#siS6yD!vW$f6oaB4Q2weVDTNFrrf%@$G_7Z>+ecgQ2+y13gYS6z_!|5TzP`Q& zUw^|0EOBTUf%5kEH5f)=#WNhkA^iLeXimI*833H%QCAQpf5kAw*Kg>s;Uh+kRuox= z5oAda6oWxP9zAveKhM1&x)?`9ulU?X{4y%0`N@cy)jY0@i3(R1AW{3w)Fkq zremfwLz*N`5=RT_HXTobk~mSEAdEujD3tzVebbfE%0xUzPLL!%1iO2Ghc`l;-nC1o;Xho#KseA<$1&t?R0UvI2xOpzX_iF$^F;$ zjqW?zJD9h>=4UXUl*Yf*!REe5c|{*jQ6iJ$3@TJHa`o(IZ%f8TXdq_n5cE?p~4 zMj5GPk|>N3$A~s;CTxmimEyz@aVE-U9-az$?L;7hN`Gzdq}~JW?d~n^|C{;|`cCy8 z>&;dcDyx<2l`LhplBOK(ouzD$H^@`5El@I*A@UG;3brKWI=quel_M3qvR+cRdxX1% zTZOxX8-z8&Qq<%H(go5gd8ItBcZobkp5D7cS|N?aX26z+624ZLEZFd5d(3^*jglQG z)d(pL&$=@OtH5j9yDcmIXL?`my{=d4-S6J(9_4Az#{YH>|D~?)QSMf5Rc=t$C_Ils zpC^}cmOL9<8nz^5K5`YQY>?D#s-$iUv*wbqlt`%1F zE|I2)Q^b{0sUfE z&%(L&W$)JBtlsIp6M9GWs%PzByXN`CO`80l+RvuGTjjgt8{{=uQFEbuy}VjlEoEVw zEiaXMZg|~HmC~dIsH+R4>3ux?nZghuNt!R&rDMG-#g)jx6ft!m?JJNw-V!~n(9`w? z+Z}ItAvindi8BYe+k#f%CTW!uiwPUv%&7-qO9fdu4ZA_k`|I-KSi~T?bq{To)NOxz@W@xR$s+G8{03 z8QwO`bM40)mgz2k!vxnz*IR}tgW%e0ICbty!?AOV3`fshu3WC{!8RUSrD3RHt)a~D zvSF@ao8d;o4rPaO8MaRMO!o$NzuYJH;^mebuef^T5Amw&Q+b~IGwCzwdu&VGKZ-vH zKL~#cp9|-O7ll(jC#4UhZs{fI4e2}Sed$f1S#Zfu%JuS!o;G<&&;8Q<((Bm%Egz9< z#G32&ctq z;+FFr;?Kfip+x#g+9&Q4zmfhawTi7`fwWFKA)XMQ$M&xDs&q=YL>PhXHSrelYOzlI zT8t6Hv1aOVu|+&4Tr3P1zY>>;hs0d5QLGjp6R#3?i_eK4iy6X~LbUiV@eAP#;R@lX za4)ulScCOh@fFb`ScHFw8^tQ2N@&2^tL4I@LamS>yd&H$+>E!Fj|fg-v9L?HO?U=x zGAUX_4@h@Su>4_N(?R*}_6$wQ#*K8*j!I2wBPo zWxc#!z5v@&-ajd;lvxTtlUFKJa5e`?>gJFgvJbWu*v4YxeU|~-p3cAP`{U#g^#AkF z-$$a~*Y)|HYmojLYv^Cy^Hq1F%jBv$H}l+yuBW=L>l)Q{`s~rO2hMIkJ5k|x8oGXp zpA*;yud!n9arXiD4)-SadiM(V68Aj!boT_jUKHG?dXDvc(Nkl%)3B#!d(U#iFNXUJ zpBO3(?-{oAbQ-QPoH4{29yi=!IBl3_*wk~%aEakC-ZlPY*k^dnaEsv^!#@qJhN}&A zh62M0!`Fs&h8V-UhUX2(4X+x)4aW=@8`k%HWmsnD7yHCN#a{6b;Sb?Q(Jg*1{x1F? z_J|(}9}4Z_XX5v0>2C@rg%8lSKNY%#mxMQj?}Yd99{WkWrTi6V!8zf6;orjR!V#eh z+i!Ry-6lLCoE5$mUcejgpV1~;gyF)9^GnWOrOZ1&{rrUU(aIId$n!^)e<}AW7b(K| z6s25wRH?=YyOz9TX;_RSm5pU z3$)6EXqV5T9r_EE!p+KlrC50cZ&|C9#mX+_E#(;{N{*5@D*4J@Wv6nve7SrR?+4`Z z@=)bzWvx=CT&X;)EFehf15U@fNty)BaYYXXe+N zH1x?+J$>;~^v0*UR(bm3SrYG!S4vZGo!s7aos=pVJlBy(^w8Ie*NT&|Ey2d`1rl*( zQSS%TJApv-#q&ff?$ssQ$rXK@ugd$)mK=eA=jHTW5xGR!eNXh=3} zRd~;QsdB5K(6B|>qFjj0*N|t3H{4)&z+g74F>E%3DxpfYVWDA@vPlWT=7Y^)SZ&Di z+$YXft~aC^HlQz_ifw^msUZ`6G4Gf8cB7{szXv_}UBU(OytC8KPB=To(+`h48z~EC zc@NB=1(x6*e2B10nB{p6SSj%K&+og{`*E#L4&?Vyc*LCHxeK2}&jp@)aj$0|ssE$C z2m0drCiY2v{c^wjm3wv1((@tRMXo?smZzuQ+LhHcy=!6@@1cb*x?kaaGqyhIPpMb> zQF2S4OFhzu(wpL&;(30p7he*e#O9LDN%xEQi(T06#CBF(E_RC7;OZSK^6T~`*iK0! zr2V~5;jVRbZ-=nA_YY6sie44>68z4gS^8A^ZQ$OaUiwvfQTjLT7LG_YQk(RI=kDMa z&)vb%p8Y+0d+t!S^pq$+dD`rzo_{Ky7OSl9IiY;5tW#ppUY}Q9Rl=2H%Eii8$};7U zlB+Z-)yiW^h43DF;>U#+ak$ukK9k>1?8EufDjXNCQg$oPDIY5t%9l#C@&$V4!G8H5 z{$9oV=;yY`pItD)8R5P}uIukze-ei^s{lAHIir;xgP}@V;S zLu~Tg2?xnr&hcJ%y}aq%Y-zTX#h+!+_d4+RSbqP@?}&LH%Q) zli2ny&oh{0k`e_)PV5VNfkx5B>_{;lvo5B}%D|2+7g z2mkZne;)kLga3K(KM(%n;6E;C{)D(6o5JHZ?XkpV)L$95VCs!=Z6DqmcSF(LaVw5) zjzgGn>t=3^`_TWnIL3CwJ?j5z+(*;*#$9mdzPP@R4#Xk8ILF>E<1Sm=9Jjfy8Ud9WodyV-VVbE@s=o2zZNwBBaB0b>r! zSKVc^yzvhk@@LDe*lb&!@}TYO5&5=#A3tjI+4Q*WUonL?Xa80k@^1U^v0~fK>z}tB z40+LZL075m=}%s^&DpWbc0PBv4dr5cFX~O(>zC}cl^Nc)J=5_o+ve~0*>3stecNQG z(}ps$rM~g8t#0>Wo1whkHhTBxw%;ngu;st?mF=gRCL7Ar_SrW-*b;v|X1l+))pmVg zo9&A$PTGE7^oMOn`Y9XA+V=VD=WLe7^EOj&ukFSnX20=r(f;g5l6}lF#g2NgfAEx# z{pScj`~1&`+P}GDn7w4g2z%k40DD!^C_C!N?s##Geaid`>}T48?7wUqXJ^)6yXE9X z_UE3t#E$y254M4V)yXk0{Jbdkja%P~xin!S{vP8QLm$iSobhAa4a$rkW94}_$2PsY zBKG@nS+Se;-5Wda-}lA#*4-bwy8Hgv$NTS(?R#5_{r5wsV#KV{nCyjfV=k)PAN|mg zsnLPk(=9XZ-4Io}|NhvepZ_!Vkv}%Z9+{FId&>hEu_2>Z#cpc5A=Y%^;@HR!EU}hX zXGE8mD>2DCmc;~jJsUIT&yQjfZ)=aqDe#T`H@|!ToYS+%0#* zk1g<^+O0lt%M#hfsem^$-^pMz#o}L^V zS-CCNTs$n+QM)KM>U>V@+^8|Ji)tT^eeuWZWA8}0BzDTi=GZ@;jfstRhQ*dxUbZ6d zA7Zo;&RN%fjHW`{zRAWMbvEV{YB5l3KEA4AXQkWbv-FCCtmB9I%)Ad~=t5S0;USi@ zb)o9t3IG1+7p{c=Tj2k78?%nA#Yidm@3gb{N9VKZe;s7bKjt&*&iSlgTF9D=hnQ*5 ze>waI!M`2;SHL_4{}XCiCj6JS+gZmy=d-p02U&}IKFfb%K6|=*0qdK3h<&tWApTrx5EFY2U(@O0He8(hLa1}m}!R`A%p(&;ok)Rv*9-l zW%g8~)e=_Q|qCjtlY!{4@A}5&mWPjfY7)z*0+*f7HEW0m?An&Wim%X4UXt{`f(b zk-LC>zv>XX>>>DfApRCBW3R&h`8dX+;eXcw=Gcw&e}{hW0)(;H&in&DW+m|7@b*EL zxM~6WVC^Bt*gP-)@4)|W@IM{?8{vO1%C8aScNlHi$IgtSKV}`sf8mb@S;LhJ*xEah z|4r~;iuj#~{{Z}>-q|Gh?>oS(@4>a+EY$BZK=~x$!zQe8gYe4rjPe@Z2H{gq0v0EwUUY4G9xRGg%6d zeTtWLo!wsg%i$<9~pVc<=+||`HAIZ<3S@~Y_%sZ8^ znLZQbnXT_1o$+JNt{D@2HqUr|?bS1GYn(Jg7KIu4hwG<@J-TE1CWmACsh-8t`+uG= z-DqXgo!gE?oY=NK!pG={_-y6kh^%!JBE$d|am%73(`+|xpCKXS#*3$|b3V2&%C5sR;Qcm9Mcywm(? zeS)dBV4`WXESTmzabjkAN!85e8=suXKRWi8A;ju;$o_7~zvlyG0|)*(FxYeKZ%5Os z;bpGE^4RM5&2=lVk|AFc1b#eB9a*5dyYr6g@VTkKB*`<@a}hpRmE##)?1^h20fY09 z2R^Fyw}YxZ?)i{;ZHO{PGGuL7buC|g#>mGVGZf-eA!yOKBi)0){11~D`%XYF3Dbn5 zB`|lv+ysM$i~)}rp9(V-#t4IROLuJ@+<)!W%lNhRZ;z>Nocy>I20zc7O(zrvBT8{^ z3ibN&IJjE}4DSaVFzSzgVd^Z#OkSl3%DZ?g6DfB~`=!V5g(+NZFf8**j2g~ikF)K# z%RY$FbS>;8>tyFKMz|m5JnSdI8gZ-&ZXSo*74S11ey<8&98L@V>p$Fnk7r#U{;5^Z zr&-kzxqSM*I+LG#sk1;lD`&1498ls}tL&~!)C!scdSVB@(*|=b%qa}E#^={OKb|`Q zMufr8Vs_&ud`IpHxPwWDc@kzP%vTTg_aBG(6GnWfzke*u!s3n0^=mZWNdy zFupKDVTQqsfEfuh7`_Dipy6>1+PU(0x$?NV^7y@v^R)1Kln3gPs{w|O*W`xVIUB5N zZs$Az#t37DalrgPbs)l_j8-EfWd0R19zIS5PaHD`>_ZS4KcV_zV&Px}%hE_5 zJ{#!yasQ`b2HQM7PuR~5J|F1$oyGru!2ANk!)S&18HRtaksJQ|NtJ$lO3?E=f&cmU z8GrQb{r~^JUk9@I74$P0d(> zJ+=Ik&@rL`S$L0fDhsVa}Vx02Wf?zxCu^C}Iws~dRoV4kyX3m(o;!?))co%_R zJ(Tx6sYooJp;HeHg(jh1Oi*4^@z9(h>WrKQbXAYAG9ekmgbuTbf)RI&+u2UR2~CH) zV%$~aK=~Iv9nc_DNdYtwS`013rL7!Vf=H{NWhfOVv<_pC8lZgIP&33o5YG$HU`!$E zgochqkA_|>1sVYL!EBpgXe)HJP$tA<=FO$7lvP5*z-z~0MiJBny#hQ0vvLx!ABary z4?bjH#4w?yOh~{?oiyyH7{Q?V6OnFc;UuIRT0I$Qg|?zrE1-E(kzQyK%CMgE%Mm}D zBqWF7i?GmOOlew+aNEOiH-+Ot=z`m!ZWN|0A`Z;{351$0c(#Ss;2nwynuhM#&bbw3 z14w%q>!ATFkv?eidekwrC=2OBTL{iZnxP?gqs*a2P&2eH7hyn4?o($@rQgrk zPi(iC;J~vL$~PaHi{qJ_kY;GW19%3420n;#gXTgf!(Az~8vDTysr3>Mt;K#28c7p0 z`*D;NG=D47fVL<kCL1v>uuRO?(mM1#O2GLbG2& z+MylLa%jy5Fwiik+U5)Qqb#t`-#4^D?X^e;H2Y(exq>!$2x){`>fi?242^(VKT*#E zpCdSi{q%aYGidRrXlKy8&ro;J>dz4t)P58Un*0UQ1uch`@cl;Ep`rgqc|bFo@w^F5 z_yKu7BC(Y>5URt5VR~tV4+ZFtiV=FyTw+Uz)aW=osaT@ z)L)q~psr=$k|D zLAgM)Hwr8QYW;_Rr@To*6?7xinu~bB^P!2*dgw-BifF%2U@6!Sdqlw3cgutlXeRcv z9~E#N*eST7x!4aX5Lf}!zgS=;&{Ajx)P$+4HBbk%4%!55ga$u{^g>h7xpqL?N(IkU z(#Gvb?@*M_n*w_f=?bkB@QgM|XxxMH0e9{d(7)~!Lf=Aqv2TBurwjRj?q*ZOs(k`W z0+-)Ix}hyKaE}pK@gE@F*w1q!z0m591ok%kRo8NVlLVhbXpi7NpY!l13U$z8>?eJJ zd_W_1=a*D{s!$5>i$+>E@*r+>f0aTeUEktHU5b5hqfF; z`9tH6BmL0ERsr8Ko+#w~gmhy+_h$h!U`tuRF9Mr@>soc2z|z2LPx5-2C^Y|$_JIB3 zKLwTtO*$p8BB=GWzzzzRNpdIZ1zKTZG6Lu=3De1ZnK(O#fs zeP}OGH`E8$?gTu;1VWuqBQ#JDSs1iR6dC4C;v5%Q613D$Wa-exp(4xXIznXmP-}q5 zN}$0bMOFa~8Y40%wCDnnH9`Z%iL4D;2JM74TqLqU+#{4-BC-%@i&11IXvjp7EkVAs zp?2&iPC~rUlF5h{>X;(39BB4b#LG2QWJS;hXel({a>Ng92@_d0R1OzeE$0y;Yk;OK z5?Ked@k(3-ac|PT1nGb#Un{auXyA1s>S3o4pCq!Ya6S|*6>(jiB$Qz~aWv|u+#ZaFYQ6A7DXf?F% zC6U!Z-K9tmv}Fg{2{hMLj^1e-c?4H1ucG12p6p)C05u+6ZkviSmbr;pS)?FCXZ7)OW;bv{&#H zD8E;&IwN9Y%oH)A6Y0W!J2V)Y+=cUn>p7GY)YXmhfkyNoebDSalnb=9AN2&SV-i~- zl#8LFs`-+{9NfJku|jCr5Q&vS^CBcx&)v_FSS!>tS7I(`P?W@c0+A1k#DbtT&=6>R zw8SEyxiJ!(fPSR}YQcVOti5mt$%KwZ#WXkeVg3ZP~4B~}8hUm&pxsBy96xqq_{ zXgbu%-CZrQMyUN7iFH6-OC%P6d-mdMB^CxPOF}%*_N5X_hnjAXSUx`vErk{)ORO5| zvrJ-jP_|rRP0*qh61x!RTg6I=wPD}1O2QkvGQkDy#D3api7gX$i_SH;S;R8|yH#TT z&~j)Hv=z$lgA3P6xQ>(wfwxKQ#)+X)2B!UQ;^9C;;LedHF%z`pVF~^4B%uRp$A0HF zlnX!pti&>)8P7>92b%H<>H`{3F5&)nr_k{l$_e`&xXI=B14aL|mslo04$XxI9gtWtv;bNL4a7}$6;wVbv07*;v=N&8G0GQOa2V|fTJ$N} zQ4s128U(d|Cb3XxA(W@j1?AVjl+Pt*2Cso8KphPdONF|j+0euWDv>ciTt%6oTozPZjJ=EBba)h=pnYHob zg6w$)&Ji)>3D3aEvdjXZDI;VS3e63WnF;C|DKjh7JXU6jQ2%iCbKeVYM9KbpoLe+tQHzJN5*UYokBab3H#=`GTM15Yk|Ix z>t}^UW-Z`tF*0k17TfT!6^!%PE;D~ z3oU`RK-;11Q1f##b3+qLWEOBS%Iig$g+SY1LcGxU?T8mz0!@Mjy)3f_aeXK$lUX|U zQ+CNL2kP^R%#N|CVgMd$dB2vuTlT!4DSZ{?g5xe|5j6cZlnb;NS_Q3xI-vm-GHZZV zyw2;VObB@c>BPSIO_UEb^?j7jC1?*Hpxr=|oJc3M^CP4a8g>xrgywyW@_`l~l35xw z;;_szp=GVI=eko1&BMO`&nPcw{x32sg$Ckby8@cjF0&eFHC_hRLCtsp*u;B3(w*!#Si2>J}6h0xibFx*2L5p|AvKe1O7|p@E|nmIlp$^84+; zK!s&uKNsqNHjGtR0W|1B#q(aP1v&@qCup3)-nC8=+n^;l?!H7}RZ!DJh1EgX6b1J~ zOlS{N*hX=pP%%yM+#lB9<-j9&?y%2LFen1<27dfKz4|u*+|LoijW@$XHN!mwFGZ8Zrvyv^IY>8w`f=x|TGO-k5sl?KVr4!2_mPss| zSPrpVVh&HrRz<9uSPd~Jv07qv#2U!fM7Cyf z*Fvn7SR1hpvUSo?7cn<6hDT)nL(3r>UY88E9AbDCGT3s61rsw83n3OtER0wLF%vPo z#283{g_xC?omf0EyuKLlkxaH!vZcYMwy<Al6CDMa)eM z4P~J0W!O}|KE(Wq1rQ4)7DOzVn2}frF+64u#DNFwfjA|Ev3g<+#2Se;5o;#aLadco8?km`9mG0`xrn)mF+6hdAFgGv4YVs_{=@=^ z1riG)7EH`YEQDAnu`ps0#7xA@#4NNz6seP0Vw(h~*K>CsshLkXRA1Vqzu4N{N*bD<@V#tddw2v1(#9#GJ%xiPaISC)Pl$kysP4 zW@0VGT8Xt0YbVx0tdp3Fn41_=2Fp~2ZJ@6shKG#-hQ|!g4{v9Q@xK@HAMV?U8Ht4u z3nhk!h=K6%_%PttM9fUgO15~iC6K#BVoAjK-y-=>WGTc_iKP)sCze4hlUO#f9Ade| z9K`a7CCdU5;s+Mjku`*)i#43nY600IsO{|8PlUOaWI%4(28i+L#Ya-T6 ztc6%Bu{L7u#5#y|5_1uA6Z2%-Q!{+r3;*FMkZgglspZ1|+N&N7CT1kY$HJ&b!{}%P zF*DgLbks^Lo^1Rt#e7F(iNunKB@^R+N#;8uOC^>@ES(ttOEcdQSthY;V*KyV{D=OE zn1fgzv3z0$#0rTO5i2HELadZnIoT@7Rz>cri8;wuOGoR7HIS`|Y|Z4Zg;*=GHewxQ z>!hPDVs2s#f7e#a#fNPCZ|o`ygpGR=Sr9QJ*+S@OC^7!`c-2P)F%vQVS9&#ME7|OH zG@e)ju|#4?#FB}n5KASNMl79J2C+mb%i%tg#iZ1ANK?!A2mYt;ufwFdo( z1rXz-A_m$Ev0!3GVj;vriSZE>11*P`i5MSOp~h<=W+i4P7EdgJSR%0`VtibN8eR&q zRAOnw(urjd%OsXfEQeSwF$b|cV)?`hh!qkmB34YSgjgxDGGgV#D#=zwN2`g|5OWf% zC00kQo>&91Mq*9Gnu)a#YbDl3tesc~u})$xVs2s#BT3YnkzrF?1Ru?!GQMP($^wW5 z662#?RCmF|jKo5S@zF49X~A(l!kjaWLd3}TtY z_}CjYjvQjS#2m!(h~*P2AXZ4Mh*&YP5@Myq%7~Q{s~}cMtcqAQu^M7dVztETh}9Eo zAl68%iC8nS7GkZ$+K6?Kt&@(rh%t=vQR_p7ZJ-Si3m{t{9StJJM=q&;L+EHIu?Vu6 z=%|^Pm27-`lNxV4u|%>Z(a~gLsbou|qv^ylh-DJXCYD2tkB?I0br8!VmQRe2pHkfw z5-TEBOpK4OQr(pjDO0t0PuVtbte~u_j{8#9D~8 z5^E#YPOO7iCovZ>H!;u02G9_2^}`q|HO)S-scplb7#~5VvOr=%#Da+#iG>ggB^E(8 zGubTU&Pt4rLsQcdPb`sad^DPRG?^G5nWnN-Vrj(EiDeMuW7pIiWfRLG#z(ZN;W>!q z5z8l5K&+5hG1*GVRz~j1iSbczY8;iss)$t+t0CqjR!gjoSUs@@VvWR_h&2;yA=XN) zjaWOe4q`5{x#=kLA1p~3HZ@0lq@G&3SO#-|1rX!o_f&U5#Da6g3B(eK@iBsGT9S#S5KASNMl79J2C+1YG7Mq*9Gnu)a#Ya?3+*<55} z7?Y^hmJFMkBR(!tW&Xqhhy{@?n2z$1ld6vpVxh$NcuF36YKhemt0&e#tdUp~v1Vc|#9E295o;&bL9COQi36YKhem zt0&e#tdUp~v1Vc|#9E295o;&bL9COQi1YSBPGT-%ZepGfxuNNxHDT<%nsXo623ixb0Ahi}f`|nZGZG6S7D_CPSOhT> zF*7mDo*hVwm6)AaJTd-twt;pLgZ6td3X%*_z1KLbg`e)G}=&)=sR0SSK+T zF*h-W85C+8l3^QYSH%2@@tGc~yCAahSs$toBe4)-p~S+7@%bTYC?;ZNVisanVs>Kj z#1e=l5=$bMOe}?1DzP+T>BKV0mQ6=&91Mq*9Gnu)a#YbDl3tesc~u})$xVthu9S}rnd z1MP~KKQTU2M|BrSEQpwqY@uX}Ae#v`HDo@oM-9b7%u38ojL-W~-6fJOnQWD%u6yYC;qfBJU#p7K5Id&alZ_X#Ym z{G9MS7TbLR%kaL0B|5hYJA{{oC;XoDEA-pq_mp3e-!{Le{mL+vW|!~^76{)hJmXjF z_p0z3K4AAcmWqB8OMC7S_6l!d3GuhFaQMHlg!8*teDpoxWxsO2-F~n7z2;Zp_qyL3 zesB6!`t9-C>-UylmEYTb@A&=8uiEcjzkPo1`PKNn@ArY ztGsA<35#Jj7>*h~8}g~&v-k?i|F^%hzFofEzUO^6`90wGpx;A&`F{PrkNOq(eeL&+ z-%EbG{9cp45nfOZD5n&@y!Tk~w=MdMB^Fz9aJm&L+Z+JHUhO+wO12ZKd zI9g%5j9AO3tyR)HQAlF(^X_a3}pIv;$4U-$;i4IhFa2|Y#-1wACx` zx;5lF?w+?jN#J9t`R}DI?E`=I4(F>F4aCL&I4KF4XsH>9r2G3(#(_Uqf*-w#`@`%6 z7zvHSv%_BO9KS&QJ{1H5fPm8Rc6$jY@VyS!;Dkhaq!2S7&- zg5>GQ_aJ-}w&v?MkW{2XBV8bkIx;dGvk(xi=H`k>%x^%_G*Z4Aap}nO37C^aBrAIZ zzW;@&2Yw=3=lMw4;6A^T;=f?Hv7*$pkbg$ur4qSkRo4FqXZe~tGgsfiM?|T-M%ALXJE z{zM{U=Cl^q`yfR+V#eKNp^m(=VKDB&@;T^f87fuNbNLv|0Ye$7aV=kwh3|n6o?(N& z=HfcQ{~oKQr{$)<=B8gLyB5KQ;DuhYjuz#x)GSlJU1KEu4Gs zR|+GHM#kef|BH%7g0A)sXWfeBYc{N2&2sS8QFY_l)tn5}Y0p)BUdx~xe)ts-{+?3{ z`OyWKbBI)GL|B6o(~-4s!{451Zm?paXQdX6+z1jh+}q6~DEUMk8G-w_9Mr4kt0Wk8 zsv`k*%w0lRYi|C9*=YQ(RUx?RAuZ&SXk&Rgau4<@ zb!0p0Jv7|g*HGlkq$52zE6qCcD@eMIIFOJU9a(_%@=k-OHUTgzjV~JMk3Kx`3g-M`2z9rHJY?=B2e#q^(Kuh$l$3`e`*t$h#fv7S9603 zq@U`BKV|S$pR~BPAp-w*qgj{CG*TD*238gH+*KXMp{Am9Ak~x7UAlE*~S|A6mIyuV~v!6@EOP& zxebKRMb=0d!r`-$HS!hG!{;Y!q!e!WOl6Jug77)Z8X1PX^V!83xf6uXGuFsS5I*Br zBgr6q?y*Lug78_$8u=WA&qvls07{k5FxJSkAbhT|Muwp^@ma?jNroFf|5ziJg7BHh z8tF!h<8zWVat?0z>|~8BK*)TavPPzX@EOY*S&p{B=PYaFT@XHdStF-F_&jEfl!5RW z%^JA}gwJi($RZFv%UL7MAbh^FMpEV>&6xSDk!c`&4zxy;1o#?gz3Q3rZ+;!rk-1l6 zrGRB>TUFic3_}g-$P*xZH8dWw>So?T^mVvCX>nbM)6$;m?Z$x~GJb_OnTlQ_MMsRd zHr49LNnCgMifUS1eB?M^TTLU6@;l)yZxWdSa<@t(#(&?9LaAnZyIF=FiLbq;h4Wc5 z%K1KTaty?Jzc+amWyn`((|p-4!=1xGTq0Y(d{z4GS=qOHBE^4d`5c*qyUOiqpQ(~t zQDS@sJr74s;q$|BUKFSytAzh8E&FkAvhX@wg>`A>quu#ROj>%@qCWYYN*<3IP7u%l=^nRnhZSbQE;OY9|FsdC8;KhO_fr9?9BMATkC)z@LT34UlWWPbQz zlzhC7lx5jK(y6BpWx_D0KD;$0J7H@LVB)Hk?O|Ato>BwC8O4gC_AelOngO;1G zBg4>|Xfgw>C%zM5SQa=Z#NSVSEY`;iMU#H zwT{e3$gMi^B|;7;_6{ctA*bm`CqgdJ5!VKUtRorOcskaR zpd8$NJ?kCvrT;)UIx_yBct+EaDM)kq^WMImN65`OvJfE$lz6*IM#vdDawS48(UA!# z`34>7M4!>BBa0C`Ut3YDuOIKi8xI{>hu9Ne^ma20CDyJZPoTv38jM;vHpI?XW7LR( z6b9_@CUuCtKu5|^UxhmI2V$?(k*^VZqmJBwe0A!`Oq5~h%ieMEe%GlZO^DsU%-hX; z^ec(FUh7??$7iRvn|@vwI^sflEIP6g=}Fd+_4lBBbmT^mS{?Zn=?UEB9oO%OJ@^%G zGIAs8tK6G}<)SCik=GG>j*cvcuSy+R2ok#6JDl@~y+TIWLucFtyNep7I z)sY6oUaupM!A-l4WPw;Jyu%ra+9}YHnTWmNb#FJ3h~4zAH(7yjign~TZwWeLao~wV zM?ydn_IZcH$8eVDNYRZTA9%Yta52h9N4~!l&kj1`0ts_^`&xD(+Vg&IauuF)n{*^; zEw0@Myxn93qVN64n@kyxJDFN&NBj1If)#(V9&ta{HynS6h4ke}| zA0o|s9aQbi^;?44(UIx5p^qZ6ItLdoub=3#pF%G9`l(ttQ-X0e9q}e3;U=)&o3!v; z=!kPN`gt7*Qjnfcy?qs-RQZ~$YFt@sal!Tasp)wI<;>S>)zb4lN|mqNs*w+PsUGzv zFCv9}RaebTJyPiNg*Taw6qxQUt)u=0U~*F zbRFu8uOh3ZCw>&J1-kZFPG?(ef<7gXv^;tC>Jgu+0^X}DDW@?GeKrTX$ z54zz8V-dSqN4`XB$V zuYjwC6Q&?vzj%{Z(GvLTxSE^&sCT|ju10=Cz4H}wHS#IyJ>sM{c^$Fy)pRvC35Y$k z-J3X3K4u;H6t&FP-qn2h@Rq3~5^CqvLPWg(ynw$AZp{d84{DS)8tNm(joJb*G_g5p|A%%PeV2zwZiSf07HPVa{ z3+VSIHAoL%Cs=cHD@u&t(Q1Ux?he$E7L-_sj$DNF@b!f?U%^OEv*1mxL5cCThq)WI z#BN84@l}X5Uuh^YzLbteZb1s`bYwqDjIUL!xk*L}Q?XjHMs}mb_&UZK$wdnJipCmw z3@PMm8*AhIq>m_TxRwF%p zI1#WKan23(z52ph4N{}n#&r&YYWz{BRxnDUzb^P z^EJ}LS7=sA)_Si$<)BJL-jT4gNFiUnS@R{M2jJ^CYvd$SXu*ok8aaX#@-?0{vKb}T z7VJ&)RE=5e(@EwwOouHi@P`-d0-^^7ObkR zxfzBw#@E@_$dD++b%i&1Z~{s`+?%xEiM~Nc=3I}KsUww0v;Q=2Uqg_dU>)f|sq)pm zwb(C9MGB{TlW33v9XW^;7VF42Ak{ju6FpnKj=Yc9n{{M8^3K;3*J3|^F;ZyqCjE## zUPo>-ATAww8Kq&4^!BymYSglh)ZBqI>&PEhq26`mFz$q_b>#bvs0$sbMoycE@Uwdj zs(tXMp51)jn48@2V~cQCz*kMza{8?ichow-m~VmdMz`mHpamSdb67{aYAN@weV(-6O-3gK%?@eCBalZa04_Wo~ z@(R2Wy2(4_=^zdrxfSPEiH=CqaPH_xKF+U39XW_vZq1a1e^sr@+^p5N9H3J zi8`_tc~94o1eBOVN5&yvB|7ps@>Q)P51`~5bz~$+hmK4~F8o(|r}(urIptsP z(0nB$r~Eq}8tFiK_!m4h@&;;$f5Sr~KOlDgH4lwo$#GVtBg;VAbmRcaCwPyyuW2AT zI&uX<=HCa=LjG_i&ab`RVkinM04YZJ2d`{5-)rpPyJL^fBU8~fd_MAa^CNox1RZHe#d)eDLy<3sj@*epyhKNS!&3?WvWr%Re9icbT5ocA z9L_HtxfA8gzXPNB;^VYa4|BvsFNjvQAW(n%6Q%9bKulP^A-3&uHm+Hs?l(Sn$_Mn`NN4$Nt;|VcA zN3KITJ9OlA++&yM$PW|nq@W{XlhEdM#EtYgb>t3QVe54y<_?t4=icd=36e=}4oJ9qC+#JH0Q}kkQTHcgx)b9Osyl|+yK((?dF3^ zad)aCFHc2j=*Ux{2>vT?U%pr1ywH(wPQLbbV?uh;zVRl1A{_o@A+5EHMeI3E-sFKP zaHAt{g0$%fpX2QFt+%fpkPsbt+!y7eBRfG7bmYhaoRvD#4w9`S_u%|;=*UesO9(#Y14ZOBErj@*GhlYh-hOW~n)=-GbqCgt;Rx2z-YAuhX)B;JDS zj*e^u;ors5LOuaft0QlM@NZ^mZswrABHFykI@Fg*M@FD!2BC&{FQV4hanwbX&P^st zo_~c)3;9Zvyz5tQavo<~^>5zfH| zy%^U53l;;{$hY%xjnk15lylMl>Fis;B&(`(i-*V+lriGt#@9$lM1teIG6D|7p6Q;4 z^e|(04+BD|sjfQJT}*XVQIGB!1riz$<_C9;!T809BQmLpnk52kXN97_{JJbp){AV1%GalXQ6&}{K6vdM*Un9Ay=b*ZjX>V zP(NRfkT)QQCq8ER>_TnuMYm9gm6M?le`RSdfJJmTLT*AO^ZmDw=L47p@Flo_dJJmUpfPAy2{dA2!yZM1+sdPfSilA;QMz0IqNr|weSL7Kt2g=!#D8)ax1hA zU&jl`x1Ix<=UQay`H;HR7TJPM!8i0mtn;A5`I=rprcesLs}~TSv*ZhVM6|sUl!9;V z1sbSkd37%!OOPMFzZZ}fosQOtkZT|be48)OoQ>4^N?$-e0_5P?ifHQB0=Yjz&Otr% zO}`N9Czqk@=UC)!@{EvUlW4&RIgGZr zEkZ8qqhCbGdC;`?M#y*2zfQ&$0H&@beI6wI)Cl=A(5!u*=1^(oP=|cCFvR-kOgkjtwz!uFRFXT6lU2GvJuFg z4$&I>Dr$@`I|k1GwT)WE+e88R$T(UDYAbL)02}-3cn2~dFF@*i88RS0hGg=M$bftw za#)(S$obI5d_OYKyc#A6AkTcQGSFNLK76+_AU{Qo@de9(w9)Q-tBHu_@IRw|__}4F`6JX1 z-?kCDr@msH1f1qsnT!6Aa7$JYZ z3VnIMrI|;YZj4%a6Xu?L;WKc4HW0q`8Ia$mC&$G)zJ!y2m72(a{sUyG+vw+H<7Ct- z-wGukE&GY!%vVDLa^Y-A-VY7PE1>K6l4wBI??WG)x5(*0__`=*w8p*-iQ@aB0lDHr z$nybmefeFCe?=VZeK; zA=W;m#TQlsa(EGzUW7aV2zfJ*8zbZlAa_Q{X+R!` zkXOGF{q!xC^8w`fwzpZNhdlG8+K}fjy$by_LVf^b)vcE1nb)9oB4iJcW`sNe$l(Zi zFZdjdkeh%!93d|npf=ua(|RLXkZ5-&mvD_xgumE+I>7iK89MIjFA71I-H4+hk#rWA)noX zl19i^f!rD)-5HE}5po(VG`=v*JZtOx&a+X9586C`=EWGzKV*@mC&B)Skh|6*hY|7) zj7_x&xeEwiF%I?ffy<#coW9i5?}c}+|6!Y-6JTfZ&Et^6^Dadz|FuO9tVjPk-p;>1 z27SmE6+^6tFrx9z#en?96VSh|w0i75)aqmCW2)Kal74x%(eLqv#t`d&gEQY?49E=_ zbNL!$K>h;dszscqQ3}4)7-+6VZSW0eBFH-a##xG^wpD2Vr|$)y6uG+BjyBk7J%8+CXvma?C74ES@cnG^fxXdBns8mDe;VtzAa#6OTWJ{h z=a^UW)$D+rgx26YnVO$^FG&uhTvR$srL9PdZ*D6MgWru-=BwKQc_n5Oe4jgTegv`j zl6Rna=n_amiqz4})m&OHM}GKjXo&TR3Be7;*petu#3JRUTBeLSSao3{B5c|bmfQt(CcfZUHf^KJ5g>;oUZ zQXY`~s6)P29+0=5k5T3%i#&H1ddlN1viq5((&`B5A$7iY9{AjZdFQdHq$i?MAC8c- zF*l!r$sFqEohbXu@Lxclih6!RVv%QEM_bDxKRQ$@eI`OKN9tdXklR|YCFX6c_aoM= z_%EdOm-sp}LdKp~D!mD{7HA%rEtUQ$Lay3hDt$9TUi^Ewk0(m24h9<|&No9=S4T8| zyBe(=(Y*h)7|kQ(hcCeh@+zC3Uqh3vf`t)s__mWU`-_krumSk`EnDXVv_h$LH#qYh z+<-JM!x*<#TTp5K88r7sb+{Xve}9DB2bu>W z_29Wyem(&iyZ1bcd~XX%alXyrDXV~7YLQ7GkDO)8^$(|^S4K3?Mg82r&Bl7#anQyu zv1vUY-TutYmgYU6IT|6Wp-FaJU}L=v_D1tU8*3WKH4(BK7TOVqsBXFCDVP)ezU9+@ zHG1VsE%JHf`Itkrb-p-&#vZdY$M&J0Zm~%7i5T%GEHVXT^+guB3CMVaT(=tj-Uzw* za*XB|+gQgThqp(_5+q@Kx6)`1r;x*AFSoJoL@OVjvNRuu6x=>zXI5AU_eB+}Zr z&m!*v&EW|79Z20{5wcW-kkMCa#E(UC>&$M93OQc#k0QYWW0wZ<0n!6%oZZ&2c z5%Mk|_eaS8{auWw5pweZ)N_QKbRKHVwU^e<(@=`>2>BdJaYcmuU<~6= zQCWTHi&iv+mMZDs^82a@Qw3AGQU|^wK$>w8+)akmp9o zbwFk!WFtn0`4p+f8>U=I{|U7^{wd4(48;0)gnR=uGkzWD2y5(X9sa9- zTF-w9dG>#b?8E<#M6tdQ#lkI))rAOQ{41dYzWrI7*3Hlx&-k20=3b7nN5~-{r+&fG zeDZ}Dn%=cwKKns)TZCMJv@ZRUrMWX#_P@%N>$d&KGq&PV z|7iW39BC4k{U;cS{NM2<)=&QCt{+A;q@JW+{d>!~3FP4jSpxFXf3P%{0J$YX-U6vR z79pR8v|RCJ8|#OVmZK4JC8XuGU$Hb#UyWK#5z5ZicIVKZuX-9my6w(ADZ)~0ItOWe z&C?J$6Uf66a^6d!6C&iJzYqQM4IAqMRPMoV&mG^lG@k=< zZ-iU~Wc3d$&57W1FhZ^c&HWMbRM4z`(8jt6G@S_fDv*03Xl|H#Jr4vQyLvX7LlJXM99CCQTAV2n!AB)jF8s>sYS?* z(Ac*|$X*~{h>&NX#vYB3?_G#G{FP1Xqd;aN(v!YkfRIz6A^I=vme(IQuk6 zZ-lh2MlXo&d3)Q-P}0@b%lC({{fDw6U>X$=DeJY}PW*31`4r?gajb~fV_a4H?h?tK{`F!abq<)^I8GzjrBT=DR)K4eV9ew8zJisV1$j3H-Phl7g|1dfab_%i+mb= z`Su7YgXYc%IgXqoK2L&0-I=$1HUnAPu*jEzJmV^h+zRB10~VPFa%zOEz7jff!P4AX zg^WeWAHbsaf7M{cpm#2DJ^-4^)`AP>JM zLe@!A@{gwe0wf7#Vp6|AGht}X+z312Hp}O)HefdTUW@z@kRuWDD~n_#BLorvtesLjD(!Rna-ka~6=F+imK1JQpqaL5rLKnv*|dk+s_( zbrI4>tW|edn(LsAZ;6nt7r`EjkWV!s^AYmB3AA8@JO!Nle`YzK4bG26$iwKTXGXgX z{|`9NN60GVxfvll!MPJ5mxFUZLY|F0ABm7>?tnc1t$k@ug1esP+e`EFee&grTdh3`c4lpU)q&5s~IN1tqwGxlQE zmaaE7Yw>ME$Cs+@9$BS-D)ZlhKKwScThL=~f@V7lK14;pWxeZ^5>sPc1MPUt4W5Pp zKiZGcGn)1PdbU*BzuD$+>|E>zfJ}$9o`@0coD^A8Z_qTBzhC_tuC(L2l|il1UQ=}- z{yt-AX?x&%bib9RA^r!~J=>^vX%A-#t|BblV3H;jYKV zLZ>{P^k*b&Pq)#=MxsNc?sY2tMy1(!Wdep+=3Pvh?P@_7XUa)y86qsbEzclJR7(~c z)uen?dp62C3c6HTEH_$>ei=6pwY!qtT2gJ-kP8cIjaUSJ%}%p&sLb2)edJz$w!GNx z&Ng}x%qyB5&vLs}=7Oh>p&1~`Ww*VKOa_|ue4eT>b=q_D>i8M8z@r03(^ICbee}s zJ9}g75aS{*Q;_jPrK>94^1+4jfNxSHyh;D+LDH%oDj`;-JkwZ6y2zlzG{Y|+B;7-M zl5V}-U8uCGNeE|=@v;SS&|1X90w@5B+8*>fgMPUQ{$vcIW}}rL*>0l!Zy4Ef;RR_m zS}RE^M-``(3vPDmQW8^y`8+gR05z^2K#{N(Ox#XVIj}wpw%Yybd=5p*ISfhXFr=Ns zunBfPY3A|yMlp`G)@5^rv~pN2Nu@feR-9<2axIW{pGhcL$T5Uu4ZMwTza|IS`m7C+ zoj!D{s!<3t19SSS9D^D^-$N94T2Qo@BAx0&xjU;pMUnW+$tk41vXJyNF%At*o3!x! zjD}_M!EuHV3bR;u%COR^sRl8D^$Ha&`#*oV7#KsgA^x5=e6UG(f~97fsI109t=cco zbukXfFM6zTJud3&+;XQ8;FT-1CP6qVwS%?oLcPU#jb)-BwMKs)LsY*a zn#_mGkSqMt_@?rD>o%q3S%z}M`V~^vg%U-?2CH(X-Rm!EdBv(=cST2$x0u{uK}g5Y zaw|z{NsawEOH_q$VMNJ9#Q+m9Rw~DfUVG4m{lbpIJ|~GAoXL5dHV#IkL6RbQ<40(x z;h5Zpel|mf+qKVKjBdUUb&e5fLX+|1W;|leCm2Sd(Lk5xWh6!6fR^Fn>y{itDOlU4 zvW*ERAhyn+@={cXr&=6vq2Hrw>&K-sS&l}Q(U7n)x1T6NljAi zL+qVtqm_}yD3pd};=~rnGQw#tRzRHqr@2+L94>UDonMMtNReb0glRS zG=(@)Gnmgd_ShFzcNAipH@4Q5nIbWwNU zvh7wTP*`oPbozsC;(~l72c3vt>72w3>8jP#d>9gJ`=E^17)5++H)WIY!edAmwSob} z11e!zjOGFKKoisOl#)?1kc*r{B|0iN7e9+R23Z&ep46F661T`qZW`W!aW!?k{)b}Ag^@y^3Pp-mY9`!` zCK)t8q+|$GEoMNc8#AaV$P6Z0GJ}b#%wVa$%;2fg%;2IqGnlB)4914>U5YK@f3qq4 z??^Ui1f&7|_CllTX0sj)E#{G66?nupp2yT8@L#Up<*fP z!wIU+1ZgSD2!YQ3un+CDt=*l525cs~XRm@AsMO$MS1%Et{V+dUz1gnhoN(&z&>%Ih z>I?AyvktkmCe>sbFo4iLTwe?Bl%9#<2Nd#=$`A2$P$>u~=zWoA7OSHLv3yD^AdQp_ zmEQ{DxT0Gv$7R~0jAWd}nPR6}u--0LYPE6;ZjMDb5g5x=&OUmJwbJ1z*>lmvW#uuh zluoqfFjFm$%UI|LC^mMLrG}XRR&tsNct8>{lo?F`&-GwoRvk&*_EOKS-oPlU4(Mu9 z$7hF&LA{_qY^>l#@{!HD+8ozXd9Iu?tNzexx83VGaowKu_rT3CR;!_h2n}_v^E}8B z?^azn-qWnKk}0}>hU5a)9m?1;SMKmbSrXjM3rX`!N+rc5#@qqKX5>rYa5+3#&Lt?5*OU)cPt8PHnN`V6n`KgTziN z4if(|4ctlxJ7KVosR@@p*5#?VGP1ioMKLpSuQnT<47&nIWbtfc3vZb*5D zkw;l%_J$GK@(!bknECP!BhHq07+pbuBMEOsA~LOU8Ts7u|A=iK zcAv%y$z)pgqMluu|6nqLA zt$->cFW5B}bMZ2_d{p|M^U;kI6a+`9Q<^G^l}3|CM58fXO`l=m5fd-+IY!JzCDAr)H<?wlNeGCGXZcPbcP$!0auxC;y3!Z#6f_8$q(@Wb^yCO~)48Mrb-O63O7QliKUwMZCj?SQY#Gb_ zFoZglMz;i=m|zn*c9d4<<*Qxo(?j9DVDank;!WLKxqB)Rahi@ctfsmegLP9SmnAoT zg)-f7x}y(Uf3Xzb^}9BxZ&n+Z_rF%Cc{U#qb5lF7v&<*Np`y8&Xy zu@%2`n+6<@PFyoyKkSWwrR4YMHIqc*R;Z=@QI*LTM!yhd63Kz6B?bk$NBK zXk}`!5<(v@rj2}wu;nDT1w0Gs?3kN2A+ze!8diGZuI3kc3aH<98U>Qejqzf+CEaeT z?X*A!RP|j>DKZ&OB@vt(!XoF?%9A)<1I3*Q(>YG+yX^JRz)m)DplqYV2jkyRSLeLCh-0UkzJ$0?OOk+ECCDFw_JxB!qXB+FLw)?zj=s)3=Mq-~cH)SQ?D{ho30>j+Pt~ga zYrEQ6IGK>NgmPzZ8{7=x+uC?oYQgcKY-O<~Ij^QyI~&G4+px?EOqN_&!Amrhl?kgg z*~a9sB-1K45cn@&Yn~|6u{~@zfO$+v9dBLU!u*p7Ij6pKi;6{9Oaz7z3j<&`X?uq` z>W!g(63sh(F&}la&lIjytC&x51P@`;ZdBW@z1h)h#msGJq$Z)7+!kgEfX z&Q73XF;;y)t)!G(g3GbbGVP7=2wsp46)iD^tDgZea? zO-CUa4Y_it4r4i3>sX6W=m9MAz*c#oSE<2CkP`%qw3(TbG^{!~#pAVtC^E_T_eIfN z^y2?nX)0kp2AdG(UMZcAsr-lenET!IjqwnQLbg8~z zp?Qp?{&#`*MTDHifN7$YZO*+DcNUBvlL>KZ93SY(5XosCkFfy_Po1YZr>+lSD_eV? zgOK%!!IPax?ko|rk|(0i_+oQ9V=E8(T+*M-6%OZ}aKfw7bjHNopn>}-3{a;UsiqJQ zTuI*jxWYUSxBMe2tS;;Ba7-=e1H!1p*j$e;!nqoq!&MckOj{;?`$Ik?41^T%~u zEjblZI31lvMy?BXNb4TEUSrM`Ec;y$B@h<`YJ8dhq&y4AWMj6W8dkD!X4 zrRS+_SmCl+W}6$C;25@x77iVI--ir(GW!u9)=;|9q40ijQiP6zU!n}NeQ6dOjq)MA za*Ah^1&2dB>yvM^t2Guq#;E>xf%3?DSv{$jykX%vhs7{Le>Mx}&ZLOFP6MMEcHR%< zf2`&TzZK0zRlPzzFl&o6zF5CtC?c_08Y+-Np znbWQVtpgA7EDyZFQ<@&5Z_i%krB?_z`@3>giRe zh^{n?p|<7mi%yoC4R=ixrZX#zz!SY#g&jo>w*zb#91iAIqJsSSAa8bs7IC>!!z;im zP=jnkUDOqY;cs%Xs>Q8y1*&CLqG4)$O)!iGPz8?9_M|TcH7^;OlpQ?MH_V7ZE~t9v zAi>1FKc7yz-88&`TXRxOX9#;drc-hMC247x>4K6`Tq+%Ut4C6ox72C&QiNu^HRrEW za#_K=1gkS1ba_cZGk4&`Nhvjl?o)D=URsi^3#gZ#+-70}Qa4o;N}b+>RnnvibCFbK z`kD-!GDzf+@^M)=W~%_rU8)NfArk~E)r45{myvvKT|^tqO3wsitZ-YTWoi#Wz=~wK zf(Mn-o1@5RO|!YUz-`^|uFc7~sn<#Lt98kqdW~9%e6VKN$LjDwzCF{cN20k#i-@pfC&hIf#>3UXChND0~Dbnu9Hps=-p*y z6gxM0$?*xR7P%nqvdw{<(BweQW^y2XcY5heF325|%Hg`%HV3((Sal5ZOtaLuC_fjB@FkzGLl)UZ7mp;;{+deps3~*nvBhM=4~(lqk1t z81e)Oo2u{*3imF-41-b~B+gm954X;2ov(Cf+PipL-4<+7r%*<2Q#Z(!D?0u-+rb;l z{>lzoV|IFE=Z)Sn#E3@o-``>+wg!{S%sv!X-RaJM>w1>upGJ1wl7lpQYzm`8W+6L! zN$Hq&`r&vEGWb8u3wYucdf%9u|(%OYLQWR6DQ8F5Gfy+?ex~nSDKJC6@ZLZ z5hd$_aw@?F25n%`v|5qraQCOF2q{h+;*2ddB}rOq>I2h$T|>X}(xbRp2}=oW`==n= zKm7S{OJ&b@AJ2Ijr2nW^tj!@kd!@S#6nb<-_X0Cz2ENtb%oX{4=vy7RU zTx2tV<-$yFh{L8~^iNJr#BH6jBjDm8qHP3bujwjz4L z{AtN?y)9r{7Y^)N^U%diSLz%qbh0OL4hIS_`SY2P)g)!kQZUPMDy@tK2&bAosramL z50@%zk1|HyweM&$!yQwIJkJ~hwerkiJ^@uu#N?LmqE_))h;KMVyYf(6#92RC|D2Ra znLUA68f<3{lrqJX5Y^fH_(=UWvhq5-QZt|1b*I2ixLkNn7|yIMhjxgY&Czd#HJCVr zOAL9}|Due_ddqJ?H@2P0lBxh=Q;wMr+VEUgEg;l|TTNf9n|H&yPR;${rE0f|6(0Wb zXREmzQUGmPsjswi!|Tg6*2Y3*joc$UBb0NvV;Q@RU`>x&7sy{M z5~DJ2%23LzCWBcq%;snbH-cg_iyU}LbrF{gjfIGHe?t`Ze35=w_Yr%SHZ2K85z1n` z5QRYo$A6ZIm9iI0y8~6Sf;fiEjS3kh)~nRLfG}IkcE)eu;i#)Shc&a3hBvVq29LXZ zYd`lv(WDNBdS(j*ORgGbR9~l2ehJ6QSOo8h!^UAOy1>!EhT@sCMa)?f`wajWhAcUKxb@8 zI?k~4OHm;Jvp88Omc;WBval!5FWZ>7!P%=>TXtJl$d1dW^j}%UvTTcY^x9$$&z@hb zETX1Rx`bsRsEC#{uCd&W2|aoR(L<0XZ%ZALQD?gA0uxpjcaF>6Seg5|dsvI2`lT*I zZOLqxiYDvG6tpz$Yv1yPq%2K_l7bDPNUHVXZp~=b1rHQczghX3#@*XMe?UIVy$OvBC59YkN}CGNKr%zx-yT|%~-g)i1&V!E#Amh58F z0?({5AI0ixcS~nqQ+SJH5rhygEbAEIlPkb=$Bf)kQ?qkQX;?kys`q)1B9s~J@?>f` zafc_aJ&O2IfqDI*i$$D%!eiK>?^sLeR*~`nzQ@7f=dOFD&X^~nes~^**Z0EuaxD(a z9CgnpdI|}=Qgu}~j7*fwGBnOhRG3U*&nl$M`8Erwf|Ii_m}Ycg0GB=r1GxNA7(mlY zmp}@G&24emX&qO-E`=0EbIT!xVPe`BhRCu=VTde^6o#bBBZZ;q5=mjGOehLNWT_+{ z5@`l^)>H*?*uF4`yzVi>9u;=rB)6zanbc?y0KE(>py)9n{ffa2;fpS9Vw}W$w6E1osKoez*wi4IE4wsZ}bl zk8m>)R(xsWOCTLF+>hlxaY{C(g?HVDd7lk4gF|*4xpghTds!gp{bWWS1S3sm@rbIN zurrU{8jwd}8D|i?DB!8c(*NePD08cIX2+wmauY+F^A#Zj_XHm0cT&gIP_{N(F;C zo2_wMF?L$?EBYOO;SRS3_l)AC3JJ8LCb8znw$jVsFo4M0Az0Fr(nHR%+Dq!JGqp45 z&9lvHK)ngDToj^04SxcB%YndExX#vKE$cQBzZ(!4gbk=enqLRDkM7uTx_HutivsA4 z6%SBhF#WcLp?w(pWo(DV!LNCo4TFiDW{bjSPsi%22Ids34FtM2WM31=zh*Pea9v8L zKUh8|p|8@95k5uuM}2$oH4ZU|D!j9=B1yVwhj_8~ja@RaZTHl!v6+cWBW0JaBJPV| zCcjUsZ2Ml^>9B9p#`3mZGb{;Al=Q^vj;V?1y^}Lp!m+J0JXR?&FPa`7n;Fxz%hP+e z%v`o-qP%lrVxqila`%{U^!6hq*jt3@*&^nA>)4)Y>7edjkn+B*JI1Cw0u5llv6AAx zM`mHq)?KCfi?A6!X>M3QJ~^2w!_>}g+cFSyqL7N8iiwC40Qees+H2d+$q84JY)1DE z;8;|-6MV2ChFITYnew)To`u!WUm!mb(G1JUExsqc1^oM8z!W z1(ZwA{4_v07D2o?kmNtyal%*1v`IS*peG26Y zm<=aMxkxV-jS~=+o}P-lB?*XqiCL0s}%R7XbfXzd&LVXO(& z9X0Pb@S{4k$Z!r`K9#1ZY8YMXBWTMMO0{K*q>U5eIc=#)7&%YlcrgzY2GO*=`V4Vg zM=){ni0c|@B;PYaq&yP$l|X6xO3HAQX4I(OV~IJOY;_9XJiyavWvM#O#zMx}YH%sr zT>%bVsl+?-qGmM`PpV>x49a9uo~LU0$sM(Gi2o* z&{NwE=&@1eilZrNDF$UaV1RrF3`p7m1Ed|0-zZ4vfPuhuH$!2Nr~{ff+TCoNfM^_N zzgQCOkp{s}4si|{E!c4E`R-#lL><=Pro$4|ERE=}N;K4zah$Q+2_|Zw#lUDsJf=ey oVZ8J}8~^|S literal 2423270 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"Ztu{s3MSY|x)|sNMjFQoF&bV>3kWFQTcGOW# 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%0D7Uk zK@;^k-f+B8Xja~siMbzdBHk4AB6-s$=6<}{c=OPU<)`|+0Itw1l4w`yYU$6JrL z3C+pdGBNk#?Zn%IUMg?j#N3Z}81EQ*nYhN=yu9ls z=6<}J@tUAl$ZIw+_v5w3YlmJbufxRLkJlBi2YQvfUK4XaUVpqnXhGhPiMbzdB;FYG zYI)-(=6<}%c+=2pQ_v7`&8-U&-Z_vctk2f4|6nd+?F%xq? z-bB19=xy?*P0amxv+?Gk6?qFL=6<}Tcq`D`<*k~S`|;M}Z9?ymw`F4P$J>dw2fb6? zzKOXX?=apmR67dXk(~52={dBjf91l&nkio8Mdi4$Qi9$kufas+cgm+3#A}4!Ew9N$ z<&W1AuMK*Symk{uA1Zxpr-^kGRQ_^$OneFjw5GBBCVIVigYkx;_sSbFvHp!W7He@mUAZy2h@VnDOy8;%z}6khg7O#>d-@ zw-5ckyaN+6KHgEh6X=8TPEE}Cc<1php$&PJ7Z+m2L!R*_W<2yEc{fbV_;`)+nxPNN zYcbK)$7_q%0ewVXr-@EKUU$4+Xj5LFiB2CXE1LlmGaf3>dDuj!5B-70j+vP8@h0L; zK_8VjZDPj9n~gUQeN5hhi5VYnDc%aSC2!TljE}b-Zxi~sye$(mKHg5eJ?Ini_D#(A zc!%+hp-;*?F>$t!cNXsg+Lm`|;%xtttJkk;;%pCnO5Sx7XM3ouAa9zuUjQnveY2^q z(h7ZAW7|xu%Hws!>w^AJUbl(+JmU4n>xXva4Vc(Ni8mB)1p17;Q4{wN#2b${3H_10 zDHH4Icr)?lpwG&iH}Q_3c#H9tpIb*Tvh9cL@E3 zydx9)qVZ1Rok554&Q0vj#Jh}FeJP*(C9mGZel}EokLxCOv7x_`*Jxty$7_z)3jMXb zHWPC{UPrtx=ty3-iMb!IH(o#VH}VEd%>8&n@kXG(l{ac)?#COCHwpcnyeSiNKi*8d zIp|p4yotFVZ!z97^!M^sOw9dwYwbXAZwfk-H*I3>$D55e5B;0G1ru{W z-cr03=xg#;O`P}Rt;gGh{$1XdiSvHEop^iDxx9T7=lytx@s6SYkauF@ydUo@-Uak^ zd6y>6`!Bzm=T#Hueds^sT{m&wk9RX(6LcZ3*~BV8UTeH|=)dH3m{{e<>x$O{{kObc z6RZ4q{qY8&|B*LjVwE3nB;FWwDR11wDnH(2ylLqF$(u2;%8xe}ZvpyWd5b1`{&>sr zR-ylsw`QW}kGBzT3u5D+ed=u!J%7C2c>B;d$U896^T#`icLIH*yi*fBf4uW}m(VqN zmH9&S{7|X)^(K0Ls4DM`VM)mCazY+Yme6neW$!G6YKqWJ@NXW8}j;1 ztoP#$#v6vdOWufy^?tmucoWcf%bPT@-j6pOZx;F$`f+)i zCi=g4+wpdxpOCj_qW_C`5bp?Tk#}sO|BH7T?;QF`c^4-7zj&2bl_SmC5Be#24JP_O zr}TgE8lj(-*JPsqi`Npb4QiFwZleE-*BP%H`WbmWCi=g4eenjMpOrUgqW_CG9B&l* zIeB9y`oDM+@ur|QdDABPzj(9p=AoaLw_u|Gi?tpOsy-%zdcL=}Qyu|6SmHt{Pi!V(vqp`zGc- z^egfjP0amx&GA~H4tZ@R=6<}6cwNx1%Ih{U_v7`(>xX_#-hhd@A8#n$2=wdnMor9p zXqeZ4qYrf|oq)yx@DsB$J>dw z2i;eXyKkcM$2*L73=PUVF;V&BoyEI=%4Y&znppY2_G+G2O|1N(@;#&1O|1Om-Hg`+ zJwT7!Y+~gfuQgsfG$gOX#L7QjSG*pmd~a#5iIso6{&<5>t!8udlMW{xg&w3w8#8hA z<4weyg35h@(@AHN&Or~>zcO!P?#EkB8($@y?+Uc^4+;e!R+J=05arc?~A!zEkFYyhf;e7i^P>xgW13 zUK{jC{d?^u=6<}+c-_#bydD#CKVDzF0q9Zk22C9Oc*F5Vp-0ObGja6eO~jjm9wTqs z#N3ZJ8*d&Oleb`E?#Ek-w*oy@-l~bYA8$S0CiFOYTPEgyyq$P^(BtLpo0$9Y4&xm| z8(0@h+ez$h$N#_g|N}Z({C4Pn37v#N3Z}GhP$)Bzesy=6<}^cVDPp{K|jGO_CyZzSFr^i+A{CU*VeO~#vsCgshT*!7Dy7jFT2 zn!H65yMFPOV z-SK*%=gR9dvFjIaAl?x4JbA+=cKzaw#v6xbZQU zw+6jY-nxkyA8#|>HuNTWJ0@m)yuEk_(3|BQnwatNj^mv|%ks`l%=ma0@hWfR4oP`c z6Ehwv$D_f-K0owUc{fe$^T%t7*8;swUaN_H{&?;2I-wPLT_*PV@z$Yt z%iA!q&ksFXb79NG*&Zsd{jRC5vJbsSV-HN6?c*KAJAu~Zotik?$2*UA3B6ZdrI^Pq4&wVVd88buQ6UT^nQ6QCeHTp+TwLU>+(8H%>8)X@p_>T$m=sP_u~!3 z8-jjc-mr8&P@z$UZ%Ud@w z_v3BG+lD?OZ^y*kkGB`^0NRvyXkzZiJC1h>{eiqQ6LUY_MZC(JxwlbX)x_L~Join^ zeduG?YI~qJP0W3#)k>3zZ|H%xuGPF&6La4w-%x9+t8_vizgF|QOw4_!yo=7nJ-yH; zuGPGL6La4w@8mb}U1iWGuhqN}6La5bwK8Vn8v&v1Yc+4u#N2mUtxTKvyddaP*J|FJ ziMj8zT3ImhPCe+;*J|FfiMj8zT3I!5j~DcZ*J|E|iMj8zTG=wyRd%4AYc+4z#7?hM zzTM2kcbY+;xmNRzOq}bX9ZwUH=ykQe_Ki+7( zacEE8go(KyZz|pl^hJ5ICgy&;`FM-am*g#(nEUZo;;lh{EN|V!+>f^zZyVZ|w_{@N z$J>i{0R4%)Llbj9-f_HB=*#lXOw9dw7x5}@;oe4hRTFa`^4vEu_n`xMH%-j_cunzI zpg)t>YGUrkYme6n{kgm@6LUXaPrN?pFXZ)`nEUYt;|)WH@8&<@phoUk+*AN?#J7YcL@Eh zydx8HKi)~aGwAQ+otv2Z@h;<4-+J{;Vf7|@eyIE%TsP74Lw~P-uhB%$AFnxHEA$WY z+D!EP@jBvlL0^&AZDPe2uQy&lbRuuS#ELK8P`nZ7ALWgjSn4Io{62_cn9&0pnsKj zY+|Q3-f6sZ=uF;)iJjhfmA926%~c-g-{duz*y(l3PH((M=xg$tOziZ=Yl+te{kyz& z6Fa@}I^%Ui=kj_??DWR#i#GuMhrB`4t(Bp8!|_I;uge=VvC|uGBHk4ApYodt|ue!p$jq>VE%zdc*9@kCGedvGXHJX_FPOFvXc&*U?$!jw) z_v3ZM>w;)N_^;c<+>h5AuOIpbc>^Zqe!QW0BhWX>8#OWa8(a@s^=miliK{&ETI01t-z%@f#8sYnUGaLL?~~VS z;wn$P{&<7X_sbhHag`_DNW3wqQQo+Tt32^0<4r?9AaBORRi1cr@fM&Tl(%T&Do?!S zc&pG4$y+mVl_%atye+6n-nNN-pLo0R_Msn^cVJ@QC*D!K6X-|eotoJ9iFY3F68cej zm3J0m?FZGX9M_vz`$5g}ZkSm6#cPb$4E>nA787f~cx~}IpdXjlX=3dcuRC5Z^b_*> zOsxIl4a6IQTI3CzSo_5rjW-Vcq`V0eYrl9?@n)c(k~eE&?H6x8-XiqV@|H}j{o<{} zTZ3BVt(#c;#oLUx4gHL~9TRK6czf{OEm^mFpgOsxIlUBs)ba&M!& zs)@B9RQ?VcOsxH&pO<&j#M&=jQ@j@F7v!~?So_6mkJkzPqP#8>Yrl9s@%o^4dHp8V ze(?t54MV>qZ^XpfFWy+Z3Fw#QO`2Hy#hZ>d3;l|`ITLHYcnk5CpbmMkUnHF>)x`oDPl@eZM1mv>~M|BH7L?+ogccW$Epi+35X`Yx`?$*VWf z|3T&N;JS(a54x?qMic#CyykeV&~M6XGtvLW>xkC{b;;{C(f`Hkjn@zTmb?KI{a?JH zcq7p5|Kg3un}lvJZ^}gf7jGus9Mmmu-bDWwZ!z97^xN`QO!R;8*5YkIcaXPf zqW_Dx9d8%9qr5#6{a?I;ct=o=ykisnU%bf92>qVCCKLT%yq0)vP_Mjp6a8Pj&UoF>o#geH=>OvN#T$U`EN{?6{}*pK-Y9ez zd1EH}zjzbzrl3A~(NXl&BWY~*AcG^y0^S;6LUXaZ@hk}d`tO&iMbzdDBcKEzNLKB#N3ZJ z9&ZvF)ZnETM zZ^y)WKi*!v187Lzp^5W;yyJMM&;#Y2nK^+6An*KgvyA8#<;F!V5aBPP!K@y6m! zKqK-dO`P}RO~;#s9xiXr#N3a!5N`>3guG=Fb3fi{ymjc2@-|G&{dimPcA)YpJiAHv zk{&>#`d1E39Q}C5@lK&f$vZP~^y6K`tGt)1&GM=yjy~k0Z{p}fkCAuN#L zDu29_cxTX4 zp1cba^Zfl+pUl__l_T9|;uCD48Ae>I^gz$o*xq=3@%o*z+J?%AQRoF4F=nq?88>mo z-6{JjP#G}?y-*|O?Qu=r#JScfJ7`cDu@22@#D+aSC*M?8*>cLO29*&9(2F$U&>q*y zO?8!Hr_2wijJSketPz#LMqCXhgHUYNf@*XB;_YrvoY@x}iCZ z=&@I=^qRQa!6|!MP#G}-y;LJc?QuVYsjf2al&*KM zp<2o=6I4btLa)?_CVO0IFmb1eQ}z>~GNKE5l}2>i<6aUI_Y*p0)p3hdN!iPV%7~lL>olSfD)perR99(s%Bl@2 zBRZkiYebhluHKmV&JCwjYN(7Dg5IDJ!}hp8$HeEaIpv%Tl@Zg>l19wf=3&mMQynCdDAPT5C?%7`=Q%^GoTuUfe< z)m1K?vSR+=)rcF=vPRs5%B$OG;y!7ooF$?17#+}CG@{cU_ePnh&ra!wpfX|*daFhZ z*{fEDO?8zKr|fq^WyBQpHjS9J$9q~$-1Fp=oo%R$ScXYli0jZhHR1+TUfr7}zWdQB zy(m;3qa9k+hz@(zN~fu=(&d!BW~hu9fZnAMgZ8SGArtqTIpwMXR7Olf@79PZd)!fG zs;kU6<@ym+Ml3<^(THVx)yj&A&xUkL&j6JX+t8Xu?AYT@F;iV-&nev@R7RXY@70J? zd)3OBsjhPFl>XpDS0fsr_i4m+sJyy2O!S0K+2@DKW3)l<*NAp|)k=qnd;OepMF%P) z`k{4=7_i6Pe5Sg}kW=<%bq3@Rgzp$&~VvB&rAn7I4SDc4v&d^MsT`jAF6K;_lF zZer!-l&fh_d5l)*!y3_Mk2@(%b(IdM?3+PlL?84Kjp(;mtqhpzDuYhxm7y|X9NN@~ z347cjX{xJCIb~G@l@SZjA85p)y=rC2R99Jc%I*hLMr=YK)rc*7e6o>=J0G2LeG4ih zj-Zce#IZf@Z8X(YPMvZk^CMRys?e53)I;UfZ7^|F%PD)7PaCl}V@UJV9l|JhZJ53-+p& zMH4%aPPw)Sl@S}zr!->I9`}`+_}*8iTt$Y;h(qYp8gXQgZ{#)cZLdz*FNVs9$|iTQ zYD5((uWr4GYsXGmBSK|FGqj@-E%vxG*u-Z&J7qTjDkFNJ&uB!iy=tY;R9ESD%K8H; zBSxV=(ugs8tUpYwKb*4ufXawD=(8FzZ;$ndiS>t5)*nzAu@3EO#D+cAA12lxPFa6I zWyAsWIgL29$NIy>`ok&f52%c|gg&nkl|Q(8b*m=UA5bl2{Q;E`P0$xKqS+qn4-@MT zr>sAqGNK#W(}*5>tUpYwKb*4ufXavw=!+ULYLE4YiS>t5)*nzAF$;Z3Bj)U}{xGrr zaLW1vDkIjQKh}tKd#pc9tUsKx{(#DeeP~}J4(zf1FtPq{%K8H;BQBsn(TGcX{Le?r z>&*HCs->(ypfaKn`m#ne*<<}-V*TNi^#@c&bU}Zr5#9D!f0$T*IA#3-l@Y_xfkuqj zWBp-b{o$1L2UJGPK!2tYv-Vhjm{@-}W&Ht_5v$OjYs8v8)*mL;A5K|+KxM=p^cNbj zZ;$ndiS>t5)*nzAaSk17#DzW9A12lxA1f*A52%c|3H_x;G(x48G?`d`IA#3-l@XoL zUui^_J=Py4)*nt;e?Vo#5cJm?F>H_Zhl%xvQ`R3)88HnVX~c{@)*mL;A5K|+KxM=V z^fwx@YLE4YiS>t5)*nzAu?zjJM(o*R{b6GL;gt0UR7RXZf2R@W_E>+ISbsQW{jqg5 z;s$iA5jUao>Nc8Ke>i3R0hPz-fc{=1I_tUpYwKb*4u zfXav|=qnmAZIAVbiS>t5)*nzAu?(GP#EL!EA12lxPFa6IWyB8jj~cOSkM)O%^@mf| zA5a-_3jLEtoY`ajVPgH^l=a8QuSQ&l{#he#K;_lFX=451l=TNx9-|#P)rbyztUpYw zKb*4ufXavg=wCEq&>rg#6YCGBtUsVKViNkQMoigb{b6GL;gt0UR7Na8|Edwo_E>+I zSbsQW{Q;E`+t8Ut?AT-dVPgH^l=TNxMw~$ZrV*$1SbvyUe>i3R@rkPu4bay#;yP4b z-5Vy>A5K|+K;<#opnunhc6+QpOsqegvi^X|h<@l?BL?iT{xGrraLW1vDkCPK|Imm@ zd#pc9tUsKx{(#DeMd<4qv1E_+hl%xvQ`R3)8Lt5)*qj|8c`4Zmqs)|<<-4zV*TNi^#@cQqZRsZjcBvS`oqNf!zt?zsEp`? z{zoJF?XmtavHoz%`U5H>#-U4%m@v@|L;sJT@jYyzWvI40P4@tmXTN6RTn3f9qc=_b z?Z(@Vw+mJDXnQ6)w|EEfj-XrR9h;~d@lNBNL${T8VWMk}SJ^JllpYScoxBDUH5+*QhP27CMptC_R*J2 z^e<2uyK3TW3f;e28@pj*_Bds=V`41{J)m0ic1`q-P}zCkH?h)$%3~avSoc8RpyzjL zqR)wU9`6$RMtPM_6=Ie_Wv{;8#PNm7W85%thJdc!QhR<)CRU_SZAYED29*(QCT1Bl zOv+iqL{}fLJ6DW7tGL1XXXTJ;s=c`UkyIV<$`;U#N_o zHgWET%BMHXnb<3U%5MCEi8DJ?#x9#U&p<zq9#JO+){ha zdnRVGQ+ietD*~wQmYR2LVkSGKVwyM~LATyg^Da!xWT!mEPnT!FOsNWN786H0UR%5l=$qwrnmE$&y5sdiw~^Op;z-9Eh&Kc^$Qw4Xc8)h1 zZyfp-c@ri&w|G(CF#+b~hv<88&;fqqclu8G$`YCyvCMtit?RdM;Ps`ggQTgK? z#5;moj>n3)$;@ynb1a-=5HnFyf*BY-K`VDy< zCVKgJUGaLL+sf-T(aXo{k2eVYro15&ySnj4;*CLF^2SZhb2{ zEkL)Ew`ij4i?Ou)$6JK% zB5%n={}*p1-Wt>=Z{0-y7jHA(Hgs2cJ0|+Sczf{-Cf?9iT*F% zMZC%`ciqdYn&|(a@^{c+qW^>LA@8P%{x4orycX!5@>)&wfAQMmbwc-&*JYyri`Nsc z4;qlyZ=(N;HyCdiy0^R$6a8Pjv3L{EedJA==>OtP$D4)jD{sz3{}*o|-V!t@Z`nlu z7jHG*I&?pI8z%a{cw6yyp!>_)HPQdY+mCk$JwV=(iT*F%NxU;?NZz@L{x9BTyz1w; z!(Lv!iT)2Ne+So1^ncKUG zKY#V_RZX1tp-0KPZsNQj?`FIv=+W|;O`P|kH|ROHnmFcAdCncCx=I)H`fIgah;9?d zJYH|SeyDs>;ed%_9&ae#2(+YsZ`8ywk2fA~5_-G5DHF#WTGDf#F;VZK@|@>QTs4Qj zq_ImT>V3SGcx#Y970JXghsr&Cngn24&xm|WAaW+9CPSx z`aRB|$0|LC9w)kRO3x2HUO%gRfp-sxs?ZZe_0SVV4bYQB*P#i~O{hHQMicu!Q0>t; z`bk@pwnMdNK+m7FGif(edoCRPq`gV|q1yAK-X|SQIt0;7l=*gs9Nis3dx(x4Jxku8iFIDQ;drCav*nGMSm#0I{>cdw=Xj|6 z?M|E6)rB6aIWuSC93O8X-V!t-Z`s5-9x8WSuA1oYq4F3Trn<@&bbHl}Z4>={yxn;F zP`A7T6a9U>qj)FK9ps&w=t9jo4A4sO>0gMnONJ$8;LgtJxAWSiFzMzGTt=w zTzNAl*7ot{;w?bWlecJMZ4db#W)t-uD$jY%#I;$ds^4wXM7@u<9d8%V3R} zct_A}>*9^a zn}o_I=uMgE>*CGCn}f z33^Q?&hhbD;*?9BN*Y*4sOzh>xTZ*>=l~2%HHL;fql{@>_O|0Xg@;AO^ z;u<~lLd}m|6YKbR`|%E;S$Rh$*75O9;+;V+l6P)m9Ut#9UiDA7J3(H(iFG_wp5Jv7 z>v-rT@)}L7Ww~4tQuQy&l^fGw^Cgy&;p?D+E%jJ!l znEUa@<4r>I@}^A8{dhC+=Ac)|n>R7{<1NNphF&Re#l+l?w-#>$dX>CQ6LUY_cD!9^ zLEfH;xgYN!-VyX_dB-N^e!SCo=g@29U6`2r@hV@=+=pH(uffFJcgoz4*9a}jYcetS z8)7@kXH~d1EH#e!PizQ_vgb zO`Dke@n+-ALvNC|U}EmaTZ*>=y;iMbzdJ>Dj?EN{!i+CJV+ygleG^7c)v?c*KB zJBHpW@5IE~KHgcp3+Qd~E=}y`{OQ#^ubSA;fmY;QH?f}+?`FIv=8hW?9856x8 zRNnVAXJYO{r6w+#cvlbf9*tcwG54YJ4yZK~{XJC1ZkpJ`g9g;E?U?BAq4Hj+JrlVrHMQH53ar&u--(yhl+RIM7@U|rE^}RiFyx} z_fa*QSkpmeY@3O@v!FG-E}bUUbn&|5^+NBJ*Jol)7jGcm5cEEI!zR{r@kZl~L+_V2 zVPZ`eZz|plwEq8@d;hpz)4I<8KIeQq!x$$?Z-y<3=;u(B z!HS5tG@#K`AL}CexpkY?Z9{KOx*ZX94#m4t!sc*lde%jomMn-@{%)-77M z481SuRz&o3>(;E>fYy_4Q$#18zCt@FOUB$XX=mSZ2Bw|lz-HCPCU-FJ! z(v?K)>7Zys)gtzE&_>eLiP+OwSGKMZ`h%ov60wiBuEn}G=z~euE@B^VU8i;3&>tpU zkBD-wx4fHsqEP{e&Y>xQixh5jh%#zdUqSvO(b6!f8_n-+0~XWguI^UxnB-GYcS zJnNRMTYGnnRed`XaJA(c!>5fJ8ed|uG zD}9VN+>)+J#CQ)yJE##c-a{Wwx_S}gy>$)NH9?n?u35zT-nv%n+Mz#Bx(*TRd+WNa z>w$KXu2;nR-nxG42BD86-H?d&y>%njjX@txx^WTfd+R2xn}+@(>1IUC@z%{*w*c)X z-J*y&9(rFIW0ytreJILwO~f1zJ&?j~is<{+ZCkes{bkbaiRk;*RjfONK9+PxBKp2{ zC)QpJVkteb#7m2{IL)^*lRTQ>_`NxC@^ zXL!&?s^0|>bq+;dmPMT5L6sDCO~jrK+Du_LMASJHVYfxR*9N^d>Gnj_IrPWLRuQqT zgCgvahoDjp@)*LLqtEfuFJX}=+jBpE25uU*Kge*bdYpIBKo;?Bi4;Uf1PyWBKo;?lh#c` zpGmqI5&hh{IqMdn&nDfXh&s1!*}7HeFzMDr)VXyV)@?z5lXTl6_VL#3TDK2GVjpkafOSLAKP26-h<&_uqt=Z>|Cn?WBKGmt zO<6Ys{ZrD-irB|nH*eh{bdq#SBG&iTtys4PeIe=AMXc|w+q7;Q`eM@Uh*;lSw`W}i z`sbuO5YhLoJF@NsI!(G$5qpG!~TME2eC1M|MU5|Br(3zy`7ct&jH)!23bT;WmM2z>=jafGVolCk& z5#zme)7H&GrKFn^G2UCZVBHe*h@@KxZxL<4Cv2~}=)k&A_2eHqCVjQm$vCo4ZnRK-x_IcLTTh{=6L((;h*ylli zn&yvY5q%$uG}=VG4GsNJ(shdH`_ScN>lQJ`LlL%5#G7?cbxLZk50O25$k*FX04lt9+PwnBG&iTEm^k$)g;}ji1od7>(*^T-fE|E>pGy?r0Wz>=hk&w*9$!^>H0*B_tp(qHv~OC>4rs& z_tuSCHx4}^=_W*s_ts5WHv`or-K>c59*S=h%!{aVD9UO{#Cw&{ucUHb6;bEbty{MV z{g0&E5>e;Y?O3-5#V@Dsi`dgycVOKS^xhQTv4}k#R7v%FDx%ImRphx!L_deVC+TWM z^mFU#t!sc@mvoIH`nh$@*0n-?N!KRgJO_Fx**ZkjITYpBE#jL$(2pctpNKk#KAmg> zBKkQLVTVP0p9YFwL>&{+&#jxVZVLMKR94d>`nh$p*3Cn|lXMFr>Kr;qd07%MwnLGZ zRT0nPK;N9&(1wVy-MTI7cAzIF-L8m!Zr#3h2hg`9-JytnZr!nUr%-*;Wmkfzb11&! zP$icUcQDS;#)(|E6(M*77_hiUf!w|F}6cLeJ<)^*TlQ@h#|(a)i%qXQA=w$OFw^03Du`nkM(Cq~3seT8=clCDa`*$ou&)rdH| zfnJ|<^`fh?vULsCH93qN}oYDAMQ<@wFc4^`$(|-6GCy<>hMzqVril z^!8G&8xV1BD=**j5%HxYXrh$sMn#<4%3I3DMSQ0N`q5IZn-XzuD=*(s67jq(^o~-l zn-_6zD=*Jpiugtf^v+VQTM=<~1I4#R)h7wxAaz+J;_|Xa{;}qFv~PiT0ouCEABt5>=oVCpv_ptsRLtgNU|aU6XY!P?S}xh_+!}yLFw=eJR~85pBb|9_#v` zk)-Pv(Kf6bv~C!>Kj}t9v<>UVteb$|oOF{S+J<%0*3Ck1NxC@^ZNs_+>z1I=q+1rT z7O-yBx^?KSNw*TaNS=Ve`EA#_N*Ct|Ku&%?pE@&+2x<$+j z*7aJ~5B*@$4TzW*tQ)d!1p1+*8x=7xST}CnB=o~cHzi_Tux`e>IcPlT=0(g4)-77M z48?QiD(;E>fZ{pxO%dn2)@@t23%xz1yC=FT+qbS_-60g?%aMpPed|uF%MOas zrzGM`ABuKRE#gcc%Eu;Z-`;wA8=!o=qVL<=WN!$>Qx;pF1&@D;VAfoSE*JND_)SYy#BIbST+O6w^zANdv zM9llv^;p*ja_ZEwH5gHT?koZZ+vZ0{(Pmn1W`z2o*yLV5YIUbA=F-dQNG4|=V= z^Y$)6dA%`a+q-Pdm@c>-M2o%U48<+14FecMRn-B45W6 zF=ktr9eT`$Vs5M!F=orlm~CA>6mw%)M4emLXk9ZDb7PB$I=8OPx(+Dj#!eA+Ze6!^ zy->`JeIk0TbpzH7K`}QDix{)58?|m6in(z@#F%Z}lyx&u%#E`mYTvqf>lUGy8<#|k z+19OCw+6-BxGrMMwr#|eDq_sGuHCv$DCWj45o5M>J=XO>F*o*$ z*sEDLXx%UrbK{7Jy_$7n)=fY$H%^M^`_@fcHw(qwI45GSX5E5yOHj;>%Odt_)~#B% z4#nKKA!4s)-IjGbP|S_HBKB(5?OS&M#oTx(Vy|Z1v2~|V%#GRSf*9{1jrStPdnnEY zYDKKpt*f`L0m^4d&TU2P)vRl_t`&+ig*Fj;HS0R8>w@CMpGnmO+gf*E-4XP# zyG7iGg(7U9i2Jb6?J4Y_h&kT6Ve3Yr{-hfdu}ZUU!n!HwLefo(xIbgvtabCy8Gnm`xpfED9YJ>{-LZ%|x9-%s z(h=VWNxCW#bq+;2*N8Z)hX#|bUc_0wbq&@vL6?%QS;Serb* zb)D9ALvKmC9ua-tx<2a$pwXlo6w&vs8@6r~dTY{+iRk;*O;|Sty)EgcMf82^X04lt zejw=W6(R2Zd^p)w{Ft9Y3Q9vHzT6&TQ_Ij z0yLR)iz52Ib<5VRLjN)8){tlO||3;MC7+ZM6Uvu@YAedx!Nt|DTeXWgN7$Iw*L zoru`yS(p8N)HG*v&`%^?wTOM5yzKL=tA~Cv>B=JZdDb;r*9`qs(zS?~_pNKQt^=A* zx=s=EzIEN!^+NATx;_#6JnIIm8-m`Qbi*Rnde)6vHxB)D(oKk1>sdEt-3&C7bh9GX zde+Tbw+Q`A(k+SD=UKO6-5T_>Nw+RypJ&~sb=%O-CEbpQeV%oD)>WX{q&pC?&$I5x zx)bQG6%Fr(+U4w{yo^?&uwLo)8*D7M4XI;B> zozQJnMR_>x2Gt()Ekj=UF#s-7xe^NjD;5pJ&~ebraBh(oKrk=UF#x-7NH9 zl5S4KKF_)Z>z1JZnsmz|_IcK=TDK1Ux1`$;vCp$^%eozCA?bES?DMSKx9$M?<)k|l zvCp&a*t%2bSCTIKhamQOP>lCgBKCRE|C4mJBG&xY)mzs9Ehb%~h&8`;&DOO-?@78g z5&JyrI;`u0{(I7Oi`eH`*K1ur^gohrK*T=Jx*_XEprxc66>-96-MDp=(0h|^O2iqh zbu-q@LBE=G^CIraS+{82GW2Unw<2QwXWg208_;snZHid`S+{N7F7!W>ZcoJe&$^0r zhtU5@x+4+mKkH7c%l?t~O_Q!9V*Lkc{U>7m2dyMsorv|Hb!F=spsqX9 zgMK6F+C{AYtn0L{8~V+p>k+a3v#!s&0cbVp21Ts@tQ)p&6#A{C8xyhqvu?t=Dd@M8 zZd%0p&$?Ob=Aqw7x&;yIKkJsPTY=V+ZdJtk&$@N%Hlg25x-AjwKkIg^+k<{D>Gnme z|ExQ(?g)Bc(jALf|56)pLGq^H9;Rpx@HmU zKkHhpYlnV6={iKL|E%k>t_Rvkx?U0MKkNFf8-)HK>4rqC|EwFaZVdWh(v6E)|5-O_ z-8A%vNjD>6{b${rbqmmD(k+Tu|5>+e-754)Nw+3q{b${Vbz9Jfl5ShX`p>#u>-M2P zPP&SS^`CWz)*VAzNp~V*{byZv5;e{G5Big&s}`~Tlb7|Mb@kAnCS6&?`p>#X>zbiI zOS%>j>p$z-tm}Zblde<5`p>#<>w2LNCtaV2^`CVE)(t_IlWthV`p>#i>&Br!Pr3;a z>p$zJteb&$l5SSS`p>#~>lUGpB;AsT^`CVs)~!JwO}cdv^FH)So^7P2q5IC}bPW9k zx^r3i3x&4@x`_8&)((ZY7urp_ZRleu<{c5g?`PY-Z57)NM64KXJF@N6w(N@$Gb00} zkwL`B06my;P%j<7jUZwUu&qVJZy4FuW!ob3@s#@|5%VSViDX+BF?auSk%Ms&&o)9) zF8ihvD9R-}ExfhRe#&Vb^vM)+S;XoU`c(3ELst^@LQ$rDB32o;4T;WY^R_M6wr<;o zZM(MZi&$O%OOZysh>_t-JmsBoum$~fq6!pwITEo_&CX<>N!~dqybB`s6=w?DmWaM} zuCVorSVxo!+o6ax_4zZ|f1$1MD~lq=Q|NC=jo)O2{w~p|Y}AZwjHlL3+B+>T&%Ii= z2t}TkM9g`%?TGkx5k_sEEkz6Is6 zurh+;sqB6c?G%dA9TM^T#I}vwHUT{*Jy|^oJvz~pb<@yF%IO^R-x4)_L(w)`M64Yj zRisueV!r_8G1E4nJZ9SDqYK@ph&AS83U4D6_1kXStZhpoew9;1*;`jrQ-m#x7>7hW z8xKVen!c&fbwW{UT_Q?SUY_@cqTWVDv=VzKp%fe^pQ(mKhd`5Y6_sKoO$Hwq7Vgj6e}$+};T&LM+&}2t|kuC_-%8 zy8~6Ft2_`fGue9reJNdARvScXhw}DvRn`vW?S@g@>_Ba&1VnW0|4~lj$D`IaCMcdtwjyEVo z{PrjmqvM{4)t7aL*7ZHUNNrR^YPQXYc#F=qBkSs)P=qau*jd}wEaLYnZJV^MzpfbT z2B5g!VG-*b)65eK@2rR`hrWqUHf0*airKoPdnx-RQ_Z0ohHABwO8P+a8%q}f@-2x8l;ZS&BzX{25fv3`c~-9#zd z5OH>B-GOx{P<&^*^t7O>vN9C$HHa8@p}5{o5x+BUTaRr6P+Z5Ly+ihnLRV6*#zfQy zG@fj8B35|N4<*}@h?7+7)~wsGZp*qIXe@=@6EP0ic4*r%6zQIdn17#Mq+2bbe?V_d z@s&lKRzPn{wk{E~5ESwCi&%$2aUH`VPNJcoOJT=Ev{Ps%*``IDIM}ve+p=wIwrxO> z?v{wV1=dxpJA{5JrEw%;Jb>PrY*h_G%rj8L*COK79*XPe5HVgs(JOjHoX*(RZ`+`4 zL$=LBZ%*khh-k6U{mHg2qQyed>h?u^MbNeb+YW6zvhCQm6WdO0%bpQ2^R}X>lvUYQ zZCj0Pwa`0K{_5w3cHb-=Bc^RrrX|z5Y1_1KIyTimvnb~V5%pnPyKSAeb=lSp z#r!r5jilVqn3hdzBG#u+)atH?lLY8}DeQrW`wO`@*-k|Co@W(l)R^i;tYe|yOCg%= zZMC<<-YyYqM=0{rE8;s!wvE^}3dOaJi&*DCk=l%OylE@qD@L~M+1A&1CVL?_#!A_k zh<*vZ2-~@A5{kS`iFkJt(o84feO)Np!Lq$8_O98x3ALn{w;`3dh<0x}f+CG$5&ItK z#VKs|>>_MQ#N8VxLez>lr-33wBlMCKw$-{e>pGyweJ6B~YO4#1{B?`?vbntUcqmfq z7xAvNZNs*WLV0}DjJ;F#&e*#EeJ-WDXx)-^EAq0Jw0G0qZF~3at=M~LZ|ONjo~uNZ z8WdMv3&r);iTEWS=%uOD=IvducMtl3l;?dBCrZyPM$BdrD-B`$gtdXGqk!;-}N(0hr4vI3E z6rIneq4^YIR>Ykes5P~$}ewhGLUxnsUEWIMy2J{=rHYs8S1w|~Y zqVw506szGa5$(WqXv&^n>=)`y&87}huW1O1E1!g3o~~mCiX6;}7%`!^j%9mS?A?cA zRIZ4KsJR$BH=(GlEfF)5y`>ivx;j&nsom7^!Xj6lBE~Q%ay4x4h`nR>PC$`^dFW44 zi7!BLMzI2ICfh0$XF+RFgxH4S9O($k!!n1ys5ptKh4Qeh$e=s~r+!eJ*tFT!4#mk% zKNPVHLwOFk&k02=vrxn`2SqH4wk<&s%N7)|>_HLBAr!HcT8dbzpopc`wmK+cX@w$| zPAFpOg(8+=DDpA_MJ(gCO+XRL0u-^VKoQFZ6tNsa5z8qQUy>-jIEWn@6el|kBFYbn z_SYghpS3|z)9p~i*9Aq`9uaGKC}!*->G%eOh_h?kc0`PwP+MyE2T<(fjzsix=#!~! zlwK0VJr+|vw4b~UBHDqe75YT-wu_iapnu_M>vLHT6j#|R;`x9Yc9Z@`e!4jQ>UrdGz>*;jYD}F?2e&44Nf6Ui>4LRIus$cp*$~~;hD15!d7Q$Hnl^MZa0+Y zp4l0S+)tY3pa7!ukc8N+CK#Tsagu7=~_7wK^(d z{R~BXlOpCkC_>Cww_x3(b<5VRShr!_rghua?O0c_?!dYu>yDv!rkrLkFLu3kP~@~; zbUtget;x0)D01HlMTxhGI2VwPuLz1bm9(wTwgD(&8H6I1ArU78(yYB(5bMf2NNyMEq zDE9U(_O^;RA+Wa_iZbmH@wU?|3fqK;_5wwHEQ+{4W81oIJGSlGR{iZo*cuUYt!*u~ z4cInl+oWw%wyoHPH z+n#Ovww*vx_NOAAwrMX~XC0*0F5(Q?wr1NppqPKVL_GfjMQsg;XxUKgKSo8Y|Df2R zO^G;hg<`)jFJeCp#XewL#3_X7$W*$f*ay@>vA%DF;yRi{%o=UtDgyJ_MheeEu(B0{bdqTu@*t-BlX)KG_?Ld*MRS~~d1x2n-p(xYRtAcpu35xQo z7txBLD8Dul=TcDY%f_JCs~td5rYEASvi56>9CV2I9vKw-vR)C_X5E-|leSISHVsAY z7wlcMcNvPkL`RXo8YuEt7SSu9D4|XfCp%EIgFX@YGfkQ1O)I8ND9UO_#HtF4 zG!8|4BMOS^$gV5AB@s`dL*ea&BEB9GCmm3f{T%dbX%=4+u||R-wTg)Tc6||F4HPTi zdJ*F!6lrvdcp3wW)-)|*hJ_;LIT1ToC~~?C#jjqjinzZ8b*I(;HWXoZOuHgZS4GU1 zP{el%<+)--c0-ZB77;6bD9#>wMLeGaMY&8v(I)4h*s;t*lc}thMf7+ma_d@*md+xUR_JF_EFB`|-y4g5)GlHb1idcx)gBRNT2S0m8Wizt9uzqk6)`hGk%Kwu z_zIqgH3$^Hl3EdQf95+1TUkV@LGkOXEh641u&&R#Q7F$9cbx29ws#eZST;n|s%^Wr z9YAqy$0DlzJJ0BMX{$t(6%^OoCSt8(Tc>T^w)NQ74@J2QK#}KJ5#NlnZ5fK+Rb3O2 zXH#`o(F1BkoOnUEq}r+%@s&*|(rAZnPTnpNXIfBPN1urIaG}WG1Qa9dl!%cU%J=bn z-9*Ir48;y|UBsy*l<)2NI;DtbPM}EbM8u}*rXsZlC{k+@@f->iskMt3v!O_>U&M|c ziqu9#n5#Rgkt1c60y>UVh6q^;x3PMyVg~#JGAZu%1>ul!HbwvZYlQhRU)nfif4Q3 zMbrWmPxQ2jm~o(YrPkCfVz!6gooquQMqnsvbwZ)gpE$P?Tg@#7G0h2}X;Ec^`@#bcmSup~yiW z6sI49B4#y6eMZEyI8fZPSv74yx;7El21U$!P?XTVi22vHL)(sQI~H;OJw3`(lN?Q$7z{}`jw7*aw4u5%44PmAzh`2tAyezE6~SN zn>-S69~(MJwyIl$s4ZwO*&0Ngph16=Y^@?@PAF0v5z*sqTd-}(wq@JaY+JW&3yPfX z*t=`*zHJrTj-Uu}4CVRbp2Mq)S+^1TY|3+sh#3}&Ja>usHEAef8Gzz6Y7mOr8WvH` zP_(rL5&Z~yFr~37q86YBl5JbW{A)UZ{xW$Fp~%aT=zMl8Fa4+|bUY;rg|1q}SD)=I z+uLAoi@mM(w%OZdZ@0ZY_72!PXz!4{WA={QJ7MpPy|ebt*}G)#vb`(zZb1K(%4JK$ zXbXKN+4e<@IZ%|wiHNh2+lm^jhQeDTVxG3QY;S|T&GxoHd1~}QDAs?2&|jw zph#m%#2sxY+Ry?NZDTC3ID?O^P^8 zhOSPw84MC@#!$U(b^l7u1$Jy2~5(JNv-1eKF*NJJ}v;_2BL z5qH>ZJGHI0x0pZbM4Ws=UrJ@wFJiQ{ZOpbgNHe>L5y`e?5#Ia(;L zE&J}mTN1IWgu+{IZ`s~Pdpqpyw71*d9w>6!E8;%3Z6mf#**0z4l5NYj?bxp@W(Eh1L5P+UGehV)rh#G1BI>;it=j_F&;osew`wE zJoIh~fHxjQtk-NC6|o+&ZPB`I+jguwfqo{Pd7Ro?`rb%`6#x{qRU;zL@|Lo)h&zwA zP1&{rMa=8=ZrHnL+rEfWv+c;XW7|$d>?Ln6Vy=ReKN0z}w+V`}Y8J7ox2@Z@UEB6- zEB6;+8$_J+LUBc{_O^-WAGY<{)@NJ4h$rW5o3?EhikP?U-Ldz`wqx7sE)@Bz7cu5Q z5lgeF-MS9z=4@Moej?R=%NvS1?}Wm(2gNh~ho)mw>5jr%YicyLm^z`Tg)R{zFcdi* zwRb|qSZ7+XcU5#g+p=xPx_v0(tJr&B@2PFsK;(tlMO4aaMC?CotGBMvwkGT5p(vNS ziv=~^Sx}#8(zNx)!kY~iv}QVieks+$#HGT!^L+)Kn)be*)mOSdeFVjOhMPl$?%1?> zS5bq_cNf$RMH-7x#IgoOEKBzkwsk0My~9P!Bc^fFlxfz~^QIz}K`3IWy0?g>#WZ$b zVOupdkDSSVGFl=OeY#!5X~mm4nZR4h>O`zJptz1zC{i1FOQ9PTF*eyYC1U1;emSMK zX79Sa`}S7sJ+L<$J;VEq`BNJuC~{RLx+*K%+hA{_y=~C1q_FMwcG}x-?})vlBA!2h zBHb-0a=&feu84gKG@sHqvG>&8nzt71VBOUDwxT||O@pR&D6Vot#Hl?LX;kbzu=fOt zwl?_#Ma=t9#8MHFQ`=5NjIm?IRklG9qC>>JF(|Hl!nR54W^7xBB7YmUZCbZu+XRpplogL@6^b0J*|upqfFj+||4_uY3&r*BiCB&N zNMRcgv72~%VXG1GzNBsIU$IRTx^)rH3;bx2+K#DWIyRNwQRr$-jixqJ2NZek6!F}W zZ37~nRc3Vq4=oi!_==gQqL=8WFCi~4qyU=Q)BU8&y6sz2^pFETO7G9p+5^+xn z`t4-f7xAnR^gGFRB;rirr_N++$yP6-R;P=Y%kL_v8~WX(>k;w1fW4jXF7j7_V(r~D zQ_v_B*Rf(-=g$=087RDKP+aAnss3jRUDeMOCDb!}CR-;j=dvXz!jArYK^xHfQ%*NU zJmL2XobRR(v!2jpcJWABi?WAf4~?47W8QeMVbd#CN4mzVo$_Ac7H zBrk7z+q+`#hP=EnZ10x6+wyWIXz#AQ2l8@n!rmi$kL6{zZSSeQ)$b|ls0NBUsuj`C zXWXN^@|v3ppW6@*+CIIAnO*bTeWV@-gSF-<)w6?y_8!0 zuSLw9gFp`^TN9LD8~3)Mk0)CX6z#89#4HZQ>DvGlA*P_XqB+^Dwf*5z9N=l;* zitFvLcL0jo8nkT)`l}RT9E#eS5OJnp+q7-7P?XvV6ggcLv0{WGSDPYwC=|J>{@+DT z>!B#CG8C~ihqzgQCPcq~ob# z5iJpl{x)dauxZpZ1zkzGnz3yWiZ;1w+ZGgMuq&blp{T)%b%&;7Q`N5*VQWQAE! zhw{?ko~EhE)DA_u9U?|x=yNI0UDoxO`b@)6gdGvl8=*G-$IJt)#W5HU_dalJ>@otU!UDB`PyB5YYixj+%N(Yj_+tEt=6YZ`*0lUqBgCc*MBKiUp`P;T`*R*dsh9WN~B951Sv&c&o6lGcug{~~( zc~R?nq+``5V!Z)HYah04)HG(Agrc=i*)|JBYoD`i0g9_!5iz?!ah03aZJTyX`%oU1 zuL?j%shu9!dt^E`WvfMqYA9M=oo)3{j2mSrN~qD)WNL*X-3};X>9(y0idcG~h^5~& zU>b%ZmN6)gjlq9*|cI>ha$ulq?Tjvu4&J7XgV^TLeWaH-wI-m zhoWUyLvfXL^70Iobq&@vTGs+auG*o{8PZ4vi%p}$Kl=g{60drQAvc&nhuLA8ke78E(?gyQ~wuXTOa4OzDUMGlrld}R)b z9BkOTZSRh~2T-hI53M_f^0MdcF4=ejM>d}L_?+Nl{w;75xTniL2w~M%slj~BtefAF8I|Rj*Pe769NzwUiRyv-56){RdrzyTo z=~x4cxc4btDccvZ^7!2%L^Txos}r#wgd*Lth&w;fms1*@(y{Uou@{2QQ24xOXm78* zeNe2@`t2RCcMvM2u%l4a^dzL(60!HQcL$0U?Ew^ZekkHOBPi;q@%M`O+M%eAZYVkNY~p8MP6D&oV7p^ zVhDwxMKb;(96mW|V7C}J5GahC^*Sf-(GPGM(7?5Ck8 zCfkyTr+1)lNwysk&oX_Wh`CvGK5K=PKYKgu?Xs=gwq7Vg^g;D0jR6rWBj`!VHZ0<; zEhxSaTY=)F@&JmkM^VkG?iBF|MKN*szDl%c5AMiI{yKu;kD=dyMv+Chhi z@lQI=C`9BLiV(xn@ocDw6FKQ<_ab)DP=r{Lj_*K<7~8F@Ku=3~Ie?y?=*ZqvC}QFB zsLE+c#7JmcS;Wi)>3T&x-3vt;UDEL_LJ@md=~%src#aH;5Hq$dLb@U-a=K#gy1g4v zluv(6i#op}2c}3Oy&;N`K&56>%mAsaB!*hHeuSD~e|6__BwH9VztO z6kjLQl&HtLUhDdyhrW%-v9gn1-UnXP~(9S=l%-l#Lbvy&%Q6 z0lhHM4%Cw90D5tvst*>=3sj4Ey8((4YPGjR#Ln6@2t^KtL_8sB+q`Y7wyoKAXxov9 z{sz4?<*MNii>adi#I{k}CTyFuZN@ZfS}-k|HlWDC zrfoa6?b=qc?ZCEU+fHmN{c#ar6_j5QPbWZJB;`^oV$Bal|7e0D2d$1-2a&RJI zcG)UywIX&2w$9Yc}R6A|Y~e_G_U1VydZL7}S`Q5sORjczE;n&+YKi2T{R0exq(Z9|dM z9TD|r+ktIIP{dsNv!c~iK@qlEM0+4t+804Yr{ug99jbuE(~WK%YsvY@7F35|yAX zii58!in#j)y&`#Qpop&)x+&@EM2vdS&8d#c)-^!4BweG3Sp(`$x@PNIpzlh$RuTIx z=+>lbx2^+vb<%Z;xZ@7>Bwe?4JeQ(k&S+@+` zo^&fBMtP_|>DH`Uhb|=DhKM)np*JMmmUY|E9Z9z%;$#9ENV+}i_MwYOR}t|PKXhl( z9a?t;y)o&IMcfC229xd-x|F=xhl3bnp_uckpeVI^C|2AJP?T>iZtd$JTU{^l|n3vc#;FUJK1(ctmUB?uTCJG^qx}@ zz2|aas}ZrPvaQaxG8AJ;i@mM(w%gkY#hSkhdK1Z=%etXhxA#DC9lat}>$XkWHU-63 z(N{#AF+%aS#D<8R{yFz{(o?5{P{ceW;?9L_W45h8c@37bbrCZO6k~fux>9x^qW|s` zF?WmTtF{e_xL0Hvw|C06In#o@%eJkX_Ut{d?a;O(5iQo<>W>tq+hA&gq87SMLr}D} zX(-BSMnpUKsM~>voedPa77=s2Z380KdbZ8jHV;KPFN%077K*j}igcxHRm54OZJVO= z*^zC>w$=Ydk*l(Z6BcMD%>m2yuGrhKTX@@`xT1Cu-<`ItSH$RO+q88{Q1sdjC`xkM zx*hAX2a0}K5^<*iihkK7;-mwL5^5Lm+!FNW)Mq-OSZQ@ZZ%KW+N5nHRQ1s*p5oKW8 zlx;Im^x9c_=j>guchTM@dspmTwRg?l4SP53-LiMb-d%h5?5)^)VDF*5$M&Asdung# zFN-Uxf}#wnMT`gb*4bNcZ-c#!P_%<4(fMq|wowtMdA5yPHx2z}YHKUdD^hK(L6Mhr z5l>A*QTF>#q*f8}{3P^(6w3(|V_o&fg4nS@G1k?KnD?O=>*k@irgRsfwye$HbIetW)a_tfX0${6N;H+OGHUNSUlBKC*n>z6wfzxiFgVaiszsPp?EfGNH*Tj zla2R)py&akBHmqs$N*#Uq=@giK~ZYuj~6)@5m6sdKN4~NVygNCcNNl`i8Uf>(9{6M8?Q|w zo^OI;Mr?{2r&x9s4@nl50Iz+Tndq<&YO=BW@ zG8A`KW<;C@KoQ@HX&ZV;N^J*qQi6UqQ5BSj zr4~%JP@V>*VQLp~H%P?!5EQBPidZe#HelNrl$R;9I219TK+$_n?X9j9x+W-evry>f z>|HW#NyoDRBEJ6zMXo9$<{sOQY%Bd$ky;fLsf|OC+JwC`rWNbT4;8uwD6Xx=)C1-5 zm9kzD?ZCEC+ZLe6>7wX-R{peOh9c%RDB^1uu^zXr-?lL*LQFyt^OT5lm4hPYS}1f) zP{iCUVwQv=Y^R9v*|u)m2B3Q_2}wr<3_11QS$5Q-3|rux4w!cIYX#t8WS`_hgB@|b*E@G_$Mc94mcr)9&L+koKTckDsMTim83=~(M9TvJ0 z6uMf|xM>245K~a(YFfmq`EQC?s-cLb-qa7hJGH9;5%)0c9f2a|Q7B>_6EQ|WQM$*F zV*Xq)(v+bH(I8@kgJNuI6LA^}#n?0jJ%=FYvKc7C&Wb2;C{kO8qCU1nJeLc_czPmY zeExi~BdvxaM2(1j8Pvm-pUXO+NUc-E^R`foYjaTSQ`Vr_l)nuqRvw$s&tv23SR&Rr zP{em2Vy9`_sclt9#TB(eG555I=pRtbE;G>L3(%iq@WHcV(Aodp-kgYa7^E{J(N$Ub zi$!U)LXm?u5qk|N(wGr(M;3}S=AlSqNyJ@CC}LR^(Yv8YcUQ#M%Ko`XcMXa*S%D(8 zLlNa-+o_0A@3hE4BNQQ;MBI_Et;4o%DDpfAJui(6Bi4PP8trY8jU5ma zBj&J(ogoxwc;isi(UgemfFiy{5v?7H>o^e6FQK@OBPiPBiHNsbzf^>%5pl=Uwh0mE zTwgBUY+r?<*RDg+&o^Y_`-HOb3!29JT14FIfFiz5d%NuIfqpHeF$gUu8ixL7 zq6yn(pg5IWg8o3h+iq`%z1{Zq+S_OEpuNNPj@UbH@1(s`_Rd1_rLK8< z7wlb>myy-9X5G4VTlVhQyK8U7-a~tj>^-%&^oXL=szjV~L3#ez-Pv2Vx5?fXdt2@8 zu(!+JZhQOe9k6%M-VuAp>>amv0gAr54n>>X5HVUnaiVk}Vg!bwMI4J*Hk>b7dkqxv z)k0Ap^&;LFfuij;iFhszic_#I5vO_3Na`um_RiV6Y44%EC-zodbyi>gsugh>1w|Uu zBF>wjxZVX3qW~0N{yGwoiK@a@E#i~}ijlur#3}>&z0}W-u0E>~xb~4}i?x)9Q4h+; zXIA=9jKzo6oyg0bGug<&Hxwais)>)0>s+>AYJF5;%N~7JtEy&GziH($h4;u*t|_jg zL3BQAhu)vAV+)EoWn08v4T?NZKemXkuC}0QC|2R6#}!lqz3xn&=P@W+&bWws2~d>e zw1}F4V(eVDcSXdw27Qodc#2TO3=92XvK@$+VWG`rI}-7hB=kqgb|PXu{`j-nTh&7m zOBq5&8VyjS)+jG)E_tuY+M(E&bwH6?w}>~8p*$?RMJSJ%(@-dKFeN&l%|LlrRu52w zSTb!waT2{F;(DQY6Zim%GwEa5c&9-&TFw*B>YTbt#OMR%@zIK*cI`$fMMQU|WevVGApvYAjid;2AF_yGK zv4dJ<9Z;-ux}aF+^xHNHMP8<% zSm(?^Q3mrOo&|#JGlhC1-_Vz)MzhP)MmE@?1=M_ZXrvb`(zu0c_fyU+s!K9?O>cWB*-ZKt+X zeM=E@4HW6tig?P$wz6$aP~@criqe>dqK;;y;|XyQxrd&caM4-}MinSZvI&Y1%_90B6eZLKMM(}>H*DP$^a=7@%BDrkOi*0qqKJEPP~>mj z-VJ-Vpy+u!_U_tSf%a3m9NK$i@2PEBxwy7!C{nAHjlHD34fZxc(epZ>7>heaoTNfA zs`QBXN<9>N(|!@VF(}GlNW{(`idkq<#0&vFl&)jL-fepip@ZbDed^h4Cs7&tOri$p zvx%CZ!$e)sUnJ_Yt{?iFWE+N}4NXH4b{>kbo6zUc@n)TfH$k3O)LWy7JvJ1rWB`f~ zgCbTVP_&JC(+U*tr|#|P}I?$bqCg!o>82G)IxusLNq|p zr<jPE(+WWg3cf=W=ffu_PU5ZX)hJ*tTlhnr-X0ZP>PH+ddSj9ptu@ z#wir7sk*74M(FC~?S!I5^h1&R0TJ(&L(!f`>>agt%-$*J9|_FP)w)INmaJQ~cg@~) zd-tFy=L72wtvi9@+N!_R^#((cSoujqWX2}OK6 z_U_udXYUCVv6P=*wAdyndO$Z6Iqebgv})Rhsws_9wkzWN0E$=+McntZ z?bNoa<|5`+D9UOGit(lNf@1GiC8D3(Rxe__f+AOarhe-NtQ&(OSK}g1CZK3*%TV;` zV^i%5&+6M_4N#=f2t_PSBIa5sN@x^{Sf-#~XV-f!o40Klig|Dyil_cIp@?}4ikP=W zJZ}L-%mXhfVxEH@pGtgQ#FHT{MSLSr#4;*k-3di3TTqm4^^1%68lbuqU!#a8&Y_5< zS;YJ7P{dOGlEPaf;)DeXZ-c#!_BPu)1U)gOHZ0=)IaHr)$0F`qy|l<*Jrt$Z1x2p9 zMLZ{CTd!>ctwos*LJ{+jh>;a~a!PGg#5x;_daHR^ky`b)6|vMn5u#SaGa^tq#nLaL z4?+>kE);ogYdf1gHR;+#?1f%Y#JmATESn*k=Sj|He9>DH`Uw{FY2T`1NEd)Dn+cVOL-y~p;R+FN>Mk>@HA_fDY5OS`=t_IBCU zZCkHxeYOokaUIjp8`BzO-LwNmX&ge4+6kmy+wL-jRHh>OFZ5iDJON>Er@h_w_L~N+ z8?tW1-Z6W}?VYrD)--S3f^|#wuGqV3@4CI)rd{jytgG02Xz!7|C-!F76s1uTQCm=y zMm_Yb)OO1vP6(vq3t=LDO9P5IZv=`}^Eeb`KM(yhrOTO{h&3D(=X%Q`?r%Zy?BKeH zdz!Xw*|ulfzHOyf71vQEV$B6b8Vw@Wgize;ZMC<}-VS;BG5{3sZVp&CXx*%BbGEJ9 zwqe^Y6weOsLDA~=MVxua%iR{}XHxq+hT_@56MIY7Ml9T?gW`&6Mbw9FO}4e#)@EC` zZ9TTl+qPianr-X0?LhHt)UJr{uUU5>;^f`76A`Vc!+91_3%0e|)?-_*Z9`Dh)`*Dx zIrNz{uTI!IZSNeUFQ?hI0_n?XP?X=gh!$o#g`$qK>w=htpa@YT;wca)#+Mf9_TtMZBkOTeFCB5PN&<9ky-6x^dek ztedlK-nJDHPi@${YwxjbC)Sm2D9WHpMD5$wYTLAJGq&y9RPwV|!2Jr3cuXeOJ*#Yao69SvF1# z?X8!WUTbfIy)E+6f9-9vw_RRp!QM`Ld*$Wa+unYA2ju09(cU3@$K>T)#oh^fC*|e6 zF?*-&otKx{)ZRsVm*nMpM)t1QyCE;{QrNp?@3y@3ZhLp_ZM?PEVYJ^?&@cRa{^vcf zWSgC3?Z4Lk{>{vAs0%9Ym={$|2QNnE*dcOK^Y$m6?m-3KF` zhlhD`UPhabs63rA%FCymhyOrBr8f_I^JaAw5fe|{`i+q$p z%9STQEDukkY#*26I9qu#{Egy1_@y~h{z5KoK zgFpVj)w}Q9O^WlR`w;dIVSixifk*C6?w-%8=s$JU4<=@{vo9pi+ z&TI2HKUk{VpQm+}lB3cZO6}!;rnf!#lMhty{@8BSM?d(`L(S;lM?C*Ik7x3M^Scwf zxjJtWSI(W=f8qN-f91+|5KqxY zM)LC7r2fx7qVj|IuFLbJe}B`%%JSj7Mcdgxx0!2GOTTjE=dk@0|NiNR*`AWES3QP* z=L1T8Zm0dfNbTQ+2OrA2=ar|?=GZi4Pswexq?$au+Va&8I=OW*z;{{1N0^6vERqd(fU`N+J2 zug}v~-+q1`p8oO3bM1BAd79r4_4+(?`StFd`N#$E%A2zB@}u!z$~Diu{F%#_KHT`w zWNX6DVsQ-N`JX^6*^rc|A2s|LDA2=tuwYOnc*ZQ+^M;=YePK{_^hAFMsOth3)yx zCqJHiKfJ#c`bV5;ulp_Hc(7*oCwHs!E4;drj~{tm=Ji<4`5P~9=Vf&xT#PXf?+bU3 z*Sy`_#NVPVwaM0++m!#0<>T+?@?N;vkk276P#HWAO@7Va#J}@-A;0cuf8#Zeg!6JK z%KPc$q3E~FC$5L@qRdk`wdK3=v<@!6@x#w#mU~>~$|E19WxP#g^>Wh7`(PRese_m1 zp`6zVdN_!qg0#-= zH;?P+@;x8^RZ61qn=9$xhbitfA^!;T-goBl{$sK=)sx;O!hckG`8fH01pbfZ8uI;F z^#2WB|JJXJaqpo#UXQJ4Z!e_Ju6JGDynMrl-|^5x@^QIBeP)T8R_UsQh7i)p`) zq3rViJu~Zg-plG#~*vs=4v=z4ki zrVIRQw0z&lg*(2#e9xON-h1cJJ#Q&D-r9BhP1p4Dx98RydvAYr&o$S6=k2e)@q4a& zc9sXacId)g!{xg!-Fxpn_m z-hOS@H8*wNeqC=*1i$IR=%u^vzpH%V?o0RGGji`e!Mp^I<6IP|bc zF5Opt#--kr=r#XJ%~gDLnn_3OfB4=;7|IRxv-g{qp=+a%6@*IuaQ_lO%{#2HI zlE0tg?-l-5`1@Da4t0F01xMSqfn=h8%@YeFc#XB$DKQxkL*QF8| zxHxk04ib2InM=O$=GR=)bz{fv*WG;EP5(Cy%G<8{zlm@J_FJyM{if?~y5-jI{(5m0*LeM{*W7g7t8Tmg`s;4J z{ol^!ZFhhF-S@oZ?()S{V0X}3US592Xx2lUxb4>KUS59PjU80<>&qQcxaEzWLG}`9+g-HL`@S+h&xc|5IhVI+S4A6Oz-h1)Fz+3YHHhSWPkqb@bk$c~okI;qj4Hs#i z7t1%&^hO4Hri47%VdfQLj(HcE#PYh@Yvgx51!HHHUB>2 zQn``8ql`1pZYtl$FqscIP33#;yz{<`G5k1mF;MnIZ}?h6KpxpB@r^N<%Jhcc*57i;!HXkx$Y|IwR?1 zon*^|fQ=0ZoI*<=9b=pJ{zxbxKtNzH7?SXY-V#FG07D3!1m_L-|9z(H?cS{nd0+DR z>*Mk5KJ&~o&ph+YGtWFTyIU3M>FZEK&Z&|Fs^Ul#>E-rL>am0E<}GcG_9d8UgeC89 zj=%&!t=INP;^aFxs(};&3RHLX^lk9B$YL!R4rCDht+9w0AIiK~%!i-|f5bB(k+8(D z-FuOjB5K8*6q1uPq{xRCuwpeu&`NrV$+f?ymF7(Fiw5>Wo_%INNU5NIEj3k2Bqxy( zUlvqV*%D!K{q2$NNG~dD^@scWVlooY}Ef0f$T6CHs2X>C^3CQX01 z51w{M7lf!CwMZC^h{wr(4p(A@@Kj%_<#WG7%=dApP*rA~QM zNsAqY7w*O==u>yHRGAj-hU44a5?S6G?v9gwON>ygJ5tx(3imN?fvk!|+dKN=DPl?V zVrR7bJk|J~-dH)t;S4XqdQnVKaWKs(6io$|S|e-zsw#}R3u87)&G%#Y_d|KP z^7n1%5sTN}NK34}n^py8)rlrkX^h3*XtTM}_);Q`WIY=3KQ}dBQ5j7OSJy=@n6mQC zaGKPL_bXDuWTI_+7>VKn@{g`L3~=iohf6$lt#ApCuK6#@C6}jr^=Fo~!l=wCmPGds z`JBGObI4cx9JPL;O*E3qo3trk;#hgMUOVLzP5QI8LqP1XFU^;AD|(8i`c-Xn%I7$i z^0qcA{!~8wBB?)$sd9>rfQtWZ zWgix}DnBJJDWC9cIA2zOQodOa(UpnQ#I^b}={w|`d8f$o_@zIh#edcPm*oTBDjQW^ zP)YEn;ObY^p~@;a@umK3JX-isWz{do10U*M{eGqL#6M^cTffQ&j-o5B=zq-LXEs&_ z7b9whtES-M`b9ylVQ%fb&|IxyLG6Oj0=k8hMS{A#YaqV*t0!$q0xBB;?yj)T-iP@}b4 zQ^i1qD9rB`3@i|LE0&(NblIw<+Pv8%2r1O8vif1|n1;GySVUvaPtJpj)9POrZH>f4 zK$cwEc%+jDCy!nz1#4B^(yC>sxG^GE>y12crWQ0EG!w}c{d&Hdhm$K~YJBN4%fBKX z@fV_aWvsg`+FsKcZjToN39G4atER|XJ?cL4O?tvuV63vxD_4!-OTyn~0YqOiXdbGwf8<$rvS?GteNP6AsU(v7_ z`ha4@bx#b@RSM)nPv8$nTcWXkgzduXV$oLr+0)PUw{(Pi5xI}_YLS5+c*&7of8o@4 zp+co#8(2U?+^$QLd6lusMjZRKdX4s_Gi+7YEN==wEII(}eHm=lVHNkzxZl z554H!UdTk+34aQfr5>RaDHs&u?d_s9(-J|20(mVEH)JS_4A0!k#xs{zCYY~M0cz){ zJ1I{w4O)!Z88S>=6^%oZ8_eJn4@SwnMxlTrE=A!a3RKBF8A^1_TN#b4r_CuD$BK)f z7K%c|%WIZ3K+h8HzC}V<-Sl)sTjKEhDbTK=`Is>(V=b|;wko`#Gu+*(ol#n-p-${946on@c~ha4N&Z(7?QC5va<`bdl*zHmVd0%}j%1~pB} zYcn@Tpvs-Gmh)0kWb77}mKy^L1+rCg6vQx8P}Jm`3_rpKomd8;+v=sZBX)}#y0Haj zYxNAR(cHz5g^&>Rjl_s5_}a@ zqJ<>GV-nJww{*s6JHnP;u-_{d&ntTyF@hs8F)Q;=ttcEO!L3L5o->45hHcn5KDQEPi_b z2&klNc1d{~;%J?n(KuH2-K~gdB+n<*tfjE-|Eo!5YJ3jHfTDT!)cCo6VVg+sm=G`` z?AM5UVZbR5$?ieHBk80)&u|;r;q^!Nyo7#m$E}d8cO27G8~I_T8&_l_4y&VPxE~$45TEs%!0IyMMn`L!y%A0v?Fi{b(02}V?)|iJ~XuT$r3dyTi=UQ z33g%$nJ1(~XmE3qIHJaIMX@W`od3{YmNsV&HiN(Rzd3U_Wm1-4yb>k>yS@DUNUwig z>Fg5BnhoLgB1$JSp!;#09Px|bHMB*jP6}s|GP+;vjH3*E#{Tv=ZRx@Z!0vW?w6CMT zc{U=_b1*r@!`*Y~mu9x3{z=Mhkw`1edYrJ_2oPK5ewrZ94)>ias8Iz+C1_?!%9XL6 z4ZReB^%u9y@Rya8l^OVN9z+3$&fggB?hC`ci-!Hh0m=6alf*C=g7SYxIkK{}B830R zRh$}cstPU-@}okWlc`bU(wPe!@xgXUv>m<#_sSJ2G(J(}T>nY_Z~C>8fvE$tvc!+L z^MC7vEc*Z;jUi2-JqV>UNps*Z#zE+j&?!kk>&0%2)$AeM4pT{E?BB3D+<4G*)1=#=>>6LjyTRUs76DUNLvx`~}A!H%AKv8>{D4fYbgyoW$T(C4p&GD+*YbD2FD1is7|w6cvUb{w1)h$e)&O3#`;;|5%2xx^voYlc&sbqd!MZ7 znY**)?d{)h{aM-IpGNGs@3js3+b`}NeD%5Oj$8ce%%KbJyfDMK@2#tjefY}OynB!R z$bZM0MQiW>`1RmJTfX(eA1D6x;GerrzvqQdp19=s%`30(9JA||^IFe8-2C~wzl~h6 z>>StFS3A>NT231I&rfrG-+9vCeZn{LqKgj(SHIZ1w*AIu4|-0leZhO$=a=L@ciuf& zJO6phJ##y+zbo|8Zy)$m;P8Y0??C4(W&P*;rTXdImtH&bq-X!@|CPKtZK3x1=^Iaf z`N{F&XCA)ilV24SJ$CoXAAbKgPmkO=bl=bJa~Jyt)0*yjHD}M1x3llO?1I>wQHwjy z_^)HbkDO$*{rbw_YwOb2{>k;A|GDdD=Dqm-<(J&KmfiE~^qmJE{(1Qe_Z_5)%-7q5D3G?HpM=SsJYIjA=VEgUQ z+_(CVal>2n#<8CAro~ye{q};~KcBcZt^T&4dwO18_CuHYbACJZo{m*_UlQ|YzR-66 z&ku(GFyip*-?;v_ug)mE{+T;|b<4|79COm$XKu><)$9|_8M^oO&fo0vZ@%wuzrOq7 zALZ=-wdY6A-Pw11?ThdHa{Y5Z9XIVy-p%7*i;vE3Ik4q~)@x5*)0KP6S!>SEetN{g zpB~A)X8JF*tUG^}@vW+BMt<Xs9J@%LT42cbnh`Qe)o>mhqk};(uLPNyX~<@Us=%b z(O;H**#5w??W-QV>Cfr+oO0T{yB7WNxZGD3Ps;k`-%s_-TYbJaxcmLpe_8RD_FLZn zZg=U1hoUv#zB~N;iJRLVyy3an)Oq_m8os|i=P6HZ_5=5icNfl?mbT)d6Mpk}arV$% zSD*E(yM{>)bj36wy){Wx~9v0YkKBS zPMJ62ua~rE^p07jrCogL!`~l!{(bv@aonBXTrla^IY0jHb64j+^x_-$zW>?<1%LTd z_6yHFe`#p{3m<-V_n$kuH~*3S_xOi4ojvXTzwcXrM{IrVz4>pR6*i~gedv*(YT7p{J~bNs;mtQ+2YF8Af-o4rdPz1wqqcv}0-{}{jenI*N+ zx<9S&KKax&&;H`IvtD|&E&DHl4^DVxe&a75y!G*)J@EQPPv2Gh_K|x^CVwCo z)wb{E?4I@`6ui?zyaXOijrxuJ6}; z{>t?mqrdz|)z&-DK62!tm(RJpaMYFOU9VFU19oTjHS>Kp; z+Y`Tj``o-aFEx&>a&LNb+bd80&+~7+`QQ5rUdoui`?A~@Kl$6(v#QhHK5*-2+u#4! ztL|9)6^mznCv^Njk8Jw;+RF;VKkdp{@W$s=?>w~Q)~8=TZS`pn{JrPFhacK=;g5^| zIeptZmz2E!LfWx|-s7Kn;ng>O_@_5NyWmC^S^57St16uF$#q9&R^D86?SCDA!!`ff zedgJbtDnmG-nTw^|H!lFZnOUY>c? z^Oyeh`Z-sGuBw{9_UZrGby}#$DkBoe3Th5f&thbHZ zw)CC)+O2n-^T)x%>l#i!`TDLsrMEme-E+qi7oGX=$Ju-L)LwP-i>J5zF1>xmjIozw z-8+3j!KB&$>YBA=Ozwil8D8d zAU%!rHqvKEneCdUBh5lO9;puLOr&?XZ}e z5VL@<)h(@Gv3#Mw0mn{x@V_tC4~^}KMWL%QIEGD9EUAj=DHlsFCo_ZZYvCb>>PDk- ziQjs+*m7rHHdgu}9{zVxh4}rB{Qa@~y-EH`G;M0@?5V9grf1`rBxM&s$ z9Ea&5tD>!a)U?I1_Grtp9$eMadDTX22t?X!cTu_{t!cy>hF^DXXpePM%pG?W4KO7~ zH=IlyIgKqibjpPwdrNkQyptUw?>Gla9;H<%u5QZYjoB*V4w;F2l7z119q$NUu@%58mw?9p<`g6a<9Jor*zSu+$|M2Osvw<s5Hg1!0}m-aG#S{~()qbgNmQuj{GmXq{|53ci;`ay@ch9g*r^7|lv zKrO+9ii$)?ZdM_v=T{V1vXBhsL~TSA&r;%+0xBn!l*-}MATb+3&K26)h^GlVBbD^@ zp%_`*x+qJ+Z>rb!i+G5|^fY2io(_wH!V)}?7qxYr39-nJcUM9OQ7#EWN@oX|1IaAL z2WTjQ5Yy@Xk=_j`LAq%UCvid1Ny_2o2{MrPLfZtC>lfEPq7#kKeRX%MA_`qg;Nd2L zL`IC$wX>7})3`V7RWb`e<5etc=6i9{Dp^4N%2II{zp0B0D&Vj#&cV1^67DgfE4uNp zgn1X_N8H7>AqfHE0SM=27t^K;ZU4zmRGn(+NYW2@PG;dscyoOb>>TnF#u)kh-pm#P zO=OFEOEw+0Puz;RLmb@}Eb*ZZeiD<3=m(l(obVt%G0;SDlr$kL#K~d_;xdS|in@jI z=u43T%1Ykr@a!JUx+pARsv`sq8-@Ti#`=5t%n3RIqKZgfECL6L1ga@Y-l`(j)>`Zu z%2{(-rNUTYil7xH^(N6Xb#cKVT1e-@6B$WOvCKObwXn=TsnBIT7MN^RDa|i89_KiB)DPQO4UPGs-O`%B>~JEhWmWB`Pc>Dy$_cEF~(eCHRi`fQ=sk zvQ;QRl49I4TvpQVylntkJE@c$3p;=WVuKLJc0dXWX}1j}o{UnKTu~XdGR(O@6vkl{D?qJS z2n8#`cJcu%23dmD^JKE9sIgfsYY0hp3;Cpk)EVvL>q`@-vLn)Ro&`kbJ^HD$_*)v3 z7sVH8Vv24fV`IH1O}5GFGPOE|zHS=^f* zs?rQAJ}sKXV#5K-7Y}j1Dgm8TG1wr2)!_s{eJ-0{+E2|$+)&@jyE1DQZY){l)-2pu zvMQ`uxS=eY6icbXBuFX}r((x)pvB!F8kg?fAslc!kIpTkjANb}uC`Lc6o@NiEAcu^eFK8J1OvhkXJU8Y0)%Br|xK)iDG+TRXEz$xPb=`<%&(-SXxi>spv2ia}-MohAm!V z%dJ7^F(PZUSP}3mBTA5=;M_EL(Rmf5lE{z-bY6vNLQROou-FUkNudx`#>I+-k7!&< zM8d`)7DVe}bjH_gvxtgN$c;1*tnzS4S(T+S3%ooDZV|DQ1HyX@r%Z*zBB~-sM|KA{ zeZ6wNlDXo}oQhPRqpg z?ep;IIhl^AIt41~O$O64CVvAV8mNUlTdf8h$B) zvcxhz0$;v8qF`K~C0`1bsDWpo0W@MvhGeytWe2h)Fo9(bHJQT~j0kA=%6A1=);mk0 z-9o!5Y$HrMPVTjI*hi-wM15Kx##w$Rf|x=2yBu>QGdxIPUX%LD8y-|JuPqro2p}`W z`d{8uki9dnEhXe~leb&un=4Q!pjcAdFl`l?i_+A>r^YnL=VPA z7fOBPuW(94*vS6NyZUHPgm%~=2fo1LTWe(7tZ`L|OY#vzF{v;gi1a!hKHu^Ps=!sC z#Mnt}-BBeNNe-l-kzyOpoL>3vn|UXTpcPnBa4ITjs#;?UjV9G#4iqUA?Dx~V&T8ld z8nnlT+O3v!F_&*$Jc$Yrli5%hYUht@xrkHCKI57z(M%9YDhWoSNd`HfIaI(KmsFJd zt0}NldVKiU@r1@D!BV*s(a0pURPMy`APLQZJ2`jR5&0NS2BkKF2lJB9xPOoYOXW_) zWs}exxRX<+9g!Q7WKb%1JkFMc=D;0at|Xy3^sJbulkmj2w*#%#%rVD-2fMj*EG1)P z&UwOu4U;!)eZrbKl@ftJ#~f)GhshhhE@^n3%ZZqxQ{M0`J4%_O@TdZij&(`q9r2PYBa4Cns|48m= zrEDZDF6DOAhLo}iusC%WU~x(S9}r^IMu`uL@hqO7*MYh&DM;O!1r)H5D^RK@bkD6%8|;@DGA`g;%si zE{w#gSIv^NuQwus7cQt3>iB!&oYQm8V{N#a(S?nL?|1j zLfV$VvfLH7K;Y3RAVMZw_z6%IUcJ`71P^+^C$7YSeR}wcByI)ctWR%@&KOytkOH)o zfOx2!yj2=Dcm-xE1R9}M6_zl8>D6yZ1j#=J3T6YnG&kr?<+z=1nlmWqPd@JZ+7IUm5yFbf~lK&X(B#au-{S1Rk6t)fWpS@F!%W;?Rjf;t-q$w^#_p<&LI)2zB^J4s1iz*E7ZQ>&oD{0dUpm|TX zT3}7QpKLjBOz15F@up@>iB0RcgJ46T5kc=SNCL`#Q)uNU>u72(&Z+ipkZMY=kKtY09_ee6t!io(D{V`TQv7&-bCXRi+dG@$JyD#ERmeU4 zlJeYCP*YpayhMd2CN(?(?|}2s#7CtVW{QjjZr7}++C6E4i$cdXB`aKm@`J@3DYiYqTWvHN?za+59 zT8|9h@DYpW0`N{6dqLhx#l2l41T*HKFy$oSq=YnG$;QSJ4aNID;!X6P;3kN~F@r>f zH*P4yXyR}a2!$m-6XT3W;G1GSi8`GSl5_D+<|b_0@TWeLDC3PMiD9CK51C6eFWky4 zv)OI7Y^&Xs8A3|QmCHG17*PuL)u`x%|*7@OC%6r-#%`G+L2VEog>4L^s+d3^Pwm zxC+Z9I8qPC`&ybh zTIs!yN5|v9?4`ee{Z=^oWK|)ZuJg75lSsvq| z!!6Ej6Hn<_$;rz2(>qqUtR@96D&S}Sg+M7NDfX%?@=5?@ghItB6B)F3DxR?rrLBj) z5?Equlb?GKXi`=QjFdQAB5S3Hh?>t1*&a3^s0fy#0piG`1>elE9BQVm>sC?z6UW(>+PSH`WZdA6rYEEx%1R#jPg1`QkTSRyB3K~1n`t=!sA zDHwc1Tdws?;n=H6_DxIK?4PmXZ>;2vtJt5Bc%o2{AZks<@rZG+SdHfl0|Q z_vMpwlIk%@nN`rdPcdAzbB_Z!>L_W72AdnLsX4Os7EP_AQ(=)-oP`=T&mo6{5&^#C zu1|>>CL<(t3}-qmx(EHX1Jp>d;7H;YNMfe40!@?5ffmK2h`vxVR5yGk8G_{8M8`N} zHdvp+OfG5Fdxx@8A%@RUXOcNxE3u@;J7g`Pb*@~x@^C*HYEuBRW^u2?ovfcirBk3n zpOe9~{gMJB?Menx^gRV;L6l8X+Y)?!v2RV-K#uK{H2AzD>oP&k1*}h)suB{Wc0{Z* zouHgNK7}}GVloU4S*AGYKDYIcfcfQqSv+!^w~%}8-#{z(e<@+i3|loB0I6iN;e z^HQ=B6(_dUB}42^913Q?EQf|uV&ui8mqxMSqi(QgJHQHheL~q%3A{K~jCmnf4l!a_w~{XWENe zkBTJ8WyU+38Y8(dQ}7oASOf1`^(c1=vWhE#aT9Y~-ORQ2|ip zF(W!}n+)TAjtT5`!c;&Ds_YJlT?)ds##rEXNvaGY?Be`XcmB-AB&h2j)fmN6Y@BeoS20Ak+~LgPFzm27KoZ! z3B-MTIpS#&BA8`eNViG3)(MSD2yFE_15v#=d0{go;!y~P4DM$Dm4EQ7RGQi(pp=On zDotGy&=FM{A3Lg=0PIjXb0qLJZS8Is-{1i1aU6S3Dt>L98_~cb>bE4Iww>o zUh({|KutU+AnwJXVOmTh;vztJhLbO@#T~pNTP`Lpo+}selB^wywSy`wkk!3>BZaI7 zhf(mNkO)6_jKgdAc&Es)%-Ujjk|V(PewA#JS75`SB_DtniJyp6&nB>7QtPKH|uOH4)3@_GnSD3!b{Q7V<)yp<}V?xlj8xAtsh zf@HR7eAK)+8Y

QP|9q1SXYVA22Ex};3g_C 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%0D_gY|WdU9kv5Nvn{%4Xyg-4*eyUe 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

`p)EV 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

ce23;+*`v=h-wwdTG~eWRmOX6f^Lslk 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

GE01fzoQPG-b?KKPR-Ef&S46C9xTdNi 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

  • 4=^k>#@(#IrB6G=O@33D+UD-L> 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
      hVeZP zOgh8-hR*JdgSR^LoA5U7ndKDT=7YCWomuu7*@0WYOBCFF0=v4?Vcg?4{fLF)U#jUg@+e~X3*`uO+SEnPJ zhxM__NUy7m=taDxcai~mr)MAg8tL*%d|~SbV(X*m2i5EOpU5uO^>ON@^N5v?J^f|$ zpVs#stbxi4>@`q@WKBNnW^iYfu--9EdwpBZTFxD-MLpYBmGT9Ui;yz~_IdDb!Km0y z;i3NGFtOLpxFvJk{wafR!Pz@iTlV>to4XxuHo#= zyKFZXhvU)9Zt^6%cpFPEqUCgYd7keoD|~A$I+Jx|@O{_;FBL(w5V~aKC)zy>UWNZ7w#pne@m^alWAksK1fvkm5t9sg(*C} zm;HAOFlkIK|BSW&^t;9@dKo)*qDfXalRNCjaO$oKQ^nSp?4&(rh${{A@6?~ncLnZ4Iumv_DE zUGIJA_`QWVB`GI4eP_~ETc)ZN{c8r7z(VS04?L-$MN*gOA1v57OlHnp<-23poqQ<) z{i>Ah&OdBIk0X1R?4cU>8uou#)3QI6-DhkR*ySN3$o`l{+!6C2aiHu0HMUaT-`BsV zqjUkW>@t7oTS8;-366`NB4>m?hJCVM&=;Xc0X;;bu7|jVHOhMUm+6tI+F8aeT`08-@>mKmg5$F$1br%X` zFE`Zt*=NKLOZa4DzBS24Rr}RC&gkK{=sN_Th0hV3Hl?B0+5n8v>urN_6*C`>zhOV9$T^ z>>P{Fw8nU({l{4wA>T7}XpK00?(l5|2h4`4HSl#yBh-}8d%;!F@h_lm`BvuT7yQQN z;=E8G@^~I};wI?DjnIu7kjKZ@K}Ul5m;a;g0`_j1Z^exS`O>O{vhP5fNt+pKPNioRRmc4eI*+EoS& zl7e-XUQwr=I>ld6`X+QKRFAJ)-$a)a>YLD&5dW<6@U)8$Z``)jA$6ag8K6O%kvBWgSNm=X#^uE$D}W~*L#AF9mlwrc zi>>$|xynQj8j8UKH|p18|7fR9@xczo;I)5|T6_45Yif@iN!6cA+e+*zdv0nxTqXIh zh^PPKO*$PEekDPC%{HpWgXANd7g(o_rL0lut9&bM%Qs!d)bEJZ3&M4#p-$xTZh3um znCkEYw**E4TcO1|OoDb*VlJ?i$h%&;yb*dQz9*sFz8?{9A^ggvbJYK|jdBUy<=Qg~ zjdile2`?e%0zp6VeNpwx_NeD_|CCm%kBOY;ZuW~VaOO0&&3A!eh!zR{%kRtk81R+t zrIP5QypuTV(D`qP^gdQUriVZ!5Z|W(0QcvGOEMPE3 zw3@wH>?c0-pWhiH8pOqWS?BP%3G>K*kjI`bI3isSvGLwXTUS#Rq@c)H0Qz*FiMm|TXZ_|u+4-`AZ^d;?E{ zdEuIAJC8Xc-xzov&^h&E9H)&&a93mfqxTqwz9?RDwO!H|HL<3SMC3S5MTGQ4fjG8O z(HBL-I|lVdA-%`d^+gHRJJD~5-a~XoLiDi<6OLqmwQlEr;b&9+e zau&Pni%(Un+T3b2Wxc^ryGL0&=NUA7x)YsS;7i^!gj?TL;jB&7&}Hc10WJ+Y_dRN> zqHc2iai)Z^p#Z!+q7_4W|<4J$85uk66>=eG}gR-;Pe%0GD*2p=C zwwwh6>D%L#m1j98kenI4>RrYJul*)D^W41~|K5}Ktc=v0n*wL2iTzpp;hy=bYg#LP zB1aIpP2%ehsU%P9bC23uY13dBklKEu`(^pgrTV9iHO6{e`)h5q=W)GIZNsPhWbXm0 zaxeVYe(ICCFf-?4!KDKD_haxk&j9b9z&Rh^-xEPt9|zV^!1*)a9DOC68CM9-*8%5R zt|P|C`WRq4)ME8M!5MYw^hpul5l)}>sGgpunto~9qoO@eJ@>F}CNgt4=NU_%M8+5X z4BYhK<1$TfVH*8uSyZ)d#KbJ`$egSL+a7SA75XVOQHA4g#@du|(2p|vY~u<6(2i$?|@!Mo79 zCAW;Td!9v+Eu}w7*I9=0Eb95=b-KNcbtUx+o&O@3Z&7rro zjiypA$_VY>#u}DBNj^)$K=f;Ux}G~2BGzQ1Yar1efY64 zo^Q;0zt9&tFJxXl|6SMetE}sJk#!e5p?z4ZFJ_I;lKhpd@j-G|dL}oE ztmhR?57>&kuV-w$dsKu+Y-(Gdd(d`NDeF=2Q2c?&8CX%1oU=e;fy9=!$6)Df!X7ZP z?B~Q=r^OxO?7vUJOH{!`xgBC>>2V>oHa(&AO2<4VCcfhz2!4sZY3W@ z2J6+Hm6>|@fw6;7%4!RXz~dO8drDs{+OZ+{>_BP7pnpsdh_ zh^X|Dno@E7{m!}IiW57=H~%n!Ue)O(aNTUf(S z1nJ61*6<-iPfzQybbE^GJ+>XrHL_1rSs9_k)QJnZAZt`GD4 z74sbMYYum&Ku^v=Pi)YWwnIwan*y{lv9lW3c0udBz|RL=>|m`s?{}Y_&N;66=47vX z{(PODSm;Z!*2j~-_t&;!;!g6nZ;)7oldGU7OX&;W>a;}i@(3*s(H6;{>?2>A&=LG{ ztinH-7FV?-5yNvh$TPMbayK3{BzXVMcrJKEPP__jSstJ*;M|&~XRu@X5-+o%%vg8H zhSIhCl5I(H$ND{Cb&|JmKI>C*(+f=zo=n!Yjdd=#=3A1K@+^3o`G(^-!mS%-HnG`9p;yts2u)1G|Rd^6qiJoj=l?=UH&Nx=+u<8Y@k{Dk+ z{7!I;d=qaJcqIZa=HN6p2-;qf(Ip>+h7W-mi?$c`K^0fn&E?g4&PsD2%Phz zzOHJ~%aJo& zu*BNQULo;yRmMJ^dT8TV-W`BX^BH@y7uo9N`+@97ve)EmDb|t?%3t1mW8lnX%CP4o zc`WQdm-d__&nosH*>eIiei}K#@vU6Eq@@?UPU!5l)8x-T3_c5uUZ>NXWN1#GZ_=C> zf;9TcD{1s3$C-;XI!Nz@M&BKv(VjE#74VwJjBfwcX!Hx;L31t)lRfYT=*kteXMd1R z8^!iwfc_X+H(`_u$M({r?!phyQ|j{;pxL24t^?XFbC<&0wLffd*n;!dk*Vqe^LL4k zr!#*-$3MO5{3Uu^%-?+UUB%3k6*{npF=kgSSttBkGkjOs!k?d&+=Hur_F$tj_wm}z z7F})-{;e2asCJ!KNF*hu&Lh-|j~IGQ&l|c767Q6{-s?#oU}T~WU`Gt>0pCSAgq()d zDQlkkbU8%k?==2n!iaCZ zrK`>1^WQaxKae>jm#60j=4d=~H4Ygmx30?=(099`|L9#B@k86;gT80+JD1Z$OXPLu#u3DzNFAH{^id7*>Cd z{Reu9-UGRTJUQ|3PV*$!RG7OK-T4}HjiR zznjw!Zn0+#mt2QK@waV5*C{;RvK-F!q|HM~$jg0Y-KN#Q9;c=pgBR+wsoKcY>Y_<~ zs*8HAsV;ghyt-%#G2^1AU(WRj{3f}V{SwD;jQaZWtT;Tm(GTp-8N=)E%z&0)n<1xq ztw(G$=o+f+YT8~!&VqBs3Ol^@`<#QaNy{$RQqto3#!On!PR{g*h_tzG@XUT8V$`2F z7iE*yx4a3Ourw?+ZtQicqJ-aC^tcwAH7zd1n$uFu*|%@d_Q%FP^{$D}ZTyNoub4Xj z*6(jNOWQAt>`E0m)#kak##CBd#*_oMSH-5d;#0gE!Y0ChX~fx+LZh{7TrXQoQo*XdQN=%a?Y8-EV-Mz$b@XG@){K z9ftPu&G7Plf#D`#=;rsI`2JU_PktJ-U>k9L|4F%D88!Z=&b9M@(>PUeb^zmaqrc&< zRC0a^dFln$)e(lNc3@P@+?2x$+^TK5{ZNXkSOQ!uRn-|?3abe&^8+b7`ENyNz z@>j{15u?&oSiTNF+-#Pn^RDdogUdIF0IK}kTvuI`A6uOLYvXThso<#s*7=M3r2M*k$*vUx{$$Hv z9GkMVFZor0clDxbOTKw8^TYV3r^Y$eD)687jH_%Z%3>{#SFy$Wot@9HXYZwtPS&5q zr{wUzuZ}}~%U1#C@v)N@oCD6AfO83Z`Hziil;F-P&2AAmN}XZJ6BksoZ@j^G`C3?h zG5RnQ|7D%7QX2nL=PqS0*aUo!1>r34wkS*f8|2F;R&UDKfyBHqkFs}RpB$0(Vb{(s zaHIXdx~9qcIccdBduL6Q&_RRvffSkVudz8I@Gl~l{3_xr9pOvXTBFJ>rr2`J z%JQ;Z_0Ts*zXP_ce#8OegHl5ot67^`!?z~QT9Ac2BG1fG<62DSoEFEV`i-loiyV{( zvSLl%y1B$T$L4z-OVyO(0h+_a{F#W4%fg;i1Mebj`nv4?a^Mh&4rU^4Q~|#n;O9F+ z{zJw=e1l)h8C0v_&&UO>+pDUvtKX7|eV6#0a^|dqaSJ~`kbaG|r@OLNtC6qtPzmSI z(RcE_hcVAu++*q{asgC(nG4!j%H6ZrFx3;D8i&p(_O>wHF5(;ljP~;F1an%P6&f$~ zjs;gcz{|3JuiFmLMwR9)w}6jsZKX}x&U#mk*ugi)StG01+dAocuf@ix3v$R)fzEE7 zb}K$o7OxN6eHk%j_dQ>2b1bg2w80O)55J*d=kmR@$tHY;_&&(~L!PqOJ?M)%x~BV0 z+aIyHjmci&^-RRA*!O1XJVUdgm-QGX(wabd;-SUWD ze)wy(*c$uPAHxP@d3CuC4=Fz==h|AE+E#Q7--GhOs&?S?A+^WuR(_{_NUft{$VI=H zKKE=ZntFQc+BcMW;t$^8vqQ+)m`)4w32U3qHqd zK18o{`Yz5@Se%$5YwOq@j2B$bN;G+WcPZTAmFV*7MdxvHCU|g%+kXT&423@%OAIHu zsHgevVqWmu)e>X9S>wUaJk~(a2W2dGGwnFAADF^xHt4yb1)tc*v-*{|YQmC7WeqNI zjYWQRCcEc%Ko33#FX64@V!jtsn-!Z^z7ji=BX-k> zo0aWZ+%x6(=C^I1?(CToRX!-2e1PwOi`zB!eb$r5!J3df8aJ@7W&M1~+79UHX|0-^ zHk_qEe{@?qeF*iJn4;Pdi`=fPveNAQ_UKwO_zZs$mv@_TO_;)Ui*n`tn{stvv+#{` z`kg_{Rmn?ET3;Haf|Z;ZMK1z?Z_`7 zS)+ZP+aH=6$u+ZcLE2Q8v6uG{{yxdv6**0P^t~77EWCuSAn`)lD4)P=XiTk%XFhCt zR`y725>TPQphi;8?zQ)$NQgL2_?Y;gbwhvS)GD#~|(wcqZa6I!oBAJC~1d zJpSPL#?Qv)`e)<6yhn@le9F8}1a@~X9=C3mS;cvIKB)hjwztae&aUc*4M~f#kjuj< zv0QI!(cTl}WR{$|opv>)D@RqVu^+I#NlrL<9%YDfPGnxJ13g-lQ*@*OScnaw zSH0kC8*pi-&d`7H@yinYvMQIvp>IQ<|Jh^iM(3TJodPZlEOomE&2qa0zZ%we%(+qDYk_J?c*#QO2f zQ!wCwZMv43O5kDKvfDf_=a4U1awfk?{~V0>1m{rTbMEw^8x;Q9fzOiWPEU1^^X6)G z%?Q@DoVsS1(06l5UG2e~Us9(Nm`h$4;i;Fy?+Jc%fE$+drA5~!xaXH%gG|m^pABA^ z$nPz5Gz&V~@j^k}%6^uOmK)r=CYqaWhZpca#2n13xaNCvdXamaoY2S!_18^QwL@z*BRIe58uI3*zX|@SDYI3Sa~8NSKCg$Mx%rG$>?#HD zs>0*j$$PZg-!<(&cpn<`jM5p|M(E5;WhfZWSU(Pqb%j3GFwbu}UrNR*eb`Jq-cyV< z{ML^vZ(yuX>tlVDvG%Y&%~+2bdlYQ#_nPhF$omVVOh3l@G-Ex=I%}}MYI~FMV&hHN z%6PZNML3V@V|1n2R|E9TL9?9x0w`;V?^(79fcUr%s-2y<~5 z`hMg`ZvSV{Ck>oNUes-ea(u$d2SC^yQQ6W`cX*Thv5G* z!Tq;6`>2GoFeaZHGE(~Wjql9V_w|6Qzl&14-~6g;q}YT)buLF93)T55&wbEd6LdDu zkUq);t-S!>k_NqPPgc`9;Fn6t*^{m{jj`wK8zcGR(mpnwG#s=Ss)J7yW^iU&dd{*j zGG2*A{{y%v-^)IG1mC32uQ_W9c>D~$?u`Ps>-C%5uD8%fk=JVNjkoNaTMTR_YG&(a z3*o8AcQ=cD>qIYb0NMvnlkm>s9vg>VnBFq9N38W7Ew}+H0 zJjWRr_jGmb5Pqy}e#Ofs&IQS#FKy;nuL^VTmj9CDdMG)D#u{QerJoYR0PnWuC^!ZW zHvH2c{KRqMYdMpwr>9{rwtg*|`@^Jqqb-UCzJ*m2rtouee>-*-1Fbo zR9rgw8HEoW3a>{lvDoXle+vCL!TA4zytaMu(-&d59T=wHQL(F{bXGQa{Y(0n3S4ceBF+=jGbnM?6d_FqmHOShv3Yr|wp03j0wxzX^pZU4_Z5fLUsM9o0 z?tp!^TznKW!c^SyTW4Ih-_qvXj3|3*W~3uk;4S`T>8#zMVX@A`r6n&PxwYbDO=y)V zGxc+0j8o22$i&thgKl#?&oa6C8qB*hgZggq{}wyE^mhjGuY41eJM_TG2}8YhzRNI7 z(7(;hg3e`Uq-Gk_Zad%0_=RVFTGkBwej01F0AGRQTjh)Hobh!UPz&sAU*zNW*t(k3<`u@hy(mo~Fjtk|78;fI^i z6Pw{DeBgj5HreUSG;eGMZ)7cfI+?W#|6vAi+!F?RSHjzL^6VHkr{mViW2BgHD^1lW-XUMbKKCD5@<*#{zYOBH;-{=%WpHWFYVNogs$L>F|~e+ zrX3L8^8!4m>`7lD+Z@8?9i^!?4NFz67y8(dSy(6MP007h$;+Y2j*VUl?U2pfBRvheCn0|0`;WFM=hc6wS<2KCE%IZhw=cspz zbJTXxJHqo)!M$U`|6d4vCtu&&$atH==acTFxhD1Ik0 z27Ip@&C$tD6Yz8uIJ{@_v%H5a_&>l8Wx-E;2@jj7B^R{y$Z2Tfw+|oS3}e%n_8Is- z%tYV&psAtV;BN43L|(JvUvH=$)4n{S!Dk8R3Yx%`_I-h}(q2#L@(0L%|0bgMqVyO!P~>H_|VugE(!!AO9ivZ2V9np_kQb z<@{6O_44rx0B$E0`$ft9>gAc>?O4uwaG1$Skz=TRl6e*!mYhu=F2}D$>syPzdZ&*) z*vxN{qfFd8GJDo7C06|O(HrY>(Uk~%+rh(+!HY~}W<{Bgu+{4@9l|%FTT#g)vm(gp z&U_@^;@H@67qM2*CC7@c;XdJyk)JxpqRW9dcA&3-C!PueRZx6BqGB36vdG(3XsF|S z#1wfZ{;pZ%E9@}l)RBWm*Fi`>L}ut5;BHLNlJ%Iv=85P9fyLeA$`LtEaMTLS-eP_2 zL3i>5JX1)vh~@bP-aDg{M}?lf13o{(GhYvMOX%D4(YK4HJU2;rRe`q1-#TLm%?DT^}(@`ca22%z~bad38pi8}gv<+5?@40=5$-)ott< zo)(APUo=Rw9+19xW3Arf;LM@kAO#W0N+pd=~Irfu8d? z@T>x!>7&5^Q4yoSiMY}rtZGJ*hZEV;64fWJc(1WS@!t}H?FfDcVVJ}35bQ3(k{F|< z!@H*amb_4tfZ1o@rs(0My|=0JZbQ_8Ph+FJe~wzTwjp-1w_(29^?P_U;jN;QIrE9} zHvq3Uq0@W*3*9RCxCyvNqAPfaYdh~kcw+)*_AJ&a-U5GCtjt+3i~IK2OYhsEA5~hc z=LY%e;p6jc6 zc(Hwq+7j>$+tXK7yh=zQe#Fjkj33_! zFXuNqUqL=Ol&dPHa9v z)=cU!8jJ<1?|z#>8Jz9(w}ZaUhF=yPg&R1*2kW}MLG*nRJaf;m%@_M!0ZkSk5wY8& zgTuCG?QBDSF>r?R7VKb4(b3ua@3q-g>i2{miq1%6uG}z#Rcwd3^htC#qVKy7+IuN+1u(qHCO_xt}+o6P0s= zwVWJ>%!{t)ibW?ArKaryf3g-wZ4|$zqu|+0&Z`yr!P$;Z^f9$Fo7273$gahzXQ#YR z2e< zBVS=Ig_cPl8tKa?^uZ@KJ^FBe+5GHRRJcXX7<`6))Tju25|Ro=8hU#p2BRa!PxdH% z+QwPJuh1XqTMw;=-XH0!^l4k)W?MMV%F$2MfV0RS-}}U91m@B8J57Jm{Xd_2G%V#Q zWdg@DQa^@%G>um;+rgRN(6`RN6Z^q@%3ONP(N@ijjfg$nj(j9IXoW{Rb{D)7Z7Ihy z8^s3c;Cu{?-;x(TgR?^g&xqF@-Z2E87#x-PnLus~`7RwE%^v06E%MxqvRN;W<1!$_ zh^#WBY!Lqk>HPVoy_|bUpP2Vp4}7mjzhxFxpH`bZOKEj@TmOd;4f1kvE zM))$ZWrZUf$QivKUG!BGoqAwBNdLC=fKMx_*4IMPZH|p!vaX21s&z2#tbRETSz{BK z1K|sG`Vz&No~(@=&ejqBD~q+_!*&=4{>gtCqwrv255t#j_(0x^J;MUOVupVi%N{B= ztqIt)-r!v^yp;(a#e_{uEw-j~(RSCkm|EX}8)u(icmw`8SDqvITF|fU58v?L5Z}}S zXi2`w?V1=#Ods-A8S>U9?2gDty3A!k=8`^}utB1C7-%-Rp|5WLr|<<2Yf%LQwd7G& z?V9gJM!FjZ3vYvdKgz^j2@HhK&Sacc-VN#pAI&^R@@|vHS#cu!@ZQP$Yq0|iM%UB< zJ$aTo9R1!R$=jUlP2jdevs#4iJV||TV9$!wqOAGQk89B(O+e=ZQxN+Qy3jQCw*#7$ zc#$Y)7W4ls&n?U?XGIpsInC7LbYS;Ecup9MP8q&F?lanZ8@Nu|JJ|aidw&Ca|Jz!O zuHHXep!RQdLsX~)3@Kz=dtwJYOs>Gyr**zeLiOFSs=XSP4u-B+u0FlEql$H z82n{oxew(&`}HB-6FHe1p_96fK=PG(nV+Y~$vlYhzQs2(uFu;x6}`&yp@wkpaux3V zsC{WsIPYcedUS~~p8U~qJKwl3yS3jz8^4R*g>Tr=|DY}3KFs>X=*X!@XZ4vnyi!Tb zb;Ynn%4M%ch8v-#O$AR*@huS_~AOqB~QF!V!y^?lFP^I%@!fQ!<=*2P7o{Z@w{D^iU540M3Ssp{LB4cdLc+Vzd zTyIEnZdw*rF+731_(R~+s9VPH61lXmtUHmqWgL$M#xeJO#&L?e6O0M?iV*8h8}Bo> zk7Tsk66Rfl?l_^~l(Cmn_OT@3&De(tKlUQDeSQB{+D>$GI-6@6>n@2l6MvlJ*krh7 z?t1iBzcSz_VC>~d?lv~T*OzD?KY}>EwZ7XAnC%IX z*Swc5%SpWK4wX<48uRdEHGhaw{=qR?WfJYmnBN69hdAFhkv92g+WWNi0d4)Q-v>7Q zd5V7ZMrHP`#$-$KfDdfh(5Kd(f$~X|AIv%J0{`KomFr&OHu~Y8HTH8=DbIS9__Nd$L~tYU=k>|JT$nW&X3@-)$f4b9ukt%Z%f&vTHNG{Fl$IUgUVFT*89tx)DG`64a|oI~&u7`;S0@ArGp)`gGQyTA&bSBKU6 z!0HUXVlRRZr-Q!E0xO=yzNC5;?Ck%ZZ6`P~;#TF7`H^w#V%**5=3Cn$CgdA!C0(U0 z>btD1A1l|jCCc^463f&_`-e|mAE)AmPgAZD6P0V^%>jJbfxdn?cI8cPM^v18Y?Dpa z^2K$*JZ=iE3nzGaaXnmRjSF9^&)Yr9^*{Rl-m8Ca{V)AYJSQKdrXF`jK@bysW^s)uLj%ubK74a0{NTk5$9}Cw(3<+U*+dR<7#?srh@* zU+o1}r{MdCvM%054wZE&>+ztv-zICgA2@It-3R-a|0w+T@bSz^o^ploTi|%wd37BB z27X(??}Gn6ey=Z2nR;gAe-p?5RlK|N|3e%v{r0xT&Qh)%_(-93m#y7@bzIapnEDiQ zipZ(fbo`LuH^r7-jIJa7olUo27%0B7SMp1*ekZ@wWwgHYB|fgi`#aB~XAs%$D7xd1 zqr>Y8daG%(us?iy`jMjF9sc*CXFu6GclPUB=gxV5>)h(7u)-&}_HiA*eofIs3u=pg zH|jS<6Wg}Voz%W{?zKm@&Rx#C-*UYoWj3rXYWUrQMW208UG(Pht#dy;wRP?BbNE?-f$*a-hQ8=F z`oa@ObvDHZd~(`2Kfc`+_kqi|^J@WLHGt{Pm_I;`-8wd*GzT>IGM z5v|V`zW68i%Trp17CuI~d6ap6?W2?5!9H?|dyBhz%wN;1#~duF9`gk9va~;rwsMuB zwj$5nP^?T9^KKs3@Qae1hWVwr4I^mhhtwl&NjqP+{-LnXdyR!(w0^%Z;XPO3f3=P% z{PlZ3D7^2zk%hNWE}QbTv^}@=dxigT$Udj_!}K|>_p&MTABBHx9a*@u^~FNhq4YVA z9m<#^-@o+UsKWIh_MP+9hxR%1`2Fa6e<=Jh-w$OR^FGX+^9Ra5&v%KmdEa|46%M7o zMH5xSj}G;lQ}ki~IWK%TV9vci)*23ec-@?eJVV30n~e=ivCAJphhj*<7mo8Oh=ZNR z*v`*&yU+Jk2Jbv|>$!W?&F6Bf!)k$3&$;Thb3a$^^Tll$C)ZcUoultP=SAk68__zV z=g`(+J=a#JoO?v|I)}3Cyx8tersSOe#~nH6GpOr}jqdZO{_Z|Mly7jFK0lT3r%`?i zLOKI;k>kj$7-q5zR=qSE+ z5-%aLmG}TgK8TzM4j+G5^NT-68GLXlXVDxRfdAU!`RjhMxN4ne@q%@O@yY7RJ4d3~ z`z&|jEY^L|i}+ow*MWNUXm@d6{nlVF`MCTp{vY64V6b?hK6}Yn*D=IUm(Y&y)6n?Zm5*a%%Cy#rkDJLF?fqh`rEZu#+Ka5`S4+q5K1RIC zu{7jaz&8)SbKARCkUsm3$e!TOq%;8~ZpvAZEJc ztLWV#&z4-^`TgT}m;57Uce>oajM=Ti-Mf96eDhVz?(avKyy^TG|HG0CyaPsG_j3DZ z{51j{O&_P*nBx5keTzJwvCl{>pZGZSL8Maa(|I>zU!a`-&lBiNUY$HYbC)*x!dQHS z3!ohX3hItyD>#J=duo_2i`I8Ooa6r#Kf)8nl={zj_c`-)5?fZFZkxo-)w4(I{xjjg z?ziZIdKk^#%}vEGo3K5JoSnAUxLxc{)oszcn|NORQS|Q3%Dp?>X!RnKzf#)0lh4=MG+9xqr;_YnD%5w`SSo(`%MaZpBWvm-}*_ZQ+^v&jE8D*wr*< z#o9HKUs+Q-`6g&V?b_PO@3!tNe09y5$&Y65A2S16ZTi9V!Zl~1aTCW4UUBfL!k^we ze(=`T0fqfr`xicPcHfx&Yu8QIxLVe(ogBlZ_-1YP-Z3-A-!S;2gMAAh+_i6v{oo5a zz1z9={>jszdpB^OdGI=X0QwiMt=v226WTvYpKhl8+_lRlFU3D#J9O!%t^EquRqh+3 z4rUhKnRnyh<-7KdiD=zgxQ{j-$lf>Rp0z6`+Yb&ctXQ*l@?6@Uxn>3J_ba?J;ikds z&h8x}@z61?+p#wfD12?r{gZ!6yRTB_PQDx0no0X&i@vUK%fY7$rLWSCoo9;Q_JgCi zk1EXA^+ciFx4F>BU2)Hee4?-Vhp_w>?Jo3rH8F|wSXDr<`+LNPd z_e1|D5EH+WHmsXB712(#7BeWd^U$`r&M@?+CX;st{t#Al1f7R=%@u$4zvCpKc^o{9dtBt0Y5$@uT2d`WuWREWs5nOXMKSt>hq^_bOG$@3LS+_&U-yevPG z#HW%=C!IWy8W*w8x*kn(p%@N5SoDRl2XU(5!=dk|T$Gg!Aj)$>BV+FQILx>4U^6 zouUtC>6^sLO5Bqc8ReJQCqqn>KP(~2AD$fL@6jj9{~)na&HdeVZ(N%rd4lx$G(!&^ znyR&M$F^8&mTJWcSiX=*GBmZ1`>PQf07>aTI!tSZ|00G6E^6TEe{q| zU7zMJ%}w)H-N;q$I9vL|H2?bvYR8jYp?Jbv^f@}5jAL8d;>mZjJO-MdSf9@SbmSsm zd@lHGI5`k|hW<@-b)0;ocwdb#Z+j*>9Lmq&S({;OE9cpt6y5b+Z1}!Rd|{_(dJbpS zk1H)4e-n8=kl)v66;FUmQol(vyyJ^E_z#kor^Z=R)PWz4)ae_h=KHYoZ^2(h!+zG` zQ7*lWQ`*Vt;8SVRBz#HLj*`?#{tn7nVzAA_qjsek{2iGF_9BB{kypu2pG7{Ee(B@6 zU!5$#57E9nknb%tp3V5_v{R3?Z9qQL+p5MlmiR&6%s~H_%I~}QougIQv_#H7 z7r*Db`7Ps>-}3_Hu}_IVbYQ%qw_X@1pCiAk_&psTFJSB2-{k6et;uDQ{B;Mo=WzeC z+hrq%T?a7ATaNw^+e!y;x|cjmc68p-&rsj-Asv4Ea>>b*#J+0Nd7pIhAo;;PDR-D> z;#}Ubq9Q)v1x%5 ztn(2&_2&T}i*LM74B%AR++rO!CxH8<_oexzZGAlGxAZ<{aUOR9a5-|bE3F^!6o87nW%ceotRq71YFNjan_U*poEWS1 zncEwC`84n>d!UN_l6x~}h37#_0^=eklW~0o%xpc>P8>WE&T>}Nm1A&o-UFLV!Y;lK zyzA}E2(F2y2sPs8`uM2}-bm{D19|Ik6i#Tiuy4@TJ{^YQ+jXhE4dmKGkCtGot|r$- zZ|CFa#nOy16(M{~8n%HL5$0Cbm`dtwHsAxny*GGJ4X>PRC7(Or%UNu+x5KwQZ+=Hw zu0LmB0G|&tXL<2z{siKj19kN7%n7a`Q*aGA1P8$Xu1>A4BSkfy?S-8Vczh}JiTTII z5QG!>#dFcCgmA6&#$vw%n2H}%DfFfk+G8qQUUV3Ga%5&q?R56nP#k?5xOzA`*MB%3 zdYL)C@sI&qI&gkto@sVBK87FrYQFtFvdJDTb?z@C#kL-a z|Jg4$G@Q?AIiW3C8)N9{jWtALpIEYXup!2~9XM^rXKjcU?ZsB%#rN0yCf}_7cg~X2 zk~-gD4A0)?cKz<(uxH$YKf~g%slSX$9(Fu7$~ia}|FauR6>sf*$hP_hQ*6TxrYW<2 zbA99NE!Q`$LI)v>u{q5m&l-*^g~^FY6`E$$FsmU7CyZZIDZTJD4Pp&33w;CRyD`gh&}Qmt_h4ZVkadAgFSRj^*O^|RNnQqCXG1OKdZmk zcMYgD+`aVT8DvtX?a8pesI$RyCW2-5)m&bt=_$(ig6B+x>RENE%om~Djlmp)3YshY zi0E;28y|d0fF}tfe%Yw=0)n@KPeMN)YT~CC{~uv zsn@OAFpqh#+*6G0Q23U>d21q<<*=TmzcmYr*{9>ZHMA@J>YiIvVA-@KjB`CMhvnf7 zm*AwA*-DwV;MpG`SZ=&j<^nl0-O#Qr(7s}FK(&GM#puF>_M7OlX|Mem>;c5(pm$;% z^8YEyh~KRb-I@Hy#yri;JK=ZB_$_c2I%TR%(_wTWcxK$U^?BL9U+RyP*?g^>Gt%oa zJUaZFOJ$_b^m9i$@RL5uJY=EQ{b%iLdE!zX(vJEZd^KfX*3Q0eWkNX_C4XxZFuItZ zh4BgREBRT3&y=~6F~7)MKk`p;D=mmy;s=pXe;>H@b8zTeaSJ^~_uPe{KAl-;sB^=U zNS}o74dMM4@W0ZpFN6Jh2^cLU=cQe8Uc!q@UnP%AHSi1Buu-li2s~un${r)O>^x}G zx37^T)`*^`=psKa^_H+MWG+PC9%@VAa%N#DH%lN-tLPx{HL4eXX1+_1`4rsCQ~20{ zdj|aBr9Sr7iZ*C=XkJ6-w740QLG2O9I2G#$TmcmP|0J#f-tFE;1ya5pQ?JDL>mxs$o^ z;%i~CzizW?n~4{&mfKl}$S1?I>a;0o_+)HjtqK1i=bk&N$?>3>%l}``-4|2;qwe%V ztxkb^k}Frv0}0`t&@h>gotNQUKqn~jVfFtA=Om}9ter$~PS#Gm-WIUzhI4_o1m{jK z%pqS!AP@6L^fRFQ*3ZC72;q^?W>e%OKRmTA_X+(H-occNOh;d3ZHLa76Z%_ai}IUF zg(j;VhC!43`zWKOPl7g^>O*+vR%xxF-&aky82R{jdb=d>4U(h8N88v zwIX9)cI3Gpi4t9aLJi0^zI{;96#?Tv?x0Uoo%^14m$_t2HN_2O?$K4p1t zT4dgsC%KiEm^U7y>`Dt~)AVbq#CCA9bpP4$# zfbpt1w>NsrZ*P?IDjY*sZNP`k>%mv0=KE>>Jk4C-Ew?q+z;CRiT+I)Q{axtR&wg*^ z2J}4J)A@eomL>2a=FZny11qUpesk6lXB8)RCJ+6UzPHu@hn2JuSyk1t3jXbxC8mvz z#q}GPEjDc|>0$Nm?Ge~#<@;5XJ7Y-htf4*Z%U(GzGM^k`R(#G^(x+AQ$4h@o(D$#R zKgIN;iMGA;BVV)X`<{$t260Q`r^MdGKA6DT5FLovU3A>jX_^n8n^Mjl6glQ>LUD`ml4d=J`6O%{2~O&F%HEjHnJf1qXZ53<65Axs zqI@nc^v=zhdHx5dKQHIztT*(2M&z*)_$V9yYp8P@^_9j=^2>Kpr!K!zr|5J_uNNFn z@Jb)#yY&~k2%7|U!Sd2hsJud!lk&9THEA}llusZRvgo_2Mn?Ioz}KpuaQ*H2#;WqH z?8lfpS*Q0R55luo2+RatOAVVggz&P2GMqWWm3d%q8h-lXJS6J#P|Z9f0Yj1hhC@qbK5D*YKA^SVm=Dp9UTrQm1Gm6j zBr+GsM)b)iV`nY|*RM7o7cSD)06(O!_p9*o`+8r3laz7)9-6TE3ck2oneK9t=xjI3 z-V%go7QgRh{m9(Q{vte#tQX)i9Q?0OMt>PtOM$Z@LwIo}H{C0_KFJd}0=N5aoae}y(l z-%FXlviqP-+{^#Aq_I9jjVNDG?9b3F1)65@eng%}>C+Ktuku^P0&thni?Ur;`_|4OKmRt zJL8f(Iq8foi)Z5NS;an4T3(tR^7(w7G7^_E7Jtt?{0JqFN#}rE$B(oc+b`HpJTuTG z{LI$46IiwFZyN1O<1BSzsOVz?Bl;WBQ3;%+UeR3& zyf%}=QTp8iT!o%&CU&)?Jk39U2Kp7?+?>Q-gIrz4cxKV(a{5@sKD$gaA82Clm?d+j zMIIWwgH%oqZW_?2b>8J4S(1zUXS^jXqM3;7_h*I#33TXHZ`W zYpSe#L3U&iADsCA7UTab`mQRYqg;GL1qU7@Kho83K+Y}|9H;{a)-%R3`czI^*+Ynv z84=n$+Q8ZFdxkFO8y`U(AK+2D%WmEI1L)JG{fyt;+uuz4iQlq^5p!BA?V}U9xPOWM zduNYFHvF@`T)9_s{x5q~I6nA2uwO=ypV5S`zPawgROKg^&-sAN$XQI#4s0p9JeR?J z1hW0R*!qNrSnz$pL+Cwwl`)~^x*#wWnk#Zh4f^iI!T+Vv zY7{whPWr(0O-odroV&CMdNY#zk+NUkOF2`7ddIAv&lF#urjdJ-+*c!qKBDVpi0K*L zjIXMRm@1ifpQU*N`S9w`EXQ__FObk;S#Khj%_Ik52l-O3#Eq=!s!qnPI8(ReXSeU3 z9(Vh0IjhIcrIPKbCh`}|#%3sI`0UIjUU;86Dd+eoM|!HZ>xm^MMTLNxs7u046spwI3?^I{tmtwk*Vfq-L2|MIYT^afSO-&p=)@RF}ZUbw)*M^ z-JCHI5C0w*J9-hF&lX-v)=^u8*5D)Gs*Jgs^T@t!%x}S~%9y`vtmI@GA?Kt?ds1IJ zdatJ7y3+q!-TuudyGDfgE+1!GUzjSiYyvo&2kzbk4&R85!4y zC_7KS@aQF%bR*TQ5z&{4JzvfPY|9Lue}nGzG=2wPVDlGyf9Ncn!24dnyf?g`#QuoB zC<%R068fTmZb*lbUXRF(0oaA;PFFNBIL6WFK*rad!zav-56dMVg-~AUZ^qw9{?xnG z(!UDaC3mXmazu`k+z7I!`>16_U+q`5@#u5fy;_~bIc!5W(ay6DbP}airj6C;XAGy8 zv`8IQ;Gpc|XBdNzvl*Mo%_-#{wKm(f!6$74E`r;lV@V+wrI`|Fx zzhfKxhU_id^zx!xG}WiW+p)jw=-}Jll)?W8`Pp3GCb{?)Cu}^$?-1mHTS#5VIy;5$lDgy_G;)X3Ddj_Uc+u@h zUDAJ<2f0gGKYdF-*|l>Wb#*{LSnNAw?tnq#wm9zL+?hi&YYiSm_Yo2swPE>rt5!S}H|8@7DIhO#9o8|}1n3GV~A$i|r< zdt@@Y9l@6)LA);$do>^A0hlc2aOY$ zY(CSq^EKK_2;y~f5T^qCN^q@ER{AC7)4%N6`A5NF*3bWS9A;ez4kv|h*a{8<>+is^MAQ8 z&EHiOu>Z2Z4foxIE`@Rd-D7;ckM}Y!p*gs;m;4ibdUw0P|AO(z`E}>NHe9xk2hUVw zeO@^?fq4;Mr%N`T?TUk3MXr`%~jdI&}*(if^7})>CUi9tzf52WD zXjk@#i*xsNZr!D`<1V*@{BIv8d(w`KFygAY+m+kzR%xx^cS5Gg?SE3<@vL3u6L^*I zPVU0jNtt%uZ4X+fp4|Kzed8xMj?Ckth=yK`L{j(c+rH3D)u-&2{n&5 z&L!8w-G|A;khOT*#v|}1jx4vsbpFm3a!@oBEG}uurybK`bBd?kTwfkWd@MPAXP>WZ zF~yp#vlah|?TySKw-9|Pr7!56>K~$itNE^+{*<3DZSkBhX_-wQXVJ%Ugb`1qa@F-A z2Rl3f^tXQCJ*u_`ucF2XwmY%7^CSJIwWfid#MvHPy*2rgip|qtiT%MP-Og78^ zTU!dFl=`;eGr-LSe4s< zd@ScOM2u_rVE&L@`S#`wl0USDIqd?D(tcYH)sP?6^tbW}gU*(ayN$N}f17{zF7a1o zk0yk+dhI7;Rb#KjXm3{)vi-pEjuY@sH*3+>K3qaG(2K{W5!0HE+?mI@Ic+`M4aYe9 z*c7GWF3|sc?mcf|LaP@ z7s-vYL$i1#Kk*}R?#A^7cVjVmtscHUF@^ZLX(tv(#g`kRJ?n3w{^DuYPu|;P%h!4o6x-F%{Jl$U+$-|8uOK#D#qPMZeph+ry}NEE3IhL&PNd{JPAra2`Sa)=DPN`(IR1QnlK%T=hQxwb zEBkLeu{dsO*ZItf6MG-Doj9L4Maq7tqP>TVhR#xK*7=LW;>FH<0(tvse46GFpVo>_ zMD#GNG496B?W=56x$2}xOR^q_Ar~_EU!UVX`^;YVu9}{vdgj^R`6IJK>Z_qo3yo&0 zocSW>p~Dd!Pd{IWH^}S-21y zG6`BT5t>qfES%5z8ezfnq`UFV!Sk6$La!cW@6Y0l6m#1i?A~&&tl8R;Y5E@P(*s?c zR>?e>2B;}%z&rz(26STBdB4SGRtMekRV^!egBa+Q&@DM@M&ykA#dRCSr_IED!ujbf zrt`B}9J8;9bHtjgj>X9-Sy3jdVjiKT>xBodq+cBc^PVr=qH4{m`5$RHX=mlkIrHAM zvuS%%&!*+1p2fGbR&YmX@9V7dH!j@VBDD9wg}jy*p$+V(jinZMBYI~SMts*Ztp6JJ zSXmRvz|dB`tf)-Jr}Zv)GB=ytzcx=hJfmZA@029YbHi8GS$(5J*N;m*9~gRDlR4vy z{A!+Y%%|{1QqNi15#G|o{F|pFP9=A}Rgrr_X#7|=`5%yDdFL|YgKD}auf??2T+d$N zGCjeayalGE=K9wMz4_OU!Jqv@=wc4|WnxZD_+jP|&)y6yOj&&2mt2B_$fK3cH~*GA zRs6f5DbD2~3}i#d0r86A=}%soGnF?i^gH^&=4kv>*wk)C$+@AF23aCAS80{ThOo1xE^L- z+0GuYm#YD~|27x&?&MJDfqhX-e5@gDmv*DtC2I;BcrEc=wX4B}Dqy!18KxZn@w=EC z>AS3r%l&Kve2=vK26{TZFVOr+^rt6uj69sRLMx!>)Mx430)4B4mRCUE?^$f#D0FeZ!lY*`h0Oq)xP1KFj4;ZrfH7j=vZE2ovZ@?HgNBbmw~gj4d@^= zr>q&F0c=Xswh@zGM=XA5-PBnE>!z;fH`k5$Vs9g7j;xzfi)u8n*0=TNd#Bs=%(ZS; zeFoo*iJ2<#5wdQ|GnC_4w{>%db@LLuxyaqZpNlPo{tlP5FLWYnu_;9n=P5Kw_<7k^ zOL@LIca(Rjp;y62Uy$n!`eA~e?Y}WgryD-@?PUCJ;2-sRdT}-wHY=TeRMJN|TkdK; zGw49z4K;kzIM)ig+2(=)O{RH#AgKRRJ9tsn)sy%?4%#)Y=`@d zZdXUdB^*SDpwn*jVOOQyKJsZMf`hk!e-g9QL9EiTA>{VRyo7&An#GAP>u}*0gch9w z_wI#miQEB@^gI}+z{PW{6PcU!{PqWbpF&43^CmtwA(;A#5~p@pdRZ+Faw5g{vQ8Lk zW{nF<(?%`KxZ!8cTBN3-U+EU-im^||6u&x|7opcelSK}ean#+I(^!9PP9ysu`FP?z4*ccF(G^=qAM0r= zowLE}aw$VOd>uU+`^}T9+mlAEgB zGg9622fi%4&$E0ZJlKACp=6`gx*r;`nK5hzzE1$>5R65qzm5NTe|W!#@eBU`KN&0g z;ALZF59~fx8E41Yt`WbYui&opYWts7?H;V&pN{QxI=0j4se%h?P|j|RIQ%Q0n+D}H zirgXchR7ER*+R;T4n=e_&P7jHM28}@PxL47xs3zCZIMCB(2rQNn16+wyO($&@Z4fH zS?z;ODJIrV{w+yUErYbi8sI5@(Ls17Xni&PT*B`5{5<#_*}nq5UD)?1FY78`X9>)G zXrF#TaO|t9mQwEKrcFg1#6YJL%iO_wvJ>OXoS(E4=ju-`23%#NF=D`Gy#L44Q-n2yZ1Z#0IaaN%=G6dCc{xa(B-7UtzMw*h9~sb{Om>-FdDvc#*K2ujK>Gx zTQkQ!zuBzYuAP$SrRg7Pw>-lxO`P5LJsrfg=B2sUuKX*x$@}fv*i0Oy2_LFvVjP>X z}+8QgRX{NQ{GyDK9#BN`ks zX=(q5y?2j~vby&FpJx)nOcE}+aY-;Y6fy&d$StE_CW)62w5?!U>*=o~*m@>JYlEna z3Yi33CqxTl)wXheC19&blv-P?&S^OW=;;Bq)=O)9&gnS>Y`-Qzi}A{6Wq$9^^UMvJ=9{UNZU6r38_t`hY#vNjNk zyq}n}>z%-kzO8{Bdmj$OO4*~=eB1jlcLmVr_AgfNQ0#bp-}R2MBb_y{o4)+cNh7wr zlXeB)`pC2E4eI+AZBfRmV`WMm;NT~mG1J{A-{IM=G^Y;Ijr6%4?;Mw9_vhN(`qTc|CE}U9>Uq$i+8E zhM&AXa`xCx=zV_)U4Jb}*L6JiE$d!#Mw%XHRGx{ZU&ZDrdzDS!C;RCyd)*j%72e(!f2Bz0v*EpS{t2`D<^Knsx8F zIg8z3*4<{}Yh7_4>)a-zWefbj;t2ooqpa5d0siN3ZwEda+8fjS(Yc-j%$;|+_uJ9E z9UWD2^#S<8P3*@8kf}?c3tKOfu50V3*KW;#7fM&t`RV-LJm$(xE+c;HHD*k7+{Aov zFW}rc^UwYJJMPVT{gEZUvffR>m)Hw_{gId4;n&`1UT(&+!jCKo{t!R8h1{jH(u}dU zJZBW?idCty(`f%lk>~rP`d@ovbpInuW}X$e_e;zx$-JZ0y_*j2GW>}aBX;;j)1O$w z({%Zdlo|2gSEn8O!y+U0hmaA!5m*wYx0!wPtFFHexPT}4j1iyCn!RadAf)>$#K%|U zno;>id+0AR=*s5nh*wBE*Dut4EyO(}_P63~?q;rx29A#rGqcJZ-8?|O#JeU|Wj3Z? z{2$4`8UM6{@QMZ(XSKjbDg8K|JW##wL9@j18^Q*ERhWF@@uCBCLW>Tv{sKB^&>TtD z;ZD*+wdQt`9)hF^Mh`Sm1x;vA6@G5nQ#96=Zo)aQs(f?kA=aIqvDN;n3FgpN{_6~H z)g*IhH~(c*t}3iu5+2+tez6+04750DOwJO~la-kb5j_i2ws&Q3)4}lwZeziXn zdync|$9vWU+M-VVcTcMJk5(G>UaR*~(x_Mev(K*f-=j3@uGPCin%f*wJknR`+vxOa z|IdjzRP~lIw3~O`)gl>S**N&N4w*Ch^?<)+%^fdS9W#cyxpQk&x$dept{VGRz(4js zSHCRXO?v@3mu%Zq^+#jq2>S}xl0NEKz^^pLMW0@t-C1RrL!(`zdsTMKAGyPec9pKS zxNoPIySIEls~*+cJH-7HoJp9mFmSK%wax48#4eMc5xlPQr@vYKGG>_Gb|bBKjB8Bq zc{Q%yBeS+`dfdp!;v7WIQEVgou`?aQ&b%BO*2fEEhcOQ?SDV2bE1mW}F_HZTmwEW0 z`Vst6rTT%5>+l}lbzh2bpg!qaJ2=P*uBfa**IH)qP97I`Rn-8C>O&vstwk>*cDB_{ zTJTz{9r;LIOuUKB$ujA|&sW}=ETg^HOU}aoD_Ld)vDHY%eI4g+v|p>c znL0J+nTru(X+R&oQI*)LGQ&$|LWh#8g5hrZUyp3xjO?u$Yh3k-8|*$VPxevu(U7 z@2v@a1a8)x0XNv|&V(ChjAt>vYHut15iZ7{mN95e;!}9OHi=IQ*NlPcQ-6hP_1D5P zW3V$>MtJ^CvW#%O+;H_iWTf|Io%`KQHG#C=diIgN_jY0q^})YOe4@J_G_9y?bxm6N zX2FIBzip)ZerII(uH`PUI|Czpt;X2qdTelCE`9mIcEgqRsFBsV8@s(lH^A|2=CaewX^e4dc2F8{1Oo;+N1(1#`$FxiSNtcuPjqIY*kP)xKjEcAaeY3P!PK zFq(bGF+IoEp*!AXd{B3>F?2t6knyGXKF*Fj=pC9gPw=ht>dCDt%3) zO)Mo29{$|7=9$s98Z%mDrVoj}f;(NI%30rh@Qcs7LZY$Y&t0Ln@MRW#mZzOUpEm_U zKYjz+#XmiAujTA$ja^{eREjlW;bUZ(n(v(Dx0@*u5QL;U#H-*VZOnE**A^4Msq&18TpUC z(s{(Foc~?;=k@II3)ZdhfNWruALJF(_Z)X?A4(ggJ5~ITjd0I%>fMU0Qhz0@gtPC$ zV>wT0)nT`3_t#2;$8zuMY16i`Z+$&}1cG%PJ_E}CEIf9`&1>;~G9 zt?6!a>@Y0iPs*d1ELI+1t>+%6$KD$=pL0R}=Z=q`-%9(Jn-hl1>`vA@$|*y->dj7+ z%x?vr%gxex)4}0p;3~Ipa($(6Zq-k^op{ZkoL;H{cZq}5N0a>}OXy!|tXO*P>h!2$U@mWBzT~mT3qM)) zXdoV2;@Q+ho?p?n=64nCT`=qG4-NvS;!o+`D9dM+`FPM(_-rY5RY%^aFC8~BpXp;2 z_^7ewSyN>Pc1pds^X^%}9e=0rleh7wsUS|+UhEeU^X#E= zOLygy9G1n1r9@37ThnpxIcSRXQwOc zPs2_5{|UGw8`6elgvQ?)ha-!j;jb}HkDq>=I=)WY56+ObiL|HAkhYn$4QZzx`;Lc5 z``Q`O9wF`Pr%&^6XJzIHb7_{xwKVc*TGaa^7r4wj?Az(`Put`2FHh38)3=lIKTiHl zX?Fh2Y5r*srF|&>;g1L6CD;cljvBEp>XMyi3(q=q6xCV5Q)!VOoF11QPXYU$)5G5J zBhvom3~4(_d-e=z-2WmPYzK~0d5Lc}Hj+;rSDH$K&f>wIi8-S z98}k2&SKF=!L2?DHt`y#uUmyf*Q8D_an4eCveVyo^_TQ|VxOt3bPA`>Dw{=GGqKPF zx6-9AU2qq7*+@sE5Au(>581L9-nbcicJM4CraIk}bLZG~3ZDDXy>^nWIxTn#PKKuq z9jwZ*$J~Nv;t6=xq3a#K%!s#=J`58v*ivC~;Q1>0pI}-9Jo_29!H*+%%50ddcFXK~ zr8jMuYU^IA(`xgafWJQ3PvId_F3`aF%F~^8>JP+k@>{U`&nsm z33>a^HFmT+`R1O$X~%^|w4VB^$Ww>yQM!p$m!G;!_dMaC9vbt_#aEK2_`AlUE-_}l zhkJFeCS9(5dUO`gxG)9o>JxCsv4?+(wk1!^dLz2`4a2YVSC*XR z3{@X7DjYfMSw^hA%ZO=t7IBWMITywp*f+(9Z=tV8;9cW5GjZs<7kfLHH(u_3uIJax zuY)o7@I3V0bZ-wd>7wuBSVP38GKa3^PHglT$$^32Cg#)uhkGu*e*8a%&ync(po4E{ zSaiFGchQXPlggeV-(gjh1QbgJs^a_T|Ozu6>#Q z^a?i3A+4#qnks(mM*m@NHm4On*vI|?Yv;VL?(s60+=r#797(&oaKHKjjz+O&!B%Ol zw=@=7Z)qLwqAsnGf5uw;ZgW)DJ=D=fT%%FYgxb(vj{a|H3jSDoJQt%AIr}|F(1-S; z3k}1L&zj&q3@r62Fbi*jIh+EsVC-V=;~wDM35?5uN$WMiqdsl}R(%(&*19nXtNPUp zjMCZgCC|c^pBDz+Y+zLVf>-~!x6p$3^C|FV^S?j2_7I%S+#&A)zYeTw_b}(!Qt_+3 zZoz7>k9GH1MqX74Zd-?O+svI-*;)6H-u1gPj=!X4aY^WTbZlB65m1=a#=f@?AU z0E?3N6MZ@`IrtMyg2O=P6%01+nul>$4;<^w%q;xO^TNP$CfwYa0?%~*D~6TmSg?F7 z`TugB{qUE8yEyl{PQJb$$8PsA>~~jS$GaS#t;Idq^(_CJQJ)Wlu3&#C^Gkt{XiD^& zHI}=USsx3hT7N@dx#zM^v)>%me31E9aaQ2oAa_iH<7W0?uZoav>0a<=%};1HM|q`x z-OZj)_UDa|;)!T}JNqIH?1dSIwU3jp{Sou?8P+)mqv2BP>Bbi6T@bi8^95wIw|kRe zUQ_8Z3oDh^&HB$u>vqyuH<%?>nt>fsd5l%b=kAt~zq$Z>` zyGI*ygXPqTKHdmz1bvtKo6fz|zk)r(*4(sE@TC!c(NWVYBmAxBX7~rmlMmemr`TnP zb9hzorAw^*D%UzCL-)DmDE~6EqFLotZU9;fz7+5`EU(_7Z^6%1#~N0cJA&7lF_mw6 z7ikSMlr zudauCjjO8DthI^GN<yNO{7`ZJF zYT8rl&!&I!eV3dw%*n-N{Iby#(M5Blhj!d%gqohM_51JvZaRv-2i$dMxt3l54OFp4 z?bnlgsY~gL_KO>l9g00|{GQl^&;esMM`gA^a~^yV(6JXQZ6axP$OqA9|Be~O1$s~8 z%)-w)miR_~Wy!wE?v-w@r^pi;yR*-S4+8shHTkQhKg?<0DIi zGyT_7b6@wyH~vfQLc=|+*r7!$9);2;oLe0BfY&AXijX(5gn5#j(~;5OlC{-7Y+_Ei z&AmoQ`J~%v{Zxl>@jQZaNK0M^9;*RA2|J|(N+{}}bU9Ofsa6DY+_f7xi z+l-jiK5Z(WhuF~T4P$Ipb5mu#C#y4Hmb`+G|CPp|t2jK**l`{0myCk`(OWd%+U5mz z7=yw~nU(%I!KZX|IN_)*&BllFiI!ByCzEwFpev~k<U_2gam zhd`+Pm1=(~+(GsMBY&`QQca$wKh%To>APGj{g$#p>2w>1J%SbYW#t@S(TgXgSCvpZff{o={GgFy4I8=j;(zsy*jXt$g>VYI02 zYqMvb)UJGt!nE(;L*v)Z_*uO1X6D9u%xT8ZcY6@O#mvr9#!$R6G812tXKF$#xEI^E zCbOu1P0rH#5t&)Uf?DibXsqliMR$b;OL?vUpZdS61bo3aBTG!b>Tp9Jkx!ZaHA%b< zPG=r(#YaM8KHa!#8u#2ceJ8WXJDsukpyp){yvfVCjxgh|dF~#y_TDn|Qs;X)|K%rU zluj>xjDBSYYJ&dKy_|bYkY~sOtFCTrGm-1;x+ZJ>(9crnauB*K)0{qqE=A+UIUhad zrOCSYPB!L*zgTUpjn4*eg1tiDlJtjH-7x)?^8bn{sdR8=`n!{SbCPW=Vr;}i8yP$C z;?3`I2CD$Q2tFSyFy?)bY?rumb0RCM{R6slnftBHvE{|0InkO4UnI-*I8N{W_k7% z2Df;M@K0+V`1CwK-$bpEnL?C*#&@T!Z<49zMQF`$&x;Ek z{ElUOud(TPkLCpRTf8@gN2|V4*41a?&nu}*^ZyWXQ_p7j1vV@3h}?SamrmsyUcPCJ z8U#P%RxNo0?!}Wm+{dDCCbGbjB6qJMP4et|_@4Tx{G#19+0KmHcbX7v@^LD*P2=hl}|YnNs5qBTw7v@v%k6Yljc7`$}L( zZN=nb7yMXvIf?HshwldAi{iT~w=TDC#T}FTS>~w7ATA za@V^5+TuocBYIYSiG1VT*o4CC^JXmj;IEfyT7OF}Uh*5_$PUZnGt0#z*r$GlZA$ad zl5>T%A@LMwH>;|Qwap(~p&W(a>ml)#@%Mb6DzcpTXa>e=4v!F|Kj*S8G-RHti#62`^uPT=REbEMozU!OHHt=71 zjnn?A<*I*cyk0i_{1252Q%*h{pZuNiy(b?&AHCm(e_XQNS7^77Hsp`1cGRZc_1{?| zbn&g#WyDX7^Y7H<@B#ZSumYdTI_KQ%dJ24VIa5@^Ih8H&qElf%@H=4tvUk?TM6G%VJNwidv(a)HDGXW#vIG`6NLYJ z@cpm*T_EN6r+4POx7te`Se5U*9Qr7J1 zSKlCY4cK)#_4f}N-!tAiQU9rRmz-tS=lL1+wM{vxzJ^1_>&Ak)7HlPV+WFkirxVX* zYSit3fo-ciU$)R<|_cex@uD&;#F7U(_O>bYa zf*9CM+(ncLU7&YHuLun&?ma%(oTKJHHqYj5$iT01f6;Tql{hly?!{l6n_YBnXxeJo zC|k>np*F_7WT9)wTg@3q>_E`>P(SvN)U#Io`0TeberBa7HbC0uY|bXWFeh|5I8Fb> zoY1mT-r0w#Ga`jM$>;v{oRIRle={eLI+23=B3e?gT8lT$H9F0i1ZHPry~5y-n{R)wB0qJ=Zf4Ta(lQ!+MW{mUI@-iv&j z!hFsMmCWwv-jFI{SIpYoUO2`WlVxBBu5uMLtADe;e}7@3jI^suS0CNgUYNkHcl3$- z3rozR!!xg*vN~`L>#q7mu?68sww&T~XG5pFW8?w#{ zc+mg5+}=)|H@J1;n9dx|w@+{f{1Z9jJ`y`wzb_D)GI~<3fAoaeKOcLwFJsJvr5C1+ z@omEPQnl7-i9lO70@DyM4doi4q1-^|Wn=vLt*!|z7aqF(<$nsb9BUbw^Xzf>@xSA1 zyLM(EbbOomi8|(LbFDnl{;kSWF0j}W=$!dm^8f<>`t?ic)by)o8*)H5b))@>zAk9uA#Ji2CN(S{|SSOOkd`-g;;Z)kPN(z|lc zvGOTT^o>vWkFLqF@^O#B_@mjzO2rl$qHh|nq2~ksS|H{8*|x!K3;DJIm^Ra1!Wh$h^t{c5 z8)#Q`Z2+!Z)er0{uRe|DJ;B7LN@XJR@vMQ@RoPbgO5U|4z6d7wrMNz&t}WfwrJr| z@cVn^IWZnt8jr+?!j)sVzjLO`9+TfH5AX`6qyJ|3O?2@DWA&dW*PoTsoUFfbRLjv> zcKyF3&jxte(OZnrOZ*=KZuKDw?EeVt?`Pp}^_3-|CdOkkIFcVi2l>75?GEzjf7Qe> z&27-Q_@skhi~p5*n>)a7H#FMu-m1`M{_A_kdvih^@ZSy4wb%3W!VMo=6obFzL_fwn zV2$Y^MpOs%LR^|T{qR-ssVA-u_@Qr`9$nxEdVKt9!*4)GRc2}PBG%qxCI#;O0zCHN zF9rPjk?9D!25eR+!kBK=?tP0@oowGRSCmj~Qm~|0$f(NFzXdGvr z4}29y=+~-)yRQ1wHZb*p3&q3VKi0MZ3%&#R%RWJ!vp5U-cwJxUD7=3vv7WkEuRnEh zU+4zx4cx!HSoVX*U*I0W=K_A|z&E*wx0MsPm-A{vM{};s`up2nTRnR;^A@|zYj@-o zJ^li`?~aj6hwi)U8ukB)%Z*SQzQ>R6r4I0!kWCIBW34+Lr!S9lw&U@q1OA7B<%#q$ zov$$_uT3&?XD#8}8+|x>*M`Cujhw}gKTW)`fDzh4KZJ{;Zw})k3tU+IF=6I3i^hZl z#bi>OYHttw)7Dt#e*8nUd^h=C6VGwwWF?I8%|lN_k>#_RpP&wG6<6)7GeW{wBj+|IpR|}t38T8d({~7 zHB!|fZn^$iI$K*VHz>*kL3J%Nhl*(Pr`d?v(^Tx|7G{j3vYaIOwmzqj$J=_ z#(eMM_>|-IFONY7o;4DhfZtVde~k2#p{D;+nfL22_?xEW6glZtquJLWjZV%zN_r0I z=ZqUuH1gQU`7H|q#1;#DO*FC|yWG(=^ES1B^RIxLDJy0^ePen!ruUkG_%zArlYyS^P;c=9*(-OAf$_)n^%EBU>}@ZSb)icTJR z*v8NG*#X8Wr@8)N@WVX3G2MvG#9o7+*qpjMT3<%r?5(=myV^$@_EUUiJ%_8V_F3oP zxo>ZKkTd)p=;5sa;}}1`iKu;nK|s|1ma(Qeojbn(IVG)VjoprYaeHg z*U$P+_7GW2`JDI#vJpA(DxO9|3d|>LM)p3o z!CiTd%}8rF_06%JICc=FJ9go2=F;G@lJjL>b)zS|W5xfm?J{=0ah$I&HdNoRYrskdHfXedzq~5bM5lt$nil$42i#clrbIE*&2lAASQL zo3U-vGvx1uZl#ZJY`U@XMSjHmvd%asMj^Xsqnh=BzEvZWGil>>=7XmX9RQm3zCPCS zBXY6VFclgUe3`U&cxUz^{_u9De8Vo6fI--`V_1 z`AydQDYiyc5V%Nw>VTm8iY%U0iL21472BlJAK zqx`n58ME|xe#CZMy3Jp*@`f!XtAFM%$-RN|2fx>o^Hg2tp>~qPWB}_8fl}FVUJ-xdVYNlV_|52 zX{ZVqy(VYhz_0eb+&>Xdan7g1Z?0Yxvu!acv9Gv8EC1Lk%ZKLx{=S++_WZK%n!6Pp zHsQ)|_EP66_}^0I`OVC=0-m?rc1`Sml4sd%D~7^2pZLSg@QGXC7q?oxG@m(N3olQ` zE+c-c#fz7oh+)B+WqUrnSUhfy`bB?kp}+t0eNy}+n~$xcPvU{M(5KWmFLq!4sppT_ zn~r0%O009gs5#{5$OreNGnTpwzQiYa*PoWjy&YNnviXhTH=5rVeq*=we>}WU`0Io3 zw7o@4xxfX{F!ZBucQB7sZwK$9DdIszm)B%jbdva*0nat4!{q1M#ysQQ#s9QziK!Vq zJx2JYMMmEnibtH7IWW8hlDKX4;!9NLCQ z&Druc@VsyW9=>nnC%Jr|{56>88=Zc-%|LvZcDYBuy_UQOMsnY;u{}JF|A8#49R4_S zs*hnmKYKw``l;$rS=~L*hmGERmo~!}4&$JK{;ECEg`V>%(-tRB--2jE5>It$)X~I# zHS66DbinpXn;@?TYDF7Eh1EYBR<9FhJGZ#ztY^yzTd=u| z_9d?qi&?OBgGZ+y#F!-3a)9&n?v^^@85`jf`QMyu#3s=ncYu4z&gZr|%DSmX{)X>! zPQmT@O`-0^r;28M#24aa34{c_h&cH10Ca##q+G_icBj;}gp0125XB_%8{$=1X^=_gz*JR6Q z%*`D{CD?@AU*3#OIkP!$*7`#2pUeKy{V@Km%rD`FIJrLIMPt`}TXpOh@7(R4)s64z z^|YfnY%6$nudI%#zCnB*Jm>5y?7pQsHVI#d!OM);W_+xh7$4>RJLUa1{HL1JqRu$P zR;XUie1A|C(wJzB;){)##zZmR-h9a86>Vs22Syt6{uQ1^T;!;`F)iv|bVns)KhIA( zw&dnP>=U=~>_Y$ert)2euSeOWBGHRr>;bMAzr*zH(9%E*gHN;we}iRdMa}Nk%%Y{U zHx+t$E?=8j)VrH~Irf#Td-_B>l=r6P5x=>xd9`aomg6JQeT$8M^)deOMc!XQhl9X( zh;t-fV60fQpixi3C)zC+{H*iA&^Zoc)r1bx%bozJ-NMS@pPPTDkk)`Jgk&v^3nsezdCcCkP1 zCU5iFu|;oAhWBCzFtI~!!H?B&dy5C)V}tbP5c+}q1l)_Jb(ZnnQ+a&C2 zd2vm*tE7$h2L8JW0yEG{TPEl1n!em^l&s4)OI)Mcrb}19$u(~A3$C$QqK`LgFZMcP zVuI)WuA=7l|6ptwx9&7!o;5CvHSvwczYgEgockUBj|e8lLwa*3evC(eO+0}%qr^bS zT4rV+?n8%+z?05hv-ahq#EZMZ9Nl?t+UU+*#DLps26nJ^AP$^SvW5Gt8-Yu_Of)gT zeC~!OL)`8Cp10M`bz4V6D-(|Ab_A?+3(sB0J>frD0vR0cvV`p;o6V=;rkouEy z_f#3%@Q2Idt>slrRXa{;V*;7A-IiGm@2p!Wn{1Hzv9K5ug(YsVFJAp5+?KJRC4eOmqxMpD)_ z>?Y;}x)gemrAyWGM1P7Nc-4$1E<`@uq}ad4ws)r*-a&K%?|;#aOIPknuJ;x9tburDvJJy~(MxnE%mj2)TOT6doU8wsVDH+F`66HT2sm&H z2lUaM#6!~$)BVKoi0xgA&cR(2jMaSu#3ySdmYHOJYk5IWu$_3cvy7+l?Z>_Y{g#H8 zG<=J*ln)#6n^%~zRV#@(%lO`h&JcvIMMvSJ-XQvopfd~rcOA6udHb^X?0-i0;29)l zndE|-?|DNb<6j%c_fyL50B$Ens?&yaw+Qunp;L{s;6yL$E&U7HGL!9;83C(ZCk|?< zQ9>McJ0@#CGE{8}Cbbhz&J9Nw3O;;w54!XA3i{Ku_39qhpW7?;8SzZ|8-&M-J|%lai>m)r_)piypX$p^DSeS_ zQD62NoDE6x_SPhCZ=%gVg*W5R=#SNx2S)h+T=@SKt+rCvnczAdJ_g1ZAFw7nBi`Ks z;&U=)!E4MNsr4e?KXB?3t)#wdE?9QV+s&SVJmUlLXVv3I9{irYvA5x`PqO9`9e3Y5 zoAK0|gY^gF>d2(vcQ5t_;i;>*n`92pE*Jj)I)gHyf-@QZ;``zE!3*$jXS_K3fGp#_ z--`nA#(9cMlFz!EH9T+!*bi9ssT^|Rq*P(^-rL2Q-15hO=+1G-&5XQXP!H@*n`BHAAo;2{&Y@U_YcRBx8ry^_e{+^>25Hyw|a#6y|Qn+ zh_CJ9?3UejYP^8c%&bo~I$%pbd)DHGjx9ZrCi^x1%h;|D++O!V)AL_^+!KnSQr;sgW zqrmxn8N*}Yq8zm6>mq-(Rc5^JM?A0Lr*hEVcER1jc!{sB=YABUk9+Wlu|3%Avf5Q! z2hzs-1hdoTFr5J-n;+goz@+-rH#Rfp?ivG492q$bhZ{IN>EV}Fl^ZeHfp2l4yVjV; zg6vgm?jIPHG8g>&@*+KIR3g8N-I z?t|PdGh|8{|*z zZ$9sDQNAE$jnI|UAzEt z4cm#c1ml4373gYw5O1?Y`vNu0L6a zVCkm)PS%yptSfaVmxn#pOcUB=%)D#zi&lhIJY9~BD|N3|aHhTw>xJB3BfaA|cG*Pj z$QK2pXvWbwwElT#k1dP1gLz)Z)__;^wgQ^cIq1Zz&`6s>SO~Lc@rccZ>zPY~52brs zu|f5zq4_l?k_*eebth~+RlqsK{K!Tnv2@;ic^;s|XGj5kBlH3p}R^$t#E&$e|$&*3~X zlqll&su3HQn$sg3B@($k+9wkIbaC#AITjQCg50xpAN+<5_3eX8t3!%$r@ha?PgjSq z<8CVWp!VfyjNJ*{%jVDM@$(|seZ@l$V87LvM8JI;b*-Ng@E!y-gea(4Qv^!7|i1$wu?OS_sy`sN?W$*{n z=p0yP#GiB-&yF+3b>8PPI!mGZ0)DHw^H}^^ck&#_6>sxcu&92+Wz1VYrP{0h3s%9X zyQAFDs|&m;kNhMGOk*Cfew_>7&VzsF6Dy*i=lBn>O`Khg-k|X|hzV?3XMxmb&wJq| z6X3GG5&j&VO!w+YPdrE*g*SPszXP?Lg+^91xdPvpj#W_*sD$3;WPaJalDILs z%f4W=1hMxjhCszoN#!xkoKIJ9e5h=G6h8$`yRL9CPfzG?hC!t(!7=)cej;MqGFnPu#`49M?Kx>4E9s=#Fug z&g$shC23~Mc;#meIaxlcnVhMGr^>Flw>?rg5jk-I?`~}0pFP+7-akwoAAJD*_5B&< z_ilf8Tr@Aocu{BL*!!Wq`JKAMrLMJmQ)$!cAL|UD?!R?^VH|rn*L_R$-VqrU2Ye`p`;cb$!DR31q&}PnjF(R!rkuCaMXXH0{^nCQA3JHz!`GDdB>Q0p zfUE3F6RbIJ+11bI{k(}5k4fbL$A2I{xlc03uVSt*WzH`_N4t`H;YK8VD{Nau9=ZU2 zx@WXQ{4H!~YU8799cn}Cv*2G~*HWD?e}w(yFSToFZyVmcQMy~hDZ1J!+KHs-L6M{$ z6iMnqo0ED_N7BZp@~7Gs9oz9owUeLHP8&8OwZk{dE~-1^1fK(&WL)?Rc2U`%grB@K zjH_jbqWoWDqmylJ2K#pfwDUId)bWdu?ij&FXSab224=@b*Zp1FM)w13bhEKXgi~yE z#5yXz5B}MGijA%d8{HPmMwf?;&ffP5ARB+MB*)wRH?YwOPycN;I%~h`!|T%2^`~T$ z_N#0=n(347Bs=2aF)pvO{?s~8>(6BYtwqgkb*xKuwokfbq1L6WPsg(^m42f&YP{L> z4ve(dq*@=yAHi9dvc8gJYybYAUd5LMQN4Z1O+85a}8(#RE ziIxwJvp3Z^7aqU8a9FSUs5R%QcacuGy4pJ)eMW0ftrc3=8a;d0jxTDZJvaAz7NEyD zwg%Z#`msGo*K_W7i_p*2*O=a0xnuM=af#o(wgw(r4G*>NpH20<-DMn`|0%<4zQ@|T z=nF0$ZHUDv?N^F5{2UfBe6u6qu8mi8j^ESPLvFS53v=q(E#`wmdX zWN90*vM4)j4|^N9-*FkS)Vfpc(9-9)pV;zGQXAp5YhPCRIryps(FNqEDt&YX?bL?` zR|kmyXRP-ASU$CziHpzP!Bx@`7`LlLhkeK|**{G58mkO`t=w61Wq{atZ=m1k8_}44 ze3bu=tzYn{zll9bJJ8>yA&=6LOCx%Y&t|OwT{-JG(K&X>-ja!Y=WK()c?GM#=-H)` z5$xycT{`O5Sc{zSYqoJF`v_~X?UE;ZbB(!oayIgWec8^#IhT2ot&Uw)^@V4$2T7T5 zp%IVxut^5sS&gO9ak5?h>t!+cS8R~GD6M_omaORXoahptw>CD7@7Xy|th|S^-Wj#A zWyBR}Uh~+d`X}xwT*SI;1^SH_-C6M`0_2f>w4yCy-AjEo?`fP1t>h^fL<@l;_QftT zzvrG?65Yw!g+&*c8@**E(dt^}#$#pCv(3nZ4dj;(Wg2?cu?I)^RrUqxJHz&IyPpPr z4HnL@i#j+nDs1~2eYfnT`hHXK>G8-;g@wmRu`&02@TfJP<)?EF=RRrg)U{qio{d-4 zNlcsV-M}e)YOGGe>1Y3TIPIbh?vzX7biB{OsXvKR@ua@;6FA-fkvJXiOT)H0ag&YH zZ2FukyVQ4gu`%b#vut~uon~;ixntXxU&aYr{my5Mc$X`@u-gT{v1FhT?P@o+aet$= zx64{#xNKLu$@jG3?_KS#ZC%(5y08^=VJGOqKG20-q6@o37j}s*>=IqrC4RWp)ze*W zuh;vDUDN#zcYZ?`+Q)yC-{t&%cnj!;rcgg$LX3LX09d~AzD-|NlJ!bG{z zazA4hK!*Ia^p4MgPjo7J*SKh%AbJ;lu({tGW{=OI^%DHZK8n_nSH269<5CXoRnOOa zC>ma`H>4Z$-ocL8|B#72C9iiEcE7}Y8!rtLvE9$dcFlc>hRHfaw0jABIb1$0SHgwp zDd6qv$cP8ZUEcfG+VV<#BwTL9aAN&XneLiE{F}=EIhXevlkNVVq%?UkiUmknD1{go_mjUvaz*34oiRR5fnh{lO4~>geW@LapsDj>b2Kaq+H@elgFN5(Z;tS%>TuxXBz|*hnypKvp^v7cOO5D>-=1OZ zZRx&CN0*ZQes~}L6n(0T{p!Y3_Tmk`ozRu+z4L~G5AVhI5u5CUu3_ivFZ}Rce1LB! zbcE!7|BMgs#di_=?*u=$^Oep9mMUm=ZwWl!{uVwTn1^|*{jFgh@G0M~Pvq;H3w%|~ zjUy$){QXPdvy^di^he?4?QCQFFS3m}KjbOevU%kRnXGnG<@tW(xoBx`iag&}enOV_ zjSerAF5pA1@0A{zvWMS?JpZ%y8FIr5`!d4|UqP-v^Ke?vFSlm*?Ehj?jxj!aPb1%d zk(BRE@Zet|-#?im-*=uO-*+P4Z~2?a_wmU06Z1eimopEfcd-jTEZ-9!sdw4FH;&%* zz)Aet9_IrA)`6=^t?`WCeknA63ABGPYq47FSvH>*-;iHy(pSQgT>>kB^dx6?rb)US4Jy}n>r2NhosZxgKuZ+9p9N3N;OQ60 z`xWrhUn1}Kk*_H!^My;%(O)m~3w*ZB&mYEH>UyY;*prTqDE{flHiwU%SP$h}y1TO; z!iV@I{wW;oMPFNud|ve_m-klWb1*5J*`xbV-iD+;cnkS&MxL)q(FYr(Ye}BhpcjlS zvt+93Uw#@{zWg+@eEDA?%a@-b%g;0y_KvPO z>wc54)(rdc$3LCEcWVlL>_y)bO*NlU?-|#t{Hvg+n@^!9#jrGzF~lr>0Sp7ObtdEV zsc*6mXe`8Ybx)$;6|5-wbKHG9b2q!(&Cg+vwRyw%Ugi4*XAytJnMCDN9nZ3d)5Tip z)OCi&Z~&X4))^X83kU1^793c&Yk}%(NUk*kz{#0}VI48G+$zd#PSp{I%jXZ5m!7Bj zBVQiPA+>WZb*c^hzY{#WCnWuhN|Sy@f2I$HV_&y?E{%ZI2lF!Rk4_$*qpO(L+cTjV zA8TUPBS$#nARpuaaZK=!Yzc5iTHo7vMou$_!YOlTGjk}+9AbU6J;EFsU_INGoI}&0 zuaW{{>ae$lEvu!0_$Z1+r@gi?=W)A|^Kdg`vzam4Y@dOZzH!D_avc}gvEH8{Lc8v9)Hsr_ARvMAsYH?eY*d<+W4>7^ZKu-^KZJ3#`yhh>N|1v+wqas z+}3_m_>}#*o7p!@J>S)x+@I@C?$7N^?$7CLmGpe4yy(f{1^DY&ynwZl#S6m35f(4l z!W}%CAF1cLMX#FQVet*-cc1tM^ShcDWjB#Gk2S?A=J_wMQU8Daocdh)BAA1mC9BIY zo@8Gj-oUvW^k`q>z4&WspON!^!S{$Oimy`_GDf_zEa}e^EKiSeXK-v$~6^>CqA| zvW<92&fY@sQu=+|)AJTGXqf-}H|zt;C(>QP-b|<@w+i~vUa#Y;Cmw2!4eSuDb4Nmp z9Y?rKcfk}-Pts@@Ij%9-!dM8eT7L-7UeP5qYbYK1+`>~h?!gD61K*2GeDLJ!ZFB_U zC0mG{xu$26eDazs$-5%r1pusQv3yj$PL-8WuMFs zk)L#!n{Cu?x>#w80)vTri2=o3_??SMW{#PmAz3^>f#o_TTc?Oe|t=J&tWJ zUSj53_x0Ydx@xMTUCbY~SxO(AzHfIKJ?tCw<{Nh|X`;Rr=8`W(Le(+XDmKN zd^w%9eh-`bt>F5zt@vZHFF$}DGoUBuNcRCNK4`t(-*c9;)m?PKE^drvdR%sgYNfmH@NBB%f6rRaCSu-37iD=m z7oXFoxVA$L>?4+P-c@J(2bo*)dwVdgpg9c8qSvQ6W39SgNlDY0-OmCG<6xZ&+X5UF zPugQv&HvM#ac#)J7EasCGy4{bzWPU++YaV&{$iS~!%A0BOpFN6+f+CG*I6EDbl4|B zd2S+2^Cf^!kob9*^fvgpi7ePl8NsZ*3=_O@4#T4JS(FK~zSF*F7~E^0w2k@bRy~H>1BQt@rzv_#ge@C4Ti$ z^iL<}J&IqyV(aeYY_#a4leNR;_@nf$td2cO%z)1_FM4-#$G15y>rvtcY$i6sR(M$$ zoSJ>{T!*?|v;w*H}_w6(ERf~L;>XX{pwJV)-L8X?@oc8FL8!H=$pBTjd>UP$(Y&cox zG2Cx{nE$&kW8Nn`Jq{j)L*a4@V<%iXczhRM!7kzwu2wqdEF$=hx^?ydIU_!3e$AGX zeIF#|xZk(sWCQ2IH9rsVbWf)33z1dGp##wT0JNmGOxAb8{i$@)##n!oe3o7EuY|jw zScHEoxZS{d>ikLM>72O{J^lIepW5fkljmmtJA9x1JKFfK^RGH_eo$+ayfdtWY~QN? z_21GNOX2Ci%YVx#4eXF^mKt{@)!#;RA$=o=ekA=)vZNZFO*RdKayqY~vfQ)rE!_)o zp3R$Pp375oE1R8sm4fIxr=HdBfLCJ^>h+eEpi_N9?;Tmri_{aty$g6peA+w|hX?-A>H659? z8kv;^-m<|*2$_||INVLFn{4#VD&qUJgC9p;ji*dK@=7{fA$r)~A*Z}+@`|o+olrEF z{p!2X0p%lhig<#wqa?2+Q>5eeC-vF)Z@(B{ zs9JPb$G_~KyKUXp<^{rOH#kjQ1BWS_s;^o)GC1g=|FdaBI=9ZzOGf5_7mb}$Mq}6T zA-_@9+N?=*_S*fwex0xUrDv}r#BDH!##r(Cw2rjacbW_EZ)d$@tuvD2rudxBT0>)J zt$DtKzfh7UQr9@ne}~VgZq=zdqH|E)lo78G-%y>-{3w+UMr=mWTZA_94E!v60`WuG z>ju*@d+Uj9)=OLmkK2fsj-B$;!JHEAU=%BpLX!@vQnQ0vEV}8{E`#4~|g}i(5eN-%+dBDs$iznab zzq5wdTv5ys;Ye@@Kf?c+@Y7Lj<7bfi2hu#f+-D!}p-wlrF=$VGMDcix4@SnN1F1hw zOaRCB>C9P;&!5wNm^RVrxBr5AHD7H!6!aGGjWg3H@Nk^D4j!sfaKO2z`2FCZ8yv{* z^8Vu^hjDN!d=C8xKG|Ty^igMXWp}lCHoU0Le8E_Kc2qp2afY$6?0e&)uIi2@;uWPv z=`SqXEj-A~CY|ystNQ+&dJfi{T+jd8_W!rs>Br^&&v;>7@#33V*z>Ttn3o57-1*2t z=Vx>Iq=Sr6{y>{XfU5%4qd%VqdXy8VIpE^HR!M`ea#-OuIbzvi)UqjQq)a}U&o z?A^ubp}c~ng>YjB{o~`3fu%Y3`W62)3;Pgo@_)NKX#2)@b2o@$ zr8;M>RDZ+6_INtDgh5;1?xSyE?(b?CSDnP&34FJXGvlHeE1hxI)8dhnp-uU!)Y|b0 z&IJE*|J^6`v8&14XuL4zq&~K%KXWaW7SuP+9HVO*zE#Xi?g&io{gw2V-(YU6 z**Gs+MjfIJaO>0a)VMNsd6vH5RvCRk%Wz}!@fg6Do_IdG00s1=7#s{S&+!whzEA^vVwQxvH?K zH}b!0VmP=6gHe_bfQH z!HBQN4m~)H^x|6of!Z&V{x77jBmE}}4ox*<>&Mml2WOLhzS8d^eb<6l>05v8oeTO8 zKEL45O!7QK9oQ)4Q)_ab>_BbXfM-OdSp!wH_{1d&(#tL2e>gtR+pM^FD9-@Db ziWcqo)uMgb$b;n>@g`qJd{Iettm%R5*rFny_h!fHCRfLT4`#LH!wQa#5G&lfVidIF3(1#V5LO5uf!oDeE*WmlG z9@7f#iC((kg{i!+6}r^eH`G91;LGC0&}=KTCq7?swlTMpu^yOuRgXi{PMq>!F*H3T zBi>yM4MWqyRS=r)F8>Icz9<7-C`r@Br=e-SHI_ruTTiCxL(rM_4x4tTN9&>K#ZAH0 z&Cv6-ri#^W=(!|G&#VhWqfen{(em}$!{R=t>+w-w9c$Av@~#hBW+N}Zih4xL1JLpz z=uY%3I&)~cd$)0HAcdwy&)tPddW5FS%!{}6jx(UsbZGbzXm|uPTmwzJc(3I>jrRcW z2Jg@|G<^`7?!kx1J<&c>w*Q~ZmK)fk-oM)UcME;Ce6qOHD!|@Q z33oJ=l3v0&fkt$J2GT#N@(=P|y20m6%Wlhgom|QHl5f~|VU>K=Y&n38DCPSizH|0+ z&N%)T@V^V6L4*Ib{2%8E=Z@uR@YGqkdFkO?=}DzLFXZ_{@xHZd7~dx!z?bel=;y(gu&Y4t0nT=qYBx#qb+yE027cBuy`O~+ ze$`>V@b01XsBDHxyPf^Bf2hR|gBZ~+)&h}r%Z?F$eR~*PLcGM$``<>Vcj|ZQzLmBO z`VethF{^xz&HRdPM2PihP?<}1=$lH53X+I zDfs(2W1fniff^e>igm$71yPv7>rZ}bgoPiaO#nZB@Iz2)3qKV}{FDyk2mefTF9$!W z-@%U~L-(?V{1W)qU0mvXW5=q9;eQm>;Q2hxwtx67depl=4x&#-jm#`am!;EL?nO&5qq0`EkJKN>#e zi=-W!-*9e5Tzl0K#uh$g@s)1oMC4=C13c2XgUe_8t@Na<+C?1n2>Nv-p0Lxeo9*8R z-AGq;)?7hgmz}$SF~ML+KFMfcNUlq@)(Do*jy9b?J6b|a=qi3?`soM^yjA-!`ZA!Zn}4#HHJ!iC4+m;YK-W9mpz69?KX|~1B*@LtcOy@Q1v^wmJSWB z??YdW{>k<1Ct1gJ`A*W8cmFa~7q)H2rS9aNQ`0YHEucPOZ(~f{XW8S>aBfn5Byo~Y zpBrwuG=3lOhP5VTUi48e_&M@9<#%5mlTLQ?!SkbzzO)lRWaUl8uf=av_EYxUvfBRs z<*}Q$o>GoEd{Q~&7j$UB>Wr1-?uWizbZI<5J_}A{uk&By>ewh9dt~4=_}aSmWPBaZ z;ye!PIgPv42F5D&IcbAo%tTL~g6g;jdur2vULITjGxLS|eN&=U==t@;-rGRq|&lu$Ns1>C^t^nCv5wQy>5T^+BD9frS~*&?wkFy z;qiEvzKEyxi#Au5>ZM4zEJn4Y{H(zw|@ZBN7nu}xC|CIKaFZH43 z|A)EvkB_>#^8erOnE*41%CA5mQ8NiuGeN5;Aw;E2g3<)+wgUC%eq{o??If|=BDR{c zG?UOD6T-HPwbcc;1njm+)UIuzGTZJNaDN1CyZ%`1uiZ5X?sfugSFj2ZWxmhXeZSwy zBnGjc?|#0I{bL^U{&C;;o_p>&=bn4+Ip^+g5xppP0yew`cqz;tX)EJeO8&Ehz-M!Y z7tTy({07~zN@HV`9DDsdYu~SUR=T-o=Q`+1a@=Ap#C!EFUykpS=t4Q}6Zk~Nw%))Q zBXRO81&bP%Uzf_~+>O|k%glKkCFnma)V!w&Rkr?C98RMH+j1j5`$~nadA>? zrof;>v9=B|O+)FB-lNb5yNpi*>z@I2GWt4`6*KfN0u7w}f z?~jtB^{;s5*jeKlP>b) zX)aGO*W~}ye)j&{OGf6J6U;Tz7c#)N4n6#x`U3VFcdjvW8tqQhMgl$4Yh&Sa_T%?| zy==lZYS5?8)&{w8Cu}2z?%}m@|G(I;-v85y`%#JxeYQ3}&D=auKWd=`uZ_LW)5aa) z3Hu@4^WECe81#aF{KpJ$Nxn(8InVOThuL30u|Df;v1}Xc1oKSWv@98Ca+YMtxTYNP zRTpx_SRj(R_k(=ljpk3)pj-5LKHO&nR;N?qA9 zNAT^sY4Y%{@12v9Kc>pG9lSDm`1?9DX>N}bGpIZC&C#E>LAhj0YOx47fZ%DO&>xR^u*eA$;SQxae z8COrLo!^g-r2ID~g4IIqyjS=H&nalZgGn&{YSPI{^!Dk+ob%%+pWGjV`vmiQ9kMTu zP9hs#U_;xg5@Kir$i|WR@mOY|%IWY!Y6uBY4%s#F)U(4S^>vlck zTo{vMQo3Z@f7q|q+;BPhc?-(5XQVO0zt+&K%HBhL*uBg5GN-7{F8)=Y){U&enwF9; zxf*^;gU^_4ReI(0UhQ?c`7B$hyXIf*XKTvJlk<3I=#Kidu2Z?R3#WIlIaclH%!hv7 z>-*AQV!NMqnVXBrefBfzd~m+;v;38Pa?#yx-+gYqF}Ggbd-WXr6@C8AW%Sv}zgGrb zzsWj6G#C4IX0PZ&w6U1J@4`R023}9x`&%`@@#I+Cj0{v8sy!J}4|Mdta&OKC)v8{Droy5`1qk^vy+D} zclHIvr{vhKc!T!)Cg9~e9bA;xY7NI3LqTFkhQR$H{FI*lz;&r-&@Fz-Ji}cR`bll6FYD3o^J$GWu)wxE>-xvcA@^4Vzq>tY2FUmW_8OZ;{ zn5Ztb5xl?EtoK!?idWAs;c#W?d(wyvpt z1?e+-4sVpdCtbU8bRI&^u9BSn3HY_nIk|{?>_>sTV$Koo<1D&E7b`!@%;Z+fnl`^7 zws-|+RYmOLmm-X>cp!ETI^$k;nm{%K>jFP ziaD*FHG1C)JW&^qwORd*N+uSKmg{Bw$}WYM-SIp?JyG_o)IZrJ_1~9;_x}IRtf|Eh z!7Cr-zArF(-~YSJnhId;^l(j|N9Ii0s?EBurw{#Z8)aFzi!#>PxGmv6?!n~#_s?-) zi@M*-)+ty!-TR1pZ(Zp;k6=I4`(76(y>2-R8>)Fe$@v$)b>F|hxsSVJZMo&M{njdS z1iqkRMubH+Zx4bVcs+eg5rF51_a{4M>Jef|@?mwmpIu{ZX4+3T^-@8-GT6UOCl zR2Cb2zusYk@7Fij;9H?_m5EZ{w^RmudxU4Qx9_G8dKco|F5Y#%mRV@(<9;Xi<{H|0 z(7g^pAIcr1=bePwi)6OUc`lRZH@-rzqv!jl zY7Jxe$cG?P=^x(BeE?l%E%}z-Fu8}Uo&oei?WxMfrdSry((nB_W=&^&0ML5|9-iyi zFgzaso=Nu`Z>LUIE*s9s2Y~iYxIO?{E2&NSFC1PrC#m+-j%>o7P9B|%uR-22Y*^$J zmQLX6>K1x$x_Egi#=1_rwb4T8l^g zMIK;Yc6=BL3=Y+=PM#T9f(|SiBgQIudLFsX@uwKZry<*q+N0;l1inHwH;&p9Mf34L z!>6IPa*U03-MBJm^LsF76Ra-4mt_uX&bjEMg{&8gx=$arhU3H_DzAF|eA#$&dak?F z(P>z(_6)ElW$%LZq@OjUugCKd(Yo2fe`FYcDfE*b;W%K~&lLyl?>5Z0))by>dBMTy zTe-cQ@Y z?;yI?pZIbNenWq^ix|n`azFezDHLBdl5Y-p6E*m)P=}Gh)So@xpGK}pX1%Vt6}Y^1 zUs*5Onr-$sMDr#_kGgsT_yJ7?#$R(D;XGo*`DS3=6w2a9Q{vE2KV?q*Ix_qK@9&*l zlPbw^ ztXKP=5RPVz;^_Or(WJ3Bf^P@E@7S|67YP1AU>3Zd?f(s63{mbT@^an{oV!k28_H%0 zPA3K-HY2}7FdlMYtfQW%$zdA=&i2XH^afzf1=feao%Ui%?~#AjH9AvmoUfDPr{$F! z{4DFfdzYNCoW9>io$~!UxJBzdJ6TQJ!rd3#=X+YIm!eT@hSg?*;geB z=U@k7ZoRRaXOeNnulqN=DH>uOG?zGVjkjcm@&c;PNK@rv+0vH!3yzlHCvIZoCZW@F z{zeAbtuwsR>#b(V|Dk18^BW(un$^Y-b*^|JXZwoXj-9FLg2;Uj=Y%EeUv(sx1Y0|$n6rqC#|@LJ=JoIira|^Og_l^a1QIk;VtZ==UKz& z^ZX${*Ps2&{-F;>nvvDV0-HGNnDaAp7hEudvnZOC5B3OW;-)`tHP5f}uU2eiBhQ9z zx0;X4w^FUZA%1~Zjs3{Gw(Q;|tWkSHTUxJ8G;P}N@Z>CWPJ`$r%{kcF^wMdaT(pTi z`Yng8V~PQt0q#Ew-K>Sa8)!rMIF0nF>4hEEMOIielzWjKu7&

      z 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

      $#l*NnPG8*ZWQeKiOkFa_iBBlA*qanHMsyl2aM+ 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 diff --git a/patches/raylib/all/.gitkeep b/patches/raylib/all/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/patches/raylib/linux/.gitkeep b/patches/raylib/linux/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/patches/raylib/macos/.gitkeep b/patches/raylib/macos/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/patches/raylib/windows/.gitkeep b/patches/raylib/windows/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/scripts/raylib-build.sh b/scripts/raylib-build.sh new file mode 100755 index 0000000..19b90dc --- /dev/null +++ b/scripts/raylib-build.sh @@ -0,0 +1,105 @@ +#!/bin/bash +set -e + +RAYLIB_VERSION="5.5" +RAYLIB_REPO="https://github.com/raysan5/raylib.git" +BUILD_DIR="/tmp/raylib-build-$$" +PROJECT_ROOT="$(cd "$(dirname "$0")/.." && pwd)" +PATCH_DIR="$PROJECT_ROOT/patches/raylib" + +detect_platform() { + local os arch + os="$(uname -s)" + arch="$(uname -m)" + case "$os" in + Linux) + case "$arch" in + x86_64) echo "linux-x86_64" ;; + aarch64) echo "linux-arm64" ;; + *) echo "linux-$arch" ;; + esac ;; + Darwin) echo "macos" ;; + MINGW*|MSYS*|CYGWIN*) + # MSYS2: use $MSYSTEM to detect arch (uname -m lies on ARM64) + case "$MSYSTEM" in + CLANGARM64) echo "windows-arm64" ;; + *) echo "windows-x86_64" ;; + esac ;; + *) echo "unknown"; exit 1 ;; + esac +} + +PLATFORM="${1:-$(detect_platform)}" + +echo "Building raylib $RAYLIB_VERSION for $PLATFORM..." + +if [ -d "$BUILD_DIR" ]; then rm -rf "$BUILD_DIR"; fi +git clone --depth 1 --branch "$RAYLIB_VERSION" "$RAYLIB_REPO" "$BUILD_DIR" 2>&1 | tail -1 + +# Patches live in patches/all/, patches/linux/, patches/windows/, patches/macos/ +apply_patches() { + local dir="$1" + [ -d "$dir" ] || return 0 + for p in "$dir"/*.patch; do + [ -f "$p" ] || continue + echo " Patching $(basename "$p")..." + (cd "$BUILD_DIR" && git apply "$p") + done +} + +apply_patches "$PATCH_DIR/all" +case "$PLATFORM" in + linux-*) apply_patches "$PATCH_DIR/linux" ;; + windows-*) apply_patches "$PATCH_DIR/windows" ;; + macos-*) apply_patches "$PATCH_DIR/macos" ;; +esac + +NPROC="$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 4)" +cd "$BUILD_DIR/src" +case "$PLATFORM" in + linux-x86_64) + make PLATFORM=PLATFORM_DESKTOP -j"$NPROC" + DEST="$PROJECT_ROOT/lib/raylib_lin" + ;; + linux-arm64) + make PLATFORM=PLATFORM_DESKTOP \ + CC=aarch64-linux-gnu-gcc AR=aarch64-linux-gnu-ar -j"$NPROC" + DEST="$PROJECT_ROOT/lib/raylib_lin_arm64" + ;; + windows-x86_64) + if [ -n "$MSYSTEM" ]; then + make PLATFORM=PLATFORM_DESKTOP -j"$NPROC" + else + make PLATFORM=PLATFORM_DESKTOP CC=x86_64-w64-mingw32-gcc AR=x86_64-w64-mingw32-ar \ + OS=Windows_NT -j"$NPROC" + fi + DEST="$PROJECT_ROOT/lib/raylib_win" + ;; + windows-arm64) + if [ -n "$MSYSTEM" ]; then + make PLATFORM=PLATFORM_DESKTOP CC=cc AR=ar -j"$NPROC" + else + make PLATFORM=PLATFORM_DESKTOP CC=aarch64-w64-mingw32-gcc AR=aarch64-w64-mingw32-ar \ + OS=Windows_NT -j"$NPROC" + fi + DEST="$PROJECT_ROOT/lib/raylib_win_arm64" + ;; + macos*) + make PLATFORM=PLATFORM_DESKTOP -j"$NPROC" + DEST="$PROJECT_ROOT/lib/raylib_macos" + ;; + *) + echo "Unknown platform: $PLATFORM" + echo "Supported: linux-x86_64, linux-arm64, windows-x86_64, windows-arm64, macos" + exit 1 + ;; +esac + +mkdir -p "$DEST/lib" "$DEST/include" +cp "$BUILD_DIR/src/libraylib.a" "$DEST/lib/" +cp "$BUILD_DIR/src/raylib.h" "$DEST/include/" +cp "$BUILD_DIR/src/raymath.h" "$DEST/include/" +cp "$BUILD_DIR/src/rlgl.h" "$DEST/include/" + +echo "Done, installed to $DEST" +rm -rf "$BUILD_DIR" diff --git a/scripts/raylib-crossbuild.Dockerfile b/scripts/raylib-crossbuild.Dockerfile new file mode 100644 index 0000000..f8b393b --- /dev/null +++ b/scripts/raylib-crossbuild.Dockerfile @@ -0,0 +1,24 @@ +FROM ubuntu:24.04 + +ENV DEBIAN_FRONTEND=noninteractive + +# build tools + x86_64 linux deps + cross-compilers +RUN apt-get update && apt-get install -y --no-install-recommends \ + build-essential git ca-certificates curl pkg-config \ + libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev \ + gcc-aarch64-linux-gnu g++-aarch64-linux-gnu \ + gcc-mingw-w64-x86-64 \ + && rm -rf /var/lib/apt/lists/* + +# windows arm64 cross-compiler (llvm-mingw) +ARG LLVM_MINGW_VERSION=20260311 +RUN curl -fSL -o /tmp/llvm-mingw.tar.xz \ + "https://github.com/mstorsjo/llvm-mingw/releases/download/${LLVM_MINGW_VERSION}/llvm-mingw-${LLVM_MINGW_VERSION}-ucrt-ubuntu-22.04-x86_64.tar.xz" \ + && mkdir /opt/llvm-mingw \ + && tar xf /tmp/llvm-mingw.tar.xz -C /opt/llvm-mingw --strip-components=1 \ + && rm /tmp/llvm-mingw.tar.xz + +WORKDIR /build +COPY . . + +CMD ["./scripts/raylib-crossbuild.sh"] diff --git a/scripts/raylib-crossbuild.sh b/scripts/raylib-crossbuild.sh new file mode 100755 index 0000000..6ab8de4 --- /dev/null +++ b/scripts/raylib-crossbuild.sh @@ -0,0 +1,15 @@ +#!/bin/bash +set -e + +# llvm-mingw appended to avoid shadowing coreutils +export PATH="$PATH:/opt/llvm-mingw/bin" + +echo "Building raylib 5.5 for all platforms..." + +./scripts/raylib-build.sh linux-x86_64 +./scripts/raylib-build.sh linux-arm64 +./scripts/raylib-build.sh windows-x86_64 +./scripts/raylib-build.sh windows-arm64 + +echo "All done. Updated libraries:" +find lib/ -name "libraylib.a" -exec ls -lh {} \; diff --git a/src/main.c b/src/main.c index cb828d1..a50968a 100644 --- a/src/main.c +++ b/src/main.c @@ -385,11 +385,7 @@ static void DrawLoadingScreen(float progress, const char *message, Texture2D log Rectangle barOutline = {(screenW - barW) / 2, startY, barW, barH}; Rectangle barProgress = {barOutline.x + 3, barOutline.y + 3, (barW - 6) * progress, barH - 6}; -#if (defined(_WIN32) || defined(_WIN64)) && !defined(_M_ARM64) - DrawRectangleRoundedLines(barOutline, 0.5f, 16, 2.0f, cfg.text_main); -#else - DrawRectangleRoundedLines(barOutline, 0.5f, 16, cfg.text_main); -#endif + DrawRectangleRoundedLinesEx(barOutline, 0.5f, 16, 2.0f, cfg.text_main); if (progress > 0.0f) DrawRectangleRounded(barProgress, 0.5f, 16, cfg.text_secondary); diff --git a/src/ui.c b/src/ui.c index 9098026..95d0715 100644 --- a/src/ui.c +++ b/src/ui.c @@ -1044,11 +1044,7 @@ static bool DrawMaterialWindow(Rectangle bounds, const char *title, AppConfig *c DrawRectangleRounded(bounds, 0.05f, 4, cfg->ui_primary); -#if (defined(_WIN32) || defined(_WIN64)) && !defined(_M_ARM64) - DrawRectangleRoundedLines(bounds, 0.05f, 8, 1.5f * scale, cfg->window_border); -#else - DrawRectangleRoundedLines(bounds, 0.05f, 8, cfg->window_border); -#endif + DrawRectangleRoundedLinesEx(bounds, 0.05f, 8, 1.5f * scale, cfg->window_border); const char *titleText = title; if (titleText[0] == '#') { @@ -2858,11 +2854,7 @@ void DrawGUI(UIContext *ctx, AppConfig *cfg, Font customFont) Rectangle ttRec = {tt_x, mouseY, textSize.x + 10 * cfg->ui_scale, textSize.y + 10 * cfg->ui_scale}; DrawRectangleRounded(ttRec, 0.1f, 8, ApplyAlpha(cfg->ui_bg, 0.9f)); -#if (defined(_WIN32) || defined(_WIN64)) && !defined(_M_ARM64) - DrawRectangleRoundedLines(ttRec, 0.1f, 8, 1.5f * cfg->ui_scale, cfg->ui_secondary); -#else - DrawRectangleRoundedLines(ttRec, 0.1f, 8, cfg->ui_secondary); -#endif + DrawRectangleRoundedLinesEx(ttRec, 0.1f, 8, 1.5f * cfg->ui_scale, cfg->ui_secondary); DrawUIText(customFont, tooltip, tt_x + 5 * cfg->ui_scale, mouseY + 5 * cfg->ui_scale, 14 * cfg->ui_scale, cfg->text_main); } } @@ -3148,11 +3140,7 @@ case WND_SCOPE: Rectangle ttRec = {t_x, t_y, tt_size.x + 8 * cfg->ui_scale, tt_size.y + 8 * cfg->ui_scale}; DrawRectangleRounded(ttRec, 0.1f, 8, ApplyAlpha(cfg->ui_bg, 0.9f)); -#if (defined(_WIN32) || defined(_WIN64)) && !defined(_M_ARM64) - DrawRectangleRoundedLines(ttRec, 0.1f, 8, 1.5f * cfg->ui_scale, cfg->ui_secondary); -#else - DrawRectangleRoundedLines(ttRec, 0.1f, 8, cfg->ui_secondary); -#endif + DrawRectangleRoundedLinesEx(ttRec, 0.1f, 8, 1.5f * cfg->ui_scale, cfg->ui_secondary); DrawUIText(customFont, tt, t_x + 4 * cfg->ui_scale, t_y + 4 * cfg->ui_scale, 14 * cfg->ui_scale, cfg->text_main); } @@ -3554,11 +3542,7 @@ case WND_SCOPE: tt_y = m.y - 25 * cfg->ui_scale; Rectangle ttRec = {tt_x, tt_y, tw, 24 * cfg->ui_scale}; DrawRectangleRounded(ttRec, 0.1f, 8, ApplyAlpha(cfg->ui_bg, 0.8f)); -#if (defined(_WIN32) || defined(_WIN64)) && !defined(_M_ARM64) - DrawRectangleRoundedLines(ttRec, 0.1f, 8, 1.0f * cfg->ui_scale, cfg->ui_secondary); -#else - DrawRectangleRoundedLines(ttRec, 0.1f, 8, cfg->ui_secondary); -#endif + DrawRectangleRoundedLinesEx(ttRec, 0.1f, 8, 1.0f * cfg->ui_scale, cfg->ui_secondary); DrawUIText(customFont, tt_texts[i], tt_x + 6 * cfg->ui_scale, tt_y + 4 * cfg->ui_scale, 14 * cfg->ui_scale, cfg->text_main); } }

  • $YW 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

    +ncp5g; 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 z