1changelog 2--------- 3 4Current Release: raylib 3.7.0 (26 April 2021) 5 6------------------------------------------------------------------------- 7Release: raylib 3.7 (26 April 2021) 8------------------------------------------------------------------------- 9KEY CHANGES: 10 - [rlgl] REDESIGNED: Greater abstraction level, some functionality moved to core module 11 - [rlgl] REVIEWED: Instancing and stereo rendering 12 - [core] REDESIGNED: VR simulator, fbo/shader exposed to user 13 - [utils] ADDED: File access callbacks system 14 - [models] ADDED: glTF animations support (#1551) by @object71 15 - [audio] ADDED: Music streaming support from memory (#1606) by @nezvers 16 - [*] RENAMED: enum types and enum values for consistency 17 18Detailed changes: 19[core] ADDED: LoadVrStereoConfig() 20[core] ADDED: UnloadVrStereoConfig() 21[core] ADDED: BeginVrStereoMode() 22[core] ADDED: EndVrStereoMode() 23[core] ADDED: GetCurrentMonitor() (#1485) by @object71 24[core] ADDED: SetGamepadMappings() (#1506) 25[core] RENAMED: struct Camera: camera.type to camera.projection 26[core] RENAMED: LoadShaderCode() to LoadShaderFromMemory() (#1690) 27[core] RENAMED: SetMatrixProjection() to rlSetMatrixProjection() 28[core] RENAMED: SetMatrixModelview() to rlSetMatrixModelview() 29[core] RENAMED: GetMatrixModelview() to rlGetMatrixModelview() 30[core] RENAMED: GetMatrixProjection() to rlGetMatrixProjection() 31[core] RENAMED: GetShaderDefault() to rlGetShaderDefault() 32[core] RENAMED: GetTextureDefault() to rlGetTextureDefault() 33[core] REMOVED: GetShapesTexture() 34[core] REMOVED: GetShapesTextureRec() 35[core] REMOVED: GetMouseCursor() 36[core] REMOVED: SetTraceLogExit() 37[core] REVIEWED: GetFileName() and GetDirectoryPath() (#1534) by @gilzoide 38[core] REVIEWED: Wait() to support FreeBSD (#1618) 39[core] REVIEWED: HighDPI support on macOS retina (#1510) 40[core] REDESIGNED: GetFileExtension(), includes the .dot 41[core] REDESIGNED: IsFileExtension(), includes the .dot 42[core] REDESIGNED: Compresion API to use sdefl/sinfl libs 43[rlgl] ADDED: SUPPORT_GL_DETAILS_INFO config flag 44[rlgl] REMOVED: GenTexture*() functions (#721) 45[rlgl] REVIEWED: rlLoadShaderDefault() 46[rlgl] REDESIGNED: rlLoadExtensions(), more details exposed 47[raymath] REVIEWED: QuaternionFromEuler() (#1651) 48[raymath] REVIEWED: MatrixRotateZYX() (#1642) 49[shapes] ADDED: DrawLineBezierQuad() (#1468) by @epsilon-phase 50[shapes] ADDED: CheckCollisionLines() 51[shapes] ADDED: CheckCollisionPointLine() by @mkupiec1 52[shapes] REVIEWED: CheckCollisionPointTriangle() by @mkupiec1 53[shapes] REDESIGNED: SetShapesTexture() 54[shapes] REDESIGNED: DrawCircleSector(), to use float params 55[shapes] REDESIGNED: DrawCircleSectorLines(), to use float params 56[shapes] REDESIGNED: DrawRing(), to use float params 57[shapes] REDESIGNED: DrawRingLines(), to use float params 58[textures] ADDED: DrawTexturePoly() and example (#1677) by @chriscamacho 59[textures] ADDED: UnloadImageColors() for allocs consistency 60[textures] RENAMED: GetImageData() to LoadImageColors() 61[textures] REVIEWED: ImageClearBackground() and ImageDrawRectangleRec() (#1487) by @JeffM2501 62[textures] REVIEWED: DrawTexturePro() and DrawRectanglePro() transformations (#1632) by @ChrisDill 63[text] REDESIGNED: DrawFPS() 64[models] ADDED: UploadMesh() (#1529) 65[models] ADDED: UpdateMeshBuffer() 66[models] ADDED: DrawMesh() 67[models] ADDED: DrawMeshInstanced() 68[models] ADDED: UnloadModelAnimations() (#1648) by @object71 69[models] REMOVED: DrawGizmo() 70[models] REMOVED: LoadMeshes() 71[models] REMOVED: MeshNormalsSmooth() 72[models] REVIEWED: DrawLine3D() (#1643) 73[audio] REVIEWED: Multichannel sound system (#1548) 74[audio] REVIEWED: jar_xm library (#1701) by @jmorel33 75[utils] ADDED: SetLoadFileDataCallback() 76[utils] ADDED: SetSaveFileDataCallback() 77[utils] ADDED: SetLoadFileTextCallback() 78[utils] ADDED: SetSaveFileTextCallback() 79[examples] ADDED: text_draw_3d (#1689) by @Demizdor 80[examples] ADDED: textures_poly (#1677) by @chriscamacho 81[examples] ADDED: models_gltf_model (#1551) by @object71 82[examples] RENAMED: shaders_rlgl_mesh_instanced to shaders_mesh_intancing 83[examples] REDESIGNED: shaders_rlgl_mesh_instanced by @moliad 84[examples] REDESIGNED: core_vr_simulator 85[examples] REDESIGNED: models_yaw_pitch_roll 86[build] ADDED: Config flag: SUPPORT_STANDARD_FILEIO 87[build] ADDED: Config flag: SUPPORT_WINMM_HIGHRES_TIMER (#1641) 88[build] ADDED: Config flag: SUPPORT_GL_DETAILS_INFO 89[build] ADDED: Examples projects to VS2019 solution 90[build] REVIEWED: Makefile to support PLATFORM_RPI (#1580) 91[build] REVIEWED: Multiple typecast warnings by @JeffM2501 92[build] REDESIGNED: VS2019 project build paths 93[build] REDESIGNED: CMake build system by @object71 94[*] RENAMED: Several functions parameters for consistency 95[*] UPDATED: Multiple bindings to latest version 96[*] UPDATED: All external libraries to latest versions 97[*] Multiple code improvements and fixes by multiple contributors! 98 99------------------------------------------------------------------------- 100Release: raylib 3.5 - 7th Anniversary Edition (25 December 2020) 101------------------------------------------------------------------------- 102KEY CHANGES: 103 - [core] ADDED: PLATFORM_DRM to support RPI4 and other devices (#1388) by @kernelkinetic 104 - [core] REDESIGNED: Window states management system through FLAGS 105 - [rlgl] ADDED: RenderBatch type and related functions to allow custom batching (internal only) 106 - [rlgl] REDESIGNED: Framebuffers API to support multiple attachment types (#721) 107 - [textures] REDESIGNED: Image*() functions, big performance improvements (software rendering) 108 - [*] REVIEWED: Multiple functions to replace file accesses by memory accesses 109 - [*] ADDED: GitHub Actions CI to support multiple raylib build configurations 110 111Detailed changes: 112[core] ADDED: SetWindowState() / ClearWindowState() -> New flags added! 113[core] ADDED: IsWindowFocused() 114[core] ADDED: GetWindowScaleDPI() 115[core] ADDED: GetMonitorRefreshRate() (#1289) by @Shylie 116[core] ADDED: IsCursorOnScreen() (#1262) by @ChrisDill 117[core] ADDED: SetMouseCursor() and GetMouseCursor() for standard Desktop cursors (#1407) by @chances 118[core] REMOVED: struct RenderTexture2D: depthTexture variable 119[core] REMOVED: HideWindow() / UnhideWindow() -> Use SetWindowState() 120[core] REMOVED: DecorateWindow() / UndecorateWindow() -> Use SetWindowState() 121[core] RENAMED: GetExtension() to GetFileExtension() 122[core] REVIEWED: Several structs to reduce size and padding 123[core] REVIEWED: struct Texture maps to Texture2D and TextureCubemap 124[core] REVIEWED: ToggleFullscreen() (#1287) 125[core] REVIEWED: InitWindow(), support empty title for window (#1323) 126[core] REVIEWED: RPI: Mouse movements are bound to the screen resolution (#1392) (#1410) by @kernelkinetic 127[core] REVIEWED: GetPrevDirectoryPath() fixes on Unix-like systems (#1246) by @ivan-cx 128[core] REPLACED: rgif.h by msf_gif.h for automatic gif recording 129[core] REDESIGNED: GetMouseWheelMove() to return float movement for precise scrolling (#1397) by @Doy-lee 130[core] REDESIGNED: GetKeyPressed(), and added GetCharPressed() (#1336) 131[core] UWP rework with improvements (#1231) by @Rover656 132[core] Gamepad axis bug fixes and improvement (#1228) by @mmalecot 133[core] Updated joystick mappings with latest version of gamecontrollerdb (#1381) by @coderoth 134[rlgl] Corrected issue with OpenGL 1.1 support 135[rlgl] ADDED: rlDrawMeshInstanced() (#1318) by @seanpringle 136[rlgl] ADDED: rlCheckErrors (#1321) by @seanpringle 137[rlgl] ADDED: BLEND_SET blending mode (#1251) by @RandomErrorMessage 138[rlgl] ADDED: rlSetLineWidth(), rlGetLineWidth(), rlEnableSmoothLines(), rlDisableSmoothLines() (#1457) by @JeffM2501 139[rlgl] RENAMED: rlUnproject() to Vector3Unproject() [raymath] 140[rlgl] REVIEWED: Replace rlglDraw() calls by DrawRenderBatch() internal calls 141[rlgl] REVIEWED: GenTextureCubemap(), use rlgl functionality only 142[rlgl] REVIEWED: rlFramebufferAttach() to support texture layers 143[rlgl] REVIEWED: GenDrawCube() and GenDrawQuad() 144[rlgl] REVIEWED: Issues with vertex batch overflow (#1223) 145[rlgl] REVIEWED: rlUpdateTexture(), issue with offsets 146[rlgl] REDESIGNED: GenTexture*() to use the new fbo API (#721) 147[raymath] ADDED: Normalize() and Remap() functions (#1247) by @NoorWachid 148[raymath] ADDED: Vector2Reflect() (#1400) by @daniel-junior-dube 149[raymath] ADDED: Vector2LengthSqr() and Vector3LengthSqr() (#1248) by @ThePituLegend 150[raymath] ADDED: Vector2MoveTowards() function (#1233) by @anatagawa 151[raymath] REVIEWED: Some functions consistency (#1197) by @Not-Nik 152[raymath] REVIEWED: QuaternionFromVector3ToVector3() (#1263) by @jvocaturo 153[raymath] REVIEWED: MatrixLookAt(), optimized (#1442) by @RandomErrorMessage 154[shapes] ADDED: CheckCollisionLines(), by @Elkantor 155[text] Avoid [textures] functions dependencies 156[text] ADDED: Config flag: SUPPORT_TEXT_MANIPULATION 157[text] ADDED: LoadFontFromMemory() (TTF only) (#1327) 158[text] ADDED: UnloadFontData() 159[text] RENAMED: FormatText() -> TextFormat() 160[text] REVIEWED: Font struct, added charsPadding (#1432) 161[text] REVIEWED: TextJoin() 162[text] REVIEWED: TextReplace() (#1172) 163[text] REVIEWED: LoadBMFont() to load data from memory (#1232) 164[text] REVIEWED: GenImageFontAtlas(), fixed offset (#1171) 165[text] REDESIGNED: LoadFontData(), reviewed input parameters 166[text] REDESIGNED: LoadFontDefault(), some code simplifications 167[text] REDESIGNED: LoadFontFromImage(), avoid LoadImageEx() 168[text] REDESIGNED: LoadFontData(), avoid GenImageColor(), ImageFormat() 169[text] REDESIGNED: LoadBMFont(), avoid ImageCopy(), ImageFormat(), ImageAlphaMask() 170[textures] Move Color functions from [core] to [textures] module 171[textures] ADDED: ColorAlphaBlend() 172[textures] ADDED: GetPixelColor() 173[textures] ADDED: SetPixelColor() 174[textures] ADDED: LoadImageFromMemory() (#1327) 175[textures] ADDED: LoadImageAnim() to load animated sequence of images 176[textures] ADDED: DrawTextureTiled() (#1291) - @Demizdor 177[textures] ADDED: UpdateTextureRec() 178[textures] ADDED: UnloadImageColors(), UnloadImagePalette(), UnloadWaveSamples() 179[textures] REMOVED: Config flag: SUPPORT_IMAGE_DRAWING 180[textures] REMOVED: LoadImageEx() 181[textures] REMOVED: LoadImagePro() 182[textures] REMOVED: GetImageDataNormalized(), not exposed in the API 183[textures] RENAMED: ImageExtractPalette() to GetImagePalette() 184[textures] RENAMED: Fade() to ColorAlpha(), added #define for compatibility 185[textures] RENAMED: GetImageData() -> LoadImageColors() 186[textures] RENAMED: GetImagePalette() -> LoadImagePalette() 187[textures] RENAMED: GetWaveData() -> LoadWaveSamples() 188[textures] REVIEWED: GetPixelDataSize() to consider compressed data properly 189[textures] REVIEWED: GetTextureData(), allow retrieving 32bit float data 190[textures] REVIEWED: ImageDrawText*() params order 191[textures] REVIEWED: ColorAlphaBlend(), support tint color 192[textures] REVIEWED: ColorAlphaBlend(), integers-version, optimized (#1218) 193[textures] REVIEWED: ImageDraw(), consider negative source offset properly (#1283) 194[textures] REVIEWED: ImageDraw(), optimizations test (#1218) 195[textures] REVIEWED: ImageResizeCanvas(), optimization (#1218) 196[textures] REVIEWED: ExportImage(), optimized 197[textures] REVIEWED: ImageAlphaPremultiply(), optimization 198[textures] REVIEWED: ImageAlphaClear(), minor optimization 199[textures] REVIEWED: ImageToPOT(), renamed parameter 200[textures] REVIEWED: ImageCrop() (#1218) 201[textures] REVIEWED: ImageToPOT() (#1218) 202[textures] REVIEWED: ImageAlphaCrop() (#1218) 203[textures] REVIEWED: ExportImage(), optimized (#1218) 204[textures] REDESIGNED: ImageCrop(), optimized (#1218) 205[textures] REDESIGNED: ImageRotateCCW(), optimized (#1218) 206[textures] REDESIGNED: ImageRotateCW(), optimized (#1218) 207[textures] REDESIGNED: ImageFlipHorizontal(), optimized (#1218) 208[textures] REDESIGNED: ImageFlipVertical(), optimized (#1218) 209[textures] REDESIGNED: ImageResizeCanvas(), optimized (#1218) 210[textures] REDESIGNED: ImageDrawPixel(), optimized 211[textures] REDESIGNED: ImageDrawLine(), optimized 212[textures] REDESIGNED: ImageDraw(), optimized (#1218) 213[textures] REDESIGNED: ImageResize(), optimized (#1218) 214[textures] REDESIGNED: ImageFromImage(), optimized (#1218) 215[textures] REDESIGNED: ImageDraw(), optimization (#1218) 216[textures] REDESIGNED: ImageAlphaClear(), optimized (#1218) 217[textures] REDESIGNED: ExportImageAsCode() to use memory buffer (#1232) 218[textures] REDESIGNED: ColorFromHSV() 219[models] ADDED: DrawTriangle3D() and DrawTriangleStrip3D() 220[models] ADDED: UnloadModelKeepMeshes() 221[models] REVIEWED: LoadModel(), avoid loading texcoords and normals from model if not existent 222[models] REVIEWED: GenMeshCubicmap(), added comments and simplification 223[models] REVIEWED: GenMeshCubicmap(), fixed generated normals (#1244) by @GoldenThumbs 224[models] REVIEWED: GenMeshPoly(), fixed buffer overflow (#1269) by @frithrah 225[models] REVIEWED: LoadOBJ(): Allow for multiple materials in obj files (#1408) by @chriscamacho and @codifies 226[models] REVIEWED: LoadIQM() materials loading (#1227) by @sikor666 227[models] REVIEWED: LoadGLTF() to read from memory buffer 228[models] REVIEWED: UpdateMesh(), fix extra memory allocated when updating color buffer (#1271) by @4yn 229[models] REVIEWED: MeshNormalsSmooth() (#1317) by @seanpringle 230[models] REVIEWED: DrawGrid() (#1417) 231[models] REDESIGNED: ExportMesh() to use memory buffer (#1232) 232[models] REDESIGNED: LoadIQM() and LoadModelAnimations() to use memory buffers 233[audio] ADDED: LoadWaveFromMemory() (#1327) 234[audio] REMOVED: SetMusicLoopCount() 235[audio] REVIEWED: Several functions, sampleCount vs frameCount (#1423) 236[audio] REVIEWED: SaveWAV() to use memory write insted of file 237[audio] REVIEWED: LoadMusicStream(), support WAV music streaming (#1198) 238[audio] REVIEWED: Support multiple WAV sampleSize for MusicStream (#1340) 239[audio] REVIEWED: SetAudioBufferPitch() 240[audio] REDESIGNED: Audio looping system 241[audio] REDESIGNED: LoadSound(): Use memory loading (WAV, OGG, MP3, FLAC) (#1312) 242[audio] REDESIGNED: ExportWaveAsCode() to use memory buffers 243[utils] ADDED: MemAlloc() / MemFree() (#1440) 244[utils] ADDED: UnloadFileData() / UnloadFileText() 245[utils] REVIEWED: android_fopen() to support SDCard access 246[utils] REDESIGNED: SaveFile*() functions to expose file access results (#1420) 247[rmem] REVIEWED: MemPool and other allocators optimization (#1211) by @assyrianic 248[examples] ADDED: core/core_window_flags 249[examples] ADDED: core/core_quat_conversion by @chriscamacho and @codifies 250[examples] ADDED: textures/textures_blend_modes (#1261) by @accidentalrebel 251[examples] ADDED: textures/textures_draw_tiled (#1291) by @Demizdor 252[examples] ADDED: shaders/shaders_hot_reloading (#1198) 253[examples] ADDED: shaders/shaders_rlgl_mesh_instanced (#1318) by @seanpringle 254[examples] ADDED: shaders/shaders_multi_sampler2d 255[examples] ADDED: others/embedded_files_loading 256[examples] REVIEWED: textures/textures_raw_data (#1286) 257[examples] REVIEWED: textures/textures_sprite_explosion, replace resources 258[examples] REVIEWED: textures/textures_particles_blending, replace resources 259[examples] REVIEWED: textures/textures_image_processing, support mouse 260[examples] REVIEWED: models/models_skybox to work on OpenGL ES 2.0 261[examples] REVIEWED: audio/resources, use open license resources 262[examples] REVIEWED: others/raudio_standalone.c 263[build] ADDED: New config.h configuration options exposing multiple #define values 264[build] REMOVED: ANGLE VS2017 template project 265[build] REVIEWED: All MSVC compile warnings 266[build] Updated Makefile for web (#1332) by @rfaile313 267[build] Updated build pipelines to use latest emscripten and Android NDK 268[build] Updated emscriptem build script to generate .a on WebAssembly 269[build] Updated Android build for Linux, supporting ANDROID_NDK at compile time by @branlix3000 270[build] Updated VSCode project template tasks 271[build] Updated VS2017.UWP project template by @Rover656 272[build] Updated Android build pipeline 273[build] REMOVED: AppVeyor and Travis CI build systems 274[*] Moved raysan5/raylib/games to independent repo: raysan5/raylib-games 275[*] Replaced several examples resources with more open licensed alternatives 276[*] Updated BINDINGS.md with NEW bindings and added raylib version binding! 277[*] Updated all external libraries to latest versions 278[*] Multiple code improvements and small fixes 279 280----------------------------------------------- 281Release: raylib 3.0 (01 April 2020) 282----------------------------------------------- 283KEY CHANGES: 284 - Global context states used on all modules. 285 - Custom memory allocators for all modules and dependencies. 286 - Centralized file access system and memory data loading. 287 - Structures reviewed to reduce size and always be used as pass-by-value. 288 - Tracelog messages completely reviewed and categorized. 289 - raudio module reviewed to accomodate new Music struct and new miniaudio. 290 - text module reviewed to improve fonts generation and text management functions. 291 - Multiple new examples added and categorized examples table. 292 - GitHub Actions CI implemented for Windows, Linux and macOS. 293 294Detailed changes: 295[build] ADDED: VS2017.ANGLE project, by @msmshazan 296[build] ADDED: VS2017 project support for x64 platform configuration 297[build] ADDED: Makefile for Android building on macOS, by @Yunoinsky 298[build] ADDED: Makefile for Android building on Linux, by @pamarcos 299[build] REMOVED: VS2015 project 300[build] REVIEWED: VSCode project 301[build] REVIEWED: Makefile build system 302[build] REVIEWED: Android building, by @NimbusFox 303[build] REVIEWED: Compilation with CLion IDE, by @Rover656 304[build] REVIEWED: Generation of web examples, by @pamarcos 305[build] REVIEWED: Makefiles path to 'shell.html', by @niorad 306[build] REVIEWED: VS2017 64bit compilation issues, by @spec-chum 307[build] REVIEWED: Multiple fixes on projects building, by @ChrisDill, @JuDelCo, @electronstudio 308[core] ADDED: Support touch/mouse indistinctly 309[core] ADDED: FLAG_WINDOW_ALWAYS_RUN to avoid pause on minimize 310[core] ADDED: Config flag SUPPORT_HALFBUSY_WAIT_LOOP 311[core] ADDED: RPI mouse cursor point support on native mode 312[core] ADDED: GetWorldToScreen2D()- Get screen space position for a 2d camera world space position, by @arvyy 313[core] ADDED: GetScreenToWorld2D() - Get world space position for a 2d camera screen space position, by @arvyy 314[core] ADDED: GetWorldToScreenEx() - Get size position for a 3d world space position 315[core] ADDED: DirectoryExists() - Check if a directory path exists 316[core] ADDED: GetPrevDirectoryPath() - Get previous directory path for a given path 317[core] ADDED: CompressData() - Compress data (DEFLATE algorythm) 318[core] ADDED: DecompressData() - Decompress data (DEFLATE algorythm) 319[core] ADDED: GetWindowPosition() - Get window position XY on monitor 320[core] ADDED: LoadFileData() - Load file data as byte array (read) 321[core] ADDED: SaveFileData() - Save data to file from byte array (write) 322[core] ADDED: LoadFileText() - Load text data from file (read), returns a '\0' terminated string 323[core] ADDED: SaveFileText() - Save text data to file (write), string must be '\0' terminated 324[core] REMOVED: Show raylib logo at initialization 325[core] REVIEWED: GetFileName(), security checks 326[core] REVIEWED: LoadStorageValue(), by @danimartin82 327[core] REVIEWED: SaveStorageValue(), by @danimartin82 328[core] REVIEWED: IsMouseButtonReleased(), when press/release events come too fast, by @oswjk 329[core] REVIEWED: SetWindowMonitor(), by @DropsOfSerenity 330[core] REVIEWED: IsFileExtension() to be case-insensitive 331[core] REVIEWED: IsFileExtension() when checking no-extension files 332[core] REVIEWED: Default font scale filter for HighDPI mode 333[core] REVIEWED: Touch input scaling for PLATFORM_WEB 334[core] REVIEWED: RPI input system, by @DarkElvenAngel 335[core] REVIEWED: RPI input threads issues 336[core] REVIEWED: OpenGL extensions loading and freeing 337[core] REVIEWED: GetDirectoryPath() 338[core] REVIEWED: Camera2D behavior, by @arvyy 339[core] REVIEWED: OpenGL ES 2.0 extensions check 340[rlgl] ADDED: Flags to allow frustrum culling near/far distance configuration at compile time 341[rlgl] ADDED: Flags to sllow MAX_BATCH_BUFFERING config at compile time 342[rlgl] ADDED: GetMatrixProjection(), by @chriscamacho 343[rlgl] ADDED: rlUpdateMeshAt() - Update vertex or index data on GPU, at index, by @brankoku 344[rlgl] REVIEWED: Vertex padding not zeroed for quads, by @kawa-yoiko 345[rlgl] REVIEWED: Read texture data as RGBA from FBO on GLES 2.0 346[rlgl] REVIEWED: LoadShaderCode() for const correctness, by @heretique 347[rlgl] REVIEWED: rlLoadTexture() 348[rlgl] REVIEWED: rlReadTexturePixels() 349[rlgl] REVIEWED: rlUpdateMesh() to supports updating indices, by @brankoku 350[rlgl] REVIEWED: GenTextureCubemap(), renamed parameters for consistency 351[rlgl] REVIEWED: HDR pixels loading 352[raymath] ADDED: MatrixRotateXYZ(), by @chriscamacho 353[raymath] RENAMED: Vector3Multiply() to Vector3Scale() 354[camera] REVIEWED: Free camera pitch, by @chriscamacho 355[camera] REVIEWED: Camera not working properly at z-align, by @Ushio 356[shapes] ADDED: DrawTriangleStrip() - Draw a triangle strip defined by points 357[shapes] ADDED: DrawEllipse() - Draw ellipse 358[shapes] ADDED: DrawEllipseLines() - Draw ellipse outline 359[shapes] ADDED: DrawPolyLines() - Draw a polygon outline of n sides 360[shapes] REVIEWED: DrawPoly() shape rendering, by @AlexHCC 361[textures] ADDED: LoadAnimatedGIF() - Load animated GIF file 362[textures] ADDED: GetImageAlphaBorder() - Get image alpha border rectangle 363[textures] ADDED: ImageFromImage() - Create an image from another image piece 364[textures] ADDED: ImageClearBackground(), by @iamsouravgupta 365[textures] ADDED: ImageDrawPixel(), by @iamsouravgupta 366[textures] ADDED: ImageDrawCircle(), by @iamsouravgupta 367[textures] ADDED: ImageDrawLineEx(), by @iamsouravgupta 368[textures] ADDED: ImageDrawPixelV(), by @RobLoach 369[textures] ADDED: ImageDrawCircleV(), by @RobLoach 370[textures] ADDED: ImageDrawLineV(), by @RobLoach 371[textures] ADDED: ImageDrawRectangleV(), by @RobLoach 372[textures] ADDED: ImageDrawRectangleRec(), by @RobLoach 373[textures] REVIEWED: ImageDrawPixel(), by @RobLoach 374[textures] REVIEWED: ImageDrawLine(), by @RobLoach 375[textures] REVIEWED: ImageDrawCircle(), by @RobLoach 376[textures] REVIEWED: ImageDrawRectangle(), by @RobLoach 377[textures] REVIEWED: ImageDraw(), now it supports color tint parameter 378[textures] REVIEWED: ImageResizeCanvas() 379[textures] REVIEWED: ImageCrop() with security checks 380[textures] REVIEWED: ImageAlphaMask() 381[textures] REVIEWED: ImageDrawRectangleLines() 382[textures] REVIEWED: GetImageData() 383[text] ADDED: TextCopy() - Copy one string to another, returns bytes copied 384[text] ADDED: GetCodepoints() - Get all codepoints in a string 385[text] ADDED: CodepointToUtf8() - Encode codepoint into utf8 text 386[text] ADDED: DrawTextCodepoint() - Draw one character (codepoint) 387[text] RENAMED: LoadDefaultFont() -> LoadFontDefault() 388[text] RENAMED: TextCountCodepoints() -> GetCodepointsCount() 389[text] REVIEWED: TextFormat(), to support caching, by @brankoku 390[text] REVIEWED: LoadFontData(), generate empty image for space character 391[text] REVIEWED: TextSplit() 392[text] REVIEWED: TextToInteger() 393[text] REVIEWED: GetNextCodepoint(), renamed parameters for clarity 394[text] REVIEWED: GenImageFontAtlas(), improved atlas size computing 395[text] REDESIGNED: struct Font, character rectangles have been moved out from CharInfo to Font 396[text] REDESIGNED: struct CharInfo, now includes directly an Image of the glyph 397[text] REDESIGNED: GenImageFontAtlas(), additional recs parameter added 398[text] REDESIGNED: ImageTextEx(), to avoid font retrieval from GPU 399[models] ADDED: Support rlPushMatrix() and rlPopMatrix() on mesh drawing 400[models] ADDED: DrawPoint3D() - Draw a point in 3D space, actually a small line, by @ProfJski 401[models] ADDED: Multi texture support for materials in GLTF format, by @Gamerfiend, @chriscamacho 402[models] REVIEWED: LoadGLTF(), fixed memory leak, by @jubalh 403[models] REVIEWED: LoadIQM(), support multiple animations loading, by @culacant 404[models] REVIEWED: GetCollisionRayModel(), to avoid pointers 405[models] REVIEWED: CheckCollisionRay*(), parameters renamed 406[models] REVIEWED: UnloadMesh(), to avoid pointers 407[models] REVIEWED: LoadModel(), memory initialization 408[models] REVIEWED: UpdateModelAnimation(), added security checks 409[models] REVIEWED: Multiple fixes on models loading, by @jubalh 410[models] REVIEWED: Normals updated when using animated meshes, by @@las3rlars 411[models] REVIEWED: Compilation when the SUPPORT_MESH_GENERATION not set, by @@Elkantor 412[raudio] ADDED: Multi-channel audio playing, by @chriscamacho 413[raudio] REMOVED: LoadWaveEx() 414[raudio] RENAMED: IsAudioBufferProcessed() to IsAudioStreamProcessed() 415[raudio] REVIEWED: Ensure .xm playback starts in the right place, by @illegalinstruction 416[raudio] REVIEWED: Fix short non-looping sounds, by @jbosh 417[raudio] REVIEWED: Modules playing time to full length 418[raudio] REDESIGNED: Replaced Music pointer by struct 419[raudio] REDESIGNED: Removed sampleLeft from Music struct 420[examples] ADDED: core_scissor_test, by @ChrisDill 421[examples] ADDED: core_2d_camera_platformer, by @arvyy 422[examples] ADDED: textures_mouse_painting, by @ChrisDill 423[examples] ADDED: models_waving_cubes, by @codecat 424[examples] ADDED: models_solar_system, by @aldrinmartoq 425[examples] ADDED: shaders_fog, by @chriscamacho 426[examples] ADDED: shaders_texture_waves, by @Anata 427[examples] ADDED: shaders_basic_lighting, by @chriscamacho 428[examples] ADDED: shaders_simple_mask, by @chriscamacho 429[examples] ADDED: audio_multichannel_sound, by @chriscamacho 430[examples] ADDED: shaders_spotlight, by @chriscamacho 431[examples] RENAMED: text_sprite_font > text_font_spritefont 432[examples] RENAMED: text_ttf_loading > text_font_filters 433[examples] RENAMED: text_bmfont_ttf > text_font_loading 434[examples] REMOVED: models_obj_viewer 435[examples] REMOVED: models_solar_system 436[examples] REVIEWED: models_obj_loading > models_loading 437[examples] REVIEWED: models_materials_pbr, shader issues 438[examples] REVIEWED: core_window_letterbox, detailed explanation, by @jotac0 439[examples] REVIEWED: core_window_letterbox, virtual mouse, by @anatagawa 440[games] ADDED: GGJ2020 game - RE-PAIR 441[*] Misc fixes and tweaks, by @yaram, @oraoto, @zatherz, @piecedigital, @Shylie 442[*] Update ALL supported projects (Notepad++, VS2017) 443[*] Update ALL external libraries to latest versions (29.Jan.2020) 444[*] Update ALL examples and games 445[*] Update BINDINGS list 446 447----------------------------------------------- 448Release: raylib 2.5 (May 2019) 449----------------------------------------------- 450KEY CHANGES: 451 - [core] Redesigned Gamepad mechanism, now common to all platforms and gamepads 452 - [core] HighDPI monitors support with automatic content scaling 453 - [rlgl] Complete module redesign to use one single internal buffer 454 - [rlgl] VR system redesign to allow custom device parameters and distortion shader 455 - [shapes] New drawing shapes available: CircleSector, Ring and RectangleRounded 456 - [text] New text management API (multiple functions) 457 - [text] Full Unicode support (utf8 text) 458 - [textures] Cubemap textures support 459 - [textures] Quad and N-Patch drawing 460 - [models] Skeletal model animation support 461 - [models] Support multiple meshes per model 462 - [models] Support glTF model loading 463 464Detailed changes: 465[build] REVIEWED: Default raylib and examples Makefile 466[build] REVIEWED: Notepad++ NppExec scripts 467[build] REVIEWED: VS2015 and VS2017 projects 468[build] REVIEWED: Android APK build pipeline 469[core] Converted most #defined values as enum values 470[core] Complete redesign of RPI input system to use evdev events 471[core] ADDED: IsWindowResized() - Check if window has been resized 472[core] ADDED: IsWindowHidden() - Check if window is currently hidden 473[core] ADDED: UnhideWindow() - Show the window 474[core] ADDED: HideWindow() - Hide the window 475[core] ADDED: GetWindowHandle() - Get native window handle 476[core] ADDED: GetMonitorCount() - Get number of connected monitors 477[core] ADDED: GetMonitorWidth() - Get primary monitor width 478[core] ADDED: GetMonitorHeight() - Get primary monitor height 479[core] ADDED: GetMonitorPhysicalWidth() - Get primary monitor physical width in millimetres 480[core] ADDED: GetMonitorPhysicalHeight() - Get primary monitor physical height in millimetres 481[core] ADDED: GetMonitorName() - Get the human-readable, UTF-8 encoded name of the primary monitor 482[core] ADDED: GetClipboardText() - Get clipboard text content 483[core] ADDED: SetClipboardText() - Set clipboard text content 484[core] ADDED: ColorFromHSV() - Returns a Color from HSV values 485[core] ADDED: FileExists() - Check if file exists 486[core] ADDED: GetFileNameWithoutExt() - Get filename string without extension (memory should be freed) 487[core] ADDED: GetDirectoryFiles() - Get filenames in a directory path (memory should be freed) 488[core] ADDED: ClearDirectoryFiles() - Clear directory files paths buffers (free memory) 489[core] ADDED: OpenURL() - Open URL with default system browser (if available) 490[core] ADDED: SetMouseOffset() - Set mouse offset 491[core] ADDED: SetMouseScale() - Set mouse scaling 492[core] REMOVED: ShowLogo() - Activate raylib logo at startup (can be done with flags) 493[shapes] ADDED: DrawCircleSector() - Draw a piece of a circle 494[shapes] ADDED: DrawCircleSectorLines() - Draw circle sector outline 495[shapes] ADDED: DrawRing() - Draw ring 496[shapes] ADDED: DrawRingLines() - Draw ring outline 497[shapes] ADDED: DrawRectangleRounded() - Draw rectangle with rounded edges 498[shapes] ADDED: DrawRectangleRoundedLines() - Draw rectangle with rounded edges outline 499[shapes] ADDED: SetShapesTexture() - Define default texture used to draw shapes 500[textures] REVIEWED: ExportImage() - Reorder function parameters 501[textures] REVIEWED: ImageDrawRectangle() - Remove unneeded parameter 502[textures] ADDED: ExportImageAsCode() - Export image as code file defining an array of bytes 503[textures] ADDED: LoadTextureCubemap() - Load cubemap from image, multiple image cubemap layouts supported 504[textures] ADDED: ImageExtractPalette() - Extract color palette from image to maximum size (memory should be freed) 505[textures] ADDED: ImageDrawRectangleLines() - Draw rectangle lines within an image 506[textures] ADDED: DrawTextureQuad() - Draw texture quad with tiling and offset parameters 507[textures] ADDED: DrawTextureNPatch() - Draws a texture (or part of it) that stretches or shrinks nicely 508[models] REVIEWED: LoadMesh() -> LoadMeshes() - Support multiple meshes loading 509[models] REVIEWED: LoadMaterial() -> LoadMaterials() - Support multiple materials loading 510[models] REVIEWED: ExportMesh() - Reorder parameters 511[models] ADDED: DrawCubeWiresV() - Draw cube wires (Vector version) 512[models] ADDED: GenMeshPoly() - Generate polygonal mesh 513[models] ADDED: SetMaterialTexture() - Set texture for a material map type (MAP_DIFFUSE, MAP_SPECULAR...) 514[models] ADDED: SetModelMeshMaterial() - Set material for a mesh 515[models] ADDED: LoadModelAnimations() - Load model animations from file 516[models] ADDED: UpdateModelAnimation() - Update model animation pose 517[models] ADDED: UnloadModelAnimation() - Unload animation data 518[models] ADDED: IsModelAnimationValid() - Check model animation skeleton match 519[rlgl] Improved internal batching mechanism (multibuffering support, triangle texcoords...) 520[rlgl] REVIEWED: rlPushMatrix()/rlPopMatrix() - Now works like OpenGL 1.1 521[rlgl] REVIEWED: SetShaderValue() - More generic, now requires uniform type 522[rlgl] REMOVED: SetShaderValuei() - Can be acoomplished with new SetShaderValue() 523[rlgl] ADDED: SetShaderValueV() - Set shader uniform value vector 524[rlgl] ADDED: SetShaderValueTexture() - Set shader uniform value for texture 525[rlgl] ADDED: BeginScissorMode() - Begin scissor mode (define screen area for following drawing) 526[rlgl] ADDED: EndScissorMode() - End scissor mode 527[rlgl] ADDED: SetVrConfiguration() - Set stereo rendering configuration parameters 528[rlgl] REVIEWED: InitVrSimulator() - No input parameter required, use SetVrConfiguration() 529[text] REVIEWED: LoadFontEx() - Reorder function parameters 530[text] REVIEWED: LoadFontData() - Reorder function parameters 531[text] REVIEWED: GenImageFontAtlas() - Reorder function parameters 532[text] RENAMED: FormatText() -> TextFormat() 533[text] RENAMED: SubText() -> TextSubtext() 534[text] ADDED: LoadFontFromImage() - Load font from Image (XNA style) 535[text] ADDED: DrawTextRec() - Draw text using font inside rectangle limits 536[text] ADDED: DrawTextRecEx() - Draw text using font inside rectangle limits with support for text selection 537[text] ADDED: TextIsEqual() - Check if two text string are equal 538[text] ADDED: TextLength() - Get text length, checks for '\0' ending 539[text] ADDED: TextReplace() - Replace text string (memory should be freed!) 540[text] ADDED: TextInsert() - Insert text in a position (memory should be freed!) 541[text] ADDED: TextJoin() - Join text strings with delimiter 542[text] ADDED: TextSplit() - Split text into multiple strings 543[text] ADDED: TextAppend() - Append text at specific position and move cursor! 544[text] ADDED: TextFindIndex() - Find first text occurrence within a string 545[text] ADDED: TextToUpper() - Get upper case version of provided string 546[text] ADDED: TextToLower() - Get lower case version of provided string 547[text] ADDED: TextToPascal() - Get Pascal case notation version of provided string 548[text] ADDED: TextToInteger() - Get integer value from text (negative values not supported) 549[raudio] ADDED: ExportWave() - Export wave data to file 550[raudio] ADDED: ExportWaveAsCode() - Export wave sample data to code (.h) 551[raudio] ADDED: IsAudioStreamPlaying() - Check if audio stream is playing 552[raudio] ADDED: SetAudioStreamVolume() - Set volume for audio stream (1.0 is max level) 553[raudio] ADDED: SetAudioStreamPitch() - Set pitch for audio stream (1.0 is base level) 554[examples] Complete review of full examples collection, many additions 555[examples] ADDED: core_custom_logging - Custom trace log system 556[examples] ADDED: core_input_multitouch - Multitouch input example 557[examples] ADDED: core_window_letterbox - Window adapted to screen 558[examples] ADDED: core_loading_thread - Data loading in second thread 559[examples] REVIEWED: core_input_gamepad - Adapted to new gamepad system 560[examples] REVIEWED: core_vr_simulator - HMD device parameters and distortion shader should be provided 561[examples] ADDED: core_window_scale_letterbox - Windows resizing and letterbox content 562[examples] ADDED: shapes_rectangle_scaling_mouse - Scale a rectangle with mouse 563[examples] ADDED: shapes_draw_circle_sector - Circle sector drawing 564[examples] ADDED: shapes_draw_ring - Ring drawing 565[examples] ADDED: shapes_draw_rectangle_rounded - Rounded rectangle drawing 566[examples] ADDED: shapes_bouncing_ball - Ball bouncing in the screen 567[examples] ADDED: shapes_collision_area - Collision detection and drawing 568[examples] ADDED: shapes_following_eyes - Some maths on eyes and mouse 569[examples] ADDED: shapes_easings_ball_anim - Ball animation 570[examples] ADDED: shapes_easings_box_anim - Box animation 571[examples] ADDED: shapes_easings_rectangle_array - Rectangles animation 572[examples] REVIEWED: shapes_colors_palette - Reviewed color selection and text displaying 573[examples] ADDED: textures_background_scrolling - Scrolling and parallaz background effect 574[examples] ADDED: textures_image_npatch - Drawing N-Patch based boxes 575[examples] ADDED: textures_sprite_button - Sprite button with sound 576[examples] ADDED: textures_sprite_explosion - Sprite explosion with sound 577[examples] ADDED: textures_bunnymark - Benchmarking test 578[examples] ADDED: text_draw_inside_rectangle - Drawing text inside a delimited rectangle box 579[examples] ADDED: text_unicode - Multiple languages text drawing 580[examples] ADDED: text_rectangle_bound - Fit text inside a rectangle 581[examples] REVIEWED: text_bmfont_ttf - Simplified example 582[examples] ADDED: models_animation - Animated models loading and animation playing 583[examples] ADDED: models_obj_viewer - Draw and drop models viewer 584[examples] ADDED: models_rlgl_solar_system - Solar system simulation using rlgl functionality 585[examples] ADDED: models_first_person_maze - 3D maze fps 586[examples] ADDED: shaders_palette_switch - Switching color palette on shader 587[examples] ADDED: shaders_raymarching - Raymarching shader 588[examples] ADDED: shaders_texture_drawing - Texture drawing on GPU 589[examples] ADDED: shaders_texture_waves - Texture waves on shader 590[examples] ADDED: shaders_julia_set - Julia set fractals 591[examples] ADDED: shaders_eratosthenes - Prime number visualization shader 592[examples] REVIEWED: audio_raw_stream - Mostly rewritten 593[games] ADDED: GGJ19 game - Cat vs Roomba 594[*] Updated external libraries to latest version 595[*] Multiple bugs corrected (check github issues) 596 597----------------------------------------------- 598Release: raylib 2.0 (July 2018) 599----------------------------------------------- 600KEY CHANGES: 601 - Removed external dependencies (GLFW3 and OpenAL) 602 - Complete redesign of audio module to use miniaudio library 603 - Support AppVeyor and Travis CI (continuous integration) building 604 - Reviewed raymath.h for better consistency and performance (inlining) 605 - Refactor all #define SUPPORT_* into a single config.h 606 - Support TCC compiler (32bit and 64bit) 607 608Detailed changes: 609[build] REMOVED: GitHub develop branch 610[build] REMOVED: External dependencies GLFW and OpenAL 611[build] ADDED: Android 64bit ARM support 612[build] ADDED: FreeBSD, OpenBSD, NetBSD, Dragon Fly OS support 613[build] ADDED: Universal Windows Platform (UWP) support 614[build] ADDED: Wayland Linux desktop support 615[build] ADDED: AppVeyor CI for automatic Windows builds 616[build] ADDED: Travis CI for automatic Linux/macOS builds 617[build] ADDED: rglfw (GLFW3 module) to avoid external dependency 618[build] ADDED: VS2017 UWP project 619[build] ADDED: Builder project template 620[build] ADDED: Compiler memory sanitizer for better debug 621[build] ADDED: CMake package target and CI auto-deploy tags 622[build] ADDED: DEBUG library building support 623[build] ADDED: Notepad++ NppExec scripts 624[build] REVIEWED: VS2015 and VS2017 projects 625[build] REVIEWED: Android APK build pipeline 626[core] REVIEWED: Window creation hints to support transparent windows 627[core] Unified InitWindow() between platforms 628[core] Export Android main entry point 629[core] RENAMED: Begin3dMode() to BeginMode3D() 630[core] RENAMED: End3dMode() to EndMode3D() 631[core] RENAMED: Begin2dMode() to BeginMode2D() 632[core] RENAMED: End2dMode() to EndMode2D() 633[core] RENAMED: struct Camera to Camera3D 634[core] RENAMED: struct SpriteFont to Font -> plus all required functions! 635[core] RENAMED: enum TextureFormat to PixelFormat 636[core] REVIEWED: Rectangle params int to float 637[core] REVIEWED: timing system for macOS 638[core] REMOVED: ColorToFloat() 639[core] ADDED: GetCurrentTime() on macOS 640[core] ADDED: GetTime() 641[core] ADDED: struct Vector4 642[core] ADDED: SetTraceLog() to define trace log messages type 643[core] ADDED: GetFileName() to get filename from path string 644[core] ADDED: ColorToHSV() 645[core] ADDED: ColorNormalize() 646[core] ADDED: SetWindowSize() to scale Windows in runtime 647[core] ADDED: SetMouseScale() to scale mouse input 648[core] ADDED: key definitions - KEY_GRAVE, KEY_SLASH, KEY_BACKSLASH 649[core] RENAMED: GetHexValue() to ColorToInt() 650[core] REVIEWED: Fade() 651[core] REVIEWED: InitWindow() to avoid void pointer (safety) 652[core] Support camera 3d orthographic projection mode 653[shapes] ADDED: DrawRectangleLinesEx() 654[textures] Improved pixel formats support (32bit channels) 655[textures] Improved textures support for OpenGL 2.1 656[textures] REMOVED: DrawRectangleT() --> Added support to DrawRectangle() 657[textures] ADDED: GetPixelDataSize(); pixel data size in bytes (image or texture) 658[textures] ADDED: ImageAlphaClear() --> Clear alpha channel to desired color 659[textures] ADDED: ImageAlphaCrop() --> Crop image depending on alpha value 660[textures] ADDED: ImageAlphaPremultiply() --> Premultiply alpha channel 661[textures] ADDED: ImageDrawRectangle() 662[textures] ADDED: ImageMipmaps() 663[textures] ADDED: GenImageColor() 664[textures] ADDED: GetPixelDataSize() 665[textures] ADDED: ImageRotateCW() 666[textures] ADDED: ImageRotateCCW() 667[textures] ADDED: ImageResizeCanvas() 668[textures] ADDED: GetImageDataNormalized() 669[textures] REVIEWED: ImageFormat() to use normalized data 670[textures] REVIEWED: Manual mipmap generation 671[textures] REVIEWED: LoadASTC() 672[textures] REVIEWED: GenImagePerlinNoise() 673[textures] REVIEWED: ImageTextEx() to support UTF8 basic characters 674[textures] REVIEWED: GetTextureData() for RPI - requires some work 675[textures] Added new example: text drawing on image 676[text] Corrected issue with ttf font y-offset 677[text] Support SDF font data generation 678[text] ADDED: GenImageFontAtlas() 679[text] ADDED: LoadFontData() to load data from TTF file 680[text] REMOVED: LoadTTF() internal function 681[text] REVIEWED: DrawTextEx() - avoid rendering SPACE character! 682[text] RENAMED: GetDefaultFont() to GetFontDefault() 683[rlgl] ADDED: rlCheckBufferLimit() 684[rlgl] ADDED: LoadShaderCode() 685[rlgl] ADDED: GetMatrixModelview() 686[rlgl] ADDED: SetVrDistortionShader(Shader shader) 687[rlgl] REVIEWED: rlLoadTexture() - added mipmaps support, improved compressed textures loading 688[rlgl] REVIEWED: rlReadTexturePixels() 689[models] Support 4 components mesh.tangent data 690[models] Removed tangents generation from LoadOBJ() 691[models] ADDED: MeshTangents() 692[models] ADDED: MeshBinormals() 693[models] ADDED: ExportMesh() 694[models] ADDED: GetCollisionRayModel() 695[models] RENAMED: CalculateBoundingBox() to MeshBoundingBox() 696[models] REMOVED: GetCollisionRayMesh() - does not consider model transform 697[models] REVIEWED: LoadMesh() - fallback to default cube mesh if loading fails 698[audio] ADDED: Support for MP3 fileformat 699[audio] ADDED: IsAudioStreamPlaying() 700[audio] ADDED: SetAudioStreamVolume() 701[audio] ADDED: SetAudioStreamPitch() 702[utils] Corrected issue with SaveImageAs() 703[utils] RENAMED: SaveImageAs() to ExportImage() 704[utils] REMOVED: rres support - moved to external library (rres.h) 705[shaders] REVIEWED: GLSL 120 shaders 706[raymath] ADDED: Vector3RotateByQuaternion() 707[raymath] REVIEWED: math usage to reduce temp variables 708[raymath] REVIEWED: Avoid pointer-based parameters for API consistency 709[physac] REVIEWED: physac.h timing system 710[examples] Replaced dwarf model by brand new 3d assets: 3d medieval buildings 711[examples] Assets cleaning and some replacements 712[games] ADDED: GGJ18 game - transmission mission 713[games] REVIEWED: Light my Ritual game - improved gameplay drawing 714[*] Updated external libraries to latest version 715[*] Multiple bugs corrected (check github issues) 716 717----------------------------------------------- 718Release: raylib 1.8.0 (Oct 2017) 719----------------------------------------------- 720NOTE: 721 In this release, multiple parts of the library have been reviewed (again) for consistency and simplification. 722 It exposes more than 30 new functions in comparison with previous version and it improves overall programming experience. 723 724BIG CHANGES: 725 - New Image generation functions: Gradient, Checked, Noise, Cellular... 726 - New Mesh generation functions: Cube, Sphere, Cylinder, Torus, Knot... 727 - New Shaders and Materials systems to support PBR materials 728 - Custom Android APK build pipeline with simple Makefile 729 - Complete review of rlgl layer functionality 730 - Complete review of raymath functionality 731 732detailed changes: 733[rlgl] RENAMED: rlglLoadTexture() to rlLoadTexture() 734[rlgl] RENAMED: rlglLoadRenderTexture() to rlLoadRenderTexture() 735[rlgl] RENAMED: rlglUpdateTexture() to rlUpdateTexture() 736[rlgl] RENAMED: rlglGenerateMipmaps() to rlGenerateMipmaps() 737[rlgl] RENAMED: rlglReadScreenPixels() to rlReadScreenPixels() 738[rlgl] RENAMED: rlglReadTexturePixels() to rlReadTexturePixels() 739[rlgl] RENAMED: rlglLoadMesh() to rlLoadMesh() 740[rlgl] RENAMED: rlglUpdateMesh() to rlUpdateMesh() 741[rlgl] RENAMED: rlglDrawMesh() to rlDrawMesh() 742[rlgl] RENAMED: rlglUnloadMesh() to rlUnloadMesh() 743[rlgl] RENAMED: rlglUnproject() to rlUnproject() 744[rlgl] RENAMED: LoadCompressedTexture() to LoadTextureCompressed() 745[rlgl] RENAMED: GetDefaultTexture() to GetTextureDefault() 746[rlgl] RENAMED: LoadDefaultShader() to LoadShaderDefault() 747[rlgl] RENAMED: LoadDefaultShaderLocations() to SetShaderDefaultLocations() 748[rlgl] RENAMED: UnloadDefaultShader() to UnLoadShaderDefault() 749[rlgl] ADDED: rlGenMapCubemap(), Generate cubemap texture map from HDR texture 750[rlgl] ADDED: rlGenMapIrradiance(), Generate irradiance texture map 751[rlgl] ADDED: rlGenMapPrefilter(), Generate prefilter texture map 752[rlgl] ADDED: rlGenMapBRDF(), Generate BRDF texture map 753[rlgl] ADDED: GetVrDeviceInfo(), Get VR device information for some standard devices 754[rlgl] REVIEWED: InitVrSimulator(), to accept device parameters as input 755[core] ADDED: SetWindowTitle(), Set title for window (only PLATFORM_DESKTOP) 756[core] ADDED: GetExtension(), Get file extension 757[shapes] REMOVED: DrawRectangleGradient(), replaced by DrawRectangleGradientV() and DrawRectangleGradientH() 758[shapes] ADDED: DrawRectangleGradientV(), Draw a vertical-gradient-filled rectangle 759[shapes] ADDED: DrawRectangleGradientH(), Draw a horizontal-gradient-filled rectangle 760[shapes] ADDED: DrawRectangleGradientEx(), Draw a gradient-filled rectangle with custom vertex colors 761[shapes] ADDED: DrawRectangleT(), Draw rectangle using text character 762[textures] ADDED: SaveImageAs(), Save image as PNG file 763[textures] ADDED: GenImageGradientV(), Generate image: vertical gradient 764[textures] ADDED: GenImageGradientH(), Generate image: horizontal gradient 765[textures] ADDED: GenImageGradientRadial(), Generate image: radial gradient 766[textures] ADDED: GenImageChecked(), Generate image: checked 767[textures] ADDED: GenImageWhiteNoise(), Generate image: white noise 768[textures] ADDED: GenImagePerlinNoise(), Generate image: perlin noise 769[textures] ADDED: GenImageCellular(), Generate image: cellular algorithm. Bigger tileSize means bigger cells 770[textures] ADDED: GenTextureCubemap(), Generate cubemap texture from HDR texture 771[textures] ADDED: GenTextureIrradiance(), Generate irradiance texture using cubemap data 772[textures] ADDED: GenTexturePrefilter(), Generate prefilter texture using cubemap data 773[textures] ADDED: GenTextureBRDF(), Generate BRDF texture using cubemap data 774[models] REMOVED: LoadMeshEx(), Mesh struct variables can be directly accessed 775[models] REMOVED: UpdateMesh(), very ineficient 776[models] REMOVED: LoadHeightmap(), use GenMeshHeightmap() and LoadModelFromMesh() 777[models] REMOVED: LoadCubicmap(), use GenMeshCubicmap() and LoadModelFromMesh() 778[models] RENAMED: LoadDefaultMaterial() to LoadMaterialDefault() 779[models] ADDED: GenMeshPlane(), Generate plane mesh (with subdivisions) 780[models] ADDED: GenMeshCube(), Generate cuboid mesh 781[models] ADDED: GenMeshSphere(), Generate sphere mesh (standard sphere) 782[models] ADDED: GenMeshHemiSphere(), Generate half-sphere mesh (no bottom cap) 783[models] ADDED: GenMeshCylinder(), Generate cylinder mesh 784[models] ADDED: GenMeshTorus(), Generate torus mesh 785[models] ADDED: GenMeshKnot(), Generate trefoil knot mesh 786[models] ADDED: GenMeshHeightmap(), Generate heightmap mesh from image data 787[models] ADDED: GenMeshCubicmap(), Generate cubes-based map mesh from image data 788[raymath] REVIEWED: full Matrix functionality to align with GLM in usage 789[raymath] RENAMED: Vector3 functions for consistency: Vector*() renamed to Vector3*() 790[build] Integrate Android APK building into examples Makefile 791[build] Integrate Android APK building into templates Makefiles 792[build] Improved Visual Studio 2015 project, folders, references... 793[templates] Reviewed the full pack to support Android building 794[examples] Reviewed full collection to adapt to raylib changes 795[examples] [textures] ADDED: textures_image_generation 796[examples] [models] ADDED: models_mesh_generation 797[examples] [models] ADDED: models_material_pbr 798[examples] [models] ADDED: models_skybox 799[examples] [models] ADDED: models_yaw_pitch_roll 800[examples] [others] REVIEWED: rlgl_standalone 801[examples] [others] REVIEWED: audio_standalone 802[github] Moved raylib webpage to own repo: github.com/raysan5/raylib.com 803[games] Reviewed game: Koala Seasons 804[*] Updated STB libraries to latest version 805[*] Multiple bugs corrected (check github issues) 806 807----------------------------------------------- 808Release: raylib 1.7.0 (20 May 2017) 809----------------------------------------------- 810NOTE: 811 In this new raylib release, multiple parts of the library have been reviewed for consistency and simplification. 812 It exposes almost 300 functions, around 30 new functions in comparison with previous version and, again, 813 it sets a stepping stone towards raylib future. 814 815BIG changes: 816 - More than 30 new functions added to the library, check list below. 817 - Support of configuration flags on every raylib module, to customize library build. 818 - Improved build system for all supported platforms with a unique Makefile to compile sources. 819 - Complete review of examples and sample games, added new sample material. 820 - Support automatic GIF recording of current window, just pressing Ctrl+F12 821 - Improved library consistency and organization in general. 822 823other changes: 824[core] Added function: SetWindowIcon(), to setup icon by code 825[core] Added function: SetWindowMonitor(), to set current display monitor 826[core] Added function: SetWindowMinSize(), to set minimum resize size 827[core] Added function: TakeScreenshot(), made public to API (also launched internally with F12) 828[core] Added function: GetDirectoryPath(), get directory for a given fileName (with path) 829[core] Added function: GetWorkingDirectory(), get current working directory 830[core] Added function: ChangeDirectory(), change working directory 831[core] Added function: TraceLog(), made public to API 832[core] Improved timing system to avoid busy wait loop on frame sync: Wait() 833[core] Added support for gamepad on HTML5 platform 834[core] Support mouse lock, useful for camera system 835[core] Review functions description comments 836[rlgl] Removed function: GetStandardShader(), removed internal standard shader 837[rlgl] Removed function: CreateLight(), removed internal lighting system 838[rlgl] Removed function: DestroyLight(), removed internal lighting system 839[rlgl] Removed function: InitVrDevice(), removed VR device render, using simulator 840[rlgl] Removed function: CloseVrDevice(), removed VR device render, using simulator 841[rlgl] Removed function: IsVrDeviceReady(), removed VR device render, using simulator 842[rlgl] Removed function: IsVrSimulator(), removed VR device render, using simulator 843[rlgl] Added function: InitVrSimulator(), init VR simulator for selected device 844[rlgl] Added function: CloseVrSimulator(), close VR simulator for current device 845[rlgl] Added function: IsVrSimulatorReady(), detect if VR device is ready 846[rlgl] Added function: BeginVrDrawing(), begin VR simulator stereo rendering 847[rlgl] Added function: EndVrDrawing(), end VR simulator stereo rendering 848[rlgl] Renamed function: ReadTextFile() to LoadText() and exposed to API 849[rlgl] Removed internal lighting system and standard shader, moved to example 850[rlgl] Removed Oculus Rift support, moved to oculus_rift example 851[rlgl] Removed VR device support and replaced by VR simulator 852[shapes] Added function: DrawLineEx(), draw line with QUADS, supports custom line thick 853[shapes] Added function: DrawLineBezier(), draw a line using cubic-bezier curves in-out 854[shapes] Added function: DrawRectanglePro(), draw a color-filled rectangle with pro parameters 855[textures] Removed function: LoadImageFromRES(), redesigning custom RRES fileformat 856[textures] Removed function: LoadTextureFromRES(), redesigning custom RRES fileformat 857[textures] Removed function: LoadTextureEx(), use instead Image -> LoadImagePro(), LoadImageEx() 858[textures] Added function: LoadImagePro()), load image from raw data with parameters 859[textures] Review TraceLog() message when image file not found 860[text] Renamed function: LoadSpriteFontTTF() to LoadSpriteFontEx(), for consistency 861[text] Removed rBMF fileformat support, replaced by .png 862[text] Refactor SpriteFont struct (better for rres custom fileformat) 863[text] Renamed some variables for consistency 864[models] Added function: LoadMesh(), load mesh from file 865[models] Added function: LoadMeshEx(), load mesh from vertex data 866[models] Added function: UnloadMesh(), unload mesh from memory (RAM and/or VRAM) 867[models] Added function: GetCollisionRayMesh(), get collision info between ray and mesh 868[models] Added function: GetCollisionRayTriangle(), get collision info between ray and triangle 869[models] Added function: GetCollisionRayGround(), get collision info between ray and ground plane 870[models] Renamed function: LoadModelEx() to LoadModelFromMesh() 871[models] Removed function: DrawLight(), removed internal lighting system 872[models] Renamed function: LoadModelEx() to LoadModelFromMesh() for consistency 873[models] Removed function: LoadStandardMaterial(), removed internal standard shader 874[models] Removed function: LoadModelFromRES(), redesigning custom RRES fileformat 875[models] Renamed multiple variables for consistency 876[audio] Added function: SetMasterVolume(), define listener volume 877[audio] Added function: ResumeSound(), resume a paused sound 878[audio] Added function: SetMusicLoopCount(), set number of repeats for a music 879[audio] Added function: LoadWaveEx(), load wave from raw audio data 880[audio] Added function: WaveCrop(), crop wave audio data 881[audio] Added function: WaveFormat(), format audio data 882[audio] Removed function: LoadSoundFromRES(), redesigning custom RRES fileformat 883[audio] Added support for 32bit audio samples 884[audio] Preliminary support for multichannel, limited to mono and stereo 885[audio] Make sure buffers are ready for update: UpdateMusicStream() 886[utils] Replaced function: GetExtension() by IsFileExtension() and made public to API 887[utils] Unified function: TraceLog() between Android and other platforms 888[utils] Removed internal function: GetNextPOT(), simplified implementation 889[raymath] Added function: QuaternionToEuler(), to work with Euler angles 890[raymath] Added function: QuaternionFromEuler(), to work with Euler angles 891[raymath] Added multiple Vector2 math functions 892[build] Integrate Android source building into Makefile 893[example] Added example: shapes_lines_bezier 894[example] Added example: text_input_box 895[github] Moved gh-pages branch to master/docs 896[github] Moved rlua.h and Lua examples to own repo: raylib-lua 897[games] Reviewed full games collection 898[games] New game added to collection: Koala Seasons 899[*] Reviewed and improved examples collection (new assets) 900[*] Reorganized library functions, structs, enums 901[*] Updated STB libraries to latest version 902 903----------------------------------------------- 904Release: raylib 1.6.0 (20 November 2016) 905----------------------------------------------- 906NOTE: 907 This new raylib version commemorates raylib 3rd anniversary and represents another complete review of the library. 908 It includes some interesting new features and is a stepping stone towards raylib future. 909 910HUGE changes: 911[rlua] Lua BINDING: Complete raylib Lua binding, ALL raylib functions ported to Lua plus the +60 code examples. 912[audio] COMPLETE REDESIGN: Improved music support and also raw audio data processing and playing, +20 new functions added. 913[physac] COMPLETE REWRITE: Improved performance, functionality and simplified usage, moved to own repository and added multiple examples! 914 915other changes: 916 917[core] Corrected issue on OSX with HighDPI display 918[core] Added flag to allow resizable window 919[core] Allow no default font loading 920[core] Corrected old issue with mouse buttons on web 921[core] Improved gamepad support, unified across platforms 922[core] Gamepad id functionality: GetGamepadName(), IsGamepadName() 923[core] Gamepad buttons/axis checking functionality: 924[core] Reviewed Android key inputs system, unified with desktop 925[rlgl] Redesigned lighting shader system 926[rlgl] Updated standard shader for better performance 927[rlgl] Support alpha on framebuffer: rlglLoadRenderTexture() 928[rlgl] Reviewed UpdateVrTracking() to update camera 929[rlgl] Added IsVrSimulator() to check for VR simulator 930[shapes] Corrected issue on DrawPolyEx() 931[textures] Simplified supported image formats support 932[textures] Improved text drawing within an image: ImageDrawText() 933[textures] Support image alpha mixing: ImageAlphaMask() 934[textures] Support textures filtering: SetTextureFilter() 935[textures] Support textures wrap modes: SetTextureWrap() 936[text] Improved TTF spritefont generation: LoadSpriteFontTTF() 937[text] Improved AngelCode fonts support (unordered chars) 938[text] Added TraceLog info on image spritefont loading 939[text] Improved text measurement: MeasureTextEx() 940[models] Improved OBJ loading flexibility 941[models] Reviewed functions: DrawLine3D(), DrawCircle3D() 942[models] Removed function: ResolveCollisionCubicmap() 943[camera] Redesigned camera system and ported to header-only 944[camera] Removed function: UpdateCameraPlayer() 945[gestures] Redesigned gestures module to header-only 946[audio] Simplified Music loading and playing system 947[audio] Added trace on audio device closing 948[audio] Reviewed Wave struct, improved flexibility 949[audio] Support sound data update: UpdateSound() 950[audio] Added support for FLAC audio loading/streaming 951[raygui] Removed raygui from raylib repo (moved to own repo) 952[build] Added OpenAL static library 953[build] Added Visual Studio 2015 projects 954[build] Support shared/dynamic raylib compilation 955[*] Updated LibOVR to SDK version 1.8 956[*] Updated games to latest raylib version 957[*] Improved examples and added new ones 958[*] Improved Android support 959 960----------------------------------------------- 961Release: raylib 1.5.0 (18 July 2016) 962----------------------------------------------- 963NOTE: 964 Probably this new version is the biggest boost of the library ever, lots of parts of the library have been redesigned, 965 lots of bugs have been solved and some **AMAZING** new features have been added. 966 967HUGE changes: 968[rlgl] OCULUS RIFT CV1: Added support for VR, not oly Oculus Rift CV1 but also stereo rendering simulator (multiplatform). 969[rlgl] MATERIALS SYSTEM: Added support for Materials (.mtl) and multiple material properties: diffuse, specular, normal. 970[rlgl] LIGHTING SYSTEM: Added support for up to 8 lights of 3 different types: Omni, Directional and Spot. 971[physac] REDESIGNED: Improved performance and simplified usage, physic objects now are managed internally in a second thread! 972[audio] CHIPTUNES: Added support for module audio music (.xm, .mod) loading and playing. Multiple mixing channels supported. 973 974other changes: 975 976[core] Review Android button inputs 977[core] Support Android internal data storage 978[core] Renamed WorldToScreen() to GetWorldToScreen() 979[core] Removed function SetCustomCursor() 980[core] Removed functions BeginDrawingEx(), BeginDrawingPro() 981[core] Replaced functions InitDisplay() + InitGraphics() with: InitGraphicsDevice() 982[core] Added support for field-of-view Y (fovy) on 3d Camera 983[core] Added 2D camera mode functions: Begin2dMode() - End2dMode() 984[core] Translate mouse inputs to Android touch/gestures internally 985[core] Translate mouse inputs as touch inputs in HTML5 986[core] Improved function GetKeyPressed() to support multiple keys (including function keys) 987[core] Improved gamepad support, specially for RaspberryPi (including multiple gamepads support) 988[rlgl] Support stereo rendering simulation (duplicate draw calls by viewport, optimized) 989[rlgl] Added distortion shader (embeded) to support custom VR simulator: shader_distortion.h 990[rlgl] Added support for OpenGL 2.1 on desktop 991[rlgl] Improved 2D vs 3D drawing system (lines, triangles, quads) 992[rlgl] Improved DXT-ETC1 support on HTML5 993[rlgl] Review function: rlglUnproject() 994[rlgl] Removed function: rlglInitGraphics(), integrated into rlglInit() 995[rlgl] Updated Mesh and Shader structs 996[rlgl] Simplified internal (default) dynamic buffers 997[rlgl] Added support for indexed and dynamic mesh data 998[rlgl] Set fixed vertex attribs location points 999[rlgl] Improved mesh data loading support 1000[rlgl] Added standard shader (embeded) to support materials and lighting: shader_standard.h 1001[rlgl] Added light functions: CreateLight(), DestroyLight() 1002[rlgl] Added wire mode functions: rlDisableWireMode(), rlEnableWireMode() 1003[rlgl] Review function consistency, added: rlglLoadMesh(), rlglUpdateMesh(), rlglDrawMesh(), rlglUnloadMesh() 1004[rlgl] Replaced SetCustomShader() by: BeginShaderMode() - EndShaderMode() 1005[rlgl] Replaced SetBlendMode() by: BeginBlendMode() - EndBlendMode() 1006[rlgl] Added functions to customize internal matrices: SetMatrixProjection(), SetMatrixModelview() 1007[rlgl] Unified internal shaders to only one default shader 1008[rlgl] Added support for render to texture (RenderTexture2D): 1009 LoadRenderTexture() - UnloadRenderTexture() 1010 BeginTextureMode() - EndTextureMode() 1011[rlgl] Removed SetShaderMap*() functions 1012[rlgl] Redesigned default buffers usage functions: 1013 LoadDefaultBuffers() - UnloadDefaultBuffers() 1014 UpdateDefaultBuffers() - DrawDefaultBuffers() 1015[shapes] Corrected bug on GetCollisionRec() 1016[textures] Added support for Nearest-Neighbor image scaling 1017[textures] Added functions to draw text on image: ImageDrawText(), ImageDrawTextEx() 1018[text] Reorganized internal functions: Added LoadImageFont() 1019[text] Security check for unsupported BMFonts 1020[models] Split mesh creation from model loading on heightmap and cubicmap 1021[models] Updated BoundingBox collision detections 1022[models] Added color parameter to DrawBoundigBox() 1023[models] Removed function: DrawQuad() 1024[models] Removed function: SetModelTexture() 1025[models] Redesigned DrawPlane() to use RL_TRIANGLES 1026[models] Redesigned DrawRectangleV() to use RL_TRIANGLES 1027[models] Redesign to accomodate new materials system: LoadMaterial() 1028[models] Added material functions: LoadDefaultMaterial(), LoadStandardMaterial() 1029[models] Added MTL material loading support: LoadMTL() 1030[models] Added function: DrawLight() 1031[audio] Renamed SoundIsPlaying() to IsSoundPlaying() 1032[audio] Renamed MusicIsPlaying() to IsMusicPlaying() 1033[audio] Support multiple Music streams (indexed) 1034[audio] Support multiple mixing channels 1035[gestures] Improved and reviewed gestures system 1036[raymath] Added QuaternionInvert() 1037[raymath] Removed function: PrintMatrix() 1038[raygui] Ported to header-only library (https://github.com/raysan5/raygui) 1039[shaders] Added depth drawing shader (requires a depth texture) 1040[shaders] Reviewed included shaders and added comments 1041[OpenAL Soft] Updated to latest version (1.17.2) 1042[GLFW3] Updated to latest version (3.2) 1043[stb] Updated to latest headers versions 1044[GLAD] Converted to header only library and simplified to only used extensions 1045[*] Reorganize library folders: external libs moved to src/external folder 1046[*] Reorganize src folder for Android library 1047[*] Review external dependencies usage 1048[*] Improved Linux and OSX build systems 1049[*] Lots of tweaks and bugs corrected all around 1050 1051----------------------------------------------- 1052Release: raylib 1.4.0 (22 February 2016) 1053----------------------------------------------- 1054NOTE: 1055 This version supposed another big improvement for raylib, including new modules and new features. 1056 More than 30 new functions have been added to previous raylib version. 1057 Around 8 new examples and +10 new game samples have been added. 1058 1059BIG changes: 1060[textures] IMAGE MANIPULATION: Functions to crop, resize, colorize, flip, dither and even draw image-to-image or text-to-image. 1061[text] SPRITEFONT SUPPORT: Added support for AngelCode fonts (.fnt) and TrueType fonts (.ttf). 1062[gestures] REDESIGN: Gestures system simplified and prepared to process generic touch events, including mouse events (multiplatform). 1063[physac] NEW MODULE: Basic 2D physics support, use colliders and rigidbodies; apply forces to physic objects. 1064 1065other changes: 1066 1067[rlgl] Removed GLEW library dependency, now using GLAD 1068[rlgl] Implemented alternative to glGetTexImage() on OpenGL ES 1069[rlgl] Using depth data on batch drawing 1070[rlgl] Reviewed glReadPixels() function 1071[core][rlgl] Reviewed raycast system, now 3D picking works 1072[core] Android: Reviewed Android App cycle, paused if inactive 1073[shaders] Implemented Blinn-Phong lighting shading model 1074[textures] Implemented Floyd-Steinberg dithering - ImageDither() 1075[text] Added line-break support to DrawText() 1076[text] Added TrueType Fonts support (using stb_truetype) 1077[models] Implement function: CalculateBoundingBox(Mesh mesh) 1078[models] Added functions to check Ray collisions 1079[models] Improve map resolution control on LoadHeightmap() 1080[camera] Corrected small-glitch on zoom-in with mouse-wheel 1081[gestures] Implemented SetGesturesEnabled() to enable only some gestures 1082[gestures] Implemented GetElapsedTime() on Windows system 1083[gestures] Support mouse gestures for desktop platforms 1084[raymath] Complete review of the module and converted to header-only 1085[easings] Added new module for easing animations 1086[stb] Updated to latest headers versions 1087[*] Lots of tweaks around 1088 1089----------------------------------------------- 1090Release: raylib 1.3.0 (01 September 2015) 1091----------------------------------------------- 1092NOTE: 1093 This version supposed a big boost for raylib, new modules have been added with lots of features. 1094 Most of the modules have been completely reviewed to accomodate to the new features. 1095 Over 50 new functions have been added to previous raylib version. 1096 Most of the examples have been redone and +10 new advanced examples have been added. 1097 1098BIG changes: 1099[rlgl] SHADERS: Support for model shaders and postprocessing shaders (multiple functions) 1100[textures] FORMATS: Support for multiple internal formats, including compressed formats 1101[camera] NEW MODULE: Set of cameras for 3d view: Free, Orbital, 1st person, 3rd person 1102[gestures] NEW MODULE: Gestures system for Android and HTML5 platforms 1103[raygui] NEW MODULE: Set of IMGUI elements for tools development (experimental) 1104 1105other changes: 1106 1107[rlgl] Added check for OpenGL supported extensions 1108[rlgl] Added function SetBlenMode() to select some predefined blending modes 1109[core] Added support for drop&drag of external files into running program 1110[core] Added functions ShowCursor(), HideCursor(), IsCursorHidden() 1111[core] Renamed function SetFlags() to SetConfigFlags() 1112[shapes] Simplified some functions to improve performance 1113[textures] Review of Image struct to support multiple data formats 1114[textures] Added function LoadImageEx() 1115[textures] Added function LoadImageRaw() 1116[textures] Added function LoadTextureEx() 1117[textures] Simplified function parameters LoadTextureFromImage() 1118[textures] Added function GetImageData() 1119[textures] Added function GetTextureData() 1120[textures] Renamed function ConvertToPOT() to ImageConvertToPOT() 1121[textures] Added function ImageConvertFormat() 1122[textures] Added function GenTextureMipmaps() 1123[text] Added support for Latin-1 Extended characters for default font 1124[text] Redesigned SpriteFont struct, replaced Character struct by Rectangle 1125[text] Removed function GetFontBaseSize(), use directly spriteFont.size 1126[models] Review of struct: Model (added shaders support) 1127[models] Added 3d collision functions (sphere vs sphere vs box vs box) 1128[models] Added function DrawCubeTexture() 1129[models] Added function DrawQuad() 1130[models] Added function DrawRay() 1131[models] Simplified funtion DrawPlane() 1132[models] Removed function DrawPlaneEx() 1133[models] Simplified funtion DrawGizmo() 1134[models] Removed function DrawGizmoEx() 1135[models] Added function LoadModelEx() 1136[models] Review of function LoadCubicMap() 1137[models] Added function ResolveCollisionCubicmap() 1138[audio] Decopupled from raylib, now this module can be used as standalone 1139[audio] Added function UpdateMusicStream() 1140[raymath] Complete review of the module 1141[stb] Updated to latest headers versions 1142[*] Lots of tweaks around 1143 1144----------------------------------------------- 1145Release: raylib 1.2.2 (31 December 2014) 1146----------------------------------------------- 1147[*] Added support for HTML5 compiling (emscripten, asm.js) 1148[core] Corrected bug on input handling (keyboard and mouse) 1149[textures] Renamed function CreateTexture() to LoadTextureFromImage() 1150[textures] Added function ConvertToPOT() 1151[rlgl] Added support for color tint on models on GL 3.3+ and ES2 1152[rlgl] Added support for normals on models 1153[models] Corrected bug on DrawBillboard() 1154[models] Corrected bug on DrawHeightmap() 1155[models] Renamed LoadCubesmap() to LoadCubicmap() 1156[audio] Added function LoadSoundFromWave() 1157[makefile] Added support for Linux and OSX compiling 1158[stb] Updated to latest headers versions 1159[*] Lots of tweaks around 1160 1161--------------------------------------------------------------- 1162Update: raylib 1.2.1 (17 October 2014) (Small Fixes Update) 1163--------------------------------------------------------------- 1164[core] Added function SetupFlags() to preconfigure raylib Window 1165[core] Corrected bug on fullscreen mode 1166[rlgl] rlglDrawmodel() - Added rotation on Y axis 1167[text] MeasureTextEx() - Corrected bug on measures for default font 1168 1169----------------------------------------------- 1170Release: raylib 1.2 (16 September 2014) 1171----------------------------------------------- 1172NOTE: 1173 This version supposed a complete redesign of the [core] module to support Android and Raspberry Pi. 1174 Multiples modules have also been tweaked to accomodate to the new platforms, specially [rlgl] 1175 1176[core] Added multiple platforms support: Android and Raspberry Pi 1177[core] InitWindow() - Complete rewrite and split for Android 1178[core] InitDisplay() - Internal function added to calculate proper display size 1179[core] InitGraphics() - Internal function where OpenGL graphics are initialized 1180[core] Complete refactoring of input functions to accomodate to new platforms 1181[core] Mouse and Keyboard raw data reading functions added for Raspberry Pi 1182[core] GetTouchX(), GetTouchY() - Added for Android 1183[core] Added Android callbacks to process inputs and Android activity commands 1184[rlgl] Adjusted buffers depending on platform 1185[rlgl] Added security check in case deployed vertex excess buffer size 1186[rlgl] Adjusted indices type depending on GL version (int or short) 1187[rlgl] Fallback to VBOs only usage if VAOs not supported on ES2 1188[rlgl] rlglLoadModel() stores vbo ids on new Model struct 1189[textures] Added support for PKM files (ETC1, ETC2 compression support) 1190[shapes] DrawRectangleV() - Modified, depending on OGL version uses TRIANGLES or QUADS 1191[text] LoadSpriteFont() - Modified to use LoadImage() 1192[models] Minor changes on models loading to accomodate to new Model struct 1193[audio] PauseMusicStream(), ResumeMusicStream() - Added 1194[audio] Reduced music buffer size to avoid stalls on Raspberry Pi 1195[src] Added makefile for Windows and RPI 1196[src] Added resources file (raylib icon and executable info) 1197[examples] Added makefile for Windows and RPI 1198[examples] Renamed and merged with test examples for coherence with module names 1199[templates] Added multiple templates to be use as a base-code for games 1200 1201----------------------------------------------- 1202Release: raylib 1.1.1 (22 July 2014) 1203----------------------------------------------- 1204[core] ShowLogo() - To enable raylib logo animation at startup 1205[core] Corrected bug with window resizing 1206[rlgl] Redefined colors arrays to use byte instead of float 1207[rlgl] Removed double buffer system (no performance improvement) 1208[rlgl] rlglDraw() - Reorganized buffers drawing order 1209[rlgl] Corrected bug on screen resizing 1210[shapes] DrawRectangle() - Use QUADS instead of TRIANGLES 1211[models] DrawSphereWires() - Corrected some issues 1212[models] LoadOBJ() - Redesigned to support multiple meshes 1213[models] LoadCubesMap() - Loading a map as cubes (by pixel color) 1214[textures] Added security check if file doesn't exist 1215[text] Corrected bug on SpriteFont loading 1216[examples] Corrected some 3d examples 1217[test] Added cubesmap loading test 1218 1219----------------------------------------------- 1220Release: raylib 1.1.0 (19 April 2014) 1221----------------------------------------------- 1222NOTE: 1223 This version supposed a complete internal redesign of the library to support OpenGL 3.3+ and OpenGL ES 2.0. 1224 New module [rlgl] has been added to 'translate' immediate mode style functions (i.e. rlVertex3f()) to GL 1.1, 3.3+ or ES2. 1225 Another new module [raymath] has also been added with lot of useful 3D math vector-matrix-quaternion functions. 1226 1227[rlgl] New module, abstracts OpenGL rendering (multiple versions support) 1228[raymath] New module, useful 3D math vector-matrix-quaternion functions 1229[core] Adapt all OpenGL code (initialization, drawing) to use [rlgl] 1230[shapes] Rewrite all shapes drawing functions to use [rlgl] 1231[textures] Adapt texture GPU loading to use [rlgl] 1232[textures] Added support for DDS images (compressed and uncompressed) 1233[textures] CreateTexture() - Redesigned to add mipmap automatic generation 1234[textures] DrawTexturePro() - Redesigned and corrected bugs 1235[models] Rewrite all 3d-shapes drawing functions to use [rlgl] 1236[models] Adapt model loading and drawing to use [rlgl] 1237[models] Model struct updated to include texture id 1238[models] SetModelTexture() - Added, link a texture to a model 1239[models] DrawModelEx() - Redesigned with extended parameters 1240[audio] Added music streaming support (OGG files) 1241[audio] Added support for OGG files as Sound 1242[audio] PlayMusicStream() - Added, open a new music stream and play it 1243[audio] StopMusicStream() - Added, stop music stream playing and close stream 1244[audio] PauseMusicStream() - Added, pause music stream playing 1245[audio] MusicIsPlaying() - Added, to check if music is playing 1246[audio] SetMusicVolume() - Added, set volume for music 1247[audio] GetMusicTimeLength() - Added, get current music time length (in seconds) 1248[audio] GetMusicTimePlayed() - Added, get current music time played (in seconds) 1249[utils] Added log tracing functionality - TraceLog(), TraceLogOpen(), TraceLogClose() 1250[*] Log tracing messages all around the code 1251 1252----------------------------------------------- 1253Release: raylib 1.0.6 (16 March 2014) 1254----------------------------------------------- 1255[core] Removed unused lighting-system code 1256[core] Removed SetPerspective() function, calculated directly 1257[core] Unload and reload default font on fullscreen toggle 1258[core] Corrected bug gamepad buttons checking if no gamepad available 1259[texture] DrawTextureV() - Added, to draw using Vector2 for position 1260[texture] LoadTexture() - Redesigned, now uses LoadImage() + CreateTexture() 1261[text] FormatText() - Corrected memory leak bug 1262[models] Added Matrix struct and related functions 1263[models] DrawBillboard() - Reviewed, now it works! 1264[models] DrawBillboardRec() - Reviewed, now it works! 1265[tests] Added folder with multiple tests for new functions 1266 1267----------------------------------------------- 1268Update: raylib 1.0.5 (28 January 2014) 1269----------------------------------------------- 1270[audio] LoadSound() - Corrected a bug, WAV file was not closed! 1271[core] GetMouseWheelMove() - Added, check mouse wheel Y movement 1272[texture] CreateTexture2D() renamed to CreateTexture() 1273[models] LoadHeightmap() - Added, Heightmap can be loaded as a Model 1274[tool] rREM updated, now supports (partially) drag and drop of files 1275 1276----------------------------------------------- 1277Release: raylib 1.0.4 (23 January 2014) 1278----------------------------------------------- 1279[tool] Published a first alpha version of rREM tool (raylib Resource Embedder) 1280[core] GetRandomValue() - Bug corrected, now works right 1281[core] Fade() - Added, fades a color to an alpha percentadge 1282[core] WriteBitmap() - Moved to new module: utils.c, not used anymore 1283[core] TakeScreenshot() - Now uses WritePNG() (utils.c) 1284[utils] New module created with utility functions 1285[utils] WritePNG() - Write a PNG file (used by TakeScreenshot() on core) 1286[utils] DecompressData() - Added, used for rRES resource data decompresion 1287[textures] LoadImageFromRES() - Added, load an image from a rRES resource file 1288[textures] LoadTextureFromRES() - Added, load a texture from a rRES resource file 1289[audio] LoadSoundFromRES() - Added, load a sound from a rRES resource file 1290[audio] IsPlaying() - Added, check if a sound is currently playing 1291[audio] SetVolume() - Added, set the volume for a sound 1292[audio] SetPitch() - Added, set the pitch for a sound 1293[examples] ex06a_color_select completed 1294[examples] ex06b_logo_anim completed 1295[examples] ex06c_font select completed 1296 1297----------------------------------------------- 1298Release: raylib 1.0.3 (19 December 2013) 1299----------------------------------------------- 1300[fonts] Added 8 rBMF free fonts to be used on projects! 1301[text] LoadSpriteFont() - Now supports rBMF file loading (raylib Bitmap Font) 1302[examples] ex05a_sprite_fonts completed 1303[examples] ex05b_rbmf_fonts completed 1304[core] InitWindowEx() - InitWindow with extended parameters, resizing option and custom cursor! 1305[core] GetRandomValue() - Added, returns a random value within a range (int) 1306[core] SetExitKey() - Added, sets a key to exit program (default is ESC) 1307[core] Custom cursor not drawn when mouse out of screen 1308[shapes] CheckCollisionPointRec() - Added, check collision between point and rectangle 1309[shapes] CheckCollisionPointCircle() - Added, check collision between point and circle 1310[shapes] CheckCollisionPointTriangle() - Added, check collision between point and triangle 1311[shapes] DrawPoly() - Added, draw regular polygons of n sides, rotation can be defined! 1312 1313----------------------------------------------- 1314Release: raylib 1.0.2 (1 December 2013) 1315----------------------------------------------- 1316[text] GetDefaultFont() - Added, get default SpriteFont to be used on DrawTextEx() 1317[shapes] CheckCollisionRecs() - Added, check collision between rectangles 1318[shapes] CheckCollisionCircles() - Added, check collision between circles 1319[shapes] CheckCollisionCircleRec() - Added, check collision circle-rectangle 1320[shapes] GetCollisionRec() - Added, get collision rectangle 1321[textures] CreateTexture2D() - Added, create Texture2D from Image data 1322[audio] Fixed WAV loading function, now audio works! 1323 1324----------------------------------------------- 1325Update: raylib 1.0.1 (28 November 2013) 1326----------------------------------------------- 1327[text] DrawText() - Removed spacing parameter 1328[text] MeasureText() - Removed spacing parameter 1329[text] DrawFps() - Renamed to DrawFPS() for coherence with similar function 1330[core] IsKeyPressed() - Change functionality, check if key pressed once 1331[core] IsKeyDown() - Added, check if key is being pressed 1332[core] IsKeyReleased() - Change functionality, check if key released once 1333[core] IsKeyUp() - Added, check if key is being NOT pressed 1334[core] IsMouseButtonDown() - Added, check if mouse button is being pressed 1335[core] IsMouseButtonPressed() - Change functionality, check if mouse button pressed once 1336[core] IsMouseButtonUp() - Added, check if mouse button is NOT being pressed 1337[core] IsMouseButtonReleased() - Change functionality, check if mouse button released once 1338[textures] DrawTexturePro() - Added, texture drawing with 'pro' parameters 1339[examples] Function changes applied to ALL examples 1340 1341----------------------------------------------- 1342Release: raylib 1.0.0 (18 November 2013) 1343----------------------------------------------- 1344* Initial version 1345* 6 Modules provided: 1346 - core: basic window/context creation functions, input management, timing functions 1347 - shapes: basic shapes drawing functions 1348 - textures: image data loading and conversion to OpenGL textures 1349 - text: text drawing, sprite fonts loading, default font loading 1350 - models: basic 3d shapes drawing, OBJ models loading and drawing 1351 - audio: audio device initialization, WAV files loading and playing 1352