Releases: FNA-XNA/FNA
20.12
New Features:
Fixes:
- Prevent binding a texture at the same time that it is being used as a render target
- SDL2_FNAPlatform: GraphicsAdapter.Adapters should be rebuilt on any display change
- GraphicsDevice: Fix SetRenderTargets(null) not passing RenderTargetUsage
- Harden SoundEffect.FromStream for incomplete WAV chunks
Thanks to our GitHub Sponsors, including...
Super Sponsors:
Sponsors:
20.11
New Features:
- SoundEffect.FromStream now supports loop points from
smpl
chunks - DDSFromStreamEXT now supports TextureCube
- Update to FNA3D 20.11
- Update to FAudio 20.11
Fixes:
- SoundEffect: Fix native object cleanup when no audio device is available
- SDL2_FNAPlatform:
- Force
SDL_GAMECONTROLLER_USE_BUTTON_LABELS=0
, because Steam is incredibly dumb - The backslash/pipe key now correctly maps to OemPipe
- The menu/apps key is now properly mapped
- Force
Thanks to our GitHub Sponsors, including...
Super Sponsors:
Sponsors:
20.10
New Features:
- TextInputEXT: Add
TextEditing
event, allowing for improved CJK text composition - Update to FNA3D 20.10
- Update to FAudio 20.10
Fixes:
- SDL2_FNAPlatform:
- For ApplyChanges, cancel out minimize/maximize behavior
- Ignore resize events when the window is not in focus
- SpriteBatch: Fix sprite sorting for batches larger than 2048 sprites
- WaveBank disposal now explicitly closes streaming files, per FAudio 20.10 compliance
- Windows: Mixing 32/64-bit binaries now emits a slightly nicer BadImageFormatException
Thanks to our GitHub Sponsors, including...
Super Sponsors:
Sponsors:
20.09
New Features:
- IGLDevice has been replaced with FNA3D, the new graphics library for FNA!
- Direct3D 11 is now supported and is the default for Windows/Xbox
- Vulkan is now available as an experimental backend
- Metal is now the default for Apple platforms
- ModernGL and ThreadedGL have been removed
THREADED_GL
andDISABLE_THREADING
have been removed- MojoShader is now statically linked directly into FNA3D
- SDL2_image has been replaced with FNA3D_Image, which is built into FNA3D
- Add experimental support for WebAssembly via Emscripten and mono-wasm
- Update to FAudio 20.09
Modified Features:
- SetStringMarkerEXT is now always present, you no longer need to wrap it in a try block
- The following environment variables have been renamed:
FNA_GRAPHICS_FORCE_GLDEVICE
FNA_GRAPHICS_MOJOSHADER_PROFILE
FNA_GRAPHICS_BACKBUFFER_SCALE_NEAREST
FNA_OPENGL_DISABLE_LATESWAPTEAR
FNA_OPENGL_WINDOW_DEPTHSTENCILFORMAT
FNA_OPENGL_FORCE_ES3
FNA_OPENGL_FORCE_CORE_PROFILE
FNA_OPENGL_FORCE_COMPATIBILITY_PROFILE
- The above variables are now under the FNA3D namespace:
FNA3D_FORCE_DRIVER
FNA3D_MOJOSHADER_PROFILE
FNA3D_BACKBUFFER_SCALE_NEAREST
FNA3D_DISABLE_LATESWAPTEAR
FNA3D_OPENGL_WINDOW_DEPTHSTENCILFORMAT
FNA3D_OPENGL_FORCE_ES3
FNA3D_OPENGL_FORCE_CORE_PROFILE
FNA3D_OPENGL_FORCE_COMPATIBILITY_PROFILE
Removed Features:
- Removed
WIIU_GAMEPAD
build option
Fixes:
- Game.RunOneFrame() now polls OS events, and no longer calls BeginRun/EndRun
Thanks to our GitHub Sponsors, including...
Super Sponsors:
Sponsors:
20.08
New Features:
- Update to FAudio 20.08
Removed Features:
- dllmaps for iOS/tvOS have been removed, due to the upcoming macOS ARM release
- See the wiki for more information about the replacement
Fixes:
- Remove dead code in ModelReader, should mildly improve load performance
Thanks to our GitHub Sponsors, including...
Super Sponsors:
Sponsors:
20.07
New Features:
- Update to FAudio 20.07
Fixes:
- Typo fix in ProfileCapabilities
- Add a lock to the DynamicSoundEffectInstance list in FrameworkDispatcher
- UTF8: Fix a potential buffer overread when passing null managed strings to native code
Thanks to our GitHub Sponsors, including...
Super Sponsors:
Sponsors:
20.06
New Features:
- Added
ProfileCapabilities
, a secret internal XNA class that doesn't really do anything! - Update to FAudio 20.06
Fixes:
- UTF8 marshaling no longer allocates managed memory, dramatically improving P/Invoke performance
- SpriteBatch: CheckBegin is now done in release builds, not just debug builds
- SoundEffectInstance: Add ObjectDisposedException to Pan/Apply3D
- XACT: Reduce garbage generation from IntPtr comparisons
- EffectMaterialReader: Fixed missing
int[]
parameter reading
Thanks to our GitHub Sponsors, including...
Super Sponsors:
Sponsors:
20.05
New Features:
- VideoPlayer: YUV 4:2:2 and 4:4:4 formats are now supported!
- Update to FAudio 20.05
Fixes:
- MouseState: ToString now prints the full state in detail
- MetalDevice: Don't use Depth16 as a fallback for Depth24
- OpenGLDevice: Add fallback for windows with D32S8 depth formats
- EffectPass: Applying a pass not in the CurrentTechnique now throws InvalidOperation
- VideoPlayer: YUV->RGB conversion now follows ITU-R BT.709 instead of ITU-R BT.601
Thanks to our GitHub Sponsors, including...
Super Sponsors:
Sponsors:
20.04
New Features
- Update to SDL 2.0.12
- Update to FAudio 20.04
Fixes:
- Eliminate garbage generation from GamePadState structures
- GraphicsDevice constructor now explicitly sets swap interval for all GLDevices
- OpenGLDevice: Fix a bogus ColorMask in Clear that was swapping G and B
- Effect:
- Unhandled render/sampler state changes are now printed with the Exception
- Add a no-op case for the mysterious "178" render state
Thanks to our GitHub Sponsors, including...
Super Sponsors:
- @danielcrenna
- @kg
- @TerryCavanagh
- Adam Spragg
Sponsors:
20.03
New Features
- FNA now checks for an
FNA.Settings.props
file next to the solution file. This makes it possible to use Build Options without modifying the FNA source code. - MetalDevice now runs with the validation layer enabled in Debug builds
- Update to FAudio 20.03
Fixes:
- Even moar accuracy fixes for IGraphicsDeviceManager/Service initialization
- MetalDevice: Create the backbuffer on device creation, not at the first reset
- Allow .NET 4.0 projects to reference FNA.Core (for real this time)
- Fix dllmaps on OpenBSD
Thanks to our GitHub Sponsors, including...
Super Sponsors:
Sponsors: