Skip to content

Releases: FNA-XNA/FNA

16.07

01 Jul 14:27
Compare
Choose a tag to compare

New Features:

  • All FNAPlatform/IGLDevice/IALDevice code is now in src/FNAPlatform/
    • Platform API documentation is in src/FNAPlatform/README
  • Add FNALoggerEXT extension
    • The LogHookEXT extension has consequently been removed
  • Add FNA_SONG_DISABLE_THREADS environment variable
    • The NO_STREAM_THREAD build option has consequently been removed
  • Add CASE_SENSITIVITY_HACK build option
  • XACT: Implement Cue IsPreparing and IsPrepared properties
  • Add experimental ModernGLDevice, which uses ARB_direct_state_access and ARB_sampler_objects
    • Disabled by default, enable with FNA_GRAPHICS_FORCE_GLDEVICE="ModernGLDevice"

Fixes:

  • Effect: Fix Get/SetValue(Array) calls for Vector parameter types
  • XACT: Fix min/max RPC bounds behavior
  • OpenALDevice: Fix for stray PCM16 data causing AL_INVALID_VALUE errors
  • SDL2_FNAPlatform:
    • Set window size more aggressively when leaving fullscreen
    • Improved error handling for GetKeyFromScancodeEXT

Special thanks to our Patrons, including...

16.06

01 Jun 13:12
Compare
Choose a tag to compare

New Features:

  • SDL2_FNAPlatform: Full support for global mouse state, rather than just window mouse state
  • SDL2_GameWindow: Full support for AllowUserResizing via SDL_SetWindowResizable
    • FNA_WORKAROUND_WINDOW_RESIZABLE is expected to be removed for SDL 2.0.5.

Fixes:

  • Effect:
    • More verbose error reporting on failure to parse effects
    • Fix a crash on failure to compile effects
  • SpriteBatch:
    • Various microoptimizations and GC performance improvements
    • Fix a crash on invalid SpriteEffects parameter inputs
  • Design: Fix list separator strings
  • SDL2_FNAPlatform: Fix scaled SaveAsPng results being completely transparent
  • DrawableGameComponent: Dispose is now explicitly overloaded, per XNA4 spec

Special thanks to our Patrons, including...

16.05.05

05 May 19:03
Compare
Choose a tag to compare

Fixes a SpriteBatch MatrixTransform calculation regression from 16.05.

16.05

01 May 14:25
Compare
Choose a tag to compare

New Features:

  • FrameworkDispatcher implemented, supports Audio and Media callbacks
  • SpriteBatch: MatrixTransform calculation is now significantly faster
  • Effect:
    • Tons of optimizations, notably for large effect parameter arrays
    • Tons of accuracy fixes, notably for ID3DXEffect::SetRawValue users
    • Quaternion parameter support

Fixes:

  • SDL2_FNAPlatform:
    • GamePad: TONS of dead zone accuracy fixes
    • WM_PAINT event accuracy fixes, mostly for Windows
  • OpenALDevice: Fix ALsizei type size, should fix possible crashes in OpenAL Soft 64-bit
  • Content: Fix SoundEffectReader for nonseekable streams
  • LogHookEXT: Hooks can now be set before init, to get messages from FNAPlatform static initialization

Special thanks to our Patrons, including...

16.04

01 Apr 14:00
Compare
Choose a tag to compare

New Features:

  • Effect: 2x2 Matrix parameter support
  • IGLDevice/IALDevice: Rewrote internal FNA platform APIs to use pointers rather than templates
    • This will make new backends easier to write, but should not be apparent otherwise.

Fixes:

  • SDL2_FNAPlatform: GamePad data is now loaded as soon as SDL inits
  • PackedVector: Rewrote basically the whole namespace for XNA accuracy fixes
  • TextureCollection: Check for disposed textures (DEBUG mode only)
  • XACT: Rewrote NumCueInstances tracking to improve instance limiting accuracy
  • Song:
    • Fix ObjectDisposedException on MediaPlayer.Play for inactive songs
    • Fix list of supported file extensions (should be .ogg and .oga)
  • VideoPlayer: Fix disposing when Videos are never played

Special thanks to our Patrons, including...

16.03

01 Mar 05:40
Compare
Choose a tag to compare

Fixes:

  • SDL2_FNAPlatform: Load gamecontrollerdb.txt before SDL_Init
  • VideoPlayer no longer requires a Game instance before construction
  • Various XNA API accuracy fixes

Special thanks to our Patrons, including...

16.02.14

14 Feb 05:10
Compare
Choose a tag to compare

New Features:

  • Effect: Implement StructureMembers
    • MojoShader has been updated accordingly
  • GraphicsAdapter: Implement IsDefaultAdapter
  • OpenGLDevice: Added support for ARB_draw_elements_base_vertex

Fixes:

  • SpriteBatch: Too many optimizations to count
  • StorageDevice: ShowSelector/OpenContainer are not asynchronous
  • SDL2_FNAPlatform: Display modes are now sorted from smallest to largest

16.02.02

02 Feb 06:21
Compare
Choose a tag to compare

Fixes:

  • GraphicsDeviceManager: Fix timing accuracy of ApplyChanges PreparingDeviceSettings events
  • Makefile: Include EmbeddedResource files in builds

16.02

02 Feb 06:20
Compare
Choose a tag to compare

New Features:

  • Replace GamePlatform with FNAPlatform, a new portability layer
  • Added LogHookEXT extension. NLog/log4net users rejoice!
  • Keyboard: Added FNA_KEYBOARD_USE_SCANCODES environment variable
    • The USE_SCANCODES build option has consequently been removed
  • Multimonitor support in general has been dramatically improved
    • These improvements require SDL 2.0.4 or greater
    • See GraphicsAdapter/GraphicsDeviceManager changes from this release
  • GraphicsAdapter:
    • Implement Description property
  • TextInputEXT:
    • Added StartTextInput/StopTextInput methods
    • Added support for the Home, End, and Delete characters
  • DynamicSoundEffectInstance:
    • SubmitBuffer offset parameter implemented
    • SubmitFloatBufferEXT offset/count overload added and implemented

Fixes:

  • Replaced generic Exceptions with more explicit types (i.e. NotSupportedException)
  • GraphicsAdapter:
    • Adapters property now stores an adapter for all displays
  • GraphicsDeviceManager:
    • Fix ToggleFullScreen behavior when changing resolution
    • ApplyChanges calls PreparingDeviceSettings before device resets
  • OpenGLDevice: Fix Short4 vertex attribute accuracy
  • Various fixes introduced by SDL 2.0.4
  • Makefile configuration fixes

16.01

01 Jan 06:20
Compare
Choose a tag to compare

New Features:

Fixes:

  • XACT: When the max Cue instance count is reached, Cues that are less than 80ms old (~5 frames in a 60Hz game) are prioritized over new Cues. This prevents excessive duplicate sounds being played within frame-by-frame intervals.