├── .gitignore ├── Makefile ├── raylib-5.0_linux_amd64 ├── lib │ └── libraylib.a ├── LICENSE ├── README.md └── CHANGELOG ├── README.md ├── LICENSE └── game.ll /.gitignore: -------------------------------------------------------------------------------- 1 | game 2 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | game: game.ll 2 | clang -o game game.ll -L./raylib-5.0_linux_amd64/lib -l:libraylib.a -lm 3 | -------------------------------------------------------------------------------- /raylib-5.0_linux_amd64/lib/libraylib.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsoding/raylib-llvm-ir/HEAD/raylib-5.0_linux_amd64/lib/libraylib.a -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Raylib on LLVM IR Demo 2 | 3 | Just a simple proof-of-concept of using Raylib from LLVM IR directly 4 | 5 | ## Quick Start 6 | 7 | ```console 8 | $ make 9 | $ ./game 10 | ``` 11 | -------------------------------------------------------------------------------- /raylib-5.0_linux_amd64/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013-2023 Ramon Santamaria (@raysan5) 2 | 3 | This software is provided "as-is", without any express or implied warranty. In no event 4 | will the authors be held liable for any damages arising from the use of this software. 5 | 6 | Permission is granted to anyone to use this software for any purpose, including commercial 7 | applications, and to alter it and redistribute it freely, subject to the following restrictions: 8 | 9 | 1. The origin of this software must not be misrepresented; you must not claim that you 10 | wrote the original software. If you use this software in a product, an acknowledgment 11 | in the product documentation would be appreciated but is not required. 12 | 13 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented 14 | as being the original software. 15 | 16 | 3. This notice may not be removed or altered from any source distribution. 17 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2024 Alexey Kutepov 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /game.ll: -------------------------------------------------------------------------------- 1 | ; ModuleID = 'main.c' 2 | target triple = "x86_64-pc-linux-gnu" 3 | 4 | @title = constant [17 x i8] c"Hello, from LLVM\00" 5 | @width = constant i32 100 6 | @height = constant i32 100 7 | 8 | define void @update(i32* %x, i32* %dx, i32 %w) { 9 | %vx = load i32, i32* %x 10 | %vdx = load i32, i32* %dx 11 | %x1 = add nsw i32 %vx, %vdx 12 | 13 | %1 = icmp slt i32 %x1, 0 14 | %2 = icmp sgt i32 %x1, %w 15 | %3 = or i1 %1, %2 16 | br i1 %3, label %update-dx, label %update-x 17 | update-dx: 18 | %vdx1 = sub nuw i32 0, %vdx 19 | store i32 %vdx1, i32* %dx 20 | ret void 21 | update-x: 22 | store i32 %x1, i32* %x 23 | ret void 24 | } 25 | 26 | ; Function Attrs: noinline nounwind optnone uwtable 27 | define i32 @main() { 28 | %x = alloca i32 29 | %y = alloca i32 30 | %dx = alloca i32 31 | %dy = alloca i32 32 | store i32 200, i32* %x 33 | store i32 100, i32* %y 34 | store i32 1, i32* %dx 35 | store i32 1, i32* %dy 36 | call void @InitWindow(i32 800, i32 600, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @title, i64 0, i64 0)) 37 | br label %cond 38 | cond: 39 | %check = call i1 @WindowShouldClose() 40 | br i1 %check, label %over, label %body 41 | body: 42 | call void @BeginDrawing() 43 | call void @ClearBackground(i32 u0xFF181818) 44 | 45 | %vx = load i32, i32* %x 46 | %vy = load i32, i32* %y 47 | %vdx = load i32, i32* %dx 48 | %vdy = load i32, i32* %dy 49 | call void @DrawRectangle(i32 %vx, i32 %vy, i32 100, i32 100, i32 u0xFF5555FF) 50 | call void @update(i32* %x, i32* %dx, i32 700) 51 | call void @update(i32* %y, i32* %dy, i32 500) 52 | 53 | call void @EndDrawing() 54 | br label %cond 55 | over: 56 | call void @CloseWindow() 57 | ret i32 0 58 | } 59 | 60 | declare void @InitWindow(i32 noundef, i32 noundef, i8* noundef) 61 | declare void @CloseWindow() 62 | declare void @BeginDrawing() 63 | declare void @EndDrawing() 64 | declare void @ClearBackground(i32) 65 | declare i1 @WindowShouldClose() 66 | declare void @DrawRectangle(i32, i32, i32, i32, i32) 67 | -------------------------------------------------------------------------------- /raylib-5.0_linux_amd64/README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | **raylib is a simple and easy-to-use library to enjoy videogames programming.** 4 | 5 | raylib is highly inspired by Borland BGI graphics lib and by XNA framework and it's especially well suited for prototyping, tooling, graphical applications, embedded systems and education. 6 | 7 | *NOTE for ADVENTURERS: raylib is a programming library to enjoy videogames programming; no fancy interface, no visual helpers, no debug button... just coding in the most pure spartan-programmers way.* 8 | 9 | Ready to learn? Jump to [code examples!](https://www.raylib.com/examples.html) 10 | 11 | --- 12 | 13 |
14 | 15 | [![GitHub Releases Downloads](https://img.shields.io/github/downloads/raysan5/raylib/total)](https://github.com/raysan5/raylib/releases) 16 | [![GitHub Stars](https://img.shields.io/github/stars/raysan5/raylib?style=flat&label=stars)](https://github.com/raysan5/raylib/stargazers) 17 | [![GitHub commits since tagged version](https://img.shields.io/github/commits-since/raysan5/raylib/4.5.0)](https://github.com/raysan5/raylib/commits/master) 18 | [![GitHub Sponsors](https://img.shields.io/github/sponsors/raysan5?label=sponsors)](https://github.com/sponsors/raysan5) 19 | [![Packaging Status](https://repology.org/badge/tiny-repos/raylib.svg)](https://repology.org/project/raylib/versions) 20 | [![License](https://img.shields.io/badge/license-zlib%2Flibpng-blue.svg)](LICENSE) 21 | 22 | [![Discord Members](https://img.shields.io/discord/426912293134270465.svg?label=Discord&logo=discord)](https://discord.gg/raylib) 23 | [![Subreddit Subscribers](https://img.shields.io/reddit/subreddit-subscribers/raylib?label=reddit%20r%2Fraylib&logo=reddit)](https://www.reddit.com/r/raylib/) 24 | [![Youtube Subscribers](https://img.shields.io/youtube/channel/subscribers/UC8WIBkhYb5sBNqXO1mZ7WSQ?style=flat&label=Youtube&logo=youtube)](https://www.youtube.com/c/raylib) 25 | [![Twitch Status](https://img.shields.io/twitch/status/raysan5?style=flat&label=Twitch&logo=twitch)](https://www.twitch.tv/raysan5) 26 | 27 | [![Windows](https://github.com/raysan5/raylib/workflows/Windows/badge.svg)](https://github.com/raysan5/raylib/actions?query=workflow%3AWindows) 28 | [![Linux](https://github.com/raysan5/raylib/workflows/Linux/badge.svg)](https://github.com/raysan5/raylib/actions?query=workflow%3ALinux) 29 | [![macOS](https://github.com/raysan5/raylib/workflows/macOS/badge.svg)](https://github.com/raysan5/raylib/actions?query=workflow%3AmacOS) 30 | [![WebAssembly](https://github.com/raysan5/raylib/workflows/WebAssembly/badge.svg)](https://github.com/raysan5/raylib/actions?query=workflow%3AWebAssembly) 31 | 32 | [![CMakeBuilds](https://github.com/raysan5/raylib/workflows/CMakeBuilds/badge.svg)](https://github.com/raysan5/raylib/actions?query=workflow%3ACMakeBuilds) 33 | [![Windows Examples](https://github.com/raysan5/raylib/actions/workflows/windows_examples.yml/badge.svg)](https://github.com/raysan5/raylib/actions/workflows/windows_examples.yml) 34 | [![Linux Examples](https://github.com/raysan5/raylib/actions/workflows/linux_examples.yml/badge.svg)](https://github.com/raysan5/raylib/actions/workflows/linux_examples.yml) 35 | 36 | features 37 | -------- 38 | - **NO external dependencies**, all required libraries are [bundled into raylib](https://github.com/raysan5/raylib/tree/master/src/external) 39 | - Multiple platforms supported: **Windows, Linux, MacOS, RPI, Android, HTML5... and more!** 40 | - Written in plain C code (C99) using PascalCase/camelCase notation 41 | - Hardware accelerated with OpenGL (**1.1, 2.1, 3.3, 4.3, ES 2.0, ES 3.0**) 42 | - **Unique OpenGL abstraction layer** (usable as standalone module): [rlgl](https://github.com/raysan5/raylib/blob/master/src/rlgl.h) 43 | - Multiple **Fonts** formats supported (TTF, OTF, Image fonts, AngelCode fonts) 44 | - Multiple texture formats supported, including **compressed formats** (DXT, ETC, ASTC) 45 | - **Full 3D support**, including 3D Shapes, Models, Billboards, Heightmaps and more! 46 | - Flexible Materials system, supporting classic maps and **PBR maps** 47 | - **Animated 3D models** supported (skeletal bones animation) (IQM, M3D, glTF) 48 | - Shaders support, including model shaders and **postprocessing** shaders 49 | - **Powerful math module** for Vector, Matrix and Quaternion operations: [raymath](https://github.com/raysan5/raylib/blob/master/src/raymath.h) 50 | - Audio loading and playing with streaming support (WAV, QOA, OGG, MP3, FLAC, XM, MOD) 51 | - **VR stereo rendering** support with configurable HMD device parameters 52 | - Huge examples collection with [+140 code examples](https://github.com/raysan5/raylib/tree/master/examples)! 53 | - Bindings to [+70 programming languages](https://github.com/raysan5/raylib/blob/master/BINDINGS.md)! 54 | - **Free and open source** 55 | 56 | basic example 57 | -------------- 58 | This is a basic raylib example, it creates a window and draws the text `"Congrats! You created your first window!"` in the middle of the screen. Check this example [running live on web here](https://www.raylib.com/examples/core/loader.html?name=core_basic_window). 59 | ```c 60 | #include "raylib.h" 61 | 62 | int main(void) 63 | { 64 | InitWindow(800, 450, "raylib [core] example - basic window"); 65 | 66 | while (!WindowShouldClose()) 67 | { 68 | BeginDrawing(); 69 | ClearBackground(RAYWHITE); 70 | DrawText("Congrats! You created your first window!", 190, 200, 20, LIGHTGRAY); 71 | EndDrawing(); 72 | } 73 | 74 | CloseWindow(); 75 | 76 | return 0; 77 | } 78 | ``` 79 | 80 | build and installation 81 | ---------------------- 82 | 83 | raylib binary releases for Windows, Linux, macOS, Android and HTML5 are available at the [Github Releases page](https://github.com/raysan5/raylib/releases). 84 | 85 | raylib is also available via multiple [package managers](https://github.com/raysan5/raylib/issues/613) on multiple OS distributions. 86 | 87 | #### Installing and building raylib on multiple platforms 88 | 89 | [raylib Wiki](https://github.com/raysan5/raylib/wiki#development-platforms) contains detailed instructions on building and usage on multiple platforms. 90 | 91 | - [Working on Windows](https://github.com/raysan5/raylib/wiki/Working-on-Windows) 92 | - [Working on macOS](https://github.com/raysan5/raylib/wiki/Working-on-macOS) 93 | - [Working on GNU Linux](https://github.com/raysan5/raylib/wiki/Working-on-GNU-Linux) 94 | - [Working on Chrome OS](https://github.com/raysan5/raylib/wiki/Working-on-Chrome-OS) 95 | - [Working on FreeBSD](https://github.com/raysan5/raylib/wiki/Working-on-FreeBSD) 96 | - [Working on Raspberry Pi](https://github.com/raysan5/raylib/wiki/Working-on-Raspberry-Pi) 97 | - [Working for Android](https://github.com/raysan5/raylib/wiki/Working-for-Android) 98 | - [Working for Web (HTML5)](https://github.com/raysan5/raylib/wiki/Working-for-Web-(HTML5)) 99 | - [Working anywhere with CMake](https://github.com/raysan5/raylib/wiki/Working-with-CMake) 100 | 101 | *Note that the Wiki is open for edit, if you find some issues while building raylib for your target platform, feel free to edit the Wiki or open an issue related to it.* 102 | 103 | #### Setup raylib with multiple IDEs 104 | 105 | raylib has been developed on Windows platform using [Notepad++](https://notepad-plus-plus.org/) and [MinGW GCC](https://www.mingw-w64.org/) compiler but it can be used with other IDEs on multiple platforms. 106 | 107 | [Projects directory](https://github.com/raysan5/raylib/tree/master/projects) contains several ready-to-use **project templates** to build raylib and code examples with multiple IDEs. 108 | 109 | *Note that there are lots of IDEs supported, some of the provided templates could require some review, so please, if you find some issue with a template or you think they could be improved, feel free to send a PR or open a related issue.* 110 | 111 | learning and docs 112 | ------------------ 113 | 114 | raylib is designed to be learned using [the examples](https://github.com/raysan5/raylib/tree/master/examples) as the main reference. There is no standard API documentation but there is a [**cheatsheet**](https://www.raylib.com/cheatsheet/cheatsheet.html) containing all the functions available on the library a short description of each one of them, input parameters and result value names should be intuitive enough to understand how each function works. 115 | 116 | Some additional documentation about raylib design can be found in [raylib GitHub Wiki](https://github.com/raysan5/raylib/wiki). Here are the relevant links: 117 | 118 | - [raylib cheatsheet](https://www.raylib.com/cheatsheet/cheatsheet.html) 119 | - [raylib architecture](https://github.com/raysan5/raylib/wiki/raylib-architecture) 120 | - [raylib library design](https://github.com/raysan5/raylib/wiki) 121 | - [raylib examples collection](https://github.com/raysan5/raylib/tree/master/examples) 122 | - [raylib games collection](https://github.com/raysan5/raylib-games) 123 | 124 | 125 | contact and networks 126 | --------------------- 127 | 128 | raylib is present in several networks and raylib community is growing everyday. If you are using raylib and enjoying it, feel free to join us in any of these networks. The most active network is our [Discord server](https://discord.gg/raylib)! :) 129 | 130 | - Webpage: [https://www.raylib.com](https://www.raylib.com) 131 | - Discord: [https://discord.gg/raylib](https://discord.gg/raylib) 132 | - Twitter: [https://www.twitter.com/raysan5](https://www.twitter.com/raysan5) 133 | - Twitch: [https://www.twitch.tv/raysan5](https://www.twitch.tv/raysan5) 134 | - Reddit: [https://www.reddit.com/r/raylib](https://www.reddit.com/r/raylib) 135 | - Patreon: [https://www.patreon.com/raylib](https://www.patreon.com/raylib) 136 | - YouTube: [https://www.youtube.com/channel/raylib](https://www.youtube.com/c/raylib) 137 | 138 | contributors 139 | ------------ 140 | 141 | 142 | 143 | 144 | 145 | license 146 | ------- 147 | 148 | raylib is licensed under an unmodified zlib/libpng license, which is an OSI-certified, BSD-like license that allows static linking with closed source software. Check [LICENSE](LICENSE) for further details. 149 | 150 | raylib uses internally some libraries for window/graphics/inputs management and also to support different file formats loading, all those libraries are embedded with and are available in [src/external](https://github.com/raysan5/raylib/tree/master/src/external) directory. Check [raylib dependencies LICENSES](https://github.com/raysan5/raylib/wiki/raylib-dependencies) on [raylib Wiki](https://github.com/raysan5/raylib/wiki) for details. 151 | -------------------------------------------------------------------------------- /raylib-5.0_linux_amd64/CHANGELOG: -------------------------------------------------------------------------------- 1 | changelog 2 | --------- 3 | 4 | Current Release: raylib 5.0 (18 November 2023) 5 | 6 | ------------------------------------------------------------------------- 7 | Release: raylib 5.0 - 10th Anniversary Edition (18 November 2023) 8 | ------------------------------------------------------------------------- 9 | KEY CHANGES: 10 | - REDESIGNED: rcore module platform-split, by @ubkp, @michaelfiber, @Bigfoot71, @raysan5 11 | - ADDED: New platform backend supported: SDL 12 | - ADDED: New platform backend supported: Nintendo Switch (closed source) 13 | - ADDED: New Splines drawing and evaluation API 14 | - ADDED: New pseudo-random numbers generator: rprand 15 | - ADDED: Automation Events System API 16 | - UPDATED: raygui 4.0: New version of this immediate-mode gui system for tools development with raylib 17 | 18 | Detailed changes: 19 | [rcore] ADDED: RAYLIB_VERSION_* values to raylib.h (#2856) by @RobLoach 20 | [rcore] ADDED: IsKeyPressedRepeat() on PLATFORM_DESKTOP (#3245) by @actondev 21 | [rcore] ADDED: SetWindowTitle() for PLATFORM_WEB (#3222) by @VitusVeit 22 | [rcore] ADDED: FLAG_WINDOW_RESIZABLE for web (#3305) by @Peter0x44 23 | [rcore] ADDED: SetWindowMaxSize() for desktop and web (#3309) by @ubkp 24 | [rcore] ADDED: SetMouseCursor() for PLATFORM_WEB (#3414) by @BeardedBread 25 | [rcore] ADDED: LoadRandomSequence()/UnloadRandomSequence() by @raysan5 26 | [rcore] REMOVED: PLATFORM_RPI (#3232) by @michaelfiber 27 | [rcore] REVIEWED: GetFileLength(), added comment (#3262) by @raysan5 28 | [rcore] REVIEWED: Default shaders precission issue on PLATFORM_WEB (#3261) by @branc116 29 | [rcore] REVIEWED: IsKey*() key validation checks (#3256) by @n77y 30 | [rcore] REVIEWED: SetClipboardText() for PLATFORM_WEB (#3257) by @ubkp 31 | [rcore] REVIEWED: Check if Ctrl modifier is among the currently set modifiers (#3230) by @mohad12211 32 | [rcore] REVIEWED: Android app black screen when reopening by @Bigfoot71 33 | [rcore] REVIEWED: Warnings when casting int to floats (#3218) by @JeffM2501 34 | [rcore] REVIEWED: GetCurrentMonitor() detection inconsistency issue (#3215) by @ubkp 35 | [rcore] REVIEWED: SetWindowMonitor() to no longer force fullscreen (#3209) by @ubkp 36 | [rcore] REVIEWED: Fix mouse wheel not working in PLATFORM_RPI or PLATFORM_DRM (#3193) by @ubkp 37 | [rcore] REVIEWED: GetMonitorName() description (#3184) (#3189) by @danilwhale 38 | [rcore] REVIEWED: BeginScissorMode(), identify rendering to texture (#3510) by @gulrak 39 | [rcore] REVIEWED: Window flags order (#3114) by @lesleyrs 40 | [rcore] REVIEWED: Full movement for right analog stick (#3095) by @PixelPhobicGames 41 | [rcore] REVIEWED: Fix Android app freeze after calling CloseWindow() (#3067) by @Bigfoot71 42 | [rcore] REVIEWED: Lazy loading of default font used on image drawing (no InitWindow) by @raysan5 43 | [rcore] REVIEWED: Minor tweaks to raylib events automation system @raysan5 44 | [rcore] REVIEWED: GetCurrentMonitor() bugfix (#3058) by @hamyyy 45 | [rcore] REVIEWED: Update CORE.Input.Touch.pointCount (#3024) by @raysan5 46 | [rcore] REVIEWED: Mouse offset and scaling must be considered also on web! 47 | [rcore] REVIEWED: CompressData(), possible stack overflow 48 | [rcore] REVIEWED: GetWorldToScreenEx() (#3351) by @Brian-ED 49 | [rcore] REVIEWED: Fix GetMouseDelta() issue for Android (#3404) by @Bigfoot71 50 | [rcore] REVIEWED: GetFPS(), reset FPS averages when window is inited (#3445) by @JeffM2501 51 | [rcore] REVIEWED: GetCurrentMonitor(), check window center position by @M374LX 52 | [rcore] REVIEWED: GetRender*() issue on macOS highDPI (#3367) by @raysan5 53 | [rcore] REVIEWED: ScanDirectoryFiles*(), paths building slashes sides (#3507) 54 | [rlgl] ADDED: Experimental support for OpenGL ES 3.0 by @raysan5 55 | [rlgl] ADDED: Support 16-Bit HDR textures (#3220) by @Not-Nik 56 | [rlgl] ADDED: rlEnablePointMode() (#3490) by @JettMonstersGoBoom 57 | [rlgl] ADDED: rlBlitFramebuffer(), required for deferred render 58 | [rlgl] REVIEWED: LoadModel(), removed cube fallback mechanism (#3459) 59 | [rlgl] REVIEWED: Improved support for ES3/WebGL2 (#3107) by @chemaguerra 60 | [rlgl] REVIEWED: OpenGL 2.1 half floats support as part of an extension by @Not-Nik 61 | [rlgl] REVIEWED: Avoid shader attribute not found log by @raysan5 62 | [rlgl] REVIEWED: Avoid tracelog about not found uniforms (#3003) by @raysan5 63 | [rlgl] REVIEWED: rLoadTexture() UBSAN complaints #1891 (#3321) by @Codom 64 | [rlgl] REVIEWED: glInternalFormat as unsigned int 65 | [rlgl] REVIEWED: OpenGL ES 3.0 support 66 | [rshapes] ADDED: Spline drawing functions by @raysan5 67 | [rshapes] ADDED: GetSplinePoint*() functions for spline evaluation by @raysan5 68 | [rshapes] ADDED: DrawCircleLinesV() for consistency (#3452) by @Peter0x44 69 | [rshapes] REVIEWED: DrawSplineCatmullRom() by @raysan5 70 | [rshapes] REVIEWED: Minor fix in DrawLineBezier* (#3006) by @eternalStudent 71 | [rshapes] REVIEWED: GetCollisionRec(), more performant (#3052) by @manuel5975p 72 | [rshapes] REVIEWED: Fix off-by-one error in CheckCollisionPointRec() (#3022) by @dbechrd 73 | [rtextures] ADDED: Basic SVG loading support (#2738) by @bXi 74 | [rtextures] ADDED: Support 16-Bit HDR textures (#3220) by @Not-Nik 75 | [rtextures] ADDED: ExportImageToMemory() by @raysan5 76 | [rtextures] ADDED: ImageRotate() (#3078) by @danemadsen 77 | [rtextures] ADDED: GenImageGradientSquare() (#3077) by @danemadsen 78 | [rtextures] ADDED: GenImageLinearGradient() by @danemadsen 79 | [rtextures] REMOVED: GenImageGradientH() and GenImageGradientV() by @danemadsen 80 | [rtextures] REVIEWED: LoadImageSvg() by @raysan5 81 | [rtextures] REVIEWED: Uninitialized thread-locals in stbi (#3282) (#3283) by @jbarthelmes 82 | [rtextures] REVIEWED: ImageDrawRectangleRec(), validate drawing inside bounds by @JeffM2501 83 | [rtextures] REVIEWED: LoadTextureCubemap() for manual layouts (#3204) by @Not-Nik 84 | [rtextures] REVIEWED: Optimization of ImageDrawRectangleRec() (#3185) by @smalltimewizard 85 | [rtextures] REVIEWED: ImageRotate() formatting by @raysan5 86 | [rtextures] REVIEWED: GenImagePerlinNoise(), clamp values (#3071) by @raysan5 87 | [rtextures] REVIEWED: Packing logic error in GenImageFontAtlas() (#2979) by @hanaxar 88 | [rtextures] REVIEWED: Calculate exact image size in GenImageFontAtlas() (#2963) by @hanaxar 89 | [rtextures] REVIEWED: ImageDrawRectangleRec() (#3027) by @raysan5 90 | [rtextures] REVIEWED: ImageDraw() source clipping when drawing beyond top left (#3306) by @RobLoach 91 | [rtextures] REVIEWED: UnloadRenderTexture(), additional checks 92 | [rtextures] REVIEWED: Fixed compressed DDS texture loading issues (#3483) by @JaanDev 93 | [rtext] ADDED: Font altas white rectangle and flag SUPPORT_FONT_ATLAS_WHITE_REC by @raysan5 94 | [rtext] ADDED: SetTextLineSpacing() to define line breaks text drawing spacing by @raysan5 95 | [rtext] RENAMED: LoadFont*() parameter names for consistency and coherence by @raysan5 96 | [rtext] REVIEWED: GetCodepointCount(), ignore unused return value of GetCodepointNext by @ashn-dot-dev 97 | [rtext] REVIEWED: TextFormat() warn user if buffer overflow occured (#3399) by @Murlocohol 98 | [rtext] REVIEWED: TextFormat(), added "..." for truncation (#3366) by @raysan5 99 | [rtext] REVIEWED: GetGlyphIndex() (#3000) by @raysan5 100 | [rtext] REVIEWED: GetCodepointNext() to return default value by @chocolate42 101 | [rtext] REVIEWED: TextToPascal() issue when first char is uppercase 102 | [rmodels] ADDED: ModelAnimation.name field, initially with GLTF animation names by @alfredbaudisch 103 | [rmodels] REDESIGNED: LoadOBJ(), avoid mesh splitting by materials, fix (#3398) by @raysan5 104 | [rmodels] REVIEWED: Support .vox model files version 200 (#3097) by @Bigfoot71 105 | [rmodels] REVIEWED: Materials loading (#3126) @raysan5 106 | [rmodels] REVIEWED: DrawBillboardPro() to allow source of negative size (#3197) by @bohonghuang 107 | [rmodels] REVIEWED: glTF loading segfault in animNormals memcpy by @charles-l 108 | [rmodels] REVIEWED: LoadModelAnimationsGLTF(), free fileData after use (#3065) by @crynux 109 | [rmodels] REVIEWED: GenMeshCubicmap(), correction of values (#3032) by @Bigfoot71 110 | [rmodels] REVIEWED: DrawMesh() to avoid UBSAN complaining (#1891) 111 | [rmodels] REVIEWED: GenMeshPlane() when resX != resZ (#3425) by @neyrox, @s-yablonskiy 112 | [rmodels] REVIEWED: GetModelBoundingBox() (#3485) 113 | [raudio] ADDED: LoadSoundAlias() by @JeffM2501 114 | [raudio] ADDED: Missing structure on standalone mode (#3160) by @raysan5 115 | [raudio] ADDED: GetMasterVolume() (#3434) by @rexim 116 | [raudio] REVIEWED: Comments about sample format to AttachAudioStreamProcessor() (#3188) by @AlbertoGP 117 | [raudio] REVIEWED: Documented buffer format for audio processors (#3186) by @AlbertoGP 118 | [raudio] REVIEWED: ExportWaveAsCode() file saving by @RadsammyT 119 | [raudio] REVIEWED: Fix warning on discarded const qualifier (#2967) by @RobLoach 120 | [raudio] REVIEWED: Move mutex initialization before ma_device_start() (#3325) by @Bigfoot71 121 | [raudio] REVIEWED: Fix UpdateSound() parameter name (#3405) by @KislyjKisel 122 | [raudio] REVIEWED: Fix QOA seeking (#3494) by @veins1 123 | [rcamera] REVIEWED: File-macros for consistency (#3161) by @raysan5 124 | [rcamera] REVIEWED: Support analog stick camera controls (#3066) by @PixelPhobicGames 125 | [rcamera] REVIEWED: CameraMoveToTarget(), ensure distance is greater than 0 (#3031) by @kolunmi 126 | [rcamera] REVIEWED: Exposing rcamera functions to the dll (#3355) by @JeffM2501 127 | [raymath] ADDED: Vector3Projection() and Vector3Rejection() (#3263) by @Dial0 128 | [raymath] ADDED: EPSILON macro to each function requiring it (#3330) by @Brian-ED 129 | [raymath] REVIEWED: Usage of 'sinf()' and 'cosf()' to be correct (#3181) by @RokasPuzonas 130 | [raymath] REVIEWED: Slightly optimized Vector3Normalize() (#2982) by @RicoP 131 | [raymath] REVIEWED: Comment to clarify raymath semantics by @raysan5 132 | [raymath] REVIEWED: Comment about Matrix conventions by @raysan5 133 | [raymath] REVIEWED: Vector2Angle() and Vector2LineAngle() (#3396) by @Murlocohol 134 | [rgestures] REVIEWED: Optimize and simplify the gesture system (#3190) by @ubkp 135 | [rgestures] REVIEWED: GESTURE_DRAG and GESTURE_SWIPE_* issues (mostly) for web (#3183) by @ubkp 136 | [rgestures] REVIEWED: Touch pointCount for web (#3163) by @ubkp 137 | [rgestures] REVIEWED: IsGestureDetected() parameter type 138 | [utils] ADDED: Security checks to file reading (memory allocations) by @raysan5 139 | [utils] REVIEWED: LoadFileData() potential issues with dataSize 140 | [examples] ADDED: shaders_lightmap (#3043) by @nullstare 141 | [examples] ADDED: core_2d_camera_split_screen (#3298) by @gabrielssanches 142 | [examples] ADDED: LoadSoundAlias() usage example (#3223) by @JeffM2501 143 | [examples] ADDED: textures_tiling (#3353) by @luis605 144 | [examples] ADDED: shader_deferred_render (#3496) by @27justin 145 | [examples] RENAMED: 2d_camera examples for consistency 146 | [examples] REVIEWED: Text examples SetTextLineSpacing() to multiline examples by @raysan5 147 | [examples] REVIEWED: examples/shapes/shapes_collision_area.c help instructions (#3279) by @asdqwe 148 | [examples] REVIEWED: examples/shaders/shaders_texture_outline.c help instructions (#3278) by @asdqwe 149 | [examples] REVIEWED: examples/others/easings_testbed.c help instructions and small twe… by @asdqwe 150 | [examples] REVIEWED: example/audio/audio_module_player.c help instructions and small b… by @asdqwe 151 | [examples] REVIEWED: example/models/models_loading_m3d.c controls (#3269) by @asdqwe 152 | [examples] REVIEWED: example/models/models_loading_gltf.c controls (#3268) by @asdqwe 153 | [examples] REVIEWED: text_unicode.c example crashing (#3250) by @ubkp 154 | [examples] REVIEWED: rlgl_standalone.c compilation issue (#3242) by @ubkp 155 | [examples] REVIEWED: core_input_gestures for Web (#3172) by @ubkp 156 | [examples] REVIEWED: core_input_gamepad (#3110) by @iacore 157 | [examples] REVIEWED: examples using raygui to raygui 4.0 by @raysan5 158 | [examples] REVIEWED: Julia set shader example (#3467) by @joshcol9232 159 | [build] ADDED: CMake option for SUPPORT_CUSTOM_FRAME_CONTROL (#3221) by @ubkp 160 | [build] ADDED: New BORDERLESS_WINDOWED_MODE for PLATFORM_DESKTOP (#3216) by @ubkp 161 | [build] ADDED: New examples to VS2022 solution by @raysan5 162 | [build] REVIEWED: Updated Makefile and Makefile.Web, include new examples 163 | [build] REVIEWED: Fix CMake extraneous -lglfw (#3266) by @iacore 164 | [build] REVIEWED: Add missing cmake options (#3267) by @asdqwe 165 | [build] REVIEWED: Match CMakeOptions.txt options default values (#3258) by @asdqwe 166 | [build] REVIEWED: Add build.zig options for individual modules (#3254) by @actondev 167 | [build] REVIEWED: build.zig to work with cross-compiling (#3225) by @yujiri8 168 | [build] REVIEWED: Makefile build on PLATFORM_ANDROID, soname (#3211) by @ndytts 169 | [build] REVIEWED: src/Makefile, fix misleading indentation (#3202) by @ashn-dot-dev 170 | [build] REVIEWED: build.zig: Support for building with PLAFORM_DRM (#3191) by @jakubvf 171 | [build] REVIEWED: Update CMakeOptions.txt by @raysan5 172 | [build] REVIEWED: fix: cmake option "OPENGL_VERSION" doesn't work (#3170) by @royqh1979 173 | [build] REVIEWED: Add error if raylib.h is included in a C++98 program (#3093) by @Peter0x44 174 | [build] REVIEWED: Cross compilation for PLATFORM_DRM (#3091) by @TheLastBilly 175 | [build] REVIEWED: build.zigm fixed cross-compiling from Linux (#3090)by @yujiri8 176 | [build] REVIEWED: Enhanced cmake part for OpenBSD (#3086) by @rayit 177 | [build] REVIEWED: Fixed compile on OpenBSD (#3085)by @rayit 178 | [build] REVIEWED: CMake project example: fix a couple of typos (#3014) by @benjamin-thomas 179 | [build] REVIEWED: Fix warnings in raylib for MSVC (#3004) by @JeffM2501 180 | [build] REVIEWED: Update cmake example project (#3062) by @lesleyrs 181 | [build] REVIEWED: Update build.zig be be able to build with current zig master (#3064) by @ryupold 182 | [build] REVIEWED: VSCode project template (#3048) by @Shoozza 183 | [build] REVIEWED: Fixed broken build.zig files. Now works with latest stable compiler (… by @Gamer-Kold 184 | [build] REVIEWED: Fix missing symbol when rglfw.c on BSD platforms (#2968) by @Koromix 185 | [build] REVIEWED: Update Makefile comment to indicate arm64 as a supported Linux deskto… @ashn-dot-dev 186 | [build] REVIEWED: Update Makefile : clean raygui.c & physac.c (#3296) by @SuperUserNameMan 187 | [build] REVIEWED: Update webassembly.yml and linux.yml 188 | [build] REVIEWED: Update zig build system to zig version 0.11.0 (#3393) by @purple4pur 189 | [build] REVIEWED: Fix for latest zig master (#3037) by @star-tek-mb 190 | [build] REVIEWED: Examples Makefile to use Makefile.Web when building for web (#3449) by @keithstellyes 191 | [build] REVIEWED: build.zig updates for 0.11.0 release. (#3501) by @cabarger 192 | [build] REVIEWED: Support OpenGL ES 3.0 building on Web platform 193 | [build] REVIEWED: Fix warnings in Visual Studio (#3512) by @JeffM2501 194 | [build] REVIEWED: OpenGL ES 3.0 flags on CMakeOptions (#3514) by @awfulcooking 195 | [bindings] ADDED: fortran-raylib 196 | [bindings] ADDED: raylib-raku to bindings (#3299) by @vushu 197 | [bindings] ADDED: claw-raylib to BINDINGS.md (#3310) by @bohonghuang 198 | [bindings] ADDED: vaiorabbit/raylib-bindings (#3318) by @wilsonsilva 199 | [bindings] ADDED: TurboRaylib (#3317) by @turborium 200 | [bindings] ADDED: raylib-ffi to bindings list (#3164) by @ewpratten 201 | [bindings] ADDED: raylib-pkpy-bindings (#3361) by @blueloveTH 202 | [bindings] ADDED: Raylib.lean to BINDINGS.md (#3409) by @KislyjKisel 203 | [bindings] UPDATED: BINDINGS.md (#3217) by @joseph-montanez 204 | [bindings] UPDATED: BINDINGS.md to include rayjs (#3212) by @mode777 205 | [bindings] UPDATED: latest h-raylib version (#3166) by @Anut-py 206 | [bindings] UPDATED: bindbd-raylib3 to raylib 4.5 (#3157) by @o3o 207 | [bindings] UPDATED: Janet bindings supported version update (#3083)by @archydragon 208 | [bindings] UPDATED: BINDINGS.md (raylib-py -> 4.5) (#2992) by @overdev 209 | [bindings] UPDATED: BINDINGS.md (raylib-lua -> 4.5) (#2989) by @TSnake41 210 | [bindings] UPDATED: raylib-d binding version to 4.5 (#2988) by @schveiguy 211 | [bindings] UPDATED: raylib-freebasic to 4.5 (#2986) by @WIITD 212 | [bindings] UPDATED: BINDINGS.md (#2983) by @jarroddavis68 213 | [bindings] UPDATED: BINDINGS.md for raylib Odin 4.5 (#2981) by @gingerBill 214 | [bindings] UPDATED: BINDINGS.md (#2980) by @GuvaCode 215 | [bindings] UPDATED: BINDINGS.md (#3002) by @fubark 216 | [bindings] UPDATED: BINDINGS.md (#3053) by @JupiterRider 217 | [bindings] UPDATED: BINDINGS.md (#3050) by @Its-Kenta 218 | [bindings] UPDATED: CL bindings version (#3049) by @shelvick 219 | [bindings] UPDATED: BINDINGS.md (#3026) by @ChrisDill 220 | [bindings] UPDATED: BINDINGS.md (#3023) by @sDos280 221 | [bindings] UPDATED: BINDINGS.md (#3017) by @Soutaisei 222 | [bindings] UPDATED: Various versions to 4.5 (#2974) by @RobLoach 223 | [bindings] UPDATED: raylib.zig version to 4.5 (#2971) by @ryupold 224 | [bindings] UPDATED: h-raylib version (#2970) by @Anut-py 225 | [bindings] UPDATED: Factor's raylib binding to v4.5 (#3350) by @WraithGlade 226 | [bindings] UPDATED: raylib-ocaml bindings to 4.5 version (#3322) by @tjammer 227 | [bindings] UPDATED: Jaylib binding (#3508) by @glowiak 228 | [external] UPDATED: sdefl and sinfl DEFLATE compression libraries by @raysan5 229 | [external] UPDATED: miniaudio v0.11.12 --> v0.11.19 by @raysan5 230 | [external] UPDATED: rl_gputex.h compressed images loading library by @raysan5 231 | [external] UPDATED: Replaced stb_image_resize.c by stb_image_resize2.h (#3403) by @BabakSamimi 232 | [external] UPDATED: qoi and qoa libraries 233 | [external] UPDATED: stb libraries (required ones) 234 | [external] UPDATED: cgltf and m3d libraries 235 | [external] REVIEWED: msf_gif.h, some warnings 236 | [external] REVIEWED: sinfl external library to avoid ASAN complaints (#3349) by @raysan5 237 | [misc] ADDED: New task point to issue template about checking the wiki (#3169) by @ubkp 238 | [misc] ADDED: CodeQL for static code analysis (#3476) by @b4yuan 239 | [misc] REVIEWED: Update FAQ.md by @raysan5 240 | [misc] REVIEWED: Potential code issues reported by CodeQL (#3476) 241 | [misc] REVIEWED: Fix a link in the FAQ (#3082)by @jasonliang-dev 242 | [misc] REVIEWED: New file formats to FAQ (#3079) by @Luramoth 243 | [misc] REVIEWED: Make assets loading extension case insensitive #3008 by @raysan5 244 | [misc] REVIEWED: Updated web shells open-graph info by @raysan5 245 | 246 | ------------------------------------------------------------------------- 247 | Release: raylib 4.5 (18 March 2023) 248 | ------------------------------------------------------------------------- 249 | KEY CHANGES: 250 | - ADDED: Improved ANGLE support on Desktop platforms 251 | - ADDED: rcamera module, simpler and more extendable 252 | - ADDED: Support for M3D models and M3D/GLTF animations 253 | - ADDED: Support QOA audio format (import/export) 254 | - ADDED: rl_gputex module for compressed textures loading 255 | - REDESIGNED: rlgl module for automatic render-batch limits checking 256 | - REDESIGNED: rshapes module to minimize the rlgl dependency 257 | 258 | Detailed changes: 259 | [core] ADDED: RAYLIB_VERSION_* values to raylib.h (#2856) by @RobLoach 260 | [core] ADDED: Basic gamepad support for Android (#2709) by @deniska 261 | [core] ADDED: Support CAPS/NUM lock keys registering if locked 262 | [core] ADDED: _GNU_SOURCE define on Linux (#2729) 263 | [core] ADDED: SetWindowIcons() to set multiple icon image sizes 264 | [core] `WARNING`: RENAMED: Exported raylib version symbol to raylib_version #2671 265 | [core] REMOVED: Touch points on touch up events on Android (#2711) by @deniska 266 | [core] REVIEWED: Window position setup on InitWindow() (#2732) by @RandomErrorMessage 267 | [core] REVIEWED: Touchscreen input related functions on Android (#2702) by @deniska 268 | [core] REVIEWED: Viewport scaling on Android after context rebind (#2703) by @deniska 269 | [core] REVIEWED: ScanDirectoryFilesRecursively() (#2704) 270 | [core] REVIEWED: Gamepad mappings with latest gamecontrollerdb (#2725) 271 | [core] REVIEWED: Monitor order check on app initialization 272 | [core] REVIEWED: Application monitor when opening (#2728, #2731) by @RandomErrorMessage 273 | [core] REVIEWED: Gestures module to use GetTime() if available (#2733) by @RobLoach 274 | [core] REVIEWED: Resolve GLFW3 some symbols re-definition of windows.h in glfw3native (#2643) by @daipom 275 | [core] REVIEWED: OpenURL(), string buffer too short sometimes 276 | [core] REVIEWED: GetRandomValue() range limit warning (#2800) by @Pere001 277 | [core] REVIEWED: UnloadDirectoryFiles() 278 | [core] REVIEWED: GetKeyPressed(), out of range issue (#2814) by @daipom 279 | [core] REVIEWED: GetTime(), renamed variable 'time' to 'nanoSeconds' (#2816) by @jtainer 280 | [core] REVIEWED: LoadShaderFromMemory(), issue with shader linkage 281 | [core] REVIEWED: Avoid possible gamepad index as -1 (#2839) 282 | [core] REVIEWED: SetShaderValue*(), avoid setup uniforms for invalid locations 283 | [core] REVIEWED: GetClipboardText() on PLATFORM_WEB, permissions issues 284 | [core] REVIEWED: Initial window position for display-sized fullscreen (#2742) by @daipom 285 | [core] REVIEWED: Sticky touches input (#2857) by @ImazighenGhost 286 | [core] REVIEWED: Enable GetWindowHandle() on macOS (#2915) by @Not-Nik 287 | [core] REVIEWED: Window position always inits centered in current monitor 288 | [core] REVIEWED: IsWindowFocused() to consider Android App state (#2935) 289 | [core] REVIEWED: GetMonitorWidth() and GetMonitorHeight() (#2934) 290 | [core] REVIEWED: GetWindowHandle() to return Linux window (#2938) 291 | [core] REVIEWED: WindowDropCallback(), additional security check (#2943) 292 | [core] REVIEWED: Security checks for emscripten_run_script() (#2954) 293 | [utils] REVIEWED: TraceLog() message size limit overflow 294 | [rcamera] REDESIGNED: New implementation from scratch (#2563) by @Crydsch 295 | [rcamera] REVIEWED: Make orbital camera work as expected (#2926) by @JeffM2501 296 | [rcamera] REVIEWED: Multiple reviews on the new implementation 297 | [rcamera] ADDED: UpdateCameraPro(), supporting custom user inputs 298 | [rlgl] ADDED: OpenGL ES 2.0 support on PLATFORM_DESKTOP (#2840) by @wtnbgo 299 | [rlgl] ADDED: Separate blending modes for color and alpha, BLEND_CUSTOM_SEPARATE (#2741) 300 | [rlgl] ADDED: rlSetBlendFactorsSeparate and custom blend mode modification checks (#2741) by @pure01fx 301 | [rlgl] ADDED: RL_TEXTURE_MIPMAP_BIAS_RATIO support to `rlTextureParameters()` for OpenGL 3.3 #2674 302 | [rlgl] ADDED: rlCubemapParameters() (#2862) by @GithubPrankster 303 | [rlgl] ADDED: rlSetCullFace() (#2797) by @jtainer 304 | [rlgl] REMOVED: Mipmaps software generation for OpenGL 1.1 305 | [rlgl] REVIEWED: Check for extensions before enabling them (#2706) by @Not-Nik 306 | [rlgl] REVIEWED: SSBO usage to avoid long long data types 307 | [rlgl] REVIEWED: Enable DXT compression on __APPLE__ targets (#2694) by @Not-Nik 308 | [rlgl] REVIEWED: enums exposed and description comments 309 | [rlgl] REVIEWED: rlBindImageTexture(), correct data types (#2808) by @planetis-m 310 | [rlgl] REVIEWED: rlMultMatrixf(), use const pointer (#2807) by @planetis-m 311 | [rlgl] REVIEWED: Expose OpenGL blending mode factors and functions/equations 312 | [rlgl] REVIEWED: rLoadTextureDepth(), issue with depth textures on WebGL (#2824) 313 | [rlgl] REVIEWED: rlUnloadFramebuffer() (#2937) 314 | [raymath] ADDED: Vector2LineAngle() (#2887) 315 | [raymath] REVIEWED: Vector2Angle() (#2829, #2832) by @AlxHnr, @planetis-m 316 | [shapes] ADDED: CheckCollisionPointPoly() (#2685) by @acejacek 317 | [shapes] REVIEWED: DrawPixel*(), use RL_QUADS/RL_TRIANGLES (#2750) by @hatkidchan 318 | [shapes] REVIEWED: DrawLineBezier*(), fix bezier line breaking (#2735, #2767) by @nobytesgiven 319 | [textures] ADDED: ColorBrightness() 320 | [textures] ADDED: ColorTint() 321 | [textures] ADDED: ColorContrast() 322 | [textures] ADDED: Support for PNM images (.ppm, .pgm) 323 | [textures] ADDED: GenImagePerlinNoise() 324 | [textures] ADDED: GenImageText(), generate grayscale image from text byte data 325 | [textures] ADDED: ImageDrawCircleLines(), ImageDrawCircleLinesV() (#2713) by @RobLoach 326 | [textures] ADDED: ImageBlurGaussian() (#2770) by @nobytesgiven 327 | [textures] REVIEWED: Image fileformat support: PIC, PNM 328 | [textures] REVIEWED: ImageTextEx() and ImageDrawTextEx() scaling (#2756) by @hatkidchan 329 | [textures] `WARNING`: REMOVED: DrawTextureQuad() 330 | [textures] `WARNING`: REMOVED: DrawTexturePoly(), function moved to example: `textures_polygon` 331 | [textures] `WARNING`: REMOVED: DrawTextureTiled(),function implementation moved to the textures_tiled.c 332 | [text] ADDED: GetCodepointPrevious() 333 | [text] ADDED: UnloadUTF8(), aligned with LoadUTF8() 334 | [text] `WARNING`: RENAMED: TextCodepointsToUTF8() to LoadUTF8() 335 | [text] `WARNING`: RENAMED: GetCodepoint() -> GetCodepointNext() 336 | [text] REDESIGNED: GetCodepointNext() 337 | [text] REVIEWED: MeasureTextEx(), avoid crash on bad data 338 | [text] REVIEWED: UnloadFontData(), avoid crash on invalid font data 339 | [models] ADDED: Support M3D model file format (meshes and materials) (#2648) by @bztsrc 340 | [models] ADDED: Support for M3D animations (#2648) by @bztsrc 341 | [models] ADDED: GLTF animation support (#2844) by @charles-l 342 | [models] ADDED: DrawCapsule() and DrawCapsuleWires() (#2761) by @IanBand 343 | [models] ADDED: LoadMaterials(), MTL files loading, same code as OBJ loader (#2872) by @JeffM2501 344 | [models] `WARNING`: REMOVED: UnloadModelKeepMeshes() 345 | [models] `WARNING`: REMOVED: DrawCubeTexture(), DrawCubeTextureRec(), functions moved to new example: `models_draw_cube_texture` 346 | [models] REVIEWED: DrawMesh(), using SHADER_LOC_COLOR_SPECULAR as a material map (#2908) by @haved 347 | [models] REVIEWED: LoadM3D() vertex color support (#2878) by @GithubPrankster, @bztsrc 348 | [models] REVIEWED: GenMeshHeightmap() (#2716) 349 | [models] REVIEWED: LoadIQM() (#2676) 350 | [models] REVIEWED: Simplify .vox signature check (#2752) by @CrezyDud 351 | [models] REVIEWED: LoadIQM(), support bone names loading if available (#2882) by @PencilAmazing 352 | [models] REVIEWED: GenMeshTangents(), avoid crash on missing texcoords data (#2927) 353 | [audio] ADDED: Full support for QOA audio file format 354 | [audio] ADDED: Mixed audio processor (#2929) by @hatkidchan 355 | [audio] ADDED: IsWaveReady()`, IsSoundReady(), IsMusicReady() (#2892) by @RobLoach 356 | [audio] `WARNING`: REMOVED: Multichannel audio API: PlaySoundMulti(), StopSoundMulti() 357 | [audio] REVIEWED: Clear PCM buffer state when closing audio device (#2736) by @veins1 358 | [audio] REVIEWED: Android backend selected (#2118, #2875) by @planetis-m 359 | [audio] REVIEWED: Change default threading model for COM objects in miniaudio 360 | [multi] ADDED: IsShaderReady(), IsImageReady(), IsFontReady() (#2892) by @RobLoach 361 | [multi] ADDED: IsModelReady(), IsMaterialReady(), IsTextureReady(), IsRenderTextureReady() (#2895) by @RobLoach 362 | [multi] REVIEWED: Multiple code/comment typos by @sDos280 363 | [multi] REVIEWED: Grammar mistakes and typos (#2914) by @stickM4N 364 | [multi] REVIEWED: Use TRACELOG() macro instead of TraceLog() in internal modules (#2881) by @RobLoach 365 | [examples] ADDED: textures_textured_curve (#2821) by @JeffM2501 366 | [examples] ADDED: models_draw_cube_texture 367 | [examples] ADDED: models_loading_m3d (#2648) by @bztsrc 368 | [examples] ADDED: shaders_write_depth (#2836) by @BugraAlptekinSari 369 | [examples] ADDED: shaders_hybrid_render (#2919) by @BugraAlptekinSari 370 | [examples] REMOVED: audio_multichannel_sound 371 | [examples] RENAMED: Several shaders for naming consistency (#2707) 372 | [examples] RENAMED: lighting_instanced.fs to lighting_instancing.fs (glsl100) (#2805) by @gtrxAC 373 | [examples] REVIEWED: core_custom_logging.c (#2692) by @hartmannathan 374 | [examples] REVIEWED: core_camera_2d_platformer (#2687) by @skylar779 375 | [examples] REVIEWED: core_input_gamepad.c (#2903) by @planetis-m 376 | [examples] REVIEWED: core_custom_frame_control 377 | [examples] REVIEWED: core_drop_files (#2943) 378 | [examples] REVIEWED: text_rectangle_bounds (#2746) by @SzieberthAdam 379 | [examples] REVIEWED: textures_image_processing, added gaussian blurring (#2775) by @nobytesgiven 380 | [examples] REVIEWED: models_billboard, highlighting rotation and draw order (#2779) by @nobytesgiven 381 | [examples] REVIEWED: core_loading_thread, join thread on completion (#2845) by @planetis-m 382 | [examples] REVIEWED: models_loading_gltf 383 | [examples] REVIEWED: Shader lighting.fs for GLSL120 (#2651) 384 | [examples] REVIEWED: text_codepoints_loading.c 385 | [parser] REVIEWED: raylib-parser Makefile (#2765) by @Peter0x44 386 | [build] ADDED: Packaging for distros with deb-based and rpm-based packages (#2877) by @KOLANICH 387 | [build] ADDED: Linkage library -latomic on Linux (only required for ARM32) 388 | [build] ADDED: Required frameworks on macOS (#2793) by @SpexGuy 389 | [build] ADDED: WASM support for Zig build (#2901) by @Not-Nik 390 | [build] ADDED: New raylib examples as VS2022 project (to raylib solution) 391 | [build] REVIEWED: config.h format and inconsistencies 392 | [build] REVIEWED: Zig build to latest master, avoid deprecated functions (#2910) by @star-tek-mb 393 | [build] REVIEWED: CMake project template to easily target raylib version (#2700) by @RobLoach 394 | [build] REVIEWED: PATH for PLATFORM_WEB target (#2647) by @futureapricot 395 | [build] REVIEWED: build.zig to let user decide how to set build mode and linker fixes by @InKryption 396 | [build] REVIEWED: Deprecation error on Android API higher than 23 (#2778) by @anggape 397 | [build] REVIEWED: Android x86 Architecture name (#2783) by @IsaacTCB 398 | [build] REVIEWED: examples/build.zig for the latest Zig version (#2786) by @RomanAkberov 399 | [utils] REVIEWED: ExportDataAsCode() data types (#2787) by @RGDTAB 400 | [build] REVIEWED: Makefile emscripten path (#2785) by @Julianiolo 401 | [build] REVIEWED: Several compilation warnings (for strict rules) 402 | [build] REVIEWED: All github workflows using deprecated actions 403 | [build] REVIEWED: CMake when compiling for web (#2820) by @object71 404 | [build] REVIEWED: DLL build on Windows (#2951) by @Skaytacium 405 | [build] REVIEWED: Avoid MSVC warnings in raylib project (#2871) by @JeffM2501 406 | [build] REVIEWED: Paths in .bat files to build examples (#2870) by @masoudd 407 | [build] REVIEWED: CMake, use GLVND for old cmake versions (#2826) by @simendsjo 408 | [build] REVIEWED: Makefile, multiple tweaks 409 | [build] REVIEWED: CI action: linux_examples.yml 410 | [build] REVIEWED: CI action: cmake.yml 411 | [bindings] ADDED: h-raylib (Haskell) by @Anut-py 412 | [bindings] ADDED: raylib-c3 (C3) by @Its-Kenta 413 | [bindings] ADDED: raylib-umka (Umka) by @RobLoach 414 | [bindings] ADDED: chez-raylib (Chez Scheme) by @Yunoinsky 415 | [bindings] ADDED: raylib-python-ctypes (Python) by @sDos280 416 | [bindings] ADDED: claylib (Common Lisp) by @shelvick 417 | [bindings] ADDED: raylib-vapi (Vala) by @lxmcf 418 | [bindings] ADDED: TurboRaylib (Object Pascal) by @turborium 419 | [bindings] ADDED: Kaylib (Kotlin/Native) by @Its-Kenta 420 | [bindings] ADDED: Raylib-Nelua (Nelua) by @Its-Kenta 421 | [bindings] ADDED: Cyber (Cyber) by @fubark 422 | [bindings] ADDED: raylib-sunder (Sunder) by @ashn-dot-dev 423 | [bindings] ADDED: raylib BQN (#2962) by @Brian-ED 424 | [misc] REVIEWED: Update external libraries to latest versions 425 | 426 | ------------------------------------------------------------------------- 427 | Release: raylib 4.2 (11 August 2022) 428 | ------------------------------------------------------------------------- 429 | KEY CHANGES: 430 | - REMOVED: extras libraries (raygui, physac, rrem, reasings, raudio.h) moved to independent separate repos 431 | - UPDATED: examples: Added creation and update raylib versions and assigned **DIFFICULTY LEVELS**! 432 | - rres 1.0: A custom resource-processing and packaging file format, including tooling and raylib integration examples 433 | - raygui 3.2: New version of the immediate-mode gui system for tools development with raylib 434 | - raylib_parser: Multiple improvements of the raylib parser to automatize bindings generation 435 | - ADDED: New file system API: Reviewed to be more aligned with raylib conventions and one advance function added 436 | - ADDED: New audio stream processors API (_experimental_): Allowing to add custom audio stream data processors using callbacks 437 | 438 | Detailed changes: 439 | [multi] ADDED: Frequently Asked Questions (FAQ.md) 440 | [multi] REVIEWED: Multiple trace log messages 441 | [multi] REVIEWED: Avoid some float to double promotions 442 | [multi] REVIEWED: Some functions input parametes that should be const 443 | [multi] REVIEWED: Variables initialization, all variables are initialized on declaration 444 | [multi] REVIEWED: Static array buffers are always re-initialized with memset() 445 | [multi] `WARNING`: RENAMED: Some function input parameters from "length" to "size" 446 | [core] ADDED: GetApplicatonDirectory() (#2256, #2285, #2290) by @JeffM2501 447 | [core] ADDED: raylibVersion symbol, it could be required by some bindings (#2190) 448 | [core] ADDED: SetWindowOpacity() (#2254) by @tusharsingh09 449 | [core] ADDED: GetRenderWidth() and GetRenderHeight() by @ArnaudValensi 450 | [core] ADDED: EnableEventWaiting() and DisableEventWaiting() 451 | [core] ADDED: GetFileLength() 452 | [core] ADDED: Modules info at initialization 453 | [core] ADDED: Support clipboard copy/paste on web 454 | [core] ADDED: Support OpenURL() on Android platform (#2396) by @futureapricot 455 | [core] ADDED: Support MOUSE_PASSTHROUGH (#2516) 456 | [core] ADDED: GetMouseWheelMoveV() (#2517) by @schveiguy 457 | [core] `WARNING`: REMOVED: LoadStorageValue() / SaveStorageValue(), moved to example 458 | [core] `WARNING`: RENAMED: GetDirectoryFiles() to LoadDirectoryFiles() 459 | [core] `WARNING`: RENAMED: `ClearDroppedFiles()` to `UnloadDroppedFiles()` 460 | [core] `WARNING`: RENAMED: GetDroppedFiles() to LoadDroppedFiles() 461 | [core] `WARNING`: RENAMED: `ClearDirectoryFiles()` to `UnloadDirectoryFiles()` 462 | [core] `WARNING`: REDESIGNED: WaitTime() argument from milliseconds to seconds (#2506) by @flashback-fx 463 | [core] REVIEWED: GetMonitorWidth()/GetMonitorHeight() by @gulrak 464 | [core] REVIEWED: GetDirectoryFiles(), maximum files allocation (#2126) by @ampers0x26 465 | [core] REVIEWED: Expose MAX_KEYBOARD_KEYS and MAX_MOUSE_BUTTONS (#2127) 466 | [core] REVIEWED: ExportMesh() (#2138) 467 | [core] REVIEWED: Fullscreen switch on PLATFORM_WEB 468 | [core] REVIEWED: GetMouseWheelMove(), fixed bug 469 | [core] REVIEWED: GetApplicationDirectory() on macOS (#2304) 470 | [core] REVIEWED: ToggleFullscreen() 471 | [core] REVIEWED: Initialize/reset CORE.inputs global state (#2360) 472 | [core] REVIEWED: MouseScrollCallback() (#2371) 473 | [core] REVIEWED: SwapScreenBuffers() for PLATFORM_DRM 474 | [core] REVIEWED: WaitTime(), fix regression causing video stuttering (#2503) by @flashback-fx 475 | [core] REVIEWED: Mouse device support on PLATFORM_DRM (#2381) 476 | [core] REVIEWED: Support OpenBSD timming functions 477 | [core] REVIEWED: Improved boolean definitions (#2485) by @noodlecollie 478 | [core] REVIEWED: TakeScreenshot(), use GetWindowScaleDPI() to calculate size in screenshot/recording (#2446) by @gulrak 479 | [core] REVIEWED: Remove fps requirement for drm connector selection (#2468) by @Crydsch 480 | [core] REVIEWED: IsFileExtension() (#2530) 481 | [camera] REVIEWED: Some camera improvements (#2563) 482 | [rlgl] ADDED: Premultiplied alpha blend mode (#2342) by @megagrump 483 | [rlgl] REVIEWED: VR rendering not taking render target size into account (#2424) by @FireFlyForLife 484 | [rlgl] REVIEWED: Set rlgl internal framebuffer (#2420) 485 | [rlgl] REVIEWED: rlGetCompressedFormatName() 486 | [rlgl] REVIEWED: Display OpenGL 4.3 capabilities with a compile flag (#2124) by @GithubPrankster 487 | [rlgl] REVIEWED: rlUpdateTexture() 488 | [rlgl] REVIEWED: Minimize buffer overflow probability 489 | [rlgl] REVIEWED: Fix scissor mode on macOS (#2170) by @ArnaudValensi 490 | [rlgl] REVIEWED: Clear SSBO buffers on loading (#2185) 491 | [rlgl] REVIEWED: rlLoadShaderCode(), improved shader loading code 492 | [rlgl] REVIEWED: Comment notes about custom blend modes (#2260) by @glorantq 493 | [rlgl] REVIEWED: rlGenTextureMipmaps() 494 | [rlgl] REVIEWED: rlTextureParameters() 495 | [raymath] ADDED: Wrap() (#2522) by @Tekkitslime 496 | [raymath] ADDED: Vector2Transform() 497 | [raymath] ADDED: Vector2DistanceSqr() (#2376) by @AnilBK 498 | [raymath] ADDED: Vector3DistanceSqr() (#2376) by @AnilBK 499 | [raymath] ADDED: Vector2ClampValue(), Vector3ClampValue() (#2428) by @saccharineboi 500 | [raymath] ADDED: Vector3RotateByAxisAngle() (#2590) by @Crydsch 501 | [raymath] `WARNING`: REDESIGNED: Vector2Angle() returns radians instead of degrees (#2193) by @schveiguy 502 | [raymath] `WARNING`: REMOVED: MatrixNormalize() (#2412) 503 | [raymath] REVIEWED: Fix inverse length in Vector2Normalize() (#2189) by @HarriP 504 | [raymath] REVIEWED: Vector2Angle() not working as expected (#2196) by @jdeokkim 505 | [raymath] REVIEWED: Vector2Angle() and Vector3Angle() (#2203) by @trikko 506 | [raymath] REVIEWED: QuaternionInvert(), code simplified (#2324) by @megagrump 507 | [raymath] REVIEWED: QuaternionScale() (#2419) by @tana 508 | [raymath] REVIEWED: Vector2Rotate(), optimized (#2340) by @jdeokkim 509 | [raymath] REVIEWED: QuaternionFromMatrix(), QuaternionEquals() (#2591) by @kirigirihitomi 510 | [raymath] REVIEWED: MatrixRotate*() (#2595, #2599) by @GoodNike 511 | [shapes] REVIEWED: CheckCollision*() consistency 512 | [shapes] REVIEWED: DrawRectanglePro(), support TRIANGLES drawing 513 | [textures] ADDED: Support for QOI image format 514 | [textures] REVIEWED: ImageColorTint(), GetImageColor(), ImageDrawRectangleRec(), optimized functions (#2429) by @AnilBK 515 | [textures] REVIEWED: LoadTextureFromImage(), allow texture loading with no data transfer 516 | [textures] REVIEWED: ImageDraw(), comment to note that f32bit is not supported (#2222) 517 | [textures] REVIEWED: DrawTextureNPatch(), avoid batch overflow (#2401) by @JeffM2501 518 | [textures] REVIEWED: DrawTextureTiled() (#2173) 519 | [textures] REVIEWED: GenImageCellular() (#2178) 520 | [textures] REVIEWED: LoadTextureCubemap() (#2223, #2224) 521 | [textures] REVIEWED: Export format for float 32bit 522 | [textures] REVIEWED: ExportImage(), support export ".jpeg" files 523 | [textures] REVIEWED: ColorAlphaBlend() (#2524) by @royqh1979 524 | [textures] REVIEWED: ImageResize() (#2572) 525 | [textures] REVIEWED: ImageFromImage() (#2594) by @wiertek 526 | [text] ADDED: ExportFontAsCode() 527 | [text] ADDED: DrawTextCodepoints() (#2308) by @siddharthroy12 528 | [text] REVIEWED: TextIsEqual(), protect from NULLs (#2121) by @lukekras 529 | [text] REVIEWED: LoadFontEx(), comment to specify how to get the default character set (#2221) by @JeffM2501 530 | [text] REVIEWED: GenImageFontAtlas(), increase atlas size guesstimate by @megagrump 531 | [text] REVIEWED: GetCodepoint() (#2201) 532 | [text] REVIEWED: GenImageFontAtlas() (#2556) 533 | [text] REVIEWED: ExportFontAsCode() to use given font padding (#2525) by @TheTophatDemon 534 | [models] ADDED: Reference code to load bones id and weight data for animations 535 | [models] `WARNING`: REMOVED: GetRayCollisionModel() (#2405) 536 | [models] REMOVED: GenMeshBinormals() 537 | [models] REVIEWED: External library: vox_loader.h, 64bit issue (#2186) 538 | [models] REVIEWED: Material color loading when no texture material is available (#2298) by @royqh1979 539 | [models] REVIEWED: Fix Undefined Symbol _ftelli64 in cgltf (#2319) by @audinue 540 | [models] REVIEWED: LoadGLTF(), fix memory leak (#2441, #2442) by @leomonta 541 | [models] REVIEWED: DrawTriangle3D() batch limits check (#2489) 542 | [models] REVIEWED: DrawBillboardPro() (#2494) 543 | [models] REVIEWED: DrawMesh*() issue (#2211) 544 | [models] REVIEWED: ExportMesh() (#2220) 545 | [models] REVIEWED: GenMeshCylinder() (#2225) 546 | [audio] `WARNING`: ADDED: rAudioProcessor pointer to AudioStream struct (used by Sound and Music structs) 547 | [audio] ADDED: SetSoundPan(), SetMusicPan(), SetAudioStreamPan(), panning support (#2205) by ptarabbia 548 | [audio] ADDED: Audio stream input callback (#2212) by ptarabbia 549 | [audio] ADDED: Audio stream processors support (#2212) by ptarabbia 550 | [audio] REVIEWED: GetMusicTimePlayed(), incorrect value after the stream restarted for XM audio (#2092 #2215) by @ptarabbia 551 | [audio] REVIEWED: Turn on interpolation for XM playback (#2216) by @ptarabbia 552 | [audio] REVIEWED: Fix crash with delay example (#2472) by @ptarabbia 553 | [audio] REVIEWED: PlaySoundMulti() (#2231) 554 | [audio] REVIEWED: ExportWaveAsCode() 555 | [audio] REVIEWED: UpdateMusicStream(), reduce dynamic allocations (#2532) by @dbechrd 556 | [audio] REVIEWED: UpdateMusicStream() to support proper stream looping (#2579) by @veins1 557 | [utils] ADDED: ExportDataAsCode() 558 | [utils] REVIEWED: Force flush stdout after trace messages (#2465) by @nagy 559 | [easings] ADDED: Function descriptions (#2471) by @RobLoach 560 | [camera] REVIEWED: Fix free camera panning in the wrong direction (#2347) by @DavidLyhedDanielsson 561 | [examples] ADDED: core_window_should_close 562 | [examples] ADDED: core_2d_camera_mouse_zoom (#2583) by @JeffM2501 563 | [examples] ADDED: shapes_top_down_lights (#2199) by @JeffM2501 564 | [examples] ADDED: textures_fog_of_war 565 | [examples] ADDED: textures_gif_player 566 | [examples] ADDED: text_codepoints_loading 567 | [examples] ADDED: audio_stream_effects 568 | [examples] REMOVED: core_quat_conversion, not working properly 569 | [examples] REMOVED: raudio_standalone, moved to raudio repo 570 | [examples] RENAMED: textures_rectangle -> textures_sprite_anim 571 | [examples] REVIEWED: core_input_gamepad, improve joystick visualisation (#2390) by @kristianlm 572 | [examples] REVIEWED: textures_draw_tiled 573 | [examples] REVIEWED: shaders_mesh_instancing, free allocated matrices (#2425) by @AnilBK 574 | [examples] REVIEWED: shaders_raymarching 575 | [examples] REVIEWED: audio_raw_stream (#2205) by ptarabbia 576 | [examples] REVIEWED: audio_music_stream 577 | [examples] REVIEWED: shaders_mesh_instancing, simplified 578 | [examples] REVIEWED: shaders_basic_lighting, rlights.h simplified 579 | [examples] REVIEWED: All examples descriptions, included creation/update raylib versions 580 | [parser] ADDED: Defines to parser (#2269) by @iskolbin 581 | [parser] ADDED: Aliases to parser (#2444) by @lazaray 582 | [parser] ADDED: Parse struct descriptions (#2214) by @eutro 583 | [parser] ADDED: Parse enum descriptions and value descriptions (#2208) by @eutro 584 | [parser] ADDED: Lua output format for parser by @iskolbin 585 | [parser] ADDED: Makefile for raylib_parser by @iskolbin 586 | [parser] ADDED: Support for truncating parser input (#2464) by @lazaray 587 | [parser] ADDED: Support for calculated defines to parser (#2463) by @lazaray 588 | [parser] REVIEWED: Update parser files (#2125) by @catmanl 589 | [parser] REVIEWED: Fix memory leak in parser (#2136) by @ronnieholm 590 | [parser] REVIEWED: EscapeBackslashes() 591 | [parser] REVIEWED: Parser improvements (#2461 #2462) by @lazaray 592 | [bindings] ADDED: License details for BINDINGS 593 | [bindings] ADDED: dart-raylib (#2149) by @wolfenrain 594 | [bindings] ADDED: raylib-cslo (#2169) by @jasonswearingen 595 | [bindings] ADDED: raylib-d (#2194) by @schveiguy 596 | [bindings] ADDED: raylib-guile (#2202) by @petelliott 597 | [bindings] ADDED: raylib-scopes (#2238) by @salotz 598 | [bindings] ADDED: naylib (Nim) (#2386) by @planetis-m 599 | [bindings] ADDED: raylib.jl (Julia) (#2403) by @irishgreencitrus 600 | [bindings] ADDED: raylib.zig (#2449) by @ryupold 601 | [bindings] ADDED: racket-raylib (#2454) by @eutro 602 | [bindings] ADDED: raylibr (#2611) by @ramiromagno 603 | [bindings] ADDED: Raylib.4.0.Pascal (#2617) by @sysrpl 604 | [bindings] REVIEWED: Multiple bindings updated to raylib 4.0 605 | [build] ADDED: VS2022 project 606 | [build] ADDED: Support macOS by zig build system (#2175) 607 | [build] ADDED: Support custom modules selection on compilation 608 | [build] ADDED: Minimal web shell for WebAssembly compilation 609 | [build] ADDED: BSD support for zig builds (#2332) by @zigster64 610 | [build] ADDED: Repology badge (#2367) by @jubalh 611 | [build] ADDED: Support DLL compilation with TCC compiler (#2569) by @audinue 612 | [build] ADDED: Missing examples to VS2022 examples solution 613 | [build] REMOVED: VS2019 project (unmaintained) 614 | [build] REMOVED: SUPPORT_MOUSE_CURSOR_POINT config option 615 | [build] REVIEWED: Fixed RPi make install (#2217) by @wereii 616 | [build] REVIEWED: Fix build results path on Linux and RPi (#2218) by @wereii 617 | [build] REVIEWED: Makefiles debug flag 618 | [build] REVIEWED: Fixed cross-compilation from x86-64 to RPi (#2233) by @pitpit 619 | [build] REVIEWED: All Makefiles, simplified 620 | [build] REVIEWED: All Makefiles, improve organization 621 | [build] REVIEWED: All Makefiles, support CUSTOM_CFLAGS 622 | [build] REVIEWED: Fixed compiling for Android using CMake (#2270) by @hero2002 623 | [build] REVIEWED: Make zig build functionality available to zig programs (#2271) by @Not-Nik 624 | [build] REVIEWED: Update CMake project template with docs and web (#2274) by @RobLoach 625 | [build] REVIEWED: Update VSCode project to work with latest makefile and web (#2296) by @phil-shenk 626 | [build] REVIEWED: Support audio examples compilation with external glfw (#2329) by @locriacyber 627 | [build] REVIEWED: Fix "make clean" target failing when shell is not cmd (#2338) by @Peter0x44 628 | [build] REVIEWED: Makefile linkage -latomic, required by miniaudio on ARM 32bit #2452 629 | [build] REVIEWED: Update raylib-config.cmake (#2374) by @marcogmaia 630 | [build] REVIEWED: Simplify build.zig to not require user to specify raylib path (#2383) by @Hejsil 631 | [build] REVIEWED: Fix OpenGL 4.3 graphics option in CMake (#2427) by @GoldenThumbs 632 | [extras] `WARNING`: REMOVED: physac from raylib sources/examples, use github.com/raysan5/physac 633 | [extras] `WARNING`: REMOVED: raygui from raylib/src/extras, use github.com/raysan5/raygui 634 | [extras] `WARNING`: REMOVED: rmem from raylib/src/extras, moved to github.com/raylib-extras/rmem 635 | [extras] `WARNING`: REMOVED: easings from raylib/src/extras, moved to github.com/raylib-extras/reasings 636 | [extras] `WARNING`: REMOVED: raudio.h from raylib/src, moved to github.com/raysan5/raudio 637 | [misc] REVIEWED: Update some external libraries to latest versions 638 | 639 | ------------------------------------------------------------------------- 640 | Release: raylib 4.0 - 8th Anniversary Edition (05 November 2021) 641 | ------------------------------------------------------------------------- 642 | KEY CHANGES: 643 | - Naming consistency and coherency: Complete review of the library: syntax, naming, comments, decriptions, logs... 644 | - Event Automation System: Support for input events recording and automatic re-playing, useful for automated testing and more! 645 | - Custom game-loop control: Intended for advance users that want to control the events polling and the timming mechanisms 646 | - rlgl 4.0: Completely decoupling from platform layer and raylib, intended for standalone usage as single-file header-only 647 | - raymath 1.5: Complete review following new conventions, to make it more portable and self-contained 648 | - raygui 3.0: Complete review and official new release, more portable and self-contained, intended for tools development 649 | - raylib_parser: New tool to parse raylib.h and extract all required info into custom output formats (TXT, XML, JSON...) 650 | - Zig and Odin official support 651 | 652 | Detailed changes: 653 | [core] ADDED: Support canvas resizing on web (#1840) by @skylersaleh 654 | [core] ADDED: GetMouseDelta() (#1832) by @adricoin2010 655 | [core] ADDED: Support additional mouse buttons (#1753) by @lambertwang 656 | [core] ADDED: SetRandomSeed() (#1994) by @TommiSinivuo 657 | [core] ADDED: GetTouchPointId() #1972 658 | [core] ADDED: EncodeDataBase64() and DecodeDataBase64() 659 | [core] REMOVED: PLATFORM_UWP, difficult to maintain 660 | [core] REMOVED: IsGamepadName() 661 | [core] RENAMED: SwapBuffers() to SwapScreenBuffer() 662 | [core] RENAMED: Wait() to WaitTime() 663 | [core] RENAMED: RayHitInfo to RayCollision (#1781) 664 | [core] RENAMED: GetRayCollisionGround() to GetRayCollisionQuad() (#1781) 665 | [core] REVIEWED: Support mouse wheel on x-axis (#1948) 666 | [core] REVIEWED: DisableCursor() on web by registering an empty mouse click event function in emscripten (#1900) by @grenappels 667 | [core] REVIEWED: LoadShader() and default locations and descriptions 668 | [core] REVIEWED: LoadShaderFromMemory() (#1851) by @Ruminant 669 | [core] REVIEWED: WaitTime(), avoid global variables dependency to make the function is self-contained (#1841) 670 | [core] REVIEWED: SetWindowSize() to work on web (#1847) by @nikki93 671 | [core] REVIEWED: Raspberry RPI/DRM keyboard blocking render loop (#1879) @luizpestana 672 | [core] REVIEWED: Android multi-touch (#1869) by @humbe 673 | [core] REVIEWED: Implemented GetGamepadName() for emscripten by @nbarkhina 674 | [core] REVIEWED: HighDPI support (#1987) by @ArnaudValensi 675 | [core] REVIEWED: KeyCallback(), register keys independently of the actions 676 | [rlgl] ADDED: GRAPHIC_API_OPENGL_43 677 | [rlgl] ADDED: rlUpdateVertexBufferElements() (#1915) 678 | [rlgl] ADDED: rlActiveDrawBuffers() (#1911) 679 | [rlgl] ADDED: rlEnableColorBlend()/rlDisableColorBlend() 680 | [rlgl] ADDED: rlGetPixelFormatName() 681 | [rlgl] REVIEWED: rlUpdateVertexBuffer (#1914) by @630Studios 682 | [rlgl] REVIEWED: rlDrawVertexArrayElements() (#1891) 683 | [rlgl] REVIEWED: Wrong normal matrix calculation (#1870) 684 | [raymath] ADDED: Vector3Angle() 685 | [raymath] REVIEWED: QuaternionFromAxisAngle() (#1892) 686 | [raymath] REVIEWED: QuaternionToMatrix() returning transposed result. (#1793) by @object71 687 | [shapes] ADDED: RenderPolyLinesEx() (#1758) by @lambertwang 688 | [shapes] ADDED: DrawSplineBezierCubic() (#2021) by @SAOMDVN 689 | [textures] ADDED: GetImageColor() #2024 690 | [textures] REMOVED: GenImagePerlinNoise() 691 | [textures] RENAMED: GetTextureData() to LoadImageFromTexture() 692 | [textures] RENAMED: GetScreenData() to LoadImageFromScreen() 693 | [textures] REVIEWED: ExportImage() to use SaveFileData() (#1779) 694 | [textures] REVIEWED: LoadImageAnim() #2005 695 | [text] ADDED: Security check in case of not valid font 696 | [text] ADDED: `GetGlyphInfo()` to get glyph info for a specific codepoint 697 | [text] ADDED: `GetGlyphAtlasRec()` to get glyph rectangle within the generated font atlas 698 | [text] ADDED: DrawTextPro() with text rotation support, WARNING: DrawTextPro() requires including `rlgl.h`, before it was only dependant on `textures` module. 699 | [text] ADDED: UnloadCodepoints() to safely free loaded codepoints 700 | [text] REMOVED: DrawTextRec() and DrawTextRecEx(), moved to example, those functions could be very specific depending on user needs so it's better to give the user the full source in case of special requirements instead of allowing a function with +10 input parameters. 701 | [text] RENAMED: struct `CharInfo` to `GlyphInfo`, actually that's the correct naming for the data contained. It contains the character glyph metrics and the glyph image; in the past it also contained rectangle within the font atlas but that data has been moved to `Font` struct directly, so, `GlyphInfo` is a more correct name. 702 | [text] RENAMED: `CodepointToUtf8()` to `CodepointToUTF8()`, capitalization of UTF-8 is the correct form, it would also require de hyphen but it can be omitted in this case. 703 | [text] RENAMED: `TextToUtf8()` to `TextCodepointsToUTF8` for consistency and more detail on the functionality. 704 | [text] RENAMED: GetCodepoints() to LoadCodepoints(), now codepoint array data is loaded dynamically instead of reusing a limited static buffer. 705 | [text] RENAMED: GetNextCodepoint() to GetCodepoint() 706 | [models] ADDED: MagikaVoxel VOX models loading 707 | [models] ADDED: GenMeshCone() (#1903) 708 | [models] ADDED: GetModelBoundingBox() 709 | [models] ADDED: DrawBillboardPro() (#1759) by @nobytesgiven 710 | [models] ADDED: DrawCubeTextureRec() (#2001) by @tdgroot 711 | [models] ADDED: DrawCylinderEx() and DrawCylinderWiresEx() (#2049) by @Horrowind 712 | [models] REMOVED: DrawBillboardEx() 713 | [models] RENAMED: MeshBoundingBox() to GetMeshBoundingBox() 714 | [models] RENAMED: MeshTangents() to GenMeshTangents() 715 | [models] RENAMED: MeshBinormals() to GenMeshBinormals() 716 | [models] REVIEWED: GenMeshTangents() (#1877) by @630Studios 717 | [models] REVIEWED: CheckCollisionBoxSphere() by @Crydsch 718 | [models] REVIEWED: GetRayCollisionQuad() by @Crydsch 719 | [models] REVIEWED: LoadGLTF(), fixed missing transformations and nonroot skinning by @MrDiver 720 | [models] REVIEWED: LoadGLTF(), rewriten from scratch, removed animations support (broken) 721 | [models] REVIEWED: Decouple DrawMesh() and DrawMeshInstanced() (#1958) 722 | [models] REVIEWED: Support vertex color attribute for GLTF and IQM (#1790) by @object71 723 | [models] REVIEWED: DrawBillboardPro() (#1941) by @GithubPrankster 724 | [models] REDESIGNED: Major review of glTF loading functionality (#1849) by @object71 725 | [audio] ADDED: SeekMusicStream() (#2006) by @GithubPrankster 726 | [audio] REMOVED: GetAudioStreamBufferSizeDefault() 727 | [audio] RENAMED: InitAudioStream() to LoadAudioStream() 728 | [audio] RENAMED: CloseAudioStream() to UnloadAudioStream() 729 | [audio] RENAMED: IsMusicPlaying() to IsMusicStreamPlaying() 730 | [audio] REVIEWED: ExportWaveAsCode() 731 | [audio] REDESIGNED: Use frameCount on audio instead of sampleCount 732 | [utils] REVIEWED: exit() on LOG_FATAL instead of LOG_ERROR (#1796) 733 | [examples] ADDED: core_custom_frame_control 734 | [examples] ADDED: core_basic_screen_manager 735 | [examples] ADDED: core_split_screen (#1806) by @JeffM2501 736 | [examples] ADDED: core_smooth_pixelperfect (#1771) by @NotManyIdeasDev 737 | [examples] ADDED: shaders_texture_outline (#1883) by @GoldenThumbs 738 | [examples] ADDED: models_loading_vox (#1940) by @procfxgen 739 | [examples] ADDED: rlgl_compute_shader by @TSnake41 (#2088) 740 | [examples] REMOVED: models_material_pbr 741 | [examples] REMOVED: models_gltf_animation 742 | [examples] REVIEWED: core_3d_picking 743 | [examples] REVIEWED: core_input_mouse 744 | [examples] REVIEWED: core_vr_simulator, RenderTexture usage 745 | [examples] REVIEWED: core_window_letterbox, RenderTexture usage 746 | [examples] REVIEWED: shapes_basic_shapes 747 | [examples] REVIEWED: shapes_logo_raylib_anim 748 | [examples] REVIEWED: textures_to_image 749 | [examples] REVIEWED: text_rectangle_bounds 750 | [examples] REVIEWED: text_unicode 751 | [examples] REVIEWED: text_draw_3d 752 | [examples] REVIEWED: models_loading 753 | [examples] REVIEWED: models_skybox (#1792) (#1778) 754 | [examples] REVIEWED: models_mesh_picking 755 | [examples] REVIEWED: models_yaw_pitch_roll 756 | [examples] REVIEWED: models_rlgl_solar_system 757 | [examples] REVIEWED: shaders_custom_uniform, RenderTexture usage 758 | [examples] REVIEWED: shaders_eratosthenes, RenderTexture usage 759 | [examples] REVIEWED: shaders_julia_set, RenderTexture usage 760 | [examples] REVIEWED: shaders_postprocessing, RenderTexture usage 761 | [examples] REVIEWED: shaders_basic_lighting, simplified (#1865) 762 | [examples] REVIEWED: audio_raw_stream.c 763 | [examples] REVIEWED: raudio_standalone 764 | [examples] REVIEWED: raylib_opengl_interop 765 | [examples] REVIEWED: rlgl_standalone.c 766 | [examples] REVIEWED: Resources licenses 767 | [examples] REVIEWED: models resources reorganization 768 | [templates] REMOVED: Moved to a separate repo: https://github.com/raysan5/raylib-game-template 769 | [build] ADDED: Zig build file (#2014) by @TommiSinivuo 770 | [build] ADDED: Android VS2019 solution (#2013) by @Kronka 771 | [build] REMOVED: VS2017 project, outdated 772 | [build] RENAMED: All raylib modules prefixed with 'r' (core -> rcore) 773 | [build] RENAMED: SUPPORT_MOUSE_CURSOR_NATIVE to SUPPORT_MOUSE_CURSOR_POINT 774 | [build] REVIEWED: examples/examples_template.c 775 | [build] REVIEWED: Makefile to latest Emscripten SDK r23 776 | [build] REVIEWED: Makefile for latest Android NDK r32 LTS 777 | [build] REVIEWED: raylib resource files 778 | [build] Moved some extra raylib libraries to /extras/ directory 779 | [*] UPDATED: Multiple bindings to latest version 780 | [*] UPDATED: Most external libraries to latest versions (except GLFW) 781 | [*] Multiple code improvements and fixes by multiple contributors! 782 | 783 | ------------------------------------------------------------------------- 784 | Release: raylib 3.7 (26 April 2021) 785 | ------------------------------------------------------------------------- 786 | KEY CHANGES: 787 | - [rlgl] REDESIGNED: Greater abstraction level, some functionality moved to core module 788 | - [rlgl] REVIEWED: Instancing and stereo rendering 789 | - [core] REDESIGNED: VR simulator, fbo/shader exposed to user 790 | - [utils] ADDED: File access callbacks system 791 | - [models] ADDED: glTF animations support (#1551) by @object71 792 | - [audio] ADDED: Music streaming support from memory (#1606) by @nezvers 793 | - [*] RENAMED: enum types and enum values for consistency 794 | 795 | Detailed changes: 796 | [core] ADDED: LoadVrStereoConfig() 797 | [core] ADDED: UnloadVrStereoConfig() 798 | [core] ADDED: BeginVrStereoMode() 799 | [core] ADDED: EndVrStereoMode() 800 | [core] ADDED: GetCurrentMonitor() (#1485) by @object71 801 | [core] ADDED: SetGamepadMappings() (#1506) 802 | [core] RENAMED: struct Camera: camera.type to camera.projection 803 | [core] RENAMED: LoadShaderCode() to LoadShaderFromMemory() (#1690) 804 | [core] RENAMED: SetMatrixProjection() to rlSetMatrixProjection() 805 | [core] RENAMED: SetMatrixModelview() to rlSetMatrixModelview() 806 | [core] RENAMED: GetMatrixModelview() to rlGetMatrixModelview() 807 | [core] RENAMED: GetMatrixProjection() to rlGetMatrixProjection() 808 | [core] RENAMED: GetShaderDefault() to rlGetShaderDefault() 809 | [core] RENAMED: GetTextureDefault() to rlGetTextureDefault() 810 | [core] REMOVED: GetShapesTexture() 811 | [core] REMOVED: GetShapesTextureRec() 812 | [core] REMOVED: GetMouseCursor() 813 | [core] REMOVED: SetTraceLogExit() 814 | [core] REVIEWED: GetFileName() and GetDirectoryPath() (#1534) by @gilzoide 815 | [core] REVIEWED: Wait() to support FreeBSD (#1618) 816 | [core] REVIEWED: HighDPI support on macOS retina (#1510) 817 | [core] REDESIGNED: GetFileExtension(), includes the .dot 818 | [core] REDESIGNED: IsFileExtension(), includes the .dot 819 | [core] REDESIGNED: Compresion API to use sdefl/sinfl libs 820 | [rlgl] ADDED: SUPPORT_GL_DETAILS_INFO config flag 821 | [rlgl] REMOVED: GenTexture*() functions (#721) 822 | [rlgl] REVIEWED: rlLoadShaderDefault() 823 | [rlgl] REDESIGNED: rlLoadExtensions(), more details exposed 824 | [raymath] REVIEWED: QuaternionFromEuler() (#1651) 825 | [raymath] REVIEWED: MatrixRotateZYX() (#1642) 826 | [shapes] ADDED: DrawSplineBezierQuad() (#1468) by @epsilon-phase 827 | [shapes] ADDED: CheckCollisionLines() 828 | [shapes] ADDED: CheckCollisionPointLine() by @mkupiec1 829 | [shapes] REVIEWED: CheckCollisionPointTriangle() by @mkupiec1 830 | [shapes] REDESIGNED: SetShapesTexture() 831 | [shapes] REDESIGNED: DrawCircleSector(), to use float params 832 | [shapes] REDESIGNED: DrawCircleSectorLines(), to use float params 833 | [shapes] REDESIGNED: DrawRing(), to use float params 834 | [shapes] REDESIGNED: DrawRingLines(), to use float params 835 | [textures] ADDED: DrawTexturePoly() and example (#1677) by @chriscamacho 836 | [textures] ADDED: UnloadImageColors() for allocs consistency 837 | [textures] RENAMED: GetImageData() to LoadImageColors() 838 | [textures] REVIEWED: ImageClearBackground() and ImageDrawRectangleRec() (#1487) by @JeffM2501 839 | [textures] REVIEWED: DrawTexturePro() and DrawRectanglePro() transformations (#1632) by @ChrisDill 840 | [text] REDESIGNED: DrawFPS() 841 | [models] ADDED: UploadMesh() (#1529) 842 | [models] ADDED: UpdateMeshBuffer() 843 | [models] ADDED: DrawMesh() 844 | [models] ADDED: DrawMeshInstanced() 845 | [models] ADDED: UnloadModelAnimations() (#1648) by @object71 846 | [models] REMOVED: DrawGizmo() 847 | [models] REMOVED: LoadMeshes() 848 | [models] REMOVED: MeshNormalsSmooth() 849 | [models] REVIEWED: DrawLine3D() (#1643) 850 | [audio] REVIEWED: Multichannel sound system (#1548) 851 | [audio] REVIEWED: jar_xm library (#1701) by @jmorel33 852 | [utils] ADDED: SetLoadFileDataCallback() 853 | [utils] ADDED: SetSaveFileDataCallback() 854 | [utils] ADDED: SetLoadFileTextCallback() 855 | [utils] ADDED: SetSaveFileTextCallback() 856 | [examples] ADDED: text_draw_3d (#1689) by @Demizdor 857 | [examples] ADDED: textures_poly (#1677) by @chriscamacho 858 | [examples] ADDED: models_gltf_model (#1551) by @object71 859 | [examples] RENAMED: shaders_rlgl_mesh_instanced to shaders_mesh_intancing 860 | [examples] REDESIGNED: shaders_rlgl_mesh_instanced by @moliad 861 | [examples] REDESIGNED: core_vr_simulator 862 | [examples] REDESIGNED: models_yaw_pitch_roll 863 | [build] ADDED: Config flag: SUPPORT_STANDARD_FILEIO 864 | [build] ADDED: Config flag: SUPPORT_WINMM_HIGHRES_TIMER (#1641) 865 | [build] ADDED: Config flag: SUPPORT_GL_DETAILS_INFO 866 | [build] ADDED: Examples projects to VS2019 solution 867 | [build] REVIEWED: Makefile to support PLATFORM_RPI (#1580) 868 | [build] REVIEWED: Multiple typecast warnings by @JeffM2501 869 | [build] REDESIGNED: VS2019 project build paths 870 | [build] REDESIGNED: CMake build system by @object71 871 | [*] RENAMED: Several functions parameters for consistency 872 | [*] UPDATED: Multiple bindings to latest version 873 | [*] UPDATED: All external libraries to latest versions 874 | [*] Multiple code improvements and fixes by multiple contributors! 875 | 876 | ------------------------------------------------------------------------- 877 | Release: raylib 3.5 - 7th Anniversary Edition (25 December 2020) 878 | ------------------------------------------------------------------------- 879 | KEY CHANGES: 880 | - [core] ADDED: PLATFORM_DRM to support RPI4 and other devices (#1388) by @kernelkinetic 881 | - [core] REDESIGNED: Window states management system through FLAGS 882 | - [rlgl] ADDED: RenderBatch type and related functions to allow custom batching (internal only) 883 | - [rlgl] REDESIGNED: Framebuffers API to support multiple attachment types (#721) 884 | - [textures] REDESIGNED: Image*() functions, big performance improvements (software rendering) 885 | - [*] REVIEWED: Multiple functions to replace file accesses by memory accesses 886 | - [*] ADDED: GitHub Actions CI to support multiple raylib build configurations 887 | 888 | Detailed changes: 889 | [core] ADDED: SetWindowState() / ClearWindowState() -> New flags added! 890 | [core] ADDED: IsWindowFocused() 891 | [core] ADDED: GetWindowScaleDPI() 892 | [core] ADDED: GetMonitorRefreshRate() (#1289) by @Shylie 893 | [core] ADDED: IsCursorOnScreen() (#1262) by @ChrisDill 894 | [core] ADDED: SetMouseCursor() and GetMouseCursor() for standard Desktop cursors (#1407) by @chances 895 | [core] REMOVED: struct RenderTexture2D: depthTexture variable 896 | [core] REMOVED: HideWindow() / UnhideWindow() -> Use SetWindowState() 897 | [core] REMOVED: DecorateWindow() / UndecorateWindow() -> Use SetWindowState() 898 | [core] RENAMED: GetExtension() to GetFileExtension() 899 | [core] REVIEWED: Several structs to reduce size and padding 900 | [core] REVIEWED: struct Texture maps to Texture2D and TextureCubemap 901 | [core] REVIEWED: ToggleFullscreen() (#1287) 902 | [core] REVIEWED: InitWindow(), support empty title for window (#1323) 903 | [core] REVIEWED: RPI: Mouse movements are bound to the screen resolution (#1392) (#1410) by @kernelkinetic 904 | [core] REVIEWED: GetPrevDirectoryPath() fixes on Unix-like systems (#1246) by @ivan-cx 905 | [core] REPLACED: rgif.h by msf_gif.h for automatic gif recording 906 | [core] REDESIGNED: GetMouseWheelMove() to return float movement for precise scrolling (#1397) by @Doy-lee 907 | [core] REDESIGNED: GetKeyPressed(), and added GetCharPressed() (#1336) 908 | [core] UWP rework with improvements (#1231) by @Rover656 909 | [core] Gamepad axis bug fixes and improvement (#1228) by @mmalecot 910 | [core] Updated joystick mappings with latest version of gamecontrollerdb (#1381) by @coderoth 911 | [rlgl] Corrected issue with OpenGL 1.1 support 912 | [rlgl] ADDED: rlDrawMeshInstanced() (#1318) by @seanpringle 913 | [rlgl] ADDED: rlCheckErrors (#1321) by @seanpringle 914 | [rlgl] ADDED: BLEND_SET blending mode (#1251) by @RandomErrorMessage 915 | [rlgl] ADDED: rlSetLineWidth(), rlGetLineWidth(), rlEnableSmoothLines(), rlDisableSmoothLines() (#1457) by @JeffM2501 916 | [rlgl] RENAMED: rlUnproject() to Vector3Unproject() [raymath] 917 | [rlgl] REVIEWED: Replace rlglDraw() calls by DrawRenderBatch() internal calls 918 | [rlgl] REVIEWED: GenTextureCubemap(), use rlgl functionality only 919 | [rlgl] REVIEWED: rlFramebufferAttach() to support texture layers 920 | [rlgl] REVIEWED: GenDrawCube() and GenDrawQuad() 921 | [rlgl] REVIEWED: Issues with vertex batch overflow (#1223) 922 | [rlgl] REVIEWED: rlUpdateTexture(), issue with offsets 923 | [rlgl] REDESIGNED: GenTexture*() to use the new fbo API (#721) 924 | [raymath] ADDED: Normalize() and Remap() functions (#1247) by @NoorWachid 925 | [raymath] ADDED: Vector2Reflect() (#1400) by @daniel-junior-dube 926 | [raymath] ADDED: Vector2LengthSqr() and Vector3LengthSqr() (#1248) by @ThePituLegend 927 | [raymath] ADDED: Vector2MoveTowards() function (#1233) by @anatagawa 928 | [raymath] REVIEWED: Some functions consistency (#1197) by @Not-Nik 929 | [raymath] REVIEWED: QuaternionFromVector3ToVector3() (#1263) by @jvocaturo 930 | [raymath] REVIEWED: MatrixLookAt(), optimized (#1442) by @RandomErrorMessage 931 | [shapes] ADDED: CheckCollisionLines(), by @Elkantor 932 | [text] Avoid [textures] functions dependencies 933 | [text] ADDED: Config flag: SUPPORT_TEXT_MANIPULATION 934 | [text] ADDED: LoadFontFromMemory() (TTF only) (#1327) 935 | [text] ADDED: UnloadFontData() 936 | [text] RENAMED: FormatText() -> TextFormat() 937 | [text] REVIEWED: Font struct, added charsPadding (#1432) 938 | [text] REVIEWED: TextJoin() 939 | [text] REVIEWED: TextReplace() (#1172) 940 | [text] REVIEWED: LoadBMFont() to load data from memory (#1232) 941 | [text] REVIEWED: GenImageFontAtlas(), fixed offset (#1171) 942 | [text] REDESIGNED: LoadFontData(), reviewed input parameters 943 | [text] REDESIGNED: LoadFontDefault(), some code simplifications 944 | [text] REDESIGNED: LoadFontFromImage(), avoid LoadImageEx() 945 | [text] REDESIGNED: LoadFontData(), avoid GenImageColor(), ImageFormat() 946 | [text] REDESIGNED: LoadBMFont(), avoid ImageCopy(), ImageFormat(), ImageAlphaMask() 947 | [textures] Move Color functions from [core] to [textures] module 948 | [textures] ADDED: ColorAlphaBlend() 949 | [textures] ADDED: GetPixelColor() 950 | [textures] ADDED: SetPixelColor() 951 | [textures] ADDED: LoadImageFromMemory() (#1327) 952 | [textures] ADDED: LoadImageAnim() to load animated sequence of images 953 | [textures] ADDED: DrawTextureTiled() (#1291) - @Demizdor 954 | [textures] ADDED: UpdateTextureRec() 955 | [textures] ADDED: UnloadImageColors(), UnloadImagePalette(), UnloadWaveSamples() 956 | [textures] REMOVED: Config flag: SUPPORT_IMAGE_DRAWING 957 | [textures] REMOVED: LoadImageEx() 958 | [textures] REMOVED: LoadImagePro() 959 | [textures] REMOVED: GetImageDataNormalized(), not exposed in the API 960 | [textures] RENAMED: ImageExtractPalette() to GetImagePalette() 961 | [textures] RENAMED: Fade() to ColorAlpha(), added #define for compatibility 962 | [textures] RENAMED: GetImageData() -> LoadImageColors() 963 | [textures] RENAMED: GetImagePalette() -> LoadImagePalette() 964 | [textures] RENAMED: GetWaveData() -> LoadWaveSamples() 965 | [textures] REVIEWED: GetPixelDataSize() to consider compressed data properly 966 | [textures] REVIEWED: GetTextureData(), allow retrieving 32bit float data 967 | [textures] REVIEWED: ImageDrawText*() params order 968 | [textures] REVIEWED: ColorAlphaBlend(), support tint color 969 | [textures] REVIEWED: ColorAlphaBlend(), integers-version, optimized (#1218) 970 | [textures] REVIEWED: ImageDraw(), consider negative source offset properly (#1283) 971 | [textures] REVIEWED: ImageDraw(), optimizations test (#1218) 972 | [textures] REVIEWED: ImageResizeCanvas(), optimization (#1218) 973 | [textures] REVIEWED: ExportImage(), optimized 974 | [textures] REVIEWED: ImageAlphaPremultiply(), optimization 975 | [textures] REVIEWED: ImageAlphaClear(), minor optimization 976 | [textures] REVIEWED: ImageToPOT(), renamed parameter 977 | [textures] REVIEWED: ImageCrop() (#1218) 978 | [textures] REVIEWED: ImageToPOT() (#1218) 979 | [textures] REVIEWED: ImageAlphaCrop() (#1218) 980 | [textures] REVIEWED: ExportImage(), optimized (#1218) 981 | [textures] REDESIGNED: ImageCrop(), optimized (#1218) 982 | [textures] REDESIGNED: ImageRotateCCW(), optimized (#1218) 983 | [textures] REDESIGNED: ImageRotateCW(), optimized (#1218) 984 | [textures] REDESIGNED: ImageFlipHorizontal(), optimized (#1218) 985 | [textures] REDESIGNED: ImageFlipVertical(), optimized (#1218) 986 | [textures] REDESIGNED: ImageResizeCanvas(), optimized (#1218) 987 | [textures] REDESIGNED: ImageDrawPixel(), optimized 988 | [textures] REDESIGNED: ImageDrawLine(), optimized 989 | [textures] REDESIGNED: ImageDraw(), optimized (#1218) 990 | [textures] REDESIGNED: ImageResize(), optimized (#1218) 991 | [textures] REDESIGNED: ImageFromImage(), optimized (#1218) 992 | [textures] REDESIGNED: ImageDraw(), optimization (#1218) 993 | [textures] REDESIGNED: ImageAlphaClear(), optimized (#1218) 994 | [textures] REDESIGNED: ExportImageAsCode() to use memory buffer (#1232) 995 | [textures] REDESIGNED: ColorFromHSV() 996 | [models] ADDED: DrawTriangle3D() and DrawTriangleStrip3D() 997 | [models] ADDED: UnloadModelKeepMeshes() 998 | [models] REVIEWED: LoadModel(), avoid loading texcoords and normals from model if not existent 999 | [models] REVIEWED: GenMeshCubicmap(), added comments and simplification 1000 | [models] REVIEWED: GenMeshCubicmap(), fixed generated normals (#1244) by @GoldenThumbs 1001 | [models] REVIEWED: GenMeshPoly(), fixed buffer overflow (#1269) by @frithrah 1002 | [models] REVIEWED: LoadOBJ(): Allow for multiple materials in obj files (#1408) by @chriscamacho and @codifies 1003 | [models] REVIEWED: LoadIQM() materials loading (#1227) by @sikor666 1004 | [models] REVIEWED: LoadGLTF() to read from memory buffer 1005 | [models] REVIEWED: UpdateMesh(), fix extra memory allocated when updating color buffer (#1271) by @4yn 1006 | [models] REVIEWED: MeshNormalsSmooth() (#1317) by @seanpringle 1007 | [models] REVIEWED: DrawGrid() (#1417) 1008 | [models] REDESIGNED: ExportMesh() to use memory buffer (#1232) 1009 | [models] REDESIGNED: LoadIQM() and LoadModelAnimations() to use memory buffers 1010 | [audio] ADDED: LoadWaveFromMemory() (#1327) 1011 | [audio] REMOVED: SetMusicLoopCount() 1012 | [audio] REVIEWED: Several functions, sampleCount vs frameCount (#1423) 1013 | [audio] REVIEWED: SaveWAV() to use memory write insted of file 1014 | [audio] REVIEWED: LoadMusicStream(), support WAV music streaming (#1198) 1015 | [audio] REVIEWED: Support multiple WAV sampleSize for MusicStream (#1340) 1016 | [audio] REVIEWED: SetAudioBufferPitch() 1017 | [audio] REDESIGNED: Audio looping system 1018 | [audio] REDESIGNED: LoadSound(): Use memory loading (WAV, OGG, MP3, FLAC) (#1312) 1019 | [audio] REDESIGNED: ExportWaveAsCode() to use memory buffers 1020 | [utils] ADDED: MemAlloc() / MemFree() (#1440) 1021 | [utils] ADDED: UnloadFileData() / UnloadFileText() 1022 | [utils] REVIEWED: android_fopen() to support SDCard access 1023 | [utils] REDESIGNED: SaveFile*() functions to expose file access results (#1420) 1024 | [rmem] REVIEWED: MemPool and other allocators optimization (#1211) by @assyrianic 1025 | [examples] ADDED: core/core_window_flags 1026 | [examples] ADDED: core/core_quat_conversion by @chriscamacho and @codifies 1027 | [examples] ADDED: textures/textures_blend_modes (#1261) by @accidentalrebel 1028 | [examples] ADDED: textures/textures_draw_tiled (#1291) by @Demizdor 1029 | [examples] ADDED: shaders/shaders_hot_reloading (#1198) 1030 | [examples] ADDED: shaders/shaders_rlgl_mesh_instanced (#1318) by @seanpringle 1031 | [examples] ADDED: shaders/shaders_multi_sampler2d 1032 | [examples] ADDED: others/embedded_files_loading 1033 | [examples] REVIEWED: textures/textures_raw_data (#1286) 1034 | [examples] REVIEWED: textures/textures_sprite_explosion, replace resources 1035 | [examples] REVIEWED: textures/textures_particles_blending, replace resources 1036 | [examples] REVIEWED: textures/textures_image_processing, support mouse 1037 | [examples] REVIEWED: models/models_skybox to work on OpenGL ES 2.0 1038 | [examples] REVIEWED: audio/resources, use open license resources 1039 | [examples] REVIEWED: others/raudio_standalone.c 1040 | [build] ADDED: New config.h configuration options exposing multiple #define values 1041 | [build] REMOVED: ANGLE VS2017 template project 1042 | [build] REVIEWED: All MSVC compile warnings 1043 | [build] Updated Makefile for web (#1332) by @rfaile313 1044 | [build] Updated build pipelines to use latest emscripten and Android NDK 1045 | [build] Updated emscriptem build script to generate .a on WebAssembly 1046 | [build] Updated Android build for Linux, supporting ANDROID_NDK at compile time by @branlix3000 1047 | [build] Updated VSCode project template tasks 1048 | [build] Updated VS2017.UWP project template by @Rover656 1049 | [build] Updated Android build pipeline 1050 | [build] REMOVED: AppVeyor and Travis CI build systems 1051 | [*] Moved raysan5/raylib/games to independent repo: raysan5/raylib-games 1052 | [*] Replaced several examples resources with more open licensed alternatives 1053 | [*] Updated BINDINGS.md with NEW bindings and added raylib version binding! 1054 | [*] Updated all external libraries to latest versions 1055 | [*] Multiple code improvements and small fixes 1056 | 1057 | ----------------------------------------------- 1058 | Release: raylib 3.0 (01 April 2020) 1059 | ----------------------------------------------- 1060 | KEY CHANGES: 1061 | - Global context states used on all modules. 1062 | - Custom memory allocators for all modules and dependencies. 1063 | - Centralized file access system and memory data loading. 1064 | - Structures reviewed to reduce size and always be used as pass-by-value. 1065 | - Tracelog messages completely reviewed and categorized. 1066 | - raudio module reviewed to accomodate new Music struct and new miniaudio. 1067 | - text module reviewed to improve fonts generation and text management functions. 1068 | - Multiple new examples added and categorized examples table. 1069 | - GitHub Actions CI implemented for Windows, Linux and macOS. 1070 | 1071 | Detailed changes: 1072 | [build] ADDED: VS2017.ANGLE project, by @msmshazan 1073 | [build] ADDED: VS2017 project support for x64 platform configuration 1074 | [build] ADDED: Makefile for Android building on macOS, by @Yunoinsky 1075 | [build] ADDED: Makefile for Android building on Linux, by @pamarcos 1076 | [build] REMOVED: VS2015 project 1077 | [build] REVIEWED: VSCode project 1078 | [build] REVIEWED: Makefile build system 1079 | [build] REVIEWED: Android building, by @NimbusFox 1080 | [build] REVIEWED: Compilation with CLion IDE, by @Rover656 1081 | [build] REVIEWED: Generation of web examples, by @pamarcos 1082 | [build] REVIEWED: Makefiles path to 'shell.html', by @niorad 1083 | [build] REVIEWED: VS2017 64bit compilation issues, by @spec-chum 1084 | [build] REVIEWED: Multiple fixes on projects building, by @ChrisDill, @JuDelCo, @electronstudio 1085 | [core] ADDED: Support touch/mouse indistinctly 1086 | [core] ADDED: FLAG_WINDOW_ALWAYS_RUN to avoid pause on minimize 1087 | [core] ADDED: Config flag SUPPORT_HALFBUSY_WAIT_LOOP 1088 | [core] ADDED: RPI mouse cursor point support on native mode 1089 | [core] ADDED: GetWorldToScreen2D()- Get screen space position for a 2d camera world space position, by @arvyy 1090 | [core] ADDED: GetScreenToWorld2D() - Get world space position for a 2d camera screen space position, by @arvyy 1091 | [core] ADDED: GetWorldToScreenEx() - Get size position for a 3d world space position 1092 | [core] ADDED: DirectoryExists() - Check if a directory path exists 1093 | [core] ADDED: GetPrevDirectoryPath() - Get previous directory path for a given path 1094 | [core] ADDED: CompressData() - Compress data (DEFLATE algorythm) 1095 | [core] ADDED: DecompressData() - Decompress data (DEFLATE algorythm) 1096 | [core] ADDED: GetWindowPosition() - Get window position XY on monitor 1097 | [core] ADDED: LoadFileData() - Load file data as byte array (read) 1098 | [core] ADDED: SaveFileData() - Save data to file from byte array (write) 1099 | [core] ADDED: LoadFileText() - Load text data from file (read), returns a '\0' terminated string 1100 | [core] ADDED: SaveFileText() - Save text data to file (write), string must be '\0' terminated 1101 | [core] REMOVED: Show raylib logo at initialization 1102 | [core] REVIEWED: GetFileName(), security checks 1103 | [core] REVIEWED: LoadStorageValue(), by @danimartin82 1104 | [core] REVIEWED: SaveStorageValue(), by @danimartin82 1105 | [core] REVIEWED: IsMouseButtonReleased(), when press/release events come too fast, by @oswjk 1106 | [core] REVIEWED: SetWindowMonitor(), by @DropsOfSerenity 1107 | [core] REVIEWED: IsFileExtension() to be case-insensitive 1108 | [core] REVIEWED: IsFileExtension() when checking no-extension files 1109 | [core] REVIEWED: Default font scale filter for HighDPI mode 1110 | [core] REVIEWED: Touch input scaling for PLATFORM_WEB 1111 | [core] REVIEWED: RPI input system, by @DarkElvenAngel 1112 | [core] REVIEWED: RPI input threads issues 1113 | [core] REVIEWED: OpenGL extensions loading and freeing 1114 | [core] REVIEWED: GetDirectoryPath() 1115 | [core] REVIEWED: Camera2D behavior, by @arvyy 1116 | [core] REVIEWED: OpenGL ES 2.0 extensions check 1117 | [rlgl] ADDED: Flags to allow frustrum culling near/far distance configuration at compile time 1118 | [rlgl] ADDED: Flags to sllow MAX_BATCH_BUFFERING config at compile time 1119 | [rlgl] ADDED: GetMatrixProjection(), by @chriscamacho 1120 | [rlgl] ADDED: rlUpdateMeshAt() - Update vertex or index data on GPU, at index, by @brankoku 1121 | [rlgl] REVIEWED: Vertex padding not zeroed for quads, by @kawa-yoiko 1122 | [rlgl] REVIEWED: Read texture data as RGBA from FBO on GLES 2.0 1123 | [rlgl] REVIEWED: LoadShaderCode() for const correctness, by @heretique 1124 | [rlgl] REVIEWED: rlLoadTexture() 1125 | [rlgl] REVIEWED: rlReadTexturePixels() 1126 | [rlgl] REVIEWED: rlUpdateMesh() to supports updating indices, by @brankoku 1127 | [rlgl] REVIEWED: GenTextureCubemap(), renamed parameters for consistency 1128 | [rlgl] REVIEWED: HDR pixels loading 1129 | [raymath] ADDED: MatrixRotateXYZ(), by @chriscamacho 1130 | [raymath] RENAMED: Vector3Multiply() to Vector3Scale() 1131 | [camera] REVIEWED: Free camera pitch, by @chriscamacho 1132 | [camera] REVIEWED: Camera not working properly at z-align, by @Ushio 1133 | [shapes] ADDED: DrawTriangleStrip() - Draw a triangle strip defined by points 1134 | [shapes] ADDED: DrawEllipse() - Draw ellipse 1135 | [shapes] ADDED: DrawEllipseLines() - Draw ellipse outline 1136 | [shapes] ADDED: DrawPolyLines() - Draw a polygon outline of n sides 1137 | [shapes] REVIEWED: DrawPoly() shape rendering, by @AlexHCC 1138 | [textures] ADDED: LoadAnimatedGIF() - Load animated GIF file 1139 | [textures] ADDED: GetImageAlphaBorder() - Get image alpha border rectangle 1140 | [textures] ADDED: ImageFromImage() - Create an image from another image piece 1141 | [textures] ADDED: ImageClearBackground(), by @iamsouravgupta 1142 | [textures] ADDED: ImageDrawPixel(), by @iamsouravgupta 1143 | [textures] ADDED: ImageDrawCircle(), by @iamsouravgupta 1144 | [textures] ADDED: ImageDrawLineEx(), by @iamsouravgupta 1145 | [textures] ADDED: ImageDrawPixelV(), by @RobLoach 1146 | [textures] ADDED: ImageDrawCircleV(), by @RobLoach 1147 | [textures] ADDED: ImageDrawLineV(), by @RobLoach 1148 | [textures] ADDED: ImageDrawRectangleV(), by @RobLoach 1149 | [textures] ADDED: ImageDrawRectangleRec(), by @RobLoach 1150 | [textures] REVIEWED: ImageDrawPixel(), by @RobLoach 1151 | [textures] REVIEWED: ImageDrawLine(), by @RobLoach 1152 | [textures] REVIEWED: ImageDrawCircle(), by @RobLoach 1153 | [textures] REVIEWED: ImageDrawRectangle(), by @RobLoach 1154 | [textures] REVIEWED: ImageDraw(), now it supports color tint parameter 1155 | [textures] REVIEWED: ImageResizeCanvas() 1156 | [textures] REVIEWED: ImageCrop() with security checks 1157 | [textures] REVIEWED: ImageAlphaMask() 1158 | [textures] REVIEWED: ImageDrawRectangleLines() 1159 | [textures] REVIEWED: GetImageData() 1160 | [text] ADDED: TextCopy() - Copy one string to another, returns bytes copied 1161 | [text] ADDED: GetCodepoints() - Get all codepoints in a string 1162 | [text] ADDED: CodepointToUtf8() - Encode codepoint into utf8 text 1163 | [text] ADDED: DrawTextCodepoint() - Draw one character (codepoint) 1164 | [text] RENAMED: LoadDefaultFont() -> LoadFontDefault() 1165 | [text] RENAMED: TextCountCodepoints() -> GetCodepointsCount() 1166 | [text] REVIEWED: TextFormat(), to support caching, by @brankoku 1167 | [text] REVIEWED: LoadFontData(), generate empty image for space character 1168 | [text] REVIEWED: TextSplit() 1169 | [text] REVIEWED: TextToInteger() 1170 | [text] REVIEWED: GetNextCodepoint(), renamed parameters for clarity 1171 | [text] REVIEWED: GenImageFontAtlas(), improved atlas size computing 1172 | [text] REDESIGNED: struct Font, character rectangles have been moved out from CharInfo to Font 1173 | [text] REDESIGNED: struct CharInfo, now includes directly an Image of the glyph 1174 | [text] REDESIGNED: GenImageFontAtlas(), additional recs parameter added 1175 | [text] REDESIGNED: ImageTextEx(), to avoid font retrieval from GPU 1176 | [models] ADDED: Support rlPushMatrix() and rlPopMatrix() on mesh drawing 1177 | [models] ADDED: DrawPoint3D() - Draw a point in 3D space, actually a small line, by @ProfJski 1178 | [models] ADDED: Multi texture support for materials in GLTF format, by @Gamerfiend, @chriscamacho 1179 | [models] REVIEWED: LoadGLTF(), fixed memory leak, by @jubalh 1180 | [models] REVIEWED: LoadIQM(), support multiple animations loading, by @culacant 1181 | [models] REVIEWED: GetCollisionRayModel(), to avoid pointers 1182 | [models] REVIEWED: CheckCollisionRay*(), parameters renamed 1183 | [models] REVIEWED: UnloadMesh(), to avoid pointers 1184 | [models] REVIEWED: LoadModel(), memory initialization 1185 | [models] REVIEWED: UpdateModelAnimation(), added security checks 1186 | [models] REVIEWED: Multiple fixes on models loading, by @jubalh 1187 | [models] REVIEWED: Normals updated when using animated meshes, by @@las3rlars 1188 | [models] REVIEWED: Compilation when the SUPPORT_MESH_GENERATION not set, by @@Elkantor 1189 | [raudio] ADDED: Multi-channel audio playing, by @chriscamacho 1190 | [raudio] REMOVED: LoadWaveEx() 1191 | [raudio] RENAMED: IsAudioBufferProcessed() to IsAudioStreamProcessed() 1192 | [raudio] REVIEWED: Ensure .xm playback starts in the right place, by @illegalinstruction 1193 | [raudio] REVIEWED: Fix short non-looping sounds, by @jbosh 1194 | [raudio] REVIEWED: Modules playing time to full length 1195 | [raudio] REDESIGNED: Replaced Music pointer by struct 1196 | [raudio] REDESIGNED: Removed sampleLeft from Music struct 1197 | [examples] ADDED: core_scissor_test, by @ChrisDill 1198 | [examples] ADDED: core_2d_camera_platformer, by @arvyy 1199 | [examples] ADDED: textures_mouse_painting, by @ChrisDill 1200 | [examples] ADDED: models_waving_cubes, by @codecat 1201 | [examples] ADDED: models_solar_system, by @aldrinmartoq 1202 | [examples] ADDED: shaders_fog, by @chriscamacho 1203 | [examples] ADDED: shaders_texture_waves, by @Anata 1204 | [examples] ADDED: shaders_basic_lighting, by @chriscamacho 1205 | [examples] ADDED: shaders_simple_mask, by @chriscamacho 1206 | [examples] ADDED: audio_multichannel_sound, by @chriscamacho 1207 | [examples] ADDED: shaders_spotlight, by @chriscamacho 1208 | [examples] RENAMED: text_sprite_font > text_font_spritefont 1209 | [examples] RENAMED: text_ttf_loading > text_font_filters 1210 | [examples] RENAMED: text_bmfont_ttf > text_font_loading 1211 | [examples] REMOVED: models_obj_viewer 1212 | [examples] REMOVED: models_solar_system 1213 | [examples] REVIEWED: models_obj_loading > models_loading 1214 | [examples] REVIEWED: models_materials_pbr, shader issues 1215 | [examples] REVIEWED: core_window_letterbox, detailed explanation, by @jotac0 1216 | [examples] REVIEWED: core_window_letterbox, virtual mouse, by @anatagawa 1217 | [games] ADDED: GGJ2020 game - RE-PAIR 1218 | [*] Misc fixes and tweaks, by @yaram, @oraoto, @zatherz, @piecedigital, @Shylie 1219 | [*] Update ALL supported projects (Notepad++, VS2017) 1220 | [*] Update ALL external libraries to latest versions (29.Jan.2020) 1221 | [*] Update ALL examples and games 1222 | [*] Update BINDINGS list 1223 | 1224 | ----------------------------------------------- 1225 | Release: raylib 2.5 (May 2019) 1226 | ----------------------------------------------- 1227 | KEY CHANGES: 1228 | - [core] Redesigned Gamepad mechanism, now common to all platforms and gamepads 1229 | - [core] HighDPI monitors support with automatic content scaling 1230 | - [rlgl] Complete module redesign to use one single internal buffer 1231 | - [rlgl] VR system redesign to allow custom device parameters and distortion shader 1232 | - [shapes] New drawing shapes available: CircleSector, Ring and RectangleRounded 1233 | - [text] New text management API (multiple functions) 1234 | - [text] Full Unicode support (utf8 text) 1235 | - [textures] Cubemap textures support 1236 | - [textures] Quad and N-Patch drawing 1237 | - [models] Skeletal model animation support 1238 | - [models] Support multiple meshes per model 1239 | - [models] Support glTF model loading 1240 | 1241 | Detailed changes: 1242 | [build] REVIEWED: Default raylib and examples Makefile 1243 | [build] REVIEWED: Notepad++ NppExec scripts 1244 | [build] REVIEWED: VS2015 and VS2017 projects 1245 | [build] REVIEWED: Android APK build pipeline 1246 | [core] Converted most #defined values as enum values 1247 | [core] Complete redesign of RPI input system to use evdev events 1248 | [core] ADDED: IsWindowResized() - Check if window has been resized 1249 | [core] ADDED: IsWindowHidden() - Check if window is currently hidden 1250 | [core] ADDED: UnhideWindow() - Show the window 1251 | [core] ADDED: HideWindow() - Hide the window 1252 | [core] ADDED: GetWindowHandle() - Get native window handle 1253 | [core] ADDED: GetMonitorCount() - Get number of connected monitors 1254 | [core] ADDED: GetMonitorWidth() - Get primary monitor width 1255 | [core] ADDED: GetMonitorHeight() - Get primary monitor height 1256 | [core] ADDED: GetMonitorPhysicalWidth() - Get primary monitor physical width in millimetres 1257 | [core] ADDED: GetMonitorPhysicalHeight() - Get primary monitor physical height in millimetres 1258 | [core] ADDED: GetMonitorName() - Get the human-readable, UTF-8 encoded name of the primary monitor 1259 | [core] ADDED: GetClipboardText() - Get clipboard text content 1260 | [core] ADDED: SetClipboardText() - Set clipboard text content 1261 | [core] ADDED: ColorFromHSV() - Returns a Color from HSV values 1262 | [core] ADDED: FileExists() - Check if file exists 1263 | [core] ADDED: GetFileNameWithoutExt() - Get filename string without extension (memory should be freed) 1264 | [core] ADDED: GetDirectoryFiles() - Get filenames in a directory path (memory should be freed) 1265 | [core] ADDED: ClearDirectoryFiles() - Clear directory files paths buffers (free memory) 1266 | [core] ADDED: OpenURL() - Open URL with default system browser (if available) 1267 | [core] ADDED: SetMouseOffset() - Set mouse offset 1268 | [core] ADDED: SetMouseScale() - Set mouse scaling 1269 | [core] REMOVED: ShowLogo() - Activate raylib logo at startup (can be done with flags) 1270 | [shapes] ADDED: DrawCircleSector() - Draw a piece of a circle 1271 | [shapes] ADDED: DrawCircleSectorLines() - Draw circle sector outline 1272 | [shapes] ADDED: DrawRing() - Draw ring 1273 | [shapes] ADDED: DrawRingLines() - Draw ring outline 1274 | [shapes] ADDED: DrawRectangleRounded() - Draw rectangle with rounded edges 1275 | [shapes] ADDED: DrawRectangleRoundedLines() - Draw rectangle with rounded edges outline 1276 | [shapes] ADDED: SetShapesTexture() - Define default texture used to draw shapes 1277 | [textures] REVIEWED: ExportImage() - Reorder function parameters 1278 | [textures] REVIEWED: ImageDrawRectangle() - Remove unneeded parameter 1279 | [textures] ADDED: ExportImageAsCode() - Export image as code file defining an array of bytes 1280 | [textures] ADDED: LoadTextureCubemap() - Load cubemap from image, multiple image cubemap layouts supported 1281 | [textures] ADDED: ImageExtractPalette() - Extract color palette from image to maximum size (memory should be freed) 1282 | [textures] ADDED: ImageDrawRectangleLines() - Draw rectangle lines within an image 1283 | [textures] ADDED: DrawTextureQuad() - Draw texture quad with tiling and offset parameters 1284 | [textures] ADDED: DrawTextureNPatch() - Draws a texture (or part of it) that stretches or shrinks nicely 1285 | [models] REVIEWED: LoadMesh() -> LoadMeshes() - Support multiple meshes loading 1286 | [models] REVIEWED: LoadMaterial() -> LoadMaterials() - Support multiple materials loading 1287 | [models] REVIEWED: ExportMesh() - Reorder parameters 1288 | [models] ADDED: DrawCubeWiresV() - Draw cube wires (Vector version) 1289 | [models] ADDED: GenMeshPoly() - Generate polygonal mesh 1290 | [models] ADDED: SetMaterialTexture() - Set texture for a material map type (MAP_DIFFUSE, MAP_SPECULAR...) 1291 | [models] ADDED: SetModelMeshMaterial() - Set material for a mesh 1292 | [models] ADDED: LoadModelAnimations() - Load model animations from file 1293 | [models] ADDED: UpdateModelAnimation() - Update model animation pose 1294 | [models] ADDED: UnloadModelAnimation() - Unload animation data 1295 | [models] ADDED: IsModelAnimationValid() - Check model animation skeleton match 1296 | [rlgl] Improved internal batching mechanism (multibuffering support, triangle texcoords...) 1297 | [rlgl] REVIEWED: rlPushMatrix()/rlPopMatrix() - Now works like OpenGL 1.1 1298 | [rlgl] REVIEWED: SetShaderValue() - More generic, now requires uniform type 1299 | [rlgl] REMOVED: SetShaderValuei() - Can be acoomplished with new SetShaderValue() 1300 | [rlgl] ADDED: SetShaderValueV() - Set shader uniform value vector 1301 | [rlgl] ADDED: SetShaderValueTexture() - Set shader uniform value for texture 1302 | [rlgl] ADDED: BeginScissorMode() - Begin scissor mode (define screen area for following drawing) 1303 | [rlgl] ADDED: EndScissorMode() - End scissor mode 1304 | [rlgl] ADDED: SetVrConfiguration() - Set stereo rendering configuration parameters 1305 | [rlgl] REVIEWED: InitVrSimulator() - No input parameter required, use SetVrConfiguration() 1306 | [text] REVIEWED: LoadFontEx() - Reorder function parameters 1307 | [text] REVIEWED: LoadFontData() - Reorder function parameters 1308 | [text] REVIEWED: GenImageFontAtlas() - Reorder function parameters 1309 | [text] RENAMED: FormatText() -> TextFormat() 1310 | [text] RENAMED: SubText() -> TextSubtext() 1311 | [text] ADDED: LoadFontFromImage() - Load font from Image (XNA style) 1312 | [text] ADDED: DrawTextRec() - Draw text using font inside rectangle limits 1313 | [text] ADDED: DrawTextRecEx() - Draw text using font inside rectangle limits with support for text selection 1314 | [text] ADDED: TextIsEqual() - Check if two text string are equal 1315 | [text] ADDED: TextLength() - Get text length, checks for '\0' ending 1316 | [text] ADDED: TextReplace() - Replace text string (memory should be freed!) 1317 | [text] ADDED: TextInsert() - Insert text in a position (memory should be freed!) 1318 | [text] ADDED: TextJoin() - Join text strings with delimiter 1319 | [text] ADDED: TextSplit() - Split text into multiple strings 1320 | [text] ADDED: TextAppend() - Append text at specific position and move cursor! 1321 | [text] ADDED: TextFindIndex() - Find first text occurrence within a string 1322 | [text] ADDED: TextToUpper() - Get upper case version of provided string 1323 | [text] ADDED: TextToLower() - Get lower case version of provided string 1324 | [text] ADDED: TextToPascal() - Get Pascal case notation version of provided string 1325 | [text] ADDED: TextToInteger() - Get integer value from text (negative values not supported) 1326 | [raudio] ADDED: ExportWave() - Export wave data to file 1327 | [raudio] ADDED: ExportWaveAsCode() - Export wave sample data to code (.h) 1328 | [raudio] ADDED: IsAudioStreamPlaying() - Check if audio stream is playing 1329 | [raudio] ADDED: SetAudioStreamVolume() - Set volume for audio stream (1.0 is max level) 1330 | [raudio] ADDED: SetAudioStreamPitch() - Set pitch for audio stream (1.0 is base level) 1331 | [examples] Complete review of full examples collection, many additions 1332 | [examples] ADDED: core_custom_logging - Custom trace log system 1333 | [examples] ADDED: core_input_multitouch - Multitouch input example 1334 | [examples] ADDED: core_window_letterbox - Window adapted to screen 1335 | [examples] ADDED: core_loading_thread - Data loading in second thread 1336 | [examples] REVIEWED: core_input_gamepad - Adapted to new gamepad system 1337 | [examples] REVIEWED: core_vr_simulator - HMD device parameters and distortion shader should be provided 1338 | [examples] ADDED: core_window_scale_letterbox - Windows resizing and letterbox content 1339 | [examples] ADDED: shapes_rectangle_scaling_mouse - Scale a rectangle with mouse 1340 | [examples] ADDED: shapes_draw_circle_sector - Circle sector drawing 1341 | [examples] ADDED: shapes_draw_ring - Ring drawing 1342 | [examples] ADDED: shapes_draw_rectangle_rounded - Rounded rectangle drawing 1343 | [examples] ADDED: shapes_bouncing_ball - Ball bouncing in the screen 1344 | [examples] ADDED: shapes_collision_area - Collision detection and drawing 1345 | [examples] ADDED: shapes_following_eyes - Some maths on eyes and mouse 1346 | [examples] ADDED: shapes_easings_ball_anim - Ball animation 1347 | [examples] ADDED: shapes_easings_box_anim - Box animation 1348 | [examples] ADDED: shapes_easings_rectangle_array - Rectangles animation 1349 | [examples] REVIEWED: shapes_colors_palette - Reviewed color selection and text displaying 1350 | [examples] ADDED: textures_background_scrolling - Scrolling and parallaz background effect 1351 | [examples] ADDED: textures_image_npatch - Drawing N-Patch based boxes 1352 | [examples] ADDED: textures_sprite_button - Sprite button with sound 1353 | [examples] ADDED: textures_sprite_explosion - Sprite explosion with sound 1354 | [examples] ADDED: textures_bunnymark - Benchmarking test 1355 | [examples] ADDED: text_draw_inside_rectangle - Drawing text inside a delimited rectangle box 1356 | [examples] ADDED: text_unicode - Multiple languages text drawing 1357 | [examples] ADDED: text_rectangle_bound - Fit text inside a rectangle 1358 | [examples] REVIEWED: text_bmfont_ttf - Simplified example 1359 | [examples] ADDED: models_animation - Animated models loading and animation playing 1360 | [examples] ADDED: models_obj_viewer - Draw and drop models viewer 1361 | [examples] ADDED: models_rlgl_solar_system - Solar system simulation using rlgl functionality 1362 | [examples] ADDED: models_first_person_maze - 3D maze fps 1363 | [examples] ADDED: shaders_palette_switch - Switching color palette on shader 1364 | [examples] ADDED: shaders_raymarching - Raymarching shader 1365 | [examples] ADDED: shaders_texture_drawing - Texture drawing on GPU 1366 | [examples] ADDED: shaders_texture_waves - Texture waves on shader 1367 | [examples] ADDED: shaders_julia_set - Julia set fractals 1368 | [examples] ADDED: shaders_eratosthenes - Prime number visualization shader 1369 | [examples] REVIEWED: audio_raw_stream - Mostly rewritten 1370 | [games] ADDED: GGJ19 game - Cat vs Roomba 1371 | [*] Updated external libraries to latest version 1372 | [*] Multiple bugs corrected (check github issues) 1373 | 1374 | ----------------------------------------------- 1375 | Release: raylib 2.0 (July 2018) 1376 | ----------------------------------------------- 1377 | KEY CHANGES: 1378 | - Removed external dependencies (GLFW3 and OpenAL) 1379 | - Complete redesign of audio module to use miniaudio library 1380 | - Support AppVeyor and Travis CI (continuous integration) building 1381 | - Reviewed raymath.h for better consistency and performance (inlining) 1382 | - Refactor all #define SUPPORT_* into a single config.h 1383 | - Support TCC compiler (32bit and 64bit) 1384 | 1385 | Detailed changes: 1386 | [build] REMOVED: GitHub develop branch 1387 | [build] REMOVED: External dependencies GLFW and OpenAL 1388 | [build] ADDED: Android 64bit ARM support 1389 | [build] ADDED: FreeBSD, OpenBSD, NetBSD, Dragon Fly OS support 1390 | [build] ADDED: Universal Windows Platform (UWP) support 1391 | [build] ADDED: Wayland Linux desktop support 1392 | [build] ADDED: AppVeyor CI for automatic Windows builds 1393 | [build] ADDED: Travis CI for automatic Linux/macOS builds 1394 | [build] ADDED: rglfw (GLFW3 module) to avoid external dependency 1395 | [build] ADDED: VS2017 UWP project 1396 | [build] ADDED: Builder project template 1397 | [build] ADDED: Compiler memory sanitizer for better debug 1398 | [build] ADDED: CMake package target and CI auto-deploy tags 1399 | [build] ADDED: DEBUG library building support 1400 | [build] ADDED: Notepad++ NppExec scripts 1401 | [build] REVIEWED: VS2015 and VS2017 projects 1402 | [build] REVIEWED: Android APK build pipeline 1403 | [core] REVIEWED: Window creation hints to support transparent windows 1404 | [core] Unified InitWindow() between platforms 1405 | [core] Export Android main entry point 1406 | [core] RENAMED: Begin3dMode() to BeginMode3D() 1407 | [core] RENAMED: End3dMode() to EndMode3D() 1408 | [core] RENAMED: Begin2dMode() to BeginMode2D() 1409 | [core] RENAMED: End2dMode() to EndMode2D() 1410 | [core] RENAMED: struct Camera to Camera3D 1411 | [core] RENAMED: struct SpriteFont to Font -> plus all required functions! 1412 | [core] RENAMED: enum TextureFormat to PixelFormat 1413 | [core] REVIEWED: Rectangle params int to float 1414 | [core] REVIEWED: timing system for macOS 1415 | [core] REMOVED: ColorToFloat() 1416 | [core] ADDED: GetCurrentTime() on macOS 1417 | [core] ADDED: GetTime() 1418 | [core] ADDED: struct Vector4 1419 | [core] ADDED: SetTraceLog() to define trace log messages type 1420 | [core] ADDED: GetFileName() to get filename from path string 1421 | [core] ADDED: ColorToHSV() 1422 | [core] ADDED: ColorNormalize() 1423 | [core] ADDED: SetWindowSize() to scale Windows in runtime 1424 | [core] ADDED: SetMouseScale() to scale mouse input 1425 | [core] ADDED: key definitions - KEY_GRAVE, KEY_SLASH, KEY_BACKSLASH 1426 | [core] RENAMED: GetHexValue() to ColorToInt() 1427 | [core] REVIEWED: Fade() 1428 | [core] REVIEWED: InitWindow() to avoid void pointer (safety) 1429 | [core] Support camera 3d orthographic projection mode 1430 | [shapes] ADDED: DrawRectangleLinesEx() 1431 | [textures] Improved pixel formats support (32bit channels) 1432 | [textures] Improved textures support for OpenGL 2.1 1433 | [textures] REMOVED: DrawRectangleT() --> Added support to DrawRectangle() 1434 | [textures] ADDED: GetPixelDataSize(); pixel data size in bytes (image or texture) 1435 | [textures] ADDED: ImageAlphaClear() --> Clear alpha channel to desired color 1436 | [textures] ADDED: ImageAlphaCrop() --> Crop image depending on alpha value 1437 | [textures] ADDED: ImageAlphaPremultiply() --> Premultiply alpha channel 1438 | [textures] ADDED: ImageDrawRectangle() 1439 | [textures] ADDED: ImageMipmaps() 1440 | [textures] ADDED: GenImageColor() 1441 | [textures] ADDED: GetPixelDataSize() 1442 | [textures] ADDED: ImageRotateCW() 1443 | [textures] ADDED: ImageRotateCCW() 1444 | [textures] ADDED: ImageResizeCanvas() 1445 | [textures] ADDED: GetImageDataNormalized() 1446 | [textures] REVIEWED: ImageFormat() to use normalized data 1447 | [textures] REVIEWED: Manual mipmap generation 1448 | [textures] REVIEWED: LoadASTC() 1449 | [textures] REVIEWED: GenImagePerlinNoise() 1450 | [textures] REVIEWED: ImageTextEx() to support UTF8 basic characters 1451 | [textures] REVIEWED: GetTextureData() for RPI - requires some work 1452 | [textures] Added new example: text drawing on image 1453 | [text] Corrected issue with ttf font y-offset 1454 | [text] Support SDF font data generation 1455 | [text] ADDED: GenImageFontAtlas() 1456 | [text] ADDED: LoadFontData() to load data from TTF file 1457 | [text] REMOVED: LoadTTF() internal function 1458 | [text] REVIEWED: DrawTextEx() - avoid rendering SPACE character! 1459 | [text] RENAMED: GetDefaultFont() to GetFontDefault() 1460 | [rlgl] ADDED: rlCheckBufferLimit() 1461 | [rlgl] ADDED: LoadShaderCode() 1462 | [rlgl] ADDED: GetMatrixModelview() 1463 | [rlgl] ADDED: SetVrDistortionShader(Shader shader) 1464 | [rlgl] REVIEWED: rlLoadTexture() - added mipmaps support, improved compressed textures loading 1465 | [rlgl] REVIEWED: rlReadTexturePixels() 1466 | [models] Support 4 components mesh.tangent data 1467 | [models] Removed tangents generation from LoadOBJ() 1468 | [models] ADDED: MeshTangents() 1469 | [models] ADDED: MeshBinormals() 1470 | [models] ADDED: ExportMesh() 1471 | [models] ADDED: GetCollisionRayModel() 1472 | [models] RENAMED: CalculateBoundingBox() to MeshBoundingBox() 1473 | [models] REMOVED: GetCollisionRayMesh() - does not consider model transform 1474 | [models] REVIEWED: LoadMesh() - fallback to default cube mesh if loading fails 1475 | [audio] ADDED: Support for MP3 fileformat 1476 | [audio] ADDED: IsAudioStreamPlaying() 1477 | [audio] ADDED: SetAudioStreamVolume() 1478 | [audio] ADDED: SetAudioStreamPitch() 1479 | [utils] Corrected issue with SaveImageAs() 1480 | [utils] RENAMED: SaveImageAs() to ExportImage() 1481 | [utils] REMOVED: rres support - moved to external library (rres.h) 1482 | [shaders] REVIEWED: GLSL 120 shaders 1483 | [raymath] ADDED: Vector3RotateByQuaternion() 1484 | [raymath] REVIEWED: math usage to reduce temp variables 1485 | [raymath] REVIEWED: Avoid pointer-based parameters for API consistency 1486 | [physac] REVIEWED: physac.h timing system 1487 | [examples] Replaced dwarf model by brand new 3d assets: 3d medieval buildings 1488 | [examples] Assets cleaning and some replacements 1489 | [games] ADDED: GGJ18 game - transmission mission 1490 | [games] REVIEWED: Light my Ritual game - improved gameplay drawing 1491 | [*] Updated external libraries to latest version 1492 | [*] Multiple bugs corrected (check github issues) 1493 | 1494 | ----------------------------------------------- 1495 | Release: raylib 1.8.0 (Oct 2017) 1496 | ----------------------------------------------- 1497 | NOTE: 1498 | In this release, multiple parts of the library have been reviewed (again) for consistency and simplification. 1499 | It exposes more than 30 new functions in comparison with previous version and it improves overall programming experience. 1500 | 1501 | BIG CHANGES: 1502 | - New Image generation functions: Gradient, Checked, Noise, Cellular... 1503 | - New Mesh generation functions: Cube, Sphere, Cylinder, Torus, Knot... 1504 | - New Shaders and Materials systems to support PBR materials 1505 | - Custom Android APK build pipeline with simple Makefile 1506 | - Complete review of rlgl layer functionality 1507 | - Complete review of raymath functionality 1508 | 1509 | detailed changes: 1510 | [rlgl] RENAMED: rlglLoadTexture() to rlLoadTexture() 1511 | [rlgl] RENAMED: rlglLoadRenderTexture() to rlLoadRenderTexture() 1512 | [rlgl] RENAMED: rlglUpdateTexture() to rlUpdateTexture() 1513 | [rlgl] RENAMED: rlglGenerateMipmaps() to rlGenerateMipmaps() 1514 | [rlgl] RENAMED: rlglReadScreenPixels() to rlReadScreenPixels() 1515 | [rlgl] RENAMED: rlglReadTexturePixels() to rlReadTexturePixels() 1516 | [rlgl] RENAMED: rlglLoadMesh() to rlLoadMesh() 1517 | [rlgl] RENAMED: rlglUpdateMesh() to rlUpdateMesh() 1518 | [rlgl] RENAMED: rlglDrawMesh() to rlDrawMesh() 1519 | [rlgl] RENAMED: rlglUnloadMesh() to rlUnloadMesh() 1520 | [rlgl] RENAMED: rlglUnproject() to rlUnproject() 1521 | [rlgl] RENAMED: LoadCompressedTexture() to LoadTextureCompressed() 1522 | [rlgl] RENAMED: GetDefaultTexture() to GetTextureDefault() 1523 | [rlgl] RENAMED: LoadDefaultShader() to LoadShaderDefault() 1524 | [rlgl] RENAMED: LoadDefaultShaderLocations() to SetShaderDefaultLocations() 1525 | [rlgl] RENAMED: UnloadDefaultShader() to UnLoadShaderDefault() 1526 | [rlgl] ADDED: rlGenMapCubemap(), Generate cubemap texture map from HDR texture 1527 | [rlgl] ADDED: rlGenMapIrradiance(), Generate irradiance texture map 1528 | [rlgl] ADDED: rlGenMapPrefilter(), Generate prefilter texture map 1529 | [rlgl] ADDED: rlGenMapBRDF(), Generate BRDF texture map 1530 | [rlgl] ADDED: GetVrDeviceInfo(), Get VR device information for some standard devices 1531 | [rlgl] REVIEWED: InitVrSimulator(), to accept device parameters as input 1532 | [core] ADDED: SetWindowTitle(), Set title for window (only PLATFORM_DESKTOP) 1533 | [core] ADDED: GetExtension(), Get file extension 1534 | [shapes] REMOVED: DrawRectangleGradient(), replaced by DrawRectangleGradientV() and DrawRectangleGradientH() 1535 | [shapes] ADDED: DrawRectangleGradientV(), Draw a vertical-gradient-filled rectangle 1536 | [shapes] ADDED: DrawRectangleGradientH(), Draw a horizontal-gradient-filled rectangle 1537 | [shapes] ADDED: DrawRectangleGradientEx(), Draw a gradient-filled rectangle with custom vertex colors 1538 | [shapes] ADDED: DrawRectangleT(), Draw rectangle using text character 1539 | [textures] ADDED: SaveImageAs(), Save image as PNG file 1540 | [textures] ADDED: GenImageGradientV(), Generate image: vertical gradient 1541 | [textures] ADDED: GenImageGradientH(), Generate image: horizontal gradient 1542 | [textures] ADDED: GenImageGradientRadial(), Generate image: radial gradient 1543 | [textures] ADDED: GenImageChecked(), Generate image: checked 1544 | [textures] ADDED: GenImageWhiteNoise(), Generate image: white noise 1545 | [textures] ADDED: GenImagePerlinNoise(), Generate image: perlin noise 1546 | [textures] ADDED: GenImageCellular(), Generate image: cellular algorithm. Bigger tileSize means bigger cells 1547 | [textures] ADDED: GenTextureCubemap(), Generate cubemap texture from HDR texture 1548 | [textures] ADDED: GenTextureIrradiance(), Generate irradiance texture using cubemap data 1549 | [textures] ADDED: GenTexturePrefilter(), Generate prefilter texture using cubemap data 1550 | [textures] ADDED: GenTextureBRDF(), Generate BRDF texture using cubemap data 1551 | [models] REMOVED: LoadMeshEx(), Mesh struct variables can be directly accessed 1552 | [models] REMOVED: UpdateMesh(), very ineficient 1553 | [models] REMOVED: LoadHeightmap(), use GenMeshHeightmap() and LoadModelFromMesh() 1554 | [models] REMOVED: LoadCubicmap(), use GenMeshCubicmap() and LoadModelFromMesh() 1555 | [models] RENAMED: LoadDefaultMaterial() to LoadMaterialDefault() 1556 | [models] ADDED: GenMeshPlane(), Generate plane mesh (with subdivisions) 1557 | [models] ADDED: GenMeshCube(), Generate cuboid mesh 1558 | [models] ADDED: GenMeshSphere(), Generate sphere mesh (standard sphere) 1559 | [models] ADDED: GenMeshHemiSphere(), Generate half-sphere mesh (no bottom cap) 1560 | [models] ADDED: GenMeshCylinder(), Generate cylinder mesh 1561 | [models] ADDED: GenMeshTorus(), Generate torus mesh 1562 | [models] ADDED: GenMeshKnot(), Generate trefoil knot mesh 1563 | [models] ADDED: GenMeshHeightmap(), Generate heightmap mesh from image data 1564 | [models] ADDED: GenMeshCubicmap(), Generate cubes-based map mesh from image data 1565 | [raymath] REVIEWED: full Matrix functionality to align with GLM in usage 1566 | [raymath] RENAMED: Vector3 functions for consistency: Vector*() renamed to Vector3*() 1567 | [build] Integrate Android APK building into examples Makefile 1568 | [build] Integrate Android APK building into templates Makefiles 1569 | [build] Improved Visual Studio 2015 project, folders, references... 1570 | [templates] Reviewed the full pack to support Android building 1571 | [examples] Reviewed full collection to adapt to raylib changes 1572 | [examples] [textures] ADDED: textures_image_generation 1573 | [examples] [models] ADDED: models_mesh_generation 1574 | [examples] [models] ADDED: models_material_pbr 1575 | [examples] [models] ADDED: models_skybox 1576 | [examples] [models] ADDED: models_yaw_pitch_roll 1577 | [examples] [others] REVIEWED: rlgl_standalone 1578 | [examples] [others] REVIEWED: audio_standalone 1579 | [github] Moved raylib webpage to own repo: github.com/raysan5/raylib.com 1580 | [games] Reviewed game: Koala Seasons 1581 | [*] Updated STB libraries to latest version 1582 | [*] Multiple bugs corrected (check github issues) 1583 | 1584 | ----------------------------------------------- 1585 | Release: raylib 1.7.0 (20 May 2017) 1586 | ----------------------------------------------- 1587 | NOTE: 1588 | In this new raylib release, multiple parts of the library have been reviewed for consistency and simplification. 1589 | It exposes almost 300 functions, around 30 new functions in comparison with previous version and, again, 1590 | it sets a stepping stone towards raylib future. 1591 | 1592 | BIG changes: 1593 | - More than 30 new functions added to the library, check list below. 1594 | - Support of configuration flags on every raylib module, to customize library build. 1595 | - Improved build system for all supported platforms with a unique Makefile to compile sources. 1596 | - Complete review of examples and sample games, added new sample material. 1597 | - Support automatic GIF recording of current window, just pressing Ctrl+F12 1598 | - Improved library consistency and organization in general. 1599 | 1600 | other changes: 1601 | [core] Added function: SetWindowIcon(), to setup icon by code 1602 | [core] Added function: SetWindowMonitor(), to set current display monitor 1603 | [core] Added function: SetWindowMinSize(), to set minimum resize size 1604 | [core] Added function: TakeScreenshot(), made public to API (also launched internally with F12) 1605 | [core] Added function: GetDirectoryPath(), get directory for a given fileName (with path) 1606 | [core] Added function: GetWorkingDirectory(), get current working directory 1607 | [core] Added function: ChangeDirectory(), change working directory 1608 | [core] Added function: TraceLog(), made public to API 1609 | [core] Improved timing system to avoid busy wait loop on frame sync: Wait() 1610 | [core] Added support for gamepad on HTML5 platform 1611 | [core] Support mouse lock, useful for camera system 1612 | [core] Review functions description comments 1613 | [rlgl] Removed function: GetStandardShader(), removed internal standard shader 1614 | [rlgl] Removed function: CreateLight(), removed internal lighting system 1615 | [rlgl] Removed function: DestroyLight(), removed internal lighting system 1616 | [rlgl] Removed function: InitVrDevice(), removed VR device render, using simulator 1617 | [rlgl] Removed function: CloseVrDevice(), removed VR device render, using simulator 1618 | [rlgl] Removed function: IsVrDeviceReady(), removed VR device render, using simulator 1619 | [rlgl] Removed function: IsVrSimulator(), removed VR device render, using simulator 1620 | [rlgl] Added function: InitVrSimulator(), init VR simulator for selected device 1621 | [rlgl] Added function: CloseVrSimulator(), close VR simulator for current device 1622 | [rlgl] Added function: IsVrSimulatorReady(), detect if VR device is ready 1623 | [rlgl] Added function: BeginVrDrawing(), begin VR simulator stereo rendering 1624 | [rlgl] Added function: EndVrDrawing(), end VR simulator stereo rendering 1625 | [rlgl] Renamed function: ReadTextFile() to LoadText() and exposed to API 1626 | [rlgl] Removed internal lighting system and standard shader, moved to example 1627 | [rlgl] Removed Oculus Rift support, moved to oculus_rift example 1628 | [rlgl] Removed VR device support and replaced by VR simulator 1629 | [shapes] Added function: DrawLineEx(), draw line with QUADS, supports custom line thick 1630 | [shapes] Added function: DrawLineBezier(), draw a line using cubic-bezier curves in-out 1631 | [shapes] Added function: DrawRectanglePro(), draw a color-filled rectangle with pro parameters 1632 | [textures] Removed function: LoadImageFromRES(), redesigning custom RRES fileformat 1633 | [textures] Removed function: LoadTextureFromRES(), redesigning custom RRES fileformat 1634 | [textures] Removed function: LoadTextureEx(), use instead Image -> LoadImagePro(), LoadImageEx() 1635 | [textures] Added function: LoadImagePro()), load image from raw data with parameters 1636 | [textures] Review TraceLog() message when image file not found 1637 | [text] Renamed function: LoadSpriteFontTTF() to LoadSpriteFontEx(), for consistency 1638 | [text] Removed rBMF fileformat support, replaced by .png 1639 | [text] Refactor SpriteFont struct (better for rres custom fileformat) 1640 | [text] Renamed some variables for consistency 1641 | [models] Added function: LoadMesh(), load mesh from file 1642 | [models] Added function: LoadMeshEx(), load mesh from vertex data 1643 | [models] Added function: UnloadMesh(), unload mesh from memory (RAM and/or VRAM) 1644 | [models] Added function: GetCollisionRayMesh(), get collision info between ray and mesh 1645 | [models] Added function: GetCollisionRayTriangle(), get collision info between ray and triangle 1646 | [models] Added function: GetCollisionRayGround(), get collision info between ray and ground plane 1647 | [models] Renamed function: LoadModelEx() to LoadModelFromMesh() 1648 | [models] Removed function: DrawLight(), removed internal lighting system 1649 | [models] Renamed function: LoadModelEx() to LoadModelFromMesh() for consistency 1650 | [models] Removed function: LoadStandardMaterial(), removed internal standard shader 1651 | [models] Removed function: LoadModelFromRES(), redesigning custom RRES fileformat 1652 | [models] Renamed multiple variables for consistency 1653 | [audio] Added function: SetMasterVolume(), define listener volume 1654 | [audio] Added function: ResumeSound(), resume a paused sound 1655 | [audio] Added function: SetMusicLoopCount(), set number of repeats for a music 1656 | [audio] Added function: LoadWaveEx(), load wave from raw audio data 1657 | [audio] Added function: WaveCrop(), crop wave audio data 1658 | [audio] Added function: WaveFormat(), format audio data 1659 | [audio] Removed function: LoadSoundFromRES(), redesigning custom RRES fileformat 1660 | [audio] Added support for 32bit audio samples 1661 | [audio] Preliminary support for multichannel, limited to mono and stereo 1662 | [audio] Make sure buffers are ready for update: UpdateMusicStream() 1663 | [utils] Replaced function: GetExtension() by IsFileExtension() and made public to API 1664 | [utils] Unified function: TraceLog() between Android and other platforms 1665 | [utils] Removed internal function: GetNextPOT(), simplified implementation 1666 | [raymath] Added function: QuaternionToEuler(), to work with Euler angles 1667 | [raymath] Added function: QuaternionFromEuler(), to work with Euler angles 1668 | [raymath] Added multiple Vector2 math functions 1669 | [build] Integrate Android source building into Makefile 1670 | [example] Added example: shapes_lines_bezier 1671 | [example] Added example: text_input_box 1672 | [github] Moved gh-pages branch to master/docs 1673 | [github] Moved rlua.h and Lua examples to own repo: raylib-lua 1674 | [games] Reviewed full games collection 1675 | [games] New game added to collection: Koala Seasons 1676 | [*] Reviewed and improved examples collection (new assets) 1677 | [*] Reorganized library functions, structs, enums 1678 | [*] Updated STB libraries to latest version 1679 | 1680 | ----------------------------------------------- 1681 | Release: raylib 1.6.0 (20 November 2016) 1682 | ----------------------------------------------- 1683 | NOTE: 1684 | This new raylib version commemorates raylib 3rd anniversary and represents another complete review of the library. 1685 | It includes some interesting new features and is a stepping stone towards raylib future. 1686 | 1687 | HUGE changes: 1688 | [rlua] Lua BINDING: Complete raylib Lua binding, ALL raylib functions ported to Lua plus the +60 code examples. 1689 | [audio] COMPLETE REDESIGN: Improved music support and also raw audio data processing and playing, +20 new functions added. 1690 | [physac] COMPLETE REWRITE: Improved performance, functionality and simplified usage, moved to own repository and added multiple examples! 1691 | 1692 | other changes: 1693 | 1694 | [core] Corrected issue on OSX with HighDPI display 1695 | [core] Added flag to allow resizable window 1696 | [core] Allow no default font loading 1697 | [core] Corrected old issue with mouse buttons on web 1698 | [core] Improved gamepad support, unified across platforms 1699 | [core] Gamepad id functionality: GetGamepadName(), IsGamepadName() 1700 | [core] Gamepad buttons/axis checking functionality: 1701 | [core] Reviewed Android key inputs system, unified with desktop 1702 | [rlgl] Redesigned lighting shader system 1703 | [rlgl] Updated standard shader for better performance 1704 | [rlgl] Support alpha on framebuffer: rlglLoadRenderTexture() 1705 | [rlgl] Reviewed UpdateVrTracking() to update camera 1706 | [rlgl] Added IsVrSimulator() to check for VR simulator 1707 | [shapes] Corrected issue on DrawPolyEx() 1708 | [textures] Simplified supported image formats support 1709 | [textures] Improved text drawing within an image: ImageDrawText() 1710 | [textures] Support image alpha mixing: ImageAlphaMask() 1711 | [textures] Support textures filtering: SetTextureFilter() 1712 | [textures] Support textures wrap modes: SetTextureWrap() 1713 | [text] Improved TTF spritefont generation: LoadSpriteFontTTF() 1714 | [text] Improved AngelCode fonts support (unordered chars) 1715 | [text] Added TraceLog info on image spritefont loading 1716 | [text] Improved text measurement: MeasureTextEx() 1717 | [models] Improved OBJ loading flexibility 1718 | [models] Reviewed functions: DrawLine3D(), DrawCircle3D() 1719 | [models] Removed function: ResolveCollisionCubicmap() 1720 | [camera] Redesigned camera system and ported to header-only 1721 | [camera] Removed function: UpdateCameraPlayer() 1722 | [gestures] Redesigned gestures module to header-only 1723 | [audio] Simplified Music loading and playing system 1724 | [audio] Added trace on audio device closing 1725 | [audio] Reviewed Wave struct, improved flexibility 1726 | [audio] Support sound data update: UpdateSound() 1727 | [audio] Added support for FLAC audio loading/streaming 1728 | [raygui] Removed raygui from raylib repo (moved to own repo) 1729 | [build] Added OpenAL static library 1730 | [build] Added Visual Studio 2015 projects 1731 | [build] Support shared/dynamic raylib compilation 1732 | [*] Updated LibOVR to SDK version 1.8 1733 | [*] Updated games to latest raylib version 1734 | [*] Improved examples and added new ones 1735 | [*] Improved Android support 1736 | 1737 | ----------------------------------------------- 1738 | Release: raylib 1.5.0 (18 July 2016) 1739 | ----------------------------------------------- 1740 | NOTE: 1741 | Probably this new version is the biggest boost of the library ever, lots of parts of the library have been redesigned, 1742 | lots of bugs have been solved and some **AMAZING** new features have been added. 1743 | 1744 | HUGE changes: 1745 | [rlgl] OCULUS RIFT CV1: Added support for VR, not oly Oculus Rift CV1 but also stereo rendering simulator (multiplatform). 1746 | [rlgl] MATERIALS SYSTEM: Added support for Materials (.mtl) and multiple material properties: diffuse, specular, normal. 1747 | [rlgl] LIGHTING SYSTEM: Added support for up to 8 lights of 3 different types: Omni, Directional and Spot. 1748 | [physac] REDESIGNED: Improved performance and simplified usage, physic objects now are managed internally in a second thread! 1749 | [audio] CHIPTUNES: Added support for module audio music (.xm, .mod) loading and playing. Multiple mixing channels supported. 1750 | 1751 | other changes: 1752 | 1753 | [core] Review Android button inputs 1754 | [core] Support Android internal data storage 1755 | [core] Renamed WorldToScreen() to GetWorldToScreen() 1756 | [core] Removed function SetCustomCursor() 1757 | [core] Removed functions BeginDrawingEx(), BeginDrawingPro() 1758 | [core] Replaced functions InitDisplay() + InitGraphics() with: InitGraphicsDevice() 1759 | [core] Added support for field-of-view Y (fovy) on 3d Camera 1760 | [core] Added 2D camera mode functions: Begin2dMode() - End2dMode() 1761 | [core] Translate mouse inputs to Android touch/gestures internally 1762 | [core] Translate mouse inputs as touch inputs in HTML5 1763 | [core] Improved function GetKeyPressed() to support multiple keys (including function keys) 1764 | [core] Improved gamepad support, specially for RaspberryPi (including multiple gamepads support) 1765 | [rlgl] Support stereo rendering simulation (duplicate draw calls by viewport, optimized) 1766 | [rlgl] Added distortion shader (embeded) to support custom VR simulator: shader_distortion.h 1767 | [rlgl] Added support for OpenGL 2.1 on desktop 1768 | [rlgl] Improved 2D vs 3D drawing system (lines, triangles, quads) 1769 | [rlgl] Improved DXT-ETC1 support on HTML5 1770 | [rlgl] Review function: rlglUnproject() 1771 | [rlgl] Removed function: rlglInitGraphics(), integrated into rlglInit() 1772 | [rlgl] Updated Mesh and Shader structs 1773 | [rlgl] Simplified internal (default) dynamic buffers 1774 | [rlgl] Added support for indexed and dynamic mesh data 1775 | [rlgl] Set fixed vertex attribs location points 1776 | [rlgl] Improved mesh data loading support 1777 | [rlgl] Added standard shader (embeded) to support materials and lighting: shader_standard.h 1778 | [rlgl] Added light functions: CreateLight(), DestroyLight() 1779 | [rlgl] Added wire mode functions: rlDisableWireMode(), rlEnableWireMode() 1780 | [rlgl] Review function consistency, added: rlglLoadMesh(), rlglUpdateMesh(), rlglDrawMesh(), rlglUnloadMesh() 1781 | [rlgl] Replaced SetCustomShader() by: BeginShaderMode() - EndShaderMode() 1782 | [rlgl] Replaced SetBlendMode() by: BeginBlendMode() - EndBlendMode() 1783 | [rlgl] Added functions to customize internal matrices: SetMatrixProjection(), SetMatrixModelview() 1784 | [rlgl] Unified internal shaders to only one default shader 1785 | [rlgl] Added support for render to texture (RenderTexture2D): 1786 | LoadRenderTexture() - UnloadRenderTexture() 1787 | BeginTextureMode() - EndTextureMode() 1788 | [rlgl] Removed SetShaderMap*() functions 1789 | [rlgl] Redesigned default buffers usage functions: 1790 | LoadDefaultBuffers() - UnloadDefaultBuffers() 1791 | UpdateDefaultBuffers() - DrawDefaultBuffers() 1792 | [shapes] Corrected bug on GetCollisionRec() 1793 | [textures] Added support for Nearest-Neighbor image scaling 1794 | [textures] Added functions to draw text on image: ImageDrawText(), ImageDrawTextEx() 1795 | [text] Reorganized internal functions: Added LoadImageFont() 1796 | [text] Security check for unsupported BMFonts 1797 | [models] Split mesh creation from model loading on heightmap and cubicmap 1798 | [models] Updated BoundingBox collision detections 1799 | [models] Added color parameter to DrawBoundigBox() 1800 | [models] Removed function: DrawQuad() 1801 | [models] Removed function: SetModelTexture() 1802 | [models] Redesigned DrawPlane() to use RL_TRIANGLES 1803 | [models] Redesigned DrawRectangleV() to use RL_TRIANGLES 1804 | [models] Redesign to accomodate new materials system: LoadMaterial() 1805 | [models] Added material functions: LoadDefaultMaterial(), LoadStandardMaterial() 1806 | [models] Added MTL material loading support: LoadMTL() 1807 | [models] Added function: DrawLight() 1808 | [audio] Renamed SoundIsPlaying() to IsSoundPlaying() 1809 | [audio] Renamed MusicIsPlaying() to IsMusicPlaying() 1810 | [audio] Support multiple Music streams (indexed) 1811 | [audio] Support multiple mixing channels 1812 | [gestures] Improved and reviewed gestures system 1813 | [raymath] Added QuaternionInvert() 1814 | [raymath] Removed function: PrintMatrix() 1815 | [raygui] Ported to header-only library (https://github.com/raysan5/raygui) 1816 | [shaders] Added depth drawing shader (requires a depth texture) 1817 | [shaders] Reviewed included shaders and added comments 1818 | [OpenAL Soft] Updated to latest version (1.17.2) 1819 | [GLFW3] Updated to latest version (3.2) 1820 | [stb] Updated to latest headers versions 1821 | [GLAD] Converted to header only library and simplified to only used extensions 1822 | [*] Reorganize library folders: external libs moved to src/external folder 1823 | [*] Reorganize src folder for Android library 1824 | [*] Review external dependencies usage 1825 | [*] Improved Linux and OSX build systems 1826 | [*] Lots of tweaks and bugs corrected all around 1827 | 1828 | ----------------------------------------------- 1829 | Release: raylib 1.4.0 (22 February 2016) 1830 | ----------------------------------------------- 1831 | NOTE: 1832 | This version supposed another big improvement for raylib, including new modules and new features. 1833 | More than 30 new functions have been added to previous raylib version. 1834 | Around 8 new examples and +10 new game samples have been added. 1835 | 1836 | BIG changes: 1837 | [textures] IMAGE MANIPULATION: Functions to crop, resize, colorize, flip, dither and even draw image-to-image or text-to-image. 1838 | [text] SPRITEFONT SUPPORT: Added support for AngelCode fonts (.fnt) and TrueType fonts (.ttf). 1839 | [gestures] REDESIGN: Gestures system simplified and prepared to process generic touch events, including mouse events (multiplatform). 1840 | [physac] NEW MODULE: Basic 2D physics support, use colliders and rigidbodies; apply forces to physic objects. 1841 | 1842 | other changes: 1843 | 1844 | [rlgl] Removed GLEW library dependency, now using GLAD 1845 | [rlgl] Implemented alternative to glGetTexImage() on OpenGL ES 1846 | [rlgl] Using depth data on batch drawing 1847 | [rlgl] Reviewed glReadPixels() function 1848 | [core][rlgl] Reviewed raycast system, now 3D picking works 1849 | [core] Android: Reviewed Android App cycle, paused if inactive 1850 | [shaders] Implemented Blinn-Phong lighting shading model 1851 | [textures] Implemented Floyd-Steinberg dithering - ImageDither() 1852 | [text] Added line-break support to DrawText() 1853 | [text] Added TrueType Fonts support (using stb_truetype) 1854 | [models] Implement function: CalculateBoundingBox(Mesh mesh) 1855 | [models] Added functions to check Ray collisions 1856 | [models] Improve map resolution control on LoadHeightmap() 1857 | [camera] Corrected small-glitch on zoom-in with mouse-wheel 1858 | [gestures] Implemented SetGesturesEnabled() to enable only some gestures 1859 | [gestures] Implemented GetElapsedTime() on Windows system 1860 | [gestures] Support mouse gestures for desktop platforms 1861 | [raymath] Complete review of the module and converted to header-only 1862 | [easings] Added new module for easing animations 1863 | [stb] Updated to latest headers versions 1864 | [*] Lots of tweaks around 1865 | 1866 | ----------------------------------------------- 1867 | Release: raylib 1.3.0 (01 September 2015) 1868 | ----------------------------------------------- 1869 | NOTE: 1870 | This version supposed a big boost for raylib, new modules have been added with lots of features. 1871 | Most of the modules have been completely reviewed to accomodate to the new features. 1872 | Over 50 new functions have been added to previous raylib version. 1873 | Most of the examples have been redone and +10 new advanced examples have been added. 1874 | 1875 | BIG changes: 1876 | [rlgl] SHADERS: Support for model shaders and postprocessing shaders (multiple functions) 1877 | [textures] FORMATS: Support for multiple internal formats, including compressed formats 1878 | [camera] NEW MODULE: Set of cameras for 3d view: Free, Orbital, 1st person, 3rd person 1879 | [gestures] NEW MODULE: Gestures system for Android and HTML5 platforms 1880 | [raygui] NEW MODULE: Set of IMGUI elements for tools development (experimental) 1881 | 1882 | other changes: 1883 | 1884 | [rlgl] Added check for OpenGL supported extensions 1885 | [rlgl] Added function SetBlenMode() to select some predefined blending modes 1886 | [core] Added support for drop&drag of external files into running program 1887 | [core] Added functions ShowCursor(), HideCursor(), IsCursorHidden() 1888 | [core] Renamed function SetFlags() to SetConfigFlags() 1889 | [shapes] Simplified some functions to improve performance 1890 | [textures] Review of Image struct to support multiple data formats 1891 | [textures] Added function LoadImageEx() 1892 | [textures] Added function LoadImageRaw() 1893 | [textures] Added function LoadTextureEx() 1894 | [textures] Simplified function parameters LoadTextureFromImage() 1895 | [textures] Added function GetImageData() 1896 | [textures] Added function GetTextureData() 1897 | [textures] Renamed function ConvertToPOT() to ImageConvertToPOT() 1898 | [textures] Added function ImageConvertFormat() 1899 | [textures] Added function GenTextureMipmaps() 1900 | [text] Added support for Latin-1 Extended characters for default font 1901 | [text] Redesigned SpriteFont struct, replaced Character struct by Rectangle 1902 | [text] Removed function GetFontBaseSize(), use directly spriteFont.size 1903 | [models] Review of struct: Model (added shaders support) 1904 | [models] Added 3d collision functions (sphere vs sphere vs box vs box) 1905 | [models] Added function DrawCubeTexture() 1906 | [models] Added function DrawQuad() 1907 | [models] Added function DrawRay() 1908 | [models] Simplified function DrawPlane() 1909 | [models] Removed function DrawPlaneEx() 1910 | [models] Simplified function DrawGizmo() 1911 | [models] Removed function DrawGizmoEx() 1912 | [models] Added function LoadModelEx() 1913 | [models] Review of function LoadCubicMap() 1914 | [models] Added function ResolveCollisionCubicmap() 1915 | [audio] Decopupled from raylib, now this module can be used as standalone 1916 | [audio] Added function UpdateMusicStream() 1917 | [raymath] Complete review of the module 1918 | [stb] Updated to latest headers versions 1919 | [*] Lots of tweaks around 1920 | 1921 | ----------------------------------------------- 1922 | Release: raylib 1.2.2 (31 December 2014) 1923 | ----------------------------------------------- 1924 | [*] Added support for HTML5 compiling (emscripten, asm.js) 1925 | [core] Corrected bug on input handling (keyboard and mouse) 1926 | [textures] Renamed function CreateTexture() to LoadTextureFromImage() 1927 | [textures] Added function ConvertToPOT() 1928 | [rlgl] Added support for color tint on models on GL 3.3+ and ES2 1929 | [rlgl] Added support for normals on models 1930 | [models] Corrected bug on DrawBillboard() 1931 | [models] Corrected bug on DrawHeightmap() 1932 | [models] Renamed LoadCubesmap() to LoadCubicmap() 1933 | [audio] Added function LoadSoundFromWave() 1934 | [makefile] Added support for Linux and OSX compiling 1935 | [stb] Updated to latest headers versions 1936 | [*] Lots of tweaks around 1937 | 1938 | --------------------------------------------------------------- 1939 | Update: raylib 1.2.1 (17 October 2014) (Small Fixes Update) 1940 | --------------------------------------------------------------- 1941 | [core] Added function SetupFlags() to preconfigure raylib Window 1942 | [core] Corrected bug on fullscreen mode 1943 | [rlgl] rlglDrawmodel() - Added rotation on Y axis 1944 | [text] MeasureTextEx() - Corrected bug on measures for default font 1945 | 1946 | ----------------------------------------------- 1947 | Release: raylib 1.2 (16 September 2014) 1948 | ----------------------------------------------- 1949 | NOTE: 1950 | This version supposed a complete redesign of the [core] module to support Android and Raspberry Pi. 1951 | Multiples modules have also been tweaked to accomodate to the new platforms, specially [rlgl] 1952 | 1953 | [core] Added multiple platforms support: Android and Raspberry Pi 1954 | [core] InitWindow() - Complete rewrite and split for Android 1955 | [core] InitDisplay() - Internal function added to calculate proper display size 1956 | [core] InitGraphics() - Internal function where OpenGL graphics are initialized 1957 | [core] Complete refactoring of input functions to accomodate to new platforms 1958 | [core] Mouse and Keyboard raw data reading functions added for Raspberry Pi 1959 | [core] GetTouchX(), GetTouchY() - Added for Android 1960 | [core] Added Android callbacks to process inputs and Android activity commands 1961 | [rlgl] Adjusted buffers depending on platform 1962 | [rlgl] Added security check in case deployed vertex excess buffer size 1963 | [rlgl] Adjusted indices type depending on GL version (int or short) 1964 | [rlgl] Fallback to VBOs only usage if VAOs not supported on ES2 1965 | [rlgl] rlglLoadModel() stores vbo ids on new Model struct 1966 | [textures] Added support for PKM files (ETC1, ETC2 compression support) 1967 | [shapes] DrawRectangleV() - Modified, depending on OGL version uses TRIANGLES or QUADS 1968 | [text] LoadSpriteFont() - Modified to use LoadImage() 1969 | [models] Minor changes on models loading to accomodate to new Model struct 1970 | [audio] PauseMusicStream(), ResumeMusicStream() - Added 1971 | [audio] Reduced music buffer size to avoid stalls on Raspberry Pi 1972 | [src] Added makefile for Windows and RPI 1973 | [src] Added resources file (raylib icon and executable info) 1974 | [examples] Added makefile for Windows and RPI 1975 | [examples] Renamed and merged with test examples for coherence with module names 1976 | [templates] Added multiple templates to be use as a base-code for games 1977 | 1978 | ----------------------------------------------- 1979 | Release: raylib 1.1.1 (22 July 2014) 1980 | ----------------------------------------------- 1981 | [core] ShowLogo() - To enable raylib logo animation at startup 1982 | [core] Corrected bug with window resizing 1983 | [rlgl] Redefined colors arrays to use byte instead of float 1984 | [rlgl] Removed double buffer system (no performance improvement) 1985 | [rlgl] rlglDraw() - Reorganized buffers drawing order 1986 | [rlgl] Corrected bug on screen resizing 1987 | [shapes] DrawRectangle() - Use QUADS instead of TRIANGLES 1988 | [models] DrawSphereWires() - Corrected some issues 1989 | [models] LoadOBJ() - Redesigned to support multiple meshes 1990 | [models] LoadCubesMap() - Loading a map as cubes (by pixel color) 1991 | [textures] Added security check if file doesn't exist 1992 | [text] Corrected bug on SpriteFont loading 1993 | [examples] Corrected some 3d examples 1994 | [test] Added cubesmap loading test 1995 | 1996 | ----------------------------------------------- 1997 | Release: raylib 1.1.0 (19 April 2014) 1998 | ----------------------------------------------- 1999 | NOTE: 2000 | This version supposed a complete internal redesign of the library to support OpenGL 3.3+ and OpenGL ES 2.0. 2001 | New module [rlgl] has been added to 'translate' immediate mode style functions (i.e. rlVertex3f()) to GL 1.1, 3.3+ or ES2. 2002 | Another new module [raymath] has also been added with lot of useful 3D math vector-matrix-quaternion functions. 2003 | 2004 | [rlgl] New module, abstracts OpenGL rendering (multiple versions support) 2005 | [raymath] New module, useful 3D math vector-matrix-quaternion functions 2006 | [core] Adapt all OpenGL code (initialization, drawing) to use [rlgl] 2007 | [shapes] Rewrite all shapes drawing functions to use [rlgl] 2008 | [textures] Adapt texture GPU loading to use [rlgl] 2009 | [textures] Added support for DDS images (compressed and uncompressed) 2010 | [textures] CreateTexture() - Redesigned to add mipmap automatic generation 2011 | [textures] DrawTexturePro() - Redesigned and corrected bugs 2012 | [models] Rewrite all 3d-shapes drawing functions to use [rlgl] 2013 | [models] Adapt model loading and drawing to use [rlgl] 2014 | [models] Model struct updated to include texture id 2015 | [models] SetModelTexture() - Added, link a texture to a model 2016 | [models] DrawModelEx() - Redesigned with extended parameters 2017 | [audio] Added music streaming support (OGG files) 2018 | [audio] Added support for OGG files as Sound 2019 | [audio] PlayMusicStream() - Added, open a new music stream and play it 2020 | [audio] StopMusicStream() - Added, stop music stream playing and close stream 2021 | [audio] PauseMusicStream() - Added, pause music stream playing 2022 | [audio] MusicIsPlaying() - Added, to check if music is playing 2023 | [audio] SetMusicVolume() - Added, set volume for music 2024 | [audio] GetMusicTimeLength() - Added, get current music time length (in seconds) 2025 | [audio] GetMusicTimePlayed() - Added, get current music time played (in seconds) 2026 | [utils] Added log tracing functionality - TraceLog(), TraceLogOpen(), TraceLogClose() 2027 | [*] Log tracing messages all around the code 2028 | 2029 | ----------------------------------------------- 2030 | Release: raylib 1.0.6 (16 March 2014) 2031 | ----------------------------------------------- 2032 | [core] Removed unused lighting-system code 2033 | [core] Removed SetPerspective() function, calculated directly 2034 | [core] Unload and reload default font on fullscreen toggle 2035 | [core] Corrected bug gamepad buttons checking if no gamepad available 2036 | [texture] DrawTextureV() - Added, to draw using Vector2 for position 2037 | [texture] LoadTexture() - Redesigned, now uses LoadImage() + CreateTexture() 2038 | [text] FormatText() - Corrected memory leak bug 2039 | [models] Added Matrix struct and related functions 2040 | [models] DrawBillboard() - Reviewed, now it works! 2041 | [models] DrawBillboardRec() - Reviewed, now it works! 2042 | [tests] Added folder with multiple tests for new functions 2043 | 2044 | ----------------------------------------------- 2045 | Update: raylib 1.0.5 (28 January 2014) 2046 | ----------------------------------------------- 2047 | [audio] LoadSound() - Corrected a bug, WAV file was not closed! 2048 | [core] GetMouseWheelMove() - Added, check mouse wheel Y movement 2049 | [texture] CreateTexture2D() renamed to CreateTexture() 2050 | [models] LoadHeightmap() - Added, Heightmap can be loaded as a Model 2051 | [tool] rREM updated, now supports (partially) drag and drop of files 2052 | 2053 | ----------------------------------------------- 2054 | Release: raylib 1.0.4 (23 January 2014) 2055 | ----------------------------------------------- 2056 | [tool] Published a first alpha version of rREM tool (raylib Resource Embedder) 2057 | [core] GetRandomValue() - Bug corrected, now works right 2058 | [core] Fade() - Added, fades a color to an alpha percentadge 2059 | [core] WriteBitmap() - Moved to new module: utils.c, not used anymore 2060 | [core] TakeScreenshot() - Now uses WritePNG() (utils.c) 2061 | [utils] New module created with utility functions 2062 | [utils] WritePNG() - Write a PNG file (used by TakeScreenshot() on core) 2063 | [utils] DecompressData() - Added, used for rRES resource data decompresion 2064 | [textures] LoadImageFromRES() - Added, load an image from a rRES resource file 2065 | [textures] LoadTextureFromRES() - Added, load a texture from a rRES resource file 2066 | [audio] LoadSoundFromRES() - Added, load a sound from a rRES resource file 2067 | [audio] IsPlaying() - Added, check if a sound is currently playing 2068 | [audio] SetVolume() - Added, set the volume for a sound 2069 | [audio] SetPitch() - Added, set the pitch for a sound 2070 | [examples] ex06a_color_select completed 2071 | [examples] ex06b_logo_anim completed 2072 | [examples] ex06c_font select completed 2073 | 2074 | ----------------------------------------------- 2075 | Release: raylib 1.0.3 (19 December 2013) 2076 | ----------------------------------------------- 2077 | [fonts] Added 8 rBMF free fonts to be used on projects! 2078 | [text] LoadSpriteFont() - Now supports rBMF file loading (raylib Bitmap Font) 2079 | [examples] ex05a_sprite_fonts completed 2080 | [examples] ex05b_rbmf_fonts completed 2081 | [core] InitWindowEx() - InitWindow with extended parameters, resizing option and custom cursor! 2082 | [core] GetRandomValue() - Added, returns a random value within a range (int) 2083 | [core] SetExitKey() - Added, sets a key to exit program (default is ESC) 2084 | [core] Custom cursor not drawn when mouse out of screen 2085 | [shapes] CheckCollisionPointRec() - Added, check collision between point and rectangle 2086 | [shapes] CheckCollisionPointCircle() - Added, check collision between point and circle 2087 | [shapes] CheckCollisionPointTriangle() - Added, check collision between point and triangle 2088 | [shapes] DrawPoly() - Added, draw regular polygons of n sides, rotation can be defined! 2089 | 2090 | ----------------------------------------------- 2091 | Release: raylib 1.0.2 (1 December 2013) 2092 | ----------------------------------------------- 2093 | [text] GetDefaultFont() - Added, get default SpriteFont to be used on DrawTextEx() 2094 | [shapes] CheckCollisionRecs() - Added, check collision between rectangles 2095 | [shapes] CheckCollisionCircles() - Added, check collision between circles 2096 | [shapes] CheckCollisionCircleRec() - Added, check collision circle-rectangle 2097 | [shapes] GetCollisionRec() - Added, get collision rectangle 2098 | [textures] CreateTexture2D() - Added, create Texture2D from Image data 2099 | [audio] Fixed WAV loading function, now audio works! 2100 | 2101 | ----------------------------------------------- 2102 | Update: raylib 1.0.1 (28 November 2013) 2103 | ----------------------------------------------- 2104 | [text] DrawText() - Removed spacing parameter 2105 | [text] MeasureText() - Removed spacing parameter 2106 | [text] DrawFps() - Renamed to DrawFPS() for coherence with similar function 2107 | [core] IsKeyPressed() - Change functionality, check if key pressed once 2108 | [core] IsKeyDown() - Added, check if key is being pressed 2109 | [core] IsKeyReleased() - Change functionality, check if key released once 2110 | [core] IsKeyUp() - Added, check if key is being NOT pressed 2111 | [core] IsMouseButtonDown() - Added, check if mouse button is being pressed 2112 | [core] IsMouseButtonPressed() - Change functionality, check if mouse button pressed once 2113 | [core] IsMouseButtonUp() - Added, check if mouse button is NOT being pressed 2114 | [core] IsMouseButtonReleased() - Change functionality, check if mouse button released once 2115 | [textures] DrawTexturePro() - Added, texture drawing with 'pro' parameters 2116 | [examples] Function changes applied to ALL examples 2117 | 2118 | ----------------------------------------------- 2119 | Release: raylib 1.0.0 (18 November 2013) 2120 | ----------------------------------------------- 2121 | * Initial version 2122 | * 6 Modules provided: 2123 | - core: basic window/context creation functions, input management, timing functions 2124 | - shapes: basic shapes drawing functions 2125 | - textures: image data loading and conversion to OpenGL textures 2126 | - text: text drawing, sprite fonts loading, default font loading 2127 | - models: basic 3d shapes drawing, OBJ models loading and drawing 2128 | - audio: audio device initialization, WAV files loading and playing 2129 | --------------------------------------------------------------------------------