1changelog
   2---------
   3
   4Current Release:    raylib 5.5 (18 November 2024)
   5
   6-------------------------------------------------------------------------
   7Release:     raylib 5.5 (18 November 2024)
   8-------------------------------------------------------------------------
   9KEY CHANGES:
  10 - New tool: raylib project creator
  11 - New rcore backends: RGFW and SDL3
  12 - New platforms supported: Dreamcast, N64, PSP, PSVita, PS4
  13 - Added GPU Skinning support (all platforms and GL versions)
  14 - Added raymath C++ operators
  15
  16Detailed changes:
  17
  18WIP: Last update with commit from 02-Nov-2024
  19
  20[rcore] ADDED: Working directory info at initialization by @Ray
  21[rcore] ADDED: `GetClipboardImage()`, supported by multiple backends (#4459) by @evertonse
  22[rcore] ADDED: `MakeDirectory()`, supporting recursive directory creation by @Ray
  23[rcore] ADDED: `ComputeSHA1()` (#4390) by @Anthony Carbajal
  24[rcore] ADDED: `ComputeCRC32()` and `ComputeMD5()` by @Ray
  25[rcore] ADDED: `GetKeyName()` (#4161) by @MrScautHD
  26[rcore] ADDED: `IsFileNameValid()` by @Ray
  27[rcore] ADDED: `GetViewRay()`, viewport independent raycast (#3709) by @Luís Almeida
  28[rcore] RENAMED: `GetMouseRay()` to `GetScreenToWorldRay()` (#3830) by @Ray
  29[rcore] RENAMED: `GetViewRay()` to `GetScreenToWorldRayEx()` (#3830) by @Ray
  30[rcore] REVIEWED: `GetApplicationDirectory()` for FreeBSD (#4318) by @base
  31[rcore] REVIEWED: `LoadDirectoryFilesEx()`/`ScanDirectoryFiles()`, support directory on filter (#4302) by @foxblock
  32[rcore] REVIEWED: Update comments on fullscreen and boderless window to describe what they do (#4280) by @Jeffery Myers
  33[rcore] REVIEWED: Correct processing of mouse wheel on Automation events #4263 by @Ray
  34[rcore] REVIEWED: Fix gamepad axis movement and its automation event recording (#4184) by @maxmutant
  35[rcore] REVIEWED: Do not set RL_TEXTURE_FILTER_LINEAR when high dpi flag is enabled (#4189) by @Dave Green
  36[rcore] REVIEWED: `GetScreenWidth()`/`GetScreenHeight()` (#4074) by @Anthony Carbajal
  37[rcore] REVIEWED: Initial window dimensions checks (#3950) by @Christian Haas
  38[rcore] REVIEWED: Set default init values for random #3954 by @Ray
  39[rcore] REVIEWED: Window positioning, avoid out-of-screen window-bar by @Ray
  40[rcore] REVIEWED: Fix framerate recording for .gif (#3894) by @Rob Loach
  41[rcore] REVIEWED: Screen space related functions consistency (#3830) by @aiafrasinei
  42[rcore] REVIEWED: `GetFileNameWithoutExt()` (#3771) by @oblerion
  43[rcore] REVIEWED: `GetWindowScaleDPI()`, simplified (#3701) by @Karl Zylinski
  44[rcore] REVIEWED: `UnloadAutomationEventList()` (#3658) by @Antonis Geralis
  45[rcore] REVIEWED: Flip VR screens (#3633) by @Matthew Oros
  46[rcore] REVIEWED: Remove unused vScreenCenter (#3632) by @Matthew Oros
  47[rcore] REVIEWED: `LoadRandomSequence()`, issue in sequence generation #3612 by @Ray
  48[rcore] REVIEWED: `IsMouseButtonUp()` (#3609) by @Kenneth M
  49[rcore] REVIEWED: Fix typos in src/platforms/rcore_*.c (#3581) by @RadsammyT
  50[rcore] REVIEWED: `ExportDataAsCode()`, change sanitization check (#3837) by @Laurentino Luna
  51[rcore] REVIEWED: `ExportDataAsCode()`, add little sanitization to indentifier names (#3832) by @4rk
  52[rcore] REVIEWED: `GetScreenWidth()`/`GetScreenHeight()` align with all platforms (#4451) by @Arche Washi
  53[rcore] REVIEWED: `SetGamepadVibration()`, added duration parameter (#4410) by @Asdqwe -WARNING-
  54[rcore] REVIEWED: `GetGamepadAxisMovement()`, fix #4405 (#4420) by @Asdqwe
  55[rcore] REVIEWED: `GetGestureHoldDuration()` comments by @Ray
  56[rcore][rlgl] REVIEWED: Fix scale issues when ending a view mode (#3746) by @Jeffery Myers
  57[rcore][GLFW] REVIEWED: Keep CORE.Window.position properly in sync with glfw window position (#4190) by @Dave Green
  58[rcore][GLFW] REVIEWED: Set AUTO_ICONIFY flag to false per default (#4188) by @Dave Green
  59[rcore][GLFW] REVIEWED: `InitPlatform()`, add workaround for NetBSD (#4139) by @NishiOwO
  60[rcore][GLFW] REVIEWED: Fix window not initializing on primary monitor (#3923) by @Rafael Bordoni
  61[rcore][GLFW] REVIEWED: Set relative mouse mode when the cursor is disabled (#3874) by @Jeffery Myers
  62[rcore][GLFW] REVIEWED: Remove GLFW mouse passthrough hack and increase GLFW version in CMake (#3852) by @Alexandre Almeida
  63[rcore][GLFW] REVIEWED: Updated GLFW to 3.4 (#3827) by @Alexandre Almeida
  64[rcore][GLFW] REVIEWED: Feature test macros before include (#3737) by @John
  65[rcore][GLFW] REVIEWED: Fix inconsistent dll linkage warning on windows (#4447) by @Jeffery Myers
  66[rcore][Web] ADDED: `SetWindowOpacity()` implementation (#4403) by @Asdqwe
  67[rcore][Web] ADDED: `MaximizeWindow()` and `RestoreWindow()` implementations (#4397) by @Asdqwe
  68[rcore][Web] ADDED: `ToggleFullscreen()` implementation (#3634) by @ubkp
  69[rcore][Web] ADDED: `GetWindowPosition()` implementation (#3637) by @ubkp
  70[rcore][Web] ADDED: `ToggleBorderlessWindowed()` implementation (#3622) by @ubkp
  71[rcore][Web] ADDED: `GetMonitorWidth()` and `GetMonitorHeight()` implementations (#3636) by @ubkp
  72[rcore][Web] REVIEWED: Update `SetWindowState()` and `ClearWindowState()` to handle `FLAG_WINDOW_MAXIMIZED` (#4402) by @Asdqwe
  73[rcore][Web] REVIEWED: `WindowSizeCallback()`, do not try to handle DPI, already managed by GLFW (#4143) by @SuperUserNameMan
  74[rcore][Web] REVIEWED: Relative mouse mode issues (#3940) by @Cemal Gönültaş
  75[rcore][Web] REVIEWED: `ShowCursor()`, `HideCursor()` and `SetMouseCursor()` (#3647) by @ubkp
  76[rcore][Web] REVIEWED: Fix CORE.Input.Mouse.cursorHidden with callbacks (#3644) by @ubkp
  77[rcore][Web] REVIEWED: Fix `IsMouseButtonUp()` (#3611) by @ubkp
  78[rcore][Web] REVIEWED: HighDPI support #3372 by @Ray
  79[rcore][Web] REVIEWED: `SetWindowSize()` (#4452) by @Asdqwe
  80[rcore][Web] REVIEWED: `EmscriptenResizeCallback()`, simplified (#4415) by @Asdqwe
  81[rcore][SDL] ADDED: `IsCursorOnScreen()` (#3862) by @Peter0x44
  82[rcore][SDL] ADDED: Gamepad rumble/vibration support (#3819) by @GideonSerf
  83[rcore][SDL] REVIEWED: Gamepad support (#3776) by @A
  84[rcore][SDL] REVIEWED: `GetWorkingDirectory()`, return correct path (#4392) by @Asdqwe
  85[rcore][SDL] REVIEWED: `GetClipboardText()`, fix memory leak (#4354) by @Asdqwe
  86[rcore][SDL] REVIEWED: Change SDL_Joystick to SDL_GameController (#4129) by @Frank Kartheuser
  87[rcore][SDL] REVIEWED: Update storage base path, use provided SDL base path by @Ray
  88[rcore][SDL] REVIEWED: Call SDL_GL_SetSwapInterval() after GL context creation (#3997) by @JupiterRider
  89[rcore][SDL] REVIEWED: `GetKeyPressed()` (#3869) by @Arthur
  90[rcore][SDL] REVIEWED: Fix SDL multitouch tracking (#3810) by @mooff
  91[rcore][SDL] REVIEWED: Fix `SUPPORT_WINMM_HIGHRES_TIMER` (#3679) by @ubkp
  92[rcore][SDL] REVIEWED: SDL text input to Unicode codepoints #3650 by @Ray
  93[rcore][SDL] REVIEWED: `IsMouseButtonUp()` and add touch events (#3610) by @ubkp
  94[rcore][SDL] REVIEWED: Fix real touch gestures (#3614) by @ubkp
  95[rcore][SDL] REVIEWED: `IsKeyPressedRepeat()` (#3605) by @ubkp
  96[rcore][SDL] REVIEWED: `GetKeyPressed()` and `GetCharPressed()` for SDL (#3604) by @ubkp
  97[rcore][SDL] REVIEWED: `SetMousePosition()` for SDL (#3580) by @ubkp
  98[rcore][SDL] REVIEWED: `SetWindowIcon()` for SDL (#3578) by @ubkp
  99[rcore][SDL][rlgl] REVIEWED: Fix for running gles2 with SDL on desktop (#3542) by @_Tradam
 100[rcore][Android] REVIEWED: Issue with isGpuReady flag (#4340) by @Menno van der Graaf
 101[rcore][Android] REVIEWED: Allow main() to return it its caller on configuration changes (#4288) by @Hesham Abourgheba
 102[rcore][Android] REVIEWED: Replace deprecated Android function ALooper_pollAll with ALooper_pollOnce (#4275) by @Menno van der Graaf
 103[rcore][Android] REVIEWED: `PollInputEvents()`, register previous gamepad events (#3910) by @Aria
 104[rcore][Android] REVIEWED: Fix Android keycode translation and duplicate key constants (#3733) by @Alexandre Almeida
 105[rcore][DRM] ADDED: uConsole keys mapping (#4297) by @carverdamien
 106[rcore][DRM] ADDED: `GetMonitorWidth/Height()` (#3956) by @gabriel-marques
 107[rcore][DRM] REVIEWED: `IsMouseButtonUp()` (#3611) by @ubkp
 108[rcore][DRM] REVIEWED: Optimize gesture handling (#3616) by @ubkp
 109[rcore][DRM] REVIEWED: `IsKeyPressedRepeat()` for PLATFORM_DRM direct input (#3583) by @ubkp
 110[rcore][DRM] REVIEWED: Fix gamepad buttons not working in drm backend (#3888) by @MrMugame
 111[rcore][DRM] REVIEWED: DRM backend to only use one api to allow for more devices (#3879) by @MrMugame
 112[rcore][DRM] REVIEWED: Avoid separate thread when polling for gamepad events (#3641) by @Cinghy Creations
 113[rcore][DRM] REVIEWED: Connector status reported as UNKNOWN but should be considered as CONNECTED (#4305) by @Michał Jaskólski
 114[rcore][RGFW] ADDED: RGFW, new rcore backend platform (#3941) by @Colleague Riley
 115[rcore][RGFW] REVIEWED: RGFW 1.0 (#4144) by @Colleague Riley
 116[rcore][RGFW] REVIEWED: Fix errors when compiling with mingw (#4282) by @Colleague Riley
 117[rcore][RGFW] REVIEWED: Replace long switch with a lookup table (#4108) by @Colleague Riley
 118[rcore][RGFW] REVIEWED: Fix MSVC build errors (#4441) by @Colleague Riley
 119[rlgl] ADDED: More uniform data type options #4137 by @Ray
 120[rlgl] ADDED: Vertex normals for RLGL immediate drawing mode (#3866) by @bohonghuang -WARNING-
 121[rlgl] ADDED: `rlCullDistance*()` variables and getters (#3912) by @KotzaBoss
 122[rlgl] ADDED: `rlSetClipPlanes()` function (#3912) by @KotzaBoss
 123[rlgl] ADDED: `isGpuReady` flag, allow font loading with no GPU acceleration by @Ray -WARNING-
 124[rlgl] REVIEWED: Changed RLGL_VERSION from 4.5 to 5.0 (#3914) by @Mute
 125[rlgl] REVIEWED: Shader load failing returns 0, instead of fallback by @Ray -WARNING-
 126[rlgl] REVIEWED: Standalone mode default flags (#4334) by @Asdqwe
 127[rlgl] REVIEWED: Fix hardcoded index values in vboID array (#4312) by @Jett
 128[rlgl] REVIEWED: GLint64 did not exist before OpenGL 3.2 (#4284) by @Tchan0
 129[rlgl] REVIEWED: Extra warnings in case OpenGL 4.3 is not enabled (#4202) by @Maxim Knyazkin
 130[rlgl] REVIEWED: Using GLint64 for glGetBufferParameteri64v() (#4197) by @Randy Palamar
 131[rlgl] REVIEWED: Replace `glGetInteger64v()` with `glGetBufferParameteri64v()` (#4154) by @Kai Kitagawa-Jones
 132[rlgl] REVIEWED: `rlMultMatrixf()`, fix matrix multiplication order (#3935) by @bohonghuang
 133[rlgl] REVIEWED: `rlSetVertexAttribute()`, define last parameter as offset #3800 by @Ray
 134[rlgl] REVIEWED: `rlDisableVertexAttribute()`, remove redundat calls for SHADER_LOC_VERTEX_COLOR (#3871) by @Kacper Zybała
 135[rlgl] REVIEWED: `rlLoadTextureCubemap()`, load mipmaps for cubemaps (#4429) by @Nikolas
 136[rlgl] REVIEWED: `rlLoadFramebuffer()`, parameters not required by @Ray
 137[rlgl] REVIEWED: `rlSetUniformSampler()` (#3759) by @veins1
 138[rlgl] REVIEWED: Renamed near/far variables (#4039) by @jgabaut
 139[rlgl] REVIEWED: Expose OpenGL symbols (#3588) by @Peter0x44
 140[rlgl] REVIEWED: Fix OpenGL 1.1 build issues (#3876) by @Ray
 141[rlgl] REVIEWED: Fixed compilation for OpenGL ES (#4243) by @Maxim Knyazkin
 142[rlgl] REVIEWED: rlgl function description and comments by @Ray
 143[rlgl] REVIEWED: Expose glad functions when building raylib as a shared lib (#3572) by @Peter0x44
 144[rlgl] REVIEWED: Fix version info in rlgl.h (#3558) by @Steven Schveighoffer
 145[rlgl] REVIEWED: Use the vertex color to the base shader in GLSL330 (#4431) by @Jeffery Myers
 146[rcamera] REVIEWED: Make camera movement independant of framerate (#4247) by @hanaxars -WARNING-
 147[rcamera] REVIEWED: Updated camera speeds with GetFrameTime() (#4362) by @Anthony Carbajal
 148[rcamera] REVIEWED: `UpdateCamera()`, added CAMERA_CUSTOM check (#3938) by @Tomas Fabrizio Orsi
 149[rcamera] REVIEWED: Support mouse/keyboard and gamepad coexistence for input (#3579) by @ubkp
 150[rcamera] REVIEWED: Cleaned away unused macros(#3762) by @Brian E
 151[rcamera] REVIEWED: Fix for free camera mode (#3603) by @lesleyrs
 152[rcamera] REVIEWED: `GetCameraRight()` (#3784) by @Danil
 153[raymath] ADDED: C++ operator overloads for common math function (#4385) by @Jeffery Myers  -WARNING-
 154[raymath] ADDED: Vector4 math functions and Vector2 variants of some Vector3 functions (#3828) by @Bowserinator
 155[raymath] REVIEWED: Fix MSVC warnings/errors in C++ (#4125) by @Jeffery Myers
 156[raymath] REVIEWED: Add extern "C" to raymath header for C++ (#3978) by @Jeffery Myers
 157[raymath] REVIEWED: `QuaternionFromAxisAngle()`, remove redundant axis length calculation (#3900) by @jtainer
 158[raymath] REVIEWED: `Vector3Perpendicular()`, avoid implicit conversion from float to double (#3799) by @João Foscarini
 159[raymath] REVIEWED: `MatrixDecompose()`, incorrect output for certain scale and rotations (#4461) by @waveydave
 160[raymath] REVIEWED: Small code refactor (#3753) by @Idir Carlos Aliane
 161[rshapes] ADDED: `CheckCollisionCircleLine()` (#4018) by @kai-z99
 162[rshapes] REVIEWED: Multisegment Bezier splines (#3744) by @Santiago Pelufo
 163[rshapes] REVIEWED: Expose shapes drawing texture and rectangle (#3677) by @Jeffery Myers
 164[rshapes] REVIEWED: `DrawLine()` #4075 by @Ray
 165[rshapes] REVIEWED: `DrawPixel()` drawing by @Ray
 166[rshapes] REVIEWED: `DrawLine()` to avoid pixel rounding issues #3931 by @Ray
 167[rshapes] REVIEWED: `DrawRectangleLines()`, considering view matrix for lines "alignment" by @Ray
 168[rshapes] REVIEWED: `DrawRectangleLines()`, pixel offset (#4261) by @RadsammyT
 169[rshapes] REVIEWED: `DrawRectangleLines()`, pixel offset when scaling (#3884) by @Ray
 170[rshapes] REVIEWED: `DrawRectangleLinesEx()`, make sure accounts for square tiles (#4382) by @Jojaby
 171[rshapes] REVIEWED: `Draw*Gradient()` color parameter names (#4270) by @Paperdomo101
 172[rshapes] REVIEWED: `DrawGrid()`, remove duplicate color calls (#4148) by @Jeffery Myers
 173[rshapes] REVIEWED: `DrawSplineLinear()` to `SUPPORT_SPLINE_MITERS` by @Ray
 174[rshapes] REVIEWED: `DrawSplineLinear()`, implement miters (#3585) by @Toctave
 175[rshapes] REVIEWED: `CheckCollisionPointRec()` by @Ray
 176[rshapes] REVIEWED: `CheckCollisionPointCircle()`, new implementation (#4135) by @kai-z99
 177[rshapes] REVIEWED: `CheckCollisionCircles()`, optimized (#4065) by @kai-z99
 178[rshapes] REVIEWED: `CheckCollisionPointPoly()` (#3750) by @Antonio Raúl
 179[rshapes] REVIEWED: `CheckCollisionCircleRec()` (#3584) by @ubkp
 180[rshapes] REVIEWED: Add more detail to function comment (#4344) by @Jeffery Myers
 181[rshapes] REVIEWED: Functions that draw point arrays take them as const (#4051) by @Jeffery Myers
 182[rtextures] ADDED: `ColorIsEqual()` by @Ray
 183[rtextures] ADDED: `ColorLerp()`, to mix 2 colors together (#4310) by @SusgUY446
 184[rtextures] ADDED: `LoadImageAnimFromMemory()` (#3681) by @IoIxD
 185[rtextures] ADDED: `ImageKernelConvolution()` (#3528) by @Karim
 186[rtextures] ADDED: `ImageFromChannel()` (#4105) by @Bruno Cabral
 187[rtextures] ADDED: `ImageDrawLineEx()` (#4097) by @Le Juez Victor
 188[rtextures] ADDED: `ImageDrawTriangle()` (#4094) by @Le Juez Victor
 189[rtextures] REMOVED: SVG files loading and drawing, moving it to raylib-extras by @Ray -WARNING-
 190[rtextures] REVIEWED: `LoadImage()`, added support for 3-channel QOI images (#4384) by @R-YaTian
 191[rtextures] REVIEWED: `LoadImageRaw()` #3926 by @Ray
 192[rtextures] REVIEWED: `LoadImageColors()`, advance k in loop (#4120) by @Bruno Cabral
 193[rtextures] REVIEWED: `LoadTextureCubemap()`, added `mipmaps` #3665 by @Ray
 194[rtextures] REVIEWED: `LoadTextureCubemap()`, assign format to cubemap (#3823) by @Gary M
 195[rtextures] REVIEWED: `LoadTextureCubemap()`, load mipmaps for cubemaps (#4429) by @Nikolas
 196[rtextures] REVIEWED: `LoadTextureCubemap()`, avoid dangling re-allocated pointers (#4439) by @Nikolas
 197[rtextures] REVIEWED: `LoadImageFromScreen()`, fix scaling (#3881) by @proberge-dev
 198[rtextures] REVIEWED: `LoadImageFromMemory()`, warnings on invalid image data (#4179) by @Jutastre
 199[rtextures] REVIEWED: `LoadImageAnimFromMemory()`, added security checks (#3924) by @Ray
 200[rtextures] REVIEWED: `ImageColorTint()` and `ColorTint()`, optimized (#4015) by @Le Juez Victor
 201[rtextures] REVIEWED: `ImageKernelConvolution()`, formating and warnings by @Ray
 202[rtextures] REVIEWED: `ImageDrawRectangleRec`, fix bounds check (#3732) by @Blockguy24
 203[rtextures] REVIEWED: `ImageResizeCanvas()`, implemented fill color (#3720) by @Lieven Petersen
 204[rtextures] REVIEWED: `ImageDrawRectangleRec()` (#3721) by @Le Juez Victor
 205[rtextures] REVIEWED: `ImageDraw()`, don't try to blend images without alpha (#4395) by @Nikolas
 206[rtextures] REVIEWED: `GenImagePerlinNoise()` being stretched (#4276) by @Bugsia
 207[rtextures] REVIEWED: `GenImageGradientLinear()`, fix some angles (#4462) by @decromo
 208[rtextures] REVIEWED: `DrawTexturePro()` to avoid negative dest rec #4316 by @Ray
 209[rtextures] REVIEWED: `ColorToInt()`, fix undefined behaviour (#3996) by @OetkenPurveyorOfCode
 210[rtextures] REVIEWED: Remove panorama cubemap layout option (#4425) by @Jeffery Myers
 211[rtextures] REVIEWED: Removed unneeded module check, `rtextures` should not depend on `rtext` by @Ray
 212[rtextures] REVIEWED: Simplified for loop for some image manipulation functions (#3712) by @Alice Nyaa
 213[rtext] ADDED: BDF fonts support (#3735) by @Stanley Fuller -WARNING-
 214[rtext] ADDED: `TextToCamel()` (#4033) by @IoIxD
 215[rtext] ADDED: `TextToSnake()` (#4033) by @IoIxD
 216[rtext] ADDED: `TextToFloat()` (#3627) by @Benjamin Schmid Ties
 217[rtext] REDESIGNED: `SetTextLineSpacing()` by @Ray -WARNING-
 218[rtext] REVIEWED: `LoadFontDataBDF()` name and formating by @Ray
 219[rtext] REVIEWED: `LoadFontDefault()`, initialize glyphs and recs to zero #4319 by @Ray
 220[rtext] REVIEWED: `LoadFontEx()`, avoid default font fallback (#4077) by @Peter0x44 -WARNING-
 221[rtext] REVIEWED: `LoadBMFont()`, extended functionality (#3536) by @Dongkun Lee
 222[rtext] REVIEWED: `LoadBMFont()`, issue on not glyph data initialized by @Ray
 223[rtext] REVIEWED: `LoadFontFromMemory()`, use strncpy() to fix buffer overflow (#3795) by @Mingjie Shen
 224[rtext] REVIEWED: `LoadCodepoints()` returning a freed ptr when count is 0 (#4089) by @Alice Nyaa
 225[rtext] REVIEWED: `LoadFontData()` avoid fallback glyphs by @Ray -WARNING-
 226[rtext] REVIEWED: `LoadFontData()`, load image only if glyph has been found in font by @Ray
 227[rtext] REVIEWED: `ExportFontAsCode()`, fix C++ compiler errors (#4013) by @DarkAssassin23
 228[rtext] REVIEWED: `MeasureTextEx()` height calculation (#3770) by @Marrony Neris
 229[rtext] REVIEWED: `MeasureTextEx()`, additional check for empty input string (#4448) by @mpv-enjoyer
 230[rtext] REVIEWED: `CodepointToUTF8()`, clean static buffer #4379 by @Ray
 231[rtext] REVIEWED: `TextToFloat()`, always multiply by sign (#4273) by @listeria
 232[rtext] REVIEWED: `TextReplace()` const correctness (#3678) by @maverikou
 233[rtext] REVIEWED: `TextToFloat()`, coding style (#3627) by @Benjamin Schmid Ties
 234[rtext] REVIEWED: Some comments to align to style (#3756) by @Idir Carlos Aliane
 235[rtext] REVIEWED: Adjust font atlas area calculation so padding area is not underestimated at small font sizes (#3719) by @Tim Romero
 236[rmodels] ADDED: GPU skinning support for models animations (#4321) by @Daniel Holden -WARNING-
 237[rmodels] ADDED: Support 16-bit unsigned short vec4 format for gltf joint loading (#3821) by @Gary M
 238[rmodels] ADDED: Support animation names for the m3d model format (#3714) by @kolunmi
 239[rmodels] ADDED: `DrawModelPoints()`, more performant point cloud rendering (#4203) by @Reese Gallagher
 240[rmodels] ADDED: `ExportMeshAsCode()` by @Ray
 241[rmodels] REVIEWED: Multiple updates to gltf loading, improved macro (#4373) by @Harald Scheirich
 242[rmodels] REVIEWED: `LoadOBJ()`, correctly split obj meshes by material (#4285) by @Jeffery Myers
 243[rmodels] REVIEWED: `LoadOBJ()`, add warning when loading an OBJ with multiple materials (#4271) by @Jeffery Myers
 244[rmodels] REVIEWED: `LoadOBJ()`, fix bug that fragmented the loaded meshes (#4494) by @Eike Decker
 245[rmodels] REVIEWED: `LoadIQM()`, set model.meshMaterial[] (#4092) by @SuperUserNameMan
 246[rmodels] REVIEWED: `LoadIQM()`, attempt to load texture from IQM at loadtime (#4029) by @Jett
 247[rmodels] REVIEWED: `LoadM3D(), fix vertex colors for m3d files (#3859) by @Jeffery Myers
 248[rmodels] REVIEWED: `LoadGLTF()`, supporting additional vertex data formats (#3546) by @MrScautHD
 249[rmodels] REVIEWED: `LoadGLTF()`, correctly handle the node hierarchy in a glTF file (#4037) by @Paul Melis
 250[rmodels] REVIEWED: `LoadGLTF()`, replaced SQUAD quat interpolation with cubic hermite (gltf 2.0 specs) (#3920) by @Benji
 251[rmodels] REVIEWED: `LoadGLTF()`, support 2nd texture coordinates loading by @Ray
 252[rmodels] REVIEWED: `LoadGLTF()`, support additional vertex attributes data formats #3890 by @Ray
 253[rmodels] REVIEWED: `LoadGLTF()`, set cgltf callbacks to use `LoadFileData()` and `UnloadFileData()` (#3652) by @kolunmi
 254[rmodels] REVIEWED: `LoadGLTF()`, JOINTS loading #3836 by @Ray
 255[rmodels] REVIEWED: `LoadImageFromCgltfImage()`, fix base64 padding support (#4112) by @SuperUserNameMan
 256[rmodels] REVIEWED: `LoadModelAnimationsIQM()`, fix corrupted animation names (#4026) by @Jett
 257[rmodels] REVIEWED: `LoadModelAnimationsGLTF()`, load animations with 1 frame (#3804) by @Nikita Blizniuk
 258[rmodels] REVIEWED: `LoadModelAnimationsGLTF()`, added missing interpolation types (#3919) by @Benji
 259[rmodels] REVIEWED: `LoadModelAnimationsGLTF()` (#4107) by @VitoTringolo
 260[rmodels] REVIEWED: `LoadBoneInfoGLTF()`, add check for animation name being NULL (#4053) by @VitoTringolo
 261[rmodels] REVIEWED: `GenMeshSphere()`, fix artifacts (#4460) by @MikiZX1
 262[rmodels] REVIEWED: `GenMeshTangents()`, read uninitialized values, fix bounding case (#4066) by @kai-z99
 263[rmodels] REVIEWED: `GenMeshTangents()`, fixed out of bounds error (#3990) by @Salvador Galindo
 264[rmodels] REVIEWED: `UpdateModelAnimation()`, performance speedup (#4470) by @JettMonstersGoBoom
 265[rmodels] REVIEWED: `DrawCylinder()`, fix drawing due to imprecise angle (#4034) by @Paul Melis
 266[rmodels] REVIEWED: `DrawCylinder()`, fix drawing of cap (#4478) by @JeffM2501
 267[rmodels] REVIEWED: `DrawMesh()`, send full matModel to shader in DrawMesh (#4005) (#4022) by @David Holland
 268[rmodels] REVIEWED: `DrawMesh()`, fix material specular map retrieval (#3758) by @Victor Gallet
 269[rmodels] REVIEWED: `DrawModelEx()`, simplified multiplication of colors (#4002) by @Le Juez Victor
 270[rmodels] REVIEWED: `DrawBillboardPro()`, to be consistend with `DrawTexturePro()` (#4132) by @bohonghuang
 271[rmodels] REVIEWED: `DrawSphereEx()` optimization (#4106) by @smalltimewizard
 272[raudio] REVIEWED: `LoadMusicStreamFromMemory()`, support 24-bit FLACs (#4279) by @konstruktor227
 273[raudio] REVIEWED: `LoadWaveSamples()`, fix mapping of wave data (#4062) by @listeria
 274[raudio] REVIEWED: `LoadMusicStream()`, remove drwav_uninit() (#3986) by @FishingHacks
 275[raudio] REVIEWED: `LoadMusicStream()` qoa and wav loading (#3966) by @veins1
 276[raudio] REVIEWED: `ExportWaveAsCode()`, segfault (#3769) by @IoIxD
 277[raudio] REVIEWED: `WaveCrop()`, fix issues and use frames instead of samples (#3994) by @listeria
 278[raudio] REVIEWED: Crash from multithreading issues (#3907) by @Christian Haas
 279[raudio] REVIEWED: Reset music.ctxType if loading wasn't succesful (#3917) by @veins1
 280[raudio] REVIEWED: Added missing functions in "standalone" mode (#3760) by @Alessandro Nikolaev
 281[raudio] REVIEWED: Disable unused miniaudio features (#3544) by @Alexandre Almeida
 282[raudio] REVIEWED: Fix crash when switching playback device at runtime (#4102) by @jkaup
 283[raudio] REVIEWED: Support 24 bits samples for FLAC format (#4058) by @Alexey Kutepov
 284[examples] ADDED: `core_random_sequence` (#3846) by @Dalton Overmyer
 285[examples] ADDED: `core_input_virtual_controls` (#4342) by @oblerion
 286[examples] ADDED: `shapes_rectangle_advanced `, implementing `DrawRectangleRoundedGradientH()` (#4435) by @Everton Jr.
 287[examples] ADDED: `models_bone_socket` (#3833) by @iP
 288[examples] ADDED: `shaders_vertex_displacement` (#4186) by @Alex ZH
 289[examples] ADDED: `shaders_shadowmap` (#3653) by @TheManTheMythTheGameDev
 290[examples] REVIEWED: `core_2d_camera_platformer` by @Ray
 291[examples] REVIEWED: `core_2d_camera_mouse_zoom`, use logarithmic scaling for a 2d zoom functionality (#3977) by @Mike Will
 292[examples] REVIEWED: `core_input_gamepad_info`, all buttons displayed within the window (#4241) by @Asdqwe
 293[examples] REVIEWED: `core_input_gamepad_info`, show ps3 controller (#4040) by @Konrad Gutvik Grande
 294[examples] REVIEWED: `core_input_gamepad`, add drawing for generic gamepad (#4424) by @Asdqwe
 295[examples] REVIEWED: `core_input_gamepad`, add deadzone handling (#4422) by @Asdqwe
 296[examples] REVIEWED: `shapes_bouncing_ball` (#4226) by @Anthony Carbajal
 297[examples] REVIEWED: `shapes_following_eyes` (#3710) by @Hongyu Ouyang
 298[examples] REVIEWED: `shapes_draw_rectangle_rounded` by @Ray
 299[examples] REVIEWED: `shapes_draw_ring`, fix other examples (#4211) by @kai-z99
 300[examples] REVIEWED: `shapes_lines_bezier` by @Ray
 301[examples] REVIEWED: `textures_image_kernel` #3556 by @Ray
 302[examples] REVIEWED: `text_input_box` (#4229) by @Anthony Carbajal
 303[examples] REVIEWED: `text_writing_anim` (#4230) by @Anthony Carbajal
 304[examples] REVIEWED: `models_billboard` by @Ray
 305[examples] REVIEWED: `models_cubicmap` by @Ray
 306[examples] REVIEWED: `models_point_rendering` by @Ray
 307[examples] REVIEWED: `models_box_collisions` (#4224) by @Anthony Carbajal
 308[examples] REVIEWED: `models_skybox`, do not use HDR by default (#4115) by @Jeffery Myers
 309[examples] REVIEWED: `shaders_basic_pbr` (#4225) by @Anthony Carbajal
 310[examples] REVIEWED: `shaders_palette_switch` by @Ray
 311[examples] REVIEWED: `shaders_hybrid_render` (#3908) by @Yousif
 312[examples] REVIEWED: `shaders_lighting_instancing`, fix vertex shader (#4056) by @Karl Zylinski
 313[examples] REVIEWED: `shaders_raymarching`, add `raymarching.fs` for GLSL120 (#4183) by @CDM15y
 314[examples] REVIEWED: `shaders_shadowmap`, fix shaders for GLSL 1.20 (#4167) by @CDM15y
 315[examples] REVIEWED: `shaders_deferred_render` (#3655) by @Jett
 316[examples] REVIEWED: `shaders_basic_pbr` (#3621) by @devdad
 317[examples] REVIEWED: `shaders_basic_pbr`, remove dependencies (#3649) by @TheManTheMythTheGameDev
 318[examples] REVIEWED: `shaders_basic_pbr`, added more comments by @Ray
 319[examples] REVIEWED: `shaders_gpu_skinning`, to work with OpenGL ES 2.0 #4412 by @Ray
 320[examples] REVIEWED: `shaders_model_shader`, use free camera (#4428) by @IcyLeave6109
 321[examples] REVIEWED: `audio_stream_effects` (#3618) by @lipx
 322[examples] REVIEWED: `audio_raw_stream` (#3624) by @riadbettole
 323[examples] REVIEWED: `audio_mixed_processor` (#4214) by @Anthony Carbajal
 324[examples] REVIEWED: `raylib_opengl_interop`, fix building on PLATFORM_DESKTOP_SDL (#3826) by @Peter0x44
 325[examples] REVIEWED: Update examples missing UnloadTexture() calls (#4234) by @Anthony Carbajal
 326[examples] REVIEWED: Added GLSL 100 and 120 shaders to lightmap example (#3543) by @Jussi Viitala
 327[examples] REVIEWED: Set FPS to always 60 in all exampels (#4235) by @Anthony Carbajal
 328[build] REVIEWED: Makefile by @Ray
 329[build] REVIEWED: Makefile, fix wrong flag #3593 by @Ray
 330[build] REVIEWED: Makefile, disable wayland by default (#4369) by @Anthony Carbajal
 331[build] REVIEWED: Makefile, VSCode, fix to support multiple .c files (#4391) by @Alan Arrecis
 332[build] REVIEWED: Makefile, fix -Wstringop-truncation warning (#4096) by @Peter0x44
 333[build] REVIEWED: Makefile, fix issues for RGFW on Linux/macOS (#3969) by @Colleague Riley
 334[build] REVIEWED: Makefile, update RAYLIB_VERSION (#3901) by @Belllg
 335[build] REVIEWED: Makefile, use mingw32-make for Windows (#4436) by @Asdqwe
 336[build] REVIEWED: Makefile, move CUSTOM_CFLAGS for better visibility (#4054) by @Lázaro Albuquerque
 337[build] REVIEWED: Makefile, update emsdk paths to latest versions by @Ray
 338[build] REVIEWED: Makefile examples, align /usr/local with /src Makefile (#4286) by @Tchan0
 339[build] REVIEWED: Makefile examples, added `textures_image_kernel` (#3555) by @Sergey Zapunidi
 340[build] REVIEWED: Makefile examples (#4209) by @Anthony Carbajal
 341[build] REVIEWED: Makefile examples, to work on NetBSD (#4438) by @NishiOwO
 342[build] REVIEWED: Makefile examples, WebGL2 (OpenGL ES 3.0) backend flags #4330 by @Ray
 343[build] REVIEWED: Makefile examples, web building (#4434) by @Asdqwe
 344[build] REVIEWED: build.zig, fix various issues around `-Dconfig` (#4398) by @Sage Hane
 345[build] REVIEWED: build.zig, fix type mismatch (#4383) by @yuval_dev
 346[build] REVIEWED: build.zig, minor fixes (#4381) by @Sage Hane
 347[build] REVIEWED: build.zig, fix @src logic and a few things (#4380) by @Sage Hane
 348[build] REVIEWED: build.zig, improve logic (#4375) by @Sage Hane
 349[build] REVIEWED: build.zig, issues  (#4374) by @William Culver
 350[build] REVIEWED: build.zig, issues (#4366) by @Visen
 351[build] REVIEWED: build.zig, support desktop backend change (#4358) by @Nikolas
 352[build] REVIEWED: build.zig, use zig fmt (#4242) by @freakmangd
 353[build] REVIEWED: build.zig, check if wayland-scanner is installed (#4217) by @lnc3l0t
 354[build] REVIEWED: build.zig, override config.h definitions (#4193) by @lnc3l0t
 355[build] REVIEWED: build.zig, support GLFW platform detection (#4150) by @InventorXtreme
 356[build] REVIEWED: build.zig, make emscripten build compatible with Zig 0.13.0 (#4121) by @Mike Will
 357[build] REVIEWED: build.zig, pass the real build.zig file (#4113) by @InKryption
 358[build] REVIEWED: build.zig, leverage `dependencyFromBuildZig` (#4109) by @InKryption
 359[build] REVIEWED: build.zig, run examples from their directories (#4063) by @Mike Will
 360[build] REVIEWED: build.zig, fix raygui build when using addRaygui externally (#4027) by @Viktor Pocedulić
 361[build] REVIEWED: build.zig, fix emscripten build (#4012) by @Dylan
 362[build] REVIEWED: build.zig, update to zig 0.12.0dev while keeping 0.11.0 compatibility (#3715) by @freakmangd
 363[build] REVIEWED: build.zig, drop support for 0.11.0 and use more idiomatic build script code (#3927) by @freakmangd
 364[build] REVIEWED: build.zig, sdd shared library build option and update to zig 0.12.0-dev.2139 (#3727) by @Andrew Lee
 365[build] REVIEWED: build.zig, add `opengl_version` option (#3979) by @Alexei Mozaidze
 366[build] REVIEWED: build.zig, fix local dependency break (#3913) by @freakmangd
 367[build] REVIEWED: build.zig, fix breaking builds for Zig v0.11.0 (#3896) by @iarkn
 368[build] REVIEWED: build.zig, update to latest version and simplify (#3905) by @freakmangd
 369[build] REVIEWED: build.zig, remove all uses of deps/mingw (#3805) by @Peter0x44
 370[build] REVIEWED: build.zig, fixed illegal instruction crash (#3682) by @WisonYe
 371[build] REVIEWED: build.zig, fix broken build on #3863 (#3891) by @Nikolas Mauropoulos
 372[build] REVIEWED: build.zig, improve cross-compilation (#4468) by @deathbeam
 373[build] REVIEWED: CMake, update to raylib 5.0 (#3623) by @Peter0x44
 374[build] REVIEWED: CMake, added PLATFORM option for Desktop SDL (#3809) by @mooff
 375[build] REVIEWED: CMake, fix GRAPHICS_* check (#4359) by @Kacper Zybała
 376[build] REVIEWED: CMake, examples projects  (#4332) by @Ridge3Dproductions
 377[build] REVIEWED: CMake, fix warnings in projects/CMake/CMakeLists.txt (#4278) by @Peter0x44
 378[build] REVIEWED: CMake, delete BuildOptions.cmake (#4277) by @Peter0x44
 379[build] REVIEWED: CMake, update version to 5.0 so libraries are correctly versioned (#3615) by @David Williams
 380[build] REVIEWED: CMake, improved linkage flags to save 28KB on the final bundle (#4177) by @Lázaro Albuquerque
 381[build] REVIEWED: CMake, support OpenGL ES3 in `LibraryConfigurations.cmake` (#4079) by @manuel5975p
 382[build] REVIEWED: CMake, `config.h` fully available to users (#4044) by @Lázaro Albuquerque
 383[build] REVIEWED: CMake, pass -sFULL_ES3 instead of -sFULL_ES3=1 (#4090) by @manuel5975p
 384[build] REVIEWED: CMake, SDL build link the glfw dependency (#3860) by @Rob Loach
 385[build] REVIEWED: CMake, infer CMAKE_MODULE_PATH in super-build (#4042) by @fruzitent
 386[build] REVIEWED: CMake, remove USE_WAYLAND option (#3851) by @Alexandre Almeida
 387[build] REVIEWED: CMake, disable SDL rlgl_standalone example (#3861) by @Rob Loach
 388[build] REVIEWED: CMake, bump version required to avoid deprecated #3639 by @Ray
 389[build] REVIEWED: CMake, fix examples linking -DPLATFORM=SDL (#3825) by @Peter0x44
 390[build] REVIEWED: CMake, don't build for wayland by default (#4432) by @Peter0x44
 391[build] REVIEWED: VS2022, misc improvements by @Ray
 392[build] REVIEWED: VS2022, fix build warnings (#4095) by @Jeffery Myers
 393[build] REVIEWED: VS2022, added new examples (#4492) by @Jeffery Myers
 394[build] REVIEWED: Fix fix-build-paths (#3849) by @Caleb Barger
 395[build] REVIEWED: Fix build paths (#3835) by @Steve Biedermann
 396[build] REVIEWED: Fix VSCode sample project for macOS (#3666) by @Tim Romero
 397[build] REVIEWED: Fix some warnings on web builds and remove some redundant flags (#4069) by @Lázaro Albuquerque
 398[build] REVIEWED: Fix examples not building with gestures system disabled (#4020) by @Sprix
 399[build] REVIEWED: Fix GLFW runtime platform detection (#3863) by @Alexandre Almeida
 400[build] REVIEWED: Fix DRM cross-compile without sysroot (#3839) by @Christian W. Zuckschwerdt
 401[build] REVIEWED: Fix cmake-built libraylib.a to properly include GLFW's object files (#3598) by @Peter0x44
 402[build] REVIEWED: Hide unneeded internal symbols when building raylib as an so or dylib (#3573) by @Peter0x44
 403[build] REVIEWED: Corrected the path of android ndk toolchains for OSX platforms (#3574) by @Emmanuel Méra
 404[build][CI] ADDED: Automatic update for raylib_api.* (#3692) by @seiren
 405[build][CI] REVIEWED: Update workflows to use latest actions/upload-artifact by @Ray
 406[build][CI] REVIEWED: CodeQL minor tweaks to avoid some warnings by @Ray
 407[build][CI] REVIEWED: Update linux_examples.yml by @Ray
 408[build][CI] REVIEWED: Update linux.yml by @Ray
 409[build][CI] REVIEWED: Update webassembly.yml by @Ray
 410[build][CI] REVIEWED: Update cmake.yml by @Ray
 411[build][CI] REVIEWED: Update codeql.yml, exclude src/external files by @Ray
 412[bindings] ADDED: raylib-APL (#4253) by @Brian E
 413[bindings] ADDED: raylib-bqn, moved rayed-bqn (#4331) by @Brian E
 414[bindings] ADDED: brainfuck binding (#4169) by @_Tradam
 415[bindings] ADDED: raylib-zig-bindings (#4004) by @Lionel Briand
 416[bindings] ADDED: Raylib-CSharp wrapper (#3963) by @MrScautHD
 417[bindings] ADDED: COBOL binding (#3661) by @glowiak
 418[bindings] ADDED: raylib-beef binding (#3640) by @Braedon Lewis
 419[bindings] ADDED: Raylib-CSharp-Vinculum (#3571) by @Danil
 420[bindings] REVIEWED: Remove broken-link bindings #3899 by @Ray
 421[bindings] REVIEWED: Updated some versions on BINDINGS.md by @Ray
 422[bindings] REVIEWED: Removed umaintained repos (#3999) by @Antonis Geralis
 423[bindings] REDESIGNED: Add binding link to name, instead of separate column (#3995) by @Carmine Pietroluongo
 424[bindings] UPDATED: h-raylib (#4378) by @Anand Swaroop
 425[bindings] UPDATED: Raylib.lean, to master version (#4337) by @Daniil Kisel
 426[bindings] UPDATED: raybit, to latest master (#4311) by @Alex
 427[bindings] UPDATED: dray binding (#4163) by @red thing
 428[bindings] UPDATED: Julia (#4068) by @ShalokShalom
 429[bindings] UPDATED: nim to latest master (#3999) by @Antonis Geralis
 430[bindings] UPDATED: raylib-rs (#3991) by @IoIxD
 431[bindings] UPDATED: raylib-zig version (#3902) by @Nikolas
 432[bindings] UPDATED: raylib-odin (#3868) by @joyousblunder
 433[bindings] UPDATED: Raylib VAPI (#3829) by @Alex Macafee
 434[bindings] UPDATED: Raylib-cs (#3774) by @Brandon Baker
 435[bindings] UPDATED: h-raylib (#3739) by @Anand Swaroop
 436[bindings] UPDATED: OCaml bindings version (#3730) by @Tobias Mock
 437[bindings] UPDATED: Raylib.c3 (#3689) by @Kenta
 438[bindings] UPDATED: ray-cyber to 5.0 (#3654) by @fubark
 439[bindings] UPDATED: raylib-freebasic binding (#3591) by @WIITD
 440[bindings] UPDATED: SmallBASIC (#3562) by @Chris Warren-Smith
 441[bindings] UPDATED: Python raylib-py v5.0.0beta1 (#3557) by @Jorge A. Gomes
 442[bindings] UPDATED: raylib-d binding (#3561) by @Steven Schveighoffer
 443[bindings] UPDATED: Janet (#3553) by @Dmitry Matveyev
 444[bindings] UPDATED: Raylib.nelua (#3552) by @Auz
 445[bindings] UPDATED: raylib-cpp to 5.0 (#3551) by @Rob Loach
 446[bindings] UPDATED: Pascal binding (#3548) by @Gunko Vadim
 447[external] UPDATED: stb_truetype.h to latest version by @Ray
 448[external] UPDATED: stb_image_resize2.h to latest version by @Ray
 449[external] UPDATED: stb_image.h to latest version by @Ray
 450[external] UPDATED: qoa.h to latest version by @Ray
 451[external] UPDATED: dr_wav.h to latest version by @Ray
 452[external] UPDATED: dr_mp3.h to latest version by @Ray
 453[external] UPDATED: cgltf.h to latest version by @Ray
 454[external] REVIEWED: rl_gputex, correctly load mipmaps from DDS files (#4399) by @Nikolas
 455[external] REVIEWED: stb_image_resize2, dix vld1q_f16 undeclared in arm (#4309) by @masnm
 456[external] REVIEWED: miniaudio, fix library and Makefile for NetBSD (#4212) by @NishiOwO
 457[external] REVIEWED: raygui, update to latest version 4.5-dev (#4238) by @Anthony Carbajal
 458[external] REVIEWED: jar_xml, replace unicode characters by ascii characters to avoid warning in MSVC (#4196) by @Rico P
 459[external] REVIEWED: vox_loader, normals and new voxels shader (#3843) by @johann nadalutti
 460[parser] REVIEWED: README.md, to mirror fixed help text (#4336) by @Daniil Kisel
 461[parser] REVIEWED: Fix seg fault with long comment lines (#4306) by @Chris Warren-Smith
 462[parser] REVIEWED: Don't crash for files that don't end in newlines (#3981) by @Peter0x44
 463[parser] REVIEWED: Issues in usage example help text (#4084) by @Peter0x44
 464[parser] REVIEWED: Fix parsing of empty parentheses (#3974) by @Filyus
 465[parser] REVIEWED: Address parsing issue when generating XML #3893 by @Ray
 466[parser] REVIEWED: `MemoryCopy()`, prevent buffer overflow by replacing hard-coded arguments (#4011) by @avx0
 467[misc] ADDED: Create logo/raylib.icns by @Ray
 468[misc] ADDED: Create logo/raylib_1024x1024.png by @Ray
 469[misc] ADDED: Default vertex/fragment shader for OpenGL ES 3.0 (#4178) by @Lázaro Albuquerque
 470[misc] REVIEWED: README.md, fix Reddit badge (#4136) by @Ninad Sachania
 471[misc] REVIEWED: .gitignore, ignore compiled dll binaries (#3628) by @2Bear
 472[misc] REVIEWED: Fix undesired scrollbars on web shell files (#4104) by @jspast
 473[misc] REVIEWED: Made comments on raylib.h match comments in rcamera.h (#3942) by @Tomas Fabrizio Orsi
 474[misc] REVIEWED: Make raylib/raygui work better on touchscreen (#3728) by @Hongyu Ouyang
 475[misc] REVIEWED: Update config.h by @Ray
 476
 477-------------------------------------------------------------------------
 478Release:     raylib 5.0 - 10th Anniversary Edition (18 November 2023)
 479-------------------------------------------------------------------------
 480KEY CHANGES:
 481 - REDESIGNED: rcore module platform-split, by @ubkp, @michaelfiber, @Bigfoot71, @raysan5
 482 - ADDED: New platform backend supported: SDL
 483 - ADDED: New platform backend supported: Nintendo Switch (closed source)
 484 - ADDED: New Splines drawing and evaluation API
 485 - ADDED: New pseudo-random numbers generator: rprand
 486 - ADDED: Automation Events System API
 487 - UPDATED: raygui 4.0: New version of this immediate-mode gui system for tools development with raylib
 488
 489Detailed changes:
 490[rcore] ADDED: RAYLIB_VERSION_* values to raylib.h (#2856) by @RobLoach
 491[rcore] ADDED: IsKeyPressedRepeat() on PLATFORM_DESKTOP (#3245) by @actondev
 492[rcore] ADDED: SetWindowTitle() for PLATFORM_WEB (#3222) by @VitusVeit
 493[rcore] ADDED: FLAG_WINDOW_RESIZABLE for web (#3305) by @Peter0x44
 494[rcore] ADDED: SetWindowMaxSize() for desktop and web (#3309) by @ubkp
 495[rcore] ADDED: SetMouseCursor() for PLATFORM_WEB (#3414) by @BeardedBread
 496[rcore] ADDED: LoadRandomSequence()/UnloadRandomSequence() by @raysan5
 497[rcore] REMOVED: PLATFORM_RPI (#3232) by @michaelfiber
 498[rcore] REVIEWED: GetFileLength(), added comment (#3262) by @raysan5
 499[rcore] REVIEWED: Default shaders precission issue on PLATFORM_WEB (#3261) by @branc116
 500[rcore] REVIEWED: IsKey*() key validation checks (#3256) by @n77y
 501[rcore] REVIEWED: SetClipboardText() for PLATFORM_WEB (#3257) by @ubkp
 502[rcore] REVIEWED: Check if Ctrl modifier is among the currently set modifiers (#3230) by @mohad12211
 503[rcore] REVIEWED: Android app black screen when reopening by @Bigfoot71
 504[rcore] REVIEWED: Warnings when casting int to floats (#3218) by @JeffM2501
 505[rcore] REVIEWED: GetCurrentMonitor() detection inconsistency issue (#3215) by @ubkp
 506[rcore] REVIEWED: SetWindowMonitor() to no longer force fullscreen (#3209) by @ubkp
 507[rcore] REVIEWED: Fix mouse wheel not working in PLATFORM_RPI or PLATFORM_DRM (#3193) by @ubkp
 508[rcore] REVIEWED: GetMonitorName() description (#3184) (#3189) by @danilwhale
 509[rcore] REVIEWED: BeginScissorMode(), identify rendering to texture (#3510) by @gulrak
 510[rcore] REVIEWED: Window flags order (#3114) by @lesleyrs
 511[rcore] REVIEWED: Full movement for right analog stick (#3095) by @PixelPhobicGames
 512[rcore] REVIEWED: Fix Android app freeze after calling CloseWindow() (#3067) by @Bigfoot71
 513[rcore] REVIEWED: Lazy loading of default font used on image drawing (no InitWindow) by @raysan5
 514[rcore] REVIEWED: Minor tweaks to raylib events automation system @raysan5
 515[rcore] REVIEWED: GetCurrentMonitor() bugfix (#3058) by @hamyyy
 516[rcore] REVIEWED: Update CORE.Input.Touch.pointCount (#3024) by @raysan5
 517[rcore] REVIEWED: Mouse offset and scaling must be considered also on web!
 518[rcore] REVIEWED: CompressData(), possible stack overflow
 519[rcore] REVIEWED: GetWorldToScreenEx() (#3351) by @Brian-ED
 520[rcore] REVIEWED: Fix GetMouseDelta() issue for Android (#3404) by @Bigfoot71
 521[rcore] REVIEWED: GetFPS(), reset FPS averages when window is inited (#3445) by @JeffM2501
 522[rcore] REVIEWED: GetCurrentMonitor(), check window center position by @M374LX
 523[rcore] REVIEWED: GetRender*() issue on macOS highDPI (#3367) by @raysan5
 524[rcore] REVIEWED: ScanDirectoryFiles*(), paths building slashes sides (#3507)
 525[rlgl] ADDED: Experimental support for OpenGL ES 3.0 by @raysan5
 526[rlgl] ADDED: Support 16-Bit HDR textures (#3220) by @Not-Nik
 527[rlgl] ADDED: rlEnablePointMode() (#3490) by @JettMonstersGoBoom
 528[rlgl] ADDED: rlBlitFramebuffer(), required for deferred render
 529[rlgl] REVIEWED: LoadModel(), removed cube fallback mechanism (#3459)
 530[rlgl] REVIEWED: Improved support for ES3/WebGL2 (#3107) by @chemaguerra
 531[rlgl] REVIEWED: OpenGL 2.1 half floats support as part of an extension by @Not-Nik
 532[rlgl] REVIEWED: Avoid shader attribute not found log by @raysan5
 533[rlgl] REVIEWED: Avoid tracelog about not found uniforms (#3003) by @raysan5
 534[rlgl] REVIEWED: rLoadTexture() UBSAN complaints #1891 (#3321) by @Codom
 535[rlgl] REVIEWED: glInternalFormat as unsigned int
 536[rlgl] REVIEWED: OpenGL ES 3.0 support
 537[rshapes] ADDED: Spline drawing functions by @raysan5
 538[rshapes] ADDED: GetSplinePoint*() functions for spline evaluation by @raysan5
 539[rshapes] ADDED: DrawCircleLinesV() for consistency (#3452) by @Peter0x44
 540[rshapes] REVIEWED: DrawSplineCatmullRom() by @raysan5
 541[rshapes] REVIEWED: Minor fix in DrawLineBezier* (#3006) by @eternalStudent
 542[rshapes] REVIEWED: GetCollisionRec(), more performant (#3052) by @manuel5975p
 543[rshapes] REVIEWED: Fix off-by-one error in CheckCollisionPointRec() (#3022) by @dbechrd
 544[rtextures] ADDED: Basic SVG loading support (#2738) by @bXi
 545[rtextures] ADDED: Support 16-Bit HDR textures (#3220) by @Not-Nik
 546[rtextures] ADDED: ExportImageToMemory() by @raysan5
 547[rtextures] ADDED: ImageRotate() (#3078) by @danemadsen
 548[rtextures] ADDED: GenImageGradientSquare() (#3077) by @danemadsen
 549[rtextures] ADDED: GenImageLinearGradient() by @danemadsen
 550[rtextures] REMOVED: GenImageGradientH() and GenImageGradientV() by @danemadsen
 551[rtextures] REVIEWED: LoadImageSvg() by @raysan5
 552[rtextures] REVIEWED: Uninitialized thread-locals in stbi (#3282) (#3283) by @jbarthelmes
 553[rtextures] REVIEWED: ImageDrawRectangleRec(), validate drawing inside bounds by @JeffM2501
 554[rtextures] REVIEWED: LoadTextureCubemap() for manual layouts (#3204) by @Not-Nik
 555[rtextures] REVIEWED: Optimization of ImageDrawRectangleRec() (#3185) by @smalltimewizard
 556[rtextures] REVIEWED: ImageRotate() formatting by @raysan5
 557[rtextures] REVIEWED: GenImagePerlinNoise(), clamp values (#3071) by @raysan5
 558[rtextures] REVIEWED: Packing logic error in GenImageFontAtlas() (#2979) by @hanaxar
 559[rtextures] REVIEWED: Calculate exact image size in GenImageFontAtlas() (#2963) by @hanaxar
 560[rtextures] REVIEWED: ImageDrawRectangleRec() (#3027) by @raysan5
 561[rtextures] REVIEWED: ImageDraw() source clipping when drawing beyond top left (#3306) by @RobLoach
 562[rtextures] REVIEWED: UnloadRenderTexture(), additional checks
 563[rtextures] REVIEWED: Fixed compressed DDS texture loading issues (#3483) by @JaanDev
 564[rtext] ADDED: Font altas white rectangle and flag SUPPORT_FONT_ATLAS_WHITE_REC by @raysan5
 565[rtext] ADDED: SetTextLineSpacing() to define line breaks text drawing spacing by @raysan5
 566[rtext] RENAMED: LoadFont*() parameter names for consistency and coherence by @raysan5
 567[rtext] REVIEWED: GetCodepointCount(), ignore unused return value of GetCodepointNext by @ashn-dot-dev
 568[rtext] REVIEWED: TextFormat() warn user if buffer overflow occured (#3399) by @Murlocohol
 569[rtext] REVIEWED: TextFormat(), added "..." for truncation (#3366) by @raysan5
 570[rtext] REVIEWED: GetGlyphIndex() (#3000) by @raysan5
 571[rtext] REVIEWED: GetCodepointNext() to return default value by @chocolate42
 572[rtext] REVIEWED: TextToPascal() issue when first char is uppercase
 573[rmodels] ADDED: ModelAnimation.name field, initially with GLTF animation names by @alfredbaudisch
 574[rmodels] REDESIGNED: LoadOBJ(), avoid mesh splitting by materials, fix (#3398) by @raysan5
 575[rmodels] REVIEWED: Support .vox model files version 200 (#3097) by @Bigfoot71
 576[rmodels] REVIEWED: Materials loading (#3126) @raysan5
 577[rmodels] REVIEWED: DrawBillboardPro() to allow source of negative size (#3197) by @bohonghuang
 578[rmodels] REVIEWED: glTF loading segfault in animNormals memcpy by @charles-l
 579[rmodels] REVIEWED: LoadModelAnimationsGLTF(), free fileData after use (#3065) by @crynux
 580[rmodels] REVIEWED: GenMeshCubicmap(), correction of values (#3032) by @Bigfoot71
 581[rmodels] REVIEWED: DrawMesh() to avoid UBSAN complaining (#1891)
 582[rmodels] REVIEWED: GenMeshPlane() when resX != resZ (#3425) by @neyrox, @s-yablonskiy
 583[rmodels] REVIEWED: GetModelBoundingBox() (#3485)
 584[raudio] ADDED: LoadSoundAlias() by @JeffM2501
 585[raudio] ADDED: Missing structure on standalone mode (#3160) by @raysan5
 586[raudio] ADDED: GetMasterVolume() (#3434) by @rexim
 587[raudio] REVIEWED: Comments about sample format to AttachAudioStreamProcessor() (#3188) by @AlbertoGP
 588[raudio] REVIEWED: Documented buffer format for audio processors (#3186) by @AlbertoGP
 589[raudio] REVIEWED: ExportWaveAsCode() file saving by @RadsammyT
 590[raudio] REVIEWED: Fix warning on discarded const qualifier (#2967) by @RobLoach
 591[raudio] REVIEWED: Move mutex initialization before ma_device_start() (#3325) by @Bigfoot71
 592[raudio] REVIEWED: Fix UpdateSound() parameter name (#3405) by @KislyjKisel
 593[raudio] REVIEWED: Fix QOA seeking (#3494) by @veins1
 594[rcamera] REVIEWED: File-macros for consistency (#3161) by @raysan5
 595[rcamera] REVIEWED: Support analog stick camera controls (#3066) by @PixelPhobicGames
 596[rcamera] REVIEWED: CameraMoveToTarget(), ensure distance is greater than 0 (#3031) by @kolunmi
 597[rcamera] REVIEWED: Exposing rcamera functions to the dll (#3355) by @JeffM2501
 598[raymath] ADDED: Vector3Projection() and Vector3Rejection() (#3263) by @Dial0
 599[raymath] ADDED: EPSILON macro to each function requiring it (#3330) by @Brian-ED
 600[raymath] REVIEWED: Usage of 'sinf()' and 'cosf()' to be correct (#3181) by @RokasPuzonas
 601[raymath] REVIEWED: Slightly optimized Vector3Normalize() (#2982) by @RicoP
 602[raymath] REVIEWED: Comment to clarify raymath semantics by @raysan5
 603[raymath] REVIEWED: Comment about Matrix conventions by @raysan5
 604[raymath] REVIEWED: Vector2Angle() and Vector2LineAngle() (#3396) by @Murlocohol
 605[rgestures] REVIEWED: Optimize and simplify the gesture system (#3190) by @ubkp
 606[rgestures] REVIEWED: GESTURE_DRAG and GESTURE_SWIPE_* issues (mostly) for web (#3183) by @ubkp
 607[rgestures] REVIEWED: Touch pointCount for web (#3163) by @ubkp
 608[rgestures] REVIEWED: IsGestureDetected() parameter type
 609[utils] ADDED: Security checks to file reading (memory allocations) by @raysan5
 610[utils] REVIEWED: LoadFileData() potential issues with dataSize
 611[examples] ADDED: shaders_lightmap (#3043) by @nullstare
 612[examples] ADDED: core_2d_camera_split_screen (#3298) by @gabrielssanches
 613[examples] ADDED: LoadSoundAlias() usage example (#3223) by @JeffM2501
 614[examples] ADDED: textures_tiling (#3353) by @luis605
 615[examples] ADDED: shader_deferred_render (#3496) by @27justin
 616[examples] RENAMED: 2d_camera examples for consistency
 617[examples] REVIEWED: Text examples SetTextLineSpacing() to multiline examples by @raysan5
 618[examples] REVIEWED: examples/shapes/shapes_collision_area.c help instructions (#3279) by @asdqwe
 619[examples] REVIEWED: examples/shaders/shaders_texture_outline.c help instructions (#3278) by @asdqwe
 620[examples] REVIEWED: examples/others/easings_testbed.c help instructions and small twe  by @asdqwe
 621[examples] REVIEWED: example/audio/audio_module_player.c help instructions and small b  by @asdqwe
 622[examples] REVIEWED: example/models/models_loading_m3d.c controls (#3269) by @asdqwe
 623[examples] REVIEWED: example/models/models_loading_gltf.c controls (#3268) by @asdqwe
 624[examples] REVIEWED: text_unicode.c example crashing (#3250) by @ubkp
 625[examples] REVIEWED: rlgl_standalone.c compilation issue (#3242) by @ubkp
 626[examples] REVIEWED: core_input_gestures for Web (#3172) by @ubkp
 627[examples] REVIEWED: core_input_gamepad (#3110) by @iacore
 628[examples] REVIEWED: examples using raygui to raygui 4.0 by @raysan5
 629[examples] REVIEWED: Julia set shader example (#3467) by @joshcol9232
 630[build] ADDED: CMake option for SUPPORT_CUSTOM_FRAME_CONTROL (#3221) by @ubkp
 631[build] ADDED: New BORDERLESS_WINDOWED_MODE for PLATFORM_DESKTOP (#3216) by @ubkp
 632[build] ADDED: New examples to VS2022 solution by @raysan5
 633[build] REVIEWED: Updated Makefile and Makefile.Web, include new examples
 634[build] REVIEWED: Fix CMake extraneous -lglfw (#3266) by @iacore
 635[build] REVIEWED: Add missing cmake options (#3267) by @asdqwe
 636[build] REVIEWED: Match CMakeOptions.txt options default values (#3258) by @asdqwe
 637[build] REVIEWED: Add build.zig options for individual modules (#3254) by @actondev
 638[build] REVIEWED: build.zig to work with cross-compiling (#3225) by @yujiri8
 639[build] REVIEWED: Makefile build on PLATFORM_ANDROID, soname (#3211) by @ndytts
 640[build] REVIEWED: src/Makefile, fix misleading indentation (#3202) by @ashn-dot-dev
 641[build] REVIEWED: build.zig: Support for building with PLAFORM_DRM (#3191) by @jakubvf
 642[build] REVIEWED: Update CMakeOptions.txt by @raysan5
 643[build] REVIEWED: fix: cmake option "OPENGL_VERSION" doesn't work (#3170) by @royqh1979
 644[build] REVIEWED: Add error if raylib.h is included in a C++98 program (#3093) by @Peter0x44
 645[build] REVIEWED: Cross compilation for PLATFORM_DRM (#3091) by @TheLastBilly
 646[build] REVIEWED: build.zigm fixed cross-compiling from Linux (#3090)by @yujiri8
 647[build] REVIEWED: Enhanced cmake part for OpenBSD (#3086) by @rayit
 648[build] REVIEWED: Fixed compile on OpenBSD (#3085)by @rayit
 649[build] REVIEWED: CMake project example: fix a couple of typos (#3014) by @benjamin-thomas
 650[build] REVIEWED: Fix warnings in raylib for MSVC (#3004) by @JeffM2501
 651[build] REVIEWED: Update cmake example project (#3062) by @lesleyrs
 652[build] REVIEWED: Update build.zig be be able to build with current zig master (#3064) by @ryupold
 653[build] REVIEWED: VSCode project template (#3048) by @Shoozza
 654[build] REVIEWED: Fixed broken build.zig files. Now works with latest stable compiler ( by @Gamer-Kold
 655[build] REVIEWED: Fix missing symbol when rglfw.c on BSD platforms (#2968) by @Koromix
 656[build] REVIEWED: Update Makefile comment to indicate arm64 as a supported Linux deskto  @ashn-dot-dev
 657[build] REVIEWED: Update Makefile : clean raygui.c & physac.c (#3296) by @SuperUserNameMan
 658[build] REVIEWED: Update webassembly.yml and linux.yml
 659[build] REVIEWED: Update zig build system to zig version 0.11.0 (#3393) by @purple4pur
 660[build] REVIEWED: Fix for latest zig master (#3037) by @star-tek-mb
 661[build] REVIEWED: Examples Makefile to use Makefile.Web when building for web (#3449) by @keithstellyes
 662[build] REVIEWED: build.zig updates for 0.11.0 release. (#3501) by @cabarger
 663[build] REVIEWED: Support OpenGL ES 3.0 building on Web platform
 664[build] REVIEWED: Fix warnings in Visual Studio (#3512) by @JeffM2501
 665[build] REVIEWED: OpenGL ES 3.0 flags on CMakeOptions (#3514) by @awfulcooking
 666[bindings] ADDED: fortran-raylib
 667[bindings] ADDED: raylib-raku to bindings (#3299) by @vushu
 668[bindings] ADDED: claw-raylib to BINDINGS.md (#3310) by @bohonghuang
 669[bindings] ADDED: vaiorabbit/raylib-bindings (#3318) by @wilsonsilva
 670[bindings] ADDED: TurboRaylib (#3317) by @turborium
 671[bindings] ADDED: raylib-ffi to bindings list (#3164) by @ewpratten
 672[bindings] ADDED: raylib-pkpy-bindings (#3361) by @blueloveTH
 673[bindings] ADDED: Raylib.lean to BINDINGS.md (#3409) by @KislyjKisel
 674[bindings] UPDATED: BINDINGS.md (#3217) by @joseph-montanez
 675[bindings] UPDATED: BINDINGS.md to include rayjs (#3212) by @mode777
 676[bindings] UPDATED: latest h-raylib version (#3166) by @Anut-py
 677[bindings] UPDATED: bindbd-raylib3 to raylib 4.5 (#3157) by @o3o
 678[bindings] UPDATED: Janet bindings supported version update (#3083)by @archydragon
 679[bindings] UPDATED: BINDINGS.md (raylib-py -> 4.5) (#2992) by @overdev
 680[bindings] UPDATED: BINDINGS.md (raylib-lua -> 4.5) (#2989) by @TSnake41
 681[bindings] UPDATED: raylib-d binding version to 4.5 (#2988) by @schveiguy
 682[bindings] UPDATED: raylib-freebasic to 4.5 (#2986) by @WIITD
 683[bindings] UPDATED: BINDINGS.md (#2983) by @jarroddavis68
 684[bindings] UPDATED: BINDINGS.md for raylib Odin 4.5 (#2981) by @gingerBill
 685[bindings] UPDATED: BINDINGS.md (#2980) by @GuvaCode
 686[bindings] UPDATED: BINDINGS.md (#3002) by @fubark
 687[bindings] UPDATED: BINDINGS.md (#3053) by @JupiterRider
 688[bindings] UPDATED: BINDINGS.md (#3050) by @Its-Kenta
 689[bindings] UPDATED: CL bindings version (#3049) by @shelvick
 690[bindings] UPDATED: BINDINGS.md (#3026) by @ChrisDill
 691[bindings] UPDATED: BINDINGS.md (#3023) by @sDos280
 692[bindings] UPDATED: BINDINGS.md (#3017) by @Soutaisei
 693[bindings] UPDATED: Various versions to 4.5 (#2974) by @RobLoach
 694[bindings] UPDATED: raylib.zig version to 4.5 (#2971) by @ryupold
 695[bindings] UPDATED: h-raylib version (#2970) by @Anut-py
 696[bindings] UPDATED: Factor's raylib binding to v4.5 (#3350) by @WraithGlade
 697[bindings] UPDATED: raylib-ocaml bindings to 4.5 version (#3322) by @tjammer
 698[bindings] UPDATED: Jaylib binding (#3508) by @glowiak
 699[external] UPDATED: sdefl and sinfl DEFLATE compression libraries by @raysan5
 700[external] UPDATED: miniaudio v0.11.12 --> v0.11.19 by @raysan5
 701[external] UPDATED: rl_gputex.h compressed images loading library by @raysan5
 702[external] UPDATED: Replaced stb_image_resize.c by stb_image_resize2.h (#3403) by @BabakSamimi
 703[external] UPDATED: qoi and qoa libraries
 704[external] UPDATED: stb libraries (required ones)
 705[external] UPDATED: cgltf and m3d libraries
 706[external] REVIEWED: msf_gif.h, some warnings
 707[external] REVIEWED: sinfl external library to avoid ASAN complaints (#3349) by @raysan5
 708[misc] ADDED: New task point to issue template about checking the wiki (#3169) by @ubkp
 709[misc] ADDED: CodeQL for static code analysis (#3476) by @b4yuan
 710[misc] REVIEWED: Update FAQ.md by @raysan5
 711[misc] REVIEWED: Potential code issues reported by CodeQL (#3476)
 712[misc] REVIEWED: Fix a link in the FAQ (#3082)by @jasonliang-dev
 713[misc] REVIEWED: New file formats to FAQ (#3079) by @Luramoth
 714[misc] REVIEWED: Make assets loading extension case insensitive #3008 by @raysan5
 715[misc] REVIEWED: Updated web shells open-graph info by @raysan5
 716
 717-------------------------------------------------------------------------
 718Release:     raylib 4.5 (18 March 2023)
 719-------------------------------------------------------------------------
 720KEY CHANGES:
 721 - ADDED: Improved ANGLE support on Desktop platforms
 722 - ADDED: rcamera module, simpler and more extendable
 723 - ADDED: Support for M3D models and M3D/GLTF animations
 724 - ADDED: Support QOA audio format (import/export)
 725 - ADDED: rl_gputex module for compressed textures loading
 726 - REDESIGNED: rlgl module for automatic render-batch limits checking
 727 - REDESIGNED: rshapes module to minimize the rlgl dependency
 728
 729Detailed changes:
 730[core] ADDED: RAYLIB_VERSION_* values to raylib.h (#2856) by @RobLoach
 731[core] ADDED: Basic gamepad support for Android (#2709) by @deniska
 732[core] ADDED: Support CAPS/NUM lock keys registering if locked
 733[core] ADDED: _GNU_SOURCE define on Linux (#2729)
 734[core] ADDED: SetWindowIcons() to set multiple icon image sizes
 735[core] `WARNING`: RENAMED: Exported raylib version symbol to raylib_version #2671
 736[core] REMOVED: Touch points on touch up events on Android (#2711) by @deniska
 737[core] REVIEWED: Window position setup on InitWindow() (#2732) by @RandomErrorMessage
 738[core] REVIEWED: Touchscreen input related functions on Android (#2702) by @deniska
 739[core] REVIEWED: Viewport scaling on Android after context rebind (#2703) by @deniska
 740[core] REVIEWED: ScanDirectoryFilesRecursively() (#2704)
 741[core] REVIEWED: Gamepad mappings with latest gamecontrollerdb (#2725)
 742[core] REVIEWED: Monitor order check on app initialization
 743[core] REVIEWED: Application monitor when opening (#2728, #2731) by @RandomErrorMessage
 744[core] REVIEWED: Gestures module to use GetTime() if available (#2733) by @RobLoach
 745[core] REVIEWED: Resolve GLFW3 some symbols re-definition of windows.h in glfw3native (#2643) by @daipom
 746[core] REVIEWED: OpenURL(), string buffer too short sometimes
 747[core] REVIEWED: GetRandomValue() range limit warning (#2800) by @Pere001
 748[core] REVIEWED: UnloadDirectoryFiles()
 749[core] REVIEWED: GetKeyPressed(), out of range issue (#2814) by @daipom
 750[core] REVIEWED: GetTime(), renamed variable 'time' to 'nanoSeconds' (#2816) by @jtainer
 751[core] REVIEWED: LoadShaderFromMemory(), issue with shader linkage
 752[core] REVIEWED: Avoid possible gamepad index as -1 (#2839)
 753[core] REVIEWED: SetShaderValue*(), avoid setup uniforms for invalid locations
 754[core] REVIEWED: GetClipboardText() on PLATFORM_WEB, permissions issues
 755[core] REVIEWED: Initial window position for display-sized fullscreen (#2742) by @daipom
 756[core] REVIEWED: Sticky touches input (#2857) by @ImazighenGhost
 757[core] REVIEWED: Enable GetWindowHandle() on macOS (#2915) by @Not-Nik
 758[core] REVIEWED: Window position always inits centered in current monitor
 759[core] REVIEWED: IsWindowFocused() to consider Android App state (#2935)
 760[core] REVIEWED: GetMonitorWidth() and GetMonitorHeight() (#2934)
 761[core] REVIEWED: GetWindowHandle() to return Linux window (#2938)
 762[core] REVIEWED: WindowDropCallback(), additional security check (#2943)
 763[core] REVIEWED: Security checks for emscripten_run_script() (#2954)
 764[utils] REVIEWED: TraceLog() message size limit overflow
 765[rcamera] REDESIGNED: New implementation from scratch (#2563) by @Crydsch
 766[rcamera] REVIEWED: Make orbital camera work as expected (#2926) by @JeffM2501
 767[rcamera] REVIEWED: Multiple reviews on the new implementation
 768[rcamera] ADDED: UpdateCameraPro(), supporting custom user inputs
 769[rlgl] ADDED: OpenGL ES 2.0 support on PLATFORM_DESKTOP (#2840) by @wtnbgo
 770[rlgl] ADDED: Separate blending modes for color and alpha, BLEND_CUSTOM_SEPARATE (#2741)
 771[rlgl] ADDED: rlSetBlendFactorsSeparate and custom blend mode modification checks (#2741) by @pure01fx
 772[rlgl] ADDED: RL_TEXTURE_MIPMAP_BIAS_RATIO support to `rlTextureParameters()` for OpenGL 3.3 #2674
 773[rlgl] ADDED: rlCubemapParameters() (#2862) by @GithubPrankster
 774[rlgl] ADDED: rlSetCullFace() (#2797) by @jtainer
 775[rlgl] REMOVED: Mipmaps software generation for OpenGL 1.1
 776[rlgl] REVIEWED: Check for extensions before enabling them (#2706) by @Not-Nik
 777[rlgl] REVIEWED: SSBO usage to avoid long long data types
 778[rlgl] REVIEWED: Enable DXT compression on __APPLE__ targets (#2694) by @Not-Nik
 779[rlgl] REVIEWED: enums exposed and description comments
 780[rlgl] REVIEWED: rlBindImageTexture(), correct data types (#2808) by @planetis-m
 781[rlgl] REVIEWED: rlMultMatrixf(), use const pointer (#2807) by @planetis-m
 782[rlgl] REVIEWED: Expose OpenGL blending mode factors and functions/equations
 783[rlgl] REVIEWED: rLoadTextureDepth(), issue with depth textures on WebGL (#2824)
 784[rlgl] REVIEWED: rlUnloadFramebuffer() (#2937)
 785[raymath] ADDED: Vector2LineAngle() (#2887)
 786[raymath] REVIEWED: Vector2Angle() (#2829, #2832) by @AlxHnr, @planetis-m
 787[shapes] ADDED: CheckCollisionPointPoly() (#2685) by @acejacek
 788[shapes] REVIEWED: DrawPixel*(), use RL_QUADS/RL_TRIANGLES (#2750) by @hatkidchan
 789[shapes] REVIEWED: DrawLineBezier*(), fix bezier line breaking (#2735, #2767) by @nobytesgiven
 790[textures] ADDED: ColorBrightness()
 791[textures] ADDED: ColorTint()
 792[textures] ADDED: ColorContrast()
 793[textures] ADDED: Support for PNM images (.ppm, .pgm)
 794[textures] ADDED: GenImagePerlinNoise()
 795[textures] ADDED: GenImageText(), generate grayscale image from text byte data
 796[textures] ADDED: ImageDrawCircleLines(), ImageDrawCircleLinesV() (#2713) by @RobLoach
 797[textures] ADDED: ImageBlurGaussian() (#2770) by @nobytesgiven
 798[textures] REVIEWED: Image fileformat support: PIC, PNM
 799[textures] REVIEWED: ImageTextEx() and ImageDrawTextEx() scaling (#2756) by @hatkidchan
 800[textures] `WARNING`: REMOVED: DrawTextureQuad()
 801[textures] `WARNING`: REMOVED: DrawTexturePoly(), function moved to example: `textures_polygon`
 802[textures] `WARNING`: REMOVED: DrawTextureTiled(),function implementation moved to the textures_tiled.c
 803[text] ADDED: GetCodepointPrevious()
 804[text] ADDED: UnloadUTF8(), aligned with LoadUTF8()
 805[text] `WARNING`: RENAMED: TextCodepointsToUTF8() to LoadUTF8()
 806[text] `WARNING`: RENAMED: GetCodepoint() -> GetCodepointNext()
 807[text] REDESIGNED: GetCodepointNext()
 808[text] REVIEWED: MeasureTextEx(), avoid crash on bad data
 809[text] REVIEWED: UnloadFontData(), avoid crash on invalid font data
 810[models] ADDED: Support M3D model file format (meshes and materials) (#2648) by @bztsrc
 811[models] ADDED: Support for M3D animations (#2648) by @bztsrc
 812[models] ADDED: GLTF animation support (#2844) by @charles-l
 813[models] ADDED: DrawCapsule() and DrawCapsuleWires() (#2761) by @IanBand
 814[models] ADDED: LoadMaterials(), MTL files loading, same code as OBJ loader (#2872) by @JeffM2501
 815[models] `WARNING`: REMOVED: UnloadModelKeepMeshes()
 816[models] `WARNING`: REMOVED: DrawCubeTexture(), DrawCubeTextureRec(), functions moved to new example: `models_draw_cube_texture`
 817[models] REVIEWED: DrawMesh(), using SHADER_LOC_COLOR_SPECULAR as a material map (#2908) by @haved
 818[models] REVIEWED: LoadM3D() vertex color support (#2878) by @GithubPrankster, @bztsrc
 819[models] REVIEWED: GenMeshHeightmap() (#2716)
 820[models] REVIEWED: LoadIQM() (#2676)
 821[models] REVIEWED: Simplify .vox signature check (#2752) by @CrezyDud
 822[models] REVIEWED: LoadIQM(), support bone names loading if available (#2882) by @PencilAmazing
 823[models] REVIEWED: GenMeshTangents(), avoid crash on missing texcoords data (#2927)
 824[audio] ADDED: Full support for QOA audio file format
 825[audio] ADDED: Mixed audio processor (#2929) by @hatkidchan
 826[audio] ADDED: IsWaveReady()`, IsSoundReady(), IsMusicReady() (#2892) by @RobLoach
 827[audio] `WARNING`: REMOVED: Multichannel audio API: PlaySoundMulti(), StopSoundMulti()
 828[audio] REVIEWED: Clear PCM buffer state when closing audio device (#2736) by @veins1
 829[audio] REVIEWED: Android backend selected (#2118, #2875) by @planetis-m
 830[audio] REVIEWED: Change default threading model for COM objects in miniaudio
 831[multi] ADDED: IsShaderReady(), IsImageReady(), IsFontReady() (#2892) by @RobLoach
 832[multi] ADDED: IsModelReady(), IsMaterialReady(), IsTextureReady(), IsRenderTextureReady() (#2895) by @RobLoach
 833[multi] REVIEWED: Multiple code/comment typos by @sDos280
 834[multi] REVIEWED: Grammar mistakes and typos (#2914) by @stickM4N
 835[multi] REVIEWED: Use TRACELOG() macro instead of TraceLog() in internal modules (#2881) by @RobLoach
 836[examples] ADDED: textures_textured_curve (#2821) by @JeffM2501
 837[examples] ADDED: models_draw_cube_texture
 838[examples] ADDED: models_loading_m3d (#2648) by @bztsrc
 839[examples] ADDED: shaders_write_depth (#2836) by @BugraAlptekinSari
 840[examples] ADDED: shaders_hybrid_render (#2919) by @BugraAlptekinSari
 841[examples] REMOVED: audio_multichannel_sound
 842[examples] RENAMED: Several shaders for naming consistency (#2707)
 843[examples] RENAMED: lighting_instanced.fs to lighting_instancing.fs (glsl100) (#2805) by @gtrxAC
 844[examples] REVIEWED: core_custom_logging.c (#2692) by @hartmannathan
 845[examples] REVIEWED: core_camera_2d_platformer (#2687) by @skylar779
 846[examples] REVIEWED: core_input_gamepad.c (#2903) by @planetis-m
 847[examples] REVIEWED: core_custom_frame_control
 848[examples] REVIEWED: core_drop_files (#2943)
 849[examples] REVIEWED: text_rectangle_bounds (#2746) by @SzieberthAdam
 850[examples] REVIEWED: textures_image_processing, added gaussian blurring (#2775) by @nobytesgiven
 851[examples] REVIEWED: models_billboard, highlighting rotation and draw order (#2779) by @nobytesgiven
 852[examples] REVIEWED: core_loading_thread, join thread on completion (#2845) by @planetis-m
 853[examples] REVIEWED: models_loading_gltf
 854[examples] REVIEWED: Shader lighting.fs for GLSL120 (#2651)
 855[examples] REVIEWED: text_codepoints_loading.c
 856[parser] REVIEWED: raylib-parser Makefile (#2765) by @Peter0x44
 857[build] ADDED: Packaging for distros with deb-based and rpm-based packages (#2877) by @KOLANICH
 858[build] ADDED: Linkage library -latomic on Linux (only required for ARM32)
 859[build] ADDED: Required frameworks on macOS (#2793) by @SpexGuy
 860[build] ADDED: WASM support for Zig build (#2901) by @Not-Nik
 861[build] ADDED: New raylib examples as VS2022 project (to raylib solution)
 862[build] REVIEWED: config.h format and inconsistencies
 863[build] REVIEWED: Zig build to latest master, avoid deprecated functions (#2910) by @star-tek-mb
 864[build] REVIEWED: CMake project template to easily target raylib version (#2700) by @RobLoach
 865[build] REVIEWED: PATH for PLATFORM_WEB target (#2647) by @futureapricot
 866[build] REVIEWED: build.zig to let user decide how to set build mode and linker fixes by @InKryption
 867[build] REVIEWED: Deprecation error on Android API higher than 23 (#2778) by @anggape
 868[build] REVIEWED: Android x86 Architecture name (#2783) by @IsaacTCB
 869[build] REVIEWED: examples/build.zig for the latest Zig version (#2786) by @RomanAkberov
 870[utils] REVIEWED: ExportDataAsCode() data types (#2787) by @RGDTAB
 871[build] REVIEWED: Makefile emscripten path (#2785) by @Julianiolo
 872[build] REVIEWED: Several compilation warnings (for strict rules)
 873[build] REVIEWED: All github workflows using deprecated actions
 874[build] REVIEWED: CMake when compiling for web (#2820) by @object71
 875[build] REVIEWED: DLL build on Windows (#2951) by @Skaytacium
 876[build] REVIEWED: Avoid MSVC warnings in raylib project (#2871) by @JeffM2501
 877[build] REVIEWED: Paths in .bat files to build examples (#2870) by @masoudd
 878[build] REVIEWED: CMake, use GLVND for old cmake versions (#2826) by @simendsjo
 879[build] REVIEWED: Makefile, multiple tweaks
 880[build] REVIEWED: CI action: linux_examples.yml
 881[build] REVIEWED: CI action: cmake.yml
 882[bindings] ADDED: h-raylib (Haskell) by @Anut-py
 883[bindings] ADDED: raylib-c3 (C3) by @Its-Kenta
 884[bindings] ADDED: raylib-umka (Umka) by @RobLoach
 885[bindings] ADDED: chez-raylib (Chez Scheme) by @Yunoinsky
 886[bindings] ADDED: raylib-python-ctypes (Python) by @sDos280
 887[bindings] ADDED: claylib (Common Lisp) by @shelvick
 888[bindings] ADDED: raylib-vapi (Vala) by @lxmcf
 889[bindings] ADDED: TurboRaylib (Object Pascal) by @turborium
 890[bindings] ADDED: Kaylib (Kotlin/Native) by @Its-Kenta
 891[bindings] ADDED: Raylib-Nelua (Nelua) by @Its-Kenta
 892[bindings] ADDED: Cyber (Cyber) by @fubark
 893[bindings] ADDED: raylib-sunder (Sunder) by @ashn-dot-dev
 894[bindings] ADDED: raylib BQN (#2962) by @Brian-ED
 895[misc] REVIEWED: Update external libraries to latest versions
 896
 897-------------------------------------------------------------------------
 898Release:     raylib 4.2 (11 August 2022)
 899-------------------------------------------------------------------------
 900KEY CHANGES:
 901 - REMOVED: extras libraries (raygui, physac, rrem, reasings, raudio.h) moved to independent separate repos
 902 - UPDATED: examples: Added creation and update raylib versions and assigned **DIFFICULTY LEVELS**!
 903 - rres 1.0: A custom resource-processing and packaging file format, including tooling and raylib integration examples
 904 - raygui 3.2: New version of the immediate-mode gui system for tools development with raylib
 905 - raylib_parser: Multiple improvements of the raylib parser to automatize bindings generation
 906 - ADDED: New file system API: Reviewed to be more aligned with raylib conventions and one advance function added
 907 - ADDED: New audio stream processors API (_experimental_): Allowing to add custom audio stream data processors using callbacks
 908
 909Detailed changes:
 910[multi] ADDED: Frequently Asked Questions (FAQ.md)
 911[multi] REVIEWED: Multiple trace log messages
 912[multi] REVIEWED: Avoid some float to double promotions
 913[multi] REVIEWED: Some functions input parametes that should be const
 914[multi] REVIEWED: Variables initialization, all variables are initialized on declaration
 915[multi] REVIEWED: Static array buffers are always re-initialized with memset()
 916[multi] `WARNING`: RENAMED: Some function input parameters from "length" to "size"
 917[core] ADDED: GetApplicatonDirectory() (#2256, #2285, #2290) by @JeffM2501
 918[core] ADDED: raylibVersion symbol, it could be required by some bindings (#2190)
 919[core] ADDED: SetWindowOpacity() (#2254) by @tusharsingh09
 920[core] ADDED: GetRenderWidth() and GetRenderHeight() by @ArnaudValensi
 921[core] ADDED: EnableEventWaiting() and DisableEventWaiting()
 922[core] ADDED: GetFileLength()
 923[core] ADDED: Modules info at initialization
 924[core] ADDED: Support clipboard copy/paste on web
 925[core] ADDED: Support OpenURL() on Android platform (#2396) by @futureapricot
 926[core] ADDED: Support MOUSE_PASSTHROUGH (#2516)
 927[core] ADDED: GetMouseWheelMoveV() (#2517) by @schveiguy
 928[core] `WARNING`: REMOVED: LoadStorageValue() / SaveStorageValue(), moved to example
 929[core] `WARNING`: RENAMED: GetDirectoryFiles() to LoadDirectoryFiles()
 930[core] `WARNING`: RENAMED: `ClearDroppedFiles()` to `UnloadDroppedFiles()`
 931[core] `WARNING`: RENAMED: GetDroppedFiles() to LoadDroppedFiles()
 932[core] `WARNING`: RENAMED: `ClearDirectoryFiles()` to `UnloadDirectoryFiles()`
 933[core] `WARNING`: REDESIGNED: WaitTime() argument from milliseconds to seconds (#2506) by @flashback-fx
 934[core] REVIEWED: GetMonitorWidth()/GetMonitorHeight() by @gulrak
 935[core] REVIEWED: GetDirectoryFiles(), maximum files allocation (#2126) by @ampers0x26
 936[core] REVIEWED: Expose MAX_KEYBOARD_KEYS and MAX_MOUSE_BUTTONS (#2127)
 937[core] REVIEWED: ExportMesh() (#2138)
 938[core] REVIEWED: Fullscreen switch on PLATFORM_WEB
 939[core] REVIEWED: GetMouseWheelMove(), fixed bug
 940[core] REVIEWED: GetApplicationDirectory() on macOS (#2304)
 941[core] REVIEWED: ToggleFullscreen()
 942[core] REVIEWED: Initialize/reset CORE.inputs global state (#2360)
 943[core] REVIEWED: MouseScrollCallback() (#2371)
 944[core] REVIEWED: SwapScreenBuffers() for PLATFORM_DRM
 945[core] REVIEWED: WaitTime(), fix regression causing video stuttering (#2503) by @flashback-fx
 946[core] REVIEWED: Mouse device support on PLATFORM_DRM (#2381)
 947[core] REVIEWED: Support OpenBSD timming functions
 948[core] REVIEWED: Improved boolean definitions (#2485) by @noodlecollie
 949[core] REVIEWED: TakeScreenshot(), use GetWindowScaleDPI() to calculate size in screenshot/recording (#2446) by @gulrak
 950[core] REVIEWED: Remove fps requirement for drm connector selection (#2468) by @Crydsch
 951[core] REVIEWED: IsFileExtension() (#2530)
 952[camera] REVIEWED: Some camera improvements (#2563)
 953[rlgl] ADDED: Premultiplied alpha blend mode (#2342) by @megagrump
 954[rlgl] REVIEWED: VR rendering not taking render target size into account (#2424) by @FireFlyForLife
 955[rlgl] REVIEWED: Set rlgl internal framebuffer (#2420)
 956[rlgl] REVIEWED: rlGetCompressedFormatName()
 957[rlgl] REVIEWED: Display OpenGL 4.3 capabilities with a compile flag (#2124) by @GithubPrankster
 958[rlgl] REVIEWED: rlUpdateTexture()
 959[rlgl] REVIEWED: Minimize buffer overflow probability
 960[rlgl] REVIEWED: Fix scissor mode on macOS (#2170) by @ArnaudValensi
 961[rlgl] REVIEWED: Clear SSBO buffers on loading (#2185)
 962[rlgl] REVIEWED: rlLoadShaderCode(), improved shader loading code
 963[rlgl] REVIEWED: Comment notes about custom blend modes (#2260) by @glorantq
 964[rlgl] REVIEWED: rlGenTextureMipmaps()
 965[rlgl] REVIEWED: rlTextureParameters()
 966[raymath] ADDED: Wrap() (#2522) by @Tekkitslime
 967[raymath] ADDED: Vector2Transform()
 968[raymath] ADDED: Vector2DistanceSqr() (#2376) by @AnilBK
 969[raymath] ADDED: Vector3DistanceSqr() (#2376) by @AnilBK
 970[raymath] ADDED: Vector2ClampValue(), Vector3ClampValue() (#2428) by @saccharineboi
 971[raymath] ADDED: Vector3RotateByAxisAngle() (#2590) by @Crydsch
 972[raymath] `WARNING`: REDESIGNED: Vector2Angle() returns radians instead of degrees (#2193) by @schveiguy
 973[raymath] `WARNING`: REMOVED: MatrixNormalize() (#2412)
 974[raymath] REVIEWED: Fix inverse length in Vector2Normalize() (#2189) by @HarriP
 975[raymath] REVIEWED: Vector2Angle() not working as expected (#2196) by @jdeokkim
 976[raymath] REVIEWED: Vector2Angle() and Vector3Angle() (#2203) by @trikko
 977[raymath] REVIEWED: QuaternionInvert(), code simplified (#2324) by @megagrump
 978[raymath] REVIEWED: QuaternionScale() (#2419) by @tana
 979[raymath] REVIEWED: Vector2Rotate(), optimized (#2340) by @jdeokkim
 980[raymath] REVIEWED: QuaternionFromMatrix(), QuaternionEquals() (#2591) by @kirigirihitomi
 981[raymath] REVIEWED: MatrixRotate*() (#2595, #2599) by @GoodNike
 982[shapes] REVIEWED: CheckCollision*() consistency
 983[shapes] REVIEWED: DrawRectanglePro(), support TRIANGLES drawing
 984[textures] ADDED: Support for QOI image format
 985[textures] REVIEWED: ImageColorTint(), GetImageColor(), ImageDrawRectangleRec(), optimized functions (#2429) by @AnilBK
 986[textures] REVIEWED: LoadTextureFromImage(), allow texture loading with no data transfer
 987[textures] REVIEWED: ImageDraw(), comment to note that f32bit is not supported (#2222)
 988[textures] REVIEWED: DrawTextureNPatch(), avoid batch overflow (#2401) by @JeffM2501
 989[textures] REVIEWED: DrawTextureTiled() (#2173)
 990[textures] REVIEWED: GenImageCellular() (#2178)
 991[textures] REVIEWED: LoadTextureCubemap() (#2223, #2224)
 992[textures] REVIEWED: Export format for float 32bit
 993[textures] REVIEWED: ExportImage(), support export ".jpeg" files
 994[textures] REVIEWED: ColorAlphaBlend() (#2524) by @royqh1979
 995[textures] REVIEWED: ImageResize() (#2572)
 996[textures] REVIEWED: ImageFromImage() (#2594) by @wiertek
 997[text] ADDED: ExportFontAsCode()
 998[text] ADDED: DrawTextCodepoints() (#2308) by @siddharthroy12
 999[text] REVIEWED: TextIsEqual(), protect from NULLs (#2121) by @lukekras
1000[text] REVIEWED: LoadFontEx(), comment to specify how to get the default character set (#2221) by @JeffM2501
1001[text] REVIEWED: GenImageFontAtlas(), increase atlas size guesstimate by @megagrump
1002[text] REVIEWED: GetCodepoint() (#2201)
1003[text] REVIEWED: GenImageFontAtlas() (#2556)
1004[text] REVIEWED: ExportFontAsCode() to use given font padding (#2525) by @TheTophatDemon
1005[models] ADDED: Reference code to load bones id and weight data for animations
1006[models] `WARNING`: REMOVED: GetRayCollisionModel() (#2405)
1007[models] REMOVED: GenMeshBinormals()
1008[models] REVIEWED: External library: vox_loader.h, 64bit issue (#2186)
1009[models] REVIEWED: Material color loading when no texture material is available (#2298) by @royqh1979
1010[models] REVIEWED: Fix Undefined Symbol _ftelli64 in cgltf (#2319) by @audinue
1011[models] REVIEWED: LoadGLTF(), fix memory leak (#2441, #2442) by @leomonta
1012[models] REVIEWED: DrawTriangle3D() batch limits check (#2489)
1013[models] REVIEWED: DrawBillboardPro() (#2494)
1014[models] REVIEWED: DrawMesh*() issue (#2211)
1015[models] REVIEWED: ExportMesh() (#2220)
1016[models] REVIEWED: GenMeshCylinder() (#2225)
1017[audio] `WARNING`: ADDED: rAudioProcessor pointer to AudioStream struct (used by Sound and Music structs)
1018[audio] ADDED: SetSoundPan(), SetMusicPan(), SetAudioStreamPan(), panning support (#2205) by ptarabbia
1019[audio] ADDED: Audio stream input callback (#2212) by ptarabbia
1020[audio] ADDED: Audio stream processors support (#2212) by ptarabbia
1021[audio] REVIEWED: GetMusicTimePlayed(), incorrect value after the stream restarted for XM audio (#2092 #2215) by @ptarabbia
1022[audio] REVIEWED: Turn on interpolation for XM playback (#2216) by @ptarabbia
1023[audio] REVIEWED: Fix crash with delay example (#2472) by @ptarabbia
1024[audio] REVIEWED: PlaySoundMulti() (#2231)
1025[audio] REVIEWED: ExportWaveAsCode()
1026[audio] REVIEWED: UpdateMusicStream(), reduce dynamic allocations (#2532) by @dbechrd
1027[audio] REVIEWED: UpdateMusicStream() to support proper stream looping (#2579) by @veins1
1028[utils] ADDED: ExportDataAsCode()
1029[utils] REVIEWED: Force flush stdout after trace messages (#2465) by @nagy
1030[easings] ADDED: Function descriptions (#2471) by @RobLoach
1031[camera] REVIEWED: Fix free camera panning in the wrong direction (#2347) by @DavidLyhedDanielsson
1032[examples] ADDED: core_window_should_close
1033[examples] ADDED: core_2d_camera_mouse_zoom (#2583) by @JeffM2501
1034[examples] ADDED: shapes_top_down_lights (#2199) by @JeffM2501
1035[examples] ADDED: textures_fog_of_war
1036[examples] ADDED: textures_gif_player
1037[examples] ADDED: text_codepoints_loading
1038[examples] ADDED: audio_stream_effects
1039[examples] REMOVED: core_quat_conversion, not working properly
1040[examples] REMOVED: raudio_standalone, moved to raudio repo
1041[examples] RENAMED: textures_rectangle -> textures_sprite_anim
1042[examples] REVIEWED: core_input_gamepad, improve joystick visualisation (#2390) by @kristianlm
1043[examples] REVIEWED: textures_draw_tiled
1044[examples] REVIEWED: shaders_mesh_instancing, free allocated matrices (#2425) by @AnilBK
1045[examples] REVIEWED: shaders_raymarching
1046[examples] REVIEWED: audio_raw_stream (#2205) by ptarabbia
1047[examples] REVIEWED: audio_music_stream
1048[examples] REVIEWED: shaders_mesh_instancing, simplified
1049[examples] REVIEWED: shaders_basic_lighting, rlights.h simplified
1050[examples] REVIEWED: All examples descriptions, included creation/update raylib versions
1051[parser] ADDED: Defines to parser (#2269) by @iskolbin
1052[parser] ADDED: Aliases to parser (#2444) by @lazaray
1053[parser] ADDED: Parse struct descriptions (#2214) by @eutro
1054[parser] ADDED: Parse enum descriptions and value descriptions (#2208) by @eutro
1055[parser] ADDED: Lua output format for parser by @iskolbin
1056[parser] ADDED: Makefile for raylib_parser by @iskolbin
1057[parser] ADDED: Support for truncating parser input (#2464) by @lazaray
1058[parser] ADDED: Support for calculated defines to parser (#2463) by @lazaray
1059[parser] REVIEWED: Update parser files (#2125) by @catmanl
1060[parser] REVIEWED: Fix memory leak in parser (#2136) by @ronnieholm
1061[parser] REVIEWED: EscapeBackslashes()
1062[parser] REVIEWED: Parser improvements (#2461 #2462) by @lazaray
1063[bindings] ADDED: License details for BINDINGS
1064[bindings] ADDED: dart-raylib (#2149) by @wolfenrain
1065[bindings] ADDED: raylib-cslo (#2169) by @jasonswearingen
1066[bindings] ADDED: raylib-d (#2194) by @schveiguy
1067[bindings] ADDED: raylib-guile (#2202) by @petelliott
1068[bindings] ADDED: raylib-scopes (#2238) by @salotz
1069[bindings] ADDED: naylib (Nim) (#2386) by @planetis-m
1070[bindings] ADDED: raylib.jl (Julia) (#2403) by @irishgreencitrus
1071[bindings] ADDED: raylib.zig (#2449) by @ryupold
1072[bindings] ADDED: racket-raylib (#2454) by @eutro
1073[bindings] ADDED: raylibr (#2611) by @ramiromagno
1074[bindings] ADDED: Raylib.4.0.Pascal (#2617) by @sysrpl
1075[bindings] REVIEWED: Multiple bindings updated to raylib 4.0
1076[build] ADDED: VS2022 project
1077[build] ADDED: Support macOS by zig build system (#2175)
1078[build] ADDED: Support custom modules selection on compilation
1079[build] ADDED: Minimal web shell for WebAssembly compilation
1080[build] ADDED: BSD support for zig builds (#2332) by @zigster64
1081[build] ADDED: Repology badge (#2367) by @jubalh
1082[build] ADDED: Support DLL compilation with TCC compiler (#2569) by @audinue
1083[build] ADDED: Missing examples to VS2022 examples solution
1084[build] REMOVED: VS2019 project (unmaintained)
1085[build] REMOVED: SUPPORT_MOUSE_CURSOR_POINT config option
1086[build] REVIEWED: Fixed RPi make install (#2217) by @wereii
1087[build] REVIEWED: Fix build results path on Linux and RPi (#2218) by @wereii
1088[build] REVIEWED: Makefiles debug flag
1089[build] REVIEWED: Fixed cross-compilation from x86-64 to RPi (#2233) by @pitpit
1090[build] REVIEWED: All Makefiles, simplified
1091[build] REVIEWED: All Makefiles, improve organization
1092[build] REVIEWED: All Makefiles, support CUSTOM_CFLAGS
1093[build] REVIEWED: Fixed compiling for Android using CMake (#2270) by @hero2002
1094[build] REVIEWED: Make zig build functionality available to zig programs (#2271) by @Not-Nik
1095[build] REVIEWED: Update CMake project template with docs and web (#2274) by @RobLoach
1096[build] REVIEWED: Update VSCode project to work with latest makefile and web (#2296) by @phil-shenk
1097[build] REVIEWED: Support audio examples compilation with external glfw (#2329) by @locriacyber
1098[build] REVIEWED: Fix "make clean" target failing when shell is not cmd (#2338) by @Peter0x44
1099[build] REVIEWED: Makefile linkage -latomic, required by miniaudio on ARM 32bit #2452
1100[build] REVIEWED: Update raylib-config.cmake (#2374) by @marcogmaia
1101[build] REVIEWED: Simplify build.zig to not require user to specify raylib path (#2383) by @Hejsil
1102[build] REVIEWED: Fix OpenGL 4.3 graphics option in CMake (#2427) by @GoldenThumbs
1103[extras] `WARNING`: REMOVED: physac from raylib sources/examples, use github.com/raysan5/physac
1104[extras] `WARNING`: REMOVED: raygui from raylib/src/extras, use github.com/raysan5/raygui
1105[extras] `WARNING`: REMOVED: rmem from raylib/src/extras, moved to github.com/raylib-extras/rmem
1106[extras] `WARNING`: REMOVED: easings from raylib/src/extras, moved to github.com/raylib-extras/reasings
1107[extras] `WARNING`: REMOVED: raudio.h from raylib/src, moved to github.com/raysan5/raudio
1108[misc] REVIEWED: Update some external libraries to latest versions
1109
1110-------------------------------------------------------------------------
1111Release:     raylib 4.0 - 8th Anniversary Edition (05 November 2021)
1112-------------------------------------------------------------------------
1113KEY CHANGES:
1114 - Naming consistency and coherency: Complete review of the library: syntax, naming, comments, decriptions, logs...
1115 - Event Automation System: Support for input events recording and automatic re-playing, useful for automated testing and more!
1116 - Custom game-loop control: Intended for advanced users that want to control the events polling and the timming mechanisms
1117 - rlgl 4.0: Completely decoupling from platform layer and raylib, intended for standalone usage as single-file header-only
1118 - raymath 1.5: Complete review following new conventions, to make it more portable and self-contained
1119 - raygui 3.0: Complete review and official new release, more portable and self-contained, intended for tools development
1120 - raylib_parser: New tool to parse raylib.h and extract all required info into custom output formats (TXT, XML, JSON...)
1121 - Zig and Odin official support
1122
1123Detailed changes:
1124[core] ADDED: Support canvas resizing on web (#1840) by @skylersaleh
1125[core] ADDED: GetMouseDelta() (#1832) by @adricoin2010
1126[core] ADDED: Support additional mouse buttons (#1753) by @lambertwang
1127[core] ADDED: SetRandomSeed() (#1994) by @TommiSinivuo
1128[core] ADDED: GetTouchPointId() #1972
1129[core] ADDED: EncodeDataBase64() and DecodeDataBase64()
1130[core] REMOVED: PLATFORM_UWP, difficult to maintain
1131[core] REMOVED: IsGamepadName()
1132[core] RENAMED: SwapBuffers() to SwapScreenBuffer()
1133[core] RENAMED: Wait() to WaitTime()
1134[core] RENAMED: RayHitInfo to RayCollision (#1781)
1135[core] RENAMED: GetRayCollisionGround() to GetRayCollisionQuad() (#1781)
1136[core] REVIEWED: Support mouse wheel on x-axis (#1948)
1137[core] REVIEWED: DisableCursor() on web by registering an empty mouse click event function in emscripten (#1900) by @grenappels
1138[core] REVIEWED: LoadShader() and default locations and descriptions
1139[core] REVIEWED: LoadShaderFromMemory() (#1851) by @Ruminant
1140[core] REVIEWED: WaitTime(), avoid global variables dependency to make the function is self-contained (#1841)
1141[core] REVIEWED: SetWindowSize() to work on web (#1847) by @nikki93
1142[core] REVIEWED: Raspberry RPI/DRM keyboard blocking render loop (#1879) @luizpestana
1143[core] REVIEWED: Android multi-touch (#1869) by @humbe
1144[core] REVIEWED: Implemented GetGamepadName() for emscripten by @nbarkhina
1145[core] REVIEWED: HighDPI support (#1987) by @ArnaudValensi
1146[core] REVIEWED: KeyCallback(), register keys independently of the actions
1147[rlgl] ADDED: GRAPHIC_API_OPENGL_43
1148[rlgl] ADDED: rlUpdateVertexBufferElements() (#1915)
1149[rlgl] ADDED: rlActiveDrawBuffers() (#1911)
1150[rlgl] ADDED: rlEnableColorBlend()/rlDisableColorBlend()
1151[rlgl] ADDED: rlGetPixelFormatName()
1152[rlgl] REVIEWED: rlUpdateVertexBuffer (#1914) by @630Studios
1153[rlgl] REVIEWED: rlDrawVertexArrayElements() (#1891)
1154[rlgl] REVIEWED: Wrong normal matrix calculation (#1870)
1155[raymath] ADDED: Vector3Angle()
1156[raymath] REVIEWED: QuaternionFromAxisAngle() (#1892)
1157[raymath] REVIEWED: QuaternionToMatrix() returning transposed result. (#1793) by @object71
1158[shapes] ADDED: RenderPolyLinesEx() (#1758) by @lambertwang
1159[shapes] ADDED: DrawSplineBezierCubic() (#2021) by @SAOMDVN
1160[textures] ADDED: GetImageColor() #2024
1161[textures] REMOVED: GenImagePerlinNoise()
1162[textures] RENAMED: GetTextureData() to LoadImageFromTexture()
1163[textures] RENAMED: GetScreenData() to LoadImageFromScreen()
1164[textures] REVIEWED: ExportImage() to use SaveFileData() (#1779)
1165[textures] REVIEWED: LoadImageAnim() #2005
1166[text] ADDED: Security check in case of not valid font
1167[text] ADDED: `GetGlyphInfo()` to get glyph info for a specific codepoint
1168[text] ADDED: `GetGlyphAtlasRec()` to get glyph rectangle within the generated font atlas
1169[text] ADDED: DrawTextPro() with text rotation support, WARNING: DrawTextPro() requires including `rlgl.h`, before it was only dependant on `textures` module.
1170[text] ADDED: UnloadCodepoints() to safely free loaded codepoints
1171[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.
1172[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.
1173[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.
1174[text] RENAMED: `TextToUtf8()` to `TextCodepointsToUTF8` for consistency and more detail on the functionality.
1175[text] RENAMED: GetCodepoints() to LoadCodepoints(), now codepoint array data is loaded dynamically instead of reusing a limited static buffer.
1176[text] RENAMED: GetNextCodepoint() to GetCodepoint()
1177[models] ADDED: MagikaVoxel VOX models loading
1178[models] ADDED: GenMeshCone() (#1903)
1179[models] ADDED: GetModelBoundingBox()
1180[models] ADDED: DrawBillboardPro() (#1759) by @nobytesgiven
1181[models] ADDED: DrawCubeTextureRec() (#2001) by @tdgroot
1182[models] ADDED: DrawCylinderEx() and DrawCylinderWiresEx() (#2049) by @Horrowind
1183[models] REMOVED: DrawBillboardEx()
1184[models] RENAMED: MeshBoundingBox() to GetMeshBoundingBox()
1185[models] RENAMED: MeshTangents() to GenMeshTangents()
1186[models] RENAMED: MeshBinormals() to GenMeshBinormals()
1187[models] REVIEWED: GenMeshTangents() (#1877) by @630Studios
1188[models] REVIEWED: CheckCollisionBoxSphere() by @Crydsch
1189[models] REVIEWED: GetRayCollisionQuad() by @Crydsch
1190[models] REVIEWED: LoadGLTF(), fixed missing transformations and nonroot skinning by @MrDiver
1191[models] REVIEWED: LoadGLTF(), rewriten from scratch, removed animations support (broken)
1192[models] REVIEWED: Decouple DrawMesh() and DrawMeshInstanced() (#1958)
1193[models] REVIEWED: Support vertex color attribute for GLTF and IQM (#1790) by @object71
1194[models] REVIEWED: DrawBillboardPro() (#1941) by @GithubPrankster
1195[models] REDESIGNED: Major review of glTF loading functionality (#1849) by @object71
1196[audio] ADDED: SeekMusicStream() (#2006) by @GithubPrankster
1197[audio] REMOVED: GetAudioStreamBufferSizeDefault()
1198[audio] RENAMED: InitAudioStream() to LoadAudioStream()
1199[audio] RENAMED: CloseAudioStream() to UnloadAudioStream()
1200[audio] RENAMED: IsMusicPlaying() to IsMusicStreamPlaying()
1201[audio] REVIEWED: ExportWaveAsCode()
1202[audio] REDESIGNED: Use frameCount on audio instead of sampleCount
1203[utils] REVIEWED: exit() on LOG_FATAL instead of LOG_ERROR (#1796)
1204[examples] ADDED: core_custom_frame_control
1205[examples] ADDED: core_basic_screen_manager
1206[examples] ADDED: core_split_screen (#1806) by @JeffM2501
1207[examples] ADDED: core_smooth_pixelperfect (#1771) by @NotManyIdeasDev
1208[examples] ADDED: shaders_texture_outline (#1883) by @GoldenThumbs
1209[examples] ADDED: models_loading_vox (#1940) by @procfxgen
1210[examples] ADDED: rlgl_compute_shader by @TSnake41 (#2088)
1211[examples] REMOVED: models_material_pbr
1212[examples] REMOVED: models_gltf_animation
1213[examples] REVIEWED: core_3d_picking
1214[examples] REVIEWED: core_input_mouse
1215[examples] REVIEWED: core_vr_simulator, RenderTexture usage
1216[examples] REVIEWED: core_window_letterbox, RenderTexture usage
1217[examples] REVIEWED: shapes_basic_shapes
1218[examples] REVIEWED: shapes_logo_raylib_anim
1219[examples] REVIEWED: textures_to_image
1220[examples] REVIEWED: text_rectangle_bounds
1221[examples] REVIEWED: text_unicode
1222[examples] REVIEWED: text_draw_3d
1223[examples] REVIEWED: models_loading
1224[examples] REVIEWED: models_skybox (#1792) (#1778)
1225[examples] REVIEWED: models_mesh_picking
1226[examples] REVIEWED: models_yaw_pitch_roll
1227[examples] REVIEWED: models_rlgl_solar_system
1228[examples] REVIEWED: shaders_custom_uniform, RenderTexture usage
1229[examples] REVIEWED: shaders_eratosthenes, RenderTexture usage
1230[examples] REVIEWED: shaders_julia_set, RenderTexture usage
1231[examples] REVIEWED: shaders_postprocessing, RenderTexture usage
1232[examples] REVIEWED: shaders_basic_lighting, simplified (#1865)
1233[examples] REVIEWED: audio_raw_stream.c
1234[examples] REVIEWED: raudio_standalone
1235[examples] REVIEWED: raylib_opengl_interop
1236[examples] REVIEWED: rlgl_standalone.c
1237[examples] REVIEWED: Resources licenses
1238[examples] REVIEWED: models resources reorganization
1239[templates] REMOVED: Moved to a separate repo: https://github.com/raysan5/raylib-game-template
1240[build] ADDED: Zig build file (#2014) by @TommiSinivuo
1241[build] ADDED: Android VS2019 solution (#2013) by @Kronka
1242[build] REMOVED: VS2017 project, outdated
1243[build] RENAMED: All raylib modules prefixed with 'r' (core -> rcore)
1244[build] RENAMED: SUPPORT_MOUSE_CURSOR_NATIVE to SUPPORT_MOUSE_CURSOR_POINT
1245[build] REVIEWED: examples/examples_template.c
1246[build] REVIEWED: Makefile to latest Emscripten SDK r23
1247[build] REVIEWED: Makefile for latest Android NDK r32 LTS
1248[build] REVIEWED: raylib resource files
1249[build] Moved some extra raylib libraries to /extras/ directory
1250[*] UPDATED: Multiple bindings to latest version
1251[*] UPDATED: Most external libraries to latest versions (except GLFW)
1252[*] Multiple code improvements and fixes by multiple contributors!
1253
1254-------------------------------------------------------------------------
1255Release:     raylib 3.7 (26 April 2021)
1256-------------------------------------------------------------------------
1257KEY CHANGES:
1258 - [rlgl] REDESIGNED: Greater abstraction level, some functionality moved to core module
1259 - [rlgl] REVIEWED: Instancing and stereo rendering
1260 - [core] REDESIGNED: VR simulator, fbo/shader exposed to user
1261 - [utils] ADDED: File access callbacks system
1262 - [models] ADDED: glTF animations support (#1551) by @object71
1263 - [audio] ADDED: Music streaming support from memory (#1606) by @nezvers
1264 - [*] RENAMED: enum types and enum values for consistency
1265
1266Detailed changes:
1267[core] ADDED: LoadVrStereoConfig()
1268[core] ADDED: UnloadVrStereoConfig()
1269[core] ADDED: BeginVrStereoMode()
1270[core] ADDED: EndVrStereoMode()
1271[core] ADDED: GetCurrentMonitor() (#1485) by @object71
1272[core] ADDED: SetGamepadMappings() (#1506)
1273[core] RENAMED: struct Camera: camera.type to camera.projection
1274[core] RENAMED: LoadShaderCode() to LoadShaderFromMemory() (#1690)
1275[core] RENAMED: SetMatrixProjection() to rlSetMatrixProjection()
1276[core] RENAMED: SetMatrixModelview() to rlSetMatrixModelview()
1277[core] RENAMED: GetMatrixModelview() to rlGetMatrixModelview()
1278[core] RENAMED: GetMatrixProjection() to rlGetMatrixProjection()
1279[core] RENAMED: GetShaderDefault() to rlGetShaderDefault()
1280[core] RENAMED: GetTextureDefault() to rlGetTextureDefault()
1281[core] REMOVED: GetShapesTexture()
1282[core] REMOVED: GetShapesTextureRec()
1283[core] REMOVED: GetMouseCursor()
1284[core] REMOVED: SetTraceLogExit()
1285[core] REVIEWED: GetFileName() and GetDirectoryPath() (#1534) by @gilzoide
1286[core] REVIEWED: Wait() to support FreeBSD (#1618)
1287[core] REVIEWED: HighDPI support on macOS retina (#1510)
1288[core] REDESIGNED: GetFileExtension(), includes the .dot
1289[core] REDESIGNED: IsFileExtension(), includes the .dot
1290[core] REDESIGNED: Compresion API to use sdefl/sinfl libs
1291[rlgl] ADDED: SUPPORT_GL_DETAILS_INFO config flag
1292[rlgl] REMOVED: GenTexture*() functions (#721)
1293[rlgl] REVIEWED: rlLoadShaderDefault()
1294[rlgl] REDESIGNED: rlLoadExtensions(), more details exposed
1295[raymath] REVIEWED: QuaternionFromEuler() (#1651)
1296[raymath] REVIEWED: MatrixRotateZYX() (#1642)
1297[shapes] ADDED: DrawSplineBezierQuad() (#1468) by @epsilon-phase
1298[shapes] ADDED: CheckCollisionLines()
1299[shapes] ADDED: CheckCollisionPointLine() by @mkupiec1
1300[shapes] REVIEWED: CheckCollisionPointTriangle() by @mkupiec1
1301[shapes] REDESIGNED: SetShapesTexture()
1302[shapes] REDESIGNED: DrawCircleSector(), to use float params
1303[shapes] REDESIGNED: DrawCircleSectorLines(), to use float params
1304[shapes] REDESIGNED: DrawRing(), to use float params
1305[shapes] REDESIGNED: DrawRingLines(), to use float params
1306[textures] ADDED: DrawTexturePoly() and example (#1677) by @chriscamacho
1307[textures] ADDED: UnloadImageColors() for allocs consistency
1308[textures] RENAMED: GetImageData() to LoadImageColors()
1309[textures] REVIEWED: ImageClearBackground() and ImageDrawRectangleRec() (#1487) by @JeffM2501
1310[textures] REVIEWED: DrawTexturePro() and DrawRectanglePro() transformations (#1632) by @ChrisDill
1311[text] REDESIGNED: DrawFPS()
1312[models] ADDED: UploadMesh() (#1529)
1313[models] ADDED: UpdateMeshBuffer()
1314[models] ADDED: DrawMesh()
1315[models] ADDED: DrawMeshInstanced()
1316[models] ADDED: UnloadModelAnimations() (#1648) by @object71
1317[models] REMOVED: DrawGizmo()
1318[models] REMOVED: LoadMeshes()
1319[models] REMOVED: MeshNormalsSmooth()
1320[models] REVIEWED: DrawLine3D() (#1643)
1321[audio] REVIEWED: Multichannel sound system (#1548)
1322[audio] REVIEWED: jar_xm library (#1701) by @jmorel33
1323[utils] ADDED: SetLoadFileDataCallback()
1324[utils] ADDED: SetSaveFileDataCallback()
1325[utils] ADDED: SetLoadFileTextCallback()
1326[utils] ADDED: SetSaveFileTextCallback()
1327[examples] ADDED: text_draw_3d (#1689) by @Demizdor
1328[examples] ADDED: textures_poly (#1677) by @chriscamacho
1329[examples] ADDED: models_gltf_model (#1551) by @object71
1330[examples] RENAMED: shaders_rlgl_mesh_instanced to shaders_mesh_intancing
1331[examples] REDESIGNED: shaders_rlgl_mesh_instanced by @moliad
1332[examples] REDESIGNED: core_vr_simulator
1333[examples] REDESIGNED: models_yaw_pitch_roll
1334[build] ADDED: Config flag: SUPPORT_STANDARD_FILEIO
1335[build] ADDED: Config flag: SUPPORT_WINMM_HIGHRES_TIMER (#1641)
1336[build] ADDED: Config flag: SUPPORT_GL_DETAILS_INFO
1337[build] ADDED: Examples projects to VS2019 solution
1338[build] REVIEWED: Makefile to support PLATFORM_RPI (#1580)
1339[build] REVIEWED: Multiple typecast warnings by @JeffM2501
1340[build] REDESIGNED: VS2019 project build paths
1341[build] REDESIGNED: CMake build system by @object71
1342[*] RENAMED: Several functions parameters for consistency
1343[*] UPDATED: Multiple bindings to latest version
1344[*] UPDATED: All external libraries to latest versions
1345[*] Multiple code improvements and fixes by multiple contributors!
1346
1347-------------------------------------------------------------------------
1348Release:     raylib 3.5 - 7th Anniversary Edition (25 December 2020)
1349-------------------------------------------------------------------------
1350KEY CHANGES:
1351 - [core] ADDED: PLATFORM_DRM to support RPI4 and other devices (#1388) by @kernelkinetic
1352 - [core] REDESIGNED: Window states management system through FLAGS
1353 - [rlgl] ADDED: RenderBatch type and related functions to allow custom batching (internal only)
1354 - [rlgl] REDESIGNED: Framebuffers API to support multiple attachment types (#721)
1355 - [textures] REDESIGNED: Image*() functions, big performance improvements (software rendering)
1356 - [*] REVIEWED: Multiple functions to replace file accesses by memory accesses
1357 - [*] ADDED: GitHub Actions CI to support multiple raylib build configurations
1358
1359Detailed changes:
1360[core] ADDED: SetWindowState() / ClearWindowState() -> New flags added!
1361[core] ADDED: IsWindowFocused()
1362[core] ADDED: GetWindowScaleDPI()
1363[core] ADDED: GetMonitorRefreshRate() (#1289) by @Shylie
1364[core] ADDED: IsCursorOnScreen() (#1262) by @ChrisDill
1365[core] ADDED: SetMouseCursor() and GetMouseCursor() for standard Desktop cursors (#1407) by @chances
1366[core] REMOVED: struct RenderTexture2D: depthTexture variable
1367[core] REMOVED: HideWindow() / UnhideWindow() -> Use SetWindowState()
1368[core] REMOVED: DecorateWindow() / UndecorateWindow() -> Use SetWindowState()
1369[core] RENAMED: GetExtension() to GetFileExtension()
1370[core] REVIEWED: Several structs to reduce size and padding
1371[core] REVIEWED: struct Texture maps to Texture2D and TextureCubemap
1372[core] REVIEWED: ToggleFullscreen() (#1287)
1373[core] REVIEWED: InitWindow(), support empty title for window (#1323)
1374[core] REVIEWED: RPI: Mouse movements are bound to the screen resolution (#1392) (#1410) by @kernelkinetic
1375[core] REVIEWED: GetPrevDirectoryPath() fixes on Unix-like systems (#1246) by @ivan-cx
1376[core] REPLACED: rgif.h by msf_gif.h for automatic gif recording
1377[core] REDESIGNED: GetMouseWheelMove() to return float movement for precise scrolling (#1397) by @Doy-lee
1378[core] REDESIGNED: GetKeyPressed(), and added GetCharPressed() (#1336)
1379[core] UWP rework with improvements (#1231) by @Rover656
1380[core] Gamepad axis bug fixes and improvement (#1228) by @mmalecot
1381[core] Updated joystick mappings with latest version of gamecontrollerdb (#1381) by @coderoth
1382[rlgl] Corrected issue with OpenGL 1.1 support
1383[rlgl] ADDED: rlDrawMeshInstanced() (#1318) by @seanpringle
1384[rlgl] ADDED: rlCheckErrors (#1321) by @seanpringle
1385[rlgl] ADDED: BLEND_SET blending mode (#1251) by @RandomErrorMessage
1386[rlgl] ADDED: rlSetLineWidth(), rlGetLineWidth(), rlEnableSmoothLines(), rlDisableSmoothLines() (#1457) by @JeffM2501
1387[rlgl] RENAMED: rlUnproject() to Vector3Unproject() [raymath]
1388[rlgl] REVIEWED: Replace rlglDraw() calls by DrawRenderBatch() internal calls
1389[rlgl] REVIEWED: GenTextureCubemap(), use rlgl functionality only
1390[rlgl] REVIEWED: rlFramebufferAttach() to support texture layers
1391[rlgl] REVIEWED: GenDrawCube() and GenDrawQuad()
1392[rlgl] REVIEWED: Issues with vertex batch overflow (#1223)
1393[rlgl] REVIEWED: rlUpdateTexture(), issue with offsets
1394[rlgl] REDESIGNED: GenTexture*() to use the new fbo API (#721)
1395[raymath] ADDED: Normalize() and Remap() functions (#1247) by @NoorWachid
1396[raymath] ADDED: Vector2Reflect() (#1400) by @daniel-junior-dube
1397[raymath] ADDED: Vector2LengthSqr() and Vector3LengthSqr() (#1248) by @ThePituLegend
1398[raymath] ADDED: Vector2MoveTowards() function (#1233) by @anatagawa
1399[raymath] REVIEWED: Some functions consistency (#1197) by @Not-Nik
1400[raymath] REVIEWED: QuaternionFromVector3ToVector3() (#1263) by @jvocaturo
1401[raymath] REVIEWED: MatrixLookAt(), optimized (#1442) by @RandomErrorMessage
1402[shapes] ADDED: CheckCollisionLines(), by @Elkantor
1403[text] Avoid [textures] functions dependencies
1404[text] ADDED: Config flag: SUPPORT_TEXT_MANIPULATION
1405[text] ADDED: LoadFontFromMemory() (TTF only) (#1327)
1406[text] ADDED: UnloadFontData()
1407[text] RENAMED: FormatText() -> TextFormat()
1408[text] REVIEWED: Font struct, added charsPadding (#1432)
1409[text] REVIEWED: TextJoin()
1410[text] REVIEWED: TextReplace() (#1172)
1411[text] REVIEWED: LoadBMFont() to load data from memory (#1232)
1412[text] REVIEWED: GenImageFontAtlas(), fixed offset (#1171)
1413[text] REDESIGNED: LoadFontData(), reviewed input parameters
1414[text] REDESIGNED: LoadFontDefault(), some code simplifications
1415[text] REDESIGNED: LoadFontFromImage(), avoid LoadImageEx()
1416[text] REDESIGNED: LoadFontData(), avoid GenImageColor(), ImageFormat()
1417[text] REDESIGNED: LoadBMFont(), avoid ImageCopy(), ImageFormat(), ImageAlphaMask()
1418[textures] Move Color functions from [core] to [textures] module
1419[textures] ADDED: ColorAlphaBlend()
1420[textures] ADDED: GetPixelColor()
1421[textures] ADDED: SetPixelColor()
1422[textures] ADDED: LoadImageFromMemory() (#1327)
1423[textures] ADDED: LoadImageAnim() to load animated sequence of images
1424[textures] ADDED: DrawTextureTiled() (#1291) - @Demizdor
1425[textures] ADDED: UpdateTextureRec()
1426[textures] ADDED: UnloadImageColors(), UnloadImagePalette(), UnloadWaveSamples()
1427[textures] REMOVED: Config flag: SUPPORT_IMAGE_DRAWING
1428[textures] REMOVED: LoadImageEx()
1429[textures] REMOVED: LoadImagePro()
1430[textures] REMOVED: GetImageDataNormalized(), not exposed in the API
1431[textures] RENAMED: ImageExtractPalette() to GetImagePalette()
1432[textures] RENAMED: Fade() to ColorAlpha(), added #define for compatibility
1433[textures] RENAMED: GetImageData() -> LoadImageColors()
1434[textures] RENAMED: GetImagePalette() -> LoadImagePalette()
1435[textures] RENAMED: GetWaveData() -> LoadWaveSamples()
1436[textures] REVIEWED: GetPixelDataSize() to consider compressed data properly
1437[textures] REVIEWED: GetTextureData(), allow retrieving 32bit float data
1438[textures] REVIEWED: ImageDrawText*() params order
1439[textures] REVIEWED: ColorAlphaBlend(), support tint color
1440[textures] REVIEWED: ColorAlphaBlend(), integers-version, optimized (#1218)
1441[textures] REVIEWED: ImageDraw(), consider negative source offset properly (#1283)
1442[textures] REVIEWED: ImageDraw(), optimizations test (#1218)
1443[textures] REVIEWED: ImageResizeCanvas(), optimization (#1218)
1444[textures] REVIEWED: ExportImage(), optimized
1445[textures] REVIEWED: ImageAlphaPremultiply(), optimization
1446[textures] REVIEWED: ImageAlphaClear(), minor optimization
1447[textures] REVIEWED: ImageToPOT(), renamed parameter
1448[textures] REVIEWED: ImageCrop() (#1218)
1449[textures] REVIEWED: ImageToPOT() (#1218)
1450[textures] REVIEWED: ImageAlphaCrop() (#1218)
1451[textures] REVIEWED: ExportImage(), optimized (#1218)
1452[textures] REDESIGNED: ImageCrop(), optimized (#1218)
1453[textures] REDESIGNED: ImageRotateCCW(), optimized (#1218)
1454[textures] REDESIGNED: ImageRotateCW(), optimized (#1218)
1455[textures] REDESIGNED: ImageFlipHorizontal(), optimized (#1218)
1456[textures] REDESIGNED: ImageFlipVertical(), optimized (#1218)
1457[textures] REDESIGNED: ImageResizeCanvas(), optimized (#1218)
1458[textures] REDESIGNED: ImageDrawPixel(), optimized
1459[textures] REDESIGNED: ImageDrawLine(), optimized
1460[textures] REDESIGNED: ImageDraw(), optimized (#1218)
1461[textures] REDESIGNED: ImageResize(), optimized (#1218)
1462[textures] REDESIGNED: ImageFromImage(), optimized (#1218)
1463[textures] REDESIGNED: ImageDraw(), optimization (#1218)
1464[textures] REDESIGNED: ImageAlphaClear(), optimized (#1218)
1465[textures] REDESIGNED: ExportImageAsCode() to use memory buffer (#1232)
1466[textures] REDESIGNED: ColorFromHSV()
1467[models] ADDED: DrawTriangle3D() and DrawTriangleStrip3D()
1468[models] ADDED: UnloadModelKeepMeshes()
1469[models] REVIEWED: LoadModel(), avoid loading texcoords and normals from model if not existent
1470[models] REVIEWED: GenMeshCubicmap(), added comments and simplification
1471[models] REVIEWED: GenMeshCubicmap(), fixed generated normals (#1244) by @GoldenThumbs
1472[models] REVIEWED: GenMeshPoly(), fixed buffer overflow (#1269) by @frithrah
1473[models] REVIEWED: LoadOBJ(): Allow for multiple materials in obj files (#1408) by @chriscamacho and @codifies
1474[models] REVIEWED: LoadIQM() materials loading (#1227) by @sikor666
1475[models] REVIEWED: LoadGLTF() to read from memory buffer
1476[models] REVIEWED: UpdateMesh(), fix extra memory allocated when updating color buffer (#1271) by @4yn
1477[models] REVIEWED: MeshNormalsSmooth() (#1317) by @seanpringle
1478[models] REVIEWED: DrawGrid() (#1417)
1479[models] REDESIGNED: ExportMesh() to use memory buffer (#1232)
1480[models] REDESIGNED: LoadIQM() and LoadModelAnimations() to use memory buffers
1481[audio] ADDED: LoadWaveFromMemory() (#1327)
1482[audio] REMOVED: SetMusicLoopCount()
1483[audio] REVIEWED: Several functions, sampleCount vs frameCount (#1423)
1484[audio] REVIEWED: SaveWAV() to use memory write insted of file
1485[audio] REVIEWED: LoadMusicStream(), support WAV music streaming (#1198)
1486[audio] REVIEWED: Support multiple WAV sampleSize for MusicStream (#1340)
1487[audio] REVIEWED: SetAudioBufferPitch()
1488[audio] REDESIGNED: Audio looping system
1489[audio] REDESIGNED: LoadSound(): Use memory loading (WAV, OGG, MP3, FLAC) (#1312)
1490[audio] REDESIGNED: ExportWaveAsCode() to use memory buffers
1491[utils] ADDED: MemAlloc() / MemFree() (#1440)
1492[utils] ADDED: UnloadFileData() / UnloadFileText()
1493[utils] REVIEWED: android_fopen() to support SDCard access
1494[utils] REDESIGNED: SaveFile*() functions to expose file access results (#1420)
1495[rmem] REVIEWED: MemPool and other allocators optimization (#1211) by @assyrianic
1496[examples] ADDED: core/core_window_flags
1497[examples] ADDED: core/core_quat_conversion by @chriscamacho and @codifies
1498[examples] ADDED: textures/textures_blend_modes (#1261) by @accidentalrebel
1499[examples] ADDED: textures/textures_draw_tiled (#1291) by @Demizdor
1500[examples] ADDED: shaders/shaders_hot_reloading (#1198)
1501[examples] ADDED: shaders/shaders_rlgl_mesh_instanced (#1318) by @seanpringle
1502[examples] ADDED: shaders/shaders_multi_sampler2d
1503[examples] ADDED: others/embedded_files_loading
1504[examples] REVIEWED: textures/textures_raw_data (#1286)
1505[examples] REVIEWED: textures/textures_sprite_explosion, replace resources
1506[examples] REVIEWED: textures/textures_particles_blending, replace resources
1507[examples] REVIEWED: textures/textures_image_processing, support mouse
1508[examples] REVIEWED: models/models_skybox to work on OpenGL ES 2.0
1509[examples] REVIEWED: audio/resources, use open license resources
1510[examples] REVIEWED: others/raudio_standalone.c
1511[build] ADDED: New config.h configuration options exposing multiple #define values
1512[build] REMOVED: ANGLE VS2017 template project
1513[build] REVIEWED: All MSVC compile warnings
1514[build] Updated Makefile for web (#1332) by @rfaile313
1515[build] Updated build pipelines to use latest emscripten and Android NDK
1516[build] Updated emscriptem build script to generate .a on WebAssembly
1517[build] Updated Android build for Linux, supporting ANDROID_NDK at compile time by @branlix3000
1518[build] Updated VSCode project template tasks
1519[build] Updated VS2017.UWP project template by @Rover656
1520[build] Updated Android build pipeline
1521[build] REMOVED: AppVeyor and Travis CI build systems
1522[*] Moved raysan5/raylib/games to independent repo: raysan5/raylib-games
1523[*] Replaced several examples resources with more open licensed alternatives
1524[*] Updated BINDINGS.md with NEW bindings and added raylib version binding!
1525[*] Updated all external libraries to latest versions
1526[*] Multiple code improvements and small fixes
1527
1528-----------------------------------------------
1529Release:     raylib 3.0 (01 April 2020)
1530-----------------------------------------------
1531KEY CHANGES:
1532 - Global context states used on all modules.
1533 - Custom memory allocators for all modules and dependencies.
1534 - Centralized file access system and memory data loading.
1535 - Structures reviewed to reduce size and always be used as pass-by-value.
1536 - Tracelog messages completely reviewed and categorized.
1537 - raudio module reviewed to accomodate new Music struct and new miniaudio.
1538 - text module reviewed to improve fonts generation and text management functions.
1539 - Multiple new examples added and categorized examples table.
1540 - GitHub Actions CI implemented for Windows, Linux and macOS.
1541
1542Detailed changes:
1543[build] ADDED: VS2017.ANGLE project, by @msmshazan
1544[build] ADDED: VS2017 project support for x64 platform configuration
1545[build] ADDED: Makefile for Android building on macOS, by @Yunoinsky
1546[build] ADDED: Makefile for Android building on Linux, by @pamarcos
1547[build] REMOVED: VS2015 project
1548[build] REVIEWED: VSCode project
1549[build] REVIEWED: Makefile build system
1550[build] REVIEWED: Android building, by @NimbusFox
1551[build] REVIEWED: Compilation with CLion IDE, by @Rover656
1552[build] REVIEWED: Generation of web examples, by @pamarcos
1553[build] REVIEWED: Makefiles path to 'shell.html', by @niorad
1554[build] REVIEWED: VS2017 64bit compilation issues, by @spec-chum
1555[build] REVIEWED: Multiple fixes on projects building, by @ChrisDill, @JuDelCo, @electronstudio
1556[core] ADDED: Support touch/mouse indistinctly
1557[core] ADDED: FLAG_WINDOW_ALWAYS_RUN to avoid pause on minimize
1558[core] ADDED: Config flag SUPPORT_HALFBUSY_WAIT_LOOP
1559[core] ADDED: RPI mouse cursor point support on native mode
1560[core] ADDED: GetWorldToScreen2D()- Get screen space position for a 2d camera world space position, by @arvyy
1561[core] ADDED: GetScreenToWorld2D() - Get world space position for a 2d camera screen space position, by @arvyy
1562[core] ADDED: GetWorldToScreenEx() - Get size position for a 3d world space position
1563[core] ADDED: DirectoryExists() - Check if a directory path exists
1564[core] ADDED: GetPrevDirectoryPath() - Get previous directory path for a given path
1565[core] ADDED: CompressData() - Compress data (DEFLATE algorythm)
1566[core] ADDED: DecompressData() - Decompress data (DEFLATE algorythm)
1567[core] ADDED: GetWindowPosition() - Get window position XY on monitor
1568[core] ADDED: LoadFileData() - Load file data as byte array (read)
1569[core] ADDED: SaveFileData() - Save data to file from byte array (write)
1570[core] ADDED: LoadFileText() - Load text data from file (read), returns a '\0' terminated string
1571[core] ADDED: SaveFileText() - Save text data to file (write), string must be '\0' terminated
1572[core] REMOVED: Show raylib logo at initialization
1573[core] REVIEWED: GetFileName(), security checks
1574[core] REVIEWED: LoadStorageValue(), by @danimartin82
1575[core] REVIEWED: SaveStorageValue(), by @danimartin82
1576[core] REVIEWED: IsMouseButtonReleased(), when press/release events come too fast, by @oswjk
1577[core] REVIEWED: SetWindowMonitor(), by @DropsOfSerenity
1578[core] REVIEWED: IsFileExtension() to be case-insensitive
1579[core] REVIEWED: IsFileExtension() when checking no-extension files
1580[core] REVIEWED: Default font scale filter for HighDPI mode
1581[core] REVIEWED: Touch input scaling for PLATFORM_WEB
1582[core] REVIEWED: RPI input system, by @DarkElvenAngel
1583[core] REVIEWED: RPI input threads issues
1584[core] REVIEWED: OpenGL extensions loading and freeing
1585[core] REVIEWED: GetDirectoryPath()
1586[core] REVIEWED: Camera2D behavior, by @arvyy
1587[core] REVIEWED: OpenGL ES 2.0 extensions check
1588[rlgl] ADDED: Flags to allow frustrum culling near/far distance configuration at compile time
1589[rlgl] ADDED: Flags to sllow MAX_BATCH_BUFFERING config at compile time
1590[rlgl] ADDED: GetMatrixProjection(), by @chriscamacho
1591[rlgl] ADDED: rlUpdateMeshAt() - Update vertex or index data on GPU, at index, by @brankoku
1592[rlgl] REVIEWED: Vertex padding not zeroed for quads, by @kawa-yoiko
1593[rlgl] REVIEWED: Read texture data as RGBA from FBO on GLES 2.0
1594[rlgl] REVIEWED: LoadShaderCode() for const correctness, by @heretique
1595[rlgl] REVIEWED: rlLoadTexture()
1596[rlgl] REVIEWED: rlReadTexturePixels()
1597[rlgl] REVIEWED: rlUpdateMesh() to supports updating indices, by @brankoku
1598[rlgl] REVIEWED: GenTextureCubemap(), renamed parameters for consistency
1599[rlgl] REVIEWED: HDR pixels loading
1600[raymath] ADDED: MatrixRotateXYZ(), by @chriscamacho
1601[raymath] RENAMED: Vector3Multiply() to Vector3Scale()
1602[camera] REVIEWED: Free camera pitch, by @chriscamacho
1603[camera] REVIEWED: Camera not working properly at z-align, by @Ushio
1604[shapes] ADDED: DrawTriangleStrip() - Draw a triangle strip defined by points
1605[shapes] ADDED: DrawEllipse() - Draw ellipse
1606[shapes] ADDED: DrawEllipseLines() - Draw ellipse outline
1607[shapes] ADDED: DrawPolyLines() - Draw a polygon outline of n sides
1608[shapes] REVIEWED: DrawPoly() shape rendering, by @AlexHCC
1609[textures] ADDED: LoadAnimatedGIF() - Load animated GIF file
1610[textures] ADDED: GetImageAlphaBorder() - Get image alpha border rectangle
1611[textures] ADDED: ImageFromImage() - Create an image from another image piece
1612[textures] ADDED: ImageClearBackground(), by @iamsouravgupta
1613[textures] ADDED: ImageDrawPixel(), by @iamsouravgupta
1614[textures] ADDED: ImageDrawCircle(), by @iamsouravgupta
1615[textures] ADDED: ImageDrawLineEx(), by @iamsouravgupta
1616[textures] ADDED: ImageDrawPixelV(), by @RobLoach
1617[textures] ADDED: ImageDrawCircleV(), by @RobLoach
1618[textures] ADDED: ImageDrawLineV(), by @RobLoach
1619[textures] ADDED: ImageDrawRectangleV(), by @RobLoach
1620[textures] ADDED: ImageDrawRectangleRec(), by @RobLoach
1621[textures] REVIEWED: ImageDrawPixel(), by @RobLoach
1622[textures] REVIEWED: ImageDrawLine(), by @RobLoach
1623[textures] REVIEWED: ImageDrawCircle(), by @RobLoach
1624[textures] REVIEWED: ImageDrawRectangle(), by @RobLoach
1625[textures] REVIEWED: ImageDraw(), now it supports color tint parameter
1626[textures] REVIEWED: ImageResizeCanvas()
1627[textures] REVIEWED: ImageCrop() with security checks
1628[textures] REVIEWED: ImageAlphaMask()
1629[textures] REVIEWED: ImageDrawRectangleLines()
1630[textures] REVIEWED: GetImageData()
1631[text] ADDED: TextCopy() - Copy one string to another, returns bytes copied
1632[text] ADDED: GetCodepoints() - Get all codepoints in a string
1633[text] ADDED: CodepointToUtf8() - Encode codepoint into utf8 text
1634[text] ADDED: DrawTextCodepoint() - Draw one character (codepoint)
1635[text] RENAMED: LoadDefaultFont() -> LoadFontDefault()
1636[text] RENAMED: TextCountCodepoints() -> GetCodepointsCount()
1637[text] REVIEWED: TextFormat(), to support caching, by @brankoku
1638[text] REVIEWED: LoadFontData(), generate empty image for space character
1639[text] REVIEWED: TextSplit()
1640[text] REVIEWED: TextToInteger()
1641[text] REVIEWED: GetNextCodepoint(), renamed parameters for clarity
1642[text] REVIEWED: GenImageFontAtlas(), improved atlas size computing
1643[text] REDESIGNED: struct Font, character rectangles have been moved out from CharInfo to Font
1644[text] REDESIGNED: struct CharInfo, now includes directly an Image of the glyph
1645[text] REDESIGNED: GenImageFontAtlas(), additional recs parameter added
1646[text] REDESIGNED: ImageTextEx(), to avoid font retrieval from GPU
1647[models] ADDED: Support rlPushMatrix() and rlPopMatrix() on mesh drawing
1648[models] ADDED: DrawPoint3D() - Draw a point in 3D space, actually a small line, by @ProfJski
1649[models] ADDED: Multi texture support for materials in GLTF format, by @Gamerfiend, @chriscamacho
1650[models] REVIEWED: LoadGLTF(), fixed memory leak, by @jubalh
1651[models] REVIEWED: LoadIQM(), support multiple animations loading, by @culacant
1652[models] REVIEWED: GetCollisionRayModel(), to avoid pointers
1653[models] REVIEWED: CheckCollisionRay*(), parameters renamed
1654[models] REVIEWED: UnloadMesh(), to avoid pointers
1655[models] REVIEWED: LoadModel(), memory initialization
1656[models] REVIEWED: UpdateModelAnimation(), added security checks
1657[models] REVIEWED: Multiple fixes on models loading, by @jubalh
1658[models] REVIEWED: Normals updated when using animated meshes, by @@las3rlars
1659[models] REVIEWED: Compilation when the SUPPORT_MESH_GENERATION not set, by @@Elkantor
1660[raudio] ADDED: Multi-channel audio playing, by @chriscamacho
1661[raudio] REMOVED: LoadWaveEx()
1662[raudio] RENAMED: IsAudioBufferProcessed() to IsAudioStreamProcessed()
1663[raudio] REVIEWED: Ensure .xm playback starts in the right place, by @illegalinstruction
1664[raudio] REVIEWED: Fix short non-looping sounds, by @jbosh
1665[raudio] REVIEWED: Modules playing time to full length
1666[raudio] REDESIGNED: Replaced Music pointer by struct
1667[raudio] REDESIGNED: Removed sampleLeft from Music struct
1668[examples] ADDED: core_scissor_test, by @ChrisDill
1669[examples] ADDED: core_2d_camera_platformer, by @arvyy
1670[examples] ADDED: textures_mouse_painting, by @ChrisDill
1671[examples] ADDED: models_waving_cubes, by @codecat
1672[examples] ADDED: models_solar_system, by @aldrinmartoq
1673[examples] ADDED: shaders_fog, by @chriscamacho
1674[examples] ADDED: shaders_texture_waves, by @Anata
1675[examples] ADDED: shaders_basic_lighting, by @chriscamacho
1676[examples] ADDED: shaders_simple_mask, by @chriscamacho
1677[examples] ADDED: audio_multichannel_sound, by @chriscamacho
1678[examples] ADDED: shaders_spotlight, by @chriscamacho
1679[examples] RENAMED: text_sprite_font > text_font_spritefont
1680[examples] RENAMED: text_ttf_loading > text_font_filters
1681[examples] RENAMED: text_bmfont_ttf > text_font_loading
1682[examples] REMOVED: models_obj_viewer
1683[examples] REMOVED: models_solar_system
1684[examples] REVIEWED: models_obj_loading > models_loading
1685[examples] REVIEWED: models_materials_pbr, shader issues
1686[examples] REVIEWED: core_window_letterbox, detailed explanation, by @jotac0
1687[examples] REVIEWED: core_window_letterbox, virtual mouse, by @anatagawa
1688[games] ADDED: GGJ2020 game - RE-PAIR
1689[*] Misc fixes and tweaks, by @yaram, @oraoto, @zatherz, @piecedigital, @Shylie
1690[*] Update ALL supported projects (Notepad++, VS2017)
1691[*] Update ALL external libraries to latest versions (29.Jan.2020)
1692[*] Update ALL examples and games
1693[*] Update BINDINGS list
1694
1695-----------------------------------------------
1696Release:     raylib 2.5 (May 2019)
1697-----------------------------------------------
1698KEY CHANGES:
1699 - [core] Redesigned Gamepad mechanism, now common to all platforms and gamepads
1700 - [core] HighDPI monitors support with automatic content scaling
1701 - [rlgl] Complete module redesign to use one single internal buffer
1702 - [rlgl] VR system redesign to allow custom device parameters and distortion shader
1703 - [shapes] New drawing shapes available: CircleSector, Ring and RectangleRounded
1704 - [text] New text management API (multiple functions)
1705 - [text] Full Unicode support (utf8 text)
1706 - [textures] Cubemap textures support
1707 - [textures] Quad and N-Patch drawing
1708 - [models] Skeletal model animation support
1709 - [models] Support multiple meshes per model
1710 - [models] Support glTF model loading
1711
1712Detailed changes:
1713[build] REVIEWED: Default raylib and examples Makefile
1714[build] REVIEWED: Notepad++ NppExec scripts
1715[build] REVIEWED: VS2015 and VS2017 projects
1716[build] REVIEWED: Android APK build pipeline
1717[core] Converted most #defined values as enum values
1718[core] Complete redesign of RPI input system to use evdev events
1719[core] ADDED: IsWindowResized() - Check if window has been resized
1720[core] ADDED: IsWindowHidden() - Check if window is currently hidden
1721[core] ADDED: UnhideWindow() - Show the window
1722[core] ADDED: HideWindow() - Hide the window
1723[core] ADDED: GetWindowHandle() - Get native window handle
1724[core] ADDED: GetMonitorCount() - Get number of connected monitors
1725[core] ADDED: GetMonitorWidth() - Get primary monitor width
1726[core] ADDED: GetMonitorHeight() - Get primary monitor height
1727[core] ADDED: GetMonitorPhysicalWidth() - Get primary monitor physical width in millimetres
1728[core] ADDED: GetMonitorPhysicalHeight() - Get primary monitor physical height in millimetres
1729[core] ADDED: GetMonitorName() - Get the human-readable, UTF-8 encoded name of the primary monitor
1730[core] ADDED: GetClipboardText() - Get clipboard text content
1731[core] ADDED: SetClipboardText() - Set clipboard text content
1732[core] ADDED: ColorFromHSV() - Returns a Color from HSV values
1733[core] ADDED: FileExists() - Check if file exists
1734[core] ADDED: GetFileNameWithoutExt() - Get filename string without extension (memory should be freed)
1735[core] ADDED: GetDirectoryFiles() - Get filenames in a directory path (memory should be freed)
1736[core] ADDED: ClearDirectoryFiles() - Clear directory files paths buffers (free memory)
1737[core] ADDED: OpenURL() - Open URL with default system browser (if available)
1738[core] ADDED: SetMouseOffset() - Set mouse offset
1739[core] ADDED: SetMouseScale() - Set mouse scaling
1740[core] REMOVED: ShowLogo() - Activate raylib logo at startup (can be done with flags)
1741[shapes] ADDED: DrawCircleSector() - Draw a piece of a circle
1742[shapes] ADDED: DrawCircleSectorLines() - Draw circle sector outline
1743[shapes] ADDED: DrawRing() - Draw ring
1744[shapes] ADDED: DrawRingLines() - Draw ring outline
1745[shapes] ADDED: DrawRectangleRounded() - Draw rectangle with rounded edges
1746[shapes] ADDED: DrawRectangleRoundedLines() - Draw rectangle with rounded edges outline
1747[shapes] ADDED: SetShapesTexture() - Define default texture used to draw shapes
1748[textures] REVIEWED: ExportImage() - Reorder function parameters
1749[textures] REVIEWED: ImageDrawRectangle() - Remove unneeded parameter
1750[textures] ADDED: ExportImageAsCode() - Export image as code file defining an array of bytes
1751[textures] ADDED: LoadTextureCubemap() - Load cubemap from image, multiple image cubemap layouts supported
1752[textures] ADDED: ImageExtractPalette() - Extract color palette from image to maximum size (memory should be freed)
1753[textures] ADDED: ImageDrawRectangleLines() - Draw rectangle lines within an image
1754[textures] ADDED: DrawTextureQuad() - Draw texture quad with tiling and offset parameters
1755[textures] ADDED: DrawTextureNPatch() - Draws a texture (or part of it) that stretches or shrinks nicely
1756[models] REVIEWED: LoadMesh() -> LoadMeshes() - Support multiple meshes loading
1757[models] REVIEWED: LoadMaterial() -> LoadMaterials() - Support multiple materials loading
1758[models] REVIEWED: ExportMesh() - Reorder parameters
1759[models] ADDED: DrawCubeWiresV() - Draw cube wires (Vector version)
1760[models] ADDED: GenMeshPoly() - Generate polygonal mesh
1761[models] ADDED: SetMaterialTexture() - Set texture for a material map type (MAP_DIFFUSE, MAP_SPECULAR...)
1762[models] ADDED: SetModelMeshMaterial() - Set material for a mesh
1763[models] ADDED: LoadModelAnimations() - Load model animations from file
1764[models] ADDED: UpdateModelAnimation() - Update model animation pose
1765[models] ADDED: UnloadModelAnimation() - Unload animation data
1766[models] ADDED: IsModelAnimationValid() - Check model animation skeleton match
1767[rlgl] Improved internal batching mechanism (multibuffering support, triangle texcoords...)
1768[rlgl] REVIEWED: rlPushMatrix()/rlPopMatrix() - Now works like OpenGL 1.1
1769[rlgl] REVIEWED: SetShaderValue() - More generic, now requires uniform type
1770[rlgl] REMOVED: SetShaderValuei() - Can be acoomplished with new SetShaderValue()
1771[rlgl] ADDED: SetShaderValueV() - Set shader uniform value vector
1772[rlgl] ADDED: SetShaderValueTexture() - Set shader uniform value for texture
1773[rlgl] ADDED: BeginScissorMode() - Begin scissor mode (define screen area for following drawing)
1774[rlgl] ADDED: EndScissorMode() - End scissor mode
1775[rlgl] ADDED: SetVrConfiguration() - Set stereo rendering configuration parameters
1776[rlgl] REVIEWED: InitVrSimulator() - No input parameter required, use SetVrConfiguration()
1777[text] REVIEWED: LoadFontEx() - Reorder function parameters
1778[text] REVIEWED: LoadFontData() - Reorder function parameters
1779[text] REVIEWED: GenImageFontAtlas() - Reorder function parameters
1780[text] RENAMED: FormatText() -> TextFormat()
1781[text] RENAMED: SubText() -> TextSubtext()
1782[text] ADDED: LoadFontFromImage() - Load font from Image (XNA style)
1783[text] ADDED: DrawTextRec() - Draw text using font inside rectangle limits
1784[text] ADDED: DrawTextRecEx() - Draw text using font inside rectangle limits with support for text selection
1785[text] ADDED: TextIsEqual() - Check if two text string are equal
1786[text] ADDED: TextLength() - Get text length, checks for '\0' ending
1787[text] ADDED: TextReplace() - Replace text string (memory should be freed!)
1788[text] ADDED: TextInsert() - Insert text in a position (memory should be freed!)
1789[text] ADDED: TextJoin() - Join text strings with delimiter
1790[text] ADDED: TextSplit() - Split text into multiple strings
1791[text] ADDED: TextAppend() - Append text at specific position and move cursor!
1792[text] ADDED: TextFindIndex() - Find first text occurrence within a string
1793[text] ADDED: TextToUpper() - Get upper case version of provided string
1794[text] ADDED: TextToLower() - Get lower case version of provided string
1795[text] ADDED: TextToPascal() - Get Pascal case notation version of provided string
1796[text] ADDED: TextToInteger() - Get integer value from text (negative values not supported)
1797[raudio] ADDED: ExportWave() - Export wave data to file
1798[raudio] ADDED: ExportWaveAsCode() - Export wave sample data to code (.h)
1799[raudio] ADDED: IsAudioStreamPlaying() - Check if audio stream is playing
1800[raudio] ADDED: SetAudioStreamVolume() - Set volume for audio stream (1.0 is max level)
1801[raudio] ADDED: SetAudioStreamPitch() - Set pitch for audio stream (1.0 is base level)
1802[examples] Complete review of full examples collection, many additions
1803[examples] ADDED: core_custom_logging - Custom trace log system
1804[examples] ADDED: core_input_multitouch - Multitouch input example
1805[examples] ADDED: core_window_letterbox - Window adapted to screen
1806[examples] ADDED: core_loading_thread - Data loading in second thread
1807[examples] REVIEWED: core_input_gamepad - Adapted to new gamepad system
1808[examples] REVIEWED: core_vr_simulator - HMD device parameters and distortion shader should be provided
1809[examples] ADDED: core_window_scale_letterbox - Windows resizing and letterbox content
1810[examples] ADDED: shapes_rectangle_scaling_mouse - Scale a rectangle with mouse
1811[examples] ADDED: shapes_draw_circle_sector - Circle sector drawing
1812[examples] ADDED: shapes_draw_ring - Ring drawing
1813[examples] ADDED: shapes_draw_rectangle_rounded - Rounded rectangle drawing
1814[examples] ADDED: shapes_bouncing_ball - Ball bouncing in the screen
1815[examples] ADDED: shapes_collision_area - Collision detection and drawing
1816[examples] ADDED: shapes_following_eyes - Some maths on eyes and mouse
1817[examples] ADDED: shapes_easings_ball_anim - Ball animation
1818[examples] ADDED: shapes_easings_box_anim - Box animation
1819[examples] ADDED: shapes_easings_rectangle_array - Rectangles animation
1820[examples] REVIEWED: shapes_colors_palette - Reviewed color selection and text displaying
1821[examples] ADDED: textures_background_scrolling - Scrolling and parallaz background effect
1822[examples] ADDED: textures_image_npatch - Drawing N-Patch based boxes
1823[examples] ADDED: textures_sprite_button - Sprite button with sound
1824[examples] ADDED: textures_sprite_explosion - Sprite explosion with sound
1825[examples] ADDED: textures_bunnymark - Benchmarking test
1826[examples] ADDED: text_draw_inside_rectangle - Drawing text inside a delimited rectangle box
1827[examples] ADDED: text_unicode - Multiple languages text drawing
1828[examples] ADDED: text_rectangle_bound - Fit text inside a rectangle
1829[examples] REVIEWED: text_bmfont_ttf - Simplified example
1830[examples] ADDED: models_animation - Animated models loading and animation playing
1831[examples] ADDED: models_obj_viewer - Draw and drop models viewer
1832[examples] ADDED: models_rlgl_solar_system - Solar system simulation using rlgl functionality
1833[examples] ADDED: models_first_person_maze - 3D maze fps
1834[examples] ADDED: shaders_palette_switch - Switching color palette on shader
1835[examples] ADDED: shaders_raymarching - Raymarching shader
1836[examples] ADDED: shaders_texture_drawing - Texture drawing on GPU
1837[examples] ADDED: shaders_texture_waves - Texture waves on shader
1838[examples] ADDED: shaders_julia_set - Julia set fractals
1839[examples] ADDED: shaders_eratosthenes - Prime number visualization shader
1840[examples] REVIEWED: audio_raw_stream - Mostly rewritten
1841[games] ADDED: GGJ19 game - Cat vs Roomba
1842[*] Updated external libraries to latest version
1843[*] Multiple bugs corrected (check github issues)
1844
1845-----------------------------------------------
1846Release:     raylib 2.0 (July 2018)
1847-----------------------------------------------
1848KEY CHANGES:
1849  - Removed external dependencies (GLFW3 and OpenAL)
1850  - Complete redesign of audio module to use miniaudio library
1851  - Support AppVeyor and Travis CI (continuous integration) building
1852  - Reviewed raymath.h for better consistency and performance (inlining)
1853  - Refactor all #define SUPPORT_* into a single config.h
1854  - Support TCC compiler (32bit and 64bit)
1855
1856Detailed changes:
1857[build] REMOVED: GitHub develop branch
1858[build] REMOVED: External dependencies GLFW and OpenAL
1859[build] ADDED: Android 64bit ARM support
1860[build] ADDED: FreeBSD, OpenBSD, NetBSD, Dragon Fly OS support
1861[build] ADDED: Universal Windows Platform (UWP) support
1862[build] ADDED: Wayland Linux desktop support
1863[build] ADDED: AppVeyor CI for automatic Windows builds
1864[build] ADDED: Travis CI for automatic Linux/macOS builds
1865[build] ADDED: rglfw (GLFW3 module) to avoid external dependency
1866[build] ADDED: VS2017 UWP project
1867[build] ADDED: Builder project template
1868[build] ADDED: Compiler memory sanitizer for better debug
1869[build] ADDED: CMake package target and CI auto-deploy tags
1870[build] ADDED: DEBUG library building support
1871[build] ADDED: Notepad++ NppExec scripts
1872[build] REVIEWED: VS2015 and VS2017 projects
1873[build] REVIEWED: Android APK build pipeline
1874[core] REVIEWED: Window creation hints to support transparent windows
1875[core] Unified InitWindow() between platforms
1876[core] Export Android main entry point
1877[core] RENAMED: Begin3dMode() to BeginMode3D()
1878[core] RENAMED: End3dMode() to EndMode3D()
1879[core] RENAMED: Begin2dMode() to BeginMode2D()
1880[core] RENAMED: End2dMode() to EndMode2D()
1881[core] RENAMED: struct Camera to Camera3D
1882[core] RENAMED: struct SpriteFont to Font -> plus all required functions!
1883[core] RENAMED: enum TextureFormat to PixelFormat
1884[core] REVIEWED: Rectangle params int to float
1885[core] REVIEWED: timing system for macOS
1886[core] REMOVED: ColorToFloat()
1887[core] ADDED: GetCurrentTime() on macOS
1888[core] ADDED: GetTime()
1889[core] ADDED: struct Vector4
1890[core] ADDED: SetTraceLog() to define trace log messages type
1891[core] ADDED: GetFileName() to get filename from path string
1892[core] ADDED: ColorToHSV()
1893[core] ADDED: ColorNormalize()
1894[core] ADDED: SetWindowSize() to scale Windows in runtime
1895[core] ADDED: SetMouseScale() to scale mouse input
1896[core] ADDED: key definitions - KEY_GRAVE, KEY_SLASH, KEY_BACKSLASH
1897[core] RENAMED: GetHexValue() to ColorToInt()
1898[core] REVIEWED: Fade()
1899[core] REVIEWED: InitWindow() to avoid void pointer (safety)
1900[core] Support camera 3d orthographic projection mode
1901[shapes] ADDED: DrawRectangleLinesEx()
1902[textures] Improved pixel formats support (32bit channels)
1903[textures] Improved textures support for OpenGL 2.1
1904[textures] REMOVED: DrawRectangleT() --> Added support to DrawRectangle()
1905[textures] ADDED: GetPixelDataSize(); pixel data size in bytes (image or texture)
1906[textures] ADDED: ImageAlphaClear() --> Clear alpha channel to desired color
1907[textures] ADDED: ImageAlphaCrop() --> Crop image depending on alpha value
1908[textures] ADDED: ImageAlphaPremultiply() --> Premultiply alpha channel
1909[textures] ADDED: ImageDrawRectangle()
1910[textures] ADDED: ImageMipmaps()
1911[textures] ADDED: GenImageColor()
1912[textures] ADDED: GetPixelDataSize()
1913[textures] ADDED: ImageRotateCW()
1914[textures] ADDED: ImageRotateCCW()
1915[textures] ADDED: ImageResizeCanvas()
1916[textures] ADDED: GetImageDataNormalized()
1917[textures] REVIEWED: ImageFormat() to use normalized data
1918[textures] REVIEWED: Manual mipmap generation
1919[textures] REVIEWED: LoadASTC()
1920[textures] REVIEWED: GenImagePerlinNoise()
1921[textures] REVIEWED: ImageTextEx() to support UTF8 basic characters
1922[textures] REVIEWED: GetTextureData() for RPI - requires some work
1923[textures] Added new example: text drawing on image
1924[text] Corrected issue with ttf font y-offset
1925[text] Support SDF font data generation
1926[text] ADDED: GenImageFontAtlas()
1927[text] ADDED: LoadFontData() to load data from TTF file
1928[text] REMOVED: LoadTTF() internal function
1929[text] REVIEWED: DrawTextEx() - avoid rendering SPACE character!
1930[text] RENAMED: GetDefaultFont() to GetFontDefault()
1931[rlgl] ADDED: rlCheckBufferLimit()
1932[rlgl] ADDED: LoadShaderCode()
1933[rlgl] ADDED: GetMatrixModelview()
1934[rlgl] ADDED: SetVrDistortionShader(Shader shader)
1935[rlgl] REVIEWED: rlLoadTexture() - added mipmaps support, improved compressed textures loading
1936[rlgl] REVIEWED: rlReadTexturePixels()
1937[models] Support 4 components mesh.tangent data
1938[models] Removed tangents generation from LoadOBJ()
1939[models] ADDED: MeshTangents()
1940[models] ADDED: MeshBinormals()
1941[models] ADDED: ExportMesh()
1942[models] ADDED: GetCollisionRayModel()
1943[models] RENAMED: CalculateBoundingBox() to MeshBoundingBox()
1944[models] REMOVED: GetCollisionRayMesh() - does not consider model transform
1945[models] REVIEWED: LoadMesh() - fallback to default cube mesh if loading fails
1946[audio] ADDED: Support for MP3 fileformat
1947[audio] ADDED: IsAudioStreamPlaying()
1948[audio] ADDED: SetAudioStreamVolume()
1949[audio] ADDED: SetAudioStreamPitch()
1950[utils] Corrected issue with SaveImageAs()
1951[utils] RENAMED: SaveImageAs() to ExportImage()
1952[utils] REMOVED: rres support - moved to external library (rres.h)
1953[shaders] REVIEWED: GLSL 120 shaders
1954[raymath] ADDED: Vector3RotateByQuaternion()
1955[raymath] REVIEWED: math usage to reduce temp variables
1956[raymath] REVIEWED: Avoid pointer-based parameters for API consistency
1957[physac] REVIEWED: physac.h timing system
1958[examples] Replaced dwarf model by brand new 3d assets: 3d medieval buildings
1959[examples] Assets cleaning and some replacements
1960[games] ADDED: GGJ18 game - transmission mission
1961[games] REVIEWED: Light my Ritual game - improved gameplay drawing
1962[*] Updated external libraries to latest version
1963[*] Multiple bugs corrected (check github issues)
1964
1965-----------------------------------------------
1966Release:     raylib 1.8.0 (Oct 2017)
1967-----------------------------------------------
1968NOTE:
1969  In this release, multiple parts of the library have been reviewed (again) for consistency and simplification.
1970  It exposes more than 30 new functions in comparison with previous version and it improves overall programming experience.
1971
1972BIG CHANGES:
1973  - New Image generation functions: Gradient, Checked, Noise, Cellular...
1974  - New Mesh generation functions: Cube, Sphere, Cylinder, Torus, Knot...
1975  - New Shaders and Materials systems to support PBR materials
1976  - Custom Android APK build pipeline with simple Makefile
1977  - Complete review of rlgl layer functionality
1978  - Complete review of raymath functionality
1979
1980detailed changes:
1981[rlgl] RENAMED: rlglLoadTexture() to rlLoadTexture()
1982[rlgl] RENAMED: rlglLoadRenderTexture() to rlLoadRenderTexture()
1983[rlgl] RENAMED: rlglUpdateTexture() to rlUpdateTexture()
1984[rlgl] RENAMED: rlglGenerateMipmaps() to rlGenerateMipmaps()
1985[rlgl] RENAMED: rlglReadScreenPixels() to rlReadScreenPixels()
1986[rlgl] RENAMED: rlglReadTexturePixels() to rlReadTexturePixels()
1987[rlgl] RENAMED: rlglLoadMesh() to rlLoadMesh()
1988[rlgl] RENAMED: rlglUpdateMesh() to rlUpdateMesh()
1989[rlgl] RENAMED: rlglDrawMesh() to rlDrawMesh()
1990[rlgl] RENAMED: rlglUnloadMesh() to rlUnloadMesh()
1991[rlgl] RENAMED: rlglUnproject() to rlUnproject()
1992[rlgl] RENAMED: LoadCompressedTexture() to LoadTextureCompressed()
1993[rlgl] RENAMED: GetDefaultTexture() to GetTextureDefault()
1994[rlgl] RENAMED: LoadDefaultShader() to LoadShaderDefault()
1995[rlgl] RENAMED: LoadDefaultShaderLocations() to SetShaderDefaultLocations()
1996[rlgl] RENAMED: UnloadDefaultShader() to UnLoadShaderDefault()
1997[rlgl] ADDED: rlGenMapCubemap(), Generate cubemap texture map from HDR texture
1998[rlgl] ADDED: rlGenMapIrradiance(), Generate irradiance texture map
1999[rlgl] ADDED: rlGenMapPrefilter(), Generate prefilter texture map
2000[rlgl] ADDED: rlGenMapBRDF(), Generate BRDF texture map
2001[rlgl] ADDED: GetVrDeviceInfo(), Get VR device information for some standard devices
2002[rlgl] REVIEWED: InitVrSimulator(), to accept device parameters as input
2003[core] ADDED: SetWindowTitle(), Set title for window (only PLATFORM_DESKTOP)
2004[core] ADDED: GetExtension(), Get file extension
2005[shapes] REMOVED: DrawRectangleGradient(), replaced by DrawRectangleGradientV() and DrawRectangleGradientH()
2006[shapes] ADDED: DrawRectangleGradientV(), Draw a vertical-gradient-filled rectangle
2007[shapes] ADDED: DrawRectangleGradientH(), Draw a horizontal-gradient-filled rectangle
2008[shapes] ADDED: DrawRectangleGradientEx(), Draw a gradient-filled rectangle with custom vertex colors
2009[shapes] ADDED: DrawRectangleT(), Draw rectangle using text character
2010[textures] ADDED: SaveImageAs(), Save image as PNG file
2011[textures] ADDED: GenImageGradientV(), Generate image: vertical gradient
2012[textures] ADDED: GenImageGradientH(), Generate image: horizontal gradient
2013[textures] ADDED: GenImageGradientRadial(), Generate image: radial gradient
2014[textures] ADDED: GenImageChecked(), Generate image: checked
2015[textures] ADDED: GenImageWhiteNoise(), Generate image: white noise
2016[textures] ADDED: GenImagePerlinNoise(), Generate image: perlin noise
2017[textures] ADDED: GenImageCellular(), Generate image: cellular algorithm. Bigger tileSize means bigger cells
2018[textures] ADDED: GenTextureCubemap(), Generate cubemap texture from HDR texture
2019[textures] ADDED: GenTextureIrradiance(), Generate irradiance texture using cubemap data
2020[textures] ADDED: GenTexturePrefilter(), Generate prefilter texture using cubemap data
2021[textures] ADDED: GenTextureBRDF(), Generate BRDF texture using cubemap data
2022[models] REMOVED: LoadMeshEx(), Mesh struct variables can be directly accessed
2023[models] REMOVED: UpdateMesh(), very ineficient
2024[models] REMOVED: LoadHeightmap(), use GenMeshHeightmap() and LoadModelFromMesh()
2025[models] REMOVED: LoadCubicmap(), use GenMeshCubicmap() and LoadModelFromMesh()
2026[models] RENAMED: LoadDefaultMaterial() to LoadMaterialDefault()
2027[models] ADDED: GenMeshPlane(), Generate plane mesh (with subdivisions)
2028[models] ADDED: GenMeshCube(), Generate cuboid mesh
2029[models] ADDED: GenMeshSphere(), Generate sphere mesh (standard sphere)
2030[models] ADDED: GenMeshHemiSphere(), Generate half-sphere mesh (no bottom cap)
2031[models] ADDED: GenMeshCylinder(), Generate cylinder mesh
2032[models] ADDED: GenMeshTorus(), Generate torus mesh
2033[models] ADDED: GenMeshKnot(), Generate trefoil knot mesh
2034[models] ADDED: GenMeshHeightmap(), Generate heightmap mesh from image data
2035[models] ADDED: GenMeshCubicmap(), Generate cubes-based map mesh from image data
2036[raymath] REVIEWED: full Matrix functionality to align with GLM in usage
2037[raymath] RENAMED: Vector3 functions for consistency: Vector*() renamed to Vector3*()
2038[build] Integrate Android APK building into examples Makefile
2039[build] Integrate Android APK building into templates Makefiles
2040[build] Improved Visual Studio 2015 project, folders, references...
2041[templates] Reviewed the full pack to support Android building
2042[examples] Reviewed full collection to adapt to raylib changes
2043[examples] [textures] ADDED: textures_image_generation
2044[examples] [models] ADDED: models_mesh_generation
2045[examples] [models] ADDED: models_material_pbr
2046[examples] [models] ADDED: models_skybox
2047[examples] [models] ADDED: models_yaw_pitch_roll
2048[examples] [others] REVIEWED: rlgl_standalone
2049[examples] [others] REVIEWED: audio_standalone
2050[github] Moved raylib webpage to own repo: github.com/raysan5/raylib.com
2051[games] Reviewed game: Koala Seasons
2052[*] Updated STB libraries to latest version
2053[*] Multiple bugs corrected (check github issues)
2054
2055-----------------------------------------------
2056Release:     raylib 1.7.0 (20 May 2017)
2057-----------------------------------------------
2058NOTE:
2059  In this new raylib release, multiple parts of the library have been reviewed for consistency and simplification.
2060  It exposes almost 300 functions, around 30 new functions in comparison with previous version and, again,
2061  it sets a stepping stone towards raylib future.
2062
2063BIG changes:
2064  - More than 30 new functions added to the library, check list below.
2065  - Support of configuration flags on every raylib module, to customize library build.
2066  - Improved build system for all supported platforms with a unique Makefile to compile sources.
2067  - Complete review of examples and sample games, added new sample material.
2068  - Support automatic GIF recording of current window, just pressing Ctrl+F12
2069  - Improved library consistency and organization in general.
2070
2071other changes:
2072[core] Added function: SetWindowIcon(), to setup icon by code
2073[core] Added function: SetWindowMonitor(), to set current display monitor
2074[core] Added function: SetWindowMinSize(), to set minimum resize size
2075[core] Added function: TakeScreenshot(), made public to API (also launched internally with F12)
2076[core] Added function: GetDirectoryPath(), get directory for a given fileName (with path)
2077[core] Added function: GetWorkingDirectory(), get current working directory
2078[core] Added function: ChangeDirectory(), change working directory
2079[core] Added function: TraceLog(), made public to API
2080[core] Improved timing system to avoid busy wait loop on frame sync: Wait()
2081[core] Added support for gamepad on HTML5 platform
2082[core] Support mouse lock, useful for camera system
2083[core] Review functions description comments
2084[rlgl] Removed function: GetStandardShader(), removed internal standard shader
2085[rlgl] Removed function: CreateLight(), removed internal lighting system
2086[rlgl] Removed function: DestroyLight(), removed internal lighting system
2087[rlgl] Removed function: InitVrDevice(), removed VR device render, using simulator
2088[rlgl] Removed function: CloseVrDevice(), removed VR device render, using simulator
2089[rlgl] Removed function: IsVrDeviceReady(), removed VR device render, using simulator
2090[rlgl] Removed function: IsVrSimulator(), removed VR device render, using simulator
2091[rlgl] Added function: InitVrSimulator(), init VR simulator for selected device
2092[rlgl] Added function: CloseVrSimulator(), close VR simulator for current device
2093[rlgl] Added function: IsVrSimulatorReady(), detect if VR device is ready
2094[rlgl] Added function: BeginVrDrawing(), begin VR simulator stereo rendering
2095[rlgl] Added function: EndVrDrawing(), end VR simulator stereo rendering
2096[rlgl] Renamed function: ReadTextFile() to LoadText() and exposed to API
2097[rlgl] Removed internal lighting system and standard shader, moved to example
2098[rlgl] Removed Oculus Rift support, moved to oculus_rift example
2099[rlgl] Removed VR device support and replaced by VR simulator
2100[shapes] Added function: DrawLineEx(), draw line with QUADS, supports custom line thick
2101[shapes] Added function: DrawLineBezier(), draw a line using cubic-bezier curves in-out
2102[shapes] Added function: DrawRectanglePro(), draw a color-filled rectangle with pro parameters
2103[textures] Removed function: LoadImageFromRES(), redesigning custom RRES fileformat
2104[textures] Removed function: LoadTextureFromRES(), redesigning custom RRES fileformat
2105[textures] Removed function: LoadTextureEx(), use instead Image -> LoadImagePro(), LoadImageEx()
2106[textures] Added function: LoadImagePro()), load image from raw data with parameters
2107[textures] Review TraceLog() message when image file not found
2108[text] Renamed function: LoadSpriteFontTTF() to LoadSpriteFontEx(), for consistency
2109[text] Removed rBMF fileformat support, replaced by .png
2110[text] Refactor SpriteFont struct (better for rres custom fileformat)
2111[text] Renamed some variables for consistency
2112[models] Added function: LoadMesh(), load mesh from file
2113[models] Added function: LoadMeshEx(), load mesh from vertex data
2114[models] Added function: UnloadMesh(), unload mesh from memory (RAM and/or VRAM)
2115[models] Added function: GetCollisionRayMesh(), get collision info between ray and mesh
2116[models] Added function: GetCollisionRayTriangle(), get collision info between ray and triangle
2117[models] Added function: GetCollisionRayGround(), get collision info between ray and ground plane
2118[models] Renamed function: LoadModelEx() to LoadModelFromMesh()
2119[models] Removed function: DrawLight(), removed internal lighting system
2120[models] Renamed function: LoadModelEx() to LoadModelFromMesh() for consistency
2121[models] Removed function: LoadStandardMaterial(), removed internal standard shader
2122[models] Removed function: LoadModelFromRES(), redesigning custom RRES fileformat
2123[models] Renamed multiple variables for consistency
2124[audio] Added function: SetMasterVolume(), define listener volume
2125[audio] Added function: ResumeSound(), resume a paused sound
2126[audio] Added function: SetMusicLoopCount(), set number of repeats for a music
2127[audio] Added function: LoadWaveEx(), load wave from raw audio data
2128[audio] Added function: WaveCrop(), crop wave audio data
2129[audio] Added function: WaveFormat(), format audio data
2130[audio] Removed function: LoadSoundFromRES(), redesigning custom RRES fileformat
2131[audio] Added support for 32bit audio samples
2132[audio] Preliminary support for multichannel, limited to mono and stereo
2133[audio] Make sure buffers are ready for update: UpdateMusicStream()
2134[utils] Replaced function: GetExtension() by IsFileExtension() and made public to API
2135[utils] Unified function: TraceLog() between Android and other platforms
2136[utils] Removed internal function: GetNextPOT(), simplified implementation
2137[raymath] Added function: QuaternionToEuler(), to work with Euler angles
2138[raymath] Added function: QuaternionFromEuler(), to work with Euler angles
2139[raymath] Added multiple Vector2 math functions
2140[build] Integrate Android source building into Makefile
2141[example] Added example: shapes_lines_bezier
2142[example] Added example: text_input_box
2143[github] Moved gh-pages branch to master/docs
2144[github] Moved rlua.h and Lua examples to own repo: raylib-lua
2145[games] Reviewed full games collection
2146[games] New game added to collection: Koala Seasons
2147[*] Reviewed and improved examples collection (new assets)
2148[*] Reorganized library functions, structs, enums
2149[*] Updated STB libraries to latest version
2150
2151-----------------------------------------------
2152Release:     raylib 1.6.0 (20 November 2016)
2153-----------------------------------------------
2154NOTE:
2155  This new raylib version commemorates raylib 3rd anniversary and represents another complete review of the library.
2156  It includes some interesting new features and is a stepping stone towards raylib future.
2157
2158HUGE changes:
2159[rlua] Lua BINDING: Complete raylib Lua binding, ALL raylib functions ported to Lua plus the +60 code examples.
2160[audio] COMPLETE REDESIGN: Improved music support and also raw audio data processing and playing, +20 new functions added.
2161[physac] COMPLETE REWRITE: Improved performance, functionality and simplified usage, moved to own repository and added multiple examples!
2162
2163other changes:
2164
2165[core] Corrected issue on OSX with HighDPI display
2166[core] Added flag to allow resizable window
2167[core] Allow no default font loading
2168[core] Corrected old issue with mouse buttons on web
2169[core] Improved gamepad support, unified across platforms
2170[core] Gamepad id functionality: GetGamepadName(), IsGamepadName()
2171[core] Gamepad buttons/axis checking functionality:
2172[core] Reviewed Android key inputs system, unified with desktop
2173[rlgl] Redesigned lighting shader system
2174[rlgl] Updated standard shader for better performance
2175[rlgl] Support alpha on framebuffer: rlglLoadRenderTexture()
2176[rlgl] Reviewed UpdateVrTracking() to update camera
2177[rlgl] Added IsVrSimulator() to check for VR simulator
2178[shapes] Corrected issue on DrawPolyEx()
2179[textures] Simplified supported image formats support
2180[textures] Improved text drawing within an image: ImageDrawText()
2181[textures] Support image alpha mixing: ImageAlphaMask()
2182[textures] Support textures filtering: SetTextureFilter()
2183[textures] Support textures wrap modes: SetTextureWrap()
2184[text] Improved TTF spritefont generation: LoadSpriteFontTTF()
2185[text] Improved AngelCode fonts support (unordered chars)
2186[text] Added TraceLog info on image spritefont loading
2187[text] Improved text measurement: MeasureTextEx()
2188[models] Improved OBJ loading flexibility
2189[models] Reviewed functions: DrawLine3D(), DrawCircle3D()
2190[models] Removed function: ResolveCollisionCubicmap()
2191[camera] Redesigned camera system and ported to header-only
2192[camera] Removed function: UpdateCameraPlayer()
2193[gestures] Redesigned gestures module to header-only
2194[audio] Simplified Music loading and playing system
2195[audio] Added trace on audio device closing
2196[audio] Reviewed Wave struct, improved flexibility
2197[audio] Support sound data update: UpdateSound()
2198[audio] Added support for FLAC audio loading/streaming
2199[raygui] Removed raygui from raylib repo (moved to own repo)
2200[build] Added OpenAL static library
2201[build] Added Visual Studio 2015 projects
2202[build] Support shared/dynamic raylib compilation
2203[*] Updated LibOVR to SDK version 1.8
2204[*] Updated games to latest raylib version
2205[*] Improved examples and added new ones
2206[*] Improved Android support
2207
2208-----------------------------------------------
2209Release:     raylib 1.5.0 (18 July 2016)
2210-----------------------------------------------
2211NOTE:
2212  Probably this new version is the biggest boost of the library ever, lots of parts of the library have been redesigned,
2213  lots of bugs have been solved and some **AMAZING** new features have been added.
2214
2215HUGE changes:
2216[rlgl] OCULUS RIFT CV1: Added support for VR, not oly Oculus Rift CV1 but also stereo rendering simulator (multiplatform).
2217[rlgl] MATERIALS SYSTEM: Added support for Materials (.mtl) and multiple material properties: diffuse, specular, normal.
2218[rlgl] LIGHTING SYSTEM: Added support for up to 8 lights of 3 different types: Omni, Directional and Spot.
2219[physac] REDESIGNED: Improved performance and simplified usage, physic objects now are managed internally in a second thread!
2220[audio] CHIPTUNES: Added support for module audio music (.xm, .mod) loading and playing. Multiple mixing channels supported.
2221
2222other changes:
2223
2224[core] Review Android button inputs
2225[core] Support Android internal data storage
2226[core] Renamed WorldToScreen() to GetWorldToScreen()
2227[core] Removed function SetCustomCursor()
2228[core] Removed functions BeginDrawingEx(), BeginDrawingPro()
2229[core] Replaced functions InitDisplay() + InitGraphics() with: InitGraphicsDevice()
2230[core] Added support for field-of-view Y (fovy) on 3d Camera
2231[core] Added 2D camera mode functions: Begin2dMode() - End2dMode()
2232[core] Translate mouse inputs to Android touch/gestures internally
2233[core] Translate mouse inputs as touch inputs in HTML5
2234[core] Improved function GetKeyPressed() to support multiple keys (including function keys)
2235[core] Improved gamepad support, specially for RaspberryPi (including multiple gamepads support)
2236[rlgl] Support stereo rendering simulation (duplicate draw calls by viewport, optimized)
2237[rlgl] Added distortion shader (embeded) to support custom VR simulator: shader_distortion.h
2238[rlgl] Added support for OpenGL 2.1 on desktop
2239[rlgl] Improved 2D vs 3D drawing system (lines, triangles, quads)
2240[rlgl] Improved DXT-ETC1 support on HTML5
2241[rlgl] Review function: rlglUnproject()
2242[rlgl] Removed function: rlglInitGraphics(), integrated into rlglInit()
2243[rlgl] Updated Mesh and Shader structs
2244[rlgl] Simplified internal (default) dynamic buffers
2245[rlgl] Added support for indexed and dynamic mesh data
2246[rlgl] Set fixed vertex attribs location points
2247[rlgl] Improved mesh data loading support
2248[rlgl] Added standard shader (embeded) to support materials and lighting: shader_standard.h
2249[rlgl] Added light functions: CreateLight(), DestroyLight()
2250[rlgl] Added wire mode functions: rlDisableWireMode(), rlEnableWireMode()
2251[rlgl] Review function consistency, added: rlglLoadMesh(), rlglUpdateMesh(), rlglDrawMesh(), rlglUnloadMesh()
2252[rlgl] Replaced SetCustomShader() by: BeginShaderMode() - EndShaderMode()
2253[rlgl] Replaced SetBlendMode() by: BeginBlendMode() - EndBlendMode()
2254[rlgl] Added functions to customize internal matrices: SetMatrixProjection(), SetMatrixModelview()
2255[rlgl] Unified internal shaders to only one default shader
2256[rlgl] Added support for render to texture (RenderTexture2D):
2257          LoadRenderTexture() - UnloadRenderTexture()
2258          BeginTextureMode() - EndTextureMode()
2259[rlgl] Removed SetShaderMap*() functions
2260[rlgl] Redesigned default buffers usage functions:
2261          LoadDefaultBuffers() - UnloadDefaultBuffers()
2262          UpdateDefaultBuffers() - DrawDefaultBuffers()
2263[shapes] Corrected bug on GetCollisionRec()
2264[textures] Added support for Nearest-Neighbor image scaling
2265[textures] Added functions to draw text on image: ImageDrawText(), ImageDrawTextEx()
2266[text] Reorganized internal functions: Added LoadImageFont()
2267[text] Security check for unsupported BMFonts
2268[models] Split mesh creation from model loading on heightmap and cubicmap
2269[models] Updated BoundingBox collision detections
2270[models] Added color parameter to DrawBoundigBox()
2271[models] Removed function: DrawQuad()
2272[models] Removed function: SetModelTexture()
2273[models] Redesigned DrawPlane() to use RL_TRIANGLES
2274[models] Redesigned DrawRectangleV() to use RL_TRIANGLES
2275[models] Redesign to accomodate new materials system: LoadMaterial()
2276[models] Added material functions: LoadDefaultMaterial(), LoadStandardMaterial()
2277[models] Added MTL material loading support: LoadMTL()
2278[models] Added function: DrawLight()
2279[audio] Renamed SoundIsPlaying() to IsSoundPlaying()
2280[audio] Renamed MusicIsPlaying() to IsMusicPlaying()
2281[audio] Support multiple Music streams (indexed)
2282[audio] Support multiple mixing channels
2283[gestures] Improved and reviewed gestures system
2284[raymath] Added QuaternionInvert()
2285[raymath] Removed function: PrintMatrix()
2286[raygui] Ported to header-only library (https://github.com/raysan5/raygui)
2287[shaders] Added depth drawing shader (requires a depth texture)
2288[shaders] Reviewed included shaders and added comments
2289[OpenAL Soft] Updated to latest version (1.17.2)
2290[GLFW3] Updated to latest version (3.2)
2291[stb] Updated to latest headers versions
2292[GLAD] Converted to header only library and simplified to only used extensions
2293[*] Reorganize library folders: external libs moved to src/external folder
2294[*] Reorganize src folder for Android library
2295[*] Review external dependencies usage
2296[*] Improved Linux and OSX build systems
2297[*] Lots of tweaks and bugs corrected all around
2298
2299-----------------------------------------------
2300Release:     raylib 1.4.0 (22 February 2016)
2301-----------------------------------------------
2302NOTE:
2303  This version supposed another big improvement for raylib, including new modules and new features.
2304  More than 30 new functions have been added to previous raylib version.
2305  Around 8 new examples and +10 new game samples have been added.
2306
2307BIG changes:
2308[textures] IMAGE MANIPULATION: Functions to crop, resize, colorize, flip, dither and even draw image-to-image or text-to-image.
2309[text] SPRITEFONT SUPPORT: Added support for AngelCode fonts (.fnt) and TrueType fonts (.ttf).
2310[gestures] REDESIGN: Gestures system simplified and prepared to process generic touch events, including mouse events (multiplatform).
2311[physac] NEW MODULE: Basic 2D physics support, use colliders and rigidbodies; apply forces to physic objects.
2312
2313other changes:
2314
2315[rlgl] Removed GLEW library dependency, now using GLAD
2316[rlgl] Implemented alternative to glGetTexImage() on OpenGL ES
2317[rlgl] Using depth data on batch drawing
2318[rlgl] Reviewed glReadPixels() function
2319[core][rlgl] Reviewed raycast system, now 3D picking works
2320[core] Android: Reviewed Android App cycle, paused if inactive
2321[shaders] Implemented Blinn-Phong lighting shading model
2322[textures] Implemented Floyd-Steinberg dithering - ImageDither()
2323[text] Added line-break support to DrawText()
2324[text] Added TrueType Fonts support (using stb_truetype)
2325[models] Implement function: CalculateBoundingBox(Mesh mesh)
2326[models] Added functions to check Ray collisions
2327[models] Improve map resolution control on LoadHeightmap()
2328[camera] Corrected small-glitch on zoom-in with mouse-wheel
2329[gestures] Implemented SetGesturesEnabled() to enable only some gestures
2330[gestures] Implemented GetElapsedTime() on Windows system
2331[gestures] Support mouse gestures for desktop platforms
2332[raymath] Complete review of the module and converted to header-only
2333[easings] Added new module for easing animations
2334[stb] Updated to latest headers versions
2335[*] Lots of tweaks around
2336
2337-----------------------------------------------
2338Release:     raylib 1.3.0 (01 September 2015)
2339-----------------------------------------------
2340NOTE:
2341  This version supposed a big boost for raylib, new modules have been added with lots of features.
2342  Most of the modules have been completely reviewed to accomodate to the new features.
2343  Over 50 new functions have been added to previous raylib version.
2344  Most of the examples have been redone and +10 new advanced examples have been added.
2345
2346BIG changes:
2347[rlgl] SHADERS: Support for model shaders and postprocessing shaders (multiple functions)
2348[textures] FORMATS: Support for multiple internal formats, including compressed formats
2349[camera] NEW MODULE: Set of cameras for 3d view: Free, Orbital, 1st person, 3rd person
2350[gestures] NEW MODULE: Gestures system for Android and HTML5 platforms
2351[raygui] NEW MODULE: Set of IMGUI elements for tools development (experimental)
2352
2353other changes:
2354
2355[rlgl] Added check for OpenGL supported extensions
2356[rlgl] Added function SetBlenMode() to select some predefined blending modes
2357[core] Added support for drop&drag of external files into running program
2358[core] Added functions ShowCursor(), HideCursor(), IsCursorHidden()
2359[core] Renamed function SetFlags() to SetConfigFlags()
2360[shapes] Simplified some functions to improve performance
2361[textures] Review of Image struct to support multiple data formats
2362[textures] Added function LoadImageEx()
2363[textures] Added function LoadImageRaw()
2364[textures] Added function LoadTextureEx()
2365[textures] Simplified function parameters LoadTextureFromImage()
2366[textures] Added function GetImageData()
2367[textures] Added function GetTextureData()
2368[textures] Renamed function ConvertToPOT() to ImageConvertToPOT()
2369[textures] Added function ImageConvertFormat()
2370[textures] Added function GenTextureMipmaps()
2371[text] Added support for Latin-1 Extended characters for default font
2372[text] Redesigned SpriteFont struct, replaced Character struct by Rectangle
2373[text] Removed function GetFontBaseSize(), use directly spriteFont.size
2374[models] Review of struct: Model (added shaders support)
2375[models] Added 3d collision functions (sphere vs sphere vs box vs box)
2376[models] Added function DrawCubeTexture()
2377[models] Added function DrawQuad()
2378[models] Added function DrawRay()
2379[models] Simplified function DrawPlane()
2380[models] Removed function DrawPlaneEx()
2381[models] Simplified function DrawGizmo()
2382[models] Removed function DrawGizmoEx()
2383[models] Added function LoadModelEx()
2384[models] Review of function LoadCubicMap()
2385[models] Added function ResolveCollisionCubicmap()
2386[audio] Decopupled from raylib, now this module can be used as standalone
2387[audio] Added function UpdateMusicStream()
2388[raymath] Complete review of the module
2389[stb] Updated to latest headers versions
2390[*] Lots of tweaks around
2391
2392-----------------------------------------------
2393Release:     raylib 1.2.2 (31 December 2014)
2394-----------------------------------------------
2395[*] Added support for HTML5 compiling (emscripten, asm.js)
2396[core] Corrected bug on input handling (keyboard and mouse)
2397[textures] Renamed function CreateTexture() to LoadTextureFromImage()
2398[textures] Added function ConvertToPOT()
2399[rlgl] Added support for color tint on models on GL 3.3+ and ES2
2400[rlgl] Added support for normals on models
2401[models] Corrected bug on DrawBillboard()
2402[models] Corrected bug on DrawHeightmap()
2403[models] Renamed LoadCubesmap() to LoadCubicmap()
2404[audio] Added function LoadSoundFromWave()
2405[makefile] Added support for Linux and OSX compiling
2406[stb] Updated to latest headers versions
2407[*] Lots of tweaks around
2408
2409---------------------------------------------------------------
2410Update:     raylib 1.2.1 (17 October 2014) (Small Fixes Update)
2411---------------------------------------------------------------
2412[core] Added function SetupFlags() to preconfigure raylib Window
2413[core] Corrected bug on fullscreen mode
2414[rlgl] rlglDrawmodel() - Added rotation on Y axis
2415[text] MeasureTextEx() - Corrected bug on measures for default font
2416
2417-----------------------------------------------
2418Release:     raylib 1.2 (16 September 2014)
2419-----------------------------------------------
2420NOTE:
2421  This version supposed a complete redesign of the [core] module to support Android and Raspberry Pi.
2422  Multiples modules have also been tweaked to accomodate to the new platforms, specially [rlgl]
2423
2424[core] Added multiple platforms support: Android and Raspberry Pi
2425[core] InitWindow() - Complete rewrite and split for Android
2426[core] InitDisplay() - Internal function added to calculate proper display size
2427[core] InitGraphics() - Internal function where OpenGL graphics are initialized
2428[core] Complete refactoring of input functions to accomodate to new platforms
2429[core] Mouse and Keyboard raw data reading functions added for Raspberry Pi
2430[core] GetTouchX(), GetTouchY() - Added for Android
2431[core] Added Android callbacks to process inputs and Android activity commands
2432[rlgl] Adjusted buffers depending on platform
2433[rlgl] Added security check in case deployed vertex excess buffer size
2434[rlgl] Adjusted indices type depending on GL version (int or short)
2435[rlgl] Fallback to VBOs only usage if VAOs not supported on ES2
2436[rlgl] rlglLoadModel() stores vbo ids on new Model struct
2437[textures] Added support for PKM files (ETC1, ETC2 compression support)
2438[shapes] DrawRectangleV() - Modified, depending on OGL version uses TRIANGLES or QUADS
2439[text] LoadSpriteFont() - Modified to use LoadImage()
2440[models] Minor changes on models loading to accomodate to new Model struct
2441[audio] PauseMusicStream(), ResumeMusicStream() - Added
2442[audio] Reduced music buffer size to avoid stalls on Raspberry Pi
2443[src] Added makefile for Windows and RPI
2444[src] Added resources file (raylib icon and executable info)
2445[examples] Added makefile for Windows and RPI
2446[examples] Renamed and merged with test examples for coherence with module names
2447[templates] Added multiple templates to be use as a base-code for games
2448
2449-----------------------------------------------
2450Release:     raylib 1.1.1 (22 July 2014)
2451-----------------------------------------------
2452[core] ShowLogo() - To enable raylib logo animation at startup
2453[core] Corrected bug with window resizing
2454[rlgl] Redefined colors arrays to use byte instead of float
2455[rlgl] Removed double buffer system (no performance improvement)
2456[rlgl] rlglDraw() - Reorganized buffers drawing order
2457[rlgl] Corrected bug on screen resizing
2458[shapes] DrawRectangle() - Use QUADS instead of TRIANGLES
2459[models] DrawSphereWires() - Corrected some issues
2460[models] LoadOBJ() - Redesigned to support multiple meshes
2461[models] LoadCubesMap() - Loading a map as cubes (by pixel color)
2462[textures] Added security check if file doesn't exist
2463[text] Corrected bug on SpriteFont loading
2464[examples] Corrected some 3d examples
2465[test] Added cubesmap loading test
2466
2467-----------------------------------------------
2468Release:     raylib 1.1.0 (19 April 2014)
2469-----------------------------------------------
2470NOTE:
2471  This version supposed a complete internal redesign of the library to support OpenGL 3.3+ and OpenGL ES 2.0.
2472  New module [rlgl] has been added to 'translate' immediate mode style functions (i.e. rlVertex3f()) to GL 1.1, 3.3+ or ES2.
2473  Another new module [raymath] has also been added with lot of useful 3D math vector-matrix-quaternion functions.
2474
2475[rlgl] New module, abstracts OpenGL rendering (multiple versions support)
2476[raymath] New module, useful 3D math vector-matrix-quaternion functions
2477[core] Adapt all OpenGL code (initialization, drawing) to use [rlgl]
2478[shapes] Rewrite all shapes drawing functions to use [rlgl]
2479[textures] Adapt texture GPU loading to use [rlgl]
2480[textures] Added support for DDS images (compressed and uncompressed)
2481[textures] CreateTexture() - Redesigned to add mipmap automatic generation
2482[textures] DrawTexturePro() - Redesigned and corrected bugs
2483[models] Rewrite all 3d-shapes drawing functions to use [rlgl]
2484[models] Adapt model loading and drawing to use [rlgl]
2485[models] Model struct updated to include texture id
2486[models] SetModelTexture() - Added, link a texture to a model
2487[models] DrawModelEx() - Redesigned with extended parameters
2488[audio] Added music streaming support (OGG files)
2489[audio] Added support for OGG files as Sound
2490[audio] PlayMusicStream() - Added, open a new music stream and play it
2491[audio] StopMusicStream() - Added, stop music stream playing and close stream
2492[audio] PauseMusicStream() - Added, pause music stream playing
2493[audio] MusicIsPlaying() - Added, to check if music is playing
2494[audio] SetMusicVolume() - Added, set volume for music
2495[audio] GetMusicTimeLength() - Added, get current music time length (in seconds)
2496[audio] GetMusicTimePlayed() - Added, get current music time played (in seconds)
2497[utils] Added log tracing functionality - TraceLog(), TraceLogOpen(), TraceLogClose()
2498[*] Log tracing messages all around the code
2499
2500-----------------------------------------------
2501Release:     raylib 1.0.6 (16 March 2014)
2502-----------------------------------------------
2503[core] Removed unused lighting-system code
2504[core] Removed SetPerspective() function, calculated directly
2505[core] Unload and reload default font on fullscreen toggle
2506[core] Corrected bug gamepad buttons checking if no gamepad available
2507[texture] DrawTextureV() - Added, to draw using Vector2 for position
2508[texture] LoadTexture() - Redesigned, now uses LoadImage() + CreateTexture()
2509[text] FormatText() - Corrected memory leak bug
2510[models] Added Matrix struct and related functions
2511[models] DrawBillboard() - Reviewed, now it works!
2512[models] DrawBillboardRec() - Reviewed, now it works!
2513[tests] Added folder with multiple tests for new functions
2514
2515-----------------------------------------------
2516Update:     raylib 1.0.5 (28 January 2014)
2517-----------------------------------------------
2518[audio] LoadSound() - Corrected a bug, WAV file was not closed!
2519[core] GetMouseWheelMove() - Added, check mouse wheel Y movement
2520[texture] CreateTexture2D() renamed to CreateTexture()
2521[models] LoadHeightmap() - Added, Heightmap can be loaded as a Model
2522[tool] rREM updated, now supports (partially) drag and drop of files
2523
2524-----------------------------------------------
2525Release:     raylib 1.0.4 (23 January 2014)
2526-----------------------------------------------
2527[tool] Published a first alpha version of rREM tool (raylib Resource Embedder)
2528[core] GetRandomValue() - Bug corrected, now works right
2529[core] Fade() - Added, fades a color to an alpha percentadge
2530[core] WriteBitmap() - Moved to new module: utils.c, not used anymore
2531[core] TakeScreenshot() - Now uses WritePNG() (utils.c)
2532[utils] New module created with utility functions
2533[utils] WritePNG() - Write a PNG file (used by TakeScreenshot() on core)
2534[utils] DecompressData() - Added, used for rRES resource data decompresion
2535[textures] LoadImageFromRES() - Added, load an image from a rRES resource file
2536[textures] LoadTextureFromRES() - Added, load a texture from a rRES resource file
2537[audio] LoadSoundFromRES() - Added, load a sound from a rRES resource file
2538[audio] IsPlaying() - Added, check if a sound is currently playing
2539[audio] SetVolume() - Added, set the volume for a sound
2540[audio] SetPitch() - Added, set the pitch for a sound
2541[examples] ex06a_color_select completed
2542[examples] ex06b_logo_anim completed
2543[examples] ex06c_font select completed
2544
2545-----------------------------------------------
2546Release:     raylib 1.0.3 (19 December 2013)
2547-----------------------------------------------
2548[fonts] Added 8 rBMF free fonts to be used on projects!
2549[text] LoadSpriteFont() - Now supports rBMF file loading (raylib Bitmap Font)
2550[examples] ex05a_sprite_fonts completed
2551[examples] ex05b_rbmf_fonts completed
2552[core] InitWindowEx() - InitWindow with extended parameters, resizing option and custom cursor!
2553[core] GetRandomValue() - Added, returns a random value within a range (int)
2554[core] SetExitKey() - Added, sets a key to exit program (default is ESC)
2555[core] Custom cursor not drawn when mouse out of screen
2556[shapes] CheckCollisionPointRec() - Added, check collision between point and rectangle
2557[shapes] CheckCollisionPointCircle() - Added, check collision between point and circle
2558[shapes] CheckCollisionPointTriangle() - Added, check collision between point and triangle
2559[shapes] DrawPoly() - Added, draw regular polygons of n sides, rotation can be defined!
2560
2561-----------------------------------------------
2562Release:     raylib 1.0.2 (1 December 2013)
2563-----------------------------------------------
2564[text] GetDefaultFont() - Added, get default SpriteFont to be used on DrawTextEx()
2565[shapes] CheckCollisionRecs() - Added, check collision between rectangles
2566[shapes] CheckCollisionCircles() - Added, check collision between circles
2567[shapes] CheckCollisionCircleRec() - Added, check collision circle-rectangle
2568[shapes] GetCollisionRec() - Added, get collision rectangle
2569[textures] CreateTexture2D() - Added, create Texture2D from Image data
2570[audio] Fixed WAV loading function, now audio works!
2571
2572-----------------------------------------------
2573Update:     raylib 1.0.1 (28 November 2013)
2574-----------------------------------------------
2575[text] DrawText() - Removed spacing parameter
2576[text] MeasureText() - Removed spacing parameter
2577[text] DrawFps() - Renamed to DrawFPS() for coherence with similar function
2578[core] IsKeyPressed() - Change functionality, check if key pressed once
2579[core] IsKeyDown() - Added, check if key is being pressed
2580[core] IsKeyReleased() - Change functionality, check if key released once
2581[core] IsKeyUp() - Added, check if key is being NOT pressed
2582[core] IsMouseButtonDown() - Added, check if mouse button is being pressed
2583[core] IsMouseButtonPressed() - Change functionality, check if mouse button pressed once
2584[core] IsMouseButtonUp() - Added, check if mouse button is NOT being pressed
2585[core] IsMouseButtonReleased() - Change functionality, check if mouse button released once
2586[textures] DrawTexturePro() - Added, texture drawing with 'pro' parameters
2587[examples] Function changes applied to ALL examples
2588
2589-----------------------------------------------
2590Release:    raylib 1.0.0 (18 November 2013)
2591-----------------------------------------------
2592* Initial version
2593* 6 Modules provided:
2594    - core:     basic window/context creation functions, input management, timing functions
2595    - shapes:   basic shapes drawing functions
2596    - textures: image data loading and conversion to OpenGL textures
2597    - text:     text drawing, sprite fonts loading, default font loading
2598    - models:   basic 3d shapes drawing, OBJ models loading and drawing
2599    - audio:    audio device initialization, WAV files loading and playing