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