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.

1077 lines
61 KiB

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