You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2139 lines
129 KiB

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