changelog --------- Current Release: raylib 1.5.0 (xx June 2016) NOTE: Only versions marked as 'Release' are available in installer, updates are only available as source. NOTE: Current Release includes all previous updates. ----------------------------------------------- Release: raylib 1.5.0 (xx June 2016) ----------------------------------------------- NOTE: Probably this new version is the biggest boost of the library ever, lots of parts of the library have been redesigned, lots of bugs have been solved and some **AMAZING** new features have been added. HUGE changes: [rlgl] OCULUS RIFT CV1: Added support for VR witha bunch of Oculus-specific functions to init/close device and Oculus rendering. [rlgl] MATERIALS SYSTEM: Added support for Materials (.mtl) and multiple material properties: diffuse, specular, normal. [rlgl] LIGHTING SYSTEM: Added support for up to 8 lights of 3 different types: Omni, Directional and Spot [physac] REDESIGNED: Improved performance and simplified usage, physic objects are managed internally [audio] CHIPTUNES: Added support for module audio music (.xm, .mod) loading and playing other changes: [core] Review Android button inputs [core] Support Android internal data storage [core] Renamed WorldToScreen() to GetWorldToScreen() [core] Removed function SetCustomCursor() [core] Removed functions BeginDrawingEx(), BeginDrawingPro() [core] Added support for field-of-view Y (fovy) on 3d Camera [core] Added 2D camera mode functions: Begin2dMode() - End2dMode() [core] Translate mouse inputs to Android touch/gestures internally [core] Translate mouse inputs as touch inputs in HTML5 [core] Improved function GetKeyPressed() to support multiple keys (including function keys) [core] Improved gamepad support, specially for RaspberryPi (including multiple gamepads support) [rlgl] Improved 2D vs 3D drawing system (lines, triangles, quads) [rlgl] Improved DXT-ETC1 support on HTML5 [rlgl] Review function: rlglUnproject() [rlgl] Updated Mesh and Shader structs [rlgl] Simplified internal (default) dynamic buffers [rlgl] Added support for indexed and dynamic mesh data [rlgl] Set fixed vertex attribs location points [rlgl] Improved mesh data loading support [rlgl] Added standard shader (embeded) to support materials and lighting: standard_shader.h [rlgl] Added light functions: CreateLight(), DestroyLight() [rlgl] Added wire mode functions: rlDisableWireMode(), rlEnableWireMode() [rlgl] Review function consistency, added: rlglLoadMesh(), rlglUpdateMesh(), rlglDrawMesh(), rlglUnloadMesh() [rlgl] Replaced SetCustomShader() by: BeginShaderMode() - EndShaderMode() [rlgl] Replaced SetBlendMode() by: BeginBlendMode() - EndBlendMode() [rlgl] Added functions to customize internal matrices: SetMatrixProjection(), SetMatrixModelview() [rlgl] Unified internal shaders to only one default shader [rlgl] Added support for render to texture (RenderTexture2D): LoadRenderTexture() - UnloadRenderTexture() BeginTextureMode() - EndTextureMode() [rlgl] Removed SetShaderMap*() functions [rlgl] Redesigned default buffers usage functions: LoadDefaultBuffers() - UnloadDefaultBuffers() UpdateDefaultBuffers() - DrawDefaultBuffers() [shapes] Corrected bug on GetCollisionRec() [textures] Added support for Nearest-Neighbor image scaling [textures] Added functions to draw text on image: ImageDrawText(), ImageDrawTextEx() [text] Reorganized internal functions: Added LoadImageFont() [text] Security check for unsupported BMFonts [models] Split mesh creation from model loading on heightmap and cubicmap [models] Updated BoundingBox collision detections [models] Added color parameter to DrawBoundigBox() [models] Removed function: DrawQuad() [models] Removed function: SetModelTexture() [models] Redesigned DrawPlane() to use RL_TRIANGLES [models] Redesigned DrawRectangleV() to use RL_TRIANGLES [models] Redesign to accomodate new materials system: LoadMaterial() [models] Added material functions: LoadDefaultMaterial(), LoadStandardMaterial() [models] Added MTL material loading support: LoadMTL() [models] Added function: DrawLight() [audio] Renamed SoundIsPlaying() to IsSoundPlaying() [audio] Renamed MusicIsPlaying() to IsMusicPlaying() [audio] Support multiple Music streams (indexed) [gestures] Improved and reviewed gestures system [raymath] Added QuaternionInvert() [raymath] Removed function: PrintMatrix() [raygui] Ported to header-only library [shaders] Added depth drawing shader (requires a depth texture) [shaders] Reviewed included shaders and added comments [OpenAL Soft] Updated to latest version (1.17.2) [GLFW3] Updated to latest version (3.2) [GLAD] Converted to header only library [stb] Updated to latest headers versions [*] Reorganize library folders: external libs moved to src/external folder [*] Reorganize src folder for Android library [*] Review external dependencies usage [*] Improved Linux and OSX build systems [*] Lots of tweaks and bugs corrected all around ----------------------------------------------- Release: raylib 1.4.0 (22 February 2016) ----------------------------------------------- NOTE: This version supposed another big improvement for raylib, including new modules and new features. More than 30 new functions have been added to previous raylib version. Around 8 new examples and +10 new game samples have been added. BIG changes: [textures] IMAGE MANIPULATION: Functions to crop, resize, colorize, flip, dither and even draw image-to-image or text-to-image. [text] SPRITEFONT SUPPORT: Added support for AngelCode fonts (.fnt) and TrueType fonts (.ttf). [gestures] REDESIGN: Gestures system simplified and prepared to process generic touch events, including mouse events (multiplatform). [physac] NEW MODULE: Basic 2D physics support, use colliders and rigidbodies; apply forces to physic objects. other changes: [rlgl] Removed GLEW library dependency, now using GLAD [rlgl] Implemented alternative to glGetTexImage() on OpenGL ES [rlgl] Using depth data on batch drawing [rlgl] Reviewed glReadPixels() function [core][rlgl] Reviewed raycast system, now 3D picking works [core] Android: Reviewed Android App cycle, paused if inactive [shaders] Implemented Blinn-Phong lighting shading model [textures] Implemented Floyd-Steinberg dithering - ImageDither() [text] Added line-break support to DrawText() [text] Added TrueType Fonts support (using stb_truetype) [models] Implement function: CalculateBoundingBox(Mesh mesh) [models] Added functions to check Ray collisions [models] Improve map resolution control on LoadHeightmap() [camera] Corrected small-glitch on zoom-in with mouse-wheel [gestures] Implemented SetGesturesEnabled() to enable only some gestures [gestures] Implemented GetElapsedTime() on Windows system [gestures] Support mouse gestures for desktop platforms [raymath] Complete review of the module and converted to header-only [easings] Added new module for easing animations [stb] Updated to latest headers versions [*] Lots of tweaks around ----------------------------------------------- Release: raylib 1.3.0 (01 September 2015) ----------------------------------------------- NOTE: This version supposed a big boost for raylib, new modules have been added with lots of features. Most of the modules have been completely reviewed to accomodate to the new features. Over 50 new functions have been added to previous raylib version. Most of the examples have been redone and +10 new advanced examples have been added. BIG changes: [rlgl] SHADERS: Support for model shaders and postprocessing shaders (multiple functions) [textures] FORMATS: Support for multiple internal formats, including compressed formats [camera] NEW MODULE: Set of cameras for 3d view: Free, Orbital, 1st person, 3rd person [gestures] NEW MODULE: Gestures system for Android and HTML5 platforms [raygui] NEW MODULE: Set of IMGUI elements for tools development (experimental) smaller changes: [rlgl] Added check for OpenGL supported extensions [rlgl] Added function SetBlenMode() to select some predefined blending modes [core] Added support for drop&drag of external files into running program [core] Added functions ShowCursor(), HideCursor(), IsCursorHidden() [core] Renamed function SetFlags() to SetConfigFlags() [shapes] Simplified some functions to improve performance [textures] Review of Image struct to support multiple data formats [textures] Added function LoadImageEx() [textures] Added function LoadImageRaw() [textures] Added function LoadTextureEx() [textures] Simplified function parameters LoadTextureFromImage() [textures] Added function GetImageData() [textures] Added function GetTextureData() [textures] Renamed function ConvertToPOT() to ImageConvertToPOT() [textures] Added function ImageConvertFormat() [textures] Added function GenTextureMipmaps() [text] Added support for Latin-1 Extended characters for default font [text] Redesigned SpriteFont struct, replaced Character struct by Rectangle [text] Removed function GetFontBaseSize(), use directly spriteFont.size [models] Review of struct: Model (added shaders support) [models] Added 3d collision functions (sphere vs sphere vs box vs box) [models] Added function DrawCubeTexture() [models] Added function DrawQuad() [models] Added function DrawRay() [models] Simplified funtion DrawPlane() [models] Removed function DrawPlaneEx() [models] Simplified funtion DrawGizmo() [models] Removed function DrawGizmoEx() [models] Added function LoadModelEx() [models] Review of function LoadCubicMap() [models] Added function ResolveCollisionCubicmap() [audio] Decopupled from raylib, now this module can be used as standalone [audio] Added function UpdateMusicStream() [raymath] Complete review of the module [stb] Updated to latest headers versions [*] Lots of tweaks around ----------------------------------------------- Release: raylib 1.2.2 (31 December 2014) ----------------------------------------------- [*] Added support for HTML5 compiling (emscripten, asm.js) [core] Corrected bug on input handling (keyboard and mouse) [textures] Renamed function CreateTexture() to LoadTextureFromImage() [textures] Added function ConvertToPOT() [rlgl] Added support for color tint on models on GL 3.3+ and ES2 [rlgl] Added support for normals on models [models] Corrected bug on DrawBillboard() [models] Corrected bug on DrawHeightmap() [models] Renamed LoadCubesmap() to LoadCubicmap() [audio] Added function LoadSoundFromWave() [makefile] Added support for Linux and OSX compiling [stb] Updated to latest headers versions [*] Lots of tweaks around --------------------------------------------------------------- Update: raylib 1.2.1 (17 October 2014) (Small Fixes Update) --------------------------------------------------------------- [core] Added function SetupFlags() to preconfigure raylib Window [core] Corrected bug on fullscreen mode [rlgl] rlglDrawmodel() - Added rotation on Y axis [text] MeasureTextEx() - Corrected bug on measures for default font ----------------------------------------------- Release: raylib 1.2 (16 September 2014) ----------------------------------------------- NOTE: This version supposed a complete redesign of the [core] module to support Android and Raspberry Pi. Multiples modules have also been tweaked to accomodate to the new platforms, specially [rlgl] [core] Added multiple platforms support: Android and Raspberry Pi [core] InitWindow() - Complete rewrite and split for Android [core] InitDisplay() - Internal function added to calculate proper display size [core] InitGraphics() - Internal function where OpenGL graphics are initialized [core] Complete refactoring of input functions to accomodate to new platforms [core] Mouse and Keyboard raw data reading functions added for Raspberry Pi [core] GetTouchX(), GetTouchY() - Added for Android [core] Added Android callbacks to process inputs and Android activity commands [rlgl] Adjusted buffers depending on platform [rlgl] Added security check in case deployed vertex excess buffer size [rlgl] Adjusted indices type depending on GL version (int or short) [rlgl] Fallback to VBOs only usage if VAOs not supported on ES2 [rlgl] rlglLoadModel() stores vbo ids on new Model struct [textures] Added support for PKM files (ETC1, ETC2 compression support) [shapes] DrawRectangleV() - Modified, depending on OGL version uses TRIANGLES or QUADS [text] LoadSpriteFont() - Modified to use LoadImage() [models] Minor changes on models loading to accomodate to new Model struct [audio] PauseMusicStream(), ResumeMusicStream() - Added [audio] Reduced music buffer size to avoid stalls on Raspberry Pi [src] Added makefile for Windows and RPI [src] Added resources file (raylib icon and executable info) [examples] Added makefile for Windows and RPI [examples] Renamed and merged with test examples for coherence with module names [templates] Added multiple templates to be use as a base-code for games ----------------------------------------------- Release: raylib 1.1.1 (22 July 2014) ----------------------------------------------- [core] ShowLogo() - To enable raylib logo animation at startup [core] Corrected bug with window resizing [rlgl] Redefined colors arrays to use byte instead of float [rlgl] Removed double buffer system (no performance improvement) [rlgl] rlglDraw() - Reorganized buffers drawing order [rlgl] Corrected bug on screen resizing [shapes] DrawRectangle() - Use QUADS instead of TRIANGLES [models] DrawSphereWires() - Corrected some issues [models] LoadOBJ() - Redesigned to support multiple meshes [models] LoadCubesMap() - Loading a map as cubes (by pixel color) [textures] Added security check if file doesn't exist [text] Corrected bug on SpriteFont loading [examples] Corrected some 3d examples [test] Added cubesmap loading test ----------------------------------------------- Release: raylib 1.1.0 (19 April 2014) ----------------------------------------------- NOTE: This version supposed a complete internal redesign of the library to support OpenGL 3.3+ and OpenGL ES 2.0. New module [rlgl] has been added to 'translate' immediate mode style functions (i.e. rlVertex3f()) to GL 1.1, 3.3+ or ES2. Another new module [raymath] has also been added with lot of useful 3D math vector-matrix-quaternion functions. [rlgl] New module, abstracts OpenGL rendering (multiple versions support) [raymath] New module, useful 3D math vector-matrix-quaternion functions [core] Adapt all OpenGL code (initialization, drawing) to use [rlgl] [shapes] Rewrite all shapes drawing functions to use [rlgl] [textures] Adapt texture GPU loading to use [rlgl] [textures] Added support for DDS images (compressed and uncompressed) [textures] CreateTexture() - Redesigned to add mipmap automatic generation [textures] DrawTexturePro() - Redesigned and corrected bugs [models] Rewrite all 3d-shapes drawing functions to use [rlgl] [models] Adapt model loading and drawing to use [rlgl] [models] Model struct updated to include texture id [models] SetModelTexture() - Added, link a texture to a model [models] DrawModelEx() - Redesigned with extended parameters [audio] Added music streaming support (OGG files) [audio] Added support for OGG files as Sound [audio] PlayMusicStream() - Added, open a new music stream and play it [audio] StopMusicStream() - Added, stop music stream playing and close stream [audio] PauseMusicStream() - Added, pause music stream playing [audio] MusicIsPlaying() - Added, to check if music is playing [audio] SetMusicVolume() - Added, set volume for music [audio] GetMusicTimeLength() - Added, get current music time length (in seconds) [audio] GetMusicTimePlayed() - Added, get current music time played (in seconds) [utils] Added log tracing functionality - TraceLog(), TraceLogOpen(), TraceLogClose() [*] Log tracing messages all around the code ----------------------------------------------- Release: raylib 1.0.6 (16 March 2014) ----------------------------------------------- [core] Removed unused lighting-system code [core] Removed SetPerspective() function, calculated directly [core] Unload and reload default font on fullscreen toggle [core] Corrected bug gamepad buttons checking if no gamepad available [texture] DrawTextureV() - Added, to draw using Vector2 for position [texture] LoadTexture() - Redesigned, now uses LoadImage() + CreateTexture() [text] FormatText() - Corrected memory leak bug [models] Added Matrix struct and related functions [models] DrawBillboard() - Reviewed, now it works! [models] DrawBillboardRec() - Reviewed, now it works! [tests] Added folder with multiple tests for new functions ----------------------------------------------- Update: raylib 1.0.5 (28 January 2014) ----------------------------------------------- [audio] LoadSound() - Corrected a bug, WAV file was not closed! [core] GetMouseWheelMove() - Added, check mouse wheel Y movement [texture] CreateTexture2D() renamed to CreateTexture() [models] LoadHeightmap() - Added, Heightmap can be loaded as a Model [tool] rREM updated, now supports (partially) drag and drop of files ----------------------------------------------- Release: raylib 1.0.4 (23 January 2014) ----------------------------------------------- [tool] Published a first alpha version of rREM tool (raylib Resource Embedder) [core] GetRandomValue() - Bug corrected, now works right [core] Fade() - Added, fades a color to an alpha percentadge [core] WriteBitmap() - Moved to new module: utils.c, not used anymore [core] TakeScreenshot() - Now uses WritePNG() (utils.c) [utils] New module created with utility functions [utils] WritePNG() - Write a PNG file (used by TakeScreenshot() on core) [utils] DecompressData() - Added, used for rRES resource data decompresion [textures] LoadImageFromRES() - Added, load an image from a rRES resource file [textures] LoadTextureFromRES() - Added, load a texture from a rRES resource file [audio] LoadSoundFromRES() - Added, load a sound from a rRES resource file [audio] IsPlaying() - Added, check if a sound is currently playing [audio] SetVolume() - Added, set the volume for a sound [audio] SetPitch() - Added, set the pitch for a sound [examples] ex06a_color_select completed [examples] ex06b_logo_anim completed [examples] ex06c_font select completed ----------------------------------------------- Release: raylib 1.0.3 (19 December 2013) ----------------------------------------------- [fonts] Added 8 rBMF free fonts to be used on projects! [text] LoadSpriteFont() - Now supports rBMF file loading (raylib Bitmap Font) [examples] ex05a_sprite_fonts completed [examples] ex05b_rbmf_fonts completed [core] InitWindowEx() - InitWindow with extended parameters, resizing option and custom cursor! [core] GetRandomValue() - Added, returns a random value within a range (int) [core] SetExitKey() - Added, sets a key to exit program (default is ESC) [core] Custom cursor not drawn when mouse out of screen [shapes] CheckCollisionPointRec() - Added, check collision between point and rectangle [shapes] CheckCollisionPointCircle() - Added, check collision between point and circle [shapes] CheckCollisionPointTriangle() - Added, check collision between point and triangle [shapes] DrawPoly() - Added, draw regular polygons of n sides, rotation can be defined! ----------------------------------------------- Release: raylib 1.0.2 (1 December 2013) ----------------------------------------------- [text] GetDefaultFont() - Added, get default SpriteFont to be used on DrawTextEx() [shapes] CheckCollisionRecs() - Added, check collision between rectangles [shapes] CheckCollisionCircles() - Added, check collision between circles [shapes] CheckCollisionCircleRec() - Added, check collision circle-rectangle [shapes] GetCollisionRec() - Added, get collision rectangle [textures] CreateTexture2D() - Added, create Texture2D from Image data [audio] Fixed WAV loading function, now audio works! ----------------------------------------------- Update: raylib 1.0.1 (28 November 2013) ----------------------------------------------- [text] DrawText() - Removed spacing parameter [text] MeasureText() - Removed spacing parameter [text] DrawFps() - Renamed to DrawFPS() for coherence with similar function [core] IsKeyPressed() - Change functionality, check if key pressed once [core] IsKeyDown() - Added, check if key is being pressed [core] IsKeyReleased() - Change functionality, check if key released once [core] IsKeyUp() - Added, check if key is being NOT pressed [core] IsMouseButtonDown() - Added, check if mouse button is being pressed [core] IsMouseButtonPressed() - Change functionality, check if mouse button pressed once [core] IsMouseButtonUp() - Added, check if mouse button is NOT being pressed [core] IsMouseButtonReleased() - Change functionality, check if mouse button released once [textures] DrawTexturePro() - Added, texture drawing with 'pro' parameters [examples] Function changes applied to ALL examples ----------------------------------------------- Release: raylib 1.0.0 (18 November 2013) ----------------------------------------------- * Initial version * 6 Modules provided: - core: basic window/context creation functions, input management, timming functions - shapes: basic shapes drawing functions - textures: image data loading and conversion to OpenGL textures - text: text drawing, sprite fonts loading, default font loading - models: basic 3d shapes drawing, OBJ models loading and drawing - audio: audio device initialization, WAV files loading and playing