1changelog
   2---------
   3
   4Current Release:    raylib 6.0 (23 April 2026)
   5
   6-------------------------------------------------------------------------
   7Release:     raylib 6.0 (23 April 2026)
   8-------------------------------------------------------------------------
   9KEY CHANGES:
  10 - New Software Renderer backend [rlsw]
  11 - New platform backend: Memory (memory buffer)
  12 - New platform backend: Win32 (experimental)
  13 - New platform backend: Emscripten (experimental)
  14 - Redesigned fullscreen modes and high-dpi content scaling
  15 - Redesigned Skeletal Animation System
  16 - Redesigned Build Config System [config.h]
  17 - New File System API
  18 - New Text Management API
  19 - New tool: [rexm] raylib examples manager
  20     - Added +70 new examples to learn from
  21
  22Detailed changes:
  23
  24[rcore] ADDED: `FileRename()`, by @raysan5
  25[rcore] ADDED: `FileRemove()`, by @raysan5
  26[rcore] ADDED: `FileCopy()`, by @raysan5
  27[rcore] ADDED: `FileMove()`, by @raysan5
  28[rcore] ADDED: `FileTextReplace()`, by @raysan5
  29[rcore] ADDED: `FileTextFindIndex()`, by @raysan5
  30[rcore] ADDED: `ComputeSHA256()` (#5264) by @iamahuman1395
  31[rcore] ADDED: `GetKeyName()` (#4544) by @lecongsebastien
  32[rcore] ADDED: Logging and file-system functionality from `utils` (#4551) by @raysan5 -WARNING-
  33[rcore] ADDED: Flags set/clear macros: FLAG_SET, FLAG_CLEAR, FLAG_IS_SET (#5169) by @raysan5
  34[rcore] ADDED: Warnings in case of no platform backend defined by @raysan5
  35[rcore] REMOVED: GIF recording option, added example by @raysan5 -WARNING-
  36[rcore] REMOVED: `CORE.Window.fullscreen` variable, using available flag instead by @raysan5
  37[rcore] REMOVED: `SetupFramebuffer()`, most platforms do not need it any more by @raysan5
  38[rcore] REMOVED: `TRACELOGD()` macro, hardly ever used by @raysan5
  39[rcore] RENAMED: Shader location SHADER_LOC_VERTEX_INSTANCETRANSFORMS (#5592) by @CrackedPixel
  40[rcore] REVIEWED: Gamepads database on latest `SDL2 2.32.8` and `SDL3 3.3.6` #5403 by @raysan5
  41[rcore] REVIEWED: Alt-Tab not working in borderless fullscreen (#3865, #4655) by @veins1
  42[rcore] REVIEWED: Automation system, saving to memory buffer and binary file (#5476) by @belan2470
  43[rcore] REVIEWED: Check if `shader.locs` is not NULL before try to access (#5622) by @maiconpintoabreu
  44[rcore] REVIEWED: Content scaling on macOS (#5186) by @mchcopl
  45[rcore] REVIEWED: `GetRandomValue()`, fix modulo bias (#5392) by @Marcos-D -WARNING-
  46[rcore] REVIEWED: Controller not available after window init (#5358) by @sergii
  47[rcore] REVIEWED: Cursor lock/unlock inconsistent behaviour (#5323) by @tacf
  48[rcore] REVIEWED: Description of `RestoreWindow()` by @johnnymarler
  49[rcore] REVIEWED: Touch position register on automation event handling (#5470) by @belan2470
  50[rcore] REVIEWED: FLAG_IS_SET to check if all bits in the flag are set in the value (#5441) by @vushu
  51[rcore] REVIEWED: Fix for BI_ALPHABITFIELDS for clipbaord image narrow support (#5586) by @crisserpl2
  52[rcore] REVIEWED: Flags checks, fixes #5597 by @raysan5
  53[rcore] REVIEWED: Fullscreen request #5601 by @raysan5
  54[rcore] REVIEWED: HighDPI content scaling on changing monitors with different DPI #5335 #5356 by @raysan5
  55[rcore] REVIEWED: HighDPI content scaling on macOS by @raysan5
  56[rcore] REVIEWED: Implement `FLAG_WINDOW_ALWAYS_RUN` on Android (#5414) by @caszuu
  57[rcore] REVIEWED: Init main framebuffer using render size (should be same as currentFbo) by @raysan5
  58[rcore] REVIEWED: Platform code formatting and organization by @raysan5
  59[rcore] REVIEWED: Replace #pragma message with TRACELOG inside the clipboard image function (#5596) by @maiconpintoabreu
  60[rcore] REVIEWED: Requested window flags application after window initialization by @raysan5
  61[rcore] REVIEWED: Setting some flags disabled fullscreen (#4618, 4619) by @veins1
  62[rcore] REVIEWED: Some flags for window/context creation attributes by @raysan5
  63[rcore] REVIEWED: Support window flags with initialization issues (#4837) by @Andersama
  64[rcore] REVIEWED: Swap `TraceLog()` to `TRACELOG` macro (#5226) by @iamahuman1395
  65[rcore] REVIEWED: Swap local variable `isCursorHidden` to use new method `IsCursorHidden()` by @maiconpintoabreu
  66[rcore] REVIEWED: Touch `pointCount` reduction (#4661) by @maiconpintoabreu
  67[rcore] REVIEWED: Unscale the window size on resize if we are doing automatic HighDPI scaling by @Jeffm2501
  68[rcore] REVIEWED: Use `FLAG_*` macros where possible (#5169) by @iamahuman1395
  69[rcore] REVIEWED: Wayland checks, using compilation flags when possible #5564 by @raysan5
  70[rcore] REVIEWED: `InitWindow()`, issues due to unchecked result of `InitPlatform()` (#4803) by @sleeptightAnsiC
  71[rcore] REVIEWED: `InitWindow()`, fixed issue when using an empty window title (#5526) by @CrackedPixel
  72[rcore] REVIEWED: `GetRenderWidth()`, and `GetRenderHeight()`, return the FBO size if one is active by @Jeffm2501
  73[rcore] REVIEWED: `GetWindowPosition()`, return internal value by @raysan5
  74[rcore] REVIEWED: `ToggleBorderlessFullscreen()`, not hiding taskbar (#5383) by @xenomustache
  75[rcore] REVIEWED: `IsMouseButton*()`, random key codes return unexpected results (#5516) by @jasoncnm
  76[rcore] REVIEWED: `IsGamepadButton*()`, for consistency with key and mouse equivalents by @raysan5
  77[rcore] REVIEWED: `SetGamepadVibration()`, TRACELOG message (#4615) by @Asdqwe
  78[rcore] REVIEWED: `MAX_GAMEPAD_AXES` for consistency #4960 by @raysan5
  79[rcore] REVIEWED: `MAX_GAMEPAD_NAME_LENGTH` #4695 by @raysan5
  80[rcore] REVIEWED: `LoadRandomSequence()`, using `GetRandomValue()` #5393 by @raysan5
  81[rcore] REVIEWED: `LoadShaderFromMemory()`, use default locations for default shader #4641 by @raysan5
  82[rcore] REVIEWED: `ComputeSHA1()`, computation on messages longer than 31 bytes (#5397) by @me
  83[rcore] REVIEWED: `ComputeSHA256()` by @raysan5
  84[rcore] REVIEWED: `DecodeDataBase64()`, decoding error when input string is invalid (#5170) by @zet23t
  85[rcore] REVIEWED: `DecodeDataBase64()`, follow convention: by @raysan5
  86[rcore] REVIEWED: `DecompressData()`, fixed buffer copying by @raysan5
  87[rcore] REVIEWED: `GetClipboardImage()`, make symbol available on all platforms by @raysan5
  88[rcore] REVIEWED: `GetRandomValue()`, explained the new approach to get more uniform random values range by @raysan5
  89[rcore] REVIEWED: `FileExists()`, using macro by @raysan5
  90[rcore] REVIEWED: `IsFileExtension()`, to avoid other modules dependency #5071 by @raysan5
  91[rcore] REVIEWED: `LoadDirectoryFilesEx()`, count files if not recursive (#5496) by @katanya04
  92[rcore] REVIEWED: `LoadDirectoryFilesEx()`, minor tweak #5569 by @raysan5
  93[rcore] REVIEWED: `UnloadDirectoryFiles`, added NULL check by @Bigfoot71
  94[rcore] REVIEWED: `ScanDirectoryFiles*()`, #4833 by @raysan5
  95[rcore] REVIEWED: `ScanDirectoryFilesRecursively()`, fix issues by @mlorenc
  96[rcore] REVIEWED: `ScanDirectoryFilesRecursively()`, makes `path` static by @Bigfoot71
  97[rcore] REVIEWED: `SaveFileText()`, const input text by @raysan5
  98[rcore] REVIEWED: `TakeScreenshot()`, avoid path filtering by @raysan5
  99[rcore] REVIEWED: `TakeScreenshot()`, only scale the screenshot by the DPI scale if required by @Jeffm2501
 100[rcore] REDESIGNED: Fullscreen modes, use current display resolution by @raysan5 -WARNING-
 101[rcore] REDESIGNED: `EncodeDataBase64()`/`DecodeDataBase64()`, use NULL terminated strings by @raysan5 -WARNING-
 102[rcore][GLFW] ADDED: Clipboard image support for linux (#5603) by @maiconpintoabreu
 103[rcore][GLFW] REVIEWED: Fix `IsWindowFocused()` inverted logic (#5333) by @iamahuman1395
 104[rcore][GLFW] REVIEWED: Fullscreen modes on Linux (X11 over XWayland) by @raysan5
 105[rcore][GLFW] REVIEWED: Make sure that GLFW uses RL_*ALLOC macros (#4777) by @sleeptightAnsiC
 106[rcore][GLFW] REVIEWED: Set correct default axes for gamepads that are not connected (#5444) by @LeapersEdge
 107[rcore][GLFW] REVIEWED: Window initialization on HighDPI monitor (Windows) #5549 by @raysan5
 108[rcore][GLFW] REVIEWED: Window scaling on Wayland with GLFW 3.4+ (#5564) by @0xPD33
 109[rcore][GLFW] REVIEWED: Window scaling with HighDPI on macOS #5059 by @raysan5
 110[rcore][GLFW] REVIEWED: `InitPlatform()`, crash caused by `glfwCreateWindow()` (#4804) by @sleeptightAnsiC
 111[rcore][GLFW] REVIEWED: `InitPlatform()`, code simplification by @raysan5
 112[rcore][GLFW] REVIEWED: `GetWindowHandle()`, return correct handle under Linux X11 by @Didas72
 113[rcore][GLFW] REVIEWED: `WindowSizeCallback()` by @raysan5
 114[rcore][GLFW] REVIEWED: `CORE.Window.eventWaiting` and `FLAG_WINDOW_ALWAYS_RUN` handling (#4642) by @Asdqwe
 115[rcore][GLFW] REVIEWED: `GetGamepadButtonPressed()`, return GAMEPAD_BUTTON_*_TRIGGER_2 if pressed (#4742) by @whaleymar
 116[rcore][GLFW] REVIEWED: Update `mappings.h` using `GenerateMappings.cmake` by @sleeptightAnsiC
 117[rcore][RGFW] ADDED: New backend option: `PLATFORM_WEB_RGFW` and update RGFW (#4480) by @colleagueRiley
 118[rcore][RGFW] ADDED: Support for software rendering (#5773) by @CrackedPixel
 119[rcore][RGFW] REVIEWED: Added missing Right Control key by @M374LX
 120[rcore][RGFW] REVIEWED: Changed `RGFW_window_eventWait` timeout to -1 by @doggymangc
 121[rcore][RGFW] REVIEWED: Duplicate entries removed from `keyMappingRGFW` (#5242) by @iamahuman1395
 122[rcore][RGFW] REVIEWED: Fix Escape always closing the window by @M374LX
 123[rcore][RGFW] REVIEWED: Forward declare the windows stuff, prevents failures in GCC (#5269) by @Jeffm2501
 124[rcore][RGFW] REVIEWED: Requires RGBA8 images as window icons (#5431) by @crisserpl2
 125[rcore][RGFW] REVIEWED: Window width calculation by adding wOffset (#5457) by @qubitxr
 126[rcore][RGFW] REVIEWED: `SetGamepadVibration()` implementation (#4612) by @JupiterRider
 127[rcore][SDL] REVIEWED: `FLAG_WINDOW_ALWAYS_RUN` implementation (#4598) by @Asdqwe
 128[rcore][SDL] REVIEWED: First touch position is overwritten with mouse position by @zet23t
 129[rcore][SDL] REVIEWED: Avoid `rtext` module dependency #4959 by @raysan5
 130[rcore][SDL] REVIEWED: Fix crash when `strncpy()` tries to copy using NULL pointer (#5359) by @MikiZX1
 131[rcore][SDL] REVIEWED: Fix gamepad detection (#5176) by @brccabral
 132[rcore][SDL] REVIEWED: Fix maximizing, minimizing and restoring windows for SDL2 (#4607) by @Asdqwe
 133[rcore][SDL] REVIEWED: Fix show, hide, focus and unfocus window/flags states for SDL2 (#4610) by @Asdqwe
 134[rcore][SDL] REVIEWED: Fix text input (characters) (#5574) by @TheKodeToad
 135[rcore][SDL] REVIEWED: Gamepad event handling by adding joystick instance id tracking (#4724) by @Asdqwe
 136[rcore][SDL] REVIEWED: RGB order on SDL3 #3568 by @raysan5
 137[rcore][SDL] REVIEWED: `SetGamepadMappings()` (#5548) by @arleyuti
 138[rcore][SDL] REVIEWED: Handle monitor ID correctly on SDL3 (#5290) by @sleeptightAnsiC
 139[rcore][Web] ADDED: Clipboard image implementation for web (#5614) by @maiconpintoabreu
 140[rcore][Web] ADDED: `GetWindowScaleDPI()`, implementation for PLATFORM_WEB (#4526) by @Asdqwe
 141[rcore][Web] ADDED: `IsWindowHidden()` (#4789) by @marionauta
 142[rcore][Web] REVIEWED: Fix reversed window blur/focus logic for web (#5590) by @aceiii
 143[rcore][Web] REVIEWED: Fix undeclared canvas variable error (#5507) by @vdemcak
 144[rcore][Web] REVIEWED: Replaced hardcoded canvas id references with module variable (#4735) by @zet23t
 145[rcore][Web] REVIEWED: Store canvas name id at platform initialization by @raysan5
 146[rcore][Web] REVIEWED: Support software renderer on Web, blitting framebuffer data directly to a 2d canvas by @raysan5
 147[rcore][Web] REVIEWED: Using `Module` provided canvas id for event binding (#4690) by @zet23t
 148[rcore][Web] REVIEWED: Using `EmscriptenKeyboardCallback()` to consume key events by @moros1138
 149[rcore][Web] REVIEWED: `IsWindowFocused()` (#4640) by @marionauta
 150[rcore][Web] REVIEWED: `GetApplicationDirectory()` for Wasm, returning root VFS (#5495) by @git
 151[rcore][Win32] ADDED: `rcore_desktop_win32`, new native Win32 platform backend (#4869) by @johnnymarler
 152[rcore][Win32] REDESIGNED: New native Win32 platform backend, simplification and formating by @raysan5
 153[rcore][Win32] REVIEWED: New Win32 platform backend to accomodate `rlsw` Software Renderer by @raysan5
 154[rcore][Win32] REVIEWED: Fix window width calculation by adding wOffset (#5480) by @crisserpl2
 155[rcore][Win32] REVIEWED: Implemented `SetWindowMaxSize()`, `SetWindowMinSize()` and `SetWindowSize()` (#5536) by @mikeemm
 156[rcore][Win32] REVIEWED: Remove `-fno-stack-protector` and add `requestFullscreen` on exported methods by @emilhakimov415
 157[rcore][Win32] REVIEWED: VSync flag not being applied (#5521) by @mikeemm
 158[rcore][Win32] REVIEWED: Window minimizing/maximizing functionality (#5524) by @mikeemm
 159[rcore][Android] REVIEWED: Content scaling functionality for HighDPI (#4769) by @Bigfoot71
 160[rcore][Android] REVIEWED: `SetWindowState()` (#5424) by @caszuu
 161[rcore][Android] REVIEWED: `GetCurrentMonitor()` implementation (#5204) by @guntzjonas
 162[rcore][Android] REVIEWED: `android_fopen()` mechanims, after removing `utils` module dependency by @raysan5
 163[rcore][Android] REVIEWED: `fopen()` wrapping mechanism, to use --wrap=fopen on build systems (#5624) by @ghera
 164[rcore][Android] REVIEWED: `LoadMusicStream()` due to missing fopen redirect (#5589) by @ghera
 165[rcore][Android] REVIEWED: Fallback on dirent filename when all route fails (#5484) by @lucas150670
 166[rcore][Android] REVIEWED: Gesture system not reporting GESTURE_NONE (#5452) by @padmadevd
 167[rcore][Android] REVIEWED: Keyboard input detected as gamepad on some devices (#5439) by @decruz
 168[rcore][Android] REVIEWED: Replaced `android_fopen()` with linker `--wrap=fopen` (#5605) by @ghera
 169[rcore][DRM] ADDED: Support asynchronous page-flipping and framebuffer caching by @rob-bits -WARNING-
 170[rcore][DRM] REVIEWED: Compiler flag SUPPORT_DRM_CACHE, to enable triple buffered DRM caching by @rob-bits
 171[rcore][DRM] REVIEWED: Backspace key in RPI SSH keyboard by @matthijs
 172[rcore][DRM] REVIEWED: Check if video mode is valid and rename to match with other methods (#5235) by @maiconpintoabreu
 173[rcore][DRM] REVIEWED: Disable touch position simulation from mouse movement for touchscreen devices (#5279) by @MULTidll
 174[rcore][DRM] REVIEWED: Fix resources memory leak (#5494) by @matthewkennedy
 175[rcore][DRM] REVIEWED: Platform initialization messages by @raysan5
 176[rcore][DRM] REVIEWED: Use `eglGetPlatformDisplayEXT()` for Mali compatibility (#5446) by @decruz
 177[rcore][DRM] REVIEWED: `FindNearestConnectorMode()`, prefer mode with smallest number of unused pixels (#5158) by @maiphi
 178[rcore][DRM] REVIEWED: `eglGetPlatformDisplay()` usage by @raysan5
 179[rcore][DRM] REVIEWED: Improved touch input handling and multitouch support (#5447) by @MULTidll
 180[rcore][DRM] REVIEWED: DRM cache buffers support #4988 by @raysan5
 181[rlgl] ADDED: Software Rendering Support (#4832) by @Bigfoot71
 182[rlgl] ADDED: `rlGetProcAddress()` (#5062) by @danilwhale
 183[rlgl] ADDED: `rlUnloadShader()` (#5631) by @raysan5
 184[rlgl] REMOVED: `RLGL_RENDER_TEXTURES_HINT`, enabled by default and no complaints of anyone having issues #5479 by @raysan5
 185[rlgl] REVIEWED: Allow tint colors in GL_LINE (wires) and GL_POINT (points) draw modes on OpenGL 1.1 clean (#5207) by @lanur622
 186[rlgl] REVIEWED: Attribute name and location, for consistency by @raysan5
 187[rlgl] REVIEWED: Behavior for texture in OpenGL 1.1 draw states (#5328) by @lanur622
 188[rlgl] REVIEWED: Better default values for normals and tangents (VBOs) (#4763) by @Bigfoot71
 189[rlgl] REVIEWED: Clean up Matrix handling and rl* functions to follow convention (#5505) by @nathanmburg
 190[rlgl] REVIEWED: Delete shader object in case compilation fails by @raysan5
 191[rlgl] REVIEWED: Fixed shader tangents to be vec4 by @Sir-Irk
 192[rlgl] REVIEWED: Increased depth size and clip distances to avoid z-fighting issues by @raysan5
 193[rlgl] REVIEWED: Issues compiling for OpenGL 1.1 #5088 by @raysan5
 194[rlgl] REVIEWED: Make sure ShaderUniformDataType matches rlShaderUniformDataType (#4577) by @RicoP
 195[rlgl] REVIEWED: Potential issue with animated normals on OpenGL 1.1 by @raysan5
 196[rlgl] REVIEWED: Using define for buffers size by @raysan5
 197[rlgl] REVIEWED: Warning log macro (#5043) by @vinnyhorgan
 198[rlgl] REVIEWED: Preserve texture on mode switching (#4364) by @Destructor17
 199[rlgl] REVIEWED: Proposed fix for default near/far clipping range (#4906) by @Bigfoot71
 200[rlgl] REVIEWED: `rlLoadTexture()`, max mipmap levels to use #5400 by @raysan5
 201[rlgl] REVIEWED: `rlLoadTexture()`, uncomplete texture do to issue on mipmap loading #5416 by @raysan5
 202[rlgl] REVIEWED: `rlLoadTextureDepth()`, address inconsistencies with WebGL 2.0 for sized depth formats #5500 by @raysan5
 203[rlgl] REVIEWED: `rlReadScreenPixels()`, optimizations (#4667) by @pope
 204[rlgl] REVIEWED: `rlSetTexture()` not overriding default mode (#5200) by @maiconpintoabreu
 205[rlgl] REVIEWED: `rlActiveDrawBuffers`, fix for OpenGL ES 3.0 (#4605) by @Bigfoot71
 206[rlgl] REVIEWED: `rlGetPixelDataSize()`, correct compressed data size calculation per blocks #5416 by @raysan5
 207[rlgl] REVIEWED: `instranceTransform` shader location index #4538 (#4579) by @meadiode
 208[rlgl] REVIEWED: `SetShaderValueTexture()`, update comments (#4703) by @pejorativefox
 209[rlgl] REDESIGNED: Avoid program crash if GPU data is tried to be loaded before `InitWindow()` #4751 by @raysan5 -WARNING-
 210[rlgl] REDESIGNED: Shader loading API function names for more consistency #5631 by @raysan5 -WARNING-
 211[rlsw] ADDED: `swGetColorBuffer()` for convenience by @raysan5
 212[rlsw] REVIEWED: Completeness of `glDraw*()` functions (#5304) by @Bigfoot71
 213[rlsw] REVIEWED: Fix axis aligned quad detection (#5314) by @Bigfoot71
 214[rlsw] REVIEWED: Fix clipping issue on software render (#5342) by @Bigfoot71
 215[rlsw] REVIEWED: Make sure SSE is being used when compiling with MSVC by @raysan5
 216[rlsw] REVIEWED: SIMD instrinsics must be explicitly enabled by developer, only SSE supported at the moment #5316 by @raysan5
 217[rlsw] REVIEWED: Segmentation fault when trying to render a model (#5622) by @maiconpintoabreu
 218[rlsw] REVIEWED: Simplify framebuffer logic and add blit/copy fast path (#5312) by @Bigfoot71
 219[rlsw] REVIEWED: Review depth formats and fix depth writing (#5317) by @Bigfoot71
 220[rlsw] REVIEWED: Smarter texture management (#5296) by @Bigfoot71
 221[rlsw] REVIEWED: Subpixel correction (#5300) by @Bigfoot71
 222[rlsw] REVIEWED: C++ support (#5291) by @alexgb0
 223[rshapes] ADDED: `DrawLineDashed()` (#5222) by @luis605
 224[rshapes] ADDED: `DrawEllipseV()` and `DrawEllipseLinesV()` (#4963) by @meowstr
 225[rshapes] REDESIGNED: `DrawCircleGradient()` to use Vector2 as center parameter by @raysan5 -WARNING-
 226[rshapes] REVIEWED: `DrawLine()`, fix pixel offset issue on drawing (#4666) by @Bigfoot71
 227[rshapes] REVIEWED: `DrawRectangleGradientEx()`, incorrect parameter names (#4980) by @vincent
 228[rshapes] REVIEWED: `DrawRectangleLines`, fix pixel offset issue (#4669) by @Bigfoot71
 229[rshapes] REVIEWED: `DrawRectangleRounded()`, allow to draw rectangles with a size < 1 (#4683) by @tea
 230[rshapes] REVIEWED: `CheckCollisionLines()`, formating and follow raylib conventions by @raysan5
 231[rshapes] REVIEWED: `DrawCircleSector*()`, optimization to prevent division by zero (#4843) by @theundergroundsorcerer
 232[rshapes] REVIEWED: `CheckCollisionLines()`, properly detect collision if one line is almost vertical (#5510, #5531) by @bielern
 233[rtextures] REVIEWED: Cubemap mipmap loading improvements (#4721) by @Not-Nik
 234[rtextures] REVIEWED: Setting mipmaps MAX_LEVEL based on actual mipcount input (#4622) by @JettMonstersGoBoom
 235[rtextures] REVIEWED: TCC compilation due to `emmintrin.h` not found (#4707) by @sleeptightAnsiC
 236[rtextures] REVIEWED: `Image`, initialization align to avoid issues with some platforms (#5214) by @psxdev
 237[rtextures] REVIEWED: `LoadImageDataNormalized()`, missing increments of k (#4745) by @henrikglass
 238[rtextures] REVIEWED: `LoadImageFromScreen()`, use the render size instead of screen size (#5192) by @JeffM2501
 239[rtextures] REVIEWED: `GenImageFontAtlas()`, fix memory corruption in reallocation (#5602) by @creeperblin
 240[rtextures] REVIEWED: `GenImageFontAtlas()`, no need for the conservative approach flag by @raysan5
 241[rtextures] REVIEWED: `GenImageFontAtlas()`, scale image to fit all characters, in case it fails size estimation #5542 by @raysan5
 242[rtextures] REVIEWED: `GetImageColor()` (#5560) by @raysan5
 243[rtextures] REVIEWED: `ExportImage()` by @raysan5
 244[rtextures] REVIEWED: `HalfToFloat()` and `FloatToHalf()` dereferencing issues with an union (#4729) by @Asdqwe
 245[rtextures] REVIEWED: `ImageClearBackground()` and `ImageDrawRectangleRec()` optimizations (#5363) by @ChocolateChipKookie
 246[rtextures] REVIEWED: `ImageColorReplace()`, alpha issue replacement (#5047) by @RomainPlmg
 247[rtextures] REVIEWED: `ImageDrawLineEx(), to be able to draw even numbered thicknesses (#5042) by @Sir-Irk
 248[rtextures] REVIEWED: `ImageBlurGaussian()`, fix integer overflow in cast (#5037) by @garrisonhh
 249[rtext] ADDED: `LoadTextLines()`/`UnloadTextLines()` by @raysan5
 250[rtext] ADDED: `TextInsertAlloc()`, returns memory allocated string by @raysan5
 251[rtext] ADDED: `TextReplace()`, using static buffer by @raysan5
 252[rtext] ADDED: `TextReplaceAlloc()`, returns memory allocated string by @raysan5
 253[rtext] ADDED: `TextReplaceBetween()`, using static buffer by @raysan5
 254[rtext] ADDED: `TextReplaceBetweenAlloc()`, returns memory allocated string by @raysan5
 255[rtext] ADDED: `GetTextBetween()`, using static buffer by @raysan5
 256[rtext] ADDED: `TextRemoveSpaces()`, using static buffer by @raysan5
 257[rtext] ADDED: `MeasureTextCodepoints()` for direct measurement of codepoints (#5623) by @creeperblin
 258[rtext] RENAMED: Variable names for consistency, `textLength` (length in bytes) vs `textSize` (measure in pixels) by @raysan5
 259[rtext] REVIEWED: Support default font loading with no GPU enabled, to be used with Image API
 260[rtext] REVIEWED: Default font alpha on Big Endian systems (#4624) by @Fancy2209
 261[rtext] REVIEWED: Font atlas image generation, added some comments #5141 by @raysan5
 262[rtext] REVIEWED: Multiply security checks to avoid crashes on wrongly provided string data (#4751) by @raysan5
 263[rtext] REVIEWED: Potential security concerns while copying unbounded text data between strings by @raysan5
 264[rtext] REVIEWED: Properly clean up the default font on unload, it may be reused if the window is created again by @Jeffm2501
 265[rtext] REVIEWED: Remove some `const` from text buffer return values by @raysan5
 266[rtext] REVIEWED: Some security vulnerabilities in font loading (#5433, #5434, #5436, #5450) by @oneafter
 267[rtext] REVIEWED: Use `const` for codepoints arrays passed to function #5159 by @raysan5
 268[rtext] REVIEWED: Use `strstr()` instead of `TextFindIndex()` (#4764) by @brabissimoooooo
 269[rtext] REVIEWED: `LoadFont()`, improve load message (#5050) by @katanya04
 270[rtext] REVIEWED: `LoadFont*()`, provide more detailed info on glyphs failing to pack (#5141) by @raysan5
 271[rtext] REVIEWED: `LoadCodepoints()`, local variable shadowing `codepoints` (#5430) by @KiviTK
 272[rtext] REVIEWED: `LoadCodepoints()`, comment explaining functionality (#4787) by @loftafi
 273[rtext] REVIEWED: `LoadFontFromImage()`, limit pixel scanning to image dimensions (#5626) by @joe
 274[rtext] REVIEWED: `LoadFontDataBDF()` #5346 by @raysan5
 275[rtext] REVIEWED: `LoadTextLines()` by @raysan5
 276[rtext] REVIEWED: `ExportFontAsCode()` #5497 by @raysan5
 277[rtext] REVIEWED: `ExportFontAsCode()` not checking `isGpuReady` #4894 by @raysan5
 278[rtext] REVIEWED: `GetCodepointCount()`, misuse of cast (#4741) by @sleeptightAnsiC
 279[rtext] REVIEWED: `GenImageFontAtlas()`, memory corruption and invalid size calculation (#5602) by @konakona418
 280[rtext] REVIEWED: `TextInsert()`, fix bug on insertion (#5644) by @CrackedPixel
 281[rtext] REVIEWED: `TextInsert()`, use static buffer, easier to use by @raysan5 -WARNING-
 282[rtext] REVIEWED: `TextJoin()`, convert `const char **` to `char**` by @raysan5
 283[rtext] REVIEWED: `TextReplace()`, improvements (#5511) by @belan2470
 284[rtext] REVIEWED: `TextReplace()` and `TextLength()`, avoid using `strcpy()` by @raysan5
 285[rtext] REVIEWED: `TextSubtext(), fixes (#4759) by @veins1
 286[rtext] REVIEWED: `TextToPascal()`, fix issue by @raysan5
 287[rtext] REVIEWED: `TextToFloat()`, remove removed inaccurate comment (#4596) by @hexmaster111
 288[rtext] REDESIGNED: `LoadFontData()`, added input parameter by @raysan5 -WARNING-
 289[rmodels] ADDED: Support CPU animation in OpenGL 1.1 (#4925) by @JeffM2501
 290[rmodels] REMOVED: `DrawModelPoints()` and `DrawModelPointsEx()`, moved to an example (#5697) by @maiconpintoabreu -WARNING-
 291[rmodels] RENAMED: Skinning shader variables (new default naming) by @raysan5
 292[rmodels] REVIEWED: glTF animation framerate calculation (#4472, #5445) by @TheLazyIndianTechie
 293[rmodels] REVIEWED: Assign meshes without bone weights to the bone they are attached to so they animate by @Jeffm2501
 294[rmodels] REVIEWED: Out of bound memory read in `Material.maps` (#5534) by @Sumethh
 295[rmodels] REVIEWED: Segfaults with animation system (#4635) by @JettMonstersGoBoom
 296[rmodels] REVIEWED: Transform the vertex normals by the animated matrix (#4646) by @Jeffm2501
 297[rmodels] REVIEWED: Use the animated verts and normals in OpenGL 1.1 if they exist by @Jeffm2501
 298[rmodels] REVIEWED: GLTF bone weight assignments for meshes parented to armature (#4923) by @JeffM2501
 299[rmodels] REVIEWED: `LoadOBJ()`, avoid fatal errors on OBJ model loading by @raysan5
 300[rmodels] REVIEWED: `LoadOBJ()`, don't upload meshes, `LoadModel()` will upload them (#5083) by @JeffM2501
 301[rmodels] REVIEWED: `LoadOBJ()`, loading crash when there are no normals present (#5079) by @zet23t
 302[rmodels] REVIEWED: `LoadGLFT()`, avoid loading attributes already loaded (#4996) by @raysan5
 303[rmodels] REVIEWED: `LoadGLTF()`, anim correctly inherits world transform (#5206) by @ArmanOmmid
 304[rmodels] REVIEWED: `LoadGLTF()`, fix memory leak when model has no bones (#5629) by @vberdugo
 305[rmodels] REVIEWED: `LoadGLTF()`, fixing offset for processing tangents (#5015) by @Sir-Irk
 306[rmodels] REVIEWED: `LoadGLTF()`, log warning about draco compression not supported #5567 by @raysan5
 307[rmodels] REVIEWED: `LoadGLTF()`, separate roughness and metallic channels on load (#4739) by @Not-Nik
 308[rmodels] REVIEWED: `LoadGLTF()`, support 16 bit vec3 values (#5388) by @Jeffm2501
 309[rmodels] REVIEWED: `LoadGLTF()`, fixed NULL pointer dereference (#4564) by @CalebHeydon
 310[rmodels] REVIEWED: `LoadIQM()` and `LoadModelAnimationsIQM()`, fix memory leaks (#4649) by @peter15914
 311[rmodels] REVIEWED: `LoadM3D()`, don't require a M3d animation only file to have a mesh (#5475) by @Jeffm2501
 312[rmodels] REVIEWED: `LoadImageFromCgltfImage()`, fix crash when NULL is passed (#4563) by @CalebHeydon
 313[rmodels] REVIEWED: `LoadImageFromCgltfImage()`, fix NULL pointer dereference (#4557) by @CalebHeydon
 314[rmodels] REVIEWED: `LoadModelAnimationsGLTF()`, properly load 1 frame animations (#5561) by @arlez80
 315[rmodels] REVIEWED: `LoadModelAnimationsGLTF()`, anim correctly inherits world transform (#5206) by @ArmanOmmid
 316[rmodels] REVIEWED: `UploadMesh()`, improve default normal and tangent values (#4763) by @Bigfoot71
 317[rmodels] REVIEWED: `UplaodMesh()`, fix for devices without VAO support (#5692) by @psxdev
 318[rmodels] REVIEWED: `GenMeshTangents()`, improvements (#4937) by @Bigfoot71
 319[rmodels] REVIEWED: `UpdateModelAnimation()` optimization (#5244) by @Arrangemonk
 320[rmodels] REVIEWED: `UpdateModelAnimationBones()`, break on first mesh found and formating by @raysan5
 321[rmodels] REVIEWED: `UpdateModelAnimationBones()`, fix normal transform (#4634) by @Bigfoot71
 322[rmodels] REVIEWED: `UpdateModelAnimationBones()`, optimizations (#4602) by @Kirandeep-Singh-Khehra
 323[rmodels] REVIEWED: `UpdateModelAnimationBones()`, bones animation scale (#4896) by @mUnicorn
 324[rmodels] REVIEWED: `DrawBillboardPro()`, flipped texture source rectangle draw correctly (#5276) by @aixiansheng
 325[rmodels] REVIEWED: `DrawMesh()`, OpenGL11 fixes added texture consistency check (#5328) by @meisei4
 326[rmodels] REVIEWED: `DrawMeshInstanced()`, breaking if instanceTransform was unused (#5469) by @al13n321
 327[rmodels] REVIEWED: `DrawSphereEx()`, normals support (#4926) by @karl-zylinski
 328[rmodels] REVIEWED: `ExportMesh()`, improve OBJ vertex data precision and lower memory usage (#4496) by @mikeemm
 329[rmodels] REVIEWED: `CheckCollisionSpheres()`, simplified using `Vector3DistanceSqr()` (#5695) by @Bigfoot71
 330[rmodels] REVIEWED: `CheckCollisionBoxSphere()`, improved performance and consistency (#5776) by @maiconpintoabreu
 331[raudio] REVIEWED: Fix a glitch at the end of a sound (#5578) by @mackron
 332[raudio] REVIEWED: Improvements to device configuration (#5577) by @mackron
 333[raudio] REVIEWED: Initialize sound alias properties as if it was a new sound (#5123) by @JeffM2501
 334[raudio] REVIEWED: Music stopping some frames too early by @veins1
 335[raudio] REVIEWED: Remove usage of `ma_data_converter_get_required_input_frame_count()` (#5568) by @mackron
 336[raudio] REVIEWED: Better computation of the default audio stream buffer size (#4898) by @JeffM2501
 337[raudio] REVIEWED: Documentation for audio stream processor, number of channels (#4753) by @goto40
 338[raudio] REVIEWED: `LoadWAV()`, fixed buffer overflow when loading WAV files (#4539) by @CalebHeydon
 339[raudio] REVIEWED: `LoadMusicStream()`, issues in Android due to missing fopen redirect (#5589) by @ghera
 340[raudio] REVIEWED: `LoadMusicStreamFromMemory()` for QOA, reduced the number of allocs and memcpy (#5108) by @lassade
 341[raudio] REVIEWED: `UnloadMusicStream()`, properly close FLAC (#5133) by @rossberg
 342[raudio] REVIEWED: `UpdateMusicStream()`, prevent to run without music playing (#5046) by @maiconpintoabreu
 343[raudio] REVIEWED: `WaveFormat()`, fixed memory leak on early-return (#4779) by @deckarep
 344[raudio] REVIEWED: `WaveFormat()`, freeing memory issue (#5481) by @MarcosTypeAP
 345[raudio] REVIEWED: `GetMusicTimePlayed()`, fix music shorter than buffer size (#5048) by @veins1
 346[raudio] REVIEWED: `GetMusicTimePlayed()`, returns incorrect time after restart (#4914) by @Servall4
 347[raudio] REDESIGNED: `SetSoundPan()` and `SetMusicPan()` ranges from [-1.0..1.0] (#5350) by @raysan5 -WARNING-
 348[raymath] ADDED: `MatrixUnit()` and `MatrixMultiplyValue()` (#5613) by @lamweilun
 349[raymath] ADDED: `MatrixCompose()` (#5324) by @EDBCREPO
 350[raymath] ADDED: `Vector2CrossProduct()` (#4520) by @uwiwiow
 351[raymath] REVIEWED: Fix C++ operator overloads (#4535) by @ListeriaM
 352[raymath] REVIEWED: Vector2Angle(), detailed documentation (#4556) by @mrjonjonjon
 353[raymath] REVIEWED: Wrap float3 and float16 for consistency with other types (#5540) by @n-s-kiselev
 354[raymath] REVIEWED: `HalfToFloat()`, fix mantissa hex value by @backspaceoverload
 355[raymath] REVIEWED: `MatrixCompose()` by @raysan5
 356[raymath] REVIEWED: `MatrixDeterminant()` #4780 by @raysan5
 357[raymath] REVIEWED: `MatrixDecompose()` removes shear (#5201) by @ArmanOmmid
 358[raymath] REVIEWED: `MatrixMultiply()` intrinsics support: SSE (#5427) by @mcdubhghlas
 359[raymath] REVIEWED: `QuaternionFromVector3ToVector3()` (#5508) by @The4codeblocks
 360[rcamera] REVIEWED: `Camera3D.fovy` description (#5164) by @0stamina
 361[rcamera] REVIEWED: Camera move up and right work with Z up cameras (#5458) by @Jeffm2501
 362[rcamera] REVIEWED: Camera pan speed (#5554) by @CrackedPixel
 363[rcamera] REVIEWED: Fix camera initial position (#4657) by @Asdqwe
 364[rcamera] REVIEWED: Clamp camera pitch (#5137) by @feive7
 365
 366[build][CI] ADDED: ARM64 with Visual Studio (#4781) by @Peter0x44
 367[build][CI] ADDED: `update_examples.yml` by @raysan5
 368[build][CI] RENAMED: GitHub Actions files, clearer naming by @raysan5
 369[build][CI] REVIEWED: Linux workflow to run on `ubuntu-latest` by @raysan5
 370[build][CI] REVIEWED: Remove double zip and misleading zip type (#5512) by @maiconpintoabreu
 371[build][CI] REVIEWED: `update_examples.yml` workflow (#5130) by @iamahuman1395
 372[build][Script] REVIEWED: `build_example_web.bat` by @raysan5
 373[build][Make] ADDED: ARM64 support to Linux builds by @quaylynrimer11
 374[build][Make] REVIEWED: Use `libraylib.web.a` naming on PLATFORM_WEB by @raysan5 -WARNING-
 375[build][Make] REVIEWED: Only include rglfw.c for glfw platform by @johnnymarler
 376[build][Make] REVIEWED: Fix template to support `libraylib.web.a` (#5620) by @skazu0611
 377[build][Make] REVIEWED: Avoid using != assignment (#5464) by @sleeptightAnsiC
 378[build][Make] REVIEWED: Improve support for `PLATFORM_DESKTOP_WIN32` (#5311) by @GithubPrankster
 379[build][Make] REVIEWED: Latest NDK version compiling errors on Android (#5389) by @Sethbones
 380[build][Make] REVIEWED: Makefile to support software renderer by @raysan5
 381[build][Make] REVIEWED: Properly detect if ABI is Android by @lumenkeyes
 382[build][Make] REVIEWED: Remove path override/change for linux (#5641) by @CrackedPixel
 383[build][Make] REVIEWED: Renamed `PLATFORM_DESKTOP_SDL3` to `USING_VERSION_SDL3` #5175 by @raysan5
 384[build][Make] REVIEWED: Tag to locate examples list: `#EXAMPLES_LIST_*` by @raysan5
 385[build][Make] REVIEWED: Undefine _GNU_SOURCE for rglfw building (#4732) by @Peter0x44
 386[build][Make] REVIEWED: `-sASSERTIONS` usage by linker #4717 by @raysan5
 387[build][Make] REVIEWED: `Makefile.Web` per-example target generation including used resources by @raysan5
 388[build][Make] REVIEWED: android-libc.txt generation by @lumenkeyes
 389[build][Make] REVIEWED: examples Makefile PLATFORM define (#4582) by @Asdqwe
 390[build][VS2022] ADDED: Filters and platform files in MSVC for ease of editing (#4644) by @Jeffm2501
 391[build][VS2022] REVIEWED: Default raylib resource file .rc for projects by @raysan5
 392[build][VS2022] REVIEWED: Fix MSVC warnings (#5619) by @Jeffm2501
 393[build][VS2022] REVIEWED: MSVC warnings (#5595) by @Jeffm2501
 394[build][VS2022] REVIEWED: Fixed VS2022 broken build by @alexander_nichols
 395[build][VSCode] REVIEWED: Makefile for `PLATFORM_WEB` (#5620) by @takenoko-pm
 396[build][CMake] ADDED: Support for SDL3, reviewed SDL2 package cheking by @kariem2k
 397[build][CMake] ADDED: emscripten build options (#5180) by @brccabral
 398[build][CMake] ADDED: QNX EGL 2.0 library configuration (#5499) by @jscaffidi
 399[build][CMake] REVIEWED: Android configuration issues (#4671) by @Bigfoot71
 400[build][CMake] REVIEWED: Definition to use SDL3 (#5175) by @brccabral
 401[build][CMake] REVIEWED: X11 libraries as glfw make private (#5625) by @maiconpintoabreu
 402[build][CMake] REVIEWED: Don't build examples using audio if audio is disabled (#4652) by @Peter0x44
 403[build][CMake] REVIEWED: Export automatically raylib definitions and compile/link options (#5179) by @brccabral
 404[build][CMake] REVIEWED: Expose RGFW platform backend (#5386) by @Sethbones
 405[build][CMake] REVIEWED: Set PLATFORM to Web by default when configuring web builds with emcmake (#4748) by @gilzoide
 406[build][CMake] REVIEWED: Set correct description for verbose option by @brccabral
 407[build][CMake] REVIEWED: Set version to 3.12 (#4547) by @zyperpl
 408[build][CMake] REVIEWED: Update `LibraryConfigurations.cmake (#5617) by @m0391n
 409[build][CMake] REVIEWED: Use STATIC lib ON by default (#4799) by @brccabral
 410[build][CMake] REVIEWED: Using addCMacro instead of defineCMacro (#4620) by @Joonsey
 411[build][CMake] REVIEWED: Web compilation system (#5181) by @brccabral
 412[build][CMake] REVIEWED: Set `libm` as public so it can be linked by consumer (#5193) by @brccabral
 413[build][Cmake] REVIEWED: Expose PLATFORM_WEB_RGFW (#5579) by @crisserpl2
 414[build][Zig] ADDED: Android target to build by @lumenkeyes
 415[build][Zig] REDESIGNED: Complete refactor of build.zig to support Zig 0.16.0 (#5764) by @HaxSam
 416[build][Zig] REVIEWED: Link EGL for Android by @lumenkeyes
 417[build][Zig] REVIEWED: Approach to build for web with zig-build (#5157) by @haxsam
 418[build][Zig] REVIEWED: Fix build accessing env vars (#5490) by @iisakki
 419[build][Zig] REVIEWED: Fix emscripten building by @johnnymarler
 420[build][Zig] REVIEWED: Move examples/build.zig into main build.zig by @johnnymarler
 421[build][Zig] REVIEWED: Fix raygui inclusion in windows crosscompilation (#4489) by @kimierik
 422[build][Zig] REVIEWED: Issue on emscripten run if the user has not installed emsdk by @emilhakimov415
 423[build][Zig] REVIEWED: Make X11 the default display backend instead of choosing at runtime (#5168) by @Not-Nik
 424[build][Zig] REVIEWED: Using `addLibrary()` and set root modules manually by @myQwil
 425[build][Zig] REVIEWED: `build.zig.zon`, use the new zig v0.14 version (#4819) by @zewenn
 426[build][Zig] REVIEWED: `build.zig.zon`, update hashes (#4826) by @david
 427[build][Zig] REVIEWED: Improve build system (#4531) by @haxsam
 428[build][Zig] REVIEWED: Properly generate Android triple by @lumenkeyes
 429[build][Zig] REVIEWED: XCode-frameworks dependency for latest zig (#4675) by @mobiuscog
 430
 431[examples] ADDED: Missing examples VS2022 projects by @raysan5
 432[examples] ADDED: Missing glsl120 shaders by @raysan5
 433[examples] ADDED: Missing resources on some examples by @raysan5
 434[examples] ADDED: `core_3d_fps_controller` by @agnis16
 435[examples] ADDED: `core_clipboard_text` (#5231) by @robinsaviary
 436[examples] ADDED: `core_delta_time` (#5216) by @robinsaviary
 437[examples] ADDED: `core_directory_files` (#5230) by @hugo
 438[examples] ADDED: `core_highdpi_testbed` by @raysan5
 439[examples] ADDED: `core_highdpi_demo` example by @johnnymarler
 440[examples] ADDED: `core_input_actions` (#5211) by @JettMonstersGoBoom
 441[examples] ADDED: `core_keyboard_testbed` by @raysan5
 442[examples] ADDED: `core_monitor_change` (#5215) by @maiconpintoabreu
 443[examples] ADDED: `core_render_texture` by @raysan5
 444[examples] ADDED: `core_text_file_loading` (#5278) by @NimComPoo-04
 445[examples] ADDED: `core_undo_redo` by @raysan5
 446[examples] ADDED: `core_viewport_scaling` (#5313) by @agnis16
 447[examples] ADDED: `core_compute_hash` by @raysan5
 448[examples] ADDED: `shapes_ball_physics` (#5372) by @davidbuzatto
 449[examples] ADDED: `shapes_bullet_hell` (#5218) by @zerohorsepower
 450[examples] ADDED: `shapes_clock_of_clocks` (#5263) by @themushroompirates
 451[examples] ADDED: `shapes_clock_of_clocks` by @hmz-rhl
 452[examples] ADDED: `shapes_dashed_line` (#5222) by @luis605
 453[examples] ADDED: `shapes_double_pendulum` by @joecheong2006
 454[examples] ADDED: `shapes_hilbert_curve` (#5454) by @hmz-rhl
 455[examples] ADDED: `shapes_kaleidoscope` (#5233) by @hugo
 456[examples] ADDED: `shapes_lines_drawing` (#5283) by @robinsaviary
 457[examples] ADDED: `shapes_math_angle_rotation` (#5236) by @krispysnacc
 458[examples] ADDED: `shapes_math_sine_cosine` (#5257) by @Jopestpe
 459[examples] ADDED: `shapes_mouse_trail` (#5246) by @balamurugan
 460[examples] ADDED: `shapes_particles` (#5260) by @JordSant
 461[examples] ADDED: `shapes_penrose_tile` (#5376) by @davidbuzatto
 462[examples] ADDED: `shapes_pie_chart` (#5227) by @GideonSerf
 463[examples] ADDED: `shapes_recursive_tree` (#5229) by @Jopestpe
 464[examples] ADDED: `shapes_rlgl_color_wheel` example (#5355) by @robinsaviary
 465[examples] ADDED: `shapes_rlgl_triangle` example (#5353) by @robinsaviary
 466[examples] ADDED: `shapes_starfield` (#5255) by @themushroompirates
 467[examples] ADDED: `shapes_triangle_strip` (#5240) by @Jopestpe
 468[examples] ADDED: `shapes_collision_ellipses` (#5722) by @Monjaris
 469[examples] ADDED: `text_inline_styling` by @raysan5
 470[examples] ADDED: `text_strings_management` (#5379) by @davidbuzatto
 471[examples] ADDED: `text_words_alignment` (#5254) by @themushroompirates
 472[examples] ADDED: `textured_clipboard_image` (#5604) by @maiconpintoabreu
 473[examples] ADDED: `textures_cellular_automata` (#5395) by @JordSant
 474[examples] ADDED: `textures_frame_buffer_rendering` (#5468) by @jackboakes
 475[examples] ADDED: `textures_magnifying_glass` (#5587) by @dgamebillda
 476[examples] ADDED: `textures_screen_buffer` (#5357) by @agnis16
 477[examples] ADDED: `textures_sprite_stacking` example (#5345) by @robinsaviary
 478[examples] ADDED: `models_animation_timing` by @raysan5
 479[examples] ADDED: `models_directional_billboard` (#5351) by @robinsaviary
 480[examples] ADDED: `models_animation_bone_blending` (#5543) by @dmitrii-brand
 481[examples] ADDED: `models_basic_voxel` (#5212) by @timlittle88
 482[examples] ADDED: `models_decals` (#5298) by @themushroompirates
 483[examples] ADDED: `models_geometry_textures_cube` (#5221) by @Jopestpe
 484[examples] ADDED: `models_tesseract` by @raysan5
 485[examples] ADDED: `shaders_render_depth_texture` by @luis605
 486[examples] ADDED: `shaders_ascii_rendering` (#5213) by @maiconpintoabreu
 487[examples] ADDED: `shaders_color_correction` (#5307) by @JordSant
 488[examples] ADDED: `shaders_game_of_life` (#5394) by @JordSant
 489[examples] ADDED: `shaders_mandelbrot_set` (#5282) by @JordSant
 490[examples] ADDED: `shaders_normalmap` by @Sir-Irk
 491[examples] ADDED: `shaders_rounded_rectangle` (#4719) by @anstropleuton
 492[examples] ADDED: `shaders_view_depth` (luis605)
 493[examples] ADDED: `audio_sound_positionning` by @Bigfoot71
 494[examples] REMOVED: `core_gamepad_info` by @raysan5
 495[examples] REMOVED: `core_loading_thread` by @raysan5
 496[examples] RENAMED: Sprite fonts resource directory by @raysan5
 497[examples] RENAMED: `core_3d_fps_controller` to `core_3d_camera_fps` by @raysan5
 498[examples] RENAMED: `core_high_dpi` to `core_highdpi_demo` by @raysan5
 499[examples] RENAMED: `core_input_gestures_web` to `core_input_gestures_testbed` by @raysan5
 500[examples] RENAMED: `shapes_draw_circle_sector` to `shapes_circle_sector_drawing` by @raysan5
 501[examples] RENAMED: `shapes_draw_rectangle_rounded` to `shapes_rounded_rectangle_drawing` by @raysan5
 502[examples] RENAMED: `shapes_draw_ring` to `shapes_ring_drawing` by @raysan5
 503[examples] RENAMED: `shapes_easings_ball_anim` to `shapes_easings_ball` by @raysan5
 504[examples] RENAMED: `shapes_easings_box_anim` to `shapes_easings_box` by @raysan5
 505[examples] RENAMED: `shapes_easings_rectangle_array` to `shapes_easings_rectangles` by @raysan5
 506[examples] RENAMED: `text_draw_3d` to `text_3d_drawing` by @raysan5
 507[examples] RENAMED: `text_raylib_fonts` -> `text_sprite_fonts` by @raysan5
 508[examples] RENAMED: `text_unicode` to `text_unicode_emojis` by @raysan5
 509[examples] RENAMED: `textures_draw_tiled` to `textures_tiled_drawing` by @raysan5
 510[examples] RENAMED: `textures_polygon` to `textures_polygon_drawing` by @raysan5
 511[examples] RENAMED: `textures_sprite_anim` to `textures_sprite_animation` by @raysan5
 512[examples] RENAMED: `models_animation` to `models_animation_playing` by @raysan5
 513[examples] RENAMED: `models_billboard` to `models_billboard_rendering` by @raysan5
 514[examples] RENAMED: `models_cubicmap` to `models_cubicmap_rendering` by @raysan5
 515[examples] RENAMED: `models_draw_cube_texture` to `models_textured_cube` by @raysan5
 516[examples] RENAMED: `models_geometry_textures_cube` to `models_rotating_cube` by @raysan5
 517[examples] RENAMED: `models_gpu_skinning` to `models_animation_gpu_skinning` by @raysan5
 518[examples] RENAMED: `models_heightmap` to `models_heightmap_rendering` by @raysan5
 519[examples] RENAMED: `models_skybox` to `models_skybox_rendering` by @raysan5
 520[examples] RENAMED: `shaders_deferred_render` to `shaders_deferred_rendering` by @raysan5
 521[examples] RENAMED: `shaders_eratosthenes` to `shaders_eratosthenes_sieve` by @raysan5
 522[examples] RENAMED: `shaders_fog` to `shaders_fog_rendering` by @raysan5
 523[examples] RENAMED: `shaders_hybrid_render` to `shaders_hybrid_rendering` by @raysan5
 524[examples] RENAMED: `shaders_lightmap` to `shaders_lightmap_rendering` by @raysan5
 525[examples] RENAMED: `shaders_normal_map` to `shaders_normalmap_rendering` by @raysan5
 526[examples] RENAMED: `shaders_raymarching` to `shaders_raymarching_rendering` by @raysan5
 527[examples] RENAMED: `shaders_shadowmap` to `shaders_shadowmap_rendering` by @raysan5
 528[examples] RENAMED: `shaders_spotlight` to `shaders_spotlight_rendering` by @raysan5
 529[examples] RENAMED: `shaders_texture_drawing` to `shaders_texture_rendering` by @raysan5
 530[examples] RENAMED: `shaders_view_depth` to `shaders_depth_rendering` by @raysan5
 531[examples] RENAMED: `shaders_write_depth` to `shaders_depth_writing` by @raysan5
 532[examples] RENAMED: `shaders_normalmap` to `shaders_normal_map` by @raysan5
 533[examples] RENAMED: `audio_fft_spectrum_visualizer` to `audio_spectrum_visualizer` by @raysan5
 534[examples] REVIEWED: All examples header section comments, for better organization and consistency by @raysan5
 535[examples] REVIEWED: All examples MSVC warnings and non-working examples by @Jeffm2501
 536[examples] REVIEWED: Moved some examples out of `others` category, removing category by @raysan5
 537[examples] REVIEWED: Shaders formating to follow raylib code conventions by @raysan5
 538[examples] REVIEWED: `examples_template`, adding info about new rexm tool by @raysan5
 539[examples] REVIEWED: `core_2d_camera_mouse_zoom` by @raysan5
 540[examples] REVIEWED: `core_3d_camera_fps` by @raysan5
 541[examples] REVIEWED: `core_3d_fps_controller` by @agnis16
 542[examples] REVIEWED: `core_3d_fps_controller` by @raysan5
 543[examples] REVIEWED: `core_clipboard_text` by @raysan5
 544[examples] REVIEWED: `core_custom_frame_control`, to work properly on web by @PanicTitan
 545[examples] REVIEWED: `core_custom_frame_control`, avoid divide by 0 by @johnnymarler
 546[examples] REVIEWED: `core_delta_time` by @raysan5
 547[examples] REVIEWED: `core_directory_files` by @raysan5
 548[examples] REVIEWED: `core_highdpi_testbed` by @raysan5
 549[examples] REVIEWED: `core_input_actions` by @raysan5
 550[examples] REVIEWED: `core_input_gamepad, fix hardcoded gamepad 0 by @lepasona
 551[examples] REVIEWED: `core_input_gamepad` by @raysan5
 552[examples] REVIEWED: `core_input_gestures_testbed` by @raysan5
 553[examples] REVIEWED: `core_monitor_detector` by @raysan5
 554[examples] REVIEWED: `core_random_sequence` by @raysan5
 555[examples] REVIEWED: `core_render_texture` by @raysan5
 556[examples] REVIEWED: `core_text_file_loading` (#5339) by @cs24b016
 557[examples] REVIEWED: `core_undo_redo` by @raysan5
 558[examples] REVIEWED: `core_viewport_scaling` by @raysan5
 559[examples] REVIEWED: `core_window_flags` by @raysan5
 560[examples] REVIEWED: `core_window_flags`, add borderless windowed toggle by @johnnymarler
 561[examples] REVIEWED: `core_window_flags`, prevent immediate window restore from minimize by @johnnymarler
 562[examples] REVIEWED: `core_window_letterbox` by @raysan5
 563[examples] REVIEWED: `core_input_gamepad`, vibration test button (#5362) by @sergii
 564[examples] REVIEWED: `core_directory_files` (#5343) by @hugo
 565[examples] REVIEWED: `core_input_virtual_controls` (#4584) by @danilwhale
 566[examples] REVIEWED: `shapes_bouncing_ball`, added gravity (#5217) by @Jopestpe
 567[examples] REVIEWED: `shapes_kaleidoscope` rewind, forward and reset buttons (#5369) by @hugo
 568[examples] REVIEWED: `shapes_digital_clock` by @raysan5
 569[examples] REVIEWED: `shapes_bullet_hell` by @raysan5
 570[examples] REVIEWED: `shapes_double_pendulum` by @raysan5
 571[examples] REVIEWED: `shapes_easings_testbed` by @raysan5
 572[examples] REVIEWED: `shapes_hilbert_curve` #5454 by @raysan5
 573[examples] REVIEWED: `shapes_hilbert_curve` by @raysan5
 574[examples] REVIEWED: `shapes_lines_drawing` by @raysan5
 575[examples] REVIEWED: `shapes_penrose_tile` by @raysan5
 576[examples] REVIEWED: `shapes_penrose_tile` formating by @raysan5
 577[examples] REVIEWED: `shapes_pie_chart` by @raysan5
 578[examples] REVIEWED: `shapes_rlgl_triangle` by @raysan5
 579[examples] REVIEWED: `shapes_triangle_strip`, fix array size and simplify loop (#5280) by @Jopestpe
 580[examples] REVIEWED: `text_draw_3d` by @zeankey
 581[examples] REVIEWED: `text_font_sdf` by @raysan5
 582[examples] REVIEWED: `text_inline_styling` by @raysan5
 583[examples] REVIEWED: `text_raylib_fonts` by @raysan5
 584[examples] REVIEWED: `text_unicode_ranges` by @raysan5
 585[examples] REVIEWED: `text_words_alignment` (#5411) by @lucarandrianirina2507
 586[examples] REVIEWED: `text_draw_3d`, fix text size by @zeankey
 587[examples] REVIEWED: `textures_bunnymark`, replaced bunny image #5344 by @raysan5
 588[examples] REVIEWED: `textures_clipboard_image` by @raysan5
 589[examples] REVIEWED: `textures_framebuffer_rendering` by @raysan5
 590[examples] REVIEWED: `textures_image_kernel` by @raysan5
 591[examples] REVIEWED: `textures_screen_buffer` by @raysan5
 592[examples] REVIEWED: `textures_sprite_stacking` by @raysan5
 593[examples] REVIEWED: `textures_textured_curve` (#5463) by @Jeffm2501
 594[examples] REVIEWED: `textures_bunnymark` by @raysan5
 595[examples] REVIEWED: `models_first_person_maze` (#5478) by @pauldahacker
 596[examples] REVIEWED: `models_decals`, fixed unload crash, added buttons (#5306) by @themushroompirates
 597[examples] REVIEWED: `models_animation_bone_blending` by @raysan5
 598[examples] REVIEWED: `models_basic_voxel` by @raysan5
 599[examples] REVIEWED: `models_basic_voxel`, fix raycasting logic (#5643) by @SardineMilk
 600[examples] REVIEWED: `models_basic_voxel`, replaced `GetRenderWidth()` by `GetScreenWidth()` (#5635) by @SardineMilk
 601[examples] REVIEWED: `models_decals` by @raysan5
 602[examples] REVIEWED: `models_first_person_maze` by @raysan5
 603[examples] REVIEWED: `models_loading_vox` by @raysan5
 604[examples] REVIEWED: `models_mesh_picking` by @raysan5
 605[examples] REVIEWED: `models_point_rendering` by @raysan5
 606[examples] REVIEWED: `models_rlgl_solar_system` by @raysan5
 607[examples] REVIEWED: `models_skybox_rendering` by @raysan5
 608[examples] REVIEWED: `models_textures_tiling` shaders by @raysan5
 609[examples] REVIEWED: `models_animation_blending` by @raysan5
 610[examples] REVIEWED: `shaders_ascii_rendering` (#5219) by @maiconpintoabreu
 611[examples] REVIEWED: `shaders_ascii_rendering` by @raysan5
 612[examples] REVIEWED: `shaders_basic_pbr`, to work on web (#4516) by @afanolovcic
 613[examples] REVIEWED: `shaders_color_correction` by @raysan5
 614[examples] REVIEWED: `shaders_defered_render` for OpenGL ES 3.0 (#4617) by @Bigfoot71
 615[examples] REVIEWED: `shaders_deferred_render` (#4676) by @veins1
 616[examples] REVIEWED: `shaders_deferred_render` by @raysan5
 617[examples] REVIEWED: `shaders_deferred_rendering` by @raysan5
 618[examples] REVIEWED: `shaders_game_of_life` by @raysan5
 619[examples] REVIEWED: `shaders_game_of_life` for web (#5399) by @JordSant
 620[examples] REVIEWED: `shaders_hybrid_rendering`, shaders issues by @raysan5
 621[examples] REVIEWED: `shaders_julia_set` by @raysan5
 622[examples] REVIEWED: `shaders_mandelbrot_set` (#5310) by @JordSant
 623[examples] REVIEWED: `shaders_mandelbrot_set` for WebGL (#5286) by @JordSant
 624[examples] REVIEWED: `shaders_mesh_instancing` by @raysan5
 625[examples] REVIEWED: `shaders_multi_sample2d` by @raysan5
 626[examples] REVIEWED: `shaders_normal_map` by @raysan5
 627[examples] REVIEWED: `shaders_normalmap_rendering` by @raysan5
 628[examples] REVIEWED: `shaders_normalmap` #5032 by @raysan5
 629[examples] REVIEWED: `shaders_normalmap` by @raysan5
 630[examples] REVIEWED: `shaders_rounded_rectangle` by @raysan5
 631[examples] REVIEWED: `shaders_shadowmap_rendering` by @raysan5
 632[examples] REVIEWED: `shaders_shadowmap_rendering` example by @raysan5
 633[examples] REVIEWED: `shaders_spotlight` by @raysan5
 634[examples] REVIEWED: `shaders_texture_drawing` by @raysan5
 635[examples] REVIEWED: `shaders_cel_shading` by @raysan5
 636[examples] REVIEWED: `shaders_cel_shading`, cel-shading and outline using inverted hull (#5615) by @galexeev
 637[examples] REVIEWED: `audio_fft_spectrum_visualizer`, not working on web by @raysan5
 638[examples] REVIEWED: `audio_music_stream` by @raysan5
 639[examples] REVIEWED: `audio_sound_multi` by @raysan5
 640[examples] REVIEWED: `audio_sound_positioning` by @dabbott
 641[examples] REVIEWED: `rlgl_compute_shader` by @raysan5
 642[examples] REVIEWED: `raylib_opengl_interop`, remove unnecessary defines (#5618) by @m0391n
 643[examples] REVIEWED: `raylib_opengl_interop` single header library not having it's implementation loaded (#5498) by @jscaffidi
 644[examples] REVIEWED: Example shader `depth_render.fs` by @raysan5
 645[examples] REVIEWED: Example shader `depth_write.fs` by @raysan5
 646[examples] REVIEWED: Example shader `normalmap.fs` by @raysan5
 647[examples] REVIEWED: Example shader `palette_switch.fs` (#5205) by @benjaminsmallarz
 648[examples] REVIEWED: Example shader `write_depth.fs` for glsl120 by @maiconpintoabreu
 649[examples] REDESIGNED: `core_clipboard_text`, based on #5248 by @raysan5
 650[examples] REDESIGNED: `shapes_digital_clock` by @raysan5
 651[examples] REDESIGNED: `shapes_kaleidoscope`, store lines #5361 by @raysan5
 652[examples] REDESIGNED: `text_unicode_ranges` by @raysan5
 653[examples] REDESIGNED: `models_animation_blending` by @raysan5
 654[examples] REDESIGNED: `audio_raw_stream`, remove callback usage (#5637) by @dan-hoang
 655
 656[bindings] ADDED: Common Lisp binding by @colin
 657[bindings] ADDED: D Object Oriented wrapper (#4550) by @RealDoigt
 658[bindings] ADDED: Dart binding (#5585) by @FinnDemonCat
 659[bindings] ADDED: Deno binding for 5.5 (#5462) by @JJLDonley
 660[bindings] ADDED: Jai binding (#4565) by @ahmedqarmout2
 661[bindings] ADDED: Raylib-cs.BleedingEdge (#4999) by @danilwhale
 662[bindings] ADDED: SwiftForth language binding (#5319) by @dave
 663[bindings] ADDED: Wave language (#5539) by @youngjae681
 664[bindings] ADDED: c3-lang for raylib 5.5 (#4555) by @afanolovcic
 665[bindings] ADDED: chicken scheme (#5449) by @meowstr
 666[bindings] ADDED: elle bindings (#5370) by @acquitefx
 667[bindings] ADDED: raylib-ada (#5150) by @artem.v.ageev
 668[bindings] ADDED: uiua bindings (#4993) by @marcosgrzesiak
 669[bindings] ADDED: Ring language (#5421) by @SabeDoesThings
 670[bindings] ADDED: ReiLua, Lua binding (#4589) by @legendaryredfox
 671[bindings] ADDED: Matte bindings (#4586) by @legendaryredfox
 672[bindings] UPDATED: Nim wrapper version (#4638) by @planetis-m
 673[bindings] UPDATED: Raylib.nelua version (#4698) by @AuzFox
 674[bindings] UPDATED: Fennel binding (#4585) by @0riginaln0
 675[bindings] UPDATED: Jaylib to 5.5 (#4546) by @glowiak
 676[bindings] UPDATED: Ruby binding (#4639) by @BotRandomness
 677[bindings] UPDATED: V language binding (#4691) by @mobiuscog
 678[bindings] UPDATED: `racket-raylib` version by @eutro
 679[bindings] UPDATED: fortran-raylib to 5.5 (#4518) by @interkosmos
 680[bindings] UPDATED: raylib-beef (#4514) by @Jannis.v.hagen
 681[bindings] UPDATED: raylib-cpp to 5.5 (#4511) by @RobLoach
 682[bindings] UPDATED: raylib-cs binding link (#4746) by @Rgebee
 683[bindings] UPDATED: raylib-d to 5.5 (#4506) by @schveiguy
 684[bindings] UPDATED: raylib-lua (#4567) by @legendaryredfox
 685[bindings] UPDATED: raylib-py to 5.5 (#4519) by @jorgegomes83
 686[bindings] UPDATED: raylib-python-cffi to 5.0 (#4512) by @villares
 687[bindings] UPDATED: raylib-python-cffi to 5.5 (#4517) by @villares
 688[bindings] UPDATED: raylib-zig by @Not-Nik
 689[bindings] UPDATED: Multiple bindings (#4504, #4559, #4633, #4920, #5538, #5546)
 690[bindings] REMOVED: Broken repo links from bindings (#4572) by @legendaryredfox
 691[bindings] UPDATED: Factor bindings to 5.5 (#5648) by @ArnautDaniel
 692[bindings] UPDATED: Raylib-cs to 5.5 (#4628) by @JupiterRider
 693[bindings] UPDATED: raylib-go to 5.5 (#4566) by @JupiterRider
 694[bindings] UPDATED: racket-raylib (#4884) by @eutro
 695[bindings] UPDATED: raylib-odin binding license (#5647) by @jtorrestx
 696[bindings] UPDATED: raylib-zig (#5103) by @Not-Nik
 697[bindings] UPDATED: keybindings versions (#4570) by @legendaryredfox
 698[bindings] UPDATED: Common Lisp binding (#5014) by @fosskers
 699[bindings] REMOVED: raylib-v7 binding (#5090) by @Auios
 700
 701[rlparser] RENAMED: `raylib_parser` to `rlparser` by @raysan5
 702[rlparser] REVIEWED: Command-line info by @raysan5
 703[rexm] ADDED: Automated-testing system by @raysan5
 704[rexm] ADDED: Build check warnings logs by @raysan5
 705[rexm] ADDED: Command `update` to validate and update required files by @raysan5
 706[rexm] ADDED: Example automated-testing by @raysan5
 707[rexm] ADDED: Examples validation by @raysan5
 708[rexm] ADDED: Implemented examples commands for automatic testing by @raysan5
 709[rexm] ADDED: Implemented file rename requirements by @raysan5
 710[rexm] ADDED: More detailed log info by @raysan5
 711[rexm] ADDED: Read examples years created/reviewed info by @raysan5
 712[rexm] ADDED: Resources scanning from examples for automated copying by @raysan5
 713[rexm] ADDED: Security checks to verify examples categories provided by @raysan5
 714[rexm] ADDED: Support example removal by @raysan5
 715[rexm] ADDED: TestLog option for logs processing (without rebuilding) by @raysan5
 716[rexm] ADDED: Web metadata validation and update by @raysan5
 717[rexm] ADDED: Web platform logs automated reports by @raysan5
 718[rexm] ADDED: `LoadExamplesData()` to support filtering and sorting by @raysan5
 719[rexm] ADDED: `RemoveVSProjectFromSolution()` by @raysan5
 720[rexm] ADDED: `AddVSProjectToSolution()` by @raysan5
 721[rexm] ADDED: Examples buildind command by @raysan5
 722[rexm] ADDED: Legend info on report generation by @raysan5
 723[rexm] ADDED: `UpdateSourceMetadata()` by @raysan5
 724[rexm] ADDED: Allow building web examples locally on Windows platform by @raysan5
 725[rexm] ADDED: Generate second report with examples with issues by @raysan5
 726[rexm] ADDED: Automatic validation and update of examples by @raysan5
 727[rexm] ADDED: Automatically fix not found VS2022 project / solution by @raysan5
 728[rexm] ADDED: Check example exists (compilation worked) before trying to run it by @raysan5
 729[rexm] ADDED: Copy examples web-build files to `raylib.com` by @raysan5
 730[rexm] ADDED: Remove duplicate entries on examples list on `update` process by @raysan5
 731[rexm] ADDED: Automatic validation and update by @raysan5
 732[rexm] ADDED: Example building, using default examples `Makefile`/`Makefile.Web` by @raysan5
 733[rexm] ADDED: Rebuild to support full categories by @raysan5
 734[rexm] ADDED: Support building full example collection and categories by @raysan5
 735[rexm] ADDED: Support examples data `validation` and **report generation** by @raysan5
 736[rexm] ADDED: Support paths customization with environment variables by @raysan5
 737[rexm] ADDED: Support testing running on `PLATFORM_DRM` by @raysan5
 738[rexm] REVIEWED: Fixed some issues, improved `make` call defining base path by @raysan5
 739[rexm] REVIEWED: Avoid external tool for UUIDv4 generation, implement custom function by @raysan5
 740[rexm] REVIEWED: Avoid updating metadata from `others` examples by @raysan5
 741[rexm] REVIEWED: Allow external path definition for VS solution file by @raysan5
 742[rexm] REVIEWED: Reports moved to reports directory by @raysan5
 743[rexm] REVIEWED: Automated testing for Web by @raysan5
 744[rexm] REVIEWED: Examples header info inconsistencies by @raysan5
 745[rexm] REVIEWED: Get example info from example header when added, to be added to collection by @raysan5
 746[rexm] REVIEWED: Makefile and default paths (#5224) by @Teeto44
 747[rexm] REVIEWED: Testing report generation by @raysan5
 748[rexm] REVIEWED: Update `nextCatIndex` (#5616) by @CrackedPixel
 749[rexm] REVIEWED: Added variable assignment to rename option (#5077) by @lpow100
 750[rexm] REVIEWED: Ran examples testing for macos (#5366) by @MaeBrooks
 751[remx] REVIEWED: Add check for category on new name (#5093) by @maiconpintoabreu
 752[remx] REVIEWED: Add warning for missing new name (#5092) by @maiconpintoabreu
 753[rexm] REVIEWED: Add compiled rexm to gitignore (#5086) by @maiconpintoabreu
 754[rexm] REVIEWED: Update examples status report when examples Updated by @raysan5
 755[rexm] REVIEWED: `ScanExampleResources()` avoid resources to be saved by the program by @raysan5
 756[rexm] REVIEWED: `UpdateSourceMetadata()` and `TextReplaceBetween()` by @raysan5
 757[rexm] REVIEWED: `examples.js` example addition working by @raysan5
 758[rexm] REVIEWED: `add` command logic for existing example addition by @raysan5
 759[rexm] REVIEWED: Replace example name on project file by @raysan5
 760[rexm] REVIEWED: Report issues if logs can not be loaded by @raysan5
 761[rexm] REVIEWED: VS project adding to solution by @raysan5
 762[rexm] REVIEWED: `UpdateSourceMetadata()` by @raysan5
 763[rexm] REVIEWED: Example renaming on `examples.js` by @raysan5
 764[rexm] REVIEWED: Examples source code headers metadata by @raysan5
 765[rexm] REVIEWED: `README.md` generation improvements by @raysan5
 766[rexm] REVIEWED: Store example resource paths by @raysan5
 767[rexm] REVIEWED: `Makefile.Web` before trying to rebuild new example for web by @raysan5
 768[rexm] REVIEWED: Using `Makefile.Web` for specific web versions generation by @raysan5
 769
 770[external] ADDED: `cgltf_write` 1.15, to support glTF models export in the future, by @raysan5
 771[external] RENAMED: `rl_gputex.h` to `rltexgpu.h`, compressed textures loading
 772[external] REVIEWED: `rltexgpu.h`, make it usable standalone by @raysan5
 773[external] REVIEWED: `rltexgpu.h, fix the swizzling in `rl_load_dds_from_memory()` (#5422) by @msmith-codes
 774[external]`REVIEWED: `rltexgpu.h, decouple logging and memory allocation from raylib by @sleeptightAnsiC
 775[external] REVIEWED: `jar_mod.h`, buffer overflow on memcpy by @LoneAuios
 776[external] REVIEWED: `sdefl` and `sinfl` issues (#5367) by @raysan5
 777[external] REVIEWED: `sinfl_bsr()`, improvements by @RicoP
 778[external] REVIEWED: `stb_truetype`, fix composite glyph scaling logic (#4811) by @ashishbhattarai
 779[external] UPDATED: `raygui` to 5.0-dev for examples by @raysan5
 780[external] UPDATED: dr_libs (#5020) by @Emil2010
 781[external] UPDATED: `miniaudio` to v0.11.22 (#4983) by @M374LX
 782[external] UPDATED: `miniaudio` to v0.11.23 (#5234) by @pyrokn8
 783[external] UPDATED: `miniaudio` to v0.11.24 (#5506) by @vdemcak
 784[external] UPDATED: `RGFW` to 1.5 (#4688) by @ColleagueRiley
 785[external] UPDATED: `RGFW` to 1.6 (#4795) by @colleagueRiley
 786[external] UPDATED: `RGFW` to 1.7 (#4965) by @M374LX
 787[external] UPDATED: `RGFW` to 1.7.5-dev (#4976) by @M374LX
 788[external] UPDATED: `RGFW` to 2.0.0 (#5582) by @CrackedPixel
 789[external] UPDATED: `cgltf` 1.14 to 1.15 by @raysan5
 790[external] UPDATED: `dr_flac` v0.13.0 to v0.13.3 by @raysan5
 791[external] UPDATED: `dr_mp3` v0.7.0 to v0.7.4 by @raysan5
 792[external] UPDATED: `m3d` to latest master by @raysan5
 793[external] UPDATED: `qoi` to latest master by @raysan5
 794[external] UPDATED: `qoa` to latest master by @raysan5
 795[external] UPDATED: `stb_image_resize2` v2.12 to v2.18 by @raysan5
 796
 797[misc] ADDED: SECURITY.md for security reporting policies by @raysan5
 798[misc] ADDED: `examples/examples_list`, to be used by `rexm` or other tools by @raysan5
 799[misc] ADDED: `fix_win32_compatibility.h`, utility header to avoid `windows.h` inclusion conflicts by @Jeffm2501
 800[misc] RENAMED: Move and rename `raylib_parser` to `tools/rlparser` by @raysan5 -WARNING-
 801[misc] REVIEWED: Avoid `realloc()` usage, security improvement by @raysan5
 802[misc] REVIEWED: Prioritize `calloc()` calls than `malloc()` on some cases by @raysan5
 803[misc] REVIEWED: Code comments using imperative format by @raysan5
 804[misc] REVIEWED: Webpage reference comments start with `REF:`, more consistent with `TODO:` and `NOTE:` comments by @raysan5
 805[misc] REVIEWED: CONVENTIONS.md, added additional conventions by @raysan5
 806[misc] REVIEWED: ROADMAP.md with potential future improvements by @raysan5
 807[misc] REVIEWED: Comments formating, using imperative mode by @raysan5
 808[misc] REVIEWED: Multiple examples inconsistencies on heeaders and overall structure to follow template by @raysan5
 809[misc] REVIEWED: Code gardening: cleaning, reviewed comments, warnings, variables names... by @raysan5, @JeffM2501, @maiconpintoabreu, @CrackedPixel
 810
 811-------------------------------------------------------------------------
 812Release:     raylib 5.5 (18 November 2024)
 813-------------------------------------------------------------------------
 814KEY CHANGES:
 815 - New tool: raylib project creator [rpc]
 816 - New platform backends: RGFW
 817 - New platform backends: SDL3 (along SDL2)
 818 - New platforms supported: Dreamcast, N64, PSP, PSVita, PS4
 819 - Added GPU Skinning support (all platforms and GL versions)
 820 - Added raymath C++ operators
 821
 822Detailed changes:
 823
 824[rcore] ADDED: Working directory info at initialization by @raysan5
 825[rcore] ADDED: `GetClipboardImage()`, supported by multiple backends (#4459) by @evertonse
 826[rcore] ADDED: `MakeDirectory()`, supporting recursive directory creation by @raysan5
 827[rcore] ADDED: `ComputeSHA1()` (#4390) by @Anthony Carbajal
 828[rcore] ADDED: `ComputeCRC32()` and `ComputeMD5()` by @raysan5
 829[rcore] ADDED: `GetKeyName()` (#4161) by @MrScautHD
 830[rcore] ADDED: `IsFileNameValid()` by @raysan5
 831[rcore] ADDED: `GetViewRay()`, viewport independent raycast (#3709) by @luis605
 832[rcore] RENAMED: `GetMouseRay()` to `GetScreenToWorldRay()` (#3830) by @raysan5
 833[rcore] RENAMED: `GetViewRay()` to `GetScreenToWorldRayEx()` (#3830) by @raysan5
 834[rcore] REVIEWED: `GetApplicationDirectory()` for FreeBSD (#4318) by @git
 835[rcore] REVIEWED: `LoadDirectoryFilesEx()`/`ScanDirectoryFiles()`, support directory on filter (#4302) by @foxblock
 836[rcore] REVIEWED: Update comments on fullscreen and boderless window to describe what they do (#4280) by @Jeffm2501
 837[rcore] REVIEWED: Correct processing of mouse wheel on Automation events #4263 by @raysan5
 838[rcore] REVIEWED: Fix gamepad axis movement and its automation event recording (#4184) by @maxmutant
 839[rcore] REVIEWED: Do not set RL_TEXTURE_FILTER_LINEAR when high dpi flag is enabled (#4189) by @Dave Green
 840[rcore] REVIEWED: `GetScreenWidth()`/`GetScreenHeight()` (#4074) by @Anthony Carbajal
 841[rcore] REVIEWED: Initial window dimensions checks (#3950) by @Christian Haas
 842[rcore] REVIEWED: Set default init values for random #3954 by @raysan5
 843[rcore] REVIEWED: Window positioning, avoid out-of-screen window-bar by @raysan5
 844[rcore] REVIEWED: Fix framerate recording for .gif (#3894) by @RobLoach
 845[rcore] REVIEWED: Screen space related functions consistency (#3830) by @aiafrasinei
 846[rcore] REVIEWED: `GetFileNameWithoutExt()` (#3771) by @oblerion
 847[rcore] REVIEWED: `GetWindowScaleDPI()`, simplified (#3701) by @karl
 848[rcore] REVIEWED: `UnloadAutomationEventList()` (#3658) by @planetis-m
 849[rcore] REVIEWED: Flip VR screens (#3633) by @Matthew Oros
 850[rcore] REVIEWED: Remove unused vScreenCenter (#3632) by @Matthew Oros
 851[rcore] REVIEWED: `LoadRandomSequence()`, issue in sequence generation #3612 by @raysan5
 852[rcore] REVIEWED: `IsMouseButtonUp()` (#3609) by @Kenneth M
 853[rcore] REVIEWED: Fix typos in src/platforms/rcore_*.c (#3581) by @RadsammyT
 854[rcore] REVIEWED: `ExportDataAsCode()`, change sanitization check (#3837) by @Laurentino Luna
 855[rcore] REVIEWED: `ExportDataAsCode()`, add little sanitization to indentifier names (#3832) by @4rk
 856[rcore] REVIEWED: `GetScreenWidth()`/`GetScreenHeight()` align with all platforms (#4451) by @Arche Washi
 857[rcore] REVIEWED: `SetGamepadVibration()`, added duration parameter (#4410) by @Asdqwe -WARNING-
 858[rcore] REVIEWED: `GetGamepadAxisMovement()`, fix #4405 (#4420) by @Asdqwe
 859[rcore] REVIEWED: `GetGestureHoldDuration()` comments by @raysan5
 860[rcore][rlgl] REVIEWED: Fix scale issues when ending a view mode (#3746) by @Jeffm2501
 861[rcore][GLFW] REVIEWED: Keep CORE.Window.position properly in sync with glfw window position (#4190) by @Dave Green
 862[rcore][GLFW] REVIEWED: Set AUTO_ICONIFY flag to false per default (#4188) by @Dave Green
 863[rcore][GLFW] REVIEWED: `InitPlatform()`, add workaround for NetBSD (#4139) by @NishiOwO
 864[rcore][GLFW] REVIEWED: Fix window not initializing on primary monitor (#3923) by @Rafael Bordoni
 865[rcore][GLFW] REVIEWED: Set relative mouse mode when the cursor is disabled (#3874) by @Jeffm2501
 866[rcore][GLFW] REVIEWED: Remove GLFW mouse passthrough hack and increase GLFW version in CMake (#3852) by @M374LX
 867[rcore][GLFW] REVIEWED: Updated GLFW to 3.4 (#3827) by @M374LX
 868[rcore][GLFW] REVIEWED: Feature test macros before include (#3737) by @John
 869[rcore][GLFW] REVIEWED: Fix inconsistent dll linkage warning on windows (#4447) by @Jeffm2501
 870[rcore][Web] ADDED: `SetWindowOpacity()` implementation (#4403) by @Asdqwe
 871[rcore][Web] ADDED: `MaximizeWindow()` and `RestoreWindow()` implementations (#4397) by @Asdqwe
 872[rcore][Web] ADDED: `ToggleFullscreen()` implementation (#3634) by @ubkp
 873[rcore][Web] ADDED: `GetWindowPosition()` implementation (#3637) by @ubkp
 874[rcore][Web] ADDED: `ToggleBorderlessWindowed()` implementation (#3622) by @ubkp
 875[rcore][Web] ADDED: `GetMonitorWidth()` and `GetMonitorHeight()` implementations (#3636) by @ubkp
 876[rcore][Web] REVIEWED: Update `SetWindowState()` and `ClearWindowState()` to handle `FLAG_WINDOW_MAXIMIZED` (#4402) by @Asdqwe
 877[rcore][Web] REVIEWED: `WindowSizeCallback()`, do not try to handle DPI, already managed by GLFW (#4143) by @SuperUserNameMan
 878[rcore][Web] REVIEWED: Relative mouse mode issues (#3940) by @Cemal GรถnรผltaลŸ
 879[rcore][Web] REVIEWED: `ShowCursor()`, `HideCursor()` and `SetMouseCursor()` (#3647) by @ubkp
 880[rcore][Web] REVIEWED: Fix CORE.Input.Mouse.cursorHidden with callbacks (#3644) by @ubkp
 881[rcore][Web] REVIEWED: Fix `IsMouseButtonUp()` (#3611) by @ubkp
 882[rcore][Web] REVIEWED: HighDPI support #3372 by @raysan5
 883[rcore][Web] REVIEWED: `SetWindowSize()` (#4452) by @Asdqwe
 884[rcore][Web] REVIEWED: `EmscriptenResizeCallback()`, simplified (#4415) by @Asdqwe
 885[rcore][SDL] ADDED: `IsCursorOnScreen()` (#3862) by @Peter0x44
 886[rcore][SDL] ADDED: Gamepad rumble/vibration support (#3819) by @gdserf.gs
 887[rcore][SDL] REVIEWED: Gamepad support (#3776) by @A
 888[rcore][SDL] REVIEWED: `GetWorkingDirectory()`, return correct path (#4392) by @Asdqwe
 889[rcore][SDL] REVIEWED: `GetClipboardText()`, fix memory leak (#4354) by @Asdqwe
 890[rcore][SDL] REVIEWED: Change SDL_Joystick to SDL_GameController (#4129) by @Frank Kartheuser
 891[rcore][SDL] REVIEWED: Update storage base path, use provided SDL base path by @raysan5
 892[rcore][SDL] REVIEWED: Call SDL_GL_SetSwapInterval() after GL context creation (#3997) by @JupiterRider
 893[rcore][SDL] REVIEWED: `GetKeyPressed()` (#3869) by @Arthur
 894[rcore][SDL] REVIEWED: Fix SDL multitouch tracking (#3810) by @mooff
 895[rcore][SDL] REVIEWED: Fix `SUPPORT_WINMM_HIGHRES_TIMER` (#3679) by @ubkp
 896[rcore][SDL] REVIEWED: SDL text input to Unicode codepoints #3650 by @raysan5
 897[rcore][SDL] REVIEWED: `IsMouseButtonUp()` and add touch events (#3610) by @ubkp
 898[rcore][SDL] REVIEWED: Fix real touch gestures (#3614) by @ubkp
 899[rcore][SDL] REVIEWED: `IsKeyPressedRepeat()` (#3605) by @ubkp
 900[rcore][SDL] REVIEWED: `GetKeyPressed()` and `GetCharPressed()` for SDL (#3604) by @ubkp
 901[rcore][SDL] REVIEWED: `SetMousePosition()` for SDL (#3580) by @ubkp
 902[rcore][SDL] REVIEWED: `SetWindowIcon()` for SDL (#3578) by @ubkp
 903[rcore][SDL][rlgl] REVIEWED: Fix for running gles2 with SDL on desktop (#3542) by @_Tradam
 904[rcore][Android] REVIEWED: Issue with isGpuReady flag (#4340) by @Menno van der Graaf
 905[rcore][Android] REVIEWED: Allow main() to return it its caller on configuration changes (#4288) by @Hesham Abourgheba
 906[rcore][Android] REVIEWED: Replace deprecated Android function ALooper_pollAll with ALooper_pollOnce (#4275) by @Menno van der Graaf
 907[rcore][Android] REVIEWED: `PollInputEvents()`, register previous gamepad events (#3910) by @Aria
 908[rcore][Android] REVIEWED: Fix Android keycode translation and duplicate key constants (#3733) by @M374LX
 909[rcore][DRM] ADDED: uConsole keys mapping (#4297) by @carverdamien
 910[rcore][DRM] ADDED: `GetMonitorWidth/Height()` (#3956) by @gabriel-marques
 911[rcore][DRM] REVIEWED: `IsMouseButtonUp()` (#3611) by @ubkp
 912[rcore][DRM] REVIEWED: Optimize gesture handling (#3616) by @ubkp
 913[rcore][DRM] REVIEWED: `IsKeyPressedRepeat()` for PLATFORM_DRM direct input (#3583) by @ubkp
 914[rcore][DRM] REVIEWED: Fix gamepad buttons not working in drm backend (#3888) by @MrMugame
 915[rcore][DRM] REVIEWED: DRM backend to only use one api to allow for more devices (#3879) by @MrMugame
 916[rcore][DRM] REVIEWED: Avoid separate thread when polling for gamepad events (#3641) by @Cinghy Creations
 917[rcore][DRM] REVIEWED: Connector status reported as UNKNOWN but should be considered as CONNECTED (#4305) by @Michaล‚ Jaskรณlski
 918[rcore][RGFW] ADDED: RGFW, new rcore backend platform (#3941) by @colleagueRiley
 919[rcore][RGFW] REVIEWED: RGFW 1.0 (#4144) by @colleagueRiley
 920[rcore][RGFW] REVIEWED: Fix errors when compiling with mingw (#4282) by @colleagueRiley
 921[rcore][RGFW] REVIEWED: Replace long switch with a lookup table (#4108) by @colleagueRiley
 922[rcore][RGFW] REVIEWED: Fix MSVC build errors (#4441) by @colleagueRiley
 923[rlgl] ADDED: More uniform data type options #4137 by @raysan5
 924[rlgl] ADDED: Vertex normals for RLGL immediate drawing mode (#3866) by @bohonghuang -WARNING-
 925[rlgl] ADDED: `rlCullDistance*()` variables and getters (#3912) by @KotzaBoss
 926[rlgl] ADDED: `rlSetClipPlanes()` function (#3912) by @KotzaBoss
 927[rlgl] ADDED: `isGpuReady` flag, allow font loading with no GPU acceleration by @raysan5 -WARNING-
 928[rlgl] REVIEWED: Changed RLGL_VERSION from 4.5 to 5.0 (#3914) by @rsteinke1111
 929[rlgl] REVIEWED: Shader load failing returns 0, instead of fallback by @raysan5 -WARNING-
 930[rlgl] REVIEWED: Standalone mode default flags (#4334) by @Asdqwe
 931[rlgl] REVIEWED: Fix hardcoded index values in vboID array (#4312) by @JettMonstersGoBoom
 932[rlgl] REVIEWED: GLint64 did not exist before OpenGL 3.2 (#4284) by @Tchan0
 933[rlgl] REVIEWED: Extra warnings in case OpenGL 4.3 is not enabled (#4202) by @Maxim Knyazkin
 934[rlgl] REVIEWED: Using GLint64 for glGetBufferParameteri64v() (#4197) by @Randy Palamar
 935[rlgl] REVIEWED: Replace `glGetInteger64v()` with `glGetBufferParameteri64v()` (#4154) by @Kai Kitagawa-Jones
 936[rlgl] REVIEWED: `rlMultMatrixf()`, fix matrix multiplication order (#3935) by @bohonghuang
 937[rlgl] REVIEWED: `rlSetVertexAttribute()`, define last parameter as offset #3800 by @raysan5
 938[rlgl] REVIEWED: `rlDisableVertexAttribute()`, remove redundat calls for SHADER_LOC_VERTEX_COLOR (#3871) by @zyperpl
 939[rlgl] REVIEWED: `rlLoadTextureCubemap()`, load mipmaps for cubemaps (#4429) by @Not-Nik
 940[rlgl] REVIEWED: `rlLoadFramebuffer()`, parameters not required by @raysan5
 941[rlgl] REVIEWED: `rlSetUniformSampler()` (#3759) by @veins1
 942[rlgl] REVIEWED: Renamed near/far variables (#4039) by @jgabaut
 943[rlgl] REVIEWED: Expose OpenGL symbols (#3588) by @Peter0x44
 944[rlgl] REVIEWED: Fix OpenGL 1.1 build issues (#3876) by @raysan5
 945[rlgl] REVIEWED: Fixed compilation for OpenGL ES (#4243) by @Maxim Knyazkin
 946[rlgl] REVIEWED: rlgl function description and comments by @raysan5
 947[rlgl] REVIEWED: Expose glad functions when building raylib as a shared lib (#3572) by @Peter0x44
 948[rlgl] REVIEWED: Fix version info in rlgl.h (#3558) by @schveiguy
 949[rlgl] REVIEWED: Use the vertex color to the base shader in GLSL330 (#4431) by @Jeffm2501
 950[rcamera] REVIEWED: Make camera movement independant of framerate (#4247) by @hanaxars -WARNING-
 951[rcamera] REVIEWED: Updated camera speeds with GetFrameTime() (#4362) by @Anthony Carbajal
 952[rcamera] REVIEWED: `UpdateCamera()`, added CAMERA_CUSTOM check (#3938) by @Tomas Fabrizio Orsi
 953[rcamera] REVIEWED: Support mouse/keyboard and gamepad coexistence for input (#3579) by @ubkp
 954[rcamera] REVIEWED: Cleaned away unused macros(#3762) by @Brian-ED
 955[rcamera] REVIEWED: Fix for free camera mode (#3603) by @lesleyrs
 956[rcamera] REVIEWED: `GetCameraRight()` (#3784) by @Danil
 957[raymath] ADDED: C++ operator overloads for common math function (#4385) by @Jeffery Myers  -WARNING-
 958[raymath] ADDED: Vector4 math functions and Vector2 variants of some Vector3 functions (#3828) by @Bowserinator
 959[raymath] REVIEWED: Fix MSVC warnings/errors in C++ (#4125) by @Jeffm2501
 960[raymath] REVIEWED: Add extern "C" to raymath header for C++ (#3978) by @Jeffm2501
 961[raymath] REVIEWED: `QuaternionFromAxisAngle()`, remove redundant axis length calculation (#3900) by @jtainer
 962[raymath] REVIEWED: `Vector3Perpendicular()`, avoid implicit conversion from float to double (#3799) by @Joรฃo Foscarini
 963[raymath] REVIEWED: `MatrixDecompose()`, incorrect output for certain scale and rotations (#4461) by @waveydave
 964[raymath] REVIEWED: Small code refactor (#3753) by @Idir Carlos Aliane
 965[rshapes] ADDED: `CheckCollisionCircleLine()` (#4018) by @kai-z99
 966[rshapes] REVIEWED: Multisegment Bezier splines (#3744) by @Santiago Pelufo
 967[rshapes] REVIEWED: Expose shapes drawing texture and rectangle (#3677) by @Jeffm2501
 968[rshapes] REVIEWED: `DrawLine()` #4075 by @raysan5
 969[rshapes] REVIEWED: `DrawPixel()` drawing by @raysan5
 970[rshapes] REVIEWED: `DrawLine()` to avoid pixel rounding issues #3931 by @raysan5
 971[rshapes] REVIEWED: `DrawRectangleLines()`, considering view matrix for lines "alignment" by @raysan5
 972[rshapes] REVIEWED: `DrawRectangleLines()`, pixel offset (#4261) by @RadsammyT
 973[rshapes] REVIEWED: `DrawRectangleLines()`, pixel offset when scaling (#3884) by @raysan5
 974[rshapes] REVIEWED: `DrawRectangleLinesEx()`, make sure accounts for square tiles (#4382) by @Jojaby
 975[rshapes] REVIEWED: `Draw*Gradient()` color parameter names (#4270) by @Paperdomo101
 976[rshapes] REVIEWED: `DrawGrid()`, remove duplicate color calls (#4148) by @Jeffm2501
 977[rshapes] REVIEWED: `DrawSplineLinear()` to `SUPPORT_SPLINE_MITERS` by @raysan5
 978[rshapes] REVIEWED: `DrawSplineLinear()`, implement miters (#3585) by @Toctave
 979[rshapes] REVIEWED: `CheckCollisionPointRec()` by @raysan5
 980[rshapes] REVIEWED: `CheckCollisionPointCircle()`, new implementation (#4135) by @kai-z99
 981[rshapes] REVIEWED: `CheckCollisionCircles()`, optimized (#4065) by @kai-z99
 982[rshapes] REVIEWED: `CheckCollisionPointPoly()` (#3750) by @Antonio Raรบl
 983[rshapes] REVIEWED: `CheckCollisionCircleRec()` (#3584) by @ubkp
 984[rshapes] REVIEWED: Add more detail to function comment (#4344) by @Jeffm2501
 985[rshapes] REVIEWED: Functions that draw point arrays take them as const (#4051) by @Jeffm2501
 986[rtextures] ADDED: `ColorIsEqual()` by @raysan5
 987[rtextures] ADDED: `ColorLerp()`, to mix 2 colors together (#4310) by @SusgUY446
 988[rtextures] ADDED: `LoadImageAnimFromMemory()` (#3681) by @IoIxD
 989[rtextures] ADDED: `ImageKernelConvolution()` (#3528) by @Karim
 990[rtextures] ADDED: `ImageFromChannel()` (#4105) by @brccabral
 991[rtextures] ADDED: `ImageDrawLineEx()` (#4097) by @Bigfoot71
 992[rtextures] ADDED: `ImageDrawTriangle()` (#4094) by @Bigfoot71
 993[rtextures] REMOVED: SVG files loading and drawing, moving it to raylib-extras by @raysan5 -WARNING-
 994[rtextures] REVIEWED: `LoadImage()`, added support for 3-channel QOI images (#4384) by @R-YaTian
 995[rtextures] REVIEWED: `LoadImageRaw()` #3926 by @raysan5
 996[rtextures] REVIEWED: `LoadImageColors()`, advance k in loop (#4120) by @brccabral
 997[rtextures] REVIEWED: `LoadTextureCubemap()`, added `mipmaps` #3665 by @raysan5
 998[rtextures] REVIEWED: `LoadTextureCubemap()`, assign format to cubemap (#3823) by @Gary M
 999[rtextures] REVIEWED: `LoadTextureCubemap()`, load mipmaps for cubemaps (#4429) by @Not-Nik
1000[rtextures] REVIEWED: `LoadTextureCubemap()`, avoid dangling re-allocated pointers (#4439) by @Not-Nik
1001[rtextures] REVIEWED: `LoadImageFromScreen()`, fix scaling (#3881) by @proberge-dev
1002[rtextures] REVIEWED: `LoadImageFromMemory()`, warnings on invalid image data (#4179) by @Jutastre
1003[rtextures] REVIEWED: `LoadImageAnimFromMemory()`, added security checks (#3924) by @raysan5
1004[rtextures] REVIEWED: `ImageColorTint()` and `ColorTint()`, optimized (#4015) by @Bigfoot71
1005[rtextures] REVIEWED: `ImageKernelConvolution()`, formating and warnings by @raysan5
1006[rtextures] REVIEWED: `ImageDrawRectangleRec`, fix bounds check (#3732) by @Blockguy24
1007[rtextures] REVIEWED: `ImageResizeCanvas()`, implemented fill color (#3720) by @Lieven Petersen
1008[rtextures] REVIEWED: `ImageDrawRectangleRec()` (#3721) by @Bigfoot71
1009[rtextures] REVIEWED: `ImageDraw()`, don't try to blend images without alpha (#4395) by @Not-Nik
1010[rtextures] REVIEWED: `GenImagePerlinNoise()` being stretched (#4276) by @Bugsia
1011[rtextures] REVIEWED: `GenImageGradientLinear()`, fix some angles (#4462) by @decromo
1012[rtextures] REVIEWED: `DrawTexturePro()` to avoid negative dest rec #4316 by @raysan5
1013[rtextures] REVIEWED: `ColorToInt()`, fix undefined behaviour (#3996) by @OetkenPurveyorOfCode
1014[rtextures] REVIEWED: Remove panorama cubemap layout option (#4425) by @Jeffm2501
1015[rtextures] REVIEWED: Removed unneeded module check, `rtextures` should not depend on `rtext` by @raysan5
1016[rtextures] REVIEWED: Simplified for loop for some image manipulation functions (#3712) by @Alice Nyaa
1017[rtext] ADDED: BDF fonts support (#3735) by @Stanley Fuller -WARNING-
1018[rtext] ADDED: `TextToCamel()` (#4033) by @IoIxD
1019[rtext] ADDED: `TextToSnake()` (#4033) by @IoIxD
1020[rtext] ADDED: `TextToFloat()` (#3627) by @Benjamin Schmid Ties
1021[rtext] REDESIGNED: `SetTextLineSpacing()` by @raysan5 -WARNING-
1022[rtext] REVIEWED: `LoadFontDataBDF()` name and formating by @raysan5
1023[rtext] REVIEWED: `LoadFontDefault()`, initialize glyphs and recs to zero #4319 by @raysan5
1024[rtext] REVIEWED: `LoadFontEx()`, avoid default font fallback (#4077) by @Peter0x44 -WARNING-
1025[rtext] REVIEWED: `LoadBMFont()`, extended functionality (#3536) by @Dongkun Lee
1026[rtext] REVIEWED: `LoadBMFont()`, issue on not glyph data initialized by @raysan5
1027[rtext] REVIEWED: `LoadFontFromMemory()`, use strncpy() to fix buffer overflow (#3795) by @Mingjie Shen
1028[rtext] REVIEWED: `LoadCodepoints()` returning a freed ptr when count is 0 (#4089) by @Alice Nyaa
1029[rtext] REVIEWED: `LoadFontData()` avoid fallback glyphs by @raysan5 -WARNING-
1030[rtext] REVIEWED: `LoadFontData()`, load image only if glyph has been found in font by @raysan5
1031[rtext] REVIEWED: `ExportFontAsCode()`, fix C++ compiler errors (#4013) by @DarkAssassin23
1032[rtext] REVIEWED: `MeasureTextEx()` height calculation (#3770) by @Marrony Neris
1033[rtext] REVIEWED: `MeasureTextEx()`, additional check for empty input string (#4448) by @mpv-enjoyer
1034[rtext] REVIEWED: `CodepointToUTF8()`, clean static buffer #4379 by @raysan5
1035[rtext] REVIEWED: `TextToFloat()`, always multiply by sign (#4273) by @ListeriaM
1036[rtext] REVIEWED: `TextReplace()` const correctness (#3678) by @maverikou
1037[rtext] REVIEWED: `TextToFloat()`, coding style (#3627) by @Benjamin Schmid Ties
1038[rtext] REVIEWED: Some comments to align to style (#3756) by @Idir Carlos Aliane
1039[rtext] REVIEWED: Adjust font atlas area calculation so padding area is not underestimated at small font sizes (#3719) by @Tim Romero
1040[rmodels] ADDED: GPU skinning support for models animations (#4321) by @Daniel Holden -WARNING-
1041[rmodels] ADDED: Support 16-bit unsigned short vec4 format for gltf joint loading (#3821) by @Gary M
1042[rmodels] ADDED: Support animation names for the m3d model format (#3714) by @kolunmi
1043[rmodels] ADDED: `DrawModelPoints()`, more performant point cloud rendering (#4203) by @Reese Gallagher
1044[rmodels] ADDED: `ExportMeshAsCode()` by @raysan5
1045[rmodels] REVIEWED: Multiple updates to gltf loading, improved macro (#4373) by @Harald Scheirich
1046[rmodels] REVIEWED: `LoadOBJ()`, correctly split obj meshes by material (#4285) by @Jeffm2501
1047[rmodels] REVIEWED: `LoadOBJ()`, add warning when loading an OBJ with multiple materials (#4271) by @Jeffm2501
1048[rmodels] REVIEWED: `LoadOBJ()`, fix bug that fragmented the loaded meshes (#4494) by @zet23t
1049[rmodels] REVIEWED: `LoadIQM()`, set model.meshMaterial[] (#4092) by @SuperUserNameMan
1050[rmodels] REVIEWED: `LoadIQM()`, attempt to load texture from IQM at loadtime (#4029) by @JettMonstersGoBoom
1051[rmodels] REVIEWED: `LoadM3D(), fix vertex colors for m3d files (#3859) by @Jeffm2501
1052[rmodels] REVIEWED: `LoadGLTF()`, supporting additional vertex data formats (#3546) by @MrScautHD
1053[rmodels] REVIEWED: `LoadGLTF()`, correctly handle the node hierarchy in a glTF file (#4037) by @Paul Melis
1054[rmodels] REVIEWED: `LoadGLTF()`, replaced SQUAD quat interpolation with cubic hermite (gltf 2.0 specs) (#3920) by @Benji
1055[rmodels] REVIEWED: `LoadGLTF()`, support 2nd texture coordinates loading by @raysan5
1056[rmodels] REVIEWED: `LoadGLTF()`, support additional vertex attributes data formats #3890 by @raysan5
1057[rmodels] REVIEWED: `LoadGLTF()`, set cgltf callbacks to use `LoadFileData()` and `UnloadFileData()` (#3652) by @kolunmi
1058[rmodels] REVIEWED: `LoadGLTF()`, JOINTS loading #3836 by @raysan5
1059[rmodels] REVIEWED: `LoadImageFromCgltfImage()`, fix base64 padding support (#4112) by @SuperUserNameMan
1060[rmodels] REVIEWED: `LoadModelAnimationsIQM()`, fix corrupted animation names (#4026) by @JettMonstersGoBoom
1061[rmodels] REVIEWED: `LoadModelAnimationsGLTF()`, load animations with 1 frame (#3804) by @Nikita Blizniuk
1062[rmodels] REVIEWED: `LoadModelAnimationsGLTF()`, added missing interpolation types (#3919) by @Benji
1063[rmodels] REVIEWED: `LoadModelAnimationsGLTF()` (#4107) by @VitoTringolo
1064[rmodels] REVIEWED: `LoadBoneInfoGLTF()`, add check for animation name being NULL (#4053) by @VitoTringolo
1065[rmodels] REVIEWED: `GenMeshSphere()`, fix artifacts (#4460) by @MikiZX1
1066[rmodels] REVIEWED: `GenMeshTangents()`, read uninitialized values, fix bounding case (#4066) by @kai-z99
1067[rmodels] REVIEWED: `GenMeshTangents()`, fixed out of bounds error (#3990) by @Salvador Galindo
1068[rmodels] REVIEWED: `UpdateModelAnimation()`, performance speedup (#4470) by @JettMonstersGoBoom
1069[rmodels] REVIEWED: `DrawCylinder()`, fix drawing due to imprecise angle (#4034) by @Paul Melis
1070[rmodels] REVIEWED: `DrawCylinder()`, fix drawing of cap (#4478) by @JeffM2501
1071[rmodels] REVIEWED: `DrawMesh()`, send full matModel to shader in DrawMesh (#4005) (#4022) by @David Holland
1072[rmodels] REVIEWED: `DrawMesh()`, fix material specular map retrieval (#3758) by @Victor Gallet
1073[rmodels] REVIEWED: `DrawModelEx()`, simplified multiplication of colors (#4002) by @Bigfoot71
1074[rmodels] REVIEWED: `DrawBillboardPro()`, to be consistend with `DrawTexturePro()` (#4132) by @bohonghuang
1075[rmodels] REVIEWED: `DrawSphereEx()` optimization (#4106) by @smalltimewizard
1076[raudio] REVIEWED: `LoadMusicStreamFromMemory()`, support 24-bit FLACs (#4279) by @konstruktor227
1077[raudio] REVIEWED: `LoadWaveSamples()`, fix mapping of wave data (#4062) by @ListeriaM
1078[raudio] REVIEWED: `LoadMusicStream()`, remove drwav_uninit() (#3986) by @FishingHacks
1079[raudio] REVIEWED: `LoadMusicStream()` qoa and wav loading (#3966) by @veins1
1080[raudio] REVIEWED: `ExportWaveAsCode()`, segfault (#3769) by @IoIxD
1081[raudio] REVIEWED: `WaveCrop()`, fix issues and use frames instead of samples (#3994) by @ListeriaM
1082[raudio] REVIEWED: Crash from multithreading issues (#3907) by @Christian Haas
1083[raudio] REVIEWED: Reset music.ctxType if loading wasn't succesful (#3917) by @veins1
1084[raudio] REVIEWED: Added missing functions in "standalone" mode (#3760) by @Alessandro Nikolaev
1085[raudio] REVIEWED: Disable unused miniaudio features (#3544) by @M374LX
1086[raudio] REVIEWED: Fix crash when switching playback device at runtime (#4102) by @jkaup
1087[raudio] REVIEWED: Support 24 bits samples for FLAC format (#4058) by @Alexey Kutepov
1088[examples] ADDED: `core_random_sequence` (#3846) by @Dalton Overmyer
1089[examples] ADDED: `core_input_virtual_controls` (#4342) by @oblerion
1090[examples] ADDED: `shapes_rectangle_advanced `, implementing `DrawRectangleRoundedGradientH()` (#4435) by @Everton Jr.
1091[examples] ADDED: `models_bone_socket` (#3833) by @iP
1092[examples] ADDED: `shaders_vertex_displacement` (#4186) by @Alex ZH
1093[examples] ADDED: `shaders_shadowmap` (#3653) by @TheManTheMythTheGameDev
1094[examples] REVIEWED: `core_2d_camera_platformer` by @raysan5
1095[examples] REVIEWED: `core_2d_camera_mouse_zoom`, use logarithmic scaling for a 2d zoom functionality (#3977) by @myQwil
1096[examples] REVIEWED: `core_input_gamepad_info`, all buttons displayed within the window (#4241) by @Asdqwe
1097[examples] REVIEWED: `core_input_gamepad_info`, show ps3 controller (#4040) by @Konrad Gutvik Grande
1098[examples] REVIEWED: `core_input_gamepad`, add drawing for generic gamepad (#4424) by @Asdqwe
1099[examples] REVIEWED: `core_input_gamepad`, add deadzone handling (#4422) by @Asdqwe
1100[examples] REVIEWED: `shapes_bouncing_ball` (#4226) by @Anthony Carbajal
1101[examples] REVIEWED: `shapes_following_eyes` (#3710) by @Hongyu Ouyang
1102[examples] REVIEWED: `shapes_draw_rectangle_rounded` by @raysan5
1103[examples] REVIEWED: `shapes_draw_ring`, fix other examples (#4211) by @kai-z99
1104[examples] REVIEWED: `shapes_lines_bezier` by @raysan5
1105[examples] REVIEWED: `textures_image_kernel` #3556 by @raysan5
1106[examples] REVIEWED: `text_input_box` (#4229) by @Anthony Carbajal
1107[examples] REVIEWED: `text_writing_anim` (#4230) by @Anthony Carbajal
1108[examples] REVIEWED: `models_billboard` by @raysan5
1109[examples] REVIEWED: `models_cubicmap` by @raysan5
1110[examples] REVIEWED: `models_point_rendering` by @raysan5
1111[examples] REVIEWED: `models_box_collisions` (#4224) by @Anthony Carbajal
1112[examples] REVIEWED: `models_skybox`, do not use HDR by default (#4115) by @Jeffm2501
1113[examples] REVIEWED: `shaders_basic_pbr` (#4225) by @Anthony Carbajal
1114[examples] REVIEWED: `shaders_palette_switch` by @raysan5
1115[examples] REVIEWED: `shaders_hybrid_render` (#3908) by @Yousif
1116[examples] REVIEWED: `shaders_lighting_instancing`, fix vertex shader (#4056) by @karl
1117[examples] REVIEWED: `shaders_raymarching`, add `raymarching.fs` for GLSL120 (#4183) by @CDM15y
1118[examples] REVIEWED: `shaders_shadowmap`, fix shaders for GLSL 1.20 (#4167) by @CDM15y
1119[examples] REVIEWED: `shaders_deferred_render` (#3655) by @JettMonstersGoBoom
1120[examples] REVIEWED: `shaders_basic_pbr` (#3621) by @afanolovcic
1121[examples] REVIEWED: `shaders_basic_pbr`, remove dependencies (#3649) by @TheManTheMythTheGameDev
1122[examples] REVIEWED: `shaders_basic_pbr`, added more comments by @raysan5
1123[examples] REVIEWED: `shaders_gpu_skinning`, to work with OpenGL ES 2.0 #4412 by @raysan5
1124[examples] REVIEWED: `shaders_model_shader`, use free camera (#4428) by @IcyLeave6109
1125[examples] REVIEWED: `audio_stream_effects` (#3618) by @lipx
1126[examples] REVIEWED: `audio_raw_stream` (#3624) by @riadbettole
1127[examples] REVIEWED: `audio_mixed_processor` (#4214) by @Anthony Carbajal
1128[examples] REVIEWED: `raylib_opengl_interop`, fix building on PLATFORM_DESKTOP_SDL (#3826) by @Peter0x44
1129[examples] REVIEWED: Update examples missing UnloadTexture() calls (#4234) by @Anthony Carbajal
1130[examples] REVIEWED: Added GLSL 100 and 120 shaders to lightmap example (#3543) by @Jussi Viitala
1131[examples] REVIEWED: Set FPS to always 60 in all exampels (#4235) by @Anthony Carbajal
1132[build] REVIEWED: Makefile by @raysan5
1133[build] REVIEWED: Makefile, fix wrong flag #3593 by @raysan5
1134[build] REVIEWED: Makefile, disable wayland by default (#4369) by @Anthony Carbajal
1135[build] REVIEWED: Makefile, VSCode, fix to support multiple .c files (#4391) by @Alan Arrecis
1136[build] REVIEWED: Makefile, fix -Wstringop-truncation warning (#4096) by @Peter0x44
1137[build] REVIEWED: Makefile, fix issues for RGFW on Linux/macOS (#3969) by @colleagueRiley
1138[build] REVIEWED: Makefile, update RAYLIB_VERSION (#3901) by @Belllg
1139[build] REVIEWED: Makefile, use mingw32-make for Windows (#4436) by @Asdqwe
1140[build] REVIEWED: Makefile, move CUSTOM_CFLAGS for better visibility (#4054) by @Lรกzaro Albuquerque
1141[build] REVIEWED: Makefile, update emsdk paths to latest versions by @raysan5
1142[build] REVIEWED: Makefile examples, align /usr/local with /src Makefile (#4286) by @Tchan0
1143[build] REVIEWED: Makefile examples, added `textures_image_kernel` (#3555) by @Sergey Zapunidi
1144[build] REVIEWED: Makefile examples (#4209) by @Anthony Carbajal
1145[build] REVIEWED: Makefile examples, to work on NetBSD (#4438) by @NishiOwO
1146[build] REVIEWED: Makefile examples, WebGL2 (OpenGL ES 3.0) backend flags #4330 by @raysan5
1147[build] REVIEWED: Makefile examples, web building (#4434) by @Asdqwe
1148[build] REVIEWED: build.zig, fix various issues around `-Dconfig` (#4398) by @Sage Hane
1149[build] REVIEWED: build.zig, fix type mismatch (#4383) by @yuval_dev
1150[build] REVIEWED: build.zig, minor fixes (#4381) by @Sage Hane
1151[build] REVIEWED: build.zig, fix @src logic and a few things (#4380) by @Sage Hane
1152[build] REVIEWED: build.zig, improve logic (#4375) by @Sage Hane
1153[build] REVIEWED: build.zig, issues  (#4374) by @William Culver
1154[build] REVIEWED: build.zig, issues (#4366) by @Visen
1155[build] REVIEWED: build.zig, support desktop backend change (#4358) by @Not-Nik
1156[build] REVIEWED: build.zig, use zig fmt (#4242) by @freakmangd
1157[build] REVIEWED: build.zig, check if wayland-scanner is installed (#4217) by @lnc3l0t
1158[build] REVIEWED: build.zig, override config.h definitions (#4193) by @lnc3l0t
1159[build] REVIEWED: build.zig, support GLFW platform detection (#4150) by @InventorXtreme
1160[build] REVIEWED: build.zig, make emscripten build compatible with Zig 0.13.0 (#4121) by @myQwil
1161[build] REVIEWED: build.zig, pass the real build.zig file (#4113) by @InKryption
1162[build] REVIEWED: build.zig, leverage `dependencyFromBuildZig` (#4109) by @InKryption
1163[build] REVIEWED: build.zig, run examples from their directories (#4063) by @myQwil
1164[build] REVIEWED: build.zig, fix raygui build when using addRaygui externally (#4027) by @Viktor Poceduliฤ‡
1165[build] REVIEWED: build.zig, fix emscripten build (#4012) by @Dylan
1166[build] REVIEWED: build.zig, update to zig 0.12.0dev while keeping 0.11.0 compatibility (#3715) by @freakmangd
1167[build] REVIEWED: build.zig, drop support for 0.11.0 and use more idiomatic build script code (#3927) by @freakmangd
1168[build] REVIEWED: build.zig, sdd shared library build option and update to zig 0.12.0-dev.2139 (#3727) by @Andrew Lee
1169[build] REVIEWED: build.zig, add `opengl_version` option (#3979) by @Alexei Mozaidze
1170[build] REVIEWED: build.zig, fix local dependency break (#3913) by @freakmangd
1171[build] REVIEWED: build.zig, fix breaking builds for Zig v0.11.0 (#3896) by @iarkn
1172[build] REVIEWED: build.zig, update to latest version and simplify (#3905) by @freakmangd
1173[build] REVIEWED: build.zig, remove all uses of deps/mingw (#3805) by @Peter0x44
1174[build] REVIEWED: build.zig, fixed illegal instruction crash (#3682) by @WisonYe
1175[build] REVIEWED: build.zig, fix broken build on #3863 (#3891) by @Nikolas Mauropoulos
1176[build] REVIEWED: build.zig, improve cross-compilation (#4468) by @deathbeam
1177[build] REVIEWED: CMake, update to raylib 5.0 (#3623) by @Peter0x44
1178[build] REVIEWED: CMake, added PLATFORM option for Desktop SDL (#3809) by @mooff
1179[build] REVIEWED: CMake, fix GRAPHICS_* check (#4359) by @zyperpl
1180[build] REVIEWED: CMake, examples projects  (#4332) by @Ridge3Dproductions
1181[build] REVIEWED: CMake, fix warnings in projects/CMake/CMakeLists.txt (#4278) by @Peter0x44
1182[build] REVIEWED: CMake, delete BuildOptions.cmake (#4277) by @Peter0x44
1183[build] REVIEWED: CMake, update version to 5.0 so libraries are correctly versioned (#3615) by @David Williams
1184[build] REVIEWED: CMake, improved linkage flags to save 28KB on the final bundle (#4177) by @Lรกzaro Albuquerque
1185[build] REVIEWED: CMake, support OpenGL ES3 in `LibraryConfigurations.cmake` (#4079) by @manuel5975p
1186[build] REVIEWED: CMake, `config.h` fully available to users (#4044) by @Lรกzaro Albuquerque
1187[build] REVIEWED: CMake, pass -sFULL_ES3 instead of -sFULL_ES3=1 (#4090) by @manuel5975p
1188[build] REVIEWED: CMake, SDL build link the glfw dependency (#3860) by @RobLoach
1189[build] REVIEWED: CMake, infer CMAKE_MODULE_PATH in super-build (#4042) by @fruzitent
1190[build] REVIEWED: CMake, remove USE_WAYLAND option (#3851) by @M374LX
1191[build] REVIEWED: CMake, disable SDL rlgl_standalone example (#3861) by @RobLoach
1192[build] REVIEWED: CMake, bump version required to avoid deprecated #3639 by @raysan5
1193[build] REVIEWED: CMake, fix examples linking -DPLATFORM=SDL (#3825) by @Peter0x44
1194[build] REVIEWED: CMake, don't build for wayland by default (#4432) by @Peter0x44
1195[build] REVIEWED: VS2022, misc improvements by @raysan5
1196[build] REVIEWED: VS2022, fix build warnings (#4095) by @Jeffm2501
1197[build] REVIEWED: VS2022, added new examples (#4492) by @Jeffm2501
1198[build] REVIEWED: Fix fix-build-paths (#3849) by @Caleb Barger
1199[build] REVIEWED: Fix build paths (#3835) by @Steve Biedermann
1200[build] REVIEWED: Fix VSCode sample project for macOS (#3666) by @Tim Romero
1201[build] REVIEWED: Fix some warnings on web builds and remove some redundant flags (#4069) by @Lรกzaro Albuquerque
1202[build] REVIEWED: Fix examples not building with gestures system disabled (#4020) by @Sprix
1203[build] REVIEWED: Fix GLFW runtime platform detection (#3863) by @M374LX
1204[build] REVIEWED: Fix DRM cross-compile without sysroot (#3839) by @Christian W. Zuckschwerdt
1205[build] REVIEWED: Fix cmake-built libraylib.a to properly include GLFW's object files (#3598) by @Peter0x44
1206[build] REVIEWED: Hide unneeded internal symbols when building raylib as an so or dylib (#3573) by @Peter0x44
1207[build] REVIEWED: Corrected the path of android ndk toolchains for OSX platforms (#3574) by @Emmanuel Mรฉra
1208[build][CI] ADDED: Automatic update for raylib_api.* (#3692) by @seiren
1209[build][CI] REVIEWED: Update workflows to use latest actions/upload-artifact by @raysan5
1210[build][CI] REVIEWED: CodeQL minor tweaks to avoid some warnings by @raysan5
1211[build][CI] REVIEWED: Update linux_examples.yml by @raysan5
1212[build][CI] REVIEWED: Update linux.yml by @raysan5
1213[build][CI] REVIEWED: Update webassembly.yml by @raysan5
1214[build][CI] REVIEWED: Update cmake.yml by @raysan5
1215[build][CI] REVIEWED: Update codeql.yml, exclude src/external files by @raysan5
1216[bindings] ADDED: raylib-APL (#4253) by @Brian-ED
1217[bindings] ADDED: raylib-bqn, moved rayed-bqn (#4331) by @Brian-ED
1218[bindings] ADDED: brainfuck binding (#4169) by @_Tradam
1219[bindings] ADDED: raylib-zig-bindings (#4004) by @Lionel Briand
1220[bindings] ADDED: Raylib-CSharp wrapper (#3963) by @MrScautHD
1221[bindings] ADDED: COBOL binding (#3661) by @glowiak
1222[bindings] ADDED: raylib-beef binding (#3640) by @Braedon Lewis
1223[bindings] ADDED: Raylib-CSharp-Vinculum (#3571) by @Danil
1224[bindings] REVIEWED: Remove broken-link bindings #3899 by @raysan5
1225[bindings] REVIEWED: Updated some versions on BINDINGS.md by @raysan5
1226[bindings] REVIEWED: Removed umaintained repos (#3999) by @planetis-m
1227[bindings] REDESIGNED: Add binding link to name, instead of separate column (#3995) by @Carmine Pietroluongo
1228[bindings] UPDATED: h-raylib (#4378) by @Anand Swaroop
1229[bindings] UPDATED: Raylib.lean, to master version (#4337) by @Daniil Kisel
1230[bindings] UPDATED: raybit, to latest master (#4311) by @Alex
1231[bindings] UPDATED: dray binding (#4163) by @red thing
1232[bindings] UPDATED: Julia (#4068) by @ShalokShalom
1233[bindings] UPDATED: nim to latest master (#3999) by @planetis-m
1234[bindings] UPDATED: raylib-rs (#3991) by @IoIxD
1235[bindings] UPDATED: raylib-zig version (#3902) by @Not-Nik
1236[bindings] UPDATED: raylib-odin (#3868) by @joyousblunder
1237[bindings] UPDATED: Raylib VAPI (#3829) by @Alex Macafee
1238[bindings] UPDATED: Raylib-cs (#3774) by @Brandon Baker
1239[bindings] UPDATED: h-raylib (#3739) by @Anand Swaroop
1240[bindings] UPDATED: OCaml bindings version (#3730) by @Tobias Mock
1241[bindings] UPDATED: Raylib.c3 (#3689) by @Kenta
1242[bindings] UPDATED: ray-cyber to 5.0 (#3654) by @fubark
1243[bindings] UPDATED: raylib-freebasic binding (#3591) by @WIITD
1244[bindings] UPDATED: SmallBASIC (#3562) by @Chris Warren-Smith
1245[bindings] UPDATED: Python raylib-py v5.0.0beta1 (#3557) by @jorgegomes83
1246[bindings] UPDATED: raylib-d binding (#3561) by @schveiguy
1247[bindings] UPDATED: Janet (#3553) by @Dmitry Matveyev
1248[bindings] UPDATED: Raylib.nelua (#3552) by @AuzFox
1249[bindings] UPDATED: raylib-cpp to 5.0 (#3551) by @RobLoach
1250[bindings] UPDATED: Pascal binding (#3548) by @Gunko Vadim
1251[external] UPDATED: stb_truetype.h to latest version by @raysan5
1252[external] UPDATED: stb_image_resize2.h to latest version by @raysan5
1253[external] UPDATED: stb_image.h to latest version by @raysan5
1254[external] UPDATED: qoa.h to latest version by @raysan5
1255[external] UPDATED: dr_wav.h to latest version by @raysan5
1256[external] UPDATED: dr_mp3.h to latest version by @raysan5
1257[external] UPDATED: cgltf.h to latest version by @raysan5
1258[external] REVIEWED: rl_gputex, correctly load mipmaps from DDS files (#4399) by @Not-Nik
1259[external] REVIEWED: stb_image_resize2, dix vld1q_f16 undeclared in arm (#4309) by @masnm
1260[external] REVIEWED: miniaudio, fix library and Makefile for NetBSD (#4212) by @NishiOwO
1261[external] REVIEWED: raygui, update to latest version 4.5-dev (#4238) by @Anthony Carbajal
1262[external] REVIEWED: jar_xml, replace unicode characters by ascii characters to avoid warning in MSVC (#4196) by @RicoP
1263[external] REVIEWED: vox_loader, normals and new voxels shader (#3843) by @johann nadalutti
1264[parser] REVIEWED: README.md, to mirror fixed help text (#4336) by @Daniil Kisel
1265[parser] REVIEWED: Fix seg fault with long comment lines (#4306) by @Chris Warren-Smith
1266[parser] REVIEWED: Don't crash for files that don't end in newlines (#3981) by @Peter0x44
1267[parser] REVIEWED: Issues in usage example help text (#4084) by @Peter0x44
1268[parser] REVIEWED: Fix parsing of empty parentheses (#3974) by @Filyus
1269[parser] REVIEWED: Address parsing issue when generating XML #3893 by @raysan5
1270[parser] REVIEWED: `MemoryCopy()`, prevent buffer overflow by replacing hard-coded arguments (#4011) by @avx0
1271[misc] ADDED: Create logo/raylib.icns by @raysan5
1272[misc] ADDED: Create logo/raylib_1024x1024.png by @raysan5
1273[misc] ADDED: Default vertex/fragment shader for OpenGL ES 3.0 (#4178) by @Lรกzaro Albuquerque
1274[misc] REVIEWED: README.md, fix Reddit badge (#4136) by @Ninad Sachania
1275[misc] REVIEWED: .gitignore, ignore compiled dll binaries (#3628) by @2Bear
1276[misc] REVIEWED: Fix undesired scrollbars on web shell files (#4104) by @jspast
1277[misc] REVIEWED: Made comments on raylib.h match comments in rcamera.h (#3942) by @Tomas Fabrizio Orsi
1278[misc] REVIEWED: Make raylib/raygui work better on touchscreen (#3728) by @Hongyu Ouyang
1279[misc] REVIEWED: Update config.h by @raysan5
1280
1281-------------------------------------------------------------------------
1282Release:     raylib 5.0 - 10th Anniversary Edition (18 November 2023)
1283-------------------------------------------------------------------------
1284KEY CHANGES:
1285 - REDESIGNED: rcore module platform-split, by @ubkp, @michaelfiber, @Bigfoot71, @raysan5
1286 - ADDED: New platform backend supported: SDL
1287 - ADDED: New platform backend supported: Nintendo Switch (closed source)
1288 - ADDED: New Splines drawing and evaluation API
1289 - ADDED: New pseudo-random numbers generator: rprand
1290 - ADDED: Automation Events System API
1291 - UPDATED: raygui 4.0: New version of this immediate-mode gui system for tools development with raylib
1292
1293Detailed changes:
1294[rcore] ADDED: RAYLIB_VERSION_* values to raylib.h (#2856) by @RobLoach
1295[rcore] ADDED: IsKeyPressedRepeat() on PLATFORM_DESKTOP (#3245) by @actondev
1296[rcore] ADDED: SetWindowTitle() for PLATFORM_WEB (#3222) by @VitusVeit
1297[rcore] ADDED: FLAG_WINDOW_RESIZABLE for web (#3305) by @Peter0x44
1298[rcore] ADDED: SetWindowMaxSize() for desktop and web (#3309) by @ubkp
1299[rcore] ADDED: SetMouseCursor() for PLATFORM_WEB (#3414) by @BeardedBread
1300[rcore] ADDED: LoadRandomSequence()/UnloadRandomSequence() by @raysan5
1301[rcore] REMOVED: PLATFORM_RPI (#3232) by @michaelfiber
1302[rcore] REVIEWED: GetFileLength(), added comment (#3262) by @raysan5
1303[rcore] REVIEWED: Default shaders precission issue on PLATFORM_WEB (#3261) by @branc116
1304[rcore] REVIEWED: IsKey*() key validation checks (#3256) by @n77y
1305[rcore] REVIEWED: SetClipboardText() for PLATFORM_WEB (#3257) by @ubkp
1306[rcore] REVIEWED: Check if Ctrl modifier is among the currently set modifiers (#3230) by @mohad12211
1307[rcore] REVIEWED: Android app black screen when reopening by @Bigfoot71
1308[rcore] REVIEWED: Warnings when casting int to floats (#3218) by @JeffM2501
1309[rcore] REVIEWED: GetCurrentMonitor() detection inconsistency issue (#3215) by @ubkp
1310[rcore] REVIEWED: SetWindowMonitor() to no longer force fullscreen (#3209) by @ubkp
1311[rcore] REVIEWED: Fix mouse wheel not working in PLATFORM_RPI or PLATFORM_DRM (#3193) by @ubkp
1312[rcore] REVIEWED: GetMonitorName() description (#3184) (#3189) by @danilwhale
1313[rcore] REVIEWED: BeginScissorMode(), identify rendering to texture (#3510) by @gulrak
1314[rcore] REVIEWED: Window flags order (#3114) by @lesleyrs
1315[rcore] REVIEWED: Full movement for right analog stick (#3095) by @PixelPhobicGames
1316[rcore] REVIEWED: Fix Android app freeze after calling CloseWindow() (#3067) by @Bigfoot71
1317[rcore] REVIEWED: Lazy loading of default font used on image drawing (no InitWindow) by @raysan5
1318[rcore] REVIEWED: Minor tweaks to raylib events automation system @raysan5
1319[rcore] REVIEWED: GetCurrentMonitor() bugfix (#3058) by @hamyyy
1320[rcore] REVIEWED: Update CORE.Input.Touch.pointCount (#3024) by @raysan5
1321[rcore] REVIEWED: Mouse offset and scaling must be considered also on web!
1322[rcore] REVIEWED: CompressData(), possible stack overflow
1323[rcore] REVIEWED: GetWorldToScreenEx() (#3351) by @Brian-ED
1324[rcore] REVIEWED: Fix GetMouseDelta() issue for Android (#3404) by @Bigfoot71
1325[rcore] REVIEWED: GetFPS(), reset FPS averages when window is inited (#3445) by @JeffM2501
1326[rcore] REVIEWED: GetCurrentMonitor(), check window center position by @M374LX
1327[rcore] REVIEWED: GetRender*() issue on macOS highDPI (#3367) by @raysan5
1328[rcore] REVIEWED: ScanDirectoryFiles*(), paths building slashes sides (#3507)
1329[rlgl] ADDED: Experimental support for OpenGL ES 3.0 by @raysan5
1330[rlgl] ADDED: Support 16-Bit HDR textures (#3220) by @Not-Nik
1331[rlgl] ADDED: rlEnablePointMode() (#3490) by @JettMonstersGoBoom
1332[rlgl] ADDED: rlBlitFramebuffer(), required for deferred render
1333[rlgl] REVIEWED: LoadModel(), removed cube fallback mechanism (#3459)
1334[rlgl] REVIEWED: Improved support for ES3/WebGL2 (#3107) by @chemaguerra
1335[rlgl] REVIEWED: OpenGL 2.1 half floats support as part of an extension by @Not-Nik
1336[rlgl] REVIEWED: Avoid shader attribute not found log by @raysan5
1337[rlgl] REVIEWED: Avoid tracelog about not found uniforms (#3003) by @raysan5
1338[rlgl] REVIEWED: rLoadTexture() UBSAN complaints #1891 (#3321) by @Codom
1339[rlgl] REVIEWED: glInternalFormat as unsigned int
1340[rlgl] REVIEWED: OpenGL ES 3.0 support
1341[rshapes] ADDED: Spline drawing functions by @raysan5
1342[rshapes] ADDED: GetSplinePoint*() functions for spline evaluation by @raysan5
1343[rshapes] ADDED: DrawCircleLinesV() for consistency (#3452) by @Peter0x44
1344[rshapes] REVIEWED: DrawSplineCatmullRom() by @raysan5
1345[rshapes] REVIEWED: Minor fix in DrawLineBezier* (#3006) by @eternalStudent
1346[rshapes] REVIEWED: GetCollisionRec(), more performant (#3052) by @manuel5975p
1347[rshapes] REVIEWED: Fix off-by-one error in CheckCollisionPointRec() (#3022) by @dbechrd
1348[rtextures] ADDED: Basic SVG loading support (#2738) by @bXi
1349[rtextures] ADDED: Support 16-Bit HDR textures (#3220) by @Not-Nik
1350[rtextures] ADDED: ExportImageToMemory() by @raysan5
1351[rtextures] ADDED: ImageRotate() (#3078) by @danemadsen
1352[rtextures] ADDED: GenImageGradientSquare() (#3077) by @danemadsen
1353[rtextures] ADDED: GenImageLinearGradient() by @danemadsen
1354[rtextures] REMOVED: GenImageGradientH() and GenImageGradientV() by @danemadsen
1355[rtextures] REVIEWED: LoadImageSvg() by @raysan5
1356[rtextures] REVIEWED: Uninitialized thread-locals in stbi (#3282) (#3283) by @jbarthelmes
1357[rtextures] REVIEWED: ImageDrawRectangleRec(), validate drawing inside bounds by @JeffM2501
1358[rtextures] REVIEWED: LoadTextureCubemap() for manual layouts (#3204) by @Not-Nik
1359[rtextures] REVIEWED: Optimization of ImageDrawRectangleRec() (#3185) by @smalltimewizard
1360[rtextures] REVIEWED: ImageRotate() formatting by @raysan5
1361[rtextures] REVIEWED: GenImagePerlinNoise(), clamp values (#3071) by @raysan5
1362[rtextures] REVIEWED: Packing logic error in GenImageFontAtlas() (#2979) by @hanaxar
1363[rtextures] REVIEWED: Calculate exact image size in GenImageFontAtlas() (#2963) by @hanaxar
1364[rtextures] REVIEWED: ImageDrawRectangleRec() (#3027) by @raysan5
1365[rtextures] REVIEWED: ImageDraw() source clipping when drawing beyond top left (#3306) by @RobLoach
1366[rtextures] REVIEWED: UnloadRenderTexture(), additional checks
1367[rtextures] REVIEWED: Fixed compressed DDS texture loading issues (#3483) by @JaanDev
1368[rtext] ADDED: Font altas white rectangle and flag SUPPORT_FONT_ATLAS_WHITE_REC by @raysan5
1369[rtext] ADDED: SetTextLineSpacing() to define line breaks text drawing spacing by @raysan5
1370[rtext] RENAMED: LoadFont*() parameter names for consistency and coherence by @raysan5
1371[rtext] REVIEWED: GetCodepointCount(), ignore unused return value of GetCodepointNext by @ashn-dot-dev
1372[rtext] REVIEWED: TextFormat() warn user if buffer overflow occurred (#3399) by @Murlocohol
1373[rtext] REVIEWED: TextFormat(), added "..." for truncation (#3366) by @raysan5
1374[rtext] REVIEWED: GetGlyphIndex() (#3000) by @raysan5
1375[rtext] REVIEWED: GetCodepointNext() to return default value by @chocolate42
1376[rtext] REVIEWED: TextToPascal() issue when first char is uppercase
1377[rmodels] ADDED: ModelAnimation.name field, initially with GLTF animation names by @alfredbaudisch
1378[rmodels] REDESIGNED: LoadOBJ(), avoid mesh splitting by materials, fix (#3398) by @raysan5
1379[rmodels] REVIEWED: Support .vox model files version 200 (#3097) by @Bigfoot71
1380[rmodels] REVIEWED: Materials loading (#3126) @raysan5
1381[rmodels] REVIEWED: DrawBillboardPro() to allow source of negative size (#3197) by @bohonghuang
1382[rmodels] REVIEWED: glTF loading segfault in animNormals memcpy by @charles-l
1383[rmodels] REVIEWED: LoadModelAnimationsGLTF(), free fileData after use (#3065) by @crynux
1384[rmodels] REVIEWED: GenMeshCubicmap(), correction of values (#3032) by @Bigfoot71
1385[rmodels] REVIEWED: DrawMesh() to avoid UBSAN complaining (#1891)
1386[rmodels] REVIEWED: GenMeshPlane() when resX != resZ (#3425) by @neyrox, @s-yablonskiy
1387[rmodels] REVIEWED: GetModelBoundingBox() (#3485)
1388[raudio] ADDED: LoadSoundAlias() by @JeffM2501
1389[raudio] ADDED: Missing structure on standalone mode (#3160) by @raysan5
1390[raudio] ADDED: GetMasterVolume() (#3434) by @rexim
1391[raudio] REVIEWED: Comments about sample format to AttachAudioStreamProcessor() (#3188) by @AlbertoGP
1392[raudio] REVIEWED: Documented buffer format for audio processors (#3186) by @AlbertoGP
1393[raudio] REVIEWED: ExportWaveAsCode() file saving by @RadsammyT
1394[raudio] REVIEWED: Fix warning on discarded const qualifier (#2967) by @RobLoach
1395[raudio] REVIEWED: Move mutex initialization before ma_device_start() (#3325) by @Bigfoot71
1396[raudio] REVIEWED: Fix UpdateSound() parameter name (#3405) by @KislyjKisel
1397[raudio] REVIEWED: Fix QOA seeking (#3494) by @veins1
1398[rcamera] REVIEWED: File-macros for consistency (#3161) by @raysan5
1399[rcamera] REVIEWED: Support analog stick camera controls (#3066) by @PixelPhobicGames
1400[rcamera] REVIEWED: CameraMoveToTarget(), ensure distance is greater than 0 (#3031) by @kolunmi
1401[rcamera] REVIEWED: Exposing rcamera functions to the dll (#3355) by @JeffM2501
1402[raymath] ADDED: Vector3Projection() and Vector3Rejection() (#3263) by @Dial0
1403[raymath] ADDED: EPSILON macro to each function requiring it (#3330) by @Brian-ED
1404[raymath] REVIEWED: Usage of 'sinf()' and 'cosf()' to be correct (#3181) by @RokasPuzonas
1405[raymath] REVIEWED: Slightly optimized Vector3Normalize() (#2982) by @RicoP
1406[raymath] REVIEWED: Comment to clarify raymath semantics by @raysan5
1407[raymath] REVIEWED: Comment about Matrix conventions by @raysan5
1408[raymath] REVIEWED: Vector2Angle() and Vector2LineAngle() (#3396) by @Murlocohol
1409[rgestures] REVIEWED: Optimize and simplify the gesture system (#3190) by @ubkp
1410[rgestures] REVIEWED: GESTURE_DRAG and GESTURE_SWIPE_* issues (mostly) for web (#3183) by @ubkp
1411[rgestures] REVIEWED: Touch pointCount for web (#3163) by @ubkp
1412[rgestures] REVIEWED: IsGestureDetected() parameter type
1413[utils] ADDED: Security checks to file reading (memory allocations) by @raysan5
1414[utils] REVIEWED: LoadFileData() potential issues with dataSize
1415[examples] ADDED: shaders_lightmap (#3043) by @nullstare
1416[examples] ADDED: core_2d_camera_split_screen (#3298) by @gabrielssanches
1417[examples] ADDED: LoadSoundAlias() usage example (#3223) by @JeffM2501
1418[examples] ADDED: textures_tiling (#3353) by @luis605
1419[examples] ADDED: shader_deferred_render (#3496) by @27justin
1420[examples] RENAMED: 2d_camera examples for consistency
1421[examples] REVIEWED: Text examples SetTextLineSpacing() to multiline examples by @raysan5
1422[examples] REVIEWED: examples/shapes/shapes_collision_area.c help instructions (#3279) by @asdqwe
1423[examples] REVIEWED: examples/shaders/shaders_texture_outline.c help instructions (#3278) by @asdqwe
1424[examples] REVIEWED: examples/others/easings_testbed.c help instructions and small tweโ€ฆ  by @asdqwe
1425[examples] REVIEWED: example/audio/audio_module_player.c help instructions and small bโ€ฆ  by @asdqwe
1426[examples] REVIEWED: example/models/models_loading_m3d.c controls (#3269) by @asdqwe
1427[examples] REVIEWED: example/models/models_loading_gltf.c controls (#3268) by @asdqwe
1428[examples] REVIEWED: text_unicode.c example crashing (#3250) by @ubkp
1429[examples] REVIEWED: rlgl_standalone.c compilation issue (#3242) by @ubkp
1430[examples] REVIEWED: core_input_gestures for Web (#3172) by @ubkp
1431[examples] REVIEWED: core_input_gamepad (#3110) by @iacore
1432[examples] REVIEWED: examples using raygui to raygui 4.0 by @raysan5
1433[examples] REVIEWED: Julia set shader example (#3467) by @joshcol9232
1434[build] ADDED: CMake option for SUPPORT_CUSTOM_FRAME_CONTROL (#3221) by @ubkp
1435[build] ADDED: New BORDERLESS_WINDOWED_MODE for PLATFORM_DESKTOP (#3216) by @ubkp
1436[build] ADDED: New examples to VS2022 solution by @raysan5
1437[build] REVIEWED: Updated Makefile and Makefile.Web, include new examples
1438[build] REVIEWED: Fix CMake extraneous -lglfw (#3266) by @iacore
1439[build] REVIEWED: Add missing cmake options (#3267) by @asdqwe
1440[build] REVIEWED: Match CMakeOptions.txt options default values (#3258) by @asdqwe
1441[build] REVIEWED: Add build.zig options for individual modules (#3254) by @actondev
1442[build] REVIEWED: build.zig to work with cross-compiling (#3225) by @yujiri8
1443[build] REVIEWED: Makefile build on PLATFORM_ANDROID, soname (#3211) by @ndytts
1444[build] REVIEWED: src/Makefile, fix misleading indentation (#3202) by @ashn-dot-dev
1445[build] REVIEWED: build.zig: Support for building with PLAFORM_DRM (#3191) by @jakubvf
1446[build] REVIEWED: Update CMakeOptions.txt by @raysan5
1447[build] REVIEWED: fix: cmake option "OPENGL_VERSION" doesn't work (#3170) by @royqh1979
1448[build] REVIEWED: Add error if raylib.h is included in a C++98 program (#3093) by @Peter0x44
1449[build] REVIEWED: Cross compilation for PLATFORM_DRM (#3091) by @TheLastBilly
1450[build] REVIEWED: build.zigm fixed cross-compiling from Linux (#3090)by @yujiri8
1451[build] REVIEWED: Enhanced cmake part for OpenBSD (#3086) by @rayit
1452[build] REVIEWED: Fixed compile on OpenBSD (#3085)by @rayit
1453[build] REVIEWED: CMake project example: fix a couple of typos (#3014) by @benjamin-thomas
1454[build] REVIEWED: Fix warnings in raylib for MSVC (#3004) by @JeffM2501
1455[build] REVIEWED: Update cmake example project (#3062) by @lesleyrs
1456[build] REVIEWED: Update build.zig be be able to build with current zig master (#3064) by @ryupold
1457[build] REVIEWED: VSCode project template (#3048) by @Shoozza
1458[build] REVIEWED: Fixed broken build.zig files. Now works with latest stable compiler (โ€ฆ by @Gamer-Kold
1459[build] REVIEWED: Fix missing symbol when rglfw.c on BSD platforms (#2968) by @Koromix
1460[build] REVIEWED: Update Makefile comment to indicate arm64 as a supported Linux desktoโ€ฆ  @ashn-dot-dev
1461[build] REVIEWED: Update Makefile : clean raygui.c & physac.c (#3296) by @SuperUserNameMan
1462[build] REVIEWED: Update webassembly.yml and linux.yml
1463[build] REVIEWED: Update zig build system to zig version 0.11.0 (#3393) by @purple4pur
1464[build] REVIEWED: Fix for latest zig master (#3037) by @star-tek-mb
1465[build] REVIEWED: Examples Makefile to use Makefile.Web when building for web (#3449) by @keithstellyes
1466[build] REVIEWED: build.zig updates for 0.11.0 release. (#3501) by @cabarger
1467[build] REVIEWED: Support OpenGL ES 3.0 building on Web platform
1468[build] REVIEWED: Fix warnings in Visual Studio (#3512) by @JeffM2501
1469[build] REVIEWED: OpenGL ES 3.0 flags on CMakeOptions (#3514) by @awfulcooking
1470[bindings] ADDED: fortran-raylib
1471[bindings] ADDED: raylib-raku to bindings (#3299) by @vushu
1472[bindings] ADDED: claw-raylib to BINDINGS.md (#3310) by @bohonghuang
1473[bindings] ADDED: vaiorabbit/raylib-bindings (#3318) by @wilsonsilva
1474[bindings] ADDED: TurboRaylib (#3317) by @turborium
1475[bindings] ADDED: raylib-ffi to bindings list (#3164) by @ewpratten
1476[bindings] ADDED: raylib-pkpy-bindings (#3361) by @blueloveTH
1477[bindings] ADDED: Raylib.lean to BINDINGS.md (#3409) by @KislyjKisel
1478[bindings] UPDATED: BINDINGS.md (#3217) by @joseph-montanez
1479[bindings] UPDATED: BINDINGS.md to include rayjs (#3212) by @mode777
1480[bindings] UPDATED: latest h-raylib version (#3166) by @Anut-py
1481[bindings] UPDATED: bindbd-raylib3 to raylib 4.5 (#3157) by @o3o
1482[bindings] UPDATED: Janet bindings supported version update (#3083)by @archydragon
1483[bindings] UPDATED: BINDINGS.md (raylib-py -> 4.5) (#2992) by @overdev
1484[bindings] UPDATED: BINDINGS.md (raylib-lua -> 4.5) (#2989) by @TSnake41
1485[bindings] UPDATED: raylib-d binding version to 4.5 (#2988) by @schveiguy
1486[bindings] UPDATED: raylib-freebasic to 4.5 (#2986) by @WIITD
1487[bindings] UPDATED: BINDINGS.md (#2983) by @jarroddavis68
1488[bindings] UPDATED: BINDINGS.md for raylib Odin 4.5 (#2981) by @gingerBill
1489[bindings] UPDATED: BINDINGS.md (#2980) by @GuvaCode
1490[bindings] UPDATED: BINDINGS.md (#3002) by @fubark
1491[bindings] UPDATED: BINDINGS.md (#3053) by @JupiterRider
1492[bindings] UPDATED: BINDINGS.md (#3050) by @Its-Kenta
1493[bindings] UPDATED: CL bindings version (#3049) by @shelvick
1494[bindings] UPDATED: BINDINGS.md (#3026) by @ChrisDill
1495[bindings] UPDATED: BINDINGS.md (#3023) by @sDos280
1496[bindings] UPDATED: BINDINGS.md (#3017) by @Soutaisei
1497[bindings] UPDATED: Various versions to 4.5 (#2974) by @RobLoach
1498[bindings] UPDATED: raylib.zig version to 4.5 (#2971) by @ryupold
1499[bindings] UPDATED: h-raylib version (#2970) by @Anut-py
1500[bindings] UPDATED: Factor's raylib binding to v4.5 (#3350) by @WraithGlade
1501[bindings] UPDATED: raylib-ocaml bindings to 4.5 version (#3322) by @tjammer
1502[bindings] UPDATED: Jaylib binding (#3508) by @glowiak
1503[external] UPDATED: sdefl and sinfl DEFLATE compression libraries by @raysan5
1504[external] UPDATED: miniaudio v0.11.12 --> v0.11.19 by @raysan5
1505[external] UPDATED: rl_gputex.h compressed images loading library by @raysan5
1506[external] UPDATED: Replaced stb_image_resize.c by stb_image_resize2.h (#3403) by @BabakSamimi
1507[external] UPDATED: qoi and qoa libraries
1508[external] UPDATED: stb libraries (required ones)
1509[external] UPDATED: cgltf and m3d libraries
1510[external] REVIEWED: msf_gif.h, some warnings
1511[external] REVIEWED: sinfl external library to avoid ASAN complaints (#3349) by @raysan5
1512[misc] ADDED: New task point to issue template about checking the wiki (#3169) by @ubkp
1513[misc] ADDED: CodeQL for static code analysis (#3476) by @b4yuan
1514[misc] REVIEWED: Update FAQ.md by @raysan5
1515[misc] REVIEWED: Potential code issues reported by CodeQL (#3476)
1516[misc] REVIEWED: Fix a link in the FAQ (#3082)by @jasonliang-dev
1517[misc] REVIEWED: New file formats to FAQ (#3079) by @Luramoth
1518[misc] REVIEWED: Make assets loading extension case insensitive #3008 by @raysan5
1519[misc] REVIEWED: Updated web shells open-graph info by @raysan5
1520
1521-------------------------------------------------------------------------
1522Release:     raylib 4.5 (18 March 2023)
1523-------------------------------------------------------------------------
1524KEY CHANGES:
1525 - ADDED: Improved ANGLE support on Desktop platforms
1526 - ADDED: rcamera module, simpler and more extendable
1527 - ADDED: Support for M3D models and M3D/GLTF animations
1528 - ADDED: Support QOA audio format (import/export)
1529 - ADDED: rl_gputex module for compressed textures loading
1530 - REDESIGNED: rlgl module for automatic render-batch limits checking
1531 - REDESIGNED: rshapes module to minimize the rlgl dependency
1532
1533Detailed changes:
1534[core] ADDED: RAYLIB_VERSION_* values to raylib.h (#2856) by @RobLoach
1535[core] ADDED: Basic gamepad support for Android (#2709) by @deniska
1536[core] ADDED: Support CAPS/NUM lock keys registering if locked
1537[core] ADDED: _GNU_SOURCE define on Linux (#2729)
1538[core] ADDED: SetWindowIcons() to set multiple icon image sizes
1539[core] `WARNING`: RENAMED: Exported raylib version symbol to raylib_version #2671
1540[core] REMOVED: Touch points on touch up events on Android (#2711) by @deniska
1541[core] REVIEWED: Window position setup on InitWindow() (#2732) by @RandomErrorMessage
1542[core] REVIEWED: Touchscreen input related functions on Android (#2702) by @deniska
1543[core] REVIEWED: Viewport scaling on Android after context rebind (#2703) by @deniska
1544[core] REVIEWED: ScanDirectoryFilesRecursively() (#2704)
1545[core] REVIEWED: Gamepad mappings with latest gamecontrollerdb (#2725)
1546[core] REVIEWED: Monitor order check on app initialization
1547[core] REVIEWED: Application monitor when opening (#2728, #2731) by @RandomErrorMessage
1548[core] REVIEWED: Gestures module to use GetTime() if available (#2733) by @RobLoach
1549[core] REVIEWED: Resolve GLFW3 some symbols re-definition of windows.h in glfw3native (#2643) by @daipom
1550[core] REVIEWED: OpenURL(), string buffer too short sometimes
1551[core] REVIEWED: GetRandomValue() range limit warning (#2800) by @Pere001
1552[core] REVIEWED: UnloadDirectoryFiles()
1553[core] REVIEWED: GetKeyPressed(), out of range issue (#2814) by @daipom
1554[core] REVIEWED: GetTime(), renamed variable 'time' to 'nanoSeconds' (#2816) by @jtainer
1555[core] REVIEWED: LoadShaderFromMemory(), issue with shader linkage
1556[core] REVIEWED: Avoid possible gamepad index as -1 (#2839)
1557[core] REVIEWED: SetShaderValue*(), avoid setup uniforms for invalid locations
1558[core] REVIEWED: GetClipboardText() on PLATFORM_WEB, permissions issues
1559[core] REVIEWED: Initial window position for display-sized fullscreen (#2742) by @daipom
1560[core] REVIEWED: Sticky touches input (#2857) by @ImazighenGhost
1561[core] REVIEWED: Enable GetWindowHandle() on macOS (#2915) by @Not-Nik
1562[core] REVIEWED: Window position always inits centered in current monitor
1563[core] REVIEWED: IsWindowFocused() to consider Android App state (#2935)
1564[core] REVIEWED: GetMonitorWidth() and GetMonitorHeight() (#2934)
1565[core] REVIEWED: GetWindowHandle() to return Linux window (#2938)
1566[core] REVIEWED: WindowDropCallback(), additional security check (#2943)
1567[core] REVIEWED: Security checks for emscripten_run_script() (#2954)
1568[utils] REVIEWED: TraceLog() message size limit overflow
1569[rcamera] REDESIGNED: New implementation from scratch (#2563) by @Crydsch
1570[rcamera] REVIEWED: Make orbital camera work as expected (#2926) by @JeffM2501
1571[rcamera] REVIEWED: Multiple reviews on the new implementation
1572[rcamera] ADDED: UpdateCameraPro(), supporting custom user inputs
1573[rlgl] ADDED: OpenGL ES 2.0 support on PLATFORM_DESKTOP (#2840) by @wtnbgo
1574[rlgl] ADDED: Separate blending modes for color and alpha, BLEND_CUSTOM_SEPARATE (#2741)
1575[rlgl] ADDED: rlSetBlendFactorsSeparate and custom blend mode modification checks (#2741) by @pure01fx
1576[rlgl] ADDED: RL_TEXTURE_MIPMAP_BIAS_RATIO support to `rlTextureParameters()` for OpenGL 3.3 #2674
1577[rlgl] ADDED: rlCubemapParameters() (#2862) by @GithubPrankster
1578[rlgl] ADDED: rlSetCullFace() (#2797) by @jtainer
1579[rlgl] REMOVED: Mipmaps software generation for OpenGL 1.1
1580[rlgl] REVIEWED: Check for extensions before enabling them (#2706) by @Not-Nik
1581[rlgl] REVIEWED: SSBO usage to avoid long long data types
1582[rlgl] REVIEWED: Enable DXT compression on __APPLE__ targets (#2694) by @Not-Nik
1583[rlgl] REVIEWED: enums exposed and description comments
1584[rlgl] REVIEWED: rlBindImageTexture(), correct data types (#2808) by @planetis-m
1585[rlgl] REVIEWED: rlMultMatrixf(), use const pointer (#2807) by @planetis-m
1586[rlgl] REVIEWED: Expose OpenGL blending mode factors and functions/equations
1587[rlgl] REVIEWED: rLoadTextureDepth(), issue with depth textures on WebGL (#2824)
1588[rlgl] REVIEWED: rlUnloadFramebuffer() (#2937)
1589[raymath] ADDED: Vector2LineAngle() (#2887)
1590[raymath] REVIEWED: Vector2Angle() (#2829, #2832) by @AlxHnr, @planetis-m
1591[shapes] ADDED: CheckCollisionPointPoly() (#2685) by @acejacek
1592[shapes] REVIEWED: DrawPixel*(), use RL_QUADS/RL_TRIANGLES (#2750) by @hatkidchan
1593[shapes] REVIEWED: DrawLineBezier*(), fix bezier line breaking (#2735, #2767) by @nobytesgiven
1594[textures] ADDED: ColorBrightness()
1595[textures] ADDED: ColorTint()
1596[textures] ADDED: ColorContrast()
1597[textures] ADDED: Support for PNM images (.ppm, .pgm)
1598[textures] ADDED: GenImagePerlinNoise()
1599[textures] ADDED: GenImageText(), generate grayscale image from text byte data
1600[textures] ADDED: ImageDrawCircleLines(), ImageDrawCircleLinesV() (#2713) by @RobLoach
1601[textures] ADDED: ImageBlurGaussian() (#2770) by @nobytesgiven
1602[textures] REVIEWED: Image fileformat support: PIC, PNM
1603[textures] REVIEWED: ImageTextEx() and ImageDrawTextEx() scaling (#2756) by @hatkidchan
1604[textures] `WARNING`: REMOVED: DrawTextureQuad()
1605[textures] `WARNING`: REMOVED: DrawTexturePoly(), function moved to example: `textures_polygon`
1606[textures] `WARNING`: REMOVED: DrawTextureTiled(),function implementation moved to the textures_tiled.c
1607[text] ADDED: GetCodepointPrevious()
1608[text] ADDED: UnloadUTF8(), aligned with LoadUTF8()
1609[text] `WARNING`: RENAMED: TextCodepointsToUTF8() to LoadUTF8()
1610[text] `WARNING`: RENAMED: GetCodepoint() -> GetCodepointNext()
1611[text] REDESIGNED: GetCodepointNext()
1612[text] REVIEWED: MeasureTextEx(), avoid crash on bad data
1613[text] REVIEWED: UnloadFontData(), avoid crash on invalid font data
1614[models] ADDED: Support M3D model file format (meshes and materials) (#2648) by @bztsrc
1615[models] ADDED: Support for M3D animations (#2648) by @bztsrc
1616[models] ADDED: GLTF animation support (#2844) by @charles-l
1617[models] ADDED: DrawCapsule() and DrawCapsuleWires() (#2761) by @IanBand
1618[models] ADDED: LoadMaterials(), MTL files loading, same code as OBJ loader (#2872) by @JeffM2501
1619[models] `WARNING`: REMOVED: UnloadModelKeepMeshes()
1620[models] `WARNING`: REMOVED: DrawCubeTexture(), DrawCubeTextureRec(), functions moved to new example: `models_draw_cube_texture`
1621[models] REVIEWED: DrawMesh(), using SHADER_LOC_COLOR_SPECULAR as a material map (#2908) by @haved
1622[models] REVIEWED: LoadM3D() vertex color support (#2878) by @GithubPrankster, @bztsrc
1623[models] REVIEWED: GenMeshHeightmap() (#2716)
1624[models] REVIEWED: LoadIQM() (#2676)
1625[models] REVIEWED: Simplify .vox signature check (#2752) by @CrezyDud
1626[models] REVIEWED: LoadIQM(), support bone names loading if available (#2882) by @PencilAmazing
1627[models] REVIEWED: GenMeshTangents(), avoid crash on missing texcoords data (#2927)
1628[audio] ADDED: Full support for QOA audio file format
1629[audio] ADDED: Mixed audio processor (#2929) by @hatkidchan
1630[audio] ADDED: IsWaveReady()`, IsSoundReady(), IsMusicReady() (#2892) by @RobLoach
1631[audio] `WARNING`: REMOVED: Multichannel audio API: PlaySoundMulti(), StopSoundMulti()
1632[audio] REVIEWED: Clear PCM buffer state when closing audio device (#2736) by @veins1
1633[audio] REVIEWED: Android backend selected (#2118, #2875) by @planetis-m
1634[audio] REVIEWED: Change default threading model for COM objects in miniaudio
1635[multi] ADDED: IsShaderReady(), IsImageReady(), IsFontReady() (#2892) by @RobLoach
1636[multi] ADDED: IsModelReady(), IsMaterialReady(), IsTextureReady(), IsRenderTextureReady() (#2895) by @RobLoach
1637[multi] REVIEWED: Multiple code/comment typos by @sDos280
1638[multi] REVIEWED: Grammar mistakes and typos (#2914) by @stickM4N
1639[multi] REVIEWED: Use TRACELOG() macro instead of TraceLog() in internal modules (#2881) by @RobLoach
1640[examples] ADDED: textures_textured_curve (#2821) by @JeffM2501
1641[examples] ADDED: models_draw_cube_texture
1642[examples] ADDED: models_loading_m3d (#2648) by @bztsrc
1643[examples] ADDED: shaders_write_depth (#2836) by @BugraAlptekinSari
1644[examples] ADDED: shaders_hybrid_render (#2919) by @BugraAlptekinSari
1645[examples] REMOVED: audio_multichannel_sound
1646[examples] RENAMED: Several shaders for naming consistency (#2707)
1647[examples] RENAMED: lighting_instanced.fs to lighting_instancing.fs (glsl100) (#2805) by @gtrxAC
1648[examples] REVIEWED: core_custom_logging.c (#2692) by @hartmannathan
1649[examples] REVIEWED: core_camera_2d_platformer (#2687) by @skylar779
1650[examples] REVIEWED: core_input_gamepad.c (#2903) by @planetis-m
1651[examples] REVIEWED: core_custom_frame_control
1652[examples] REVIEWED: core_drop_files (#2943)
1653[examples] REVIEWED: text_rectangle_bounds (#2746) by @SzieberthAdam
1654[examples] REVIEWED: textures_image_processing, added gaussian blurring (#2775) by @nobytesgiven
1655[examples] REVIEWED: models_billboard, highlighting rotation and draw order (#2779) by @nobytesgiven
1656[examples] REVIEWED: core_loading_thread, join thread on completion (#2845) by @planetis-m
1657[examples] REVIEWED: models_loading_gltf
1658[examples] REVIEWED: Shader lighting.fs for GLSL120 (#2651)
1659[examples] REVIEWED: text_codepoints_loading.c
1660[parser] REVIEWED: raylib-parser Makefile (#2765) by @Peter0x44
1661[build] ADDED: Packaging for distros with deb-based and rpm-based packages (#2877) by @KOLANICH
1662[build] ADDED: Linkage library -latomic on Linux (only required for ARM32)
1663[build] ADDED: Required frameworks on macOS (#2793) by @SpexGuy
1664[build] ADDED: WASM support for Zig build (#2901) by @Not-Nik
1665[build] ADDED: New raylib examples as VS2022 project (to raylib solution)
1666[build] REVIEWED: config.h format and inconsistencies
1667[build] REVIEWED: Zig build to latest master, avoid deprecated functions (#2910) by @star-tek-mb
1668[build] REVIEWED: CMake project template to easily target raylib version (#2700) by @RobLoach
1669[build] REVIEWED: PATH for PLATFORM_WEB target (#2647) by @futureapricot
1670[build] REVIEWED: build.zig to let user decide how to set build mode and linker fixes by @InKryption
1671[build] REVIEWED: Deprecation error on Android API higher than 23 (#2778) by @anggape
1672[build] REVIEWED: Android x86 Architecture name (#2783) by @IsaacTCB
1673[build] REVIEWED: examples/build.zig for the latest Zig version (#2786) by @RomanAkberov
1674[utils] REVIEWED: ExportDataAsCode() data types (#2787) by @RGDTAB
1675[build] REVIEWED: Makefile emscripten path (#2785) by @Julianiolo
1676[build] REVIEWED: Several compilation warnings (for strict rules)
1677[build] REVIEWED: All github workflows using deprecated actions
1678[build] REVIEWED: CMake when compiling for web (#2820) by @object71
1679[build] REVIEWED: DLL build on Windows (#2951) by @Skaytacium
1680[build] REVIEWED: Avoid MSVC warnings in raylib project (#2871) by @JeffM2501
1681[build] REVIEWED: Paths in .bat files to build examples (#2870) by @masoudd
1682[build] REVIEWED: CMake, use GLVND for old cmake versions (#2826) by @simendsjo
1683[build] REVIEWED: Makefile, multiple tweaks
1684[build] REVIEWED: CI action: linux_examples.yml
1685[build] REVIEWED: CI action: cmake.yml
1686[bindings] ADDED: h-raylib (Haskell) by @Anut-py
1687[bindings] ADDED: raylib-c3 (C3) by @Its-Kenta
1688[bindings] ADDED: raylib-umka (Umka) by @RobLoach
1689[bindings] ADDED: chez-raylib (Chez Scheme) by @Yunoinsky
1690[bindings] ADDED: raylib-python-ctypes (Python) by @sDos280
1691[bindings] ADDED: claylib (Common Lisp) by @shelvick
1692[bindings] ADDED: raylib-vapi (Vala) by @lxmcf
1693[bindings] ADDED: TurboRaylib (Object Pascal) by @turborium
1694[bindings] ADDED: Kaylib (Kotlin/Native) by @Its-Kenta
1695[bindings] ADDED: Raylib-Nelua (Nelua) by @Its-Kenta
1696[bindings] ADDED: Cyber (Cyber) by @fubark
1697[bindings] ADDED: raylib-sunder (Sunder) by @ashn-dot-dev
1698[bindings] ADDED: raylib BQN (#2962) by @Brian-ED
1699[misc] REVIEWED: Update external libraries to latest versions
1700
1701-------------------------------------------------------------------------
1702Release:     raylib 4.2 (11 August 2022)
1703-------------------------------------------------------------------------
1704KEY CHANGES:
1705 - REMOVED: extras libraries (raygui, physac, rrem, reasings, raudio.h) moved to independent separate repos
1706 - UPDATED: examples: Added creation and update raylib versions and assigned **DIFFICULTY LEVELS**!
1707 - rres 1.0: A custom resource-processing and packaging file format, including tooling and raylib integration examples
1708 - raygui 3.2: New version of the immediate-mode gui system for tools development with raylib
1709 - raylib_parser: Multiple improvements of the raylib parser to automatize bindings generation
1710 - ADDED: New file system API: Reviewed to be more aligned with raylib conventions and one advance function added
1711 - ADDED: New audio stream processors API (_experimental_): Allowing to add custom audio stream data processors using callbacks
1712
1713Detailed changes:
1714[multi] ADDED: Frequently Asked Questions (FAQ.md)
1715[multi] REVIEWED: Multiple trace log messages
1716[multi] REVIEWED: Avoid some float to double promotions
1717[multi] REVIEWED: Some functions input parametes that should be const
1718[multi] REVIEWED: Variables initialization, all variables are initialized on declaration
1719[multi] REVIEWED: Static array buffers are always re-initialized with memset()
1720[multi] `WARNING`: RENAMED: Some function input parameters from "length" to "size"
1721[core] ADDED: GetApplicatonDirectory() (#2256, #2285, #2290) by @JeffM2501
1722[core] ADDED: raylibVersion symbol, it could be required by some bindings (#2190)
1723[core] ADDED: SetWindowOpacity() (#2254) by @tusharsingh09
1724[core] ADDED: GetRenderWidth() and GetRenderHeight() by @ArnaudValensi
1725[core] ADDED: EnableEventWaiting() and DisableEventWaiting()
1726[core] ADDED: GetFileLength()
1727[core] ADDED: Modules info at initialization
1728[core] ADDED: Support clipboard copy/paste on web
1729[core] ADDED: Support OpenURL() on Android platform (#2396) by @futureapricot
1730[core] ADDED: Support MOUSE_PASSTHROUGH (#2516)
1731[core] ADDED: GetMouseWheelMoveV() (#2517) by @schveiguy
1732[core] `WARNING`: REMOVED: LoadStorageValue() / SaveStorageValue(), moved to example
1733[core] `WARNING`: RENAMED: GetDirectoryFiles() to LoadDirectoryFiles()
1734[core] `WARNING`: RENAMED: `ClearDroppedFiles()` to `UnloadDroppedFiles()`
1735[core] `WARNING`: RENAMED: GetDroppedFiles() to LoadDroppedFiles()
1736[core] `WARNING`: RENAMED: `ClearDirectoryFiles()` to `UnloadDirectoryFiles()`
1737[core] `WARNING`: REDESIGNED: WaitTime() argument from milliseconds to seconds (#2506) by @flashback-fx
1738[core] REVIEWED: GetMonitorWidth()/GetMonitorHeight() by @gulrak
1739[core] REVIEWED: GetDirectoryFiles(), maximum files allocation (#2126) by @ampers0x26
1740[core] REVIEWED: Expose MAX_KEYBOARD_KEYS and MAX_MOUSE_BUTTONS (#2127)
1741[core] REVIEWED: ExportMesh() (#2138)
1742[core] REVIEWED: Fullscreen switch on PLATFORM_WEB
1743[core] REVIEWED: GetMouseWheelMove(), fixed bug
1744[core] REVIEWED: GetApplicationDirectory() on macOS (#2304)
1745[core] REVIEWED: ToggleFullscreen()
1746[core] REVIEWED: Initialize/reset CORE.inputs global state (#2360)
1747[core] REVIEWED: MouseScrollCallback() (#2371)
1748[core] REVIEWED: SwapScreenBuffers() for PLATFORM_DRM
1749[core] REVIEWED: WaitTime(), fix regression causing video stuttering (#2503) by @flashback-fx
1750[core] REVIEWED: Mouse device support on PLATFORM_DRM (#2381)
1751[core] REVIEWED: Support OpenBSD timming functions
1752[core] REVIEWED: Improved boolean definitions (#2485) by @noodlecollie
1753[core] REVIEWED: TakeScreenshot(), use GetWindowScaleDPI() to calculate size in screenshot/recording (#2446) by @gulrak
1754[core] REVIEWED: Remove fps requirement for drm connector selection (#2468) by @Crydsch
1755[core] REVIEWED: IsFileExtension() (#2530)
1756[camera] REVIEWED: Some camera improvements (#2563)
1757[rlgl] ADDED: Premultiplied alpha blend mode (#2342) by @megagrump
1758[rlgl] REVIEWED: VR rendering not taking render target size into account (#2424) by @FireFlyForLife
1759[rlgl] REVIEWED: Set rlgl internal framebuffer (#2420)
1760[rlgl] REVIEWED: rlGetCompressedFormatName()
1761[rlgl] REVIEWED: Display OpenGL 4.3 capabilities with a compile flag (#2124) by @GithubPrankster
1762[rlgl] REVIEWED: rlUpdateTexture()
1763[rlgl] REVIEWED: Minimize buffer overflow probability
1764[rlgl] REVIEWED: Fix scissor mode on macOS (#2170) by @ArnaudValensi
1765[rlgl] REVIEWED: Clear SSBO buffers on loading (#2185)
1766[rlgl] REVIEWED: rlLoadShaderCode(), improved shader loading code
1767[rlgl] REVIEWED: Comment notes about custom blend modes (#2260) by @glorantq
1768[rlgl] REVIEWED: rlGenTextureMipmaps()
1769[rlgl] REVIEWED: rlTextureParameters()
1770[raymath] ADDED: Wrap() (#2522) by @Tekkitslime
1771[raymath] ADDED: Vector2Transform()
1772[raymath] ADDED: Vector2DistanceSqr() (#2376) by @AnilBK
1773[raymath] ADDED: Vector3DistanceSqr() (#2376) by @AnilBK
1774[raymath] ADDED: Vector2ClampValue(), Vector3ClampValue() (#2428) by @saccharineboi
1775[raymath] ADDED: Vector3RotateByAxisAngle() (#2590) by @Crydsch
1776[raymath] `WARNING`: REDESIGNED: Vector2Angle() returns radians instead of degrees (#2193) by @schveiguy
1777[raymath] `WARNING`: REMOVED: MatrixNormalize() (#2412)
1778[raymath] REVIEWED: Fix inverse length in Vector2Normalize() (#2189) by @HarriP
1779[raymath] REVIEWED: Vector2Angle() not working as expected (#2196) by @jdeokkim
1780[raymath] REVIEWED: Vector2Angle() and Vector3Angle() (#2203) by @trikko
1781[raymath] REVIEWED: QuaternionInvert(), code simplified (#2324) by @megagrump
1782[raymath] REVIEWED: QuaternionScale() (#2419) by @tana
1783[raymath] REVIEWED: Vector2Rotate(), optimized (#2340) by @jdeokkim
1784[raymath] REVIEWED: QuaternionFromMatrix(), QuaternionEquals() (#2591) by @kirigirihitomi
1785[raymath] REVIEWED: MatrixRotate*() (#2595, #2599) by @GoodNike
1786[shapes] REVIEWED: CheckCollision*() consistency
1787[shapes] REVIEWED: DrawRectanglePro(), support TRIANGLES drawing
1788[textures] ADDED: Support for QOI image format
1789[textures] REVIEWED: ImageColorTint(), GetImageColor(), ImageDrawRectangleRec(), optimized functions (#2429) by @AnilBK
1790[textures] REVIEWED: LoadTextureFromImage(), allow texture loading with no data transfer
1791[textures] REVIEWED: ImageDraw(), comment to note that f32bit is not supported (#2222)
1792[textures] REVIEWED: DrawTextureNPatch(), avoid batch overflow (#2401) by @JeffM2501
1793[textures] REVIEWED: DrawTextureTiled() (#2173)
1794[textures] REVIEWED: GenImageCellular() (#2178)
1795[textures] REVIEWED: LoadTextureCubemap() (#2223, #2224)
1796[textures] REVIEWED: Export format for float 32bit
1797[textures] REVIEWED: ExportImage(), support export ".jpeg" files
1798[textures] REVIEWED: ColorAlphaBlend() (#2524) by @royqh1979
1799[textures] REVIEWED: ImageResize() (#2572)
1800[textures] REVIEWED: ImageFromImage() (#2594) by @wiertek
1801[text] ADDED: ExportFontAsCode()
1802[text] ADDED: DrawTextCodepoints() (#2308) by @siddharthroy12
1803[text] REVIEWED: TextIsEqual(), protect from NULLs (#2121) by @lukekras
1804[text] REVIEWED: LoadFontEx(), comment to specify how to get the default character set (#2221) by @JeffM2501
1805[text] REVIEWED: GenImageFontAtlas(), increase atlas size guesstimate by @megagrump
1806[text] REVIEWED: GetCodepoint() (#2201)
1807[text] REVIEWED: GenImageFontAtlas() (#2556)
1808[text] REVIEWED: ExportFontAsCode() to use given font padding (#2525) by @TheTophatDemon
1809[models] ADDED: Reference code to load bones id and weight data for animations
1810[models] `WARNING`: REMOVED: GetRayCollisionModel() (#2405)
1811[models] REMOVED: GenMeshBinormals()
1812[models] REVIEWED: External library: vox_loader.h, 64bit issue (#2186)
1813[models] REVIEWED: Material color loading when no texture material is available (#2298) by @royqh1979
1814[models] REVIEWED: Fix Undefined Symbol _ftelli64 in cgltf (#2319) by @audinue
1815[models] REVIEWED: LoadGLTF(), fix memory leak (#2441, #2442) by @leomonta
1816[models] REVIEWED: DrawTriangle3D() batch limits check (#2489)
1817[models] REVIEWED: DrawBillboardPro() (#2494)
1818[models] REVIEWED: DrawMesh*() issue (#2211)
1819[models] REVIEWED: ExportMesh() (#2220)
1820[models] REVIEWED: GenMeshCylinder() (#2225)
1821[audio] `WARNING`: ADDED: rAudioProcessor pointer to AudioStream struct (used by Sound and Music structs)
1822[audio] ADDED: SetSoundPan(), SetMusicPan(), SetAudioStreamPan(), panning support (#2205) by ptarabbia
1823[audio] ADDED: Audio stream input callback (#2212) by ptarabbia
1824[audio] ADDED: Audio stream processors support (#2212) by ptarabbia
1825[audio] REVIEWED: GetMusicTimePlayed(), incorrect value after the stream restarted for XM audio (#2092 #2215) by @ptarabbia
1826[audio] REVIEWED: Turn on interpolation for XM playback (#2216) by @ptarabbia
1827[audio] REVIEWED: Fix crash with delay example (#2472) by @ptarabbia
1828[audio] REVIEWED: PlaySoundMulti() (#2231)
1829[audio] REVIEWED: ExportWaveAsCode()
1830[audio] REVIEWED: UpdateMusicStream(), reduce dynamic allocations (#2532) by @dbechrd
1831[audio] REVIEWED: UpdateMusicStream() to support proper stream looping (#2579) by @veins1
1832[utils] ADDED: ExportDataAsCode()
1833[utils] REVIEWED: Force flush stdout after trace messages (#2465) by @nagy
1834[easings] ADDED: Function descriptions (#2471) by @RobLoach
1835[camera] REVIEWED: Fix free camera panning in the wrong direction (#2347) by @DavidLyhedDanielsson
1836[examples] ADDED: core_window_should_close
1837[examples] ADDED: core_2d_camera_mouse_zoom (#2583) by @JeffM2501
1838[examples] ADDED: shapes_top_down_lights (#2199) by @JeffM2501
1839[examples] ADDED: textures_fog_of_war
1840[examples] ADDED: textures_gif_player
1841[examples] ADDED: text_codepoints_loading
1842[examples] ADDED: audio_stream_effects
1843[examples] REMOVED: core_quat_conversion, not working properly
1844[examples] REMOVED: raudio_standalone, moved to raudio repo
1845[examples] RENAMED: textures_rectangle -> textures_sprite_anim
1846[examples] REVIEWED: core_input_gamepad, improve joystick visualisation (#2390) by @kristianlm
1847[examples] REVIEWED: textures_draw_tiled
1848[examples] REVIEWED: shaders_mesh_instancing, free allocated matrices (#2425) by @AnilBK
1849[examples] REVIEWED: shaders_raymarching
1850[examples] REVIEWED: audio_raw_stream (#2205) by ptarabbia
1851[examples] REVIEWED: audio_music_stream
1852[examples] REVIEWED: shaders_mesh_instancing, simplified
1853[examples] REVIEWED: shaders_basic_lighting, rlights.h simplified
1854[examples] REVIEWED: All examples descriptions, included creation/update raylib versions
1855[parser] ADDED: Defines to parser (#2269) by @iskolbin
1856[parser] ADDED: Aliases to parser (#2444) by @lazaray
1857[parser] ADDED: Parse struct descriptions (#2214) by @eutro
1858[parser] ADDED: Parse enum descriptions and value descriptions (#2208) by @eutro
1859[parser] ADDED: Lua output format for parser by @iskolbin
1860[parser] ADDED: Makefile for raylib_parser by @iskolbin
1861[parser] ADDED: Support for truncating parser input (#2464) by @lazaray
1862[parser] ADDED: Support for calculated defines to parser (#2463) by @lazaray
1863[parser] REVIEWED: Update parser files (#2125) by @catmanl
1864[parser] REVIEWED: Fix memory leak in parser (#2136) by @ronnieholm
1865[parser] REVIEWED: EscapeBackslashes()
1866[parser] REVIEWED: Parser improvements (#2461 #2462) by @lazaray
1867[bindings] ADDED: License details for BINDINGS
1868[bindings] ADDED: dart-raylib (#2149) by @wolfenrain
1869[bindings] ADDED: raylib-cslo (#2169) by @jasonswearingen
1870[bindings] ADDED: raylib-d (#2194) by @schveiguy
1871[bindings] ADDED: raylib-guile (#2202) by @petelliott
1872[bindings] ADDED: raylib-scopes (#2238) by @salotz
1873[bindings] ADDED: naylib (Nim) (#2386) by @planetis-m
1874[bindings] ADDED: raylib.jl (Julia) (#2403) by @irishgreencitrus
1875[bindings] ADDED: raylib.zig (#2449) by @ryupold
1876[bindings] ADDED: racket-raylib (#2454) by @eutro
1877[bindings] ADDED: raylibr (#2611) by @ramiromagno
1878[bindings] ADDED: Raylib.4.0.Pascal (#2617) by @sysrpl
1879[bindings] REVIEWED: Multiple bindings updated to raylib 4.0
1880[build] ADDED: VS2022 project
1881[build] ADDED: Support macOS by zig build system (#2175)
1882[build] ADDED: Support custom modules selection on compilation
1883[build] ADDED: Minimal web shell for WebAssembly compilation
1884[build] ADDED: BSD support for zig builds (#2332) by @zigster64
1885[build] ADDED: Repology badge (#2367) by @jubalh
1886[build] ADDED: Support DLL compilation with TCC compiler (#2569) by @audinue
1887[build] ADDED: Missing examples to VS2022 examples solution
1888[build] REMOVED: VS2019 project (unmaintained)
1889[build] REMOVED: SUPPORT_MOUSE_CURSOR_POINT config option
1890[build] REVIEWED: Fixed RPi make install (#2217) by @wereii
1891[build] REVIEWED: Fix build results path on Linux and RPi (#2218) by @wereii
1892[build] REVIEWED: Makefiles debug flag
1893[build] REVIEWED: Fixed cross-compilation from x86-64 to RPi (#2233) by @pitpit
1894[build] REVIEWED: All Makefiles, simplified
1895[build] REVIEWED: All Makefiles, improve organization
1896[build] REVIEWED: All Makefiles, support CUSTOM_CFLAGS
1897[build] REVIEWED: Fixed compiling for Android using CMake (#2270) by @hero2002
1898[build] REVIEWED: Make zig build functionality available to zig programs (#2271) by @Not-Nik
1899[build] REVIEWED: Update CMake project template with docs and web (#2274) by @RobLoach
1900[build] REVIEWED: Update VSCode project to work with latest makefile and web (#2296) by @phil-shenk
1901[build] REVIEWED: Support audio examples compilation with external glfw (#2329) by @locriacyber
1902[build] REVIEWED: Fix "make clean" target failing when shell is not cmd (#2338) by @Peter0x44
1903[build] REVIEWED: Makefile linkage -latomic, required by miniaudio on ARM 32bit #2452
1904[build] REVIEWED: Update raylib-config.cmake (#2374) by @marcogmaia
1905[build] REVIEWED: Simplify build.zig to not require user to specify raylib path (#2383) by @Hejsil
1906[build] REVIEWED: Fix OpenGL 4.3 graphics option in CMake (#2427) by @GoldenThumbs
1907[extras] `WARNING`: REMOVED: physac from raylib sources/examples, use github.com/raysan5/physac
1908[extras] `WARNING`: REMOVED: raygui from raylib/src/extras, use github.com/raysan5/raygui
1909[extras] `WARNING`: REMOVED: rmem from raylib/src/extras, moved to github.com/raylib-extras/rmem
1910[extras] `WARNING`: REMOVED: easings from raylib/src/extras, moved to github.com/raylib-extras/reasings
1911[extras] `WARNING`: REMOVED: raudio.h from raylib/src, moved to github.com/raysan5/raudio
1912[misc] REVIEWED: Update some external libraries to latest versions
1913
1914-------------------------------------------------------------------------
1915Release:     raylib 4.0 - 8th Anniversary Edition (05 November 2021)
1916-------------------------------------------------------------------------
1917KEY CHANGES:
1918 - Naming consistency and coherency: Complete review of the library: syntax, naming, comments, decriptions, logs...
1919 - Event Automation System: Support for input events recording and automatic re-playing, useful for automated testing and more!
1920 - Custom game-loop control: Intended for advanced users that want to control the events polling and the timming mechanisms
1921 - rlgl 4.0: Completely decoupling from platform layer and raylib, intended for standalone usage as single-file header-only
1922 - raymath 1.5: Complete review following new conventions, to make it more portable and self-contained
1923 - raygui 3.0: Complete review and official new release, more portable and self-contained, intended for tools development
1924 - raylib_parser: New tool to parse raylib.h and extract all required info into custom output formats (TXT, XML, JSON...)
1925 - Zig and Odin official support
1926
1927Detailed changes:
1928[core] ADDED: Support canvas resizing on web (#1840) by @skylersaleh
1929[core] ADDED: GetMouseDelta() (#1832) by @adricoin2010
1930[core] ADDED: Support additional mouse buttons (#1753) by @lambertwang
1931[core] ADDED: SetRandomSeed() (#1994) by @TommiSinivuo
1932[core] ADDED: GetTouchPointId() #1972
1933[core] ADDED: EncodeDataBase64() and DecodeDataBase64()
1934[core] REMOVED: PLATFORM_UWP, difficult to maintain
1935[core] REMOVED: IsGamepadName()
1936[core] RENAMED: SwapBuffers() to SwapScreenBuffer()
1937[core] RENAMED: Wait() to WaitTime()
1938[core] RENAMED: RayHitInfo to RayCollision (#1781)
1939[core] RENAMED: GetRayCollisionGround() to GetRayCollisionQuad() (#1781)
1940[core] REVIEWED: Support mouse wheel on x-axis (#1948)
1941[core] REVIEWED: DisableCursor() on web by registering an empty mouse click event function in emscripten (#1900) by @grenappels
1942[core] REVIEWED: LoadShader() and default locations and descriptions
1943[core] REVIEWED: LoadShaderFromMemory() (#1851) by @Ruminant
1944[core] REVIEWED: WaitTime(), avoid global variables dependency to make the function is self-contained (#1841)
1945[core] REVIEWED: SetWindowSize() to work on web (#1847) by @nikki93
1946[core] REVIEWED: Raspberry RPI/DRM keyboard blocking render loop (#1879) @luizpestana
1947[core] REVIEWED: Android multi-touch (#1869) by @humbe
1948[core] REVIEWED: Implemented GetGamepadName() for emscripten by @nbarkhina
1949[core] REVIEWED: HighDPI support (#1987) by @ArnaudValensi
1950[core] REVIEWED: KeyCallback(), register keys independently of the actions
1951[rlgl] ADDED: GRAPHIC_API_OPENGL_43
1952[rlgl] ADDED: rlUpdateVertexBufferElements() (#1915)
1953[rlgl] ADDED: rlActiveDrawBuffers() (#1911)
1954[rlgl] ADDED: rlEnableColorBlend()/rlDisableColorBlend()
1955[rlgl] ADDED: rlGetPixelFormatName()
1956[rlgl] REVIEWED: rlUpdateVertexBuffer (#1914) by @630Studios
1957[rlgl] REVIEWED: rlDrawVertexArrayElements() (#1891)
1958[rlgl] REVIEWED: Wrong normal matrix calculation (#1870)
1959[raymath] ADDED: Vector3Angle()
1960[raymath] REVIEWED: QuaternionFromAxisAngle() (#1892)
1961[raymath] REVIEWED: QuaternionToMatrix() returning transposed result. (#1793) by @object71
1962[shapes] ADDED: RenderPolyLinesEx() (#1758) by @lambertwang
1963[shapes] ADDED: DrawSplineBezierCubic() (#2021) by @SAOMDVN
1964[textures] ADDED: GetImageColor() #2024
1965[textures] REMOVED: GenImagePerlinNoise()
1966[textures] RENAMED: GetTextureData() to LoadImageFromTexture()
1967[textures] RENAMED: GetScreenData() to LoadImageFromScreen()
1968[textures] REVIEWED: ExportImage() to use SaveFileData() (#1779)
1969[textures] REVIEWED: LoadImageAnim() #2005
1970[text] ADDED: Security check in case of not valid font
1971[text] ADDED: `GetGlyphInfo()` to get glyph info for a specific codepoint
1972[text] ADDED: `GetGlyphAtlasRec()` to get glyph rectangle within the generated font atlas
1973[text] ADDED: DrawTextPro() with text rotation support, WARNING: DrawTextPro() requires including `rlgl.h`, before it was only dependant on `textures` module.
1974[text] ADDED: UnloadCodepoints() to safely free loaded codepoints
1975[text] REMOVED: DrawTextRec() and DrawTextRecEx(), moved to example, those functions could be very specific depending on user needs so it's better to give the user the full source in case of special requirements instead of allowing a function with +10 input parameters.
1976[text] RENAMED: struct `CharInfo` to `GlyphInfo`, actually that's the correct naming for the data contained. It contains the character glyph metrics and the glyph image; in the past it also contained rectangle within the font atlas but that data has been moved to `Font` struct directly, so, `GlyphInfo` is a more correct name.
1977[text] RENAMED: `CodepointToUtf8()` to `CodepointToUTF8()`, capitalization of UTF-8 is the correct form, it would also require de hyphen but it can be omitted in this case.
1978[text] RENAMED: `TextToUtf8()` to `TextCodepointsToUTF8` for consistency and more detail on the functionality.
1979[text] RENAMED: GetCodepoints() to LoadCodepoints(), now codepoint array data is loaded dynamically instead of reusing a limited static buffer.
1980[text] RENAMED: GetNextCodepoint() to GetCodepoint()
1981[models] ADDED: MagikaVoxel VOX models loading
1982[models] ADDED: GenMeshCone() (#1903)
1983[models] ADDED: GetModelBoundingBox()
1984[models] ADDED: DrawBillboardPro() (#1759) by @nobytesgiven
1985[models] ADDED: DrawCubeTextureRec() (#2001) by @tdgroot
1986[models] ADDED: DrawCylinderEx() and DrawCylinderWiresEx() (#2049) by @Horrowind
1987[models] REMOVED: DrawBillboardEx()
1988[models] RENAMED: MeshBoundingBox() to GetMeshBoundingBox()
1989[models] RENAMED: MeshTangents() to GenMeshTangents()
1990[models] RENAMED: MeshBinormals() to GenMeshBinormals()
1991[models] REVIEWED: GenMeshTangents() (#1877) by @630Studios
1992[models] REVIEWED: CheckCollisionBoxSphere() by @Crydsch
1993[models] REVIEWED: GetRayCollisionQuad() by @Crydsch
1994[models] REVIEWED: LoadGLTF(), fixed missing transformations and nonroot skinning by @MrDiver
1995[models] REVIEWED: LoadGLTF(), rewriten from scratch, removed animations support (broken)
1996[models] REVIEWED: Decouple DrawMesh() and DrawMeshInstanced() (#1958)
1997[models] REVIEWED: Support vertex color attribute for GLTF and IQM (#1790) by @object71
1998[models] REVIEWED: DrawBillboardPro() (#1941) by @GithubPrankster
1999[models] REDESIGNED: Major review of glTF loading functionality (#1849) by @object71
2000[audio] ADDED: SeekMusicStream() (#2006) by @GithubPrankster
2001[audio] REMOVED: GetAudioStreamBufferSizeDefault()
2002[audio] RENAMED: InitAudioStream() to LoadAudioStream()
2003[audio] RENAMED: CloseAudioStream() to UnloadAudioStream()
2004[audio] RENAMED: IsMusicPlaying() to IsMusicStreamPlaying()
2005[audio] REVIEWED: ExportWaveAsCode()
2006[audio] REDESIGNED: Use frameCount on audio instead of sampleCount
2007[utils] REVIEWED: exit() on LOG_FATAL instead of LOG_ERROR (#1796)
2008[examples] ADDED: core_custom_frame_control
2009[examples] ADDED: core_basic_screen_manager
2010[examples] ADDED: core_split_screen (#1806) by @JeffM2501
2011[examples] ADDED: core_smooth_pixelperfect (#1771) by @NotManyIdeasDev
2012[examples] ADDED: shaders_texture_outline (#1883) by @GoldenThumbs
2013[examples] ADDED: models_loading_vox (#1940) by @procfxgen
2014[examples] ADDED: rlgl_compute_shader by @TSnake41 (#2088)
2015[examples] REMOVED: models_material_pbr
2016[examples] REMOVED: models_gltf_animation
2017[examples] REVIEWED: core_3d_picking
2018[examples] REVIEWED: core_input_mouse
2019[examples] REVIEWED: core_vr_simulator, RenderTexture usage
2020[examples] REVIEWED: core_window_letterbox, RenderTexture usage
2021[examples] REVIEWED: shapes_basic_shapes
2022[examples] REVIEWED: shapes_logo_raylib_anim
2023[examples] REVIEWED: textures_to_image
2024[examples] REVIEWED: text_rectangle_bounds
2025[examples] REVIEWED: text_unicode
2026[examples] REVIEWED: text_draw_3d
2027[examples] REVIEWED: models_loading
2028[examples] REVIEWED: models_skybox (#1792) (#1778)
2029[examples] REVIEWED: models_mesh_picking
2030[examples] REVIEWED: models_yaw_pitch_roll
2031[examples] REVIEWED: models_rlgl_solar_system
2032[examples] REVIEWED: shaders_custom_uniform, RenderTexture usage
2033[examples] REVIEWED: shaders_eratosthenes, RenderTexture usage
2034[examples] REVIEWED: shaders_julia_set, RenderTexture usage
2035[examples] REVIEWED: shaders_postprocessing, RenderTexture usage
2036[examples] REVIEWED: shaders_basic_lighting, simplified (#1865)
2037[examples] REVIEWED: audio_raw_stream.c
2038[examples] REVIEWED: raudio_standalone
2039[examples] REVIEWED: raylib_opengl_interop
2040[examples] REVIEWED: rlgl_standalone.c
2041[examples] REVIEWED: Resources licenses
2042[examples] REVIEWED: models resources reorganization
2043[templates] REMOVED: Moved to a separate repo: https://github.com/raysan5/raylib-game-template
2044[build] ADDED: Zig build file (#2014) by @TommiSinivuo
2045[build] ADDED: Android VS2019 solution (#2013) by @Kronka
2046[build] REMOVED: VS2017 project, outdated
2047[build] RENAMED: All raylib modules prefixed with 'r' (core -> rcore)
2048[build] RENAMED: SUPPORT_MOUSE_CURSOR_NATIVE to SUPPORT_MOUSE_CURSOR_POINT
2049[build] REVIEWED: examples/examples_template.c
2050[build] REVIEWED: Makefile to latest Emscripten SDK r23
2051[build] REVIEWED: Makefile for latest Android NDK r32 LTS
2052[build] REVIEWED: raylib resource files
2053[build] Moved some extra raylib libraries to /extras/ directory
2054[*] UPDATED: Multiple bindings to latest version
2055[*] UPDATED: Most external libraries to latest versions (except GLFW)
2056[*] Multiple code improvements and fixes by multiple contributors!
2057
2058-------------------------------------------------------------------------
2059Release:     raylib 3.7 (26 April 2021)
2060-------------------------------------------------------------------------
2061KEY CHANGES:
2062 - [rlgl] REDESIGNED: Greater abstraction level, some functionality moved to core module
2063 - [rlgl] REVIEWED: Instancing and stereo rendering
2064 - [core] REDESIGNED: VR simulator, fbo/shader exposed to user
2065 - [utils] ADDED: File access callbacks system
2066 - [models] ADDED: glTF animations support (#1551) by @object71
2067 - [audio] ADDED: Music streaming support from memory (#1606) by @nezvers
2068 - [*] RENAMED: enum types and enum values for consistency
2069
2070Detailed changes:
2071[core] ADDED: LoadVrStereoConfig()
2072[core] ADDED: UnloadVrStereoConfig()
2073[core] ADDED: BeginVrStereoMode()
2074[core] ADDED: EndVrStereoMode()
2075[core] ADDED: GetCurrentMonitor() (#1485) by @object71
2076[core] ADDED: SetGamepadMappings() (#1506)
2077[core] RENAMED: struct Camera: camera.type to camera.projection
2078[core] RENAMED: LoadShaderCode() to LoadShaderFromMemory() (#1690)
2079[core] RENAMED: SetMatrixProjection() to rlSetMatrixProjection()
2080[core] RENAMED: SetMatrixModelview() to rlSetMatrixModelview()
2081[core] RENAMED: GetMatrixModelview() to rlGetMatrixModelview()
2082[core] RENAMED: GetMatrixProjection() to rlGetMatrixProjection()
2083[core] RENAMED: GetShaderDefault() to rlGetShaderDefault()
2084[core] RENAMED: GetTextureDefault() to rlGetTextureDefault()
2085[core] REMOVED: GetShapesTexture()
2086[core] REMOVED: GetShapesTextureRec()
2087[core] REMOVED: GetMouseCursor()
2088[core] REMOVED: SetTraceLogExit()
2089[core] REVIEWED: GetFileName() and GetDirectoryPath() (#1534) by @gilzoide
2090[core] REVIEWED: Wait() to support FreeBSD (#1618)
2091[core] REVIEWED: HighDPI support on macOS retina (#1510)
2092[core] REDESIGNED: GetFileExtension(), includes the .dot
2093[core] REDESIGNED: IsFileExtension(), includes the .dot
2094[core] REDESIGNED: Compresion API to use sdefl/sinfl libs
2095[rlgl] ADDED: SUPPORT_GL_DETAILS_INFO config flag
2096[rlgl] REMOVED: GenTexture*() functions (#721)
2097[rlgl] REVIEWED: rlLoadShaderDefault()
2098[rlgl] REDESIGNED: rlLoadExtensions(), more details exposed
2099[raymath] REVIEWED: QuaternionFromEuler() (#1651)
2100[raymath] REVIEWED: MatrixRotateZYX() (#1642)
2101[shapes] ADDED: DrawSplineBezierQuad() (#1468) by @epsilon-phase
2102[shapes] ADDED: CheckCollisionLines()
2103[shapes] ADDED: CheckCollisionPointLine() by @mkupiec1
2104[shapes] REVIEWED: CheckCollisionPointTriangle() by @mkupiec1
2105[shapes] REDESIGNED: SetShapesTexture()
2106[shapes] REDESIGNED: DrawCircleSector(), to use float params
2107[shapes] REDESIGNED: DrawCircleSectorLines(), to use float params
2108[shapes] REDESIGNED: DrawRing(), to use float params
2109[shapes] REDESIGNED: DrawRingLines(), to use float params
2110[textures] ADDED: DrawTexturePoly() and example (#1677) by @chriscamacho
2111[textures] ADDED: UnloadImageColors() for allocs consistency
2112[textures] RENAMED: GetImageData() to LoadImageColors()
2113[textures] REVIEWED: ImageClearBackground() and ImageDrawRectangleRec() (#1487) by @JeffM2501
2114[textures] REVIEWED: DrawTexturePro() and DrawRectanglePro() transformations (#1632) by @ChrisDill
2115[text] REDESIGNED: DrawFPS()
2116[models] ADDED: UploadMesh() (#1529)
2117[models] ADDED: UpdateMeshBuffer()
2118[models] ADDED: DrawMesh()
2119[models] ADDED: DrawMeshInstanced()
2120[models] ADDED: UnloadModelAnimations() (#1648) by @object71
2121[models] REMOVED: DrawGizmo()
2122[models] REMOVED: LoadMeshes()
2123[models] REMOVED: MeshNormalsSmooth()
2124[models] REVIEWED: DrawLine3D() (#1643)
2125[audio] REVIEWED: Multichannel sound system (#1548)
2126[audio] REVIEWED: jar_xm library (#1701) by @jmorel33
2127[utils] ADDED: SetLoadFileDataCallback()
2128[utils] ADDED: SetSaveFileDataCallback()
2129[utils] ADDED: SetLoadFileTextCallback()
2130[utils] ADDED: SetSaveFileTextCallback()
2131[examples] ADDED: text_draw_3d (#1689) by @Demizdor
2132[examples] ADDED: textures_poly (#1677) by @chriscamacho
2133[examples] ADDED: models_gltf_model (#1551) by @object71
2134[examples] RENAMED: shaders_rlgl_mesh_instanced to shaders_mesh_intancing
2135[examples] REDESIGNED: shaders_rlgl_mesh_instanced by @moliad
2136[examples] REDESIGNED: core_vr_simulator
2137[examples] REDESIGNED: models_yaw_pitch_roll
2138[build] ADDED: Config flag: SUPPORT_STANDARD_FILEIO
2139[build] ADDED: Config flag: SUPPORT_WINMM_HIGHRES_TIMER (#1641)
2140[build] ADDED: Config flag: SUPPORT_GL_DETAILS_INFO
2141[build] ADDED: Examples projects to VS2019 solution
2142[build] REVIEWED: Makefile to support PLATFORM_RPI (#1580)
2143[build] REVIEWED: Multiple typecast warnings by @JeffM2501
2144[build] REDESIGNED: VS2019 project build paths
2145[build] REDESIGNED: CMake build system by @object71
2146[*] RENAMED: Several functions parameters for consistency
2147[*] UPDATED: Multiple bindings to latest version
2148[*] UPDATED: All external libraries to latest versions
2149[*] Multiple code improvements and fixes by multiple contributors!
2150
2151-------------------------------------------------------------------------
2152Release:     raylib 3.5 - 7th Anniversary Edition (25 December 2020)
2153-------------------------------------------------------------------------
2154KEY CHANGES:
2155 - [core] ADDED: PLATFORM_DRM to support RPI4 and other devices (#1388) by @kernelkinetic
2156 - [core] REDESIGNED: Window states management system through FLAGS
2157 - [rlgl] ADDED: RenderBatch type and related functions to allow custom batching (internal only)
2158 - [rlgl] REDESIGNED: Framebuffers API to support multiple attachment types (#721)
2159 - [textures] REDESIGNED: Image*() functions, big performance improvements (software rendering)
2160 - [*] REVIEWED: Multiple functions to replace file accesses by memory accesses
2161 - [*] ADDED: GitHub Actions CI to support multiple raylib build configurations
2162
2163Detailed changes:
2164[core] ADDED: SetWindowState() / ClearWindowState() -> New flags added!
2165[core] ADDED: IsWindowFocused()
2166[core] ADDED: GetWindowScaleDPI()
2167[core] ADDED: GetMonitorRefreshRate() (#1289) by @Shylie
2168[core] ADDED: IsCursorOnScreen() (#1262) by @ChrisDill
2169[core] ADDED: SetMouseCursor() and GetMouseCursor() for standard Desktop cursors (#1407) by @chances
2170[core] REMOVED: struct RenderTexture2D: depthTexture variable
2171[core] REMOVED: HideWindow() / UnhideWindow() -> Use SetWindowState()
2172[core] REMOVED: DecorateWindow() / UndecorateWindow() -> Use SetWindowState()
2173[core] RENAMED: GetExtension() to GetFileExtension()
2174[core] REVIEWED: Several structs to reduce size and padding
2175[core] REVIEWED: struct Texture maps to Texture2D and TextureCubemap
2176[core] REVIEWED: ToggleFullscreen() (#1287)
2177[core] REVIEWED: InitWindow(), support empty title for window (#1323)
2178[core] REVIEWED: RPI: Mouse movements are bound to the screen resolution (#1392) (#1410) by @kernelkinetic
2179[core] REVIEWED: GetPrevDirectoryPath() fixes on Unix-like systems (#1246) by @ivan-cx
2180[core] REPLACED: rgif.h by msf_gif.h for automatic gif recording
2181[core] REDESIGNED: GetMouseWheelMove() to return float movement for precise scrolling (#1397) by @Doy-lee
2182[core] REDESIGNED: GetKeyPressed(), and added GetCharPressed() (#1336)
2183[core] UWP rework with improvements (#1231) by @Rover656
2184[core] Gamepad axis bug fixes and improvement (#1228) by @mmalecot
2185[core] Updated joystick mappings with latest version of gamecontrollerdb (#1381) by @coderoth
2186[rlgl] Corrected issue with OpenGL 1.1 support
2187[rlgl] ADDED: rlDrawMeshInstanced() (#1318) by @seanpringle
2188[rlgl] ADDED: rlCheckErrors (#1321) by @seanpringle
2189[rlgl] ADDED: BLEND_SET blending mode (#1251) by @RandomErrorMessage
2190[rlgl] ADDED: rlSetLineWidth(), rlGetLineWidth(), rlEnableSmoothLines(), rlDisableSmoothLines() (#1457) by @JeffM2501
2191[rlgl] RENAMED: rlUnproject() to Vector3Unproject() [raymath]
2192[rlgl] REVIEWED: Replace rlglDraw() calls by DrawRenderBatch() internal calls
2193[rlgl] REVIEWED: GenTextureCubemap(), use rlgl functionality only
2194[rlgl] REVIEWED: rlFramebufferAttach() to support texture layers
2195[rlgl] REVIEWED: GenDrawCube() and GenDrawQuad()
2196[rlgl] REVIEWED: Issues with vertex batch overflow (#1223)
2197[rlgl] REVIEWED: rlUpdateTexture(), issue with offsets
2198[rlgl] REDESIGNED: GenTexture*() to use the new fbo API (#721)
2199[raymath] ADDED: Normalize() and Remap() functions (#1247) by @NoorWachid
2200[raymath] ADDED: Vector2Reflect() (#1400) by @daniel-junior-dube
2201[raymath] ADDED: Vector2LengthSqr() and Vector3LengthSqr() (#1248) by @ThePituLegend
2202[raymath] ADDED: Vector2MoveTowards() function (#1233) by @anatagawa
2203[raymath] REVIEWED: Some functions consistency (#1197) by @Not-Nik
2204[raymath] REVIEWED: QuaternionFromVector3ToVector3() (#1263) by @jvocaturo
2205[raymath] REVIEWED: MatrixLookAt(), optimized (#1442) by @RandomErrorMessage
2206[shapes] ADDED: CheckCollisionLines(), by @Elkantor
2207[text] Avoid [textures] functions dependencies
2208[text] ADDED: Config flag: SUPPORT_TEXT_MANIPULATION
2209[text] ADDED: LoadFontFromMemory() (TTF only) (#1327)
2210[text] ADDED: UnloadFontData()
2211[text] RENAMED: FormatText() -> TextFormat()
2212[text] REVIEWED: Font struct, added charsPadding (#1432)
2213[text] REVIEWED: TextJoin()
2214[text] REVIEWED: TextReplace() (#1172)
2215[text] REVIEWED: LoadBMFont() to load data from memory (#1232)
2216[text] REVIEWED: GenImageFontAtlas(), fixed offset (#1171)
2217[text] REDESIGNED: LoadFontData(), reviewed input parameters
2218[text] REDESIGNED: LoadFontDefault(), some code simplifications
2219[text] REDESIGNED: LoadFontFromImage(), avoid LoadImageEx()
2220[text] REDESIGNED: LoadFontData(), avoid GenImageColor(), ImageFormat()
2221[text] REDESIGNED: LoadBMFont(), avoid ImageCopy(), ImageFormat(), ImageAlphaMask()
2222[textures] Move Color functions from [core] to [textures] module
2223[textures] ADDED: ColorAlphaBlend()
2224[textures] ADDED: GetPixelColor()
2225[textures] ADDED: SetPixelColor()
2226[textures] ADDED: LoadImageFromMemory() (#1327)
2227[textures] ADDED: LoadImageAnim() to load animated sequence of images
2228[textures] ADDED: DrawTextureTiled() (#1291) - @Demizdor
2229[textures] ADDED: UpdateTextureRec()
2230[textures] ADDED: UnloadImageColors(), UnloadImagePalette(), UnloadWaveSamples()
2231[textures] REMOVED: Config flag: SUPPORT_IMAGE_DRAWING
2232[textures] REMOVED: LoadImageEx()
2233[textures] REMOVED: LoadImagePro()
2234[textures] REMOVED: GetImageDataNormalized(), not exposed in the API
2235[textures] RENAMED: ImageExtractPalette() to GetImagePalette()
2236[textures] RENAMED: Fade() to ColorAlpha(), added #define for compatibility
2237[textures] RENAMED: GetImageData() -> LoadImageColors()
2238[textures] RENAMED: GetImagePalette() -> LoadImagePalette()
2239[textures] RENAMED: GetWaveData() -> LoadWaveSamples()
2240[textures] REVIEWED: GetPixelDataSize() to consider compressed data properly
2241[textures] REVIEWED: GetTextureData(), allow retrieving 32bit float data
2242[textures] REVIEWED: ImageDrawText*() params order
2243[textures] REVIEWED: ColorAlphaBlend(), support tint color
2244[textures] REVIEWED: ColorAlphaBlend(), integers-version, optimized (#1218)
2245[textures] REVIEWED: ImageDraw(), consider negative source offset properly (#1283)
2246[textures] REVIEWED: ImageDraw(), optimizations test (#1218)
2247[textures] REVIEWED: ImageResizeCanvas(), optimization (#1218)
2248[textures] REVIEWED: ExportImage(), optimized
2249[textures] REVIEWED: ImageAlphaPremultiply(), optimization
2250[textures] REVIEWED: ImageAlphaClear(), minor optimization
2251[textures] REVIEWED: ImageToPOT(), renamed parameter
2252[textures] REVIEWED: ImageCrop() (#1218)
2253[textures] REVIEWED: ImageToPOT() (#1218)
2254[textures] REVIEWED: ImageAlphaCrop() (#1218)
2255[textures] REVIEWED: ExportImage(), optimized (#1218)
2256[textures] REDESIGNED: ImageCrop(), optimized (#1218)
2257[textures] REDESIGNED: ImageRotateCCW(), optimized (#1218)
2258[textures] REDESIGNED: ImageRotateCW(), optimized (#1218)
2259[textures] REDESIGNED: ImageFlipHorizontal(), optimized (#1218)
2260[textures] REDESIGNED: ImageFlipVertical(), optimized (#1218)
2261[textures] REDESIGNED: ImageResizeCanvas(), optimized (#1218)
2262[textures] REDESIGNED: ImageDrawPixel(), optimized
2263[textures] REDESIGNED: ImageDrawLine(), optimized
2264[textures] REDESIGNED: ImageDraw(), optimized (#1218)
2265[textures] REDESIGNED: ImageResize(), optimized (#1218)
2266[textures] REDESIGNED: ImageFromImage(), optimized (#1218)
2267[textures] REDESIGNED: ImageDraw(), optimization (#1218)
2268[textures] REDESIGNED: ImageAlphaClear(), optimized (#1218)
2269[textures] REDESIGNED: ExportImageAsCode() to use memory buffer (#1232)
2270[textures] REDESIGNED: ColorFromHSV()
2271[models] ADDED: DrawTriangle3D() and DrawTriangleStrip3D()
2272[models] ADDED: UnloadModelKeepMeshes()
2273[models] REVIEWED: LoadModel(), avoid loading texcoords and normals from model if not existent
2274[models] REVIEWED: GenMeshCubicmap(), added comments and simplification
2275[models] REVIEWED: GenMeshCubicmap(), fixed generated normals (#1244) by @GoldenThumbs
2276[models] REVIEWED: GenMeshPoly(), fixed buffer overflow (#1269) by @frithrah
2277[models] REVIEWED: LoadOBJ(): Allow for multiple materials in obj files (#1408) by @chriscamacho and @codifies
2278[models] REVIEWED: LoadIQM() materials loading (#1227) by @sikor666
2279[models] REVIEWED: LoadGLTF() to read from memory buffer
2280[models] REVIEWED: UpdateMesh(), fix extra memory allocated when updating color buffer (#1271) by @4yn
2281[models] REVIEWED: MeshNormalsSmooth() (#1317) by @seanpringle
2282[models] REVIEWED: DrawGrid() (#1417)
2283[models] REDESIGNED: ExportMesh() to use memory buffer (#1232)
2284[models] REDESIGNED: LoadIQM() and LoadModelAnimations() to use memory buffers
2285[audio] ADDED: LoadWaveFromMemory() (#1327)
2286[audio] REMOVED: SetMusicLoopCount()
2287[audio] REVIEWED: Several functions, sampleCount vs frameCount (#1423)
2288[audio] REVIEWED: SaveWAV() to use memory write insted of file
2289[audio] REVIEWED: LoadMusicStream(), support WAV music streaming (#1198)
2290[audio] REVIEWED: Support multiple WAV sampleSize for MusicStream (#1340)
2291[audio] REVIEWED: SetAudioBufferPitch()
2292[audio] REDESIGNED: Audio looping system
2293[audio] REDESIGNED: LoadSound(): Use memory loading (WAV, OGG, MP3, FLAC) (#1312)
2294[audio] REDESIGNED: ExportWaveAsCode() to use memory buffers
2295[utils] ADDED: MemAlloc() / MemFree() (#1440)
2296[utils] ADDED: UnloadFileData() / UnloadFileText()
2297[utils] REVIEWED: android_fopen() to support SDCard access
2298[utils] REDESIGNED: SaveFile*() functions to expose file access results (#1420)
2299[rmem] REVIEWED: MemPool and other allocators optimization (#1211) by @assyrianic
2300[examples] ADDED: core/core_window_flags
2301[examples] ADDED: core/core_quat_conversion by @chriscamacho and @codifies
2302[examples] ADDED: textures/textures_blend_modes (#1261) by @accidentalrebel
2303[examples] ADDED: textures/textures_draw_tiled (#1291) by @Demizdor
2304[examples] ADDED: shaders/shaders_hot_reloading (#1198)
2305[examples] ADDED: shaders/shaders_rlgl_mesh_instanced (#1318) by @seanpringle
2306[examples] ADDED: shaders/shaders_multi_sampler2d
2307[examples] ADDED: others/embedded_files_loading
2308[examples] REVIEWED: textures/textures_raw_data (#1286)
2309[examples] REVIEWED: textures/textures_sprite_explosion, replace resources
2310[examples] REVIEWED: textures/textures_particles_blending, replace resources
2311[examples] REVIEWED: textures/textures_image_processing, support mouse
2312[examples] REVIEWED: models/models_skybox to work on OpenGL ES 2.0
2313[examples] REVIEWED: audio/resources, use open license resources
2314[examples] REVIEWED: others/raudio_standalone.c
2315[build] ADDED: New config.h configuration options exposing multiple #define values
2316[build] REMOVED: ANGLE VS2017 template project
2317[build] REVIEWED: All MSVC compile warnings
2318[build] Updated Makefile for web (#1332) by @rfaile313
2319[build] Updated build pipelines to use latest emscripten and Android NDK
2320[build] Updated emscriptem build script to generate .a on WebAssembly
2321[build] Updated Android build for Linux, supporting ANDROID_NDK at compile time by @branlix3000
2322[build] Updated VSCode project template tasks
2323[build] Updated VS2017.UWP project template by @Rover656
2324[build] Updated Android build pipeline
2325[build] REMOVED: AppVeyor and Travis CI build systems
2326[*] Moved raysan5/raylib/games to independent repo: raysan5/raylib-games
2327[*] Replaced several examples resources with more open licensed alternatives
2328[*] Updated BINDINGS.md with NEW bindings and added raylib version binding!
2329[*] Updated all external libraries to latest versions
2330[*] Multiple code improvements and small fixes
2331
2332-----------------------------------------------
2333Release:     raylib 3.0 (01 April 2020)
2334-----------------------------------------------
2335KEY CHANGES:
2336 - Global context states used on all modules.
2337 - Custom memory allocators for all modules and dependencies.
2338 - Centralized file access system and memory data loading.
2339 - Structures reviewed to reduce size and always be used as pass-by-value.
2340 - Tracelog messages completely reviewed and categorized.
2341 - raudio module reviewed to accomodate new Music struct and new miniaudio.
2342 - text module reviewed to improve fonts generation and text management functions.
2343 - Multiple new examples added and categorized examples table.
2344 - GitHub Actions CI implemented for Windows, Linux and macOS.
2345
2346Detailed changes:
2347[build] ADDED: VS2017.ANGLE project, by @msmshazan
2348[build] ADDED: VS2017 project support for x64 platform configuration
2349[build] ADDED: Makefile for Android building on macOS, by @Yunoinsky
2350[build] ADDED: Makefile for Android building on Linux, by @pamarcos
2351[build] REMOVED: VS2015 project
2352[build] REVIEWED: VSCode project
2353[build] REVIEWED: Makefile build system
2354[build] REVIEWED: Android building, by @NimbusFox
2355[build] REVIEWED: Compilation with CLion IDE, by @Rover656
2356[build] REVIEWED: Generation of web examples, by @pamarcos
2357[build] REVIEWED: Makefiles path to 'shell.html', by @niorad
2358[build] REVIEWED: VS2017 64bit compilation issues, by @spec-chum
2359[build] REVIEWED: Multiple fixes on projects building, by @ChrisDill, @JuDelCo, @electronstudio
2360[core] ADDED: Support touch/mouse indistinctly
2361[core] ADDED: FLAG_WINDOW_ALWAYS_RUN to avoid pause on minimize
2362[core] ADDED: Config flag SUPPORT_HALFBUSY_WAIT_LOOP
2363[core] ADDED: RPI mouse cursor point support on native mode
2364[core] ADDED: GetWorldToScreen2D()- Get screen space position for a 2d camera world space position, by @arvyy
2365[core] ADDED: GetScreenToWorld2D() - Get world space position for a 2d camera screen space position, by @arvyy
2366[core] ADDED: GetWorldToScreenEx() - Get size position for a 3d world space position
2367[core] ADDED: DirectoryExists() - Check if a directory path exists
2368[core] ADDED: GetPrevDirectoryPath() - Get previous directory path for a given path
2369[core] ADDED: CompressData() - Compress data (DEFLATE algorythm)
2370[core] ADDED: DecompressData() - Decompress data (DEFLATE algorythm)
2371[core] ADDED: GetWindowPosition() - Get window position XY on monitor
2372[core] ADDED: LoadFileData() - Load file data as byte array (read)
2373[core] ADDED: SaveFileData() - Save data to file from byte array (write)
2374[core] ADDED: LoadFileText() - Load text data from file (read), returns a '\0' terminated string
2375[core] ADDED: SaveFileText() - Save text data to file (write), string must be '\0' terminated
2376[core] REMOVED: Show raylib logo at initialization
2377[core] REVIEWED: GetFileName(), security checks
2378[core] REVIEWED: LoadStorageValue(), by @danimartin82
2379[core] REVIEWED: SaveStorageValue(), by @danimartin82
2380[core] REVIEWED: IsMouseButtonReleased(), when press/release events come too fast, by @oswjk
2381[core] REVIEWED: SetWindowMonitor(), by @DropsOfSerenity
2382[core] REVIEWED: IsFileExtension() to be case-insensitive
2383[core] REVIEWED: IsFileExtension() when checking no-extension files
2384[core] REVIEWED: Default font scale filter for HighDPI mode
2385[core] REVIEWED: Touch input scaling for PLATFORM_WEB
2386[core] REVIEWED: RPI input system, by @DarkElvenAngel
2387[core] REVIEWED: RPI input threads issues
2388[core] REVIEWED: OpenGL extensions loading and freeing
2389[core] REVIEWED: GetDirectoryPath()
2390[core] REVIEWED: Camera2D behavior, by @arvyy
2391[core] REVIEWED: OpenGL ES 2.0 extensions check
2392[rlgl] ADDED: Flags to allow frustrum culling near/far distance configuration at compile time
2393[rlgl] ADDED: Flags to sllow MAX_BATCH_BUFFERING config at compile time
2394[rlgl] ADDED: GetMatrixProjection(), by @chriscamacho
2395[rlgl] ADDED: rlUpdateMeshAt() - Update vertex or index data on GPU, at index, by @brankoku
2396[rlgl] REVIEWED: Vertex padding not zeroed for quads, by @kawa-yoiko
2397[rlgl] REVIEWED: Read texture data as RGBA from FBO on GLES 2.0
2398[rlgl] REVIEWED: LoadShaderCode() for const correctness, by @heretique
2399[rlgl] REVIEWED: rlLoadTexture()
2400[rlgl] REVIEWED: rlReadTexturePixels()
2401[rlgl] REVIEWED: rlUpdateMesh() to supports updating indices, by @brankoku
2402[rlgl] REVIEWED: GenTextureCubemap(), renamed parameters for consistency
2403[rlgl] REVIEWED: HDR pixels loading
2404[raymath] ADDED: MatrixRotateXYZ(), by @chriscamacho
2405[raymath] RENAMED: Vector3Multiply() to Vector3Scale()
2406[camera] REVIEWED: Free camera pitch, by @chriscamacho
2407[camera] REVIEWED: Camera not working properly at z-align, by @Ushio
2408[shapes] ADDED: DrawTriangleStrip() - Draw a triangle strip defined by points
2409[shapes] ADDED: DrawEllipse() - Draw ellipse
2410[shapes] ADDED: DrawEllipseLines() - Draw ellipse outline
2411[shapes] ADDED: DrawPolyLines() - Draw a polygon outline of n sides
2412[shapes] REVIEWED: DrawPoly() shape rendering, by @AlexHCC
2413[textures] ADDED: LoadAnimatedGIF() - Load animated GIF file
2414[textures] ADDED: GetImageAlphaBorder() - Get image alpha border rectangle
2415[textures] ADDED: ImageFromImage() - Create an image from another image piece
2416[textures] ADDED: ImageClearBackground(), by @iamsouravgupta
2417[textures] ADDED: ImageDrawPixel(), by @iamsouravgupta
2418[textures] ADDED: ImageDrawCircle(), by @iamsouravgupta
2419[textures] ADDED: ImageDrawLineEx(), by @iamsouravgupta
2420[textures] ADDED: ImageDrawPixelV(), by @RobLoach
2421[textures] ADDED: ImageDrawCircleV(), by @RobLoach
2422[textures] ADDED: ImageDrawLineV(), by @RobLoach
2423[textures] ADDED: ImageDrawRectangleV(), by @RobLoach
2424[textures] ADDED: ImageDrawRectangleRec(), by @RobLoach
2425[textures] REVIEWED: ImageDrawPixel(), by @RobLoach
2426[textures] REVIEWED: ImageDrawLine(), by @RobLoach
2427[textures] REVIEWED: ImageDrawCircle(), by @RobLoach
2428[textures] REVIEWED: ImageDrawRectangle(), by @RobLoach
2429[textures] REVIEWED: ImageDraw(), now it supports color tint parameter
2430[textures] REVIEWED: ImageResizeCanvas()
2431[textures] REVIEWED: ImageCrop() with security checks
2432[textures] REVIEWED: ImageAlphaMask()
2433[textures] REVIEWED: ImageDrawRectangleLines()
2434[textures] REVIEWED: GetImageData()
2435[text] ADDED: TextCopy() - Copy one string to another, returns bytes copied
2436[text] ADDED: GetCodepoints() - Get all codepoints in a string
2437[text] ADDED: CodepointToUtf8() - Encode codepoint into utf8 text
2438[text] ADDED: DrawTextCodepoint() - Draw one character (codepoint)
2439[text] RENAMED: LoadDefaultFont() -> LoadFontDefault()
2440[text] RENAMED: TextCountCodepoints() -> GetCodepointsCount()
2441[text] REVIEWED: TextFormat(), to support caching, by @brankoku
2442[text] REVIEWED: LoadFontData(), generate empty image for space character
2443[text] REVIEWED: TextSplit()
2444[text] REVIEWED: TextToInteger()
2445[text] REVIEWED: GetNextCodepoint(), renamed parameters for clarity
2446[text] REVIEWED: GenImageFontAtlas(), improved atlas size computing
2447[text] REDESIGNED: struct Font, character rectangles have been moved out from CharInfo to Font
2448[text] REDESIGNED: struct CharInfo, now includes directly an Image of the glyph
2449[text] REDESIGNED: GenImageFontAtlas(), additional recs parameter added
2450[text] REDESIGNED: ImageTextEx(), to avoid font retrieval from GPU
2451[models] ADDED: Support rlPushMatrix() and rlPopMatrix() on mesh drawing
2452[models] ADDED: DrawPoint3D() - Draw a point in 3D space, actually a small line, by @ProfJski
2453[models] ADDED: Multi texture support for materials in GLTF format, by @Gamerfiend, @chriscamacho
2454[models] REVIEWED: LoadGLTF(), fixed memory leak, by @jubalh
2455[models] REVIEWED: LoadIQM(), support multiple animations loading, by @culacant
2456[models] REVIEWED: GetCollisionRayModel(), to avoid pointers
2457[models] REVIEWED: CheckCollisionRay*(), parameters renamed
2458[models] REVIEWED: UnloadMesh(), to avoid pointers
2459[models] REVIEWED: LoadModel(), memory initialization
2460[models] REVIEWED: UpdateModelAnimation(), added security checks
2461[models] REVIEWED: Multiple fixes on models loading, by @jubalh
2462[models] REVIEWED: Normals updated when using animated meshes, by @@las3rlars
2463[models] REVIEWED: Compilation when the SUPPORT_MESH_GENERATION not set, by @@Elkantor
2464[raudio] ADDED: Multi-channel audio playing, by @chriscamacho
2465[raudio] REMOVED: LoadWaveEx()
2466[raudio] RENAMED: IsAudioBufferProcessed() to IsAudioStreamProcessed()
2467[raudio] REVIEWED: Ensure .xm playback starts in the right place, by @illegalinstruction
2468[raudio] REVIEWED: Fix short non-looping sounds, by @jbosh
2469[raudio] REVIEWED: Modules playing time to full length
2470[raudio] REDESIGNED: Replaced Music pointer by struct
2471[raudio] REDESIGNED: Removed sampleLeft from Music struct
2472[examples] ADDED: core_scissor_test, by @ChrisDill
2473[examples] ADDED: core_2d_camera_platformer, by @arvyy
2474[examples] ADDED: textures_mouse_painting, by @ChrisDill
2475[examples] ADDED: models_waving_cubes, by @codecat
2476[examples] ADDED: models_solar_system, by @aldrinmartoq
2477[examples] ADDED: shaders_fog, by @chriscamacho
2478[examples] ADDED: shaders_texture_waves, by @anatagawa
2479[examples] ADDED: shaders_basic_lighting, by @chriscamacho
2480[examples] ADDED: shaders_simple_mask, by @chriscamacho
2481[examples] ADDED: audio_multichannel_sound, by @chriscamacho
2482[examples] ADDED: shaders_spotlight, by @chriscamacho
2483[examples] RENAMED: text_sprite_font > text_font_spritefont
2484[examples] RENAMED: text_ttf_loading > text_font_filters
2485[examples] RENAMED: text_bmfont_ttf > text_font_loading
2486[examples] REMOVED: models_obj_viewer
2487[examples] REMOVED: models_solar_system
2488[examples] REVIEWED: models_obj_loading > models_loading
2489[examples] REVIEWED: models_materials_pbr, shader issues
2490[examples] REVIEWED: core_window_letterbox, detailed explanation, by @jotac0
2491[examples] REVIEWED: core_window_letterbox, virtual mouse, by @anatagawa
2492[games] ADDED: GGJ2020 game - RE-PAIR
2493[*] Misc fixes and tweaks, by @yaram, @oraoto, @zatherz, @piecedigital, @Shylie
2494[*] Update ALL supported projects (Notepad++, VS2017)
2495[*] Update ALL external libraries to latest versions (29.Jan.2020)
2496[*] Update ALL examples and games
2497[*] Update BINDINGS list
2498
2499-----------------------------------------------
2500Release:     raylib 2.5 (May 2019)
2501-----------------------------------------------
2502KEY CHANGES:
2503 - [core] Redesigned Gamepad mechanism, now common to all platforms and gamepads
2504 - [core] HighDPI monitors support with automatic content scaling
2505 - [rlgl] Complete module redesign to use one single internal buffer
2506 - [rlgl] VR system redesign to allow custom device parameters and distortion shader
2507 - [shapes] New drawing shapes available: CircleSector, Ring and RectangleRounded
2508 - [text] New text management API (multiple functions)
2509 - [text] Full Unicode support (utf8 text)
2510 - [textures] Cubemap textures support
2511 - [textures] Quad and N-Patch drawing
2512 - [models] Skeletal model animation support
2513 - [models] Support multiple meshes per model
2514 - [models] Support glTF model loading
2515
2516Detailed changes:
2517[build] REVIEWED: Default raylib and examples Makefile
2518[build] REVIEWED: Notepad++ NppExec scripts
2519[build] REVIEWED: VS2015 and VS2017 projects
2520[build] REVIEWED: Android APK build pipeline
2521[core] Converted most #defined values as enum values
2522[core] Complete redesign of RPI input system to use evdev events
2523[core] ADDED: IsWindowResized() - Check if window has been resized
2524[core] ADDED: IsWindowHidden() - Check if window is currently hidden
2525[core] ADDED: UnhideWindow() - Show the window
2526[core] ADDED: HideWindow() - Hide the window
2527[core] ADDED: GetWindowHandle() - Get native window handle
2528[core] ADDED: GetMonitorCount() - Get number of connected monitors
2529[core] ADDED: GetMonitorWidth() - Get primary monitor width
2530[core] ADDED: GetMonitorHeight() - Get primary monitor height
2531[core] ADDED: GetMonitorPhysicalWidth() - Get primary monitor physical width in millimetres
2532[core] ADDED: GetMonitorPhysicalHeight() - Get primary monitor physical height in millimetres
2533[core] ADDED: GetMonitorName() - Get the human-readable, UTF-8 encoded name of the primary monitor
2534[core] ADDED: GetClipboardText() - Get clipboard text content
2535[core] ADDED: SetClipboardText() - Set clipboard text content
2536[core] ADDED: ColorFromHSV() - Returns a Color from HSV values
2537[core] ADDED: FileExists() - Check if file exists
2538[core] ADDED: GetFileNameWithoutExt() - Get filename string without extension (memory should be freed)
2539[core] ADDED: GetDirectoryFiles() - Get filenames in a directory path (memory should be freed)
2540[core] ADDED: ClearDirectoryFiles() - Clear directory files paths buffers (free memory)
2541[core] ADDED: OpenURL() - Open URL with default system browser (if available)
2542[core] ADDED: SetMouseOffset() - Set mouse offset
2543[core] ADDED: SetMouseScale() - Set mouse scaling
2544[core] REMOVED: ShowLogo() - Activate raylib logo at startup (can be done with flags)
2545[shapes] ADDED: DrawCircleSector() - Draw a piece of a circle
2546[shapes] ADDED: DrawCircleSectorLines() - Draw circle sector outline
2547[shapes] ADDED: DrawRing() - Draw ring
2548[shapes] ADDED: DrawRingLines() - Draw ring outline
2549[shapes] ADDED: DrawRectangleRounded() - Draw rectangle with rounded edges
2550[shapes] ADDED: DrawRectangleRoundedLines() - Draw rectangle with rounded edges outline
2551[shapes] ADDED: SetShapesTexture() - Define default texture used to draw shapes
2552[textures] REVIEWED: ExportImage() - Reorder function parameters
2553[textures] REVIEWED: ImageDrawRectangle() - Remove unneeded parameter
2554[textures] ADDED: ExportImageAsCode() - Export image as code file defining an array of bytes
2555[textures] ADDED: LoadTextureCubemap() - Load cubemap from image, multiple image cubemap layouts supported
2556[textures] ADDED: ImageExtractPalette() - Extract color palette from image to maximum size (memory should be freed)
2557[textures] ADDED: ImageDrawRectangleLines() - Draw rectangle lines within an image
2558[textures] ADDED: DrawTextureQuad() - Draw texture quad with tiling and offset parameters
2559[textures] ADDED: DrawTextureNPatch() - Draws a texture (or part of it) that stretches or shrinks nicely
2560[models] REVIEWED: LoadMesh() -> LoadMeshes() - Support multiple meshes loading
2561[models] REVIEWED: LoadMaterial() -> LoadMaterials() - Support multiple materials loading
2562[models] REVIEWED: ExportMesh() - Reorder parameters
2563[models] ADDED: DrawCubeWiresV() - Draw cube wires (Vector version)
2564[models] ADDED: GenMeshPoly() - Generate polygonal mesh
2565[models] ADDED: SetMaterialTexture() - Set texture for a material map type (MAP_DIFFUSE, MAP_SPECULAR...)
2566[models] ADDED: SetModelMeshMaterial() - Set material for a mesh
2567[models] ADDED: LoadModelAnimations() - Load model animations from file
2568[models] ADDED: UpdateModelAnimation() - Update model animation pose
2569[models] ADDED: UnloadModelAnimation() - Unload animation data
2570[models] ADDED: IsModelAnimationValid() - Check model animation skeleton match
2571[rlgl] Improved internal batching mechanism (multibuffering support, triangle texcoords...)
2572[rlgl] REVIEWED: rlPushMatrix()/rlPopMatrix() - Now works like OpenGL 1.1
2573[rlgl] REVIEWED: SetShaderValue() - More generic, now requires uniform type
2574[rlgl] REMOVED: SetShaderValuei() - Can be acoomplished with new SetShaderValue()
2575[rlgl] ADDED: SetShaderValueV() - Set shader uniform value vector
2576[rlgl] ADDED: SetShaderValueTexture() - Set shader uniform value for texture
2577[rlgl] ADDED: BeginScissorMode() - Begin scissor mode (define screen area for following drawing)
2578[rlgl] ADDED: EndScissorMode() - End scissor mode
2579[rlgl] ADDED: SetVrConfiguration() - Set stereo rendering configuration parameters
2580[rlgl] REVIEWED: InitVrSimulator() - No input parameter required, use SetVrConfiguration()
2581[text] REVIEWED: LoadFontEx() - Reorder function parameters
2582[text] REVIEWED: LoadFontData() - Reorder function parameters
2583[text] REVIEWED: GenImageFontAtlas() - Reorder function parameters
2584[text] RENAMED: FormatText() -> TextFormat()
2585[text] RENAMED: SubText() -> TextSubtext()
2586[text] ADDED: LoadFontFromImage() - Load font from Image (XNA style)
2587[text] ADDED: DrawTextRec() - Draw text using font inside rectangle limits
2588[text] ADDED: DrawTextRecEx() - Draw text using font inside rectangle limits with support for text selection
2589[text] ADDED: TextIsEqual() - Check if two text string are equal
2590[text] ADDED: TextLength() - Get text length, checks for '\0' ending
2591[text] ADDED: TextReplace() - Replace text string (memory should be freed!)
2592[text] ADDED: TextInsert() - Insert text in a position (memory should be freed!)
2593[text] ADDED: TextJoin() - Join text strings with delimiter
2594[text] ADDED: TextSplit() - Split text into multiple strings
2595[text] ADDED: TextAppend() - Append text at specific position and move cursor!
2596[text] ADDED: TextFindIndex() - Find first text occurrence within a string
2597[text] ADDED: TextToUpper() - Get upper case version of provided string
2598[text] ADDED: TextToLower() - Get lower case version of provided string
2599[text] ADDED: TextToPascal() - Get Pascal case notation version of provided string
2600[text] ADDED: TextToInteger() - Get integer value from text (negative values not supported)
2601[raudio] ADDED: ExportWave() - Export wave data to file
2602[raudio] ADDED: ExportWaveAsCode() - Export wave sample data to code (.h)
2603[raudio] ADDED: IsAudioStreamPlaying() - Check if audio stream is playing
2604[raudio] ADDED: SetAudioStreamVolume() - Set volume for audio stream (1.0 is max level)
2605[raudio] ADDED: SetAudioStreamPitch() - Set pitch for audio stream (1.0 is base level)
2606[examples] Complete review of full examples collection, many additions
2607[examples] ADDED: core_custom_logging - Custom trace log system
2608[examples] ADDED: core_input_multitouch - Multitouch input example
2609[examples] ADDED: core_window_letterbox - Window adapted to screen
2610[examples] ADDED: core_loading_thread - Data loading in second thread
2611[examples] REVIEWED: core_input_gamepad - Adapted to new gamepad system
2612[examples] REVIEWED: core_vr_simulator - HMD device parameters and distortion shader should be provided
2613[examples] ADDED: core_window_scale_letterbox - Windows resizing and letterbox content
2614[examples] ADDED: shapes_rectangle_scaling_mouse - Scale a rectangle with mouse
2615[examples] ADDED: shapes_draw_circle_sector - Circle sector drawing
2616[examples] ADDED: shapes_draw_ring - Ring drawing
2617[examples] ADDED: shapes_draw_rectangle_rounded - Rounded rectangle drawing
2618[examples] ADDED: shapes_bouncing_ball - Ball bouncing in the screen
2619[examples] ADDED: shapes_collision_area - Collision detection and drawing
2620[examples] ADDED: shapes_following_eyes - Some maths on eyes and mouse
2621[examples] ADDED: shapes_easings_ball_anim - Ball animation
2622[examples] ADDED: shapes_easings_box_anim - Box animation
2623[examples] ADDED: shapes_easings_rectangle_array - Rectangles animation
2624[examples] REVIEWED: shapes_colors_palette - Reviewed color selection and text displaying
2625[examples] ADDED: textures_background_scrolling - Scrolling and parallaz background effect
2626[examples] ADDED: textures_image_npatch - Drawing N-Patch based boxes
2627[examples] ADDED: textures_sprite_button - Sprite button with sound
2628[examples] ADDED: textures_sprite_explosion - Sprite explosion with sound
2629[examples] ADDED: textures_bunnymark - Benchmarking test
2630[examples] ADDED: text_draw_inside_rectangle - Drawing text inside a delimited rectangle box
2631[examples] ADDED: text_unicode - Multiple languages text drawing
2632[examples] ADDED: text_rectangle_bound - Fit text inside a rectangle
2633[examples] REVIEWED: text_bmfont_ttf - Simplified example
2634[examples] ADDED: models_animation - Animated models loading and animation playing
2635[examples] ADDED: models_obj_viewer - Draw and drop models viewer
2636[examples] ADDED: models_rlgl_solar_system - Solar system simulation using rlgl functionality
2637[examples] ADDED: models_first_person_maze - 3D maze fps
2638[examples] ADDED: shaders_palette_switch - Switching color palette on shader
2639[examples] ADDED: shaders_raymarching - Raymarching shader
2640[examples] ADDED: shaders_texture_drawing - Texture drawing on GPU
2641[examples] ADDED: shaders_texture_waves - Texture waves on shader
2642[examples] ADDED: shaders_julia_set - Julia set fractals
2643[examples] ADDED: shaders_eratosthenes - Prime number visualization shader
2644[examples] REVIEWED: audio_raw_stream - Mostly rewritten
2645[games] ADDED: GGJ19 game - Cat vs Roomba
2646[*] Updated external libraries to latest version
2647[*] Multiple bugs corrected (check github issues)
2648
2649-----------------------------------------------
2650Release:     raylib 2.0 (July 2018)
2651-----------------------------------------------
2652KEY CHANGES:
2653  - Removed external dependencies (GLFW3 and OpenAL)
2654  - Complete redesign of audio module to use miniaudio library
2655  - Support AppVeyor and Travis CI (continuous integration) building
2656  - Reviewed raymath.h for better consistency and performance (inlining)
2657  - Refactor all #define SUPPORT_* into a single config.h
2658  - Support TCC compiler (32bit and 64bit)
2659
2660Detailed changes:
2661[build] REMOVED: GitHub develop branch
2662[build] REMOVED: External dependencies GLFW and OpenAL
2663[build] ADDED: Android 64bit ARM support
2664[build] ADDED: FreeBSD, OpenBSD, NetBSD, Dragon Fly OS support
2665[build] ADDED: Universal Windows Platform (UWP) support
2666[build] ADDED: Wayland Linux desktop support
2667[build] ADDED: AppVeyor CI for automatic Windows builds
2668[build] ADDED: Travis CI for automatic Linux/macOS builds
2669[build] ADDED: rglfw (GLFW3 module) to avoid external dependency
2670[build] ADDED: VS2017 UWP project
2671[build] ADDED: Builder project template
2672[build] ADDED: Compiler memory sanitizer for better debug
2673[build] ADDED: CMake package target and CI auto-deploy tags
2674[build] ADDED: DEBUG library building support
2675[build] ADDED: Notepad++ NppExec scripts
2676[build] REVIEWED: VS2015 and VS2017 projects
2677[build] REVIEWED: Android APK build pipeline
2678[core] REVIEWED: Window creation hints to support transparent windows
2679[core] Unified InitWindow() between platforms
2680[core] Export Android main entry point
2681[core] RENAMED: Begin3dMode() to BeginMode3D()
2682[core] RENAMED: End3dMode() to EndMode3D()
2683[core] RENAMED: Begin2dMode() to BeginMode2D()
2684[core] RENAMED: End2dMode() to EndMode2D()
2685[core] RENAMED: struct Camera to Camera3D
2686[core] RENAMED: struct SpriteFont to Font -> plus all required functions!
2687[core] RENAMED: enum TextureFormat to PixelFormat
2688[core] REVIEWED: Rectangle params int to float
2689[core] REVIEWED: timing system for macOS
2690[core] REMOVED: ColorToFloat()
2691[core] ADDED: GetCurrentTime() on macOS
2692[core] ADDED: GetTime()
2693[core] ADDED: struct Vector4
2694[core] ADDED: SetTraceLog() to define trace log messages type
2695[core] ADDED: GetFileName() to get filename from path string
2696[core] ADDED: ColorToHSV()
2697[core] ADDED: ColorNormalize()
2698[core] ADDED: SetWindowSize() to scale Windows in runtime
2699[core] ADDED: SetMouseScale() to scale mouse input
2700[core] ADDED: key definitions - KEY_GRAVE, KEY_SLASH, KEY_BACKSLASH
2701[core] RENAMED: GetHexValue() to ColorToInt()
2702[core] REVIEWED: Fade()
2703[core] REVIEWED: InitWindow() to avoid void pointer (safety)
2704[core] Support camera 3d orthographic projection mode
2705[shapes] ADDED: DrawRectangleLinesEx()
2706[textures] Improved pixel formats support (32bit channels)
2707[textures] Improved textures support for OpenGL 2.1
2708[textures] REMOVED: DrawRectangleT() --> Added support to DrawRectangle()
2709[textures] ADDED: GetPixelDataSize(); pixel data size in bytes (image or texture)
2710[textures] ADDED: ImageAlphaClear() --> Clear alpha channel to desired color
2711[textures] ADDED: ImageAlphaCrop() --> Crop image depending on alpha value
2712[textures] ADDED: ImageAlphaPremultiply() --> Premultiply alpha channel
2713[textures] ADDED: ImageDrawRectangle()
2714[textures] ADDED: ImageMipmaps()
2715[textures] ADDED: GenImageColor()
2716[textures] ADDED: GetPixelDataSize()
2717[textures] ADDED: ImageRotateCW()
2718[textures] ADDED: ImageRotateCCW()
2719[textures] ADDED: ImageResizeCanvas()
2720[textures] ADDED: GetImageDataNormalized()
2721[textures] REVIEWED: ImageFormat() to use normalized data
2722[textures] REVIEWED: Manual mipmap generation
2723[textures] REVIEWED: LoadASTC()
2724[textures] REVIEWED: GenImagePerlinNoise()
2725[textures] REVIEWED: ImageTextEx() to support UTF8 basic characters
2726[textures] REVIEWED: GetTextureData() for RPI - requires some work
2727[textures] Added new example: text drawing on image
2728[text] Corrected issue with ttf font y-offset
2729[text] Support SDF font data generation
2730[text] ADDED: GenImageFontAtlas()
2731[text] ADDED: LoadFontData() to load data from TTF file
2732[text] REMOVED: LoadTTF() internal function
2733[text] REVIEWED: DrawTextEx() - avoid rendering SPACE character!
2734[text] RENAMED: GetDefaultFont() to GetFontDefault()
2735[rlgl] ADDED: rlCheckBufferLimit()
2736[rlgl] ADDED: LoadShaderCode()
2737[rlgl] ADDED: GetMatrixModelview()
2738[rlgl] ADDED: SetVrDistortionShader(Shader shader)
2739[rlgl] REVIEWED: rlLoadTexture() - added mipmaps support, improved compressed textures loading
2740[rlgl] REVIEWED: rlReadTexturePixels()
2741[models] Support 4 components mesh.tangent data
2742[models] Removed tangents generation from LoadOBJ()
2743[models] ADDED: MeshTangents()
2744[models] ADDED: MeshBinormals()
2745[models] ADDED: ExportMesh()
2746[models] ADDED: GetCollisionRayModel()
2747[models] RENAMED: CalculateBoundingBox() to MeshBoundingBox()
2748[models] REMOVED: GetCollisionRayMesh() - does not consider model transform
2749[models] REVIEWED: LoadMesh() - fallback to default cube mesh if loading fails
2750[audio] ADDED: Support for MP3 fileformat
2751[audio] ADDED: IsAudioStreamPlaying()
2752[audio] ADDED: SetAudioStreamVolume()
2753[audio] ADDED: SetAudioStreamPitch()
2754[utils] Corrected issue with SaveImageAs()
2755[utils] RENAMED: SaveImageAs() to ExportImage()
2756[utils] REMOVED: rres support - moved to external library (rres.h)
2757[shaders] REVIEWED: GLSL 120 shaders
2758[raymath] ADDED: Vector3RotateByQuaternion()
2759[raymath] REVIEWED: math usage to reduce temp variables
2760[raymath] REVIEWED: Avoid pointer-based parameters for API consistency
2761[physac] REVIEWED: physac.h timing system
2762[examples] Replaced dwarf model by brand new 3d assets: 3d medieval buildings
2763[examples] Assets cleaning and some replacements
2764[games] ADDED: GGJ18 game - transmission mission
2765[games] REVIEWED: Light my Ritual game - improved gameplay drawing
2766[*] Updated external libraries to latest version
2767[*] Multiple bugs corrected (check github issues)
2768
2769-----------------------------------------------
2770Release:     raylib 1.8.0 (Oct 2017)
2771-----------------------------------------------
2772NOTE:
2773  In this release, multiple parts of the library have been reviewed (again) for consistency and simplification.
2774  It exposes more than 30 new functions in comparison with previous version and it improves overall programming experience.
2775
2776BIG CHANGES:
2777  - New Image generation functions: Gradient, Checked, Noise, Cellular...
2778  - New Mesh generation functions: Cube, Sphere, Cylinder, Torus, Knot...
2779  - New Shaders and Materials systems to support PBR materials
2780  - Custom Android APK build pipeline with simple Makefile
2781  - Complete review of rlgl layer functionality
2782  - Complete review of raymath functionality
2783
2784detailed changes:
2785[rlgl] RENAMED: rlglLoadTexture() to rlLoadTexture()
2786[rlgl] RENAMED: rlglLoadRenderTexture() to rlLoadRenderTexture()
2787[rlgl] RENAMED: rlglUpdateTexture() to rlUpdateTexture()
2788[rlgl] RENAMED: rlglGenerateMipmaps() to rlGenerateMipmaps()
2789[rlgl] RENAMED: rlglReadScreenPixels() to rlReadScreenPixels()
2790[rlgl] RENAMED: rlglReadTexturePixels() to rlReadTexturePixels()
2791[rlgl] RENAMED: rlglLoadMesh() to rlLoadMesh()
2792[rlgl] RENAMED: rlglUpdateMesh() to rlUpdateMesh()
2793[rlgl] RENAMED: rlglDrawMesh() to rlDrawMesh()
2794[rlgl] RENAMED: rlglUnloadMesh() to rlUnloadMesh()
2795[rlgl] RENAMED: rlglUnproject() to rlUnproject()
2796[rlgl] RENAMED: LoadCompressedTexture() to LoadTextureCompressed()
2797[rlgl] RENAMED: GetDefaultTexture() to GetTextureDefault()
2798[rlgl] RENAMED: LoadDefaultShader() to LoadShaderDefault()
2799[rlgl] RENAMED: LoadDefaultShaderLocations() to SetShaderDefaultLocations()
2800[rlgl] RENAMED: UnloadDefaultShader() to UnLoadShaderDefault()
2801[rlgl] ADDED: rlGenMapCubemap(), Generate cubemap texture map from HDR texture
2802[rlgl] ADDED: rlGenMapIrradiance(), Generate irradiance texture map
2803[rlgl] ADDED: rlGenMapPrefilter(), Generate prefilter texture map
2804[rlgl] ADDED: rlGenMapBRDF(), Generate BRDF texture map
2805[rlgl] ADDED: GetVrDeviceInfo(), Get VR device information for some standard devices
2806[rlgl] REVIEWED: InitVrSimulator(), to accept device parameters as input
2807[core] ADDED: SetWindowTitle(), Set title for window (only PLATFORM_DESKTOP)
2808[core] ADDED: GetExtension(), Get file extension
2809[shapes] REMOVED: DrawRectangleGradient(), replaced by DrawRectangleGradientV() and DrawRectangleGradientH()
2810[shapes] ADDED: DrawRectangleGradientV(), Draw a vertical-gradient-filled rectangle
2811[shapes] ADDED: DrawRectangleGradientH(), Draw a horizontal-gradient-filled rectangle
2812[shapes] ADDED: DrawRectangleGradientEx(), Draw a gradient-filled rectangle with custom vertex colors
2813[shapes] ADDED: DrawRectangleT(), Draw rectangle using text character
2814[textures] ADDED: SaveImageAs(), Save image as PNG file
2815[textures] ADDED: GenImageGradientV(), Generate image: vertical gradient
2816[textures] ADDED: GenImageGradientH(), Generate image: horizontal gradient
2817[textures] ADDED: GenImageGradientRadial(), Generate image: radial gradient
2818[textures] ADDED: GenImageChecked(), Generate image: checked
2819[textures] ADDED: GenImageWhiteNoise(), Generate image: white noise
2820[textures] ADDED: GenImagePerlinNoise(), Generate image: perlin noise
2821[textures] ADDED: GenImageCellular(), Generate image: cellular algorithm. Bigger tileSize means bigger cells
2822[textures] ADDED: GenTextureCubemap(), Generate cubemap texture from HDR texture
2823[textures] ADDED: GenTextureIrradiance(), Generate irradiance texture using cubemap data
2824[textures] ADDED: GenTexturePrefilter(), Generate prefilter texture using cubemap data
2825[textures] ADDED: GenTextureBRDF(), Generate BRDF texture using cubemap data
2826[models] REMOVED: LoadMeshEx(), Mesh struct variables can be directly accessed
2827[models] REMOVED: UpdateMesh(), very ineficient
2828[models] REMOVED: LoadHeightmap(), use GenMeshHeightmap() and LoadModelFromMesh()
2829[models] REMOVED: LoadCubicmap(), use GenMeshCubicmap() and LoadModelFromMesh()
2830[models] RENAMED: LoadDefaultMaterial() to LoadMaterialDefault()
2831[models] ADDED: GenMeshPlane(), Generate plane mesh (with subdivisions)
2832[models] ADDED: GenMeshCube(), Generate cuboid mesh
2833[models] ADDED: GenMeshSphere(), Generate sphere mesh (standard sphere)
2834[models] ADDED: GenMeshHemiSphere(), Generate half-sphere mesh (no bottom cap)
2835[models] ADDED: GenMeshCylinder(), Generate cylinder mesh
2836[models] ADDED: GenMeshTorus(), Generate torus mesh
2837[models] ADDED: GenMeshKnot(), Generate trefoil knot mesh
2838[models] ADDED: GenMeshHeightmap(), Generate heightmap mesh from image data
2839[models] ADDED: GenMeshCubicmap(), Generate cubes-based map mesh from image data
2840[raymath] REVIEWED: full Matrix functionality to align with GLM in usage
2841[raymath] RENAMED: Vector3 functions for consistency: Vector*() renamed to Vector3*()
2842[build] Integrate Android APK building into examples Makefile
2843[build] Integrate Android APK building into templates Makefiles
2844[build] Improved Visual Studio 2015 project, folders, references...
2845[templates] Reviewed the full pack to support Android building
2846[examples] Reviewed full collection to adapt to raylib changes
2847[examples] [textures] ADDED: textures_image_generation
2848[examples] [models] ADDED: models_mesh_generation
2849[examples] [models] ADDED: models_material_pbr
2850[examples] [models] ADDED: models_skybox
2851[examples] [models] ADDED: models_yaw_pitch_roll
2852[examples] [others] REVIEWED: rlgl_standalone
2853[examples] [others] REVIEWED: audio_standalone
2854[github] Moved raylib webpage to own repo: github.com/raysan5/raylib.com
2855[games] Reviewed game: Koala Seasons
2856[*] Updated STB libraries to latest version
2857[*] Multiple bugs corrected (check github issues)
2858
2859-----------------------------------------------
2860Release:     raylib 1.7.0 (20 May 2017)
2861-----------------------------------------------
2862NOTE:
2863  In this new raylib release, multiple parts of the library have been reviewed for consistency and simplification.
2864  It exposes almost 300 functions, around 30 new functions in comparison with previous version and, again,
2865  it sets a stepping stone towards raylib future.
2866
2867BIG changes:
2868  - More than 30 new functions added to the library, check list below.
2869  - Support of configuration flags on every raylib module, to customize library build.
2870  - Improved build system for all supported platforms with a unique Makefile to compile sources.
2871  - Complete review of examples and sample games, added new sample material.
2872  - Support automatic GIF recording of current window, just pressing Ctrl+F12
2873  - Improved library consistency and organization in general.
2874
2875other changes:
2876[core] Added function: SetWindowIcon(), to setup icon by code
2877[core] Added function: SetWindowMonitor(), to set current display monitor
2878[core] Added function: SetWindowMinSize(), to set minimum resize size
2879[core] Added function: TakeScreenshot(), made public to API (also launched internally with F12)
2880[core] Added function: GetDirectoryPath(), get directory for a given fileName (with path)
2881[core] Added function: GetWorkingDirectory(), get current working directory
2882[core] Added function: ChangeDirectory(), change working directory
2883[core] Added function: TraceLog(), made public to API
2884[core] Improved timing system to avoid busy wait loop on frame sync: Wait()
2885[core] Added support for gamepad on HTML5 platform
2886[core] Support mouse lock, useful for camera system
2887[core] Review functions description comments
2888[rlgl] Removed function: GetStandardShader(), removed internal standard shader
2889[rlgl] Removed function: CreateLight(), removed internal lighting system
2890[rlgl] Removed function: DestroyLight(), removed internal lighting system
2891[rlgl] Removed function: InitVrDevice(), removed VR device render, using simulator
2892[rlgl] Removed function: CloseVrDevice(), removed VR device render, using simulator
2893[rlgl] Removed function: IsVrDeviceReady(), removed VR device render, using simulator
2894[rlgl] Removed function: IsVrSimulator(), removed VR device render, using simulator
2895[rlgl] Added function: InitVrSimulator(), init VR simulator for selected device
2896[rlgl] Added function: CloseVrSimulator(), close VR simulator for current device
2897[rlgl] Added function: IsVrSimulatorReady(), detect if VR device is ready
2898[rlgl] Added function: BeginVrDrawing(), begin VR simulator stereo rendering
2899[rlgl] Added function: EndVrDrawing(), end VR simulator stereo rendering
2900[rlgl] Renamed function: ReadTextFile() to LoadText() and exposed to API
2901[rlgl] Removed internal lighting system and standard shader, moved to example
2902[rlgl] Removed Oculus Rift support, moved to oculus_rift example
2903[rlgl] Removed VR device support and replaced by VR simulator
2904[shapes] Added function: DrawLineEx(), draw line with QUADS, supports custom line thick
2905[shapes] Added function: DrawLineBezier(), draw a line using cubic-bezier curves in-out
2906[shapes] Added function: DrawRectanglePro(), draw a color-filled rectangle with pro parameters
2907[textures] Removed function: LoadImageFromRES(), redesigning custom RRES fileformat
2908[textures] Removed function: LoadTextureFromRES(), redesigning custom RRES fileformat
2909[textures] Removed function: LoadTextureEx(), use instead Image -> LoadImagePro(), LoadImageEx()
2910[textures] Added function: LoadImagePro()), load image from raw data with parameters
2911[textures] Review TraceLog() message when image file not found
2912[text] Renamed function: LoadSpriteFontTTF() to LoadSpriteFontEx(), for consistency
2913[text] Removed rBMF fileformat support, replaced by .png
2914[text] Refactor SpriteFont struct (better for rres custom fileformat)
2915[text] Renamed some variables for consistency
2916[models] Added function: LoadMesh(), load mesh from file
2917[models] Added function: LoadMeshEx(), load mesh from vertex data
2918[models] Added function: UnloadMesh(), unload mesh from memory (RAM and/or VRAM)
2919[models] Added function: GetCollisionRayMesh(), get collision info between ray and mesh
2920[models] Added function: GetCollisionRayTriangle(), get collision info between ray and triangle
2921[models] Added function: GetCollisionRayGround(), get collision info between ray and ground plane
2922[models] Renamed function: LoadModelEx() to LoadModelFromMesh()
2923[models] Removed function: DrawLight(), removed internal lighting system
2924[models] Renamed function: LoadModelEx() to LoadModelFromMesh() for consistency
2925[models] Removed function: LoadStandardMaterial(), removed internal standard shader
2926[models] Removed function: LoadModelFromRES(), redesigning custom RRES fileformat
2927[models] Renamed multiple variables for consistency
2928[audio] Added function: SetMasterVolume(), define listener volume
2929[audio] Added function: ResumeSound(), resume a paused sound
2930[audio] Added function: SetMusicLoopCount(), set number of repeats for a music
2931[audio] Added function: LoadWaveEx(), load wave from raw audio data
2932[audio] Added function: WaveCrop(), crop wave audio data
2933[audio] Added function: WaveFormat(), format audio data
2934[audio] Removed function: LoadSoundFromRES(), redesigning custom RRES fileformat
2935[audio] Added support for 32bit audio samples
2936[audio] Preliminary support for multichannel, limited to mono and stereo
2937[audio] Make sure buffers are ready for update: UpdateMusicStream()
2938[utils] Replaced function: GetExtension() by IsFileExtension() and made public to API
2939[utils] Unified function: TraceLog() between Android and other platforms
2940[utils] Removed internal function: GetNextPOT(), simplified implementation
2941[raymath] Added function: QuaternionToEuler(), to work with Euler angles
2942[raymath] Added function: QuaternionFromEuler(), to work with Euler angles
2943[raymath] Added multiple Vector2 math functions
2944[build] Integrate Android source building into Makefile
2945[example] Added example: shapes_lines_bezier
2946[example] Added example: text_input_box
2947[github] Moved gh-pages branch to master/docs
2948[github] Moved rlua.h and Lua examples to own repo: raylib-lua
2949[games] Reviewed full games collection
2950[games] New game added to collection: Koala Seasons
2951[*] Reviewed and improved examples collection (new assets)
2952[*] Reorganized library functions, structs, enums
2953[*] Updated STB libraries to latest version
2954
2955-----------------------------------------------
2956Release:     raylib 1.6.0 (20 November 2016)
2957-----------------------------------------------
2958NOTE:
2959  This new raylib version commemorates raylib 3rd anniversary and represents another complete review of the library.
2960  It includes some interesting new features and is a stepping stone towards raylib future.
2961
2962HUGE changes:
2963[rlua] Lua BINDING: Complete raylib Lua binding, ALL raylib functions ported to Lua plus the +60 code examples.
2964[audio] COMPLETE REDESIGN: Improved music support and also raw audio data processing and playing, +20 new functions added.
2965[physac] COMPLETE REWRITE: Improved performance, functionality and simplified usage, moved to own repository and added multiple examples!
2966
2967other changes:
2968
2969[core] Corrected issue on OSX with HighDPI display
2970[core] Added flag to allow resizable window
2971[core] Allow no default font loading
2972[core] Corrected old issue with mouse buttons on web
2973[core] Improved gamepad support, unified across platforms
2974[core] Gamepad id functionality: GetGamepadName(), IsGamepadName()
2975[core] Gamepad buttons/axis checking functionality:
2976[core] Reviewed Android key inputs system, unified with desktop
2977[rlgl] Redesigned lighting shader system
2978[rlgl] Updated standard shader for better performance
2979[rlgl] Support alpha on framebuffer: rlglLoadRenderTexture()
2980[rlgl] Reviewed UpdateVrTracking() to update camera
2981[rlgl] Added IsVrSimulator() to check for VR simulator
2982[shapes] Corrected issue on DrawPolyEx()
2983[textures] Simplified supported image formats support
2984[textures] Improved text drawing within an image: ImageDrawText()
2985[textures] Support image alpha mixing: ImageAlphaMask()
2986[textures] Support textures filtering: SetTextureFilter()
2987[textures] Support textures wrap modes: SetTextureWrap()
2988[text] Improved TTF spritefont generation: LoadSpriteFontTTF()
2989[text] Improved AngelCode fonts support (unordered chars)
2990[text] Added TraceLog info on image spritefont loading
2991[text] Improved text measurement: MeasureTextEx()
2992[models] Improved OBJ loading flexibility
2993[models] Reviewed functions: DrawLine3D(), DrawCircle3D()
2994[models] Removed function: ResolveCollisionCubicmap()
2995[camera] Redesigned camera system and ported to header-only
2996[camera] Removed function: UpdateCameraPlayer()
2997[gestures] Redesigned gestures module to header-only
2998[audio] Simplified Music loading and playing system
2999[audio] Added trace on audio device closing
3000[audio] Reviewed Wave struct, improved flexibility
3001[audio] Support sound data update: UpdateSound()
3002[audio] Added support for FLAC audio loading/streaming
3003[raygui] Removed raygui from raylib repo (moved to own repo)
3004[build] Added OpenAL static library
3005[build] Added Visual Studio 2015 projects
3006[build] Support shared/dynamic raylib compilation
3007[*] Updated LibOVR to SDK version 1.8
3008[*] Updated games to latest raylib version
3009[*] Improved examples and added new ones
3010[*] Improved Android support
3011
3012-----------------------------------------------
3013Release:     raylib 1.5.0 (18 July 2016)
3014-----------------------------------------------
3015NOTE:
3016  Probably this new version is the biggest boost of the library ever, lots of parts of the library have been redesigned,
3017  lots of bugs have been solved and some **AMAZING** new features have been added.
3018
3019HUGE changes:
3020[rlgl] OCULUS RIFT CV1: Added support for VR, not oly Oculus Rift CV1 but also stereo rendering simulator (multiplatform).
3021[rlgl] MATERIALS SYSTEM: Added support for Materials (.mtl) and multiple material properties: diffuse, specular, normal.
3022[rlgl] LIGHTING SYSTEM: Added support for up to 8 lights of 3 different types: Omni, Directional and Spot.
3023[physac] REDESIGNED: Improved performance and simplified usage, physic objects now are managed internally in a second thread!
3024[audio] CHIPTUNES: Added support for module audio music (.xm, .mod) loading and playing. Multiple mixing channels supported.
3025
3026other changes:
3027
3028[core] Review Android button inputs
3029[core] Support Android internal data storage
3030[core] Renamed WorldToScreen() to GetWorldToScreen()
3031[core] Removed function SetCustomCursor()
3032[core] Removed functions BeginDrawingEx(), BeginDrawingPro()
3033[core] Replaced functions InitDisplay() + InitGraphics() with: InitGraphicsDevice()
3034[core] Added support for field-of-view Y (fovy) on 3d Camera
3035[core] Added 2D camera mode functions: Begin2dMode() - End2dMode()
3036[core] Translate mouse inputs to Android touch/gestures internally
3037[core] Translate mouse inputs as touch inputs in HTML5
3038[core] Improved function GetKeyPressed() to support multiple keys (including function keys)
3039[core] Improved gamepad support, specially for RaspberryPi (including multiple gamepads support)
3040[rlgl] Support stereo rendering simulation (duplicate draw calls by viewport, optimized)
3041[rlgl] Added distortion shader (embeded) to support custom VR simulator: shader_distortion.h
3042[rlgl] Added support for OpenGL 2.1 on desktop
3043[rlgl] Improved 2D vs 3D drawing system (lines, triangles, quads)
3044[rlgl] Improved DXT-ETC1 support on HTML5
3045[rlgl] Review function: rlglUnproject()
3046[rlgl] Removed function: rlglInitGraphics(), integrated into rlglInit()
3047[rlgl] Updated Mesh and Shader structs
3048[rlgl] Simplified internal (default) dynamic buffers
3049[rlgl] Added support for indexed and dynamic mesh data
3050[rlgl] Set fixed vertex attribs location points
3051[rlgl] Improved mesh data loading support
3052[rlgl] Added standard shader (embeded) to support materials and lighting: shader_standard.h
3053[rlgl] Added light functions: CreateLight(), DestroyLight()
3054[rlgl] Added wire mode functions: rlDisableWireMode(), rlEnableWireMode()
3055[rlgl] Review function consistency, added: rlglLoadMesh(), rlglUpdateMesh(), rlglDrawMesh(), rlglUnloadMesh()
3056[rlgl] Replaced SetCustomShader() by: BeginShaderMode() - EndShaderMode()
3057[rlgl] Replaced SetBlendMode() by: BeginBlendMode() - EndBlendMode()
3058[rlgl] Added functions to customize internal matrices: SetMatrixProjection(), SetMatrixModelview()
3059[rlgl] Unified internal shaders to only one default shader
3060[rlgl] Added support for render to texture (RenderTexture2D):
3061          LoadRenderTexture() - UnloadRenderTexture()
3062          BeginTextureMode() - EndTextureMode()
3063[rlgl] Removed SetShaderMap*() functions
3064[rlgl] Redesigned default buffers usage functions:
3065          LoadDefaultBuffers() - UnloadDefaultBuffers()
3066          UpdateDefaultBuffers() - DrawDefaultBuffers()
3067[shapes] Corrected bug on GetCollisionRec()
3068[textures] Added support for Nearest-Neighbor image scaling
3069[textures] Added functions to draw text on image: ImageDrawText(), ImageDrawTextEx()
3070[text] Reorganized internal functions: Added LoadImageFont()
3071[text] Security check for unsupported BMFonts
3072[models] Split mesh creation from model loading on heightmap and cubicmap
3073[models] Updated BoundingBox collision detections
3074[models] Added color parameter to DrawBoundigBox()
3075[models] Removed function: DrawQuad()
3076[models] Removed function: SetModelTexture()
3077[models] Redesigned DrawPlane() to use RL_TRIANGLES
3078[models] Redesigned DrawRectangleV() to use RL_TRIANGLES
3079[models] Redesign to accomodate new materials system: LoadMaterial()
3080[models] Added material functions: LoadDefaultMaterial(), LoadStandardMaterial()
3081[models] Added MTL material loading support: LoadMTL()
3082[models] Added function: DrawLight()
3083[audio] Renamed SoundIsPlaying() to IsSoundPlaying()
3084[audio] Renamed MusicIsPlaying() to IsMusicPlaying()
3085[audio] Support multiple Music streams (indexed)
3086[audio] Support multiple mixing channels
3087[gestures] Improved and reviewed gestures system
3088[raymath] Added QuaternionInvert()
3089[raymath] Removed function: PrintMatrix()
3090[raygui] Ported to header-only library (https://github.com/raysan5/raygui)
3091[shaders] Added depth drawing shader (requires a depth texture)
3092[shaders] Reviewed included shaders and added comments
3093[OpenAL Soft] Updated to latest version (1.17.2)
3094[GLFW3] Updated to latest version (3.2)
3095[stb] Updated to latest headers versions
3096[GLAD] Converted to header only library and simplified to only used extensions
3097[*] Reorganize library folders: external libs moved to src/external folder
3098[*] Reorganize src folder for Android library
3099[*] Review external dependencies usage
3100[*] Improved Linux and OSX build systems
3101[*] Lots of tweaks and bugs corrected all around
3102
3103-----------------------------------------------
3104Release:     raylib 1.4.0 (22 February 2016)
3105-----------------------------------------------
3106NOTE:
3107  This version supposed another big improvement for raylib, including new modules and new features.
3108  More than 30 new functions have been added to previous raylib version.
3109  Around 8 new examples and +10 new game samples have been added.
3110
3111BIG changes:
3112[textures] IMAGE MANIPULATION: Functions to crop, resize, colorize, flip, dither and even draw image-to-image or text-to-image.
3113[text] SPRITEFONT SUPPORT: Added support for AngelCode fonts (.fnt) and TrueType fonts (.ttf).
3114[gestures] REDESIGN: Gestures system simplified and prepared to process generic touch events, including mouse events (multiplatform).
3115[physac] NEW MODULE: Basic 2D physics support, use colliders and rigidbodies; apply forces to physic objects.
3116
3117other changes:
3118
3119[rlgl] Removed GLEW library dependency, now using GLAD
3120[rlgl] Implemented alternative to glGetTexImage() on OpenGL ES
3121[rlgl] Using depth data on batch drawing
3122[rlgl] Reviewed glReadPixels() function
3123[core][rlgl] Reviewed raycast system, now 3D picking works
3124[core] Android: Reviewed Android App cycle, paused if inactive
3125[shaders] Implemented Blinn-Phong lighting shading model
3126[textures] Implemented Floyd-Steinberg dithering - ImageDither()
3127[text] Added line-break support to DrawText()
3128[text] Added TrueType Fonts support (using stb_truetype)
3129[models] Implement function: CalculateBoundingBox(Mesh mesh)
3130[models] Added functions to check Ray collisions
3131[models] Improve map resolution control on LoadHeightmap()
3132[camera] Corrected small-glitch on zoom-in with mouse-wheel
3133[gestures] Implemented SetGesturesEnabled() to enable only some gestures
3134[gestures] Implemented GetElapsedTime() on Windows system
3135[gestures] Support mouse gestures for desktop platforms
3136[raymath] Complete review of the module and converted to header-only
3137[easings] Added new module for easing animations
3138[stb] Updated to latest headers versions
3139[*] Lots of tweaks around
3140
3141-----------------------------------------------
3142Release:     raylib 1.3.0 (01 September 2015)
3143-----------------------------------------------
3144NOTE:
3145  This version supposed a big boost for raylib, new modules have been added with lots of features.
3146  Most of the modules have been completely reviewed to accomodate to the new features.
3147  Over 50 new functions have been added to previous raylib version.
3148  Most of the examples have been redone and +10 new advanced examples have been added.
3149
3150BIG changes:
3151[rlgl] SHADERS: Support for model shaders and postprocessing shaders (multiple functions)
3152[textures] FORMATS: Support for multiple internal formats, including compressed formats
3153[camera] NEW MODULE: Set of cameras for 3d view: Free, Orbital, 1st person, 3rd person
3154[gestures] NEW MODULE: Gestures system for Android and HTML5 platforms
3155[raygui] NEW MODULE: Set of IMGUI elements for tools development (experimental)
3156
3157other changes:
3158
3159[rlgl] Added check for OpenGL supported extensions
3160[rlgl] Added function SetBlenMode() to select some predefined blending modes
3161[core] Added support for drop&drag of external files into running program
3162[core] Added functions ShowCursor(), HideCursor(), IsCursorHidden()
3163[core] Renamed function SetFlags() to SetConfigFlags()
3164[shapes] Simplified some functions to improve performance
3165[textures] Review of Image struct to support multiple data formats
3166[textures] Added function LoadImageEx()
3167[textures] Added function LoadImageRaw()
3168[textures] Added function LoadTextureEx()
3169[textures] Simplified function parameters LoadTextureFromImage()
3170[textures] Added function GetImageData()
3171[textures] Added function GetTextureData()
3172[textures] Renamed function ConvertToPOT() to ImageConvertToPOT()
3173[textures] Added function ImageConvertFormat()
3174[textures] Added function GenTextureMipmaps()
3175[text] Added support for Latin-1 Extended characters for default font
3176[text] Redesigned SpriteFont struct, replaced Character struct by Rectangle
3177[text] Removed function GetFontBaseSize(), use directly spriteFont.size
3178[models] Review of struct: Model (added shaders support)
3179[models] Added 3d collision functions (sphere vs sphere vs box vs box)
3180[models] Added function DrawCubeTexture()
3181[models] Added function DrawQuad()
3182[models] Added function DrawRay()
3183[models] Simplified function DrawPlane()
3184[models] Removed function DrawPlaneEx()
3185[models] Simplified function DrawGizmo()
3186[models] Removed function DrawGizmoEx()
3187[models] Added function LoadModelEx()
3188[models] Review of function LoadCubicMap()
3189[models] Added function ResolveCollisionCubicmap()
3190[audio] Decopupled from raylib, now this module can be used as standalone
3191[audio] Added function UpdateMusicStream()
3192[raymath] Complete review of the module
3193[stb] Updated to latest headers versions
3194[*] Lots of tweaks around
3195
3196-----------------------------------------------
3197Release:     raylib 1.2.2 (31 December 2014)
3198-----------------------------------------------
3199[*] Added support for HTML5 compiling (emscripten, asm.js)
3200[core] Corrected bug on input handling (keyboard and mouse)
3201[textures] Renamed function CreateTexture() to LoadTextureFromImage()
3202[textures] Added function ConvertToPOT()
3203[rlgl] Added support for color tint on models on GL 3.3+ and ES2
3204[rlgl] Added support for normals on models
3205[models] Corrected bug on DrawBillboard()
3206[models] Corrected bug on DrawHeightmap()
3207[models] Renamed LoadCubesmap() to LoadCubicmap()
3208[audio] Added function LoadSoundFromWave()
3209[makefile] Added support for Linux and OSX compiling
3210[stb] Updated to latest headers versions
3211[*] Lots of tweaks around
3212
3213---------------------------------------------------------------
3214Update:     raylib 1.2.1 (17 October 2014) (Small Fixes Update)
3215---------------------------------------------------------------
3216[core] Added function SetupFlags() to preconfigure raylib Window
3217[core] Corrected bug on fullscreen mode
3218[rlgl] rlglDrawmodel() - Added rotation on Y axis
3219[text] MeasureTextEx() - Corrected bug on measures for default font
3220
3221-----------------------------------------------
3222Release:     raylib 1.2 (16 September 2014)
3223-----------------------------------------------
3224NOTE:
3225  This version supposed a complete redesign of the [core] module to support Android and Raspberry Pi.
3226  Multiples modules have also been tweaked to accomodate to the new platforms, specially [rlgl]
3227
3228[core] Added multiple platforms support: Android and Raspberry Pi
3229[core] InitWindow() - Complete rewrite and split for Android
3230[core] InitDisplay() - Internal function added to calculate proper display size
3231[core] InitGraphics() - Internal function where OpenGL graphics are initialized
3232[core] Complete refactoring of input functions to accomodate to new platforms
3233[core] Mouse and Keyboard raw data reading functions added for Raspberry Pi
3234[core] GetTouchX(), GetTouchY() - Added for Android
3235[core] Added Android callbacks to process inputs and Android activity commands
3236[rlgl] Adjusted buffers depending on platform
3237[rlgl] Added security check in case deployed vertex excess buffer size
3238[rlgl] Adjusted indices type depending on GL version (int or short)
3239[rlgl] Fallback to VBOs only usage if VAOs not supported on ES2
3240[rlgl] rlglLoadModel() stores vbo ids on new Model struct
3241[textures] Added support for PKM files (ETC1, ETC2 compression support)
3242[shapes] DrawRectangleV() - Modified, depending on OGL version uses TRIANGLES or QUADS
3243[text] LoadSpriteFont() - Modified to use LoadImage()
3244[models] Minor changes on models loading to accomodate to new Model struct
3245[audio] PauseMusicStream(), ResumeMusicStream() - Added
3246[audio] Reduced music buffer size to avoid stalls on Raspberry Pi
3247[src] Added makefile for Windows and RPI
3248[src] Added resources file (raylib icon and executable info)
3249[examples] Added makefile for Windows and RPI
3250[examples] Renamed and merged with test examples for coherence with module names
3251[templates] Added multiple templates to be use as a base-code for games
3252
3253-----------------------------------------------
3254Release:     raylib 1.1.1 (22 July 2014)
3255-----------------------------------------------
3256[core] ShowLogo() - To enable raylib logo animation at startup
3257[core] Corrected bug with window resizing
3258[rlgl] Redefined colors arrays to use byte instead of float
3259[rlgl] Removed double buffer system (no performance improvement)
3260[rlgl] rlglDraw() - Reorganized buffers drawing order
3261[rlgl] Corrected bug on screen resizing
3262[shapes] DrawRectangle() - Use QUADS instead of TRIANGLES
3263[models] DrawSphereWires() - Corrected some issues
3264[models] LoadOBJ() - Redesigned to support multiple meshes
3265[models] LoadCubesMap() - Loading a map as cubes (by pixel color)
3266[textures] Added security check if file doesn't exist
3267[text] Corrected bug on SpriteFont loading
3268[examples] Corrected some 3d examples
3269[test] Added cubesmap loading test
3270
3271-----------------------------------------------
3272Release:     raylib 1.1.0 (19 April 2014)
3273-----------------------------------------------
3274NOTE:
3275  This version supposed a complete internal redesign of the library to support OpenGL 3.3+ and OpenGL ES 2.0.
3276  New module [rlgl] has been added to 'translate' immediate mode style functions (i.e. rlVertex3f()) to GL 1.1, 3.3+ or ES2.
3277  Another new module [raymath] has also been added with lot of useful 3D math vector-matrix-quaternion functions.
3278
3279[rlgl] New module, abstracts OpenGL rendering (multiple versions support)
3280[raymath] New module, useful 3D math vector-matrix-quaternion functions
3281[core] Adapt all OpenGL code (initialization, drawing) to use [rlgl]
3282[shapes] Rewrite all shapes drawing functions to use [rlgl]
3283[textures] Adapt texture GPU loading to use [rlgl]
3284[textures] Added support for DDS images (compressed and uncompressed)
3285[textures] CreateTexture() - Redesigned to add mipmap automatic generation
3286[textures] DrawTexturePro() - Redesigned and corrected bugs
3287[models] Rewrite all 3d-shapes drawing functions to use [rlgl]
3288[models] Adapt model loading and drawing to use [rlgl]
3289[models] Model struct updated to include texture id
3290[models] SetModelTexture() - Added, link a texture to a model
3291[models] DrawModelEx() - Redesigned with extended parameters
3292[audio] Added music streaming support (OGG files)
3293[audio] Added support for OGG files as Sound
3294[audio] PlayMusicStream() - Added, open a new music stream and play it
3295[audio] StopMusicStream() - Added, stop music stream playing and close stream
3296[audio] PauseMusicStream() - Added, pause music stream playing
3297[audio] MusicIsPlaying() - Added, to check if music is playing
3298[audio] SetMusicVolume() - Added, set volume for music
3299[audio] GetMusicTimeLength() - Added, get current music time length (in seconds)
3300[audio] GetMusicTimePlayed() - Added, get current music time played (in seconds)
3301[utils] Added log tracing functionality - TraceLog(), TraceLogOpen(), TraceLogClose()
3302[*] Log tracing messages all around the code
3303
3304-----------------------------------------------
3305Release:     raylib 1.0.6 (16 March 2014)
3306-----------------------------------------------
3307[core] Removed unused lighting-system code
3308[core] Removed SetPerspective() function, calculated directly
3309[core] Unload and reload default font on fullscreen toggle
3310[core] Corrected bug gamepad buttons checking if no gamepad available
3311[texture] DrawTextureV() - Added, to draw using Vector2 for position
3312[texture] LoadTexture() - Redesigned, now uses LoadImage() + CreateTexture()
3313[text] FormatText() - Corrected memory leak bug
3314[models] Added Matrix struct and related functions
3315[models] DrawBillboard() - Reviewed, now it works!
3316[models] DrawBillboardRec() - Reviewed, now it works!
3317[tests] Added folder with multiple tests for new functions
3318
3319-----------------------------------------------
3320Update:     raylib 1.0.5 (28 January 2014)
3321-----------------------------------------------
3322[audio] LoadSound() - Corrected a bug, WAV file was not closed!
3323[core] GetMouseWheelMove() - Added, check mouse wheel Y movement
3324[texture] CreateTexture2D() renamed to CreateTexture()
3325[models] LoadHeightmap() - Added, Heightmap can be loaded as a Model
3326[tool] rREM updated, now supports (partially) drag and drop of files
3327
3328-----------------------------------------------
3329Release:     raylib 1.0.4 (23 January 2014)
3330-----------------------------------------------
3331[tool] Published a first alpha version of rREM tool (raylib Resource Embedder)
3332[core] GetRandomValue() - Bug corrected, now works right
3333[core] Fade() - Added, fades a color to an alpha percentadge
3334[core] WriteBitmap() - Moved to new module: utils.c, not used anymore
3335[core] TakeScreenshot() - Now uses WritePNG() (utils.c)
3336[utils] New module created with utility functions
3337[utils] WritePNG() - Write a PNG file (used by TakeScreenshot() on core)
3338[utils] DecompressData() - Added, used for rRES resource data decompresion
3339[textures] LoadImageFromRES() - Added, load an image from a rRES resource file
3340[textures] LoadTextureFromRES() - Added, load a texture from a rRES resource file
3341[audio] LoadSoundFromRES() - Added, load a sound from a rRES resource file
3342[audio] IsPlaying() - Added, check if a sound is currently playing
3343[audio] SetVolume() - Added, set the volume for a sound
3344[audio] SetPitch() - Added, set the pitch for a sound
3345[examples] ex06a_color_select completed
3346[examples] ex06b_logo_anim completed
3347[examples] ex06c_font select completed
3348
3349-----------------------------------------------
3350Release:     raylib 1.0.3 (19 December 2013)
3351-----------------------------------------------
3352[fonts] Added 8 rBMF free fonts to be used on projects!
3353[text] LoadSpriteFont() - Now supports rBMF file loading (raylib Bitmap Font)
3354[examples] ex05a_sprite_fonts completed
3355[examples] ex05b_rbmf_fonts completed
3356[core] InitWindowEx() - InitWindow with extended parameters, resizing option and custom cursor!
3357[core] GetRandomValue() - Added, returns a random value within a range (int)
3358[core] SetExitKey() - Added, sets a key to exit program (default is ESC)
3359[core] Custom cursor not drawn when mouse out of screen
3360[shapes] CheckCollisionPointRec() - Added, check collision between point and rectangle
3361[shapes] CheckCollisionPointCircle() - Added, check collision between point and circle
3362[shapes] CheckCollisionPointTriangle() - Added, check collision between point and triangle
3363[shapes] DrawPoly() - Added, draw regular polygons of n sides, rotation can be defined!
3364
3365-----------------------------------------------
3366Release:     raylib 1.0.2 (1 December 2013)
3367-----------------------------------------------
3368[text] GetDefaultFont() - Added, get default SpriteFont to be used on DrawTextEx()
3369[shapes] CheckCollisionRecs() - Added, check collision between rectangles
3370[shapes] CheckCollisionCircles() - Added, check collision between circles
3371[shapes] CheckCollisionCircleRec() - Added, check collision circle-rectangle
3372[shapes] GetCollisionRec() - Added, get collision rectangle
3373[textures] CreateTexture2D() - Added, create Texture2D from Image data
3374[audio] Fixed WAV loading function, now audio works!
3375
3376-----------------------------------------------
3377Update:     raylib 1.0.1 (28 November 2013)
3378-----------------------------------------------
3379[text] DrawText() - Removed spacing parameter
3380[text] MeasureText() - Removed spacing parameter
3381[text] DrawFps() - Renamed to DrawFPS() for coherence with similar function
3382[core] IsKeyPressed() - Change functionality, check if key pressed once
3383[core] IsKeyDown() - Added, check if key is being pressed
3384[core] IsKeyReleased() - Change functionality, check if key released once
3385[core] IsKeyUp() - Added, check if key is being NOT pressed
3386[core] IsMouseButtonDown() - Added, check if mouse button is being pressed
3387[core] IsMouseButtonPressed() - Change functionality, check if mouse button pressed once
3388[core] IsMouseButtonUp() - Added, check if mouse button is NOT being pressed
3389[core] IsMouseButtonReleased() - Change functionality, check if mouse button released once
3390[textures] DrawTexturePro() - Added, texture drawing with 'pro' parameters
3391[examples] Function changes applied to ALL examples
3392
3393-----------------------------------------------
3394Release:    raylib 1.0.0 (18 November 2013)
3395-----------------------------------------------
3396* Initial version
3397* 6 Modules provided:
3398    - core:     basic window/context creation functions, input management, timing functions
3399    - shapes:   basic shapes drawing functions
3400    - textures: image data loading and conversion to OpenGL textures
3401    - text:     text drawing, sprite fonts loading, default font loading
3402    - models:   basic 3d shapes drawing, OBJ models loading and drawing
3403    - audio:    audio device initialization, WAV files loading and playing