Release Notes (2014-10-29)
General Information
This 2.6.3 version is a maintenance version of legacy APIs (Direct3D1, Direct2D...etc.), some new features and several issues fixed.
This should be the last 2.6.x version, as the next version (3.0) SharpDX will go on a diet and will focus to provide DirectX core assemblies. Things that will change in this next version:
- All maths struct/helpers (Vector4, Vector3...etc.) will be moved to a separate
SharpDX.Mathematics
assembly. SharpDX DirectX assemblies won't use anymore these types directly but will use only simplified structs for marshalling. - The Toolkit will be deprecated and moved to a separate SharpDX repository. We recommend you to switch to Paradox or other alternatives.
SharpDX is also being updated to latest DirectX12 and should hopefully be available when DirectX12 SDK is released for developers.
Concerning support for Xbox One, we don't have any news, until Microsoft allows .NET on Xbox One (Please keep voting for it, as it seems to be pending!)
This release is integrating several patches and contribution made by the community on github. Thanks to all of them!
Best regards,
The SharpDX team
Changes and bugfixes
Please find below an auto-generated list of all changes and fixes from previous 2.6.2 version.
Build
- Cleanup build and mapping.xml. Make sure we are not using generated files by a previous target (changes)
- Fixed compilation from Visual Studio. (changes)
- Restored BeforeClean target to delete generated files as it causes issues only when Visual Studio 'Rebuild' command is used. (changes)
- Update license (changes)
- Update version to 2.6.3 for dev (changes)
Direct2D1
- Added ComputeFlatteningTolerance function (#417). (changes)
Direct3D10
- Fixed Query.IsDataAvailable to correctly process the result returned from native function (#476). (changes)
DirectInput
- Fixed typos in the mapping file (#482). (changes)
MediaFoundation
- Fixed DLL binding for MFCreateSingWriterFrom* functions. (changes)
- SourceReader.GetCurrentMediaType passes index through properly (changes)
Misc
- Adding MFCreateSinkWriterFromMediaSink and MFCreateSinkWriterFromURL back to W8CORE. (changes)
- Fixed dictionary serialization of reference values (changes)
- Fixed serialization of Dictionary reference values (changes)
- Revert "Fixed serialization of Dictionary reference values" (changes)
RawInput
- Added logic to remove trailing null char from device name (#492). (changes)
SharpDX
- Fixed MathUtil.Gauss function (#489). (changes)
- Fixed Plane-Ray intersection (#438). (changes)
- Hack ObjectTracker.Track to allow to get a stacktrace on Windows Store Apps. Only for dev time, do not use in production! (changes)
- Removed Utilities.LoadLibrary from WinRT and WP8 builds (#420). (changes)
- Restored Quaternion.RotationLookAtRH/LH (changes)
- Revised Quaternion, Matrix3x3 and Matrix LookAt and Billboard methods (changes)
SharpDX.XAudio2
- Added USeFilter enum-item back to VoiceFlags. (changes)
Toolkit
- Changed keyframes to SrtTransforms and added linear keyframe reduction (changes)
- First pass on model animation (changes)
- Fixes to ModelCompiler and preparation of data structures (changes)
- Forced ModelCompiler to collect all bones for now, and updated data structures (changes)
- More documentation and cleanup. (changes)
- Renamed SrtTransform to CompositeTransform (changes)
- Updated license date (changes)
Toolkit WPF
- Change D3d11Image.Dispose to execute on the it's dispatcher thread. (changes)
- Fix exceptions with D3D9 DeviceEx. (changes)
Toolkit.Compiler
- Added check for non-existing collections (changes)
- Bounding spheres of skinned meshes are now calculated in mesh space (in default pose), instead of bone space. (changes)
- Create bones before referencing them, while creating meshes (changes)
- Fixed bind transform calculation. (This is unwieldy, since Assimp does not provide the actual bind pose) (changes)
- Fixed bind transforms for meshes that have additional tranformations in bind pose (changes)
- Revert to using offset matrices, as "improvised" bind poses didn't achieve the actual intent to 1. Effortlessly support additive animations 2. Share skinning matrices between multiple models (changes)
Toolkit.Game
- Added AnimationSystem (changes)
- Fixed merge conflict (#380). (changes)
- Improved SharpDXElement to avoid memory leaks and to make element reusable between multiple Load/Unload calls. (changes)
Toolkit.Graphics
- Added possibility to dispose WicHelper to avoid messages about undisposed objects (#370). (changes)
- Added selector for depth-stencil subresources (changes)
- Fixed disposal of effect pools for deferred GraphicsDevice (#480). (changes)
- Fixed PrimitiveBatchBase drawing of non-indexed primitives (#481). (changes)
- Fixed size calculation for multisampled TextureView (issue #425) (changes)
- Fixed SwapChain2 instance creation to avoid silend AccessViolationException on dispose (#477). (changes)
Toolkit.Input
- Breaking changes on MouseManager.GetState(). Add MouseState.DeltaX/DeltaY. Make WheelDelta a real delta between updates. Only update mouse position on update instead of GetState() (#464) (changes)
- Fix comments (#464) (changes)
- Fixed memory garbage generation while checking button states (#497). (changes)
XAudio2
- Added constructors to Source/Submix voices to add effect chains (changes)
- Attempt to fix memory leak in X3DAudio.Calculate (#393). (changes)
- Fixed compilation - removed unused namespaces (#461). (changes)
- Fixed empty array handling for Voice.SetOutputVoices method (#483). (changes)
- Fixed Voice.SetOutputVoices(...) to allow routing to null (#483). (changes)