|  | changelog | 
						
						
							|  | --------- | 
						
						
							|  | 
 | 
						
						
							|  | Current Release:    raylib 3.7.0 (xx April 2021) | 
						
						
							|  | 
 | 
						
						
							|  | ------------------------------------------------------------------------- | 
						
						
							|  | Release:     raylib 3.7 (xx April 2021) | 
						
						
							|  | ------------------------------------------------------------------------- | 
						
						
							|  | KEY CHANGES: | 
						
						
							|  |  - [rlgl] REDESIGNED: Greater abstraction level, some functionality moved to core module | 
						
						
							|  |  - [rlgl] REVIEWED: Instancing and stereo rendering | 
						
						
							|  |  - [core] REDESIGNED: VR simulator, fbo/shader exposed to user | 
						
						
							|  |  - [utils] ADDED: File access callbacks system | 
						
						
							|  |  - [models] ADDED: glTF animations support (#1551) by @object71 | 
						
						
							|  |  - [audio] ADDED: Music streaming support from memory (#1606) by @nezvers | 
						
						
							|  |  - [*] RENAMED: enum types and enum values for consistency | 
						
						
							|  | 
 | 
						
						
							|  | Detailed changes: | 
						
						
							|  | [core] ADDED: LoadVrStereoConfig() | 
						
						
							|  | [core] ADDED: UnloadVrStereoConfig() | 
						
						
							|  | [core] ADDED: BeginVrStereoMode() | 
						
						
							|  | [core] ADDED: EndVrStereoMode() | 
						
						
							|  | [core] ADDED: GetCurrentMonitor() (#1485) by @object71 | 
						
						
							|  | [core] ADDED: SetGamepadMappings() (#1506) | 
						
						
							|  | [core] RENAMED: struct Camera: camera.type to camera.projection | 
						
						
							|  | [core] RENAMED: LoadShaderCode() to LoadShaderFromMemory() (#1690) | 
						
						
							|  | [core] RENAMED: SetMatrixProjection() to rlSetMatrixProjection() | 
						
						
							|  | [core] RENAMED: SetMatrixModelview() to rlSetMatrixModelview() | 
						
						
							|  | [core] RENAMED: GetMatrixModelview() to rlGetMatrixModelview()       | 
						
						
							|  | [core] RENAMED: GetMatrixProjection() to rlGetMatrixProjection()     | 
						
						
							|  | [core] RENAMED: GetShaderDefault() to rlGetShaderDefault() | 
						
						
							|  | [core] RENAMED: GetTextureDefault() to rlGetTextureDefault() | 
						
						
							|  | [core] REMOVED: GetShapesTexture() | 
						
						
							|  | [core] REMOVED: GetShapesTextureRec() | 
						
						
							|  | [core] REMOVED: GetMouseCursor() | 
						
						
							|  | [core] REMOVED: SetTraceLogExit() | 
						
						
							|  | [core] REVIEWED: GetFileName() and GetDirectoryPath() (#1534) by @gilzoide | 
						
						
							|  | [core] REVIEWED: Wait() to support FreeBSD (#1618) | 
						
						
							|  | [core] REVIEWED: HighDPI support on macOS retina (#1510) | 
						
						
							|  | [core] REDESIGNED: GetFileExtension(), includes the .dot | 
						
						
							|  | [core] REDESIGNED: IsFileExtension(), includes the .dot | 
						
						
							|  | [core] REDESIGNED: Compresion API to use sdefl/sinfl libs | 
						
						
							|  | [rlgl] ADDED: SUPPORT_GL_DETAILS_INFO config flag | 
						
						
							|  | [rlgl] REMOVED: GenTexture*() functions (#721) | 
						
						
							|  | [rlgl] REVIEWED: rlLoadShaderDefault()  | 
						
						
							|  | [rlgl] REDESIGNED: rlLoadExtensions(), more details exposed | 
						
						
							|  | [raymath] REVIEWED: QuaternionFromEuler() (#1651) | 
						
						
							|  | [raymath] REVIEWED: MatrixRotateZYX() (#1642) | 
						
						
							|  | [shapes] ADDED: DrawLineBezierQuad() (#1468) by @epsilon-phase | 
						
						
							|  | [shapes] ADDED: CheckCollisionLines() | 
						
						
							|  | [shapes] ADDED: CheckCollisionPointLine() by @mkupiec1 | 
						
						
							|  | [shapes] REVIEWED: CheckCollisionPointTriangle() by @mkupiec1 | 
						
						
							|  | [shapes] REDESIGNED: SetShapesTexture() | 
						
						
							|  | [shapes] REDESIGNED: DrawCircleSector(), to use float params | 
						
						
							|  | [shapes] REDESIGNED: DrawCircleSectorLines(), to use float params | 
						
						
							|  | [shapes] REDESIGNED: DrawRing(), to use float params | 
						
						
							|  | [shapes] REDESIGNED: DrawRingLines(), to use float params | 
						
						
							|  | [textures] ADDED: DrawTexturePoly() and example (#1677) by @chriscamacho | 
						
						
							|  | [textures] ADDED: UnloadImageColors() for allocs consistency | 
						
						
							|  | [textures] RENAMED: GetImageData() to LoadImageColors() | 
						
						
							|  | [textures] REVIEWED: ImageClearBackground() and ImageDrawRectangleRec() (#1487) by @JeffM2501 | 
						
						
							|  | [textures] REVIEWED: DrawTexturePro() and DrawRectanglePro() transformations (#1632) by @ChrisDill | 
						
						
							|  | [text] REDESIGNED: DrawFPS() | 
						
						
							|  | [models] ADDED: UploadMesh() (#1529) | 
						
						
							|  | [models] ADDED: DrawMesh() | 
						
						
							|  | [models] ADDED: DrawMeshInstanced() | 
						
						
							|  | [models] ADDED: UnloadModelAnimations() (#1648) by @object71 | 
						
						
							|  | [models] ADDED: GenMeshDefault() (#1556) | 
						
						
							|  | [models] REMOVED: DrawGizmo() | 
						
						
							|  | [models] REMOVED: LoadMeshes() | 
						
						
							|  | [models] REMOVED: MeshNormalsSmooth() | 
						
						
							|  | [models] REVIEWED: DrawLine3D() (#1643) | 
						
						
							|  | [audio] REVIEWED: Multichannel sound system (#1548) | 
						
						
							|  | [audio] REVIEWED: jar_xm library (#1701) by @jmorel33 | 
						
						
							|  | [utils] ADDED: SetLoadFileDataCallback() | 
						
						
							|  | [utils] ADDED: SetSaveFileDataCallback() | 
						
						
							|  | [utils] ADDED: SetLoadFileTextCallback() | 
						
						
							|  | [utils] ADDED: SetSaveFileTextCallback() | 
						
						
							|  | [examples] ADDED: text_draw_3d (#1689) by @Demizdor | 
						
						
							|  | [examples] ADDED: textures_poly (#1677) by @chriscamacho  | 
						
						
							|  | [examples] ADDED: models_gltf_model (#1551) by @object71 | 
						
						
							|  | [examples] RENAMED: shaders_rlgl_mesh_instanced to shaders_mesh_intancing | 
						
						
							|  | [examples] REDESIGNED: shaders_rlgl_mesh_instanced by @moliad | 
						
						
							|  | [examples] REDESIGNED: core_vr_simulator | 
						
						
							|  | [examples] REDESIGNED: models_yaw_pitch_roll | 
						
						
							|  | [build] ADDED: Config flag: SUPPORT_STANDARD_FILEIO | 
						
						
							|  | [build] ADDED: Config flag: SUPPORT_WINMM_HIGHRES_TIMER (#1641) | 
						
						
							|  | [build] ADDED: Examples projects to VS2019 solution | 
						
						
							|  | [build] REVIEWED: Makefile to support PLATFORM_RPI (#1580) | 
						
						
							|  | [build] REVIEWED: Multiple typecast warnings by @JeffM2501 | 
						
						
							|  | [build] REDESIGNED: VS2019 project build paths | 
						
						
							|  | [build] REDESIGNED: CMake build system by @object71 | 
						
						
							|  | [*] RENAMED: Several functions parameters for consistency | 
						
						
							|  | [*] UPDATED: Multiple bindings to latest version | 
						
						
							|  | [*] UPDATED: All external libraries to latest versions | 
						
						
							|  | [*] Multiple code improvements and fixes by multiple contributors! | 
						
						
							|  | 
 | 
						
						
							|  | ------------------------------------------------------------------------- | 
						
						
							|  | Release:     raylib 3.5 - 7th Anniversary Edition (25 December 2020) | 
						
						
							|  | ------------------------------------------------------------------------- | 
						
						
							|  | KEY CHANGES: | 
						
						
							|  |  - [core] ADDED: PLATFORM_DRM to support RPI4 and other devices (#1388) by @kernelkinetic | 
						
						
							|  |  - [core] REDESIGNED: Window states management system through FLAGS | 
						
						
							|  |  - [rlgl] ADDED: RenderBatch type and related functions to allow custom batching (internal only) | 
						
						
							|  |  - [rlgl] REDESIGNED: Framebuffers API to support multiple attachment types (#721)  | 
						
						
							|  |  - [textures] REDESIGNED: Image*() functions, big performance improvements (software rendering) | 
						
						
							|  |  - [*] REVIEWED: Multiple functions to replace file accesses by memory accesses | 
						
						
							|  |  - [*] ADDED: GitHub Actions CI to support multiple raylib build configurations | 
						
						
							|  |   | 
						
						
							|  | Detailed changes: | 
						
						
							|  | [core] ADDED: SetWindowState() / ClearWindowState() -> New flags added! | 
						
						
							|  | [core] ADDED: IsWindowFocused() | 
						
						
							|  | [core] ADDED: GetWindowScaleDPI() | 
						
						
							|  | [core] ADDED: GetMonitorRefreshRate() (#1289) by @Shylie | 
						
						
							|  | [core] ADDED: IsCursorOnScreen() (#1262) by @ChrisDill | 
						
						
							|  | [core] ADDED: SetMouseCursor() and GetMouseCursor() for standard Desktop cursors (#1407) by @chances | 
						
						
							|  | [core] REMOVED: struct RenderTexture2D: depthTexture variable  | 
						
						
							|  | [core] REMOVED: HideWindow() / UnhideWindow() -> Use SetWindowState() | 
						
						
							|  | [core] REMOVED: DecorateWindow() / UndecorateWindow() -> Use SetWindowState() | 
						
						
							|  | [core] RENAMED: GetExtension() to GetFileExtension() | 
						
						
							|  | [core] REVIEWED: Several structs to reduce size and padding | 
						
						
							|  | [core] REVIEWED: struct Texture maps to Texture2D and TextureCubemap | 
						
						
							|  | [core] REVIEWED: ToggleFullscreen() (#1287) | 
						
						
							|  | [core] REVIEWED: InitWindow(), support empty title for window (#1323) | 
						
						
							|  | [core] REVIEWED: RPI: Mouse movements are bound to the screen resolution (#1392) (#1410) by @kernelkinetic | 
						
						
							|  | [core] REVIEWED: GetPrevDirectoryPath() fixes on Unix-like systems (#1246) by @ivan-cx | 
						
						
							|  | [core] REPLACED: rgif.h by msf_gif.h for automatic gif recording | 
						
						
							|  | [core] REDESIGNED: GetMouseWheelMove() to return float movement for precise scrolling (#1397) by @Doy-lee | 
						
						
							|  | [core] REDESIGNED: GetKeyPressed(), and added GetCharPressed() (#1336)  | 
						
						
							|  | [core] UWP rework with improvements (#1231) by @Rover656 | 
						
						
							|  | [core] Gamepad axis bug fixes and improvement (#1228) by @mmalecot | 
						
						
							|  | [core] Updated joystick mappings with latest version of gamecontrollerdb (#1381) by @coderoth | 
						
						
							|  | [rlgl] Corrected issue with OpenGL 1.1 support | 
						
						
							|  | [rlgl] ADDED: rlDrawMeshInstanced() (#1318) by @seanpringle | 
						
						
							|  | [rlgl] ADDED: rlCheckErrors (#1321) by @seanpringle | 
						
						
							|  | [rlgl] ADDED: BLEND_SET blending mode (#1251) by @RandomErrorMessage | 
						
						
							|  | [rlgl] ADDED: rlSetLineWidth(), rlGetLineWidth(), rlEnableSmoothLines(), rlDisableSmoothLines() (#1457) by @JeffM2501 | 
						
						
							|  | [rlgl] RENAMED: rlUnproject() to Vector3Unproject() [raymath] | 
						
						
							|  | [rlgl] REVIEWED: Replace rlglDraw() calls by DrawRenderBatch() internal calls | 
						
						
							|  | [rlgl] REVIEWED: GenTextureCubemap(), use rlgl functionality only | 
						
						
							|  | [rlgl] REVIEWED: rlFramebufferAttach() to support texture layers | 
						
						
							|  | [rlgl] REVIEWED: GenDrawCube() and GenDrawQuad() | 
						
						
							|  | [rlgl] REVIEWED: Issues with vertex batch overflow (#1223) | 
						
						
							|  | [rlgl] REVIEWED: rlUpdateTexture(), issue with offsets | 
						
						
							|  | [rlgl] REDESIGNED: GenTexture*() to use the new fbo API (#721) | 
						
						
							|  | [raymath] ADDED: Normalize() and Remap() functions (#1247) by @NoorWachid | 
						
						
							|  | [raymath] ADDED: Vector2Reflect() (#1400) by @daniel-junior-dube | 
						
						
							|  | [raymath] ADDED: Vector2LengthSqr() and Vector3LengthSqr() (#1248) by @ThePituLegend | 
						
						
							|  | [raymath] ADDED: Vector2MoveTowards() function (#1233) by @anatagawa | 
						
						
							|  | [raymath] REVIEWED: Some functions consistency (#1197) by @Not-Nik | 
						
						
							|  | [raymath] REVIEWED: QuaternionFromVector3ToVector3() (#1263) by @jvocaturo  | 
						
						
							|  | [raymath] REVIEWED: MatrixLookAt(), optimized (#1442) by @RandomErrorMessage | 
						
						
							|  | [shapes] ADDED: CheckCollisionLines(), by @Elkantor | 
						
						
							|  | [text] Avoid [textures] functions dependencies | 
						
						
							|  | [text] ADDED: Config flag: SUPPORT_TEXT_MANIPULATION | 
						
						
							|  | [text] ADDED: LoadFontFromMemory() (TTF only) (#1327) | 
						
						
							|  | [text] ADDED: UnloadFontData()  | 
						
						
							|  | [text] RENAMED: FormatText() -> TextFormat()  | 
						
						
							|  | [text] REVIEWED: Font struct, added charsPadding (#1432) | 
						
						
							|  | [text] REVIEWED: TextJoin() | 
						
						
							|  | [text] REVIEWED: TextReplace() (#1172) | 
						
						
							|  | [text] REVIEWED: LoadBMFont() to load data from memory (#1232) | 
						
						
							|  | [text] REVIEWED: GenImageFontAtlas(), fixed offset (#1171)  | 
						
						
							|  | [text] REDESIGNED: LoadFontData(), reviewed input parameters | 
						
						
							|  | [text] REDESIGNED: LoadFontDefault(), some code simplifications | 
						
						
							|  | [text] REDESIGNED: LoadFontFromImage(), avoid LoadImageEx() | 
						
						
							|  | [text] REDESIGNED: LoadFontData(), avoid GenImageColor(), ImageFormat() | 
						
						
							|  | [text] REDESIGNED: LoadBMFont(), avoid ImageCopy(), ImageFormat(), ImageAlphaMask() | 
						
						
							|  | [textures] Move Color functions from [core] to [textures] module | 
						
						
							|  | [textures] ADDED: ColorAlphaBlend() | 
						
						
							|  | [textures] ADDED: GetPixelColor() | 
						
						
							|  | [textures] ADDED: SetPixelColor() | 
						
						
							|  | [textures] ADDED: LoadImageFromMemory() (#1327) | 
						
						
							|  | [textures] ADDED: LoadImageAnim() to load animated sequence of images | 
						
						
							|  | [textures] ADDED: DrawTextureTiled() (#1291) - @Demizdor | 
						
						
							|  | [textures] ADDED: UpdateTextureRec() | 
						
						
							|  | [textures] ADDED: UnloadImageColors(), UnloadImagePalette(), UnloadWaveSamples() | 
						
						
							|  | [textures] REMOVED: Config flag: SUPPORT_IMAGE_DRAWING  | 
						
						
							|  | [textures] REMOVED: LoadImageEx() | 
						
						
							|  | [textures] REMOVED: LoadImagePro()  | 
						
						
							|  | [textures] REMOVED: GetImageDataNormalized(), not exposed in the API  | 
						
						
							|  | [textures] RENAMED: ImageExtractPalette() to GetImagePalette() | 
						
						
							|  | [textures] RENAMED: Fade() to ColorAlpha(), added #define for compatibility | 
						
						
							|  | [textures] RENAMED: GetImageData() -> LoadImageColors() | 
						
						
							|  | [textures] RENAMED: GetImagePalette() -> LoadImagePalette() | 
						
						
							|  | [textures] RENAMED: GetWaveData() -> LoadWaveSamples() | 
						
						
							|  | [textures] REVIEWED: GetPixelDataSize() to consider compressed data properly | 
						
						
							|  | [textures] REVIEWED: GetTextureData(), allow retrieving 32bit float data | 
						
						
							|  | [textures] REVIEWED: ImageDrawText*() params order | 
						
						
							|  | [textures] REVIEWED: ColorAlphaBlend(), support tint color | 
						
						
							|  | [textures] REVIEWED: ColorAlphaBlend(), integers-version, optimized (#1218) | 
						
						
							|  | [textures] REVIEWED: ImageDraw(), consider negative source offset properly (#1283) | 
						
						
							|  | [textures] REVIEWED: ImageDraw(), optimizations test (#1218)  | 
						
						
							|  | [textures] REVIEWED: ImageResizeCanvas(), optimization (#1218) | 
						
						
							|  | [textures] REVIEWED: ExportImage(), optimized | 
						
						
							|  | [textures] REVIEWED: ImageAlphaPremultiply(), optimization | 
						
						
							|  | [textures] REVIEWED: ImageAlphaClear(), minor optimization | 
						
						
							|  | [textures] REVIEWED: ImageToPOT(), renamed parameter | 
						
						
							|  | [textures] REVIEWED: ImageCrop() (#1218) | 
						
						
							|  | [textures] REVIEWED: ImageToPOT() (#1218) | 
						
						
							|  | [textures] REVIEWED: ImageAlphaCrop() (#1218) | 
						
						
							|  | [textures] REVIEWED: ExportImage(), optimized (#1218) | 
						
						
							|  | [textures] REDESIGNED: ImageCrop(), optimized (#1218) | 
						
						
							|  | [textures] REDESIGNED: ImageRotateCCW(), optimized (#1218) | 
						
						
							|  | [textures] REDESIGNED: ImageRotateCW(), optimized (#1218) | 
						
						
							|  | [textures] REDESIGNED: ImageFlipHorizontal(), optimized (#1218) | 
						
						
							|  | [textures] REDESIGNED: ImageFlipVertical(), optimized (#1218) | 
						
						
							|  | [textures] REDESIGNED: ImageResizeCanvas(), optimized (#1218) | 
						
						
							|  | [textures] REDESIGNED: ImageDrawPixel(), optimized | 
						
						
							|  | [textures] REDESIGNED: ImageDrawLine(), optimized | 
						
						
							|  | [textures] REDESIGNED: ImageDraw(), optimized (#1218) | 
						
						
							|  | [textures] REDESIGNED: ImageResize(), optimized (#1218) | 
						
						
							|  | [textures] REDESIGNED: ImageFromImage(), optimized (#1218) | 
						
						
							|  | [textures] REDESIGNED: ImageDraw(), optimization (#1218) | 
						
						
							|  | [textures] REDESIGNED: ImageAlphaClear(), optimized (#1218) | 
						
						
							|  | [textures] REDESIGNED: ExportImageAsCode() to use memory buffer (#1232) | 
						
						
							|  | [textures] REDESIGNED: ColorFromHSV()  | 
						
						
							|  | [models] ADDED: DrawTriangle3D() and DrawTriangleStrip3D() | 
						
						
							|  | [models] ADDED: UnloadModelKeepMeshes()  | 
						
						
							|  | [models] REVIEWED: LoadModel(), avoid loading texcoords and normals from model if not existent | 
						
						
							|  | [models] REVIEWED: GenMeshCubicmap(), added comments and simplification | 
						
						
							|  | [models] REVIEWED: GenMeshCubicmap(), fixed generated normals (#1244) by @GoldenThumbs | 
						
						
							|  | [models] REVIEWED: GenMeshPoly(), fixed buffer overflow (#1269) by @frithrah  | 
						
						
							|  | [models] REVIEWED: LoadOBJ(): Allow for multiple materials in obj files (#1408) by @chriscamacho and @codifies | 
						
						
							|  | [models] REVIEWED: LoadIQM() materials loading (#1227) by @sikor666 | 
						
						
							|  | [models] REVIEWED: LoadGLTF() to read from memory buffer | 
						
						
							|  | [models] REVIEWED: UpdateMesh(), fix extra memory allocated when updating color buffer (#1271) by @4yn | 
						
						
							|  | [models] REVIEWED: MeshNormalsSmooth() (#1317) by @seanpringle | 
						
						
							|  | [models] REVIEWED: DrawGrid() (#1417) | 
						
						
							|  | [models] REDESIGNED: ExportMesh() to use memory buffer (#1232)  | 
						
						
							|  | [models] REDESIGNED: LoadIQM() and LoadModelAnimations() to use memory buffers | 
						
						
							|  | [audio] ADDED: LoadWaveFromMemory() (#1327) | 
						
						
							|  | [audio] REMOVED: SetMusicLoopCount() | 
						
						
							|  | [audio] REVIEWED: Several functions, sampleCount vs frameCount (#1423) | 
						
						
							|  | [audio] REVIEWED: SaveWAV() to use memory write insted of file | 
						
						
							|  | [audio] REVIEWED: LoadMusicStream(), support WAV music streaming (#1198)  | 
						
						
							|  | [audio] REVIEWED: Support multiple WAV sampleSize for MusicStream (#1340)  | 
						
						
							|  | [audio] REVIEWED: SetAudioBufferPitch() | 
						
						
							|  | [audio] REDESIGNED: Audio looping system | 
						
						
							|  | [audio] REDESIGNED: LoadSound(): Use memory loading (WAV, OGG, MP3, FLAC) (#1312) | 
						
						
							|  | [audio] REDESIGNED: ExportWaveAsCode() to use memory buffers | 
						
						
							|  | [utils] ADDED: MemAlloc() / MemFree() (#1440) | 
						
						
							|  | [utils] ADDED: UnloadFileData() / UnloadFileText() | 
						
						
							|  | [utils] REVIEWED: android_fopen() to support SDCard access | 
						
						
							|  | [utils] REDESIGNED: SaveFile*() functions to expose file access results (#1420) | 
						
						
							|  | [rmem] REVIEWED: MemPool and other allocators optimization (#1211) by @assyrianic | 
						
						
							|  | [examples] ADDED: core/core_window_flags | 
						
						
							|  | [examples] ADDED: core/core_quat_conversion by @chriscamacho and @codifies | 
						
						
							|  | [examples] ADDED: textures/textures_blend_modes (#1261) by @accidentalrebel | 
						
						
							|  | [examples] ADDED: textures/textures_draw_tiled (#1291) by @Demizdor | 
						
						
							|  | [examples] ADDED: shaders/shaders_hot_reloading (#1198) | 
						
						
							|  | [examples] ADDED: shaders/shaders_rlgl_mesh_instanced (#1318) by @seanpringle | 
						
						
							|  | [examples] ADDED: shaders/shaders_multi_sampler2d | 
						
						
							|  | [examples] ADDED: others/embedded_files_loading | 
						
						
							|  | [examples] REVIEWED: textures/textures_raw_data (#1286) | 
						
						
							|  | [examples] REVIEWED: textures/textures_sprite_explosion, replace resources | 
						
						
							|  | [examples] REVIEWED: textures/textures_particles_blending, replace resources | 
						
						
							|  | [examples] REVIEWED: textures/textures_image_processing, support mouse | 
						
						
							|  | [examples] REVIEWED: models/models_skybox to work on OpenGL ES 2.0 | 
						
						
							|  | [examples] REVIEWED: audio/resources, use open license resources | 
						
						
							|  | [examples] REVIEWED: others/raudio_standalone.c | 
						
						
							|  | [build] ADDED: New config.h configuration options exposing multiple #define values | 
						
						
							|  | [build] REMOVED: ANGLE VS2017 template project | 
						
						
							|  | [build] REVIEWED: All MSVC compile warnings | 
						
						
							|  | [build] Updated Makefile for web (#1332) by @rfaile313 | 
						
						
							|  | [build] Updated build pipelines to use latest emscripten and Android NDK | 
						
						
							|  | [build] Updated emscriptem build script to generate .a on WebAssembly | 
						
						
							|  | [build] Updated Android build for Linux, supporting ANDROID_NDK at compile time by @branlix3000 | 
						
						
							|  | [build] Updated VSCode project template tasks | 
						
						
							|  | [build] Updated VS2017.UWP project template by @Rover656 | 
						
						
							|  | [build] Updated Android build pipeline  | 
						
						
							|  | [build] REMOVED: AppVeyor and Travis CI build systems | 
						
						
							|  | [*] Moved raysan5/raylib/games to independent repo: raysan5/raylib-games  | 
						
						
							|  | [*] Replaced several examples resources with more open licensed alternatives | 
						
						
							|  | [*] Updated BINDINGS.md with NEW bindings and added raylib version binding! | 
						
						
							|  | [*] Updated all external libraries to latest versions | 
						
						
							|  | [*] Multiple code improvements and small fixes | 
						
						
							|  | 
 | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | Release:     raylib 3.0 (01 April 2020) | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | KEY CHANGES: | 
						
						
							|  |  - Global context states used on all modules.  | 
						
						
							|  |  - Custom memory allocators for all modules and dependencies. | 
						
						
							|  |  - Centralized file access system and memory data loading. | 
						
						
							|  |  - Structures reviewed to reduce size and always be used as pass-by-value. | 
						
						
							|  |  - Tracelog messages completely reviewed and categorized. | 
						
						
							|  |  - raudio module reviewed to accomodate new Music struct and new miniaudio. | 
						
						
							|  |  - text module reviewed to improve fonts generation and text management functions. | 
						
						
							|  |  - Multiple new examples added and categorized examples table. | 
						
						
							|  |  - GitHub Actions CI implemented for Windows, Linux and macOS. | 
						
						
							|  |   | 
						
						
							|  | Detailed changes: | 
						
						
							|  | [build] ADDED: VS2017.ANGLE project, by @msmshazan | 
						
						
							|  | [build] ADDED: VS2017 project support for x64 platform configuration | 
						
						
							|  | [build] ADDED: Makefile for Android building on macOS, by @Yunoinsky | 
						
						
							|  | [build] ADDED: Makefile for Android building on Linux, by @pamarcos | 
						
						
							|  | [build] REMOVED: VS2015 project | 
						
						
							|  | [build] REVIEWED: VSCode project | 
						
						
							|  | [build] REVIEWED: Makefile build system | 
						
						
							|  | [build] REVIEWED: Android building, by @NimbusFox | 
						
						
							|  | [build] REVIEWED: Compilation with CLion IDE, by @Rover656 | 
						
						
							|  | [build] REVIEWED: Generation of web examples, by @pamarcos | 
						
						
							|  | [build] REVIEWED: Makefiles path to 'shell.html', by @niorad | 
						
						
							|  | [build] REVIEWED: VS2017 64bit compilation issues, by @spec-chum | 
						
						
							|  | [build] REVIEWED: Multiple fixes on projects building, by @ChrisDill, @JuDelCo, @electronstudio | 
						
						
							|  | [core] ADDED: Support touch/mouse indistinctly | 
						
						
							|  | [core] ADDED: FLAG_WINDOW_ALWAYS_RUN to avoid pause on minimize | 
						
						
							|  | [core] ADDED: Config flag SUPPORT_HALFBUSY_WAIT_LOOP | 
						
						
							|  | [core] ADDED: RPI mouse cursor point support on native mode | 
						
						
							|  | [core] ADDED: GetWorldToScreen2D()- Get screen space position for a 2d camera world space position, by @arvyy | 
						
						
							|  | [core] ADDED: GetScreenToWorld2D() - Get world space position for a 2d camera screen space position, by @arvyy | 
						
						
							|  | [core] ADDED: GetWorldToScreenEx() - Get size position for a 3d world space position | 
						
						
							|  | [core] ADDED: DirectoryExists() - Check if a directory path exists | 
						
						
							|  | [core] ADDED: GetPrevDirectoryPath() - Get previous directory path for a given path | 
						
						
							|  | [core] ADDED: CompressData() - Compress data (DEFLATE algorythm) | 
						
						
							|  | [core] ADDED: DecompressData() - Decompress data (DEFLATE algorythm) | 
						
						
							|  | [core] ADDED: GetWindowPosition() - Get window position XY on monitor | 
						
						
							|  | [core] ADDED: LoadFileData() - Load file data as byte array (read) | 
						
						
							|  | [core] ADDED: SaveFileData() - Save data to file from byte array (write) | 
						
						
							|  | [core] ADDED: LoadFileText() - Load text data from file (read), returns a '\0' terminated string | 
						
						
							|  | [core] ADDED: SaveFileText() - Save text data to file (write), string must be '\0' terminated | 
						
						
							|  | [core] REMOVED: Show raylib logo at initialization | 
						
						
							|  | [core] REVIEWED: GetFileName(), security checks | 
						
						
							|  | [core] REVIEWED: LoadStorageValue(), by @danimartin82 | 
						
						
							|  | [core] REVIEWED: SaveStorageValue(), by @danimartin82 | 
						
						
							|  | [core] REVIEWED: IsMouseButtonReleased(), when press/release events come too fast, by @oswjk | 
						
						
							|  | [core] REVIEWED: SetWindowMonitor(), by @DropsOfSerenity | 
						
						
							|  | [core] REVIEWED: IsFileExtension() to be case-insensitive | 
						
						
							|  | [core] REVIEWED: IsFileExtension() when checking no-extension files | 
						
						
							|  | [core] REVIEWED: Default font scale filter for HighDPI mode | 
						
						
							|  | [core] REVIEWED: Touch input scaling for PLATFORM_WEB | 
						
						
							|  | [core] REVIEWED: RPI input system, by @DarkElvenAngel | 
						
						
							|  | [core] REVIEWED: RPI input threads issues | 
						
						
							|  | [core] REVIEWED: OpenGL extensions loading and freeing | 
						
						
							|  | [core] REVIEWED: GetDirectoryPath() | 
						
						
							|  | [core] REVIEWED: Camera2D behavior, by @arvyy | 
						
						
							|  | [core] REVIEWED: OpenGL ES 2.0 extensions check | 
						
						
							|  | [rlgl] ADDED: Flags to allow frustrum culling near/far distance configuration at compile time | 
						
						
							|  | [rlgl] ADDED: Flags to sllow MAX_BATCH_BUFFERING config at compile time | 
						
						
							|  | [rlgl] ADDED: GetMatrixProjection(), by @chriscamacho | 
						
						
							|  | [rlgl] ADDED: rlUpdateMeshAt() - Update vertex or index data on GPU, at index, by @brankoku | 
						
						
							|  | [rlgl] REVIEWED: Vertex padding not zeroed for quads, by @kawa-yoiko | 
						
						
							|  | [rlgl] REVIEWED: Read texture data as RGBA from FBO on GLES 2.0 | 
						
						
							|  | [rlgl] REVIEWED: LoadShaderCode() for const correctness, by @heretique | 
						
						
							|  | [rlgl] REVIEWED: rlLoadTexture() | 
						
						
							|  | [rlgl] REVIEWED: rlReadTexturePixels() | 
						
						
							|  | [rlgl] REVIEWED: rlUpdateMesh() to supports updating indices, by @brankoku | 
						
						
							|  | [rlgl] REVIEWED: GenTextureCubemap(), renamed parameters for consistency | 
						
						
							|  | [rlgl] REVIEWED: HDR pixels loading | 
						
						
							|  | [raymath] ADDED: MatrixRotateXYZ(), by @chriscamacho | 
						
						
							|  | [raymath] RENAMED: Vector3Multiply() to Vector3Scale() | 
						
						
							|  | [camera] REVIEWED: Free camera pitch, by @chriscamacho | 
						
						
							|  | [camera] REVIEWED: Camera not working properly at z-align, by @Ushio | 
						
						
							|  | [shapes] ADDED: DrawTriangleStrip() - Draw a triangle strip defined by points | 
						
						
							|  | [shapes] ADDED: DrawEllipse() - Draw ellipse | 
						
						
							|  | [shapes] ADDED: DrawEllipseLines() - Draw ellipse outline | 
						
						
							|  | [shapes] ADDED: DrawPolyLines() - Draw a polygon outline of n sides | 
						
						
							|  | [shapes] REVIEWED: DrawPoly() shape rendering, by @AlexHCC | 
						
						
							|  | [textures] ADDED: LoadAnimatedGIF() - Load animated GIF file | 
						
						
							|  | [textures] ADDED: GetImageAlphaBorder() - Get image alpha border rectangle | 
						
						
							|  | [textures] ADDED: ImageFromImage() - Create an image from another image piece | 
						
						
							|  | [textures] ADDED: ImageClearBackground(), by @iamsouravgupta | 
						
						
							|  | [textures] ADDED: ImageDrawPixel(), by @iamsouravgupta | 
						
						
							|  | [textures] ADDED: ImageDrawCircle(), by @iamsouravgupta | 
						
						
							|  | [textures] ADDED: ImageDrawLineEx(), by @iamsouravgupta | 
						
						
							|  | [textures] ADDED: ImageDrawPixelV(), by @RobLoach | 
						
						
							|  | [textures] ADDED: ImageDrawCircleV(), by @RobLoach | 
						
						
							|  | [textures] ADDED: ImageDrawLineV(), by @RobLoach | 
						
						
							|  | [textures] ADDED: ImageDrawRectangleV(), by @RobLoach | 
						
						
							|  | [textures] ADDED: ImageDrawRectangleRec(), by @RobLoach | 
						
						
							|  | [textures] REVIEWED: ImageDrawPixel(), by @RobLoach | 
						
						
							|  | [textures] REVIEWED: ImageDrawLine(), by @RobLoach | 
						
						
							|  | [textures] REVIEWED: ImageDrawCircle(), by @RobLoach | 
						
						
							|  | [textures] REVIEWED: ImageDrawRectangle(), by @RobLoach | 
						
						
							|  | [textures] REVIEWED: ImageDraw(), now it supports color tint parameter | 
						
						
							|  | [textures] REVIEWED: ImageResizeCanvas() | 
						
						
							|  | [textures] REVIEWED: ImageCrop() with security checks | 
						
						
							|  | [textures] REVIEWED: ImageAlphaMask() | 
						
						
							|  | [textures] REVIEWED: ImageDrawRectangleLines() | 
						
						
							|  | [textures] REVIEWED: GetImageData() | 
						
						
							|  | [text] ADDED: TextCopy() - Copy one string to another, returns bytes copied | 
						
						
							|  | [text] ADDED: GetCodepoints() - Get all codepoints in a string | 
						
						
							|  | [text] ADDED: CodepointToUtf8() - Encode codepoint into utf8 text | 
						
						
							|  | [text] ADDED: DrawTextCodepoint() - Draw one character (codepoint) | 
						
						
							|  | [text] RENAMED: LoadDefaultFont() -> LoadFontDefault() | 
						
						
							|  | [text] RENAMED: TextCountCodepoints() -> GetCodepointsCount() | 
						
						
							|  | [text] REVIEWED: TextFormat(), to support caching, by @brankoku | 
						
						
							|  | [text] REVIEWED: LoadFontData(), generate empty image for space character | 
						
						
							|  | [text] REVIEWED: TextSplit() | 
						
						
							|  | [text] REVIEWED: TextToInteger() | 
						
						
							|  | [text] REVIEWED: GetNextCodepoint(), renamed parameters for clarity | 
						
						
							|  | [text] REVIEWED: GenImageFontAtlas(), improved atlas size computing | 
						
						
							|  | [text] REDESIGNED: struct Font, character rectangles have been moved out from CharInfo to Font | 
						
						
							|  | [text] REDESIGNED: struct CharInfo, now includes directly an Image of the glyph | 
						
						
							|  | [text] REDESIGNED: GenImageFontAtlas(), additional recs parameter added | 
						
						
							|  | [text] REDESIGNED: ImageTextEx(), to avoid font retrieval from GPU | 
						
						
							|  | [models] ADDED: Support rlPushMatrix() and rlPopMatrix() on mesh drawing | 
						
						
							|  | [models] ADDED: DrawPoint3D() - Draw a point in 3D space, actually a small line, by @ProfJski | 
						
						
							|  | [models] ADDED: Multi texture support for materials in GLTF format, by @Gamerfiend, @chriscamacho | 
						
						
							|  | [models] REVIEWED: LoadGLTF(), fixed memory leak, by @jubalh | 
						
						
							|  | [models] REVIEWED: LoadIQM(), support multiple animations loading, by @culacant | 
						
						
							|  | [models] REVIEWED: GetCollisionRayModel(), to avoid pointers | 
						
						
							|  | [models] REVIEWED: CheckCollisionRay*(), parameters renamed | 
						
						
							|  | [models] REVIEWED: UnloadMesh(), to avoid pointers | 
						
						
							|  | [models] REVIEWED: LoadModel(), memory initialization | 
						
						
							|  | [models] REVIEWED: UpdateModelAnimation(), added security checks | 
						
						
							|  | [models] REVIEWED: Multiple fixes on models loading, by @jubalh | 
						
						
							|  | [models] REVIEWED: Normals updated when using animated meshes, by @@las3rlars | 
						
						
							|  | [models] REVIEWED: Compilation when the SUPPORT_MESH_GENERATION not set, by @@Elkantor | 
						
						
							|  | [raudio] ADDED: Multi-channel audio playing, by @chriscamacho | 
						
						
							|  | [raudio] REMOVED: LoadWaveEx() | 
						
						
							|  | [raudio] RENAMED: IsAudioBufferProcessed() to IsAudioStreamProcessed() | 
						
						
							|  | [raudio] REVIEWED: Ensure .xm playback starts in the right place, by @illegalinstruction | 
						
						
							|  | [raudio] REVIEWED: Fix short non-looping sounds, by @jbosh | 
						
						
							|  | [raudio] REVIEWED: Modules playing time to full length | 
						
						
							|  | [raudio] REDESIGNED: Replaced Music pointer by struct | 
						
						
							|  | [raudio] REDESIGNED: Removed sampleLeft from Music struct | 
						
						
							|  | [examples] ADDED: core_scissor_test, by @ChrisDill | 
						
						
							|  | [examples] ADDED: core_2d_camera_platformer, by @arvyy | 
						
						
							|  | [examples] ADDED: textures_mouse_painting, by @ChrisDill | 
						
						
							|  | [examples] ADDED: models_waving_cubes, by @codecat | 
						
						
							|  | [examples] ADDED: models_solar_system, by @aldrinmartoq | 
						
						
							|  | [examples] ADDED: shaders_fog, by @chriscamacho | 
						
						
							|  | [examples] ADDED: shaders_texture_waves, by @Anata | 
						
						
							|  | [examples] ADDED: shaders_basic_lighting, by @chriscamacho | 
						
						
							|  | [examples] ADDED: shaders_simple_mask, by @chriscamacho | 
						
						
							|  | [examples] ADDED: audio_multichannel_sound, by @chriscamacho | 
						
						
							|  | [examples] ADDED: shaders_spotlight, by @chriscamacho | 
						
						
							|  | [examples] RENAMED: text_sprite_font > text_font_spritefont | 
						
						
							|  | [examples] RENAMED: text_ttf_loading > text_font_filters | 
						
						
							|  | [examples] RENAMED: text_bmfont_ttf > text_font_loading | 
						
						
							|  | [examples] REMOVED: models_obj_viewer | 
						
						
							|  | [examples] REMOVED: models_solar_system | 
						
						
							|  | [examples] REVIEWED: models_obj_loading > models_loading | 
						
						
							|  | [examples] REVIEWED: models_materials_pbr, shader issues | 
						
						
							|  | [examples] REVIEWED: core_window_letterbox, detailed explanation, by @jotac0 | 
						
						
							|  | [examples] REVIEWED: core_window_letterbox, virtual mouse, by @anatagawa | 
						
						
							|  | [games] ADDED: GGJ2020 game - RE-PAIR | 
						
						
							|  | [*] Misc fixes and tweaks, by @yaram, @oraoto, @zatherz, @piecedigital, @Shylie | 
						
						
							|  | [*] Update ALL supported projects (Notepad++, VS2017) | 
						
						
							|  | [*] Update ALL external libraries to latest versions (29.Jan.2020) | 
						
						
							|  | [*] Update ALL examples and games | 
						
						
							|  | [*] Update BINDINGS list | 
						
						
							|  | 
 | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | Release:     raylib 2.5 (May 2019) | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | KEY CHANGES: | 
						
						
							|  |  - [core] Redesigned Gamepad mechanism, now common to all platforms and gamepads | 
						
						
							|  |  - [core] HighDPI monitors support with automatic content scaling | 
						
						
							|  |  - [rlgl] Complete module redesign to use one single internal buffer | 
						
						
							|  |  - [rlgl] VR system redesign to allow custom device parameters and distortion shader | 
						
						
							|  |  - [shapes] New drawing shapes available: CircleSector, Ring and RectangleRounded | 
						
						
							|  |  - [text] New text management API (multiple functions) | 
						
						
							|  |  - [text] Full Unicode support (utf8 text) | 
						
						
							|  |  - [textures] Cubemap textures support | 
						
						
							|  |  - [textures] Quad and N-Patch drawing | 
						
						
							|  |  - [models] Skeletal model animation support | 
						
						
							|  |  - [models] Support multiple meshes per model | 
						
						
							|  |  - [models] Support glTF model loading | 
						
						
							|  | 
 | 
						
						
							|  | Detailed changes: | 
						
						
							|  | [build] REVIEWED: Default raylib and examples Makefile | 
						
						
							|  | [build] REVIEWED: Notepad++ NppExec scripts | 
						
						
							|  | [build] REVIEWED: VS2015 and VS2017 projects | 
						
						
							|  | [build] REVIEWED: Android APK build pipeline | 
						
						
							|  | [core] Converted most #defined values as enum values | 
						
						
							|  | [core] Complete redesign of RPI input system to use evdev events | 
						
						
							|  | [core] ADDED: IsWindowResized() - Check if window has been resized | 
						
						
							|  | [core] ADDED: IsWindowHidden() - Check if window is currently hidden | 
						
						
							|  | [core] ADDED: UnhideWindow() - Show the window | 
						
						
							|  | [core] ADDED: HideWindow() - Hide the window | 
						
						
							|  | [core] ADDED: GetWindowHandle() - Get native window handle | 
						
						
							|  | [core] ADDED: GetMonitorCount() - Get number of connected monitors | 
						
						
							|  | [core] ADDED: GetMonitorWidth() - Get primary monitor width | 
						
						
							|  | [core] ADDED: GetMonitorHeight() - Get primary monitor height | 
						
						
							|  | [core] ADDED: GetMonitorPhysicalWidth() - Get primary monitor physical width in millimetres | 
						
						
							|  | [core] ADDED: GetMonitorPhysicalHeight() - Get primary monitor physical height in millimetres | 
						
						
							|  | [core] ADDED: GetMonitorName() - Get the human-readable, UTF-8 encoded name of the primary monitor | 
						
						
							|  | [core] ADDED: GetClipboardText() - Get clipboard text content | 
						
						
							|  | [core] ADDED: SetClipboardText() - Set clipboard text content | 
						
						
							|  | [core] ADDED: ColorFromHSV() - Returns a Color from HSV values | 
						
						
							|  | [core] ADDED: FileExists() - Check if file exists | 
						
						
							|  | [core] ADDED: GetFileNameWithoutExt() - Get filename string without extension (memory should be freed) | 
						
						
							|  | [core] ADDED: GetDirectoryFiles() - Get filenames in a directory path (memory should be freed) | 
						
						
							|  | [core] ADDED: ClearDirectoryFiles() - Clear directory files paths buffers (free memory) | 
						
						
							|  | [core] ADDED: OpenURL() - Open URL with default system browser (if available) | 
						
						
							|  | [core] ADDED: SetMouseOffset() - Set mouse offset | 
						
						
							|  | [core] ADDED: SetMouseScale() - Set mouse scaling | 
						
						
							|  | [core] REMOVED: ShowLogo() - Activate raylib logo at startup (can be done with flags) | 
						
						
							|  | [shapes] ADDED: DrawCircleSector() - Draw a piece of a circle | 
						
						
							|  | [shapes] ADDED: DrawCircleSectorLines() - Draw circle sector outline | 
						
						
							|  | [shapes] ADDED: DrawRing() - Draw ring | 
						
						
							|  | [shapes] ADDED: DrawRingLines() - Draw ring outline | 
						
						
							|  | [shapes] ADDED: DrawRectangleRounded() - Draw rectangle with rounded edges | 
						
						
							|  | [shapes] ADDED: DrawRectangleRoundedLines() - Draw rectangle with rounded edges outline | 
						
						
							|  | [shapes] ADDED: SetShapesTexture() - Define default texture used to draw shapes | 
						
						
							|  | [textures] REVIEWED: ExportImage() - Reorder function parameters | 
						
						
							|  | [textures] REVIEWED: ImageDrawRectangle() - Remove unneeded parameter | 
						
						
							|  | [textures] ADDED: ExportImageAsCode() - Export image as code file defining an array of bytes | 
						
						
							|  | [textures] ADDED: LoadTextureCubemap() - Load cubemap from image, multiple image cubemap layouts supported | 
						
						
							|  | [textures] ADDED: ImageExtractPalette() - Extract color palette from image to maximum size (memory should be freed) | 
						
						
							|  | [textures] ADDED: ImageDrawRectangleLines() - Draw rectangle lines within an image | 
						
						
							|  | [textures] ADDED: DrawTextureQuad() - Draw texture quad with tiling and offset parameters | 
						
						
							|  | [textures] ADDED: DrawTextureNPatch() - Draws a texture (or part of it) that stretches or shrinks nicely | 
						
						
							|  | [models] REVIEWED: LoadMesh() -> LoadMeshes() - Support multiple meshes loading | 
						
						
							|  | [models] REVIEWED: LoadMaterial() -> LoadMaterials() - Support multiple materials loading | 
						
						
							|  | [models] REVIEWED: ExportMesh() - Reorder parameters | 
						
						
							|  | [models] ADDED: DrawCubeWiresV() - Draw cube wires (Vector version) | 
						
						
							|  | [models] ADDED: GenMeshPoly() - Generate polygonal mesh | 
						
						
							|  | [models] ADDED: SetMaterialTexture() - Set texture for a material map type (MAP_DIFFUSE, MAP_SPECULAR...) | 
						
						
							|  | [models] ADDED: SetModelMeshMaterial() - Set material for a mesh | 
						
						
							|  | [models] ADDED: LoadModelAnimations() - Load model animations from file | 
						
						
							|  | [models] ADDED: UpdateModelAnimation() - Update model animation pose | 
						
						
							|  | [models] ADDED: UnloadModelAnimation() - Unload animation data | 
						
						
							|  | [models] ADDED: IsModelAnimationValid() - Check model animation skeleton match | 
						
						
							|  | [rlgl] Improved internal batching mechanism (multibuffering support, triangle texcoords...) | 
						
						
							|  | [rlgl] REVIEWED: rlPushMatrix()/rlPopMatrix() - Now works like OpenGL 1.1 | 
						
						
							|  | [rlgl] REVIEWED: SetShaderValue() - More generic, now requires uniform type | 
						
						
							|  | [rlgl] REMOVED: SetShaderValuei() - Can be acoomplished with new SetShaderValue() | 
						
						
							|  | [rlgl] ADDED: SetShaderValueV() - Set shader uniform value vector | 
						
						
							|  | [rlgl] ADDED: SetShaderValueTexture() - Set shader uniform value for texture | 
						
						
							|  | [rlgl] ADDED: BeginScissorMode() - Begin scissor mode (define screen area for following drawing) | 
						
						
							|  | [rlgl] ADDED: EndScissorMode() - End scissor mode | 
						
						
							|  | [rlgl] ADDED: SetVrConfiguration() - Set stereo rendering configuration parameters  | 
						
						
							|  | [rlgl] REVIEWED: InitVrSimulator() - No input parameter required, use SetVrConfiguration() | 
						
						
							|  | [text] REVIEWED: LoadFontEx() - Reorder function parameters | 
						
						
							|  | [text] REVIEWED: LoadFontData() - Reorder function parameters | 
						
						
							|  | [text] REVIEWED: GenImageFontAtlas() - Reorder function parameters | 
						
						
							|  | [text] RENAMED: FormatText() -> TextFormat() | 
						
						
							|  | [text] RENAMED: SubText() -> TextSubtext() | 
						
						
							|  | [text] ADDED: LoadFontFromImage() - Load font from Image (XNA style) | 
						
						
							|  | [text] ADDED: DrawTextRec() - Draw text using font inside rectangle limits | 
						
						
							|  | [text] ADDED: DrawTextRecEx() - Draw text using font inside rectangle limits with support for text selection | 
						
						
							|  | [text] ADDED: TextIsEqual() - Check if two text string are equal | 
						
						
							|  | [text] ADDED: TextLength() - Get text length, checks for '\0' ending | 
						
						
							|  | [text] ADDED: TextReplace() - Replace text string (memory should be freed!) | 
						
						
							|  | [text] ADDED: TextInsert() - Insert text in a position (memory should be freed!) | 
						
						
							|  | [text] ADDED: TextJoin() - Join text strings with delimiter | 
						
						
							|  | [text] ADDED: TextSplit() - Split text into multiple strings | 
						
						
							|  | [text] ADDED: TextAppend() - Append text at specific position and move cursor! | 
						
						
							|  | [text] ADDED: TextFindIndex() - Find first text occurrence within a string | 
						
						
							|  | [text] ADDED: TextToUpper() - Get upper case version of provided string | 
						
						
							|  | [text] ADDED: TextToLower() - Get lower case version of provided string | 
						
						
							|  | [text] ADDED: TextToPascal() - Get Pascal case notation version of provided string | 
						
						
							|  | [text] ADDED: TextToInteger() - Get integer value from text (negative values not supported) | 
						
						
							|  | [raudio] ADDED: ExportWave() - Export wave data to file | 
						
						
							|  | [raudio] ADDED: ExportWaveAsCode() - Export wave sample data to code (.h) | 
						
						
							|  | [raudio] ADDED: IsAudioStreamPlaying() - Check if audio stream is playing | 
						
						
							|  | [raudio] ADDED: SetAudioStreamVolume() - Set volume for audio stream (1.0 is max level) | 
						
						
							|  | [raudio] ADDED: SetAudioStreamPitch() - Set pitch for audio stream (1.0 is base level) | 
						
						
							|  | [examples] Complete review of full examples collection, many additions | 
						
						
							|  | [examples] ADDED: core_custom_logging - Custom trace log system | 
						
						
							|  | [examples] ADDED: core_input_multitouch - Multitouch input example | 
						
						
							|  | [examples] ADDED: core_window_letterbox - Window adapted to screen | 
						
						
							|  | [examples] ADDED: core_loading_thread - Data loading in second thread | 
						
						
							|  | [examples] REVIEWED: core_input_gamepad - Adapted to new gamepad system | 
						
						
							|  | [examples] REVIEWED: core_vr_simulator - HMD device parameters and distortion shader should be provided | 
						
						
							|  | [examples] ADDED: core_window_scale_letterbox - Windows resizing and letterbox content | 
						
						
							|  | [examples] ADDED: shapes_rectangle_scaling_mouse - Scale a rectangle with mouse | 
						
						
							|  | [examples] ADDED: shapes_draw_circle_sector - Circle sector drawing | 
						
						
							|  | [examples] ADDED: shapes_draw_ring - Ring drawing | 
						
						
							|  | [examples] ADDED: shapes_draw_rectangle_rounded - Rounded rectangle drawing | 
						
						
							|  | [examples] ADDED: shapes_bouncing_ball - Ball bouncing in the screen | 
						
						
							|  | [examples] ADDED: shapes_collision_area - Collision detection and drawing | 
						
						
							|  | [examples] ADDED: shapes_following_eyes - Some maths on eyes and mouse | 
						
						
							|  | [examples] ADDED: shapes_easings_ball_anim - Ball animation | 
						
						
							|  | [examples] ADDED: shapes_easings_box_anim - Box animation | 
						
						
							|  | [examples] ADDED: shapes_easings_rectangle_array - Rectangles animation | 
						
						
							|  | [examples] REVIEWED: shapes_colors_palette - Reviewed color selection and text displaying | 
						
						
							|  | [examples] ADDED: textures_background_scrolling - Scrolling and parallaz background effect | 
						
						
							|  | [examples] ADDED: textures_image_npatch - Drawing N-Patch based boxes | 
						
						
							|  | [examples] ADDED: textures_sprite_button - Sprite button with sound | 
						
						
							|  | [examples] ADDED: textures_sprite_explosion - Sprite explosion with sound | 
						
						
							|  | [examples] ADDED: textures_bunnymark - Benchmarking test | 
						
						
							|  | [examples] ADDED: text_draw_inside_rectangle - Drawing text inside a delimited rectangle box | 
						
						
							|  | [examples] ADDED: text_unicode - Multiple languages text drawing | 
						
						
							|  | [examples] ADDED: text_rectangle_bound - Fit text inside a rectangle | 
						
						
							|  | [examples] REVIEWED: text_bmfont_ttf - Simplified example | 
						
						
							|  | [examples] ADDED: models_animation - Animated models loading and animation playing | 
						
						
							|  | [examples] ADDED: models_obj_viewer - Draw and drop models viewer | 
						
						
							|  | [examples] ADDED: models_rlgl_solar_system - Solar system simulation using rlgl functionality | 
						
						
							|  | [examples] ADDED: models_first_person_maze - 3D maze fps | 
						
						
							|  | [examples] ADDED: shaders_palette_switch - Switching color palette on shader | 
						
						
							|  | [examples] ADDED: shaders_raymarching - Raymarching shader | 
						
						
							|  | [examples] ADDED: shaders_texture_drawing - Texture drawing on GPU | 
						
						
							|  | [examples] ADDED: shaders_texture_waves - Texture waves on shader | 
						
						
							|  | [examples] ADDED: shaders_julia_set - Julia set fractals | 
						
						
							|  | [examples] ADDED: shaders_eratosthenes - Prime number visualization shader | 
						
						
							|  | [examples] REVIEWED: audio_raw_stream - Mostly rewritten | 
						
						
							|  | [games] ADDED: GGJ19 game - Cat vs Roomba | 
						
						
							|  | [*] Updated external libraries to latest version | 
						
						
							|  | [*] Multiple bugs corrected (check github issues) | 
						
						
							|  | 
 | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | Release:     raylib 2.0 (July 2018) | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | KEY CHANGES: | 
						
						
							|  |   - Removed external dependencies (GLFW3 and OpenAL) | 
						
						
							|  |   - Complete redesign of audio module to use miniaudio library | 
						
						
							|  |   - Support AppVeyor and Travis CI (continuous integration) building | 
						
						
							|  |   - Reviewed raymath.h for better consistency and performance (inlining) | 
						
						
							|  |   - Refactor all #define SUPPORT_* into a single config.h | 
						
						
							|  |   - Support TCC compiler (32bit and 64bit) | 
						
						
							|  | 
 | 
						
						
							|  | Detailed changes: | 
						
						
							|  | [build] REMOVED: GitHub develop branch | 
						
						
							|  | [build] REMOVED: External dependencies GLFW and OpenAL | 
						
						
							|  | [build] ADDED: Android 64bit ARM support | 
						
						
							|  | [build] ADDED: FreeBSD, OpenBSD, NetBSD, Dragon Fly OS support | 
						
						
							|  | [build] ADDED: Universal Windows Platform (UWP) support | 
						
						
							|  | [build] ADDED: Wayland Linux desktop support | 
						
						
							|  | [build] ADDED: AppVeyor CI for automatic Windows builds | 
						
						
							|  | [build] ADDED: Travis CI for automatic Linux/macOS builds | 
						
						
							|  | [build] ADDED: rglfw (GLFW3 module) to avoid external dependency | 
						
						
							|  | [build] ADDED: VS2017 UWP project | 
						
						
							|  | [build] ADDED: Builder project template | 
						
						
							|  | [build] ADDED: Compiler memory sanitizer for better debug | 
						
						
							|  | [build] ADDED: CMake package target and CI auto-deploy tags | 
						
						
							|  | [build] ADDED: DEBUG library building support | 
						
						
							|  | [build] ADDED: Notepad++ NppExec scripts | 
						
						
							|  | [build] REVIEWED: VS2015 and VS2017 projects | 
						
						
							|  | [build] REVIEWED: Android APK build pipeline | 
						
						
							|  | [core] REVIEWED: Window creation hints to support transparent windows | 
						
						
							|  | [core] Unified InitWindow() between platforms | 
						
						
							|  | [core] Export Android main entry point | 
						
						
							|  | [core] RENAMED: Begin3dMode() to BeginMode3D() | 
						
						
							|  | [core] RENAMED: End3dMode() to EndMode3D() | 
						
						
							|  | [core] RENAMED: Begin2dMode() to BeginMode2D() | 
						
						
							|  | [core] RENAMED: End2dMode() to EndMode2D() | 
						
						
							|  | [core] RENAMED: struct Camera to Camera3D | 
						
						
							|  | [core] RENAMED: struct SpriteFont to Font -> plus all required functions! | 
						
						
							|  | [core] RENAMED: enum TextureFormat to PixelFormat | 
						
						
							|  | [core] REVIEWED: Rectangle params int to float | 
						
						
							|  | [core] REVIEWED: timing system for macOS | 
						
						
							|  | [core] REMOVED: ColorToFloat() | 
						
						
							|  | [core] ADDED: GetCurrentTime() on macOS | 
						
						
							|  | [core] ADDED: GetTime() | 
						
						
							|  | [core] ADDED: struct Vector4 | 
						
						
							|  | [core] ADDED: SetTraceLog() to define trace log messages type | 
						
						
							|  | [core] ADDED: GetFileName() to get filename from path string | 
						
						
							|  | [core] ADDED: ColorToHSV() | 
						
						
							|  | [core] ADDED: ColorNormalize() | 
						
						
							|  | [core] ADDED: SetWindowSize() to scale Windows in runtime | 
						
						
							|  | [core] ADDED: SetMouseScale() to scale mouse input | 
						
						
							|  | [core] ADDED: key definitions - KEY_GRAVE, KEY_SLASH, KEY_BACKSLASH | 
						
						
							|  | [core] RENAMED: GetHexValue() to ColorToInt() | 
						
						
							|  | [core] REVIEWED: Fade() | 
						
						
							|  | [core] REVIEWED: InitWindow() to avoid void pointer (safety) | 
						
						
							|  | [core] Support camera 3d orthographic projection mode | 
						
						
							|  | [shapes] ADDED: DrawRectangleLinesEx() | 
						
						
							|  | [textures] Improved pixel formats support (32bit channels) | 
						
						
							|  | [textures] Improved textures support for OpenGL 2.1 | 
						
						
							|  | [textures] REMOVED: DrawRectangleT() --> Added support to DrawRectangle() | 
						
						
							|  | [textures] ADDED: GetPixelDataSize(); pixel data size in bytes (image or texture) | 
						
						
							|  | [textures] ADDED: ImageAlphaClear() --> Clear alpha channel to desired color | 
						
						
							|  | [textures] ADDED: ImageAlphaCrop() --> Crop image depending on alpha value | 
						
						
							|  | [textures] ADDED: ImageAlphaPremultiply() --> Premultiply alpha channel | 
						
						
							|  | [textures] ADDED: ImageDrawRectangle() | 
						
						
							|  | [textures] ADDED: ImageMipmaps() | 
						
						
							|  | [textures] ADDED: GenImageColor() | 
						
						
							|  | [textures] ADDED: GetPixelDataSize() | 
						
						
							|  | [textures] ADDED: ImageRotateCW() | 
						
						
							|  | [textures] ADDED: ImageRotateCCW() | 
						
						
							|  | [textures] ADDED: ImageResizeCanvas() | 
						
						
							|  | [textures] ADDED: GetImageDataNormalized() | 
						
						
							|  | [textures] REVIEWED: ImageFormat() to use normalized data | 
						
						
							|  | [textures] REVIEWED: Manual mipmap generation | 
						
						
							|  | [textures] REVIEWED: LoadASTC() | 
						
						
							|  | [textures] REVIEWED: GenImagePerlinNoise() | 
						
						
							|  | [textures] REVIEWED: ImageTextEx() to support UTF8 basic characters | 
						
						
							|  | [textures] REVIEWED: GetTextureData() for RPI - requires some work | 
						
						
							|  | [textures] Added new example: text drawing on image | 
						
						
							|  | [text] Corrected issue with ttf font y-offset | 
						
						
							|  | [text] Support SDF font data generation | 
						
						
							|  | [text] ADDED: GenImageFontAtlas() | 
						
						
							|  | [text] ADDED: LoadFontData() to load data from TTF file | 
						
						
							|  | [text] REMOVED: LoadTTF() internal function | 
						
						
							|  | [text] REVIEWED: DrawTextEx() - avoid rendering SPACE character! | 
						
						
							|  | [text] RENAMED: GetDefaultFont() to GetFontDefault() | 
						
						
							|  | [rlgl] ADDED: rlCheckBufferLimit() | 
						
						
							|  | [rlgl] ADDED: LoadShaderCode() | 
						
						
							|  | [rlgl] ADDED: GetMatrixModelview() | 
						
						
							|  | [rlgl] ADDED: SetVrDistortionShader(Shader shader) | 
						
						
							|  | [rlgl] REVIEWED: rlLoadTexture() - added mipmaps support, improved compressed textures loading | 
						
						
							|  | [rlgl] REVIEWED: rlReadTexturePixels() | 
						
						
							|  | [models] Support 4 components mesh.tangent data | 
						
						
							|  | [models] Removed tangents generation from LoadOBJ() | 
						
						
							|  | [models] ADDED: MeshTangents() | 
						
						
							|  | [models] ADDED: MeshBinormals() | 
						
						
							|  | [models] ADDED: ExportMesh() | 
						
						
							|  | [models] ADDED: GetCollisionRayModel() | 
						
						
							|  | [models] RENAMED: CalculateBoundingBox() to MeshBoundingBox() | 
						
						
							|  | [models] REMOVED: GetCollisionRayMesh() - does not consider model transform | 
						
						
							|  | [models] REVIEWED: LoadMesh() - fallback to default cube mesh if loading fails | 
						
						
							|  | [audio] ADDED: Support for MP3 fileformat | 
						
						
							|  | [audio] ADDED: IsAudioStreamPlaying() | 
						
						
							|  | [audio] ADDED: SetAudioStreamVolume() | 
						
						
							|  | [audio] ADDED: SetAudioStreamPitch() | 
						
						
							|  | [utils] Corrected issue with SaveImageAs() | 
						
						
							|  | [utils] RENAMED: SaveImageAs() to ExportImage() | 
						
						
							|  | [utils] REMOVED: rres support - moved to external library (rres.h) | 
						
						
							|  | [shaders] REVIEWED: GLSL 120 shaders | 
						
						
							|  | [raymath] ADDED: Vector3RotateByQuaternion() | 
						
						
							|  | [raymath] REVIEWED: math usage to reduce temp variables | 
						
						
							|  | [raymath] REVIEWED: Avoid pointer-based parameters for API consistency | 
						
						
							|  | [physac] REVIEWED: physac.h timing system | 
						
						
							|  | [examples] Replaced dwarf model by brand new 3d assets: 3d medieval buildings | 
						
						
							|  | [examples] Assets cleaning and some replacements | 
						
						
							|  | [games] ADDED: GGJ18 game - transmission mission | 
						
						
							|  | [games] REVIEWED: Light my Ritual game - improved gameplay drawing | 
						
						
							|  | [*] Updated external libraries to latest version | 
						
						
							|  | [*] Multiple bugs corrected (check github issues) | 
						
						
							|  | 
 | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | Release:     raylib 1.8.0 (Oct 2017) | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | NOTE:  | 
						
						
							|  |   In this release, multiple parts of the library have been reviewed (again) for consistency and simplification.  | 
						
						
							|  |   It exposes more than 30 new functions in comparison with previous version and it improves overall programming experience. | 
						
						
							|  |    | 
						
						
							|  | BIG CHANGES: | 
						
						
							|  |   - New Image generation functions: Gradient, Checked, Noise, Cellular... | 
						
						
							|  |   - New Mesh generation functions: Cube, Sphere, Cylinder, Torus, Knot... | 
						
						
							|  |   - New Shaders and Materials systems to support PBR materials | 
						
						
							|  |   - Custom Android APK build pipeline with simple Makefile | 
						
						
							|  |   - Complete review of rlgl layer functionality | 
						
						
							|  |   - Complete review of raymath functionality | 
						
						
							|  | 
 | 
						
						
							|  | detailed changes: | 
						
						
							|  | [rlgl] RENAMED: rlglLoadTexture() to rlLoadTexture() | 
						
						
							|  | [rlgl] RENAMED: rlglLoadRenderTexture() to rlLoadRenderTexture() | 
						
						
							|  | [rlgl] RENAMED: rlglUpdateTexture() to rlUpdateTexture() | 
						
						
							|  | [rlgl] RENAMED: rlglGenerateMipmaps() to rlGenerateMipmaps() | 
						
						
							|  | [rlgl] RENAMED: rlglReadScreenPixels() to rlReadScreenPixels() | 
						
						
							|  | [rlgl] RENAMED: rlglReadTexturePixels() to rlReadTexturePixels() | 
						
						
							|  | [rlgl] RENAMED: rlglLoadMesh() to rlLoadMesh() | 
						
						
							|  | [rlgl] RENAMED: rlglUpdateMesh() to rlUpdateMesh() | 
						
						
							|  | [rlgl] RENAMED: rlglDrawMesh() to rlDrawMesh() | 
						
						
							|  | [rlgl] RENAMED: rlglUnloadMesh() to rlUnloadMesh() | 
						
						
							|  | [rlgl] RENAMED: rlglUnproject() to rlUnproject() | 
						
						
							|  | [rlgl] RENAMED: LoadCompressedTexture() to LoadTextureCompressed() | 
						
						
							|  | [rlgl] RENAMED: GetDefaultTexture() to GetTextureDefault() | 
						
						
							|  | [rlgl] RENAMED: LoadDefaultShader() to LoadShaderDefault() | 
						
						
							|  | [rlgl] RENAMED: LoadDefaultShaderLocations() to SetShaderDefaultLocations() | 
						
						
							|  | [rlgl] RENAMED: UnloadDefaultShader() to UnLoadShaderDefault() | 
						
						
							|  | [rlgl] ADDED: rlGenMapCubemap(), Generate cubemap texture map from HDR texture | 
						
						
							|  | [rlgl] ADDED: rlGenMapIrradiance(), Generate irradiance texture map | 
						
						
							|  | [rlgl] ADDED: rlGenMapPrefilter(), Generate prefilter texture map | 
						
						
							|  | [rlgl] ADDED: rlGenMapBRDF(), Generate BRDF texture map | 
						
						
							|  | [rlgl] ADDED: GetVrDeviceInfo(), Get VR device information for some standard devices | 
						
						
							|  | [rlgl] REVIEWED: InitVrSimulator(), to accept device parameters as input | 
						
						
							|  | [core] ADDED: SetWindowTitle(), Set title for window (only PLATFORM_DESKTOP) | 
						
						
							|  | [core] ADDED: GetExtension(), Get file extension | 
						
						
							|  | [shapes] REMOVED: DrawRectangleGradient(), replaced by DrawRectangleGradientV() and DrawRectangleGradientH() | 
						
						
							|  | [shapes] ADDED: DrawRectangleGradientV(), Draw a vertical-gradient-filled rectangle | 
						
						
							|  | [shapes] ADDED: DrawRectangleGradientH(), Draw a horizontal-gradient-filled rectangle | 
						
						
							|  | [shapes] ADDED: DrawRectangleGradientEx(), Draw a gradient-filled rectangle with custom vertex colors | 
						
						
							|  | [shapes] ADDED: DrawRectangleT(), Draw rectangle using text character | 
						
						
							|  | [textures] ADDED: SaveImageAs(), Save image as PNG file | 
						
						
							|  | [textures] ADDED: GenImageGradientV(), Generate image: vertical gradient | 
						
						
							|  | [textures] ADDED: GenImageGradientH(), Generate image: horizontal gradient | 
						
						
							|  | [textures] ADDED: GenImageGradientRadial(), Generate image: radial gradient | 
						
						
							|  | [textures] ADDED: GenImageChecked(), Generate image: checked | 
						
						
							|  | [textures] ADDED: GenImageWhiteNoise(), Generate image: white noise | 
						
						
							|  | [textures] ADDED: GenImagePerlinNoise(), Generate image: perlin noise | 
						
						
							|  | [textures] ADDED: GenImageCellular(), Generate image: cellular algorithm. Bigger tileSize means bigger cells | 
						
						
							|  | [textures] ADDED: GenTextureCubemap(), Generate cubemap texture from HDR texture | 
						
						
							|  | [textures] ADDED: GenTextureIrradiance(), Generate irradiance texture using cubemap data | 
						
						
							|  | [textures] ADDED: GenTexturePrefilter(), Generate prefilter texture using cubemap data | 
						
						
							|  | [textures] ADDED: GenTextureBRDF(), Generate BRDF texture using cubemap data | 
						
						
							|  | [models] REMOVED: LoadMeshEx(), Mesh struct variables can be directly accessed | 
						
						
							|  | [models] REMOVED: UpdateMesh(), very ineficient | 
						
						
							|  | [models] REMOVED: LoadHeightmap(), use GenMeshHeightmap() and LoadModelFromMesh() | 
						
						
							|  | [models] REMOVED: LoadCubicmap(), use GenMeshCubicmap() and LoadModelFromMesh() | 
						
						
							|  | [models] RENAMED: LoadDefaultMaterial() to LoadMaterialDefault() | 
						
						
							|  | [models] ADDED: GenMeshPlane(), Generate plane mesh (with subdivisions) | 
						
						
							|  | [models] ADDED: GenMeshCube(), Generate cuboid mesh | 
						
						
							|  | [models] ADDED: GenMeshSphere(), Generate sphere mesh (standard sphere) | 
						
						
							|  | [models] ADDED: GenMeshHemiSphere(), Generate half-sphere mesh (no bottom cap) | 
						
						
							|  | [models] ADDED: GenMeshCylinder(), Generate cylinder mesh | 
						
						
							|  | [models] ADDED: GenMeshTorus(), Generate torus mesh | 
						
						
							|  | [models] ADDED: GenMeshKnot(), Generate trefoil knot mesh | 
						
						
							|  | [models] ADDED: GenMeshHeightmap(), Generate heightmap mesh from image data | 
						
						
							|  | [models] ADDED: GenMeshCubicmap(), Generate cubes-based map mesh from image data | 
						
						
							|  | [raymath] REVIEWED: full Matrix functionality to align with GLM in usage | 
						
						
							|  | [raymath] RENAMED: Vector3 functions for consistency: Vector*() renamed to Vector3*() | 
						
						
							|  | [build] Integrate Android APK building into examples Makefile | 
						
						
							|  | [build] Integrate Android APK building into templates Makefiles | 
						
						
							|  | [build] Improved Visual Studio 2015 project, folders, references... | 
						
						
							|  | [templates] Reviewed the full pack to support Android building | 
						
						
							|  | [examples] Reviewed full collection to adapt to raylib changes | 
						
						
							|  | [examples] [textures] ADDED: textures_image_generation | 
						
						
							|  | [examples] [models] ADDED: models_mesh_generation | 
						
						
							|  | [examples] [models] ADDED: models_material_pbr | 
						
						
							|  | [examples] [models] ADDED: models_skybox | 
						
						
							|  | [examples] [models] ADDED: models_yaw_pitch_roll | 
						
						
							|  | [examples] [others] REVIEWED: rlgl_standalone | 
						
						
							|  | [examples] [others] REVIEWED: audio_standalone | 
						
						
							|  | [github] Moved raylib webpage to own repo: github.com/raysan5/raylib.com | 
						
						
							|  | [games] Reviewed game: Koala Seasons | 
						
						
							|  | [*] Updated STB libraries to latest version | 
						
						
							|  | [*] Multiple bugs corrected (check github issues) | 
						
						
							|  | 
 | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | Release:     raylib 1.7.0 (20 May 2017) | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | NOTE:  | 
						
						
							|  |   In this new raylib release, multiple parts of the library have been reviewed for consistency and simplification.  | 
						
						
							|  |   It exposes almost 300 functions, around 30 new functions in comparison with previous version and, again,  | 
						
						
							|  |   it sets a stepping stone towards raylib future. | 
						
						
							|  | 
 | 
						
						
							|  | BIG changes: | 
						
						
							|  |   - More than 30 new functions added to the library, check list below. | 
						
						
							|  |   - Support of configuration flags on every raylib module, to customize library build. | 
						
						
							|  |   - Improved build system for all supported platforms with a unique Makefile to compile sources. | 
						
						
							|  |   - Complete review of examples and sample games, added new sample material. | 
						
						
							|  |   - Support automatic GIF recording of current window, just pressing Ctrl+F12 | 
						
						
							|  |   - Improved library consistency and organization in general. | 
						
						
							|  | 
 | 
						
						
							|  | other changes: | 
						
						
							|  | [core] Added function: SetWindowIcon(), to setup icon by code | 
						
						
							|  | [core] Added function: SetWindowMonitor(), to set current display monitor | 
						
						
							|  | [core] Added function: SetWindowMinSize(), to set minimum resize size | 
						
						
							|  | [core] Added function: TakeScreenshot(), made public to API (also launched internally with F12) | 
						
						
							|  | [core] Added function: GetDirectoryPath(), get directory for a given fileName (with path) | 
						
						
							|  | [core] Added function: GetWorkingDirectory(), get current working directory | 
						
						
							|  | [core] Added function: ChangeDirectory(), change working directory | 
						
						
							|  | [core] Added function: TraceLog(), made public to API | 
						
						
							|  | [core] Improved timing system to avoid busy wait loop on frame sync: Wait() | 
						
						
							|  | [core] Added support for gamepad on HTML5 platform | 
						
						
							|  | [core] Support mouse lock, useful for camera system | 
						
						
							|  | [core] Review functions description comments | 
						
						
							|  | [rlgl] Removed function: GetStandardShader(), removed internal standard shader | 
						
						
							|  | [rlgl] Removed function: CreateLight(), removed internal lighting system | 
						
						
							|  | [rlgl] Removed function: DestroyLight(), removed internal lighting system | 
						
						
							|  | [rlgl] Removed function: InitVrDevice(), removed VR device render, using simulator | 
						
						
							|  | [rlgl] Removed function: CloseVrDevice(), removed VR device render, using simulator | 
						
						
							|  | [rlgl] Removed function: IsVrDeviceReady(), removed VR device render, using simulator | 
						
						
							|  | [rlgl] Removed function: IsVrSimulator(), removed VR device render, using simulator | 
						
						
							|  | [rlgl] Added function: InitVrSimulator(), init VR simulator for selected device | 
						
						
							|  | [rlgl] Added function: CloseVrSimulator(), close VR simulator for current device | 
						
						
							|  | [rlgl] Added function: IsVrSimulatorReady(), detect if VR device is ready | 
						
						
							|  | [rlgl] Added function: BeginVrDrawing(), begin VR simulator stereo rendering | 
						
						
							|  | [rlgl] Added function: EndVrDrawing(), end VR simulator stereo rendering | 
						
						
							|  | [rlgl] Renamed function: ReadTextFile() to LoadText() and exposed to API | 
						
						
							|  | [rlgl] Removed internal lighting system and standard shader, moved to example | 
						
						
							|  | [rlgl] Removed Oculus Rift support, moved to oculus_rift example | 
						
						
							|  | [rlgl] Removed VR device support and replaced by VR simulator | 
						
						
							|  | [shapes] Added function: DrawLineEx(), draw line with QUADS, supports custom line thick | 
						
						
							|  | [shapes] Added function: DrawLineBezier(), draw a line using cubic-bezier curves in-out | 
						
						
							|  | [shapes] Added function: DrawRectanglePro(), draw a color-filled rectangle with pro parameters | 
						
						
							|  | [textures] Removed function: LoadImageFromRES(), redesigning custom RRES fileformat | 
						
						
							|  | [textures] Removed function: LoadTextureFromRES(), redesigning custom RRES fileformat | 
						
						
							|  | [textures] Removed function: LoadTextureEx(), use instead Image -> LoadImagePro(), LoadImageEx() | 
						
						
							|  | [textures] Added function: LoadImagePro()), load image from raw data with parameters | 
						
						
							|  | [textures] Review TraceLog() message when image file not found | 
						
						
							|  | [text] Renamed function: LoadSpriteFontTTF() to LoadSpriteFontEx(), for consistency | 
						
						
							|  | [text] Removed rBMF fileformat support, replaced by .png | 
						
						
							|  | [text] Refactor SpriteFont struct (better for rres custom fileformat) | 
						
						
							|  | [text] Renamed some variables for consistency | 
						
						
							|  | [models] Added function: LoadMesh(), load mesh from file | 
						
						
							|  | [models] Added function: LoadMeshEx(), load mesh from vertex data | 
						
						
							|  | [models] Added function: UnloadMesh(), unload mesh from memory (RAM and/or VRAM) | 
						
						
							|  | [models] Added function: GetCollisionRayMesh(), get collision info between ray and mesh | 
						
						
							|  | [models] Added function: GetCollisionRayTriangle(), get collision info between ray and triangle | 
						
						
							|  | [models] Added function: GetCollisionRayGround(), get collision info between ray and ground plane | 
						
						
							|  | [models] Renamed function: LoadModelEx() to LoadModelFromMesh() | 
						
						
							|  | [models] Removed function: DrawLight(), removed internal lighting system | 
						
						
							|  | [models] Renamed function: LoadModelEx() to LoadModelFromMesh() for consistency | 
						
						
							|  | [models] Removed function: LoadStandardMaterial(), removed internal standard shader | 
						
						
							|  | [models] Removed function: LoadModelFromRES(), redesigning custom RRES fileformat | 
						
						
							|  | [models] Renamed multiple variables for consistency | 
						
						
							|  | [audio] Added function: SetMasterVolume(), define listener volume | 
						
						
							|  | [audio] Added function: ResumeSound(), resume a paused sound | 
						
						
							|  | [audio] Added function: SetMusicLoopCount(), set number of repeats for a music | 
						
						
							|  | [audio] Added function: LoadWaveEx(), load wave from raw audio data | 
						
						
							|  | [audio] Added function: WaveCrop(), crop wave audio data | 
						
						
							|  | [audio] Added function: WaveFormat(), format audio data | 
						
						
							|  | [audio] Removed function: LoadSoundFromRES(), redesigning custom RRES fileformat | 
						
						
							|  | [audio] Added support for 32bit audio samples | 
						
						
							|  | [audio] Preliminary support for multichannel, limited to mono and stereo | 
						
						
							|  | [audio] Make sure buffers are ready for update: UpdateMusicStream() | 
						
						
							|  | [utils] Replaced function: GetExtension() by IsFileExtension() and made public to API | 
						
						
							|  | [utils] Unified function: TraceLog() between Android and other platforms | 
						
						
							|  | [utils] Removed internal function: GetNextPOT(), simplified implementation | 
						
						
							|  | [raymath] Added function: QuaternionToEuler(), to work with Euler angles | 
						
						
							|  | [raymath] Added function: QuaternionFromEuler(), to work with Euler angles | 
						
						
							|  | [raymath] Added multiple Vector2 math functions | 
						
						
							|  | [build] Integrate Android source building into Makefile | 
						
						
							|  | [example] Added example: shapes_lines_bezier | 
						
						
							|  | [example] Added example: text_input_box | 
						
						
							|  | [github] Moved gh-pages branch to master/docs | 
						
						
							|  | [github] Moved rlua.h and Lua examples to own repo: raylib-lua | 
						
						
							|  | [games] Reviewed full games collection | 
						
						
							|  | [games] New game added to collection: Koala Seasons | 
						
						
							|  | [*] Reviewed and improved examples collection (new assets) | 
						
						
							|  | [*] Reorganized library functions, structs, enums | 
						
						
							|  | [*] Updated STB libraries to latest version | 
						
						
							|  | 
 | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | Release:     raylib 1.6.0 (20 November 2016) | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | NOTE:  | 
						
						
							|  |   This new raylib version commemorates raylib 3rd anniversary and represents another complete review of the library.  | 
						
						
							|  |   It includes some interesting new features and is a stepping stone towards raylib future. | 
						
						
							|  | 
 | 
						
						
							|  | HUGE changes: | 
						
						
							|  | [rlua] Lua BINDING: Complete raylib Lua binding, ALL raylib functions ported to Lua plus the +60 code examples. | 
						
						
							|  | [audio] COMPLETE REDESIGN: Improved music support and also raw audio data processing and playing, +20 new functions added. | 
						
						
							|  | [physac] COMPLETE REWRITE: Improved performance, functionality and simplified usage, moved to own repository and added multiple examples! | 
						
						
							|  | 
 | 
						
						
							|  | other changes: | 
						
						
							|  | 
 | 
						
						
							|  | [core] Corrected issue on OSX with HighDPI display | 
						
						
							|  | [core] Added flag to allow resizable window | 
						
						
							|  | [core] Allow no default font loading | 
						
						
							|  | [core] Corrected old issue with mouse buttons on web | 
						
						
							|  | [core] Improved gamepad support, unified across platforms | 
						
						
							|  | [core] Gamepad id functionality: GetGamepadName(), IsGamepadName() | 
						
						
							|  | [core] Gamepad buttons/axis checking functionality: | 
						
						
							|  | [core] Reviewed Android key inputs system, unified with desktop | 
						
						
							|  | [rlgl] Redesigned lighting shader system | 
						
						
							|  | [rlgl] Updated standard shader for better performance | 
						
						
							|  | [rlgl] Support alpha on framebuffer: rlglLoadRenderTexture() | 
						
						
							|  | [rlgl] Reviewed UpdateVrTracking() to update camera | 
						
						
							|  | [rlgl] Added IsVrSimulator() to check for VR simulator | 
						
						
							|  | [shapes] Corrected issue on DrawPolyEx() | 
						
						
							|  | [textures] Simplified supported image formats support | 
						
						
							|  | [textures] Improved text drawing within an image: ImageDrawText() | 
						
						
							|  | [textures] Support image alpha mixing: ImageAlphaMask() | 
						
						
							|  | [textures] Support textures filtering: SetTextureFilter() | 
						
						
							|  | [textures] Support textures wrap modes: SetTextureWrap() | 
						
						
							|  | [text] Improved TTF spritefont generation: LoadSpriteFontTTF() | 
						
						
							|  | [text] Improved AngelCode fonts support (unordered chars) | 
						
						
							|  | [text] Added TraceLog info on image spritefont loading | 
						
						
							|  | [text] Improved text measurement: MeasureTextEx() | 
						
						
							|  | [models] Improved OBJ loading flexibility | 
						
						
							|  | [models] Reviewed functions: DrawLine3D(), DrawCircle3D() | 
						
						
							|  | [models] Removed function: ResolveCollisionCubicmap() | 
						
						
							|  | [camera] Redesigned camera system and ported to header-only | 
						
						
							|  | [camera] Removed function: UpdateCameraPlayer() | 
						
						
							|  | [gestures] Redesigned gestures module to header-only | 
						
						
							|  | [audio] Simplified Music loading and playing system | 
						
						
							|  | [audio] Added trace on audio device closing | 
						
						
							|  | [audio] Reviewed Wave struct, improved flexibility | 
						
						
							|  | [audio] Support sound data update: UpdateSound() | 
						
						
							|  | [audio] Added support for FLAC audio loading/streaming | 
						
						
							|  | [raygui] Removed raygui from raylib repo (moved to own repo) | 
						
						
							|  | [build] Added OpenAL static library | 
						
						
							|  | [build] Added Visual Studio 2015 projects | 
						
						
							|  | [build] Support shared/dynamic raylib compilation | 
						
						
							|  | [*] Updated LibOVR to SDK version 1.8 | 
						
						
							|  | [*] Updated games to latest raylib version | 
						
						
							|  | [*] Improved examples and added new ones | 
						
						
							|  | [*] Improved Android support | 
						
						
							|  | 
 | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | Release:     raylib 1.5.0 (18 July 2016) | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | NOTE:  | 
						
						
							|  |   Probably this new version is the biggest boost of the library ever, lots of parts of the library have been redesigned,  | 
						
						
							|  |   lots of bugs have been solved and some **AMAZING** new features have been added. | 
						
						
							|  | 
 | 
						
						
							|  | HUGE changes: | 
						
						
							|  | [rlgl] OCULUS RIFT CV1: Added support for VR, not oly Oculus Rift CV1 but also stereo rendering simulator (multiplatform). | 
						
						
							|  | [rlgl] MATERIALS SYSTEM: Added support for Materials (.mtl) and multiple material properties: diffuse, specular, normal. | 
						
						
							|  | [rlgl] LIGHTING SYSTEM: Added support for up to 8 lights of 3 different types: Omni, Directional and Spot. | 
						
						
							|  | [physac] REDESIGNED: Improved performance and simplified usage, physic objects now are managed internally in a second thread! | 
						
						
							|  | [audio] CHIPTUNES: Added support for module audio music (.xm, .mod) loading and playing. Multiple mixing channels supported. | 
						
						
							|  | 
 | 
						
						
							|  | other changes: | 
						
						
							|  | 
 | 
						
						
							|  | [core] Review Android button inputs | 
						
						
							|  | [core] Support Android internal data storage | 
						
						
							|  | [core] Renamed WorldToScreen() to GetWorldToScreen() | 
						
						
							|  | [core] Removed function SetCustomCursor() | 
						
						
							|  | [core] Removed functions BeginDrawingEx(), BeginDrawingPro() | 
						
						
							|  | [core] Replaced functions InitDisplay() + InitGraphics() with: InitGraphicsDevice() | 
						
						
							|  | [core] Added support for field-of-view Y (fovy) on 3d Camera | 
						
						
							|  | [core] Added 2D camera mode functions: Begin2dMode() - End2dMode() | 
						
						
							|  | [core] Translate mouse inputs to Android touch/gestures internally | 
						
						
							|  | [core] Translate mouse inputs as touch inputs in HTML5 | 
						
						
							|  | [core] Improved function GetKeyPressed() to support multiple keys (including function keys) | 
						
						
							|  | [core] Improved gamepad support, specially for RaspberryPi (including multiple gamepads support) | 
						
						
							|  | [rlgl] Support stereo rendering simulation (duplicate draw calls by viewport, optimized) | 
						
						
							|  | [rlgl] Added distortion shader (embeded) to support custom VR simulator: shader_distortion.h | 
						
						
							|  | [rlgl] Added support for OpenGL 2.1 on desktop | 
						
						
							|  | [rlgl] Improved 2D vs 3D drawing system (lines, triangles, quads) | 
						
						
							|  | [rlgl] Improved DXT-ETC1 support on HTML5 | 
						
						
							|  | [rlgl] Review function: rlglUnproject() | 
						
						
							|  | [rlgl] Removed function: rlglInitGraphics(), integrated into rlglInit() | 
						
						
							|  | [rlgl] Updated Mesh and Shader structs | 
						
						
							|  | [rlgl] Simplified internal (default) dynamic buffers | 
						
						
							|  | [rlgl] Added support for indexed and dynamic mesh data | 
						
						
							|  | [rlgl] Set fixed vertex attribs location points | 
						
						
							|  | [rlgl] Improved mesh data loading support | 
						
						
							|  | [rlgl] Added standard shader (embeded) to support materials and lighting: shader_standard.h | 
						
						
							|  | [rlgl] Added light functions: CreateLight(), DestroyLight() | 
						
						
							|  | [rlgl] Added wire mode functions: rlDisableWireMode(), rlEnableWireMode() | 
						
						
							|  | [rlgl] Review function consistency, added: rlglLoadMesh(), rlglUpdateMesh(), rlglDrawMesh(), rlglUnloadMesh() | 
						
						
							|  | [rlgl] Replaced SetCustomShader() by: BeginShaderMode() - EndShaderMode() | 
						
						
							|  | [rlgl] Replaced SetBlendMode() by: BeginBlendMode() - EndBlendMode() | 
						
						
							|  | [rlgl] Added functions to customize internal matrices: SetMatrixProjection(), SetMatrixModelview() | 
						
						
							|  | [rlgl] Unified internal shaders to only one default shader | 
						
						
							|  | [rlgl] Added support for render to texture (RenderTexture2D):  | 
						
						
							|  |           LoadRenderTexture() - UnloadRenderTexture() | 
						
						
							|  |           BeginTextureMode() - EndTextureMode() | 
						
						
							|  | [rlgl] Removed SetShaderMap*() functions | 
						
						
							|  | [rlgl] Redesigned default buffers usage functions: | 
						
						
							|  |           LoadDefaultBuffers() - UnloadDefaultBuffers() | 
						
						
							|  |           UpdateDefaultBuffers() - DrawDefaultBuffers() | 
						
						
							|  | [shapes] Corrected bug on GetCollisionRec() | 
						
						
							|  | [textures] Added support for Nearest-Neighbor image scaling | 
						
						
							|  | [textures] Added functions to draw text on image: ImageDrawText(), ImageDrawTextEx() | 
						
						
							|  | [text] Reorganized internal functions: Added LoadImageFont() | 
						
						
							|  | [text] Security check for unsupported BMFonts | 
						
						
							|  | [models] Split mesh creation from model loading on heightmap and cubicmap | 
						
						
							|  | [models] Updated BoundingBox collision detections | 
						
						
							|  | [models] Added color parameter to DrawBoundigBox() | 
						
						
							|  | [models] Removed function: DrawQuad() | 
						
						
							|  | [models] Removed function: SetModelTexture() | 
						
						
							|  | [models] Redesigned DrawPlane() to use RL_TRIANGLES | 
						
						
							|  | [models] Redesigned DrawRectangleV() to use RL_TRIANGLES | 
						
						
							|  | [models] Redesign to accomodate new materials system: LoadMaterial() | 
						
						
							|  | [models] Added material functions: LoadDefaultMaterial(), LoadStandardMaterial() | 
						
						
							|  | [models] Added MTL material loading support: LoadMTL() | 
						
						
							|  | [models] Added function: DrawLight() | 
						
						
							|  | [audio] Renamed SoundIsPlaying() to IsSoundPlaying() | 
						
						
							|  | [audio] Renamed MusicIsPlaying() to IsMusicPlaying() | 
						
						
							|  | [audio] Support multiple Music streams (indexed) | 
						
						
							|  | [audio] Support multiple mixing channels | 
						
						
							|  | [gestures] Improved and reviewed gestures system | 
						
						
							|  | [raymath] Added QuaternionInvert() | 
						
						
							|  | [raymath] Removed function: PrintMatrix() | 
						
						
							|  | [raygui] Ported to header-only library (https://github.com/raysan5/raygui) | 
						
						
							|  | [shaders] Added depth drawing shader (requires a depth texture) | 
						
						
							|  | [shaders] Reviewed included shaders and added comments | 
						
						
							|  | [OpenAL Soft] Updated to latest version (1.17.2) | 
						
						
							|  | [GLFW3] Updated to latest version (3.2) | 
						
						
							|  | [stb] Updated to latest headers versions | 
						
						
							|  | [GLAD] Converted to header only library and simplified to only used extensions | 
						
						
							|  | [*] Reorganize library folders: external libs moved to src/external folder | 
						
						
							|  | [*] Reorganize src folder for Android library | 
						
						
							|  | [*] Review external dependencies usage | 
						
						
							|  | [*] Improved Linux and OSX build systems | 
						
						
							|  | [*] Lots of tweaks and bugs corrected all around | 
						
						
							|  | 
 | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | Release:     raylib 1.4.0 (22 February 2016) | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | NOTE:  | 
						
						
							|  |   This version supposed another big improvement for raylib, including new modules and new features. | 
						
						
							|  |   More than 30 new functions have been added to previous raylib version. | 
						
						
							|  |   Around 8 new examples and +10 new game samples have been added. | 
						
						
							|  | 
 | 
						
						
							|  | BIG changes: | 
						
						
							|  | [textures] IMAGE MANIPULATION: Functions to crop, resize, colorize, flip, dither and even draw image-to-image or text-to-image. | 
						
						
							|  | [text] SPRITEFONT SUPPORT: Added support for AngelCode fonts (.fnt) and TrueType fonts (.ttf). | 
						
						
							|  | [gestures] REDESIGN: Gestures system simplified and prepared to process generic touch events, including mouse events (multiplatform). | 
						
						
							|  | [physac] NEW MODULE: Basic 2D physics support, use colliders and rigidbodies; apply forces to physic objects. | 
						
						
							|  | 
 | 
						
						
							|  | other changes: | 
						
						
							|  | 
 | 
						
						
							|  | [rlgl] Removed GLEW library dependency, now using GLAD | 
						
						
							|  | [rlgl] Implemented alternative to glGetTexImage() on OpenGL ES | 
						
						
							|  | [rlgl] Using depth data on batch drawing | 
						
						
							|  | [rlgl] Reviewed glReadPixels() function | 
						
						
							|  | [core][rlgl] Reviewed raycast system, now 3D picking works | 
						
						
							|  | [core] Android: Reviewed Android App cycle, paused if inactive | 
						
						
							|  | [shaders] Implemented Blinn-Phong lighting shading model | 
						
						
							|  | [textures] Implemented Floyd-Steinberg dithering - ImageDither() | 
						
						
							|  | [text] Added line-break support to DrawText() | 
						
						
							|  | [text] Added TrueType Fonts support (using stb_truetype) | 
						
						
							|  | [models] Implement function: CalculateBoundingBox(Mesh mesh) | 
						
						
							|  | [models] Added functions to check Ray collisions | 
						
						
							|  | [models] Improve map resolution control on LoadHeightmap() | 
						
						
							|  | [camera] Corrected small-glitch on zoom-in with mouse-wheel | 
						
						
							|  | [gestures] Implemented SetGesturesEnabled() to enable only some gestures | 
						
						
							|  | [gestures] Implemented GetElapsedTime() on Windows system | 
						
						
							|  | [gestures] Support mouse gestures for desktop platforms | 
						
						
							|  | [raymath] Complete review of the module and converted to header-only | 
						
						
							|  | [easings] Added new module for easing animations | 
						
						
							|  | [stb] Updated to latest headers versions | 
						
						
							|  | [*] Lots of tweaks around | 
						
						
							|  | 
 | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | Release:     raylib 1.3.0 (01 September 2015) | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | NOTE:  | 
						
						
							|  |   This version supposed a big boost for raylib, new modules have been added with lots of features. | 
						
						
							|  |   Most of the modules have been completely reviewed to accomodate to the new features. | 
						
						
							|  |   Over 50 new functions have been added to previous raylib version. | 
						
						
							|  |   Most of the examples have been redone and +10 new advanced examples have been added. | 
						
						
							|  | 
 | 
						
						
							|  | BIG changes: | 
						
						
							|  | [rlgl] SHADERS: Support for model shaders and postprocessing shaders (multiple functions) | 
						
						
							|  | [textures] FORMATS: Support for multiple internal formats, including compressed formats | 
						
						
							|  | [camera] NEW MODULE: Set of cameras for 3d view: Free, Orbital, 1st person, 3rd person | 
						
						
							|  | [gestures] NEW MODULE: Gestures system for Android and HTML5 platforms | 
						
						
							|  | [raygui] NEW MODULE: Set of IMGUI elements for tools development (experimental) | 
						
						
							|  | 
 | 
						
						
							|  | other changes: | 
						
						
							|  | 
 | 
						
						
							|  | [rlgl] Added check for OpenGL supported extensions | 
						
						
							|  | [rlgl] Added function SetBlenMode() to select some predefined blending modes  | 
						
						
							|  | [core] Added support for drop&drag of external files into running program | 
						
						
							|  | [core] Added functions ShowCursor(), HideCursor(), IsCursorHidden() | 
						
						
							|  | [core] Renamed function SetFlags() to SetConfigFlags() | 
						
						
							|  | [shapes] Simplified some functions to improve performance | 
						
						
							|  | [textures] Review of Image struct to support multiple data formats | 
						
						
							|  | [textures] Added function LoadImageEx()  | 
						
						
							|  | [textures] Added function LoadImageRaw() | 
						
						
							|  | [textures] Added function LoadTextureEx() | 
						
						
							|  | [textures] Simplified function parameters LoadTextureFromImage() | 
						
						
							|  | [textures] Added function GetImageData() | 
						
						
							|  | [textures] Added function GetTextureData() | 
						
						
							|  | [textures] Renamed function ConvertToPOT() to ImageConvertToPOT() | 
						
						
							|  | [textures] Added function ImageConvertFormat() | 
						
						
							|  | [textures] Added function GenTextureMipmaps() | 
						
						
							|  | [text] Added support for Latin-1 Extended characters for default font | 
						
						
							|  | [text] Redesigned SpriteFont struct, replaced Character struct by Rectangle | 
						
						
							|  | [text] Removed function GetFontBaseSize(), use directly spriteFont.size | 
						
						
							|  | [models] Review of struct: Model (added shaders support) | 
						
						
							|  | [models] Added 3d collision functions (sphere vs sphere vs box vs box) | 
						
						
							|  | [models] Added function DrawCubeTexture() | 
						
						
							|  | [models] Added function DrawQuad() | 
						
						
							|  | [models] Added function DrawRay() | 
						
						
							|  | [models] Simplified funtion DrawPlane() | 
						
						
							|  | [models] Removed function DrawPlaneEx() | 
						
						
							|  | [models] Simplified funtion DrawGizmo() | 
						
						
							|  | [models] Removed function DrawGizmoEx() | 
						
						
							|  | [models] Added function LoadModelEx() | 
						
						
							|  | [models] Review of function LoadCubicMap() | 
						
						
							|  | [models] Added function ResolveCollisionCubicmap() | 
						
						
							|  | [audio] Decopupled from raylib, now this module can be used as standalone | 
						
						
							|  | [audio] Added function UpdateMusicStream() | 
						
						
							|  | [raymath] Complete review of the module | 
						
						
							|  | [stb] Updated to latest headers versions | 
						
						
							|  | [*] Lots of tweaks around | 
						
						
							|  | 
 | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | Release:     raylib 1.2.2 (31 December 2014) | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | [*] Added support for HTML5 compiling (emscripten, asm.js) | 
						
						
							|  | [core] Corrected bug on input handling (keyboard and mouse) | 
						
						
							|  | [textures] Renamed function CreateTexture() to LoadTextureFromImage() | 
						
						
							|  | [textures] Added function ConvertToPOT() | 
						
						
							|  | [rlgl] Added support for color tint on models on GL 3.3+ and ES2 | 
						
						
							|  | [rlgl] Added support for normals on models | 
						
						
							|  | [models] Corrected bug on DrawBillboard() | 
						
						
							|  | [models] Corrected bug on DrawHeightmap() | 
						
						
							|  | [models] Renamed LoadCubesmap() to LoadCubicmap() | 
						
						
							|  | [audio] Added function LoadSoundFromWave() | 
						
						
							|  | [makefile] Added support for Linux and OSX compiling | 
						
						
							|  | [stb] Updated to latest headers versions | 
						
						
							|  | [*] Lots of tweaks around | 
						
						
							|  | 
 | 
						
						
							|  | --------------------------------------------------------------- | 
						
						
							|  | Update:     raylib 1.2.1 (17 October 2014) (Small Fixes Update) | 
						
						
							|  | --------------------------------------------------------------- | 
						
						
							|  | [core] Added function SetupFlags() to preconfigure raylib Window | 
						
						
							|  | [core] Corrected bug on fullscreen mode | 
						
						
							|  | [rlgl] rlglDrawmodel() - Added rotation on Y axis | 
						
						
							|  | [text] MeasureTextEx() - Corrected bug on measures for default font | 
						
						
							|  | 
 | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | Release:     raylib 1.2 (16 September 2014) | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | NOTE:  | 
						
						
							|  |   This version supposed a complete redesign of the [core] module to support Android and Raspberry Pi. | 
						
						
							|  |   Multiples modules have also been tweaked to accomodate to the new platforms, specially [rlgl] | 
						
						
							|  | 
 | 
						
						
							|  | [core] Added multiple platforms support: Android and Raspberry Pi | 
						
						
							|  | [core] InitWindow() - Complete rewrite and split for Android | 
						
						
							|  | [core] InitDisplay() - Internal function added to calculate proper display size | 
						
						
							|  | [core] InitGraphics() - Internal function where OpenGL graphics are initialized | 
						
						
							|  | [core] Complete refactoring of input functions to accomodate to new platforms | 
						
						
							|  | [core] Mouse and Keyboard raw data reading functions added for Raspberry Pi | 
						
						
							|  | [core] GetTouchX(), GetTouchY() - Added for Android | 
						
						
							|  | [core] Added Android callbacks to process inputs and Android activity commands | 
						
						
							|  | [rlgl] Adjusted buffers depending on platform | 
						
						
							|  | [rlgl] Added security check in case deployed vertex excess buffer size | 
						
						
							|  | [rlgl] Adjusted indices type depending on GL version (int or short) | 
						
						
							|  | [rlgl] Fallback to VBOs only usage if VAOs not supported on ES2 | 
						
						
							|  | [rlgl] rlglLoadModel() stores vbo ids on new Model struct | 
						
						
							|  | [textures] Added support for PKM files (ETC1, ETC2 compression support) | 
						
						
							|  | [shapes] DrawRectangleV() - Modified, depending on OGL version uses TRIANGLES or QUADS | 
						
						
							|  | [text] LoadSpriteFont() - Modified to use LoadImage() | 
						
						
							|  | [models] Minor changes on models loading to accomodate to new Model struct | 
						
						
							|  | [audio] PauseMusicStream(), ResumeMusicStream() - Added | 
						
						
							|  | [audio] Reduced music buffer size to avoid stalls on Raspberry Pi | 
						
						
							|  | [src] Added makefile for Windows and RPI | 
						
						
							|  | [src] Added resources file (raylib icon and executable info) | 
						
						
							|  | [examples] Added makefile for Windows and RPI | 
						
						
							|  | [examples] Renamed and merged with test examples for coherence with module names | 
						
						
							|  | [templates] Added multiple templates to be use as a base-code for games | 
						
						
							|  | 
 | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | Release:     raylib 1.1.1 (22 July 2014) | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | [core] ShowLogo() - To enable raylib logo animation at startup | 
						
						
							|  | [core] Corrected bug with window resizing | 
						
						
							|  | [rlgl] Redefined colors arrays to use byte instead of float | 
						
						
							|  | [rlgl] Removed double buffer system (no performance improvement) | 
						
						
							|  | [rlgl] rlglDraw() - Reorganized buffers drawing order | 
						
						
							|  | [rlgl] Corrected bug on screen resizing | 
						
						
							|  | [shapes] DrawRectangle() - Use QUADS instead of TRIANGLES | 
						
						
							|  | [models] DrawSphereWires() - Corrected some issues | 
						
						
							|  | [models] LoadOBJ() - Redesigned to support multiple meshes | 
						
						
							|  | [models] LoadCubesMap() - Loading a map as cubes (by pixel color) | 
						
						
							|  | [textures] Added security check if file doesn't exist | 
						
						
							|  | [text] Corrected bug on SpriteFont loading | 
						
						
							|  | [examples] Corrected some 3d examples | 
						
						
							|  | [test] Added cubesmap loading test | 
						
						
							|  | 
 | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | Release:     raylib 1.1.0 (19 April 2014) | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | NOTE:  | 
						
						
							|  |   This version supposed a complete internal redesign of the library to support OpenGL 3.3+ and OpenGL ES 2.0. | 
						
						
							|  |   New module [rlgl] has been added to 'translate' immediate mode style functions (i.e. rlVertex3f()) to GL 1.1, 3.3+ or ES2. | 
						
						
							|  |   Another new module [raymath] has also been added with lot of useful 3D math vector-matrix-quaternion functions. | 
						
						
							|  | 
 | 
						
						
							|  | [rlgl] New module, abstracts OpenGL rendering (multiple versions support) | 
						
						
							|  | [raymath] New module, useful 3D math vector-matrix-quaternion functions | 
						
						
							|  | [core] Adapt all OpenGL code (initialization, drawing) to use [rlgl] | 
						
						
							|  | [shapes] Rewrite all shapes drawing functions to use [rlgl] | 
						
						
							|  | [textures] Adapt texture GPU loading to use [rlgl] | 
						
						
							|  | [textures] Added support for DDS images (compressed and uncompressed) | 
						
						
							|  | [textures] CreateTexture() - Redesigned to add mipmap automatic generation | 
						
						
							|  | [textures] DrawTexturePro() - Redesigned and corrected bugs | 
						
						
							|  | [models] Rewrite all 3d-shapes drawing functions to use [rlgl] | 
						
						
							|  | [models] Adapt model loading and drawing to use [rlgl] | 
						
						
							|  | [models] Model struct updated to include texture id | 
						
						
							|  | [models] SetModelTexture() - Added, link a texture to a model | 
						
						
							|  | [models] DrawModelEx() - Redesigned with extended parameters | 
						
						
							|  | [audio] Added music streaming support (OGG files) | 
						
						
							|  | [audio] Added support for OGG files as Sound | 
						
						
							|  | [audio] PlayMusicStream() - Added, open a new music stream and play it | 
						
						
							|  | [audio] StopMusicStream() - Added, stop music stream playing and close stream | 
						
						
							|  | [audio] PauseMusicStream() - Added, pause music stream playing | 
						
						
							|  | [audio] MusicIsPlaying() - Added, to check if music is playing | 
						
						
							|  | [audio] SetMusicVolume() - Added, set volume for music | 
						
						
							|  | [audio] GetMusicTimeLength() - Added, get current music time length (in seconds) | 
						
						
							|  | [audio] GetMusicTimePlayed() - Added, get current music time played (in seconds) | 
						
						
							|  | [utils] Added log tracing functionality - TraceLog(), TraceLogOpen(), TraceLogClose() | 
						
						
							|  | [*] Log tracing messages all around the code | 
						
						
							|  | 
 | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | Release:     raylib 1.0.6 (16 March 2014) | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | [core] Removed unused lighting-system code | 
						
						
							|  | [core] Removed SetPerspective() function, calculated directly | 
						
						
							|  | [core] Unload and reload default font on fullscreen toggle | 
						
						
							|  | [core] Corrected bug gamepad buttons checking if no gamepad available  | 
						
						
							|  | [texture] DrawTextureV() - Added, to draw using Vector2 for position | 
						
						
							|  | [texture] LoadTexture() - Redesigned, now uses LoadImage() + CreateTexture() | 
						
						
							|  | [text] FormatText() - Corrected memory leak bug | 
						
						
							|  | [models] Added Matrix struct and related functions | 
						
						
							|  | [models] DrawBillboard() - Reviewed, now it works! | 
						
						
							|  | [models] DrawBillboardRec() - Reviewed, now it works! | 
						
						
							|  | [tests] Added folder with multiple tests for new functions | 
						
						
							|  | 
 | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | Update:     raylib 1.0.5 (28 January 2014) | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | [audio] LoadSound() - Corrected a bug, WAV file was not closed! | 
						
						
							|  | [core] GetMouseWheelMove() - Added, check mouse wheel Y movement | 
						
						
							|  | [texture] CreateTexture2D() renamed to CreateTexture() | 
						
						
							|  | [models] LoadHeightmap() - Added, Heightmap can be loaded as a Model | 
						
						
							|  | [tool] rREM updated, now supports (partially) drag and drop of files  | 
						
						
							|  | 
 | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | Release:     raylib 1.0.4 (23 January 2014) | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | [tool] Published a first alpha version of rREM tool (raylib Resource Embedder) | 
						
						
							|  | [core] GetRandomValue() - Bug corrected, now works right | 
						
						
							|  | [core] Fade() - Added, fades a color to an alpha percentadge | 
						
						
							|  | [core] WriteBitmap() - Moved to new module: utils.c, not used anymore | 
						
						
							|  | [core] TakeScreenshot() - Now uses WritePNG() (utils.c) | 
						
						
							|  | [utils] New module created with utility functions | 
						
						
							|  | [utils] WritePNG() - Write a PNG file (used by TakeScreenshot() on core) | 
						
						
							|  | [utils] DecompressData() - Added, used for rRES resource data decompresion | 
						
						
							|  | [textures] LoadImageFromRES() - Added, load an image from a rRES resource file | 
						
						
							|  | [textures] LoadTextureFromRES() - Added, load a texture from a rRES resource file | 
						
						
							|  | [audio] LoadSoundFromRES() - Added, load a sound from a rRES resource file | 
						
						
							|  | [audio] IsPlaying() - Added, check if a sound is currently playing | 
						
						
							|  | [audio] SetVolume() - Added, set the volume for a sound | 
						
						
							|  | [audio] SetPitch() - Added, set the pitch for a sound | 
						
						
							|  | [examples] ex06a_color_select completed | 
						
						
							|  | [examples] ex06b_logo_anim completed | 
						
						
							|  | [examples] ex06c_font select completed | 
						
						
							|  | 
 | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | Release:     raylib 1.0.3 (19 December 2013) | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | [fonts] Added 8 rBMF free fonts to be used on projects! | 
						
						
							|  | [text] LoadSpriteFont() - Now supports rBMF file loading (raylib Bitmap Font) | 
						
						
							|  | [examples] ex05a_sprite_fonts completed | 
						
						
							|  | [examples] ex05b_rbmf_fonts completed | 
						
						
							|  | [core] InitWindowEx() - InitWindow with extended parameters, resizing option and custom cursor! | 
						
						
							|  | [core] GetRandomValue() - Added, returns a random value within a range (int) | 
						
						
							|  | [core] SetExitKey() - Added, sets a key to exit program (default is ESC) | 
						
						
							|  | [core] Custom cursor not drawn when mouse out of screen | 
						
						
							|  | [shapes] CheckCollisionPointRec() - Added, check collision between point and rectangle | 
						
						
							|  | [shapes] CheckCollisionPointCircle() - Added, check collision between point and circle | 
						
						
							|  | [shapes] CheckCollisionPointTriangle() - Added, check collision between point and triangle | 
						
						
							|  | [shapes] DrawPoly() - Added, draw regular polygons of n sides, rotation can be defined! | 
						
						
							|  | 
 | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | Release:     raylib 1.0.2 (1 December 2013) | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | [text] GetDefaultFont() - Added, get default SpriteFont to be used on DrawTextEx() | 
						
						
							|  | [shapes] CheckCollisionRecs() - Added, check collision between rectangles | 
						
						
							|  | [shapes] CheckCollisionCircles() - Added, check collision between circles | 
						
						
							|  | [shapes] CheckCollisionCircleRec() - Added, check collision circle-rectangle | 
						
						
							|  | [shapes] GetCollisionRec() - Added, get collision rectangle | 
						
						
							|  | [textures] CreateTexture2D() - Added, create Texture2D from Image data | 
						
						
							|  | [audio] Fixed WAV loading function, now audio works! | 
						
						
							|  | 
 | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | Update:     raylib 1.0.1 (28 November 2013) | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | [text] DrawText() - Removed spacing parameter | 
						
						
							|  | [text] MeasureText() - Removed spacing parameter | 
						
						
							|  | [text] DrawFps() - Renamed to DrawFPS() for coherence with similar function | 
						
						
							|  | [core] IsKeyPressed() - Change functionality, check if key pressed once | 
						
						
							|  | [core] IsKeyDown() - Added, check if key is being pressed | 
						
						
							|  | [core] IsKeyReleased() - Change functionality, check if key released once | 
						
						
							|  | [core] IsKeyUp() - Added, check if key is being NOT pressed | 
						
						
							|  | [core] IsMouseButtonDown() - Added, check if mouse button is being pressed | 
						
						
							|  | [core] IsMouseButtonPressed() - Change functionality, check if mouse button pressed once | 
						
						
							|  | [core] IsMouseButtonUp() - Added, check if mouse button is NOT being pressed | 
						
						
							|  | [core] IsMouseButtonReleased() - Change functionality, check if mouse button released once | 
						
						
							|  | [textures] DrawTexturePro() - Added, texture drawing with 'pro' parameters | 
						
						
							|  | [examples] Function changes applied to ALL examples | 
						
						
							|  | 
 | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | Release:    raylib 1.0.0 (18 November 2013) | 
						
						
							|  | ----------------------------------------------- | 
						
						
							|  | * Initial version | 
						
						
							|  | * 6 Modules provided: | 
						
						
							|  |     - core:     basic window/context creation functions, input management, timing functions | 
						
						
							|  |     - shapes:   basic shapes drawing functions | 
						
						
							|  |     - textures: image data loading and conversion to OpenGL textures | 
						
						
							|  |     - text:     text drawing, sprite fonts loading, default font loading | 
						
						
							|  |     - models:   basic 3d shapes drawing, OBJ models loading and drawing | 
						
						
							|  |     - audio:    audio device initialization, WAV files loading and playing
 |