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.

398 lines
22 KiB

11 years ago
11 years ago
9 years ago
9 years ago
9 years ago
9 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 1.5.0 (18 July 2016)
  4. NOTE: Only versions marked as 'Release' are available in installer, updates are only available as source.
  5. NOTE: Current Release includes all previous updates.
  6. -----------------------------------------------
  7. Release: raylib 1.5.0 (18 July 2016)
  8. -----------------------------------------------
  9. NOTE:
  10. Probably this new version is the biggest boost of the library ever, lots of parts of the library have been redesigned,
  11. lots of bugs have been solved and some **AMAZING** new features have been added.
  12. HUGE changes:
  13. [rlgl] OCULUS RIFT CV1: Added support for VR, not oly Oculus Rift CV1 but also stereo rendering simulator (multiplatform).
  14. [rlgl] MATERIALS SYSTEM: Added support for Materials (.mtl) and multiple material properties: diffuse, specular, normal.
  15. [rlgl] LIGHTING SYSTEM: Added support for up to 8 lights of 3 different types: Omni, Directional and Spot.
  16. [physac] REDESIGNED: Improved performance and simplified usage, physic objects now are managed internally in a second thread!
  17. [audio] CHIPTUNES: Added support for module audio music (.xm, .mod) loading and playing. Multiple mixing channels supported.
  18. other changes:
  19. [core] Review Android button inputs
  20. [core] Support Android internal data storage
  21. [core] Renamed WorldToScreen() to GetWorldToScreen()
  22. [core] Removed function SetCustomCursor()
  23. [core] Removed functions BeginDrawingEx(), BeginDrawingPro()
  24. [core] Replaced functions InitDisplay() + InitGraphics() with: InitGraphicsDevice()
  25. [core] Added support for field-of-view Y (fovy) on 3d Camera
  26. [core] Added 2D camera mode functions: Begin2dMode() - End2dMode()
  27. [core] Translate mouse inputs to Android touch/gestures internally
  28. [core] Translate mouse inputs as touch inputs in HTML5
  29. [core] Improved function GetKeyPressed() to support multiple keys (including function keys)
  30. [core] Improved gamepad support, specially for RaspberryPi (including multiple gamepads support)
  31. [rlgl] Support stereo rendering simulation (duplicate draw calls by viewport, optimized)
  32. [rlgl] Added distortion shader (embeded) to support custom VR simulator: shader_distortion.h
  33. [rlgl] Added support for OpenGL 2.1 on desktop
  34. [rlgl] Improved 2D vs 3D drawing system (lines, triangles, quads)
  35. [rlgl] Improved DXT-ETC1 support on HTML5
  36. [rlgl] Review function: rlglUnproject()
  37. [rlgl] Removed function: rlglInitGraphics(), integrated into rlglInit()
  38. [rlgl] Updated Mesh and Shader structs
  39. [rlgl] Simplified internal (default) dynamic buffers
  40. [rlgl] Added support for indexed and dynamic mesh data
  41. [rlgl] Set fixed vertex attribs location points
  42. [rlgl] Improved mesh data loading support
  43. [rlgl] Added standard shader (embeded) to support materials and lighting: shader_standard.h
  44. [rlgl] Added light functions: CreateLight(), DestroyLight()
  45. [rlgl] Added wire mode functions: rlDisableWireMode(), rlEnableWireMode()
  46. [rlgl] Review function consistency, added: rlglLoadMesh(), rlglUpdateMesh(), rlglDrawMesh(), rlglUnloadMesh()
  47. [rlgl] Replaced SetCustomShader() by: BeginShaderMode() - EndShaderMode()
  48. [rlgl] Replaced SetBlendMode() by: BeginBlendMode() - EndBlendMode()
  49. [rlgl] Added functions to customize internal matrices: SetMatrixProjection(), SetMatrixModelview()
  50. [rlgl] Unified internal shaders to only one default shader
  51. [rlgl] Added support for render to texture (RenderTexture2D):
  52. LoadRenderTexture() - UnloadRenderTexture()
  53. BeginTextureMode() - EndTextureMode()
  54. [rlgl] Removed SetShaderMap*() functions
  55. [rlgl] Redesigned default buffers usage functions:
  56. LoadDefaultBuffers() - UnloadDefaultBuffers()
  57. UpdateDefaultBuffers() - DrawDefaultBuffers()
  58. [shapes] Corrected bug on GetCollisionRec()
  59. [textures] Added support for Nearest-Neighbor image scaling
  60. [textures] Added functions to draw text on image: ImageDrawText(), ImageDrawTextEx()
  61. [text] Reorganized internal functions: Added LoadImageFont()
  62. [text] Security check for unsupported BMFonts
  63. [models] Split mesh creation from model loading on heightmap and cubicmap
  64. [models] Updated BoundingBox collision detections
  65. [models] Added color parameter to DrawBoundigBox()
  66. [models] Removed function: DrawQuad()
  67. [models] Removed function: SetModelTexture()
  68. [models] Redesigned DrawPlane() to use RL_TRIANGLES
  69. [models] Redesigned DrawRectangleV() to use RL_TRIANGLES
  70. [models] Redesign to accomodate new materials system: LoadMaterial()
  71. [models] Added material functions: LoadDefaultMaterial(), LoadStandardMaterial()
  72. [models] Added MTL material loading support: LoadMTL()
  73. [models] Added function: DrawLight()
  74. [audio] Renamed SoundIsPlaying() to IsSoundPlaying()
  75. [audio] Renamed MusicIsPlaying() to IsMusicPlaying()
  76. [audio] Support multiple Music streams (indexed)
  77. [audio] Support multiple mixing channels
  78. [gestures] Improved and reviewed gestures system
  79. [raymath] Added QuaternionInvert()
  80. [raymath] Removed function: PrintMatrix()
  81. [raygui] Ported to header-only library (https://github.com/raysan5/raygui)
  82. [shaders] Added depth drawing shader (requires a depth texture)
  83. [shaders] Reviewed included shaders and added comments
  84. [OpenAL Soft] Updated to latest version (1.17.2)
  85. [GLFW3] Updated to latest version (3.2)
  86. [stb] Updated to latest headers versions
  87. [GLAD] Converted to header only library and simplified to only used extensions
  88. [*] Reorganize library folders: external libs moved to src/external folder
  89. [*] Reorganize src folder for Android library
  90. [*] Review external dependencies usage
  91. [*] Improved Linux and OSX build systems
  92. [*] Lots of tweaks and bugs corrected all around
  93. -----------------------------------------------
  94. Release: raylib 1.4.0 (22 February 2016)
  95. -----------------------------------------------
  96. NOTE:
  97. This version supposed another big improvement for raylib, including new modules and new features.
  98. More than 30 new functions have been added to previous raylib version.
  99. Around 8 new examples and +10 new game samples have been added.
  100. BIG changes:
  101. [textures] IMAGE MANIPULATION: Functions to crop, resize, colorize, flip, dither and even draw image-to-image or text-to-image.
  102. [text] SPRITEFONT SUPPORT: Added support for AngelCode fonts (.fnt) and TrueType fonts (.ttf).
  103. [gestures] REDESIGN: Gestures system simplified and prepared to process generic touch events, including mouse events (multiplatform).
  104. [physac] NEW MODULE: Basic 2D physics support, use colliders and rigidbodies; apply forces to physic objects.
  105. other changes:
  106. [rlgl] Removed GLEW library dependency, now using GLAD
  107. [rlgl] Implemented alternative to glGetTexImage() on OpenGL ES
  108. [rlgl] Using depth data on batch drawing
  109. [rlgl] Reviewed glReadPixels() function
  110. [core][rlgl] Reviewed raycast system, now 3D picking works
  111. [core] Android: Reviewed Android App cycle, paused if inactive
  112. [shaders] Implemented Blinn-Phong lighting shading model
  113. [textures] Implemented Floyd-Steinberg dithering - ImageDither()
  114. [text] Added line-break support to DrawText()
  115. [text] Added TrueType Fonts support (using stb_truetype)
  116. [models] Implement function: CalculateBoundingBox(Mesh mesh)
  117. [models] Added functions to check Ray collisions
  118. [models] Improve map resolution control on LoadHeightmap()
  119. [camera] Corrected small-glitch on zoom-in with mouse-wheel
  120. [gestures] Implemented SetGesturesEnabled() to enable only some gestures
  121. [gestures] Implemented GetElapsedTime() on Windows system
  122. [gestures] Support mouse gestures for desktop platforms
  123. [raymath] Complete review of the module and converted to header-only
  124. [easings] Added new module for easing animations
  125. [stb] Updated to latest headers versions
  126. [*] Lots of tweaks around
  127. -----------------------------------------------
  128. Release: raylib 1.3.0 (01 September 2015)
  129. -----------------------------------------------
  130. NOTE:
  131. This version supposed a big boost for raylib, new modules have been added with lots of features.
  132. Most of the modules have been completely reviewed to accomodate to the new features.
  133. Over 50 new functions have been added to previous raylib version.
  134. Most of the examples have been redone and +10 new advanced examples have been added.
  135. BIG changes:
  136. [rlgl] SHADERS: Support for model shaders and postprocessing shaders (multiple functions)
  137. [textures] FORMATS: Support for multiple internal formats, including compressed formats
  138. [camera] NEW MODULE: Set of cameras for 3d view: Free, Orbital, 1st person, 3rd person
  139. [gestures] NEW MODULE: Gestures system for Android and HTML5 platforms
  140. [raygui] NEW MODULE: Set of IMGUI elements for tools development (experimental)
  141. smaller changes:
  142. [rlgl] Added check for OpenGL supported extensions
  143. [rlgl] Added function SetBlenMode() to select some predefined blending modes
  144. [core] Added support for drop&drag of external files into running program
  145. [core] Added functions ShowCursor(), HideCursor(), IsCursorHidden()
  146. [core] Renamed function SetFlags() to SetConfigFlags()
  147. [shapes] Simplified some functions to improve performance
  148. [textures] Review of Image struct to support multiple data formats
  149. [textures] Added function LoadImageEx()
  150. [textures] Added function LoadImageRaw()
  151. [textures] Added function LoadTextureEx()
  152. [textures] Simplified function parameters LoadTextureFromImage()
  153. [textures] Added function GetImageData()
  154. [textures] Added function GetTextureData()
  155. [textures] Renamed function ConvertToPOT() to ImageConvertToPOT()
  156. [textures] Added function ImageConvertFormat()
  157. [textures] Added function GenTextureMipmaps()
  158. [text] Added support for Latin-1 Extended characters for default font
  159. [text] Redesigned SpriteFont struct, replaced Character struct by Rectangle
  160. [text] Removed function GetFontBaseSize(), use directly spriteFont.size
  161. [models] Review of struct: Model (added shaders support)
  162. [models] Added 3d collision functions (sphere vs sphere vs box vs box)
  163. [models] Added function DrawCubeTexture()
  164. [models] Added function DrawQuad()
  165. [models] Added function DrawRay()
  166. [models] Simplified funtion DrawPlane()
  167. [models] Removed function DrawPlaneEx()
  168. [models] Simplified funtion DrawGizmo()
  169. [models] Removed function DrawGizmoEx()
  170. [models] Added function LoadModelEx()
  171. [models] Review of function LoadCubicMap()
  172. [models] Added function ResolveCollisionCubicmap()
  173. [audio] Decopupled from raylib, now this module can be used as standalone
  174. [audio] Added function UpdateMusicStream()
  175. [raymath] Complete review of the module
  176. [stb] Updated to latest headers versions
  177. [*] Lots of tweaks around
  178. -----------------------------------------------
  179. Release: raylib 1.2.2 (31 December 2014)
  180. -----------------------------------------------
  181. [*] Added support for HTML5 compiling (emscripten, asm.js)
  182. [core] Corrected bug on input handling (keyboard and mouse)
  183. [textures] Renamed function CreateTexture() to LoadTextureFromImage()
  184. [textures] Added function ConvertToPOT()
  185. [rlgl] Added support for color tint on models on GL 3.3+ and ES2
  186. [rlgl] Added support for normals on models
  187. [models] Corrected bug on DrawBillboard()
  188. [models] Corrected bug on DrawHeightmap()
  189. [models] Renamed LoadCubesmap() to LoadCubicmap()
  190. [audio] Added function LoadSoundFromWave()
  191. [makefile] Added support for Linux and OSX compiling
  192. [stb] Updated to latest headers versions
  193. [*] Lots of tweaks around
  194. ---------------------------------------------------------------
  195. Update: raylib 1.2.1 (17 October 2014) (Small Fixes Update)
  196. ---------------------------------------------------------------
  197. [core] Added function SetupFlags() to preconfigure raylib Window
  198. [core] Corrected bug on fullscreen mode
  199. [rlgl] rlglDrawmodel() - Added rotation on Y axis
  200. [text] MeasureTextEx() - Corrected bug on measures for default font
  201. -----------------------------------------------
  202. Release: raylib 1.2 (16 September 2014)
  203. -----------------------------------------------
  204. NOTE:
  205. This version supposed a complete redesign of the [core] module to support Android and Raspberry Pi.
  206. Multiples modules have also been tweaked to accomodate to the new platforms, specially [rlgl]
  207. [core] Added multiple platforms support: Android and Raspberry Pi
  208. [core] InitWindow() - Complete rewrite and split for Android
  209. [core] InitDisplay() - Internal function added to calculate proper display size
  210. [core] InitGraphics() - Internal function where OpenGL graphics are initialized
  211. [core] Complete refactoring of input functions to accomodate to new platforms
  212. [core] Mouse and Keyboard raw data reading functions added for Raspberry Pi
  213. [core] GetTouchX(), GetTouchY() - Added for Android
  214. [core] Added Android callbacks to process inputs and Android activity commands
  215. [rlgl] Adjusted buffers depending on platform
  216. [rlgl] Added security check in case deployed vertex excess buffer size
  217. [rlgl] Adjusted indices type depending on GL version (int or short)
  218. [rlgl] Fallback to VBOs only usage if VAOs not supported on ES2
  219. [rlgl] rlglLoadModel() stores vbo ids on new Model struct
  220. [textures] Added support for PKM files (ETC1, ETC2 compression support)
  221. [shapes] DrawRectangleV() - Modified, depending on OGL version uses TRIANGLES or QUADS
  222. [text] LoadSpriteFont() - Modified to use LoadImage()
  223. [models] Minor changes on models loading to accomodate to new Model struct
  224. [audio] PauseMusicStream(), ResumeMusicStream() - Added
  225. [audio] Reduced music buffer size to avoid stalls on Raspberry Pi
  226. [src] Added makefile for Windows and RPI
  227. [src] Added resources file (raylib icon and executable info)
  228. [examples] Added makefile for Windows and RPI
  229. [examples] Renamed and merged with test examples for coherence with module names
  230. [templates] Added multiple templates to be use as a base-code for games
  231. -----------------------------------------------
  232. Release: raylib 1.1.1 (22 July 2014)
  233. -----------------------------------------------
  234. [core] ShowLogo() - To enable raylib logo animation at startup
  235. [core] Corrected bug with window resizing
  236. [rlgl] Redefined colors arrays to use byte instead of float
  237. [rlgl] Removed double buffer system (no performance improvement)
  238. [rlgl] rlglDraw() - Reorganized buffers drawing order
  239. [rlgl] Corrected bug on screen resizing
  240. [shapes] DrawRectangle() - Use QUADS instead of TRIANGLES
  241. [models] DrawSphereWires() - Corrected some issues
  242. [models] LoadOBJ() - Redesigned to support multiple meshes
  243. [models] LoadCubesMap() - Loading a map as cubes (by pixel color)
  244. [textures] Added security check if file doesn't exist
  245. [text] Corrected bug on SpriteFont loading
  246. [examples] Corrected some 3d examples
  247. [test] Added cubesmap loading test
  248. -----------------------------------------------
  249. Release: raylib 1.1.0 (19 April 2014)
  250. -----------------------------------------------
  251. NOTE:
  252. This version supposed a complete internal redesign of the library to support OpenGL 3.3+ and OpenGL ES 2.0.
  253. New module [rlgl] has been added to 'translate' immediate mode style functions (i.e. rlVertex3f()) to GL 1.1, 3.3+ or ES2.
  254. Another new module [raymath] has also been added with lot of useful 3D math vector-matrix-quaternion functions.
  255. [rlgl] New module, abstracts OpenGL rendering (multiple versions support)
  256. [raymath] New module, useful 3D math vector-matrix-quaternion functions
  257. [core] Adapt all OpenGL code (initialization, drawing) to use [rlgl]
  258. [shapes] Rewrite all shapes drawing functions to use [rlgl]
  259. [textures] Adapt texture GPU loading to use [rlgl]
  260. [textures] Added support for DDS images (compressed and uncompressed)
  261. [textures] CreateTexture() - Redesigned to add mipmap automatic generation
  262. [textures] DrawTexturePro() - Redesigned and corrected bugs
  263. [models] Rewrite all 3d-shapes drawing functions to use [rlgl]
  264. [models] Adapt model loading and drawing to use [rlgl]
  265. [models] Model struct updated to include texture id
  266. [models] SetModelTexture() - Added, link a texture to a model
  267. [models] DrawModelEx() - Redesigned with extended parameters
  268. [audio] Added music streaming support (OGG files)
  269. [audio] Added support for OGG files as Sound
  270. [audio] PlayMusicStream() - Added, open a new music stream and play it
  271. [audio] StopMusicStream() - Added, stop music stream playing and close stream
  272. [audio] PauseMusicStream() - Added, pause music stream playing
  273. [audio] MusicIsPlaying() - Added, to check if music is playing
  274. [audio] SetMusicVolume() - Added, set volume for music
  275. [audio] GetMusicTimeLength() - Added, get current music time length (in seconds)
  276. [audio] GetMusicTimePlayed() - Added, get current music time played (in seconds)
  277. [utils] Added log tracing functionality - TraceLog(), TraceLogOpen(), TraceLogClose()
  278. [*] Log tracing messages all around the code
  279. -----------------------------------------------
  280. Release: raylib 1.0.6 (16 March 2014)
  281. -----------------------------------------------
  282. [core] Removed unused lighting-system code
  283. [core] Removed SetPerspective() function, calculated directly
  284. [core] Unload and reload default font on fullscreen toggle
  285. [core] Corrected bug gamepad buttons checking if no gamepad available
  286. [texture] DrawTextureV() - Added, to draw using Vector2 for position
  287. [texture] LoadTexture() - Redesigned, now uses LoadImage() + CreateTexture()
  288. [text] FormatText() - Corrected memory leak bug
  289. [models] Added Matrix struct and related functions
  290. [models] DrawBillboard() - Reviewed, now it works!
  291. [models] DrawBillboardRec() - Reviewed, now it works!
  292. [tests] Added folder with multiple tests for new functions
  293. -----------------------------------------------
  294. Update: raylib 1.0.5 (28 January 2014)
  295. -----------------------------------------------
  296. [audio] LoadSound() - Corrected a bug, WAV file was not closed!
  297. [core] GetMouseWheelMove() - Added, check mouse wheel Y movement
  298. [texture] CreateTexture2D() renamed to CreateTexture()
  299. [models] LoadHeightmap() - Added, Heightmap can be loaded as a Model
  300. [tool] rREM updated, now supports (partially) drag and drop of files
  301. -----------------------------------------------
  302. Release: raylib 1.0.4 (23 January 2014)
  303. -----------------------------------------------
  304. [tool] Published a first alpha version of rREM tool (raylib Resource Embedder)
  305. [core] GetRandomValue() - Bug corrected, now works right
  306. [core] Fade() - Added, fades a color to an alpha percentadge
  307. [core] WriteBitmap() - Moved to new module: utils.c, not used anymore
  308. [core] TakeScreenshot() - Now uses WritePNG() (utils.c)
  309. [utils] New module created with utility functions
  310. [utils] WritePNG() - Write a PNG file (used by TakeScreenshot() on core)
  311. [utils] DecompressData() - Added, used for rRES resource data decompresion
  312. [textures] LoadImageFromRES() - Added, load an image from a rRES resource file
  313. [textures] LoadTextureFromRES() - Added, load a texture from a rRES resource file
  314. [audio] LoadSoundFromRES() - Added, load a sound from a rRES resource file
  315. [audio] IsPlaying() - Added, check if a sound is currently playing
  316. [audio] SetVolume() - Added, set the volume for a sound
  317. [audio] SetPitch() - Added, set the pitch for a sound
  318. [examples] ex06a_color_select completed
  319. [examples] ex06b_logo_anim completed
  320. [examples] ex06c_font select completed
  321. -----------------------------------------------
  322. Release: raylib 1.0.3 (19 December 2013)
  323. -----------------------------------------------
  324. [fonts] Added 8 rBMF free fonts to be used on projects!
  325. [text] LoadSpriteFont() - Now supports rBMF file loading (raylib Bitmap Font)
  326. [examples] ex05a_sprite_fonts completed
  327. [examples] ex05b_rbmf_fonts completed
  328. [core] InitWindowEx() - InitWindow with extended parameters, resizing option and custom cursor!
  329. [core] GetRandomValue() - Added, returns a random value within a range (int)
  330. [core] SetExitKey() - Added, sets a key to exit program (default is ESC)
  331. [core] Custom cursor not drawn when mouse out of screen
  332. [shapes] CheckCollisionPointRec() - Added, check collision between point and rectangle
  333. [shapes] CheckCollisionPointCircle() - Added, check collision between point and circle
  334. [shapes] CheckCollisionPointTriangle() - Added, check collision between point and triangle
  335. [shapes] DrawPoly() - Added, draw regular polygons of n sides, rotation can be defined!
  336. -----------------------------------------------
  337. Release: raylib 1.0.2 (1 December 2013)
  338. -----------------------------------------------
  339. [text] GetDefaultFont() - Added, get default SpriteFont to be used on DrawTextEx()
  340. [shapes] CheckCollisionRecs() - Added, check collision between rectangles
  341. [shapes] CheckCollisionCircles() - Added, check collision between circles
  342. [shapes] CheckCollisionCircleRec() - Added, check collision circle-rectangle
  343. [shapes] GetCollisionRec() - Added, get collision rectangle
  344. [textures] CreateTexture2D() - Added, create Texture2D from Image data
  345. [audio] Fixed WAV loading function, now audio works!
  346. -----------------------------------------------
  347. Update: raylib 1.0.1 (28 November 2013)
  348. -----------------------------------------------
  349. [text] DrawText() - Removed spacing parameter
  350. [text] MeasureText() - Removed spacing parameter
  351. [text] DrawFps() - Renamed to DrawFPS() for coherence with similar function
  352. [core] IsKeyPressed() - Change functionality, check if key pressed once
  353. [core] IsKeyDown() - Added, check if key is being pressed
  354. [core] IsKeyReleased() - Change functionality, check if key released once
  355. [core] IsKeyUp() - Added, check if key is being NOT pressed
  356. [core] IsMouseButtonDown() - Added, check if mouse button is being pressed
  357. [core] IsMouseButtonPressed() - Change functionality, check if mouse button pressed once
  358. [core] IsMouseButtonUp() - Added, check if mouse button is NOT being pressed
  359. [core] IsMouseButtonReleased() - Change functionality, check if mouse button released once
  360. [textures] DrawTexturePro() - Added, texture drawing with 'pro' parameters
  361. [examples] Function changes applied to ALL examples
  362. -----------------------------------------------
  363. Release: raylib 1.0.0 (18 November 2013)
  364. -----------------------------------------------
  365. * Initial version
  366. * 6 Modules provided:
  367. - core: basic window/context creation functions, input management, timming functions
  368. - shapes: basic shapes drawing functions
  369. - textures: image data loading and conversion to OpenGL textures
  370. - text: text drawing, sprite fonts loading, default font loading
  371. - models: basic 3d shapes drawing, OBJ models loading and drawing
  372. - audio: audio device initialization, WAV files loading and playing