Release Notes (2012-11-20)

General Information

A new version 2.4.1 of SharpDX is available today for download.

This version is a maintenance version, mainly fixing several issues and improving the SharpDX Toolkit.

PrimitiveBatch from DirectXTk has been ported to the Toolkit. Also, there is a new convenient method to draw a full screen quad using GraphicsDevice.DrawQuad. See details about changes in the Toolkit below.

Note about using the Toolkit effect compiler (tkfxc.exe): You can use either the version from:

  • The directory Bin\Net40Release if you have DirectX End-User Runtime June 2010 installed.
  • Or you can use directly Bin\Win8Desktop-net40 which is shipped with D3DCompiler_46.dll
  • Both versions can compiled shaders for all Windows (from Desktop, Windows RT and Windows Phone 8, except if you are using latest D3D11.1 features which are only available using d3dcompiler_46.dll)

As It was explained in a previous post, SharpDX is now accepting code contribution from the community. This release is integrating contributions from early contributors to SharpDX on github!

Concerning the support, I'm focusing my primary support for the core functions of the following API:

  • Direct3D11 (not Effect11 framework), DXGI, D3DCompiler, XAudio2 and Audio part of MediaFoundation.
  • The toolkit, the Toolkit.Graphics and compiler. The Toolkit.Game assembly has a lower priority (for non desktop platforms).

For other API, I strongly encourage the community to participate to fix bugs and/or add improvements, as they have a lower priority support now in SharpDX.

Concerning the forum, my personnal investement to respond to API usage has now a much lower priority, as explained in the "Changes in Support and Community" post.

Also, as indicated on the contact form, I will not respond to any private inquiry about SharpDX bug notice or API usage. Thank you for your understanding.

Changes and bugfixes

Please find below an auto-generated list of all changes and fixes from previous 2.4 version.

Code contributed by SharpDX Community

  • Added missing XAudio interop methods for WP8. (changes, changes)
  • Fix for Incorrect SetPixel and SetVertexShaderConstant (F and I arrays) where count were incorrectly *4 (changes)
  • Fix issue #305.[DX11] Missing functions in Direct3D11.EffectPass (changes, changes)
  • Fixed IDrawingSurfaceBackgroundContentProviderNative.PrepareResources to properly support desiredRenderTargetSize as an in/out var. (changes)
  • Merge branch 'master' into wp8 (changes)
  • Merge pull request #1 from jbriguet/master (changes)
  • Merge remote-tracking branch 'origin/master' (changes)
  • Updated fix for SetVertexShaderConstant (changes)
  • Added ColorConverter & Color4Converter (changes)
  • Added SourceType VideoCaptureGuid and AudioCaptureGuid in SharpDX.MediaFoundation.CaptureDeviceAttributeKeys (changes)
  • Fix mapping in MediaFoundation for various functions by using mf.dll (changes)

Build

  • Remove ProjectTypeGuids on SharpDX project, as it is conflicting when WP8 SDK is not installed. (changes)
  • Update README.markdown for github (changes)

SharpDoc

  • Remove assembly documentation in order to support same namespace declared in different assemblies. Now, namespaces are the top level topic item in the class library reference. (changes)

SharpDX

  • Fix issue #282. Matrix3x2.TransformationPoint was not valid. (changes)
  • Fix issue #283. Add new wrap methods to MathUtil (changes)
  • Fix issue #292. A regression bug was introduced in RenderForm that was preventing anykind of interaction with it. This patch fix a code that went to git by mistake. (changes)

SharpGitLog

Toolkit

  • Add an exception to ContentManager.Load when there is no registered resolvers (changes)

Toolkit.Compiler

  • Add a check when missing a parenthesis, bracket, curly brace in FX file and generate a parsing error. (changes)

Toolkit.Game

  • Add better support for PreferredGraphicsProfile in GraphicsDeviceManager (changes)
  • Add IContentable to allow a GameSystem to Load and Unload content as in the game class. Add Content and GraphicsDevice property directly to accessible to a GameSystem. (changes)
  • Add support Activated, Deactivated and Exiting events for Desktop platform (they are not yet implemented for Windows RT and WP8) (changes)
  • Fix issue #281. Game.IsMouseVisible is now working on Desktop (bis) (changes)
  • Fix issue #281. Game.IsMouseVisible is now working on Desktop. (changes)
  • Fix issue #291. Allows PreferredBackBufferWidth / PreferredBackBufferHeight to be effectively used in non-fullscreen scenario. (changes)
  • Fix issue #309 crash on phone HW devices where the adapter is null because the attached adapter to the device is invalid (changes)
  • Fix issue #309. Allow null value for GraphicsDeviceInformation.Adapter. (changes)
  • Fix issue #310. Private variable in game was not initialized. (changes)

Toolkit.Graphics

  • Add BasicEffect.TextureView to allow ShaderResourceView instead of texture2D. Change BasicEffect.Texture to accept Texture2DBase (changes)
  • Add comments to PrimitiveBatch. Add automatic VertexInputLayout for vertices with known VertexElements. (changes)
  • Add comments to PrimitiveQuad / GraphicsDevice.DrawQuad (changes)
  • Add generic Texture.New method. Add equals/hashcode to TextureDescription (changes)
  • Add GraphicsDevice.Clear method similar to XNA (changes)
  • Add PrimitiveQuad and GraphicsDevice.DrawQuad for fullscreen quad primitive. Modify CustomEFfectContent sample to use the new DrawQuad method. (changes)
  • Add test and TextureInfo comment to SpriteBatch. (changes)
  • Fix access to unordered access view on texture. (changes)
  • Fix bug in GraphicsDevice.SetVertexBuffers. Test that PrimitiveBatch is running fine. (changes)
  • Fix compiling error typo in SpriteBatch (changes)
  • Fix GameWindow.AllowUserResizing (changes)
  • Fix issue #284. Sorting mode was not working on a particular SpriteBatch.Draw method. (changes)
  • Fix issue #286. SpriteBatch was not working with multiple instance. (changes)
  • Fix issue #289. Allows a pass to set a shader stage to null (changes)
  • Fix issue #296. Severe bug in effect that was preventing Effect to work properly with resource to bind. (changes)
  • Fix issue #301. SpriteEffects.FlipXXX modes are now working correctly (changes)
  • Fix issue #304. Add virtual to GameSystem.Initialize and fire events methods (changes)
  • Fix ordering of static/readonly members in SpriteBatch. Remove unused members. (changes)
  • Fix performance weird issue under x64 for SpriteBatch. Should now be on par with x86 (changes)
  • Initialzie the TextureSampler to use the default SamplerSate in BasicEffect in order to avoid invalid error messages when debugging the device (changes)
  • Modify SpriteBatch to allow ShaderResourceView instead of Texture2D, as it is much more versatile. (changes)
  • Move test for CustomEffect.CurrentTechnique to a upper level in SpriteBatch (changes)
  • Port PrimitiveBatch from DirectXTk. Not yet tested. (changes)
  • Remove DeviceCreationFlags.Debug from CustomEffectGame sample (changes)
  • Simplifies SpriteBatch immediate mode using same behavior as in DirectXTk (changes)
  • Update GraphicsDevice.GetOrCreateSharedData<T> to accept "object key" instead of "string key". (changes)

Toolkit.tkfxc

  • Fix issue #287. Add Redist D3DCompiler_46.dll to the build. Update tkfxc to use a dynamic path to load d3dcompiler dll for Win8Desktop-net40 version. (changes)
  • The command line compiler is now not compiling/writing the output if the input is not more recent (changes)

XAudio2

  • Fix issue #299. Add XAudio2 FX Reverb and VolumeMeter that were missing under DirectX11.1 (changes)

Download SharpDX

Stable version 2.4.2

Download Binaries PackageBinaries Package 2.4.2

Download Full PackageFull Package 2.4.2

Download Full PackageNuget Packages

Latest Dev PackageLatest Dev Package (2.5.0)

(Last Changes: May 15 2013 00:23:25)

Note: if you are using the Toolkit, use latest dev Package

Who is Online?

Forum Latest

gigagames's Avatar
By- gigagames
Yesterday 21:54
C# SharpDX -> (Game) Engine? Hello, there are free game/graphic engines for C# that are working wiht SharpDX ?
Telanor's Avatar
By- Telanor
Yesterday 21:13
[RawInput] Updated to 2.5, stopped working No luck with that either. As a test I tried registering the keyboard as well, that event also doesn't fire.
Lain's Avatar
By- Lain
Yesterday 13:45
Implement Filtered Shader Stages in Toolkit? I'm wondering if implementing some sort of more 'clever' type of Shader Stages would be a nice addition to Toolkit. The idea is simple - beside current shader stages like 'PixelShaderStage' implement 'FilteredPixelShaderStage', that would store references...
Wilhelm's Avatar
By- Wilhelm
Yesterday 10:57
[D3D11] EffectDescription missing TechniqueCount (always zero) That fixed it! Thanks for the quick response! Dx11 beginner mistake ;)
dfkeenan's Avatar
By- dfkeenan
Yesterday 02:00
New GeometricPrimitive in the Toolkit Hmmmm, true. Probably worth making the cone separate. I did have code to cater for zero radius so it does not generate end caps. But I didn't really cater for it correctly on the sides. I will have another look at it.
Lain's Avatar
By- Lain
Yesterday 00:53
[Toolkit][DX11] Using materials and effects I started to write some sort of material/effect system for my game, then realized that Toolkit provides some sort of Effect/material framework with properties. So I'm wondering how i could use that. What im trying to do is creating a system, where i can...
xoofx's Avatar
By- xoofx
18 May 2013 12:02
[XFile] Load mesh from X file Please prefix your topic with the general API - Direct3D9 and not a sub-part of it. XFile is generated automatically in Direct3D9 but is not supported.
xoofx's Avatar
By- xoofx
17 May 2013 23:38
Direct 2D 1.1 Books and Resources? Unfortunately, there is no serious book about Direct2D. Probably the best place to start is from MSDN. There are also lots of samples in Windows 7 SDK and Windows 8 SDK. There is a Pluralsight course on "Direct2D Fundamentals", but don't know much...
xoofx's Avatar
By- xoofx
17 May 2013 23:26
SharpDX in Javascript project under WinRT and WindowsPhone 8 You can't expose directly SharpDX classes to WinRT. Only WinRT components are accessible from Javascript, so you need to develop a WinRT component that will encapsulate SharpDX. WinRT components are mainly intended for coarse grained level API unlike...
Powered By nZambi!