Release Notes (2013-08-10)
General Information
A new version 2.5.0 of SharpDX is available today for download.
This version is a maintenance version of legacy APIs (Direct3D1, Direct2D...etc.) and contains also lots of improvements for the SharpDX Toolkit with new features and several issues fixed.
Among the list of new features and fixes in this release for the Toolkit, It contains most notably:
- An installer to ease the installation of SharpDX.
- A Visual Studio package that you can download from the extension manager that provides an advanced project template Wizard for the Toolkit. You can see the SharpDX Toolkit for VisualStudio on the Visual Studio Gallery.
- Add support for Input via the new assembly SharpDX.Toolkit.Input supporting Mouse, Keyboard and Pointer APIs - for Desktop, WinRT and WP8.
- Add support for integration of WPF in the Toolkit.
- Add support for 3D Model loading.
- Add support for Primitive 3D.
- Add support for DrawingSurface on WP8.
- Add support for dynamic re-compilation of effects at runtime when sourcecode changed without having to recompile an application (Check Toolkit CustomEffect sample).
- Add support for more events for better notification in GraphicsDevice state changes.
- Add support for multiple-window/control on Desktop with the Toolkit (see MultiWindow Sample).
- Several issues fixed in the Toolkit preventing correct usage of custom effects.
- An improved SharpDX.Toolkit.Compiler/tkfxc supporting input file dependency to track changes and compile an effect only if all dependent files - including indirect "includes" - changed. This improves drastically the performance when compiling.
- A new Toolkit.CompilerTask and a msbuild extension "SharpDX.targets" (used in Toolkit samples), that provides FX file compiling and automatic references of SharpDX assemblies depending on the project settings.
- Various fixes, performance improvements, etc.
There are also some breaking changes since 2.4.2:
- Viewport/ViewportF is now part of SharpDX core instead of having different structure for each D3D APIs
- DrawingRectangle/DrawingRectangleF is removed, as they were confusing. New Rectangle and RectangleF is used for all D3D APIs. The old Rectangle constructor was changed from (left, top, right, bottom) to (x, y, width, height).
- Support for Dispose on finalizers for ComObject is removed, as they are not supported by all platforms and can lead to unpredictable results.
For building easily SharpDX, there is also a new batch file MakeSharpDX_localbuild.cmd
. This will rebuild all SharpDX platforms at once. Any build errors will be written in console and in the BuildErrors.log
file.
This release is integrating several patches 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.4.2 version.
Animation
Build
- Make sure that we perform a pull rebase just before pushing back master_integration (changes)
- Remove work-tree (changes)
- Fix SharpDX.targets (changes: 1, 2)
- Add auto commit to master from master_integration when build is fine for all platforms. Used from TeamCity server. (changes)
- Add FtpUpload to FullBuild (changes)
- Add Net35Plus defines to build project to allow usage of 3.5+ language features (extension methods...etc.) (changes)
- Add Zip and FTP for nightly builds (changes)
- Added batch file to rebuild all platforms at once (changes: 1, 2)
- Added nuspec file (changes)
- Added switch to SharpDX.targets to allow selecting DX version - 11 or 11.1 (changes)
- Change build output from local directory to $(SolutionDir)\Bin\XXX. Nant file is not yet updated so MakeSharpDX.com is temporarily not working. (changes)
- Change directories for distribution in Bin. Now prefixed by DirectX11 (for DirectX Runtime June 2010) and DirectX11_1 (for Windows 8 Runtime) (changes)
- Cleanup SharpDX.sln and fix compilation errors for Toolkit.Input for all release targets (changes)
- Fix assembly signing (changes)
- Fix automated build (changes)
- Fix build for Windows 8 (changes)
- Fix build on Windows RT (changes)
- Fix compilation errors for WP8 (changes)
- Fix compilation on W8/WP8 (changes)
- Fix compilation under Win8 (changes)
- Fix documentation config for wp8 (changes)
- Fix error in build (changes)
- Fix git command (changes)
- Fix issue for Zip and clean samples, nightly builds (changes)
- Fix nant release build to use SharpDX.build for building the package for release (changes)
- Fix nuget packaging (changes)
- Fix packaging issue (changes)
- Fix path for generated XML documentation (changes)
- Fix release notes for 2.5.0 (changes)
- Fix samples reference to SharpDX assemblies when packaging with installer (changes)
- Fix various build issues (WP8, documentation) (changes: 1, 2)
- Make ZIP file configurable (changes)
- Modified SharpDX.build script to accomodate local rebuild with one command (changes: 1, 2)
- Remove AppPackages directory from final build (changes)
- Remove copy local as all projects are now outputing to the same folder (changes)
- Remove Samples from SharpDX solution to speedup and simplify build (changes)
- Remove SharpCore from SharpDXWP8.sln (changes)
- Remove SharpDoc, moved to an external github projects https://github.com/xoofx/SharpDoc . Cleanup tools, remove SharpCore/SharpDoc/SharpDocPak and integrate remaining files into SharpGen. Move specific SharpDoc styles for SharpDX into Documentation. (changes)
- Remove temporary Win8 Samples from main solution (changes)
- Remove tkfont from Win8 build (changes)
- Removed whitespace which didn't allow DX11.1 selection on Desktop platform (changes)
- Start to migrate from Nant to msbuild for building/packaging (changes)
- Start to switch to new build system on CLI (changes)
- Try fixing error by adding git --work-tree to be able to run it from TeamCity (changes)
- Use http://code.google.com/p/sharpdx-nightly-builds/ instead of ftp to store latest builds (changes)
- Use merge instead of rebase from master to master_integration (changes)
D3DCompiler
- Remove ShaderBytecode.Compile internal SharpDXException when disabling Configuration.ThrowOnShaderCompileError (changes)
- Spell check (changes: 1, 2)
Direct2D1
- Add PrintControl.AddPage methods (changes)
- Fix issue #339. Matrix5x4 was not correctly handled for Effect properties (changes)
- Fix issue #392. Dispose BitmapFrameEncode.Options to avoid a memory leak (changes)
- FIX: The ColorContexts property of the BitmapDecoder and BitmapFrameDecode never worked; WIC requires the color contexts objects to be created before calling the method (very odd indeed). Marked this property as obsolete. Replaced it by a TryGetColorContexts method. This method doesn't throw an exception when requesting the color contexts of a bitmap that does not support color contexts; instead it returns null. (changes)
- Replaced DataStream usages by DataPointer where appropiate (github issue #90) (changes)
- Spell check (changes: 1, 2)
Direct3D
- Replace all Viewport with new global SharpDX.Viewport. SharpDX.Direct3D11.Viewport with SharpDX.ViewportF. Add cast method from SharpDX.Viewport to ViewportF (changes)
Direct3D10
Direct3D11
- Add better handling of caching DeviceChild.Device (changes)
- Add Device.IsSupportedFeatureLevel, remove CheckError on D3D11.CreateDevice in this case to avoid SharpDXException being catched (changes)
- Add missing file (changes: 1, 2)
- Add uint for scalar shader variables. This also fixes a dangerous bug were the uint would be implicitly converted to int and if the most significant bit was 1 then the final value would be very wrong. (changes)
- Breaking change signature for RasterizerState.SetViewports, remove the last "s". Fix GraphicsDevice.Clear issue when changing render targets. (changes)
- DrawingSurfaceContentProvider SynchronizedTexture as IntPtr (changes)
- Fix DrawingSurface support for WP8. MiniCube.DrawingSurface sample is working (changes)
- Fix interface errors for WP8 IDrawingSurfaceContentProvider (changes)
- Fix issue #336. Remove some BlendState, DepthStencilState, RasterizerState constructors to avoid redundancy and conflicts in VB6 (changes)
- Fix issue #390. Remove ImageLoadInformation from WinRT/WP8 builds (changes)
- Fix issue #430. Add D3D11_SO_.* constants to GeometryShader (changes)
- FIX: The ColorContexts property of the BitmapDecoder and BitmapFrameDecode never worked; WIC requires the color contexts objects to be created before calling the method (very odd indeed). Marked this property as obsolete. Replaced it by a TryGetColorContexts method. This method doesn't throw an exception when requesting the color contexts of a bitmap that does not support color contexts; instead it returns null. (changes)
- Remove using of "ref" in constructors to support VB (changes)
- Restore DeviceDebug/InfoQueue for WP8, now accessible on all platforms (changes)
- Spell check (changes: 1, 2)
- WP8 IDrawingSurfaceContentProvider (changes)
Direct3D9
- Added missing else branches to various FromStream methods. (changes)
- Fix issue #349. DeviceEx constructor should accept null DisplayModeEx parameter. (changes: 1, 2)
- Fix issue #372. Resource.Device no longer generates allocation (changes)
- Fix issue #373. Add IndexBuffer.LockToPointer and VertexBuffer.LockToPointer methods (changes)
- Spell check (changes: 1, 2)
DirectInput
- Fix issue #352. Rename UpArrow to Up and remove invalid mappings. (changes: 1, 2)
- Fix issue #377. Avoid boxing of structs while unmarshalling KeyboardState (changes)
- Spell check (changes: 1, 2)
DirectSound
- Add DirectSound.DuplicateSoundBuffer. Add Volume.Minimum/Maximum (changes)
- Spell check (changes: 1, 2)
DirectWrite
- FIX: Fixed memory leak in TextRendererShadow class (changes: 1, 2)
- Replace DirectWrite.Matrix by SharpDX.Matrix3x2 (changes)
Documentation
- Add SharpDX.Toolkit.Input to doc generation (changes)
DXGI
- Add Output1.GetDisplayModeList1 method (changes)
- Fix compilation error for DirectX11.0 (changes)
- Fix issue #103. KeyedSync.Acquire return Result. Add Result.WaitAbandoned and Result.WaitTimout. Add ResultDescriptor for common errors. Improve SharpGen to support return and check of HRESULT at the same time. (changes)
- Spell check (changes: 1, 2)
External
- Fix issue #431. Get latest assimp and recompile it with V100 platform instead of V110 (changes)
- Update to nant 0.9.2 (changes)
General
MediaFoundation
- Add MediaServiceKeys and add SericeProvider.GetService<T> method (changes)
- Add MediaSessionCallback to provide a default callback to handle MediaSession events (changes)
- Bug fix in Transform.ProcessOutput return value (changes)
- Clear AsyncResult.NativePointer once used by the callback in order to avoir false-positive log in ObjectTracker (changes)
- Fix compilation error with AsyncCallback (changes)
- Fix compilation errors on Windows RT (changes)
- Fix compilation for WP8 (changes)
- Fix compilation on Windows App and Phone 8 (changes)
- Fix compilation with ServiceProvider (changes)
- Fix invalid implem of MediaEventGenerator.GetEvent isBlocking (changes)
- Fix issue #269. MediaEngine.PlaybackEvent should be fired. Add MediaEngineApp sample on Dekstop. (changes)
- Fix issue #367. Dispose correctly all SourceReader (changes)
- Fix issue #38. Implemented AsyncCallback for MediaEventGenerator. (changes)
- Fix issue with AsyncCallback in order for MediaSession to work with it (changes)
- Fix issue with MediaEngine.Source that was passing an invalid filename to the native layer (changes)
- Fix MediaManager.Shutdown to use isStartup internal state (changes)
- Make DXGIDeviceManager available on Windows 8 Desktop (changes)
- Make MediaEngine available on Windows 8 Desktop (changes)
- Map missing enums and guids, remap some interface to allow audio encoding and decoding using IMFTransform. (changes)
- Rename MediaFactory.TEnumEx to FindTransform. Add ResultCode with all MF_E_ result code error. Fix Transform methods by returning boolean (changes)
- Spell check (changes: 1, 2)
- Start to work on AsyncCallback (changes)
RawInput
- Fix regression by using by default Application.AddMessageFilter (changes)
- Fix regression when there is no windows having the focus in an application (changes)
- Use of SharpDX.Win32.MessageFilterHook instead of Application.AddMessageFilter (changes)
Release
- Last fixes for 2.4.2. Remove unused documentation links. (changes)
Samples
- Add Direct3D11.1 ScreenCapture sample using DXGI OutputDuplication (changes)
- Add ID3D10Multithread.SetMultithreadProtected(true); in MediaPlayer to avoid instability (changes)
- Add ModelRendering sample on WP8 and WinRT (changes)
- Add Toolkit WP8 DrawingSurface sample (changes)
- Added Direct2D1 offline image processing sample. (changes)
- added sample for Desktop mouse input (changes)
- change ref's to out (changes)
- Fix compilation (changes)
- Fix compilation with Matrix3x2 (changes)
- Fix issue #342. WP8 MiniCube SharpDXBase should use new SharpDX.ViewportF (changes)
- Fix issue #360 (changes: 1, 2)
- Fix Toolkit samples to use SharpDX.targets (changes)
- Fix Win8 samples (changes)
- Fix Win8 samples using new SharpDX.ViewportF (changes)
- Fix WP8 sample using SharpDX.targets (changes)
- Fixed CustomLayout sample (changes)
- fixed memory leak (changes)
- Fixed resume issue on windows phone, see https://code.google.com/p/sharpdx/issues/detail?id=414&colspec=ID%20Type%20Status%20Priority%20Component%20Owner%20Summary%20Opened%20Modified for details... (changes)
- Hide SystemTray on all WP8 toolkit samples (changes)
- Remove all old sample.csproj (changes)
- Remove unused compiled file (changes)
- Update CustomEffect with latest changes from tkfxc/Effect compiler. (changes)
SharpDoc
- Add nested types. Not entirely well supported (changes)
- Fix invalid XHTML tags (changes)
- Fix issue with MSHC. URL in css are not working. Ask for a workaround on MSFT forum (changes)
- Fix remaining issue with MSHC documentation generation (changes)
- Start to add support for MSHC documentation (changes)
SharpDX
- * math tweaks (changes)
- @ math fixes (changes)
- Add a comment in MathUtil.Wrap tests for floats to point out that precision cannot be guaranteed and safely tested (changes)
- Add clamp method for integers. (changes)
- Add Color.ToColor4 method (changes)
- Add Color3.Black and Color3.White (changes)
- Add Color4.Black and Color4.White (changes)
- Add comments (changes)
- Add constructors for Color4 - fix issue 328 (changes)
- Add Contains methods to DrawingRectangle. (changes)
- Add Contains methods to DrawingRectangleF. (changes)
- Add Contains methods to Rectangle. (changes)
- Add Contains methods to RectangleF. (changes)
- Add ID3D10Multithread interface to SharpDX.Direct3D.DeviceMultithread that will be shared between Direct3D10 and Direct3D11. This is needed when using MediaEngine Video/Texture interop. (changes)
- Add implementation for Matrix.Skew (changes)
- Add Lerp() and SmoothStep() to Matrix3x2 (changes)
- Add Lerp() and SmoothStep() to Matrix3x2 (cherry picked from commit ad96d3f4c5d383ec617b4fc10fc6fb2d45603566) (changes)
- Add license to OrientedBoudingBox (changes)
- Add Matrix vectors. (changes)
- Add Matrix3x2.Rotation() about a center point (changes)
- Add Matrix3x2.Transformation() (changes: 1, 2)
- Add properties for Rectangle/F size and corner positions (changes)
- Add Resource.FromMemory overloads to load textures from unmanaged memory (changes)
- Add SharpDX.Win32.MessageFilterHook that provides IMessageFilter hook for a particular window HWND handle (changes)
- Add Thread name to TaskUtil.Start (changes)
- Add Up, Down, Left, Right, ForwardRH, ForwardLH, BackwardRH and BackwardLH to Vector3 (changes)
- Added comments. (changes)
- Added GetPickRay method. (changes)
- Added MathUtil.Lerp (changes: 1, 2)
- Added missing commentary to Bool4. (changes)
- Added new methods for random to MathUtil. (changes)
- BREAKING CHANGES: Remove of DrawingPoint/F, DrawingRectangle/F. Rename of DrawingSize/F to Size2/F, and DrawingPoint to Point. DrawingPointF is now Vector2. Constructor of Rectangle/F are taking (X, Y, WIDTH, HEIGHT) instead of (left, top, right, bottom). Add several missing helper methods in Rectangle/F (Intersects, Union) (changes)
- Change GetRandomXXX to NextXXX to match Random class naming. (changes)
- changed MathUtil.Wrap to throw exception if min argument is greater than max to avoid confusion as the correct behavior is not defined (changes)
- Clean up comments in Matrix3x2 (changes: 1, 2)
- Clean up MathUtil (changes)
- cleaned up ToString overloads for Color, Color4 and ColorBGRA structures (changes)
- comment fixes. (changes: 1, 2, 3)
- Comment fixes. (changes)
- Deactivate code Ray.GetPickRay as it is using a non accessible struct (changes)
- Don't call RenderForm.OnUserResized event when cachedSize is empty (changes)
- Enclose MathUtil extension methods by #if NET35Plus (changes)
- Fix a Color3.cs ToString formatting indexes. (changes)
- Fix behavior of MathUtil.Wrap methods for int and floats (changes)
- Fix bug inside Wrap - change to overload. (changes)
- Fix ColorBGRA.SmoothStep() (changes)
- Fix ColorBGRA.SmoothStep() (cherry picked from commit 05f4280a61c01101678f83267501fd3c6f4ab596) (changes)
- Fix comment for Matrix3x2.TranslationVector (changes: 1, 2)
- Fix comments (changes: 1, 2, 3)
- Fix compilation error (changes)
- Fix compilation issues for Net20 target (changes)
- Fix issue #334. Add Matrix3x2.Invert method. (changes: 1, 2)
- Fix issue #357. Fix comments for X/Y/Width/Height (changes: 1, 2)
- Fix issue #380. Add ObjectTracker Tracked/UnTracked events. (changes: 1, 2)
- Fix issue #382. DrawingRectangleF.Contains was not testing correctly (changes)
- Fix issue #420. Fix BinarySerializer to support self-recursive serialization (changes)
- fix Issue 328 - Color3 ToString method bug fixed (changes)
- Fix issue 423. Whenever DataStream.DataPointer was used, we need to use PositionPointer instead. Change all usage inside SharpDX. (changes)
- Fix issue with ID3D10Multithread mapping for WP8/Win8 (changes)
- Fix issue with Matrix.Invert returning Matrix.Zero when determinant was too small (<1e-6) (changes)
- Fix issue with string marshaling on Windows Phone (changes)
- Fix MathUtil.Wrap (changes)
- Fix RenderForm UserResized event from maximized to restored (changes: 1, 2)
- Fix various spellcheck. squash commits from pull request https://github.com/sharpdx/SharpDX/pull/94 (changes)
- Fix Vector4 operator / with Vector4 (changes)
- FIX: DisposeBase now raises Disposing and Disposed events in a thread safer manner. (changes: 1, 2)
- fixed compilation of MathUtil (changes)
- Fixed issue #127 (changes)
- Fixed WinRT build - added missing 'using' directive' (changes: 1, 2)
- fixes (changes)
- Implementation of OrientedBoundingBox struct (changes)
- Issue 379: BoundingFrustum.GetCorners allocation @ fixed (changes)
- Make internal method CppObjectShadow.ToIntPtr public and move it to CppObject.ToCallbackPtr (changes)
- New formula for MathUtil.Lerp (changes: 1, 2)
- NEW: Added support for thread static object tracking (changes: 1, 2)
- NEW: Extended Variant structure to support reading/writing file-times as DateTime objects, and writing string objects. (changes: 1, 2)
- RectangleF methods should accept floats (changes)
- Reduce duplicate code in Rectangle/F (changes)
- Reduce duplicate lerp code and use MathUtil.Lerp() everywhere (changes)
- Reduced code duplication in string formatting for Color3 and extracted text to constant (changes)
- Remove finalizer on DisposeBase and Configuration.EnableReleaseOnFinalizer. This APIs are not safe in a multithreaded application with COM objects (changes)
- removed commented code and improved comments formatting (changes: 1, 2)
- Rename Random.NextTimespan to NextTime (changes: 1, 2)
- Rename SharpDX.Win32.PropertyKey to PropertyBagKey (changes)
- reordered members of Rectangle and RectangleF to meet code conventions (changes)
- Skip processing F10 key when pressed from a RenderForm as it is blocking the rendering (changes)
- Spell check (changes: 1, 2)
- Two simple gauss methods. (changes)
- Update BoundingFrustum.cs (changes: 1, 2)
- Update some internal usage of Dictionary<IntPtr,XXX> to use an IEqualityComparer<IntPtr> in order to avoid boxing/gc (changes)
- Update Source/SharpDX/DrawingRectangleF.cs (changes)
- Utilities.FreeMemory won't release IntPtr.Zero pointer (changes)
SharpGen
- Add more detailed statistics for each API (changes)
- Change NamingRulesManager behavior for abbreviation. Breaking changes for somes enums/struct/class names that were previously not correctly CamelCase (changes)
Tests
- added unit test for MathUtil.Wrap methods (changes)
- fixed some test cases for MathUtilWrapTests (changes)
tkfxc
- Add support for fast compilation when source file and include files are not changed compare to the output file, using the /Ti command line switch to use this feature. (changes: 1, 2)
- Fix issue #429. Add several missing options to tkfxc (changes)
- Imrpoves performance for compiler with /Ti option (CompileOnlyIfNewer). Output dependency file checked when option is set. (changes)
tkmodel
Toolkit
- Added a sample for a simple particle system. (changes)
- Added input support for WPF (changes: 1, 2)
- Added WPF support in Toolkit (work in progress) (changes: 1, 2)
- Allow unloading assets by name. (changes)
- Fix compiling issue on WinRT (changes)
- Fix ContentManager to use Reader from type instead of registered readers (changes)
- Fixed compilation error (changes)
- Improve GC performance by fixing a couple of possible allocation hotspots (changes)
- Make SharpDX.targets work with any 4.5.x framework (changes)
- Refactor IContentReader to use ReaderContentParameters. Allow to load a custom Effect object with the content manager via Content.Load<CustomEffect> (changes)
- Removed unnecessary using directive (changes)
- Restore ContentManager's RootDirectory functionality. (cherry picked from commit e8eb769ddfae1afe16c6ff19367ed08a6a2786cc) (changes)
- Spell check (changes: 1, 2)
Toolkit.Compiler
- Add support for StreamOutput with only a VertexShader and without a GeometryShader (changes)
- Catch all exceptions in Compiler tasks (changes)
- Finish support for Model compiler, tkmodel command line and msbuild task (changes: 1, 2)
- Fix compilation errors (changes)
- Fix Effect compiler error messages and parsing from task (changes)
- Fix error reporting to correct line for included files by patching preprocessor output (changes)
- Fix some issues with 11.1 profile (changes)
- fixed model compilation to create destination subdirectories (changes)
- Fixed texture compilation task to work correctly with subfolders (changes)
- Improve ToolkitFxc msbuild task. Add SharpDX.targets to automatically configure a msbuild project using SharpDX assemblies and compiling HLSL files with ToolkitFxc (changes)
- Make MathUtil static - add random extensions. (changes)
- ModelCompiler Bug Fix (changes: 1, 2)
- Prepare support for dynamic recompilation at runtime for shaders (only available on Desktop) (changes)
- Refactor TkFont by using XNA like XML declaration file and support compilation from Visual Studio. Update toolkit samples to use new ToolkitFont action (changes)
- Remove dependency to System.Linq with Font (changes)
- Simplify MaterialKey (changes)
- Spell check (changes: 1, 2)
- Store Debug/Reflection data when shader compiled in Debug mode to improve experience with Graphics Debugger like NSight (changes)
- Update to latest Assimp.NET. Recompile assimp binaries to use latest FBX support (changes)
- Use Assimp ImportFromFile instead of ImportFromStream to let assimp to be able to look up for mtl files for obj assets (changes)
Toolkit.CompilerTask
- Add Bin\Redist\D3D to PATH variable in order to support D3DCompiler_46.dll automatically (changes)
- Add license/comments (changes)
- Add new project to support msbuild task to compile Toolkit FX files (changes)
- Add support for compiling to a C# file (changes)
- Fix TkFxc Task to compile correctly under WinRT by copying automatically all generated fxo file to AppX folder (this is also working with project dependency). Add support for cs generated file. (changes)
- Fixed message type reporting by msbuild task for parsed messages (changes)
- Handle "Link" from Visual Studio (changes)
- refactored content compilation tasks to remove duplicate code (changes)
- Spell check (changes: 1, 2)
- Try to support output files to be copied with project dependency. Not working yet. (changes)
Toolkit.Game
- Add helper method Game.ToDisposeContent to automatically dispose content created in a LoadContent method (changes)
- Add support for custom Width/Height for DrawingSurface. (changes)
- Add typed GameWindowContextWinForm and update all internal class in game (changes: 1, 2)
- Added few comments to GameWindow (changes)
- Added more events for better notification in GraphicsDevice state changes (changes)
- Added resize support for WPF (changes: 1, 2)
- Added support for low priority rendering to normalize input latency for WPF platform (changes: 1, 2)
- Exclude GameContext with WPF until full support (changes)
- Finish dynamic effect recompilation with EffectCompilerSsystem. Supported on Desktop. (changes)
- Fix compilation errors after renaming (changes)
- Fix for DrawingSurface on Windows Phone 8, better handling of back/dispose of GraphicsDevice (changes)
- Fix for issue #98: more control over SharpDXElement resize behavior (changes)
- Fix issue #329 with SwapChainBackgroundPanel when used with emulator. Fix MetaTunnel.fxo shader (changes: 1, 2)
- Fix issue #345 and #346. Add support for multiple window/control. Add new GameSystem in GameWindowRenderer. Add new sample MultiWindow only for desktop. (changes: 1, 2)
- Fix issue #363. Perform a ClearState before a new BeginDraw to ensure that there is no unstable d3d11 device states. Toolkit samples should work on Nokia handset (changes)
- Fix issue #389, NullPointerException on Game.Exit() (changes)
- Fix issue #395. Avoid LoadContent to be called twice while initializing (changes)
- Fix issue #400. Improve stability of EffectCompilerSystem, by allowing concurrent read/write on dependency/shader files. (changes)
- Fix issue #433. Backbuffer format is now passed from preferred parameters. MSAA setup from preferred is still not implemented for backbuffer. (changes)
- Fix issue for a NullPointerException in EffectCompilerSystem with latest changes (changes)
- Fix issue in GameWindowWindowsPhoneBackgroundXaml with nextRenderTarget variable (changes)
- Fix issue of GraphicsDeviceManager.DeviceCreated called instead of GraphicsDeviceManager.PreparingDeviceSettings when resizing (changes: 1, 2)
- Fix issue with "back to application" on WP8 on hardware (changes)
- Fix issue with DepthBuffer not being created on WP8 (changes)
- Fix issue with DrawingSurfaceBackground and GraphicsDevice.SetRenderTarget not getting the correct viewport for the render target (changes)
- Fix issue with GameSystem ordering in Game class (changes)
- Fix issue with initial directory for game content (changes)
- Fix issue with regression when using multiple window, revert back using standard application window dispatching on desktop (changes)
- Fix regression on Window.AllowUserResizing (changes)
- Fix remaining issue with memory leak in WP8. Not yet entirely perfect, but it is a bit more stable (changes)
- Fix samples to unload dynamic content. Make sure UnloadContent is callable only if LoadContent was called. (changes: 1, 2)
- Fixed issue #358 - SharpDX.Toolkit doesn't detect window-size changes in WinRT (snap, fill, fullscreen). (changes)
- Improve stability of EffectCompilerSystem, by allowing concurrent read/write on dependency/shader files. (changes)
- Improves GraphicsDevice recover on WP8 BackgroundXaml. (changes)
- Plug back WP8 DrawingBackgroungSurface support with new GameContext and internal GameWindow (changes)
- Port back support for WinRT SwapChainBackgroundPanel to new GameContext and internals GamePlatform/GameWindow. (changes)
- Refactor and simplify the design of GameContext. Make it platform dependent but lighter/easier to instantiate, with a single entry point. (changes)
- Refactor code in GameWindowPhoneBackgroundXaml for WP8 (changes)
- Refactor GameWindow for WinRT using CoreWindow/IFrameView (changes)
- Remove IsFullScreen to false on Win8 Metro (changes)
- Separate Game/GameSystem.LoadContent from Initialize, in scenarios where Initialize method is overriden, the base.Initialize should not start to load content until all game systems are initialized (changes)
- Spell check (changes: 1, 2)
- Start refactoring internals of GamePlatform/GameWindow to have a better plugin system and support multiple sub windows system (WPF/Windows Forms on Desktop, DrawingSurface/DrawingSurfaceBackground on WP8, IFrameview/SwapchainBackgroundPanel on WinRT) (changes: 1, 2)
- Start to fix issue of WP8 lost device/back (changes)
- Start to work on desktop refactoring for GameWindow (changes: 1, 2)
Toolkit.Graphics
- Add a check in RenderTarget2D.New in MSAA scenarios and forbid the use of MSAALevel.None (changes)
- Add BasicEffectRenderer to support rendering of models using classic BasicEffect. (changes)
- Add BoundingSphere to mesh. Force AssimpLibrary to use a specific path (default was not working when running from msbuild task). Start to work on ModelRenderer. Add temporary sample test for displaying a model. (changes)
- Add BufferFlags.StreamOut (changes)
- Add comments to GraphicsDevice.GetRenderTargets. Improve efficiency when setting render tagets. (changes)
- Add CppObject.Tag in order to provide fast association between Toolkit instance and Direct3D11 instance. (changes)
- Add Effect.DefaultParameters and EffectDefaultParameters class to handle automatically default parameters for custom effects (World, View, WorldViewProjection, ViewProjection...etc) when using Model.Draw method with a custom effect (on override or per mesh part) (changes)
- Add EffectConstantBuffer.Update method (changes)
- Add EffectPass.UnApply method. Unbind texture input in PrimitiveQuad.DrawQuad(ShaderResourceView). Add Color to PrimitiveQuad. (changes)
- Add GeometricPrimitive Cube, Cylinder, GeoSphere, Plane, Sphere, Teapot and Torus. Add sample Geometrics.Desktop to demonstrate their usage. (changes)
- Add GraphicsDevice.DrawQuad(ShaderResourceView) to draw a quad texture. Add GraphicsDevice.AutoViewportFromRenderTargets, true by default to set automatically viewport when a new rendertarget is set through GraphicsDevice.SetRenderTargets (changes)
- Add GraphicsDevice.GetRenderTargets(...) (changes)
- Add GraphicsDevice.SetStreamOutputTargets and ResetStreamOutputTargets (changes)
- Add Material for ModelData (changes)
- Add Model classes. First implem draft, not yet tested. (changes)
- Add Model.Draw with the possibility to override default Effect (changes)
- Add new TextureCompilerTask, currently a passthrough. Refactor internals of content serialization to check for a version number. Add IContentResolver.Exists() method. (changes)
- Add RasterizerStateCollection.WireFrame and RasterizerStateCollection.WireFrameCullNone (changes)
- Add static property Size to VertexPositionColor, PositionColorTexture, PositionNormalTexture, PositionTexture. (changes: 1, 2)
- Add stock SamplerStates with Mirror mode for UVW (changes)
- Add support for DepthStencilBuffer as ShaderInput (changes: 1, 2)
- Add support for embedded resources. Simplify model loading to match XNA behavior. Add several models to test. Pending issues if a model have wrong relative file name for FBX (changes)
- Add support for IntPtr as a valid DeviceWindowHandle on Windows Desktop when creating a swapchain. (changes)
- Add support for Model.Draw with an effect that doesn't inherit from IEffectMatrices (changes)
- Add support for RectangleF in VertexElement (changes)
- Add support for StreamOutput declarations (changes)
- Add support in Effect for Initial Counters with UAV (changes)
- Add WorldView as a predefined Effect parameter for Model.Draw (changes)
- Added a bool flag in GraphicsDeviceManager to allow setting SharderResource flag for the depth buffer. Fix for isse #110 (changes)
- Added support to specify the fullscreen monitor (changes: 1, 2)
- Allow same bytecode to be reused in different shader types (GeometryShader using the VertexShader as pure stream output shader) (changes)
- Allow to change the format of a Image.PixelBuffer after creation, if format has same byte size (changes)
- Allow to specify the DepthFormat a constructor time with a RenderTargetGraphicsPresenter (changes)
- Changed comments to ModelData instead of EffectData to reflect the code. (changes)
- ContentManager Bug Fix (changes: 1, 2)
- Dispose internal Effect used by SpriteBatch (changes)
- Fix compilation error (with .NET 2.0) (changes)
- Fix instantiation of GeometryShader with StreamOutput on level 10.0 (changes)
- Fix issue #330. A SpriteBatch.Draw method was not taking rotation into account (changes)
- Fix issue #335. Using StructLayout.Explicit with fixed size and field offset was generating a wrong code (seems a bug in JIT), leading to a crash in EffectPass.Apply(). Change Explicit layout to sequential and remove field offset fixed this. (changes)
- Fix issue #344. Support GraphicsDeviceManager.ApplyChanges on Desktop. Improve performance/compliance while switching from/to fullscreen mode on desktop (changes)
- Fix issue #351. Resize Window event was not triggered when GameWindow.AllowUserResizing=true (changes: 1, 2)
- Fix issue #354. Add nuget dependency to Direct2D1 (changes)
- Fix issue #362. One method of SpriteBatch.Draw was not using SpriteEffects parameter (flip horizontal/vertical) (changes: 1, 2)
- Fix issue #364. Provides detailed exception when a shader with a more recent profile is used on the current GraphicsDevice. Fix bug in GraphicsDevice constructor not using requested profiles on desktop. (changes)
- Fix issue #366. NullPointerException was occurring with constant buffer not correctly remapped to internal resource index after parameter reordering. (changes)
- Fix issue #388. Allow to Save Gif image/texture. (changes)
- Fix issue when using GraphicsDeviceManager.IsFullScreen = true and closing application was causing a crash. SwapChain must be revert to non fullscreen before disposing a device. (changes)
- Fix issue while cloning technique description (changes)
- Fix issue with BasicEffect used with an effect that is using Geometry (changes)
- Fix issue with DepthStencilBuffer on WP8. Default to non-typeless if no shader resource are required, as TypeLess (changes)
- Fix issue with Game.Exit on Desktop. Fix model texture loading. Improve sample with translation to center of model. (changes)
- Fix issue with memory trashing in EffectParameter.Get/Set Matrix Array (changes)
- Fix issue with StreamOutputRasterizedStream. (changes)
- Fix issue with TextureCube not correctly initialized (changes)
- Fix issue with wrong slots being assigned in EffectPass (changes)
- Fix model loading. (changes)
- Fix spritebatch GC allocs using Dictionary<IntPtr,...> use Dictionary<ShaderResourceView, ...> instead. Also calculate correct width/height per ShaderResourceView (changes)
- Fix stock HLSL effects after latest recompilation mode added (changes)
- Fixed exception at changing fullscreen state with adapters which don't have any output (for example, like WARP) (changes)
- Fixed fullscreen monitor selection in certain circumstances and added a demo sample (changes: 1, 2)
- Fixed github issue #95 (changes)
- Fixed memory garbage generation in GeometricPrimitive drawing (changes)
- fixed memory garbage generation in PixelFormat.Equals(PixelFormat) method (changes)
- Fixed spelling error in method name (github issue #100) (changes)
- fixing few grammatic errors (changes: 1, 2, 3)
- fixing some grammatic errors (changes: 1, 2, 3)
- Improve release of Disposable objects on WP8. Still a small memory leak somewhere... (changes)
- Improved GamePlatform to work over RDP with Desktop platform, same as for WinRT (changes)
- Make GraphicsAdapter working even if we cannot retrieve the output display modes. (changes)
- Make SpriteFont use specified default character (changes)
- Optimize resource slot bindings by compacting consecutive slots in Effect/EffectPass. (changes)
- Reduced code duplication (changes)
- Remove usage of Direct3D11 Device.GetDeviceRemoveReason internal method (changes)
- Removed garbage generation during SpriteFont.ForEachGlyph calls (changes)
- Removed garbage generation from SpriteBatch.End call (changes)
- Removed GraphicsAdapter.Dispose() (changes: 1, 2)
- Reset shader stages in SpriteBatch (changes)
- Revert "[Toolkit.Graphics] Fix issue with StreamOutputRasterizedStream." (changes)
- Simplify EffectData to allow only a single effect to be stored. Refactor EffectPool to match the new behavior. (changes)
- Some objects created by GraphicsDevice were not being disposed correctly: - GraphicsAdapter -> added call to GraphicsAdapter.Dispose() in GraphicsDevice.Dispose() - GraphicsOutput -> wrapped in ToDipose(output..) - object output1 in GraphicsOutput's initialization code was not being disposed in DirectX11.1 (changes: 1, 2)
- Spell check (changes: 1, 2)
- Try to fix issue #348. Force MaximumAnisotropy to 2 for 9.1 feature level. (changes: 1, 2)
- Unbind texture while drawing with SpriteBatch to avoid warnings (changes)
- Update StockEffects compiled file with latest tkfxc (changes: 1, 2)
- Use PropertyKey/PropertyCollection for all properties (EffectData, ModelData). Make Material definition more generic by using only properties. (changes)
- Use readonly on fields that should not be modified (changes)
- Use SpriteFont.Spacing to advance character glyph, still not sure about the "correct" behavior of this property (changes)
Toolkit.Input
- Added KeyboardInput samples, fixed modifier keys handling (changes)
- Add IEquatable and ==, != operator to KeyboardState, MouseState, PointerPoint (changes)
- added blank Toolkit.Input project to solution (changes)
- added comments for Pointer* classes. (changes)
- Added comments to PointerPlatformDestop class (changes)
- added pointer input sample for WinRT platform (changes)
- added sample pointer input projects for Desktop platform (changes)
- added support for setting mouse position on Desktop platform and fixed the samples (changes)
- Added XML comments and simplified code (changes)
- added xml documentation for SharpDX.Toolkit.Input assembly (changes)
- Change behavior of PointerManager to return position independent window size in the range [0,1] (changes)
- Change behavior of position returned by MouseManager, now in the range [0,1] in order to avoid windows size dependent position. (changes)
- Change PointerInput sample to use Arial10 font and Desktop to use 4.0 framework. (changes)
- Changed GUIDs for SharpDX.sln MouseInput projects to be different from those in Samples solution (changes)
- Deleted unused PointerPointProperties file (changes)
- Fix issue #403. MouseState.WheelDelta is now absolute and compatible with XNA behavior. (changes)
- Fix issue with duplicate entries in pressed keys (changes)
- Fix minor potential issue in MouseManager (changes)
- Fixed comments and variables after class rename (WindowBinder -> MousePlatform) (changes)
- fixed compilation for net20 profile (changes)
- fixed csproj and fixed WinRT xaml integration (changes)
- Fixed duplicate keys on .NET 2.0 platform. (changes)
- Fixed grammar errors in comments (changes)
- Fixed keyboard input on WPF platform (changes: 1, 2)
- Fixed MouseInput samples for SharpDX.sln (changes)
- Fixed MouseInput samples for ToolkitSamples.sln (changes)
- Handle pointer input for Desktop platform (mouse only) (changes)
- Implemented basic touch support for desktop platform (changes)
- Implemented keyboard input support for desktop platforms (changes)
- implemented mouse input for WinRT (changes)
- implemented mouse support for Desktop platform (changes)
- implemented mouse support for WinRT (changes)
- Implemented pointer input events for WinRT platform (changes)
- Implemented WinRT keyboard support (changes)
- Improved initialization logic of MousePlatformWinRT - will throw exception an appropiate control was not provided (changes)
- Input support for WP8 platform (changes)
- made a few methods static (changes)
- Modified samples for PointerInput according to new sample projects structure (changes)
- Refactored pointer input for Desktop platform (changes)
- Refactored pointer input for WinRT platform (changes)
- Renamed WindowBinder* classes to MousePlatform - which describe better their purpose (changes)
- Replace KeyState with ButtonState in MouseState. (changes)
- Replaced Point struct by SharpDX.DrawingPoint (changes)
- Small code improvements (changes)
- Spell check (changes: 1, 2)
- Updated MouseInput sample project GUIDs (changes)
Toolkit.Samples
- Added sample showing usage of a custom shader with SpriteBatch class (changes: 1, 2)
- Change ModelRendering on WP8 to use DrawingSurface instead of DrawingBackgroundSurface (changes)
- Improved mouse input sample to explain the changes in coordinates to be in range [0; 1] (changes)
- Moved KeyboardManager creation from LoadContent to game constructor (changes)
- Removed unneeded shader name specification to avoid confusion (changes: 1, 2)
Tools
- Modified SharpGitLog to generate correct changelog for 2.5.0 release (changes)
VisualStudio
- Add a workaround on WP8 to generate a solution with proper Any CPU configuration for WP8, forcing it to use x86 instead of Any CPU by default. (changes)
- Add Folder Content to the solution by default. Change template title (changes)
- Add platform WinRT XAML (changes)
- Add SharpDX VisualStudio package with project templates for the Toolkit (changes)
- Add templates for inputs. Add check/uncheck all (changes)
- Add WP8 platform templates (changes)
- Make Wizard form not resizable (changes)
- Update Wizard to support WinRT (changes)
WIC
- Add SharpDX.WIC.ResultCode from WINCODEC_ERR_.* macros (changes)
- Added TryGetMetadataByName method to the WIC MetadataQueryReader. This method doesn't throw an exception when the requested property is not found or not supported; instead null is returned. (changes: 1, 2)
- Enable SharpDX.WIC.Bitmap.Lock methods for Windows 8 build (changes: 1, 2)
- Fix issue #418. Index out of range when reading a byte[0] from a MetadatqQueryReader (changes)
- FIX: Now also registers the WIC result descriptor provider when the Direct2D1 module is initialized. (changes: 1, 2)
- WIC MetadataQueryWriter now also uses the Variant structure, just like the MetadataQueryReader. Some types - like DateTime - are marshaled differently by Marshal.GetNativeVariantForObject. See http://archive.msdn.microsoft.com/wictools for details (we should actually mimic all the code in it) (changes: 1, 2)
WP8
- Added support for DrawingSurface (changes)
- clean up CreateDeviceResources (changes)
- comment on whats going wrong (changes)
- Fix compilation with latest changes (changes: 1, 2)
- fix issue where i was creating a Defferred Context (changes)
- Fix issue with model loading on WP8. Working on emulator, not yet working on HW (changes)
- Fixed broken build (changes: 1, 2)
- fixing DepthStencil (changes)
- fixing incorrect code (changes)
- fixing up misinterpretations (changes)
- Improved code (changes)
- Remove samples from WP8 solution (changes)
- Sample for IDrawingSurfaceContentProvider (changes)
- Wired up DrawingSurface control (changes)
- Wired up the IDrawingSurfaceContentProvider (changes)
- wiring up base/provider/interop/renderer (changes)
X3DAudio
- Fix issue #370. Add X3DAudio.Calculate with DspSettings. Force DspSettings constructor and rewrite marshaling in order to avoid GC. (changes)
XACT3
- Fix issue #381 and issue #369 (changes)
- Spell check (changes: 1, 2)
XAudio2
- Add XAudio2 errors codes into SharpDX.XAudio2.ResultCode (changes)
- Fix issue #205. Callback setup was broken (changes)
- Fix issue #333. SourceVoice.SubmitSourceBuffer was invalid with xWMA (changes)
- Fix issue #338. Make first param of XAudio2.SetDebugConfiguration non optional (changes)
- Fix issue #384. Add constants to Echo, Reverb, MasteringLimiter and Equalizer (changes)
- Spell check (changes: 1, 2)
XInput
- Add new Controller.GetState method to perform GetState and IsConnected in a same call. Add Controller.UserIndex value (changes)
- Fix issue #368. Vibration.Left/RightMotorSpeed should be declared as ushort (changes)