Skip to content

LunatiX v0.13.0

Compare
Choose a tag to compare
@Gumichan01 Gumichan01 released this 26 May 11:33
· 233 commits to master since this release

Important changes

  • Overall

    • LunatiX separated the logical position/box of an entity (physics) and the graphical position box (graphics).
      See 771b9d1, b773cba, f005d33.
    • This is the last version that uses SDL 2.0.3.
    • Every functions that have been deprecated in the v0.12.0 have been removed.
    • UTF8string has been updated.
    • Some functions takes references in argument instead of pointers
  • Graphics

    • Implemented LX_ImgCoord and LX_ImgRect. There are used to define the position and the box of
      an entity on screen.
  • Physics

    • The physics module has been rebuilt
      • Every calculations in the physics module are done by using floating-point value.
      • Implemented LX_FloatPosition and LX_FloatingBox
      • It manipulates floating-point values by using Float. See d3cbc5f and Gumichan01/float-wrapper
      • LX_AABB has been removed.
      • Removed constructors from structures. It is not useful anymore.
  • Multithreading

    • TinyThread++ has been removed. It was not necessary to use it because LunatiX can be compiled with GCC 4.8.1 and Clang 3.3 at least. Those compilers provide a full C++11 support (including multithreading support). TinyThread++ was originaly used to provide this multithreading support when LunatiX was not written in C++11.
    • New thread: LX_AsyncTask. This thread handles an asynchronous task.
    • Removed LX_Mutex, LX_Cond, and LX_Channel.
  • LX_FileIO

    • It uses the standard C API instead of SDL2.

Minor changes

  • Graphics

    • LX_Window
      • Two new functions: show(), hide()
      • setFullscreenMode() uses an enumeration instead of number.
      • Multiple lines (drawLines()) can be drawn by using std::vector instead of pointers
      • setViewport() does not return a value. See 39ef7b0
      • resetViewport() was defined. See 71eadd4
      • LX_BufferedImage: convertGrayscale() and convertNegative() return the current instance. See 7d69cd4
    • LX_Texture
      • New enumeration: LX_PixelFormat
      • New signature of getDimentions(), the old one is deprecated. See 2c1b85b
    • LX_WindowManager
      • The window manager stores the windows in an unordered_map. See 8f5fb4d
      • addWindow() takes a reference to a window instead of an address.
      • getWindow() returns a reference to a window instead of an address.
  • Mixer

    • LX_Music
      • play() new signature.
  • Event

    • Some typedefs are replace by enumerations - LX_GamepadAxis, LX_GamepadButton
  • Message Box

    • The type of the message is an enumeration - LX_MsgType
  • Device

    • Another enumeration: LX_MouseButton
  • Random:

    • new functions: fxrand(), xrand().
    • Some functions are deprecated. please check the documentation for more information.
  • Error messages

    • Replaced LX_GetError() and LX_SetError() with LX_getError() and LX_setError()

Fixes

  • LX_Event::pushUserEvent(): a test was always true in this function, so I removed it. See 313504c

Known bugs

  • If you updated the game controller database (from here), the mapping won't work properly, because the new database is no longer compatible with SDL 2.0.3.