CHANGELOG 77 KB

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