MonoGame v3.8 Release Notes

Release Date: 2020-08-10 // about 1 year ago
  • โž• Added

    • New Plane constructor. #6085
    • Round, Ceiling, Floor functions for Vector2/3/4. #6318
    • Dotnet templating templates. #6494
    • TransformMatrix for SpriteEffect. #6623
    • SpriteBatch constructor overload with capacity parameter. #6682
    • [OpenGL] Support for separate blend states per render target. #6343
    • Multiply operator overload for Color: scale * Color. #6747
    • Overloads for garbageless BoundingBox.CreateFromPoints. #6743
    • UseStandardPixelAddressing flag. #6621 #6780
    • [MGCB] Search fonts in HKEY_CURRENT_USER on Windows. #6671
    • Garbageless GetPressedKeys overload. #6643
    • Expose GraphicsDevice.DiscardColor to set the clear color of render targets. #6832
    • KeyDown and KeyUp events on GameWindow. #6762
    • FromFile for Texture2D and SoundEffect. #6586
    • PlatformInfo class to query runtime platform. #6846 #6873
    • API to query graphical system at runtime. #6872
    • Etc2 texture format support. #6864
    • MonoGame.Content.Builder package. #6905
    • ฯ„ constant. #6937
    • [UWP] Overloads for more detailed vibration control. #6933
    • [MGCB Editor] Always use Headerbar. #6938
    • Joystick display name for the Joystick API. #7008
    • [OpenGL] Overload with base index for draw instancing. #7016
    • Google Stadia Support. #7020 #7049
    • LastJoystickIndex for the Joystick API. #7017
    • MouseState.ToString. #7091
    • [MGCB Editor] .NET Core tool. #7090
    • [MGFXC] Wine support. #7098 #7103 #7107 #7188
    • EffectParameter.SetValue for int array. #7143
    • Add Web platform information to the content builder. #7144
    • [macOS] MonoGame Content pad for VS for Mac. #7266

    โœ‚ Removed

    • Remove obsolete SpriteBatch.Draw overload. #6818
    • Disable Piranha portable build. #6844
    • Removed MonoGame.Framework.Net. #6900 #6775
    • Remove internal PNG Utility Classes. #6976
    • Protobuild removed and replaced with solutions and projects. #7040 #7041

    ๐Ÿ”„ Changed

    • OpenAssetImporter Improvements and FbxImporter Unit Tests. #6158
    • Made sound system optional. #6629
    • [UWP] Do not set minimum window size. #6763
    • Added Cake build script to replace NANT. #6776
    • Marked Color.TransparentBlack obsolete. #6817
    • [SDL] Performance and garbage optimizations to Joystick. #6829 #6834
    • Track GamePad packet number and general optimizations. #6760
    • [DirectX] Basic performance enhancements to Texture2D. #6726
    • Inline Vector2 operator / and Point.ToVector2(). #6700
    • Make OggStreamer thread a background thread. #6848
    • Made it so Texture2D in any format could be saved as Png/Jpeg when using MonoGame.DesktopGL backend. #6855
    • Upgrade SDK projects to .NET 4.5.2. #6902 #6903 #7050
    • Reduced garbage in Direct X-specific SetRenderTargets methods. #7034
    • MouseState Improvements. #6973
    • KeyboardState Improvements. #6972
    • [SDL] Updated controller DB. #7124
    • We now pool ContentManager scratch buffers. #5921
    • [OpenAL] Clean up sound disposal. #7097
    • [macOS] Replaced System.Drawing with StbImageSharp to enable tests. #7071
    • [Docs] Moved to DocFX v2 for documentation. #7127
    • [SDL] Bump dependencies to SDL 2.0.12. #7133
    • [Docs] Update for 3.8. #7117 #7240
    • [MGCB Editor] Changed position for context menu item Rebuild. #7176
    • [MGCB] Replace symbols for assembly references. #7272

    ๐Ÿ›  Fixed

    • Support arrays > 255 elements in shaders. #5995
    • [DesktopGL] Fix setting mouse cursor from Texture2D. #6187
    • Remove trailing NUL chars in registry font name. #6577
    • [OpenAL] Fix loading OpenAL-Soft in DesktopGL when # is in path. #6581
    • [WindowsDX] Avoid freezing while moving/resizing window. #6594
    • [iOS] Fixed background music stopping on game startup. #6596
    • Fixed GameUpdateRequiredException namespace. #6597
    • [MGCB] Fixed build not cleaning empty projects. #6615
    • Reduce garbage from TextInput. #6664
    • Fix for loading native libraries on Amazon Fire HD 8. #6677
    • Fixes reflection support on SpriteBatch ctor. #6709
    • [Android] Fixed crashes on launch and resume. #6741
    • [Android] Fixed restoration of an activity after Game.Exit. #6739
    • [SDL] Fix rumble infinity threshold. #6744
    • [SDL] Fixed OnTextInput. #6749
    • Move touches are now aged too. (fixes #6753). #6756
    • [Android] Fixed Texture2D.GetData corrupting the Texture2D object. #6729
    • [MGCB Editor] Fix assembly load API used for custom user references. #6770
    • Fix nuget metadata URL properties. #6774
    • Fix IRenderTarget comments. #6785
    • Catch ArgumentException when trying to get encoding upon PipelineController.DoBuild. #6826
    • [OpenAL] Free source when sound instance is disposed. #6813
    • Use Resume when Play is called on Paused sound effect instance. #6815
    • Fixed BoundingSphere.Intersects(BoundingBox). #6666
    • Override Dispose in DrawableGameComponent to unload content. #6858
    • Fixed SwapChain is null in GraphicsDevice.PlatformDispose. #6869
    • Swap red and blue when setting mouse cursor texture. #6859
    • [DesktopGL] Fix IsActive not getting set to false. #6895
    • Fix FileHelpers Uri getting confused by double slashes. #6924
    • [UWP] Vibrate controller handles instead of triggers. #6933
    • Fix for CoreRT support. #6948
    • Fix a crash on macOS and CoreRT related to mishandling unmanaged function pointers. #6949
    • [MGCB] Rethrow InvalidContentException for Importers instead of wrapping it in a new PipelineException. #6954
    • Throw InvalidContentException with error line number/position in ContentIdentity. #6953
    • Fall back to less precise frame pacing on non-Windows platforms. #6941
    • [UWP] Fixes content loading to work with packaged files (and not just resources). #6964
    • [UWP] Fixes window resizing upon GraphicsDeviceManager.ApplyChanges(). #6964
    • [Android] fix GamePad.Back emulation. #6951
    • [Android] Fixes android APIs fallback. #6952
    • Fixed sample count in SoundEffect. #6996
    • [SDL] Fixed memory leak in controller mapping by freeing the returned string. #7021
    • [macOS] Look for native libraries in Frameworks folder for .app bundles. #7022
    • [OpenGL] Fixed PlatformClear and PlatformPresent to be private in GraphicsDevice. #7026
    • [DesktopGL] Fixed GraphicsAdapter.Description to return renderer. #6959
    • [OpenGL] Query correct value for the bounds to GL.ActiveTexture. #6970
    • Fix Content.mgcb not being visible in VS 2019. #7064
    • [iOS] Fix initialization crash on GLES 2.0 devices. #7047
    • [iOS] Fix GL error and race condition. #7073
    • [MGCB Editor] Mac fixes. #7077
    • [OpenAL] Fixing audio duplicating sourceids. #7095
    • [MGCB] Fix FindCommand not looking system locations on macOS/Linux. #7100
    • Fix FuncLoader not properly checking the current folder (fixes #7101). #7102
    • Fix .NET Standard template using wrong nuget. #7099
    • [DirectX] Fixed MSAA RenderTarget GetData and SetData. #5838
    • Fixed deconstruction of color for bytes and floats. #7109
    • [MGCB] Fix failing to find ffmpeg because it tries relative path. #7138
    • [MGFXC] Various fixes. #7148
    • Fixed a bug where The "New Item" dialogue would have no templates listed. #7141
    • [MGCB Editor] Darken text in output. #7163
    • [MGCB] Fix trying to chmod root files. #7183
    • [MGCB Editor] Fixed to not require root privileges for installing. #7185
    • [SDL] Better debugging for macOS. #7187
    • Fixed content failing to load on NetCore. #7199
    • [MGCB Editor] Fix parsing filename from arguments on macOS. #7215
    • [Linux] Flatpak packaging upgrades. #7224
    • Fix path in RebuildMGFX.bat. #7239
    • [DirectX] Fix issues with RenderTexture2D and SwapChainRenderTarget. #7225
    • [macOS] VSMac addin fixes. #7253
    • [MGCB Editor] PropertyGrid fixes. #7256
    • [MGCB Editor] General fixes. #7262
    • Fix a race condition when playing sound in worker threads. #7219
    • [Android] Fixed surface recreation when resuming from sleep mode on FireTV. #7211
    • Fix loading of content with special characters in a file name. #7267

Previous changes from v3.7.1

    • MGCB now generates content building statistics. #6401
    • Fixes to dependency loading in Pipeline Tool. #6450
    • Fixed crash when canceling choose folder dialog in Pipeline Tool. #6449
    • Fix add item dialog jumping around in Pipeline Tool. #6451
    • Fix OpenAL library loading on some Android phones. #6454
    • Fix Gamepad index tracking under UWP. #6456
    • Rename "Copy Asset Path" to "Copy Asset Name" for consistency with XNA in Pipeline Tool. #6457
    • Fix TextInput Keys argument for UWP. #6455
    • Add new GamePad.GetState() overloads to support different dead zone modes. #6467
    • Fixed incorrect offset DynamicSoundEffectInstance.SubmitBuffer under XAudio. #6523
    • Improved accuracy of fixed time step. #6535
    • Ensure intermediate output path exists before writing stats in Pipeline Tool. #6503
    • Fix for special window close case under SDL. #6489
    • Marshal microphone identifiers as UTF-8. #6530
    • Clear the current selections when excluding items in the Pipeline Tool. #6549
    • Enable standard derivatives extension for GLSL shaders. #6501
    • Fixed framebuffer object EXT loading under OpenGL. #6562
    • Fixed GL.RenderbufferStorage for devices that use the EXT entry points. #6563
    • Fix VS template installation when C# folder is missing. #6544
    • Fix for SDL loading when a '#' is in the directory path. #6573
    • Restored Buttons[] constructor in GamePadState fixing XNA compatibility. #6572