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)

Release Notes (2014-05-10)

General Information

A new version 2.6.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 new features and several issues fixed.

Among the list of new features and fixes in this release, It contains most notably:

  • Distribution model is now embracing nuget to ease the installation of SharpDX across all .NET platforms. We are no longer releasing an installer, as nuget provides a much smoother integration into VisualStudio and your projects, making a SharpDX package a breeze to install.
  • Samples are now released separately on a new github repository SharpDX-Samples and they are using new nuget packages, check-it out!
  • Add support for Windows Phone 8.1 Developer Preview. Note that SharpDX is only supporting Windows Phone Store 8.1 Apps and not WP81 Silverlight Apps, as the [DllImport] is only working on AppStore platform but not for Silverlight. You will still be able to develop on WP81 SL using SharpDX WP8 binaries
  • Add support for Audio in the Toolkit via the new assembly SharpDX.Toolkit.Audio - for Desktop, WinRT and WP8 (Thanks to dfkeenan for this contribution)
  • Add support for DirectManipulation and DirectComposition (Thanks to Zachary Northrup for this contribution)
  • Add support for Direct3D11.2
  • Several issues fixed, see below the detail changelog for details.

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.5.0 version.

Build

  • Add comments about the SharpDXForcePlatform (changes)
  • Add InternalVisible for DirectComposition/DirectManipulation #320 (changes)
  • Add SharpDX Resharper shared settings (changes)
  • Added certification tests run from separate cmd file. (changes)
  • Added support for DX11.2 in WinRT apps (changes)
  • Cleanup root directory. Move build files under Build (changes)
  • Configured to use VS2013 msbuild for local rebuild to be able to build correctly Win 8.1 samples. (changes)
  • Fix again build with ftp (changes)
  • Fix build for issue #320 (changes)
  • Fix build with SharpDX.Animation assembly (changes)
  • Fix nuget packages (changes)
  • Fix nuspec for Direct3D11 by removing dependency to D3DCompiler (changes)
  • Fix public key (changes)
  • Fix publish to nightly-builds (changes)
  • Fix sn.exe path for VS2013 (changes)
  • Fixed broken configuration for WinRT (as result of renaming Win8DX11_2 to Win8). (changes)
  • Fixed build context flags for DX11.2 configuration. (changes)
  • Fixed build script according to renamed configurations, removed missing configuration from singned build. (changes)
  • Fixed copying of the Assimp64.dll for Desktop platform during building, issue #159. (changes)
  • Fixed default DX version selection for WinRT platform. (changes)
  • Git update before building (changes)
  • Include D3D11.Effects as part of all desktop builds (changes)
  • Included all sample solutions in SharpDX build definition. (changes)
  • Included nuspec file into SharpDX.Toolkit.Audio project. (changes)
  • Merging SharpDXWP8.sln into SharpDX.sln. We are now back to a single solution for building SharpDX. Hurra! (changes)
  • Modified build file and local rebuild scripts to allow rebuilding of each component separately. (changes)
  • Move files to match nuget packaging (changes)
  • Move SharpDX to next minor verison 2.5.1 (changes: 1, 2)
  • Move timestamp file creation to FtpTimestamp target (changes)
  • Remove Direct2D1 dependency for Toolkit.Graphics for WP8 for nuget (changes)
  • Remove old assemblies used by SharpDoc (changes)
  • Remove settings for prefixing _ for fields (changes)
  • Removed DirectX11.1 Desktop and WinRT configurations. (changes)
  • Removed Win8.1 samples solution from build - need first to sort out the issue with build server. (changes)
  • Renamed Win8DX11_2(Debug|Release) configurations to Win8(Debug|Release). (changes)
  • Reverted local rebuild to use VS2012 environment instead of VS2013 as this breaks WP8 platform build. (changes)
  • Rewrite part of comment about SharpDXForcePlatform (changes)
  • Rewrite sln and project settings to use $(Platform) instead of $(Configuration) (changes)
  • Separate Ftp target (changes)
  • Set SharpDXSdkDir from the directory where SharpDX.targets is stored (changes)
  • Update Readme.md (wip) (changes)
  • Update Resharper settings (changes)
  • Update TeamCity build to support VS2013 and VS2012 (only for WP8) (changes)
  • Updated MSDN documentation. (changes)
  • Use FTP instead of old google code for nightly builds (changes)
  • Work on new nuget for 2.6.0 (changes)

Core

  • Add rawvalue constructors for Half (changes)
  • Added finalizer suppression on all platforms, removed unnecessary check (pull request #192). (changes)
  • Adding Matrix3x3 class. Add Decompose Uniform scaled matrices. (changes)
  • Change and simplify RenderLoop implementation to allow custom loop. (changes)
  • Fixed new render loop to process correctly form closing and switching between render controls. (changes)
  • Make RenderLoop.Control setter and RenderLoop.NextFrame a bit more thread safe (not completely) (changes)
  • Restored ReleaseOnFinalizer functionality (pull request #192). (changes)
  • Simplify implem of MathUtil.NearEqual. Add some tests for testing precisely ULP tests (changes)

D3DCompiler

  • added d3dcompiler.h override, because in the Win 8.1 SDK the needed functions are removed from WinRT builds (changes)
  • Added ShaderProfile to the ShaderBytecode and changed EffectCompiler to use it instead of ShaderVersionReader (changes)
  • Reverted changes to D3D compiler and removed missing Win SDK functions in DX11.2 build (changes)

Direct2D

  • Added constructor to Bitmap to allow instantiation from a WIC.BitmapLock (issue #199). (changes)
  • Added mapping for 3D perspective transform effect. (changes)
  • Added mapping for OpacityMetadata effect. (changes)
  • Breaking change: renamed BitmapSourceEffect to BitmapSource to match the general schema, as all effects are already contained in Effects namespace. (changes)
  • Issue #166: Fixed retrieving D2D effect property name. (changes)
  • Reduced code duplication by refactoring CommandSinkVtbl inheritance chain. (changes)

Direct2D1

  • Documentation for SimplifiedGeometrySinkNative (changes)
  • Fix parameter name (changes)
  • Included mappings for newly added functionality in DX11.2 (issue #203). (changes)

Direct2D1/WIC

  • Fix issue #299. Add explicit methods CopyPixels that accept a byte[] buffer and a stride (changes)

Direct3D11

  • Add GraphicsDevice.SetTargets method with renderTargetCount (changes)
  • Add implem for InfoQueue.GetStorageFilter/GetRetrievalFilter (changes)
  • Add inheritance IEquatable<InputElement> to InputElement (changes)
  • Added HasSignature Property on EffectPassDescription [D3DCompiler] Added LastErrorString property on function linking graph (changes)
  • added support for checking D3D11.2 feature support (changes)
  • Breaking changes of DeviceContext.Map in case MapFlags.DoNotWait is used. Now DeviceContext.Map with MapFlags.DoNotWait will return an empty DataBox is still in used by the GPU. (changes)
  • Fix memory leak in IDrawingSurfaceBackgroundContentProvider (changes)
  • Fixed issue #136 (changes)
  • Fixed 'SetMarker' method mapping for ID3DUserDefinedAnnotation (changes)
  • Improved mappings for D3D11.2 ModuleInstance Bind* methods (changes)
  • improved mappings for DX11.2 interfaces (changes)
  • Improved shader linking classes for Direct3D 11.2 (changes)
  • improvemd DX 11.2 mappings (changes)
  • Make method CommonShaderStage.SetShader public (changes)

Direct3D9

DirectInput

DirectWrite

  • Add LocalFontFileLoader.GetFilePath and GetLastWriteTime methods. Update FontEnumeration sample to describe how to access this for system fonts (changes)
  • Added constructors for Factory1 class. (changes)
  • Fix for github issue #128 - overriden dwrite_1.h to make IDWriteFontFace1::HasKerningPairs pure virtual, to include it in SharpDX API. (changes)

Documentation

  • Removed empty paragraphs from documentation. (changes)

DXGI

  • Add Rational.ToString (changes)
  • Added proper constructors to SwapChain1 and adjusted SwapChainGraphicsPresenter to use them. (changes)
  • Change signature of FormatHelper.SizeInBytes to return an int. Add an exception in case it is == 0 (changes)
  • Fix FormatHelper.SizeInBytes regression, don't throw an exception (changes)
  • Fix issue #244. Remove partial typeless format from FormatHelper.IsTypeLess for formats: R32_Float_X8X24_Typeless/X32_Typeless_G8X24_UInt and R24_UNorm_X8_Typeless/X24_Typeless_G8_UInt (changes)
  • Fix issue #301 Remove obsolete on Adapter.GetOutput* methods (changes)
  • Fixed mapping for DX11.1 ISurfaceImageSourceNative::BeginDraw::surface parameter (aparently was renamed in DX11.2). (changes)
  • Fixed mappings for changed DX11.2 interfaces. (changes)
  • fixed Toolkit compilation on WinRT platform (changes)
  • improved mapping for DirectX 11.2 features (changes)
  • moved structure mapping to correct place (changes)
  • Remaped manually broken interfaces for DX11.2 build (changes)

External

  • Add dependency to YamlDotNet fork from https://github.com/xoofx/YamlDotNet (changes)

General

  • Added more ReSharper settings in solution. (changes)
  • Fixed ReSharper settings to place using import directives consistently across the solution. (changes)

Graphics

  • Breaking changes, move from LeftHanded to RightHanded for all samples and model import to have more compatibility with XNA samples (changes)
  • Fix #260. Force to recreate the full swapchain when going to fullscreen as It seems that DXGI is not updating correctly the refresh rate without. (changes)
  • Fix eol in RasterizerStateCollection (changes)

MediaFoundation

  • Add new dsp interfaces from Wmcodecdsp.h (changes)
  • Add SourceResolver constructor. Add CreateObjectXXX overrides methods. Add CreateObjectFromStream method. (changes)
  • constructor to create MFT from Guid (changes)
  • Fix #377 and restore SourceResolver on WP81 by using mfplat.dll instead of mf.dll (changes)
  • Fix compilation issue on WinRT (changes)
  • Fix complation issues (changes)
  • Fixed certification issue on WP 8.1 platform. (changes)
  • Fixed mapping to allow creation of objects provided by the DXVAFactory class. (changes)
  • map to the correct DLL for MFCreateSinkWriterFromURL (Mfreadwrite.dll) (changes)

Merge

Misc

  • #ifdef-ing out VideoPresenter and VideoPresenterShadow as they only exist on Desktop builds. (changes)
  • * Added CodeComments.xml to DComp and DManip * Whitespace fixes (changes)
  • * Added comments to various DirectManipulation functions * Changed some DManip factory methods to be internal, as they are already wrapped by constructors and helper functions (changes)
  • * Fixed the parsing of certain MSDN docs * Added the ability to look up MSDN doc sub-items by term name (for better parameter, enum item, and field matching) * Added doc comments * Fixed certain setter overload incorrectly being autoconverted to properties (changes)
  • * Sort interface methods into the same ordering that Visual C++ uses (overloaded functions don't get serialized in declaration order) * Added the ability to modify the method offsets from the XML mappings * Turned more properties back into methods (changes)
  • Add defines for GetProcAddress and CloseHandle (changes)
  • Add logo-web (changes)
  • Add overload for MFCopyImage_, so we can use it with Mediabuffer.Lock (changes)
  • Add Property IgnoreUnkownCharacters to SpriteFont for completely skipping glyphs which are not present in the fontmap (changes)
  • Add support for SwapChainPanel's size synchronization (changes)
  • Added [Toolkit.Audio] and desktop example. (changes)
  • Added Advanced Text renderer sample to demo how to apply effects/color on text layouts. (changes)
  • Added basic transform interface extensions for instantiating transform groups. (changes)
  • Added comment about static temporary sample buffer. Locking during the buffer copy and callback. (changes)
  • Added Controller.GetCapabilities() which matches the GetState(out) overload. (changes)
  • Added HasSignature Property on EffectPassDescription Added LastErrorString property on function linking graph (changes)
  • Added int Color constructors (changes)
  • Added largely complete but also untested wrappers for DirectComposition and DirectManipulation. * Made small change to SharpGen that allows overloaded interface methods to work properly * Moved the NativeMessage struct (wraps MSG) and made it public * Small modification to the SharpDX.Animation mappings in order to allow DComp interfaces to work properly (changes)
  • added missing structure to mapping rules (changes)
  • -Added partial class for library reflection -Added constructor to instanciate library reflection from bytecode. (changes)
  • Added Quaternion.RotationLookAt which creates a quaternion from forward and up vectors (changes)
  • Added RectangleF overload for SpriteBatch draw method (changes)
  • Added space efficent Project/Unproject Overloads (changes)
  • Adds CompositionTargetEx to avoid rendering without new RenderingTime (changes)
  • Adds Direct3DUserControl as a cusotm SwapChainPanel (changes)
  • Adds methos stub for changed composition scale (changes)
  • Adds missing CubeRenderer code commonly referenced in some samples (changes)
  • Adds sample files for Windows 8.1 (changes)
  • Adds solution for Windows 8.1 samples (changes)
  • Breaking Change: Seperated Matrix.Billboard into Matrix.BillboardLH & Matrix.BillboardRH (changes)
  • Catches FileNotFoundException in Desinger on Initialize of CubeRenderer (changes)
  • Changed ContentManager Interface to be more extendable (changes)
  • Changes 'BitmapSourceEffect' to 'BitmapSource' and 'bitmapSourceEffect' to 'bitmapSource' (changes)
  • Changes SwapChainPanelTarget to get Width and Height from panel. UpdateForSizeChange is called on panel.SizeChanged instead of Window.Current.CoreWindow.SizeChanged. (changes)
  • Clean up/fix more XML documentation. (changes)
  • Deletes projects using SwapChainPanel as a window background (changes)
  • Demonstrates some of the flexibility available with SwapChainPanel in Windows 8.1 (changes)
  • Exposes Boolean for D3D rendering in DesignMode as named DependencyProperty, to make it switchable. (changes)
  • Fix alignments (changes)
  • Fix dll import for CoCreateInstanceApp if build type is W8CORE (otherwise Imaging factory creation fails on WinRT, Windows Phone 8.1) (changes)
  • Fix Quaternion.RotationLookAt (changes)
  • Fix Simplify method (which needs only Simplified sink and not a full GeometrySink), as per: (changes)
  • Fixed another NRE while implicitly converting ShaderSignature (changes)
  • fixed issue #86 (changes)
  • Fixed merge conflict. (changes: 1, 2)
  • Fixed NullReferenceException while converting (changes)
  • Fixed SkinnedEffect matrix read back and VertexElement.BlendWeights semantic name (changes)
  • Fixed ternary operator (changes)
  • Fixes double byte character GetCharABCWidthFloat returns null (changes)
  • Forgot to invert the condition in the last commit (changes)
  • FormatMessageW to use localization library path in WinRT build (changes)
  • Geometric Primitives now support PatchLists (changes)
  • GeometricPrimitive now supports an all PrimitiveTypes (changes)
  • If count exceeds SoundStream data range, only read to data range end. Issue #312 (changes)
  • Implementation of ClockStateSink, SampleGrabberSinkCallback, SampleGrabberSinkCallback2, and VideoPresenter interfaces. (changes)
  • Initializes ShapeRenderer and CubeRenderer (temporarily removed CubeRenderer because Exception was thrown in desinger) (changes)
  • Invert condition for better readability (changes)
  • Latest MSDN docs (changes)
  • map to the correct DLL for MFCreateSinkWriterFromURL (Mfreadwrite.dll) (changes)
  • media foundation api enhancements (returns instead of out params, enums instead of ints) (changes)
  • Moves D3D initialization to Direct3DUserControl.Loaded-Event to have DependencyPropertys set (changes)
  • OnProcessSample/OnProcessSampleEx callbacks take in an IntPtr to the data buffer, rather than copying the information to a managed byte[]. (changes)
  • Prevent that internal stream Read uses negative count. Issue #312 (changes)
  • Quaternion NaN Angle Fix (changes)
  • Remove duplicate code (changes)
  • Removed unnecessary casts and added conversion in D3DCompiler-Namespace (changes)
  • Removes dirty init from App.xaml.cs and MainPage.xaml.cs, makes MainPage a normal Page and no more SwapChainPanel (changes)
  • Removes Projects not related to SwapChainPanel (changes)
  • Removes projects using SwapChainPanel as a window background (changes)
  • Removes SizeChanged event listening from Direct3DUserControl, as this is done by SwapChainPanelTarget itself. (changes)
  • Renames callback method DisplayProperties_LogicalDpiChanged to DisplayInformation_LogicalDpiChanged (changes)
  • Replaces SwapChainBackgroundPanelTarget with SwapChainPanelTarget (changes)
  • Revert "[Toolkit.Compiler] Add SkipOptimization and PreferFlowControl when compiling shaders in debug mode" (changes)
  • Revert changes on SharpDX.sln.DotSettings (changes)
  • Sets size of MainPage to 1366x768 to match default device size in Blend designer (changes)
  • SourceReader support to open from a URL (also works with local file paths) (changes)
  • Updated documentation (changes)
  • Updating mapping file that was stomped in a merge. (changes)
  • VertexBufferLayout Bug Fix (changes)
  • VoidAction Delegate is redundant with .Net Action Delegate (changes)

Multimedia

  • Removed CharSet.Ansi from WaveFormat* structures as they don't have string members (issue #190). (changes)

Samples

  • Added AdvancedTextRenderingApp sample to SharpDXSamples solution. (changes)
  • Changed references for MultiCube sample to use same .NET version. (changes)
  • Display Frametime at bottom of window. Useful for checking VSync. (changes)
  • Fix for windows 8.1 transparency bug. (changes)
  • Fix issue #248 in Direct3D9 samples. Use ColorBGRA instead of plain Color (changes)
  • Fix issue #307. Add XAML SurfaceImageSource DirectX interop sample (WIP) (changes)
  • Fix missing file (changes)
  • Fixed designer crashes for MiniCubeXaml/Win8.1 (github issue #274). (changes)
  • Fixed expired package certificates for sample projects. Adjusted Win8.1 sample manifest to match new schema. (changes)
  • Fixed issue with Direct3D10/WPFHost sample when user locks computer and logs in back (github issue #193). (changes)
  • Fixed MiniCubeXaml sample for Win8.1. (changes)
  • Fixed samples references to use DX11.2 for WinRT. (changes)
  • Fixed Win8 samples compilation after renaming BitmapSourceEffect to BitmapSource. (changes)
  • Fixed Win8 samples compilation. (changes)
  • Remove samples and move them to new repository https://github.com/sharpdx/SharpDX-Samples (changes)
  • Remove test code and restore original code for sample "XAML SurfaceImageSource..." (#307) (changes)
  • Remove unused file (changes)
  • Remove x86/ARM platform targets as Any CPU is sufficient (#307) (changes)
  • Reorder members in Windows 8.1 samples to match C++ files. Add a readme.. Sample "XAML SurfaceImageSource DirectX interop sample" is completed (changes)
  • Update Win8.1 sample to use SwapChain2 and fix scaling issues (changes)
  • Warn about WP8 samples not robust (changes)

Samples.Direct2D

  • Adjusted OfflineImageProcessingApp sample according to renaming of BitmapSourceEffect to BitmapSource. (changes)

Samples.Win81

  • Fixed sample certificate configuration. (changes)
  • Fixed sample project compilation (missing ShapeRenderer.cs) and deleted unused MiniCube project. (changes)

Samples.WinRT

  • Fixed crashing on exit by pausing rendering when window visibility changes (this affects only SurfaceImageSource targets, issue #207). (changes)
  • Retargeted WinRT 8 samples to WinRT 8.1. (changes)

SharpCli

  • Patch SharpDX pdb files during compilation to use relative path to source file instead of absolute paths in order to facilitate redistribuable pdbs (changes)
  • Remove patch for pdbs as we need to do it at deploy time for nuget (changes)
  • Safe guard if patching url relative is not working (changes)

SharpDX

  • Add custom collection debug view (changes)
  • Add DataPointer.IsEmpty (changes)
  • Add DefaultValue attribute on ComponentBase class (changes)
  • Add Equal(ref other) for vector/quaternion/matrix (changes)
  • Add helper methods on DataPointer to CopyFrom, CopyTo and convert to DataStream/DataBuffer (changes)
  • Add IsZero in vector to quickly check if its (exactly) equal to zero (changes)
  • Add MathUtil.SmoothStep and SmootherStep (changes)
  • Add Rectangle.ToString() method (changes)
  • Add Vector/Scalar component-wise addition and subtraction operators/functions (changes)
  • Added a graphics debugger implementation to capture programmatically VS Graphics Debug logs. It is available only for Desktop or WinRT/Debug platforms. (changes)
  • Added constructor overloads to ObservableDictionary and improved code formatting. (changes)
  • Added converstion operators between Rectangle and RectangleF structures. (changes)
  • Added DX11.2 support in SharpGen (changes)
  • Added 'Infinite' static readonly property to RectangleF structure to represent an infinite rectangle. (changes)
  • Added methods to create skew Matrix3x2 (changes)
  • added new solution and project configurations for DirectX 11.2 (changes)
  • Added observable dictionary and refactored ContentManager to use it as a single way to register a custom IContentReader. (changes)
  • Added Premultiply methods to Color* structs (github issue #302). (changes)
  • BREAKING CHANGES: Rectangle/F Left and Top affect rectangle size (changes)
  • BREAKING CHANGES: Remove obsolete NextDPointF and rename NextDPoint to NextPoint (changes)
  • Change Color converter from/to string to allow #RRGGBBAA colors as used in paint editors or on the web (changes)
  • Change message in ComObject.Dispose for automatic release. Remove in case of release on finalizer is enabled. (changes)
  • Change protected internal ComponentBase.name to private (changes)
  • Changed the default value of Color.Transparent to be 0x00000000 (issue #177). (changes)
  • Changed unmanaged dllimport to Unicode for NativeFile (issue #190). (changes)
  • Changed Win32 functions marshaling to use Unicode charset instead of Auto or Ansi (issue #190). (changes)
  • Changed window management native functions to marshal as Auto instead of Ansi (github issue #185). (changes)
  • Clean up Rectangle and RectangleF (changes)
  • cleaned up mappings and fixed WICRect -> Rectangle mapping (changes)
  • Fix bug so that MathUtil.NextLong can produce the specified max value (changes)
  • Fix compilation issue (changes)
  • Fix compilation issue on net20 target (changes)
  • Fix compilation issue on non desktop platform due to non availability of Browsable attribute (changes)
  • Fix issue #171. Add (Point|Size2|Size2F).Zero|Empty static property (changes)
  • Fix issue #268, invalid behavior of DataStream.ReadByte (changes)
  • Fix issue #268, invalid behavior of DataStream.ReadByte (remove remaining sbyte*) (changes)
  • Fix license date (changes)
  • Fix merge conflict. (changes)
  • Fixed Color to Color3 converstion operator - github issue #154. (changes)
  • Fixed compilation - internal ObfuscationAttribute not visible in SharpDX.XInput, SharpDX.Toolkit.Input and SharpDX.Toolkit.Yaml. (changes)
  • Fixed compilation for WinRT platform, deleted an extension that already exists in WinRT 8.1. (changes)
  • Fixed DLL name for CoCreateInstanceApp for WinRT and WP8 platforms. (changes)
  • Fixed marshalling of 'GetProcAddress' function (issue #204). (changes)
  • Fixed MathUtils.NearEquals for a corner-case (github issue #180). (changes)
  • fixed merge conflict (changes)
  • Fixed quaternion-to-axis formula (issue #328). (changes)
  • Fixed RenderLoop compilation. (changes)
  • Fixed SoundStream.Seek method (github issue #310). (changes)
  • Fixed WP8.1 build to use correct headers for code generation. (changes)
  • Improved code by using more meaningful names for variables. (changes)
  • Improved comments of conversion operators for Point structure. (changes)
  • improved DirectX 11.2 configuration to include DirectX 11.1 (changes)
  • Improved GetHashCode method for math structures (issue #202). (changes)
  • Included DX11.2 configurations in automated build (changes)
  • Make RenderForm resize working when RenderForm is hosted in a HwndHost for WPF. Remove minimum size restriction of 200,200. (changes)
  • Make RenderLoop to process all windows message instead of the main window (changes)
  • Rebuilt MSDN documentation cache (issue #357). (changes)
  • Remove direct usage of MathUtil.ZeroTolerance in favor of MathUtil.IsZero (changes)
  • Remove MathUtil.WithinEpsilon(a,b) in favor of a more accurate MathUtil.NearEqual. Replace all code performing near equal using MathUtil.ZeroTolerance with MathUtil.NearEqual. Add MathUil.IsZero/IsOne and replace all code using it. Move random functions from MathUtil to RandomUtil. (changes)
  • Remove normalization from quaternion billboard functions and always normalize input in RotationLookAt (changes)
  • Remove reference to Serializable. Delete TypeConverter for all types as they are not supported on all platforms (changes)
  • Remove stupid code and comments (Don't recall to have written such a joke code), anyway, delete (changes)
  • Removed 'Empty' static fields from Point structure as it is semantically incorrect. (changes)
  • Removed unused namespaces. (changes)
  • Removed unused struct as it represents the Ansi version, while only Unicode one is used (issue #190). (changes)
  • Removed VSGraphicsDebugger from WinRT platform as it causes issues. (changes)
  • Rename RenderLoop.UseCustomDoEvents to RenderLoop.UseLightweightWindowMessageLoop (changes)
  • Rename VectorXXX.Modulate(..) functions to VectorXXX.Multiply(..). (changes)
  • Reuse stable Matrix3x3 functions to produce quaternions. (changes)
  • Revert RotationLookAt changes from issue 217. Split RotationLookAt into Left/Right handed and add Billboard function for Quaternions (changes: 1, 2)
  • Transform Vector3 with Matrix3x3 (changes)
  • Update msdndoc.zip (changes)
  • Use MathUtil.SmoothStep for all SmoothStep methods (changes)
  • Use RenderLoop custom window message loop instead of Application.DoEvents. Handle correctly filtered message internally by using Application.FilterMessage (changes)
  • Vector divide operators & function for x=float/vector (changes)

SharpDX.MediaFoundation

  • Added Name property and initialization code for MediaAttributeKey for easier debugging (issue #356). (changes)
  • Fixed WinRT and WP8 builds by excluding unsupported classes. (changes)
  • Restored removed classes for WinRT platform. (changes)

SharpDX.WP81

  • Added support for WP8.1 platform as a separate build. (changes)
  • Fixed LoadLibrary function import to pass certification for WP81 platform. (changes)

SharpGen

  • Add diagnostic message to understand why SharpGen is re-running everyday instead of early exit (changes)
  • Allow VS2012, VS2013 to be used to compile standard DirectX June 2010 (changes)
  • Fix binary gccxml removing reference to E:\ folder inside the binary causing an exception if the folder is not present on the computer (changes)
  • Fix issue #234. Error message was not clear (changes)
  • Fix issues with gccxml for VS2013. Add define _MSC_FULL_VER=170000000 in order to avoid inclusion of nosal2 that will invalid all SAL annotations (changes)

SharpPak

  • Fix issue with recursive assembly references when merging. Use latest version of Mono.Linker to fix issue with WPF (changes)
  • Fix issue with static Module initializer by patching Mono.Linker. Update to latest version of Mono.Cecil. (changes)
  • Fix obfuscation attributes when merging assemblies (changes)

Toolit.Graphics

  • Factorize code for fullscreen triangle in PrimitiveQuad (changes)

Toolkit

  • Add IContentReaderFactory to IContentManager to allow dynamic ContentReader association based on type. Allow to load the same asset with different type (like Content.Load<Image> and Content.Load<Texture2D>). Make ContentManager more robust to null arguments. (changes)
  • Fix compilation on Win8/WP8 (changes)
  • Force the content manager to expect a ContentReaderAttribute on the type. No more seek on the original stream. (changes)
  • Simplify SharpDX.targets file (changes)

Toolkit.Audio

  • Added AudioException and added it to a few sports in the AudioManager. (changes)
  • Added missing disposal to AudioManager. (changes)
  • Added nuspec file for SharpDX.Toolkit.Audio assembly (issue #313). (changes)
  • Added required constants to complete port of function "ReverbConvertI3DL2ToNative". (changes)
  • Added SoundEffect.FromFile and example. (changes)
  • Added SoundEffectInstance.IsLooped. (changes)
  • Added ToolkitAudio MSBuild task (issue #314). (changes)
  • Changed device initialization to raise audio exception if no default audio devices exist. (changes)
  • Changed pooling so it now pools source voices per wave type when possible, falls back to pooling per SoundEffect if unable to. As yet does not restrict maximum number of allocated voices. (changes)
  • Changed SoundEffectInstance.IsLooped implementation. (changes)
  • Code cleanup, added XML documentation. (changes)
  • Fix .Net2.0 Compat issues (changes)
  • Fix build (changes)
  • Fix Win8 Build problems (changes)
  • Fixed functionality on DX11.2 platform (certain functions are changed from XAudio v2.7 to v2.8). (changes)
  • Fixed Reverb Crash. Still doesn't work, X3DAudio always calculates reverb level of zero. (changes)
  • Fixed UserFilter Flag issue. And some minor tweeking. (changes)
  • Get it to complie under WP8 (changes)
  • Improved code. (changes)
  • Major refactor for new pooling. (changes)
  • Minor Changes to pooling and disposal. (changes)
  • Minor Refactoring (changes)
  • Ported WaveBankReader form DirectX toolkit. (changes)
  • Quick code clean up. (changes)
  • Refactored audio content loading functionality to use separate content reader classes. (changes)
  • SoundEffect Instances can now be returned to the pool (changes)
  • Started adding Reverb (changes)
  • Started implenting WaveBank (changes)

Toolkit.Compiler

  • Add SkipOptimization and PreferFlowControl when compiling shaders in debug mode (changes)
  • Added functionality to build EffectData from ShaderBytecode (changes)
  • Fix issue #276. Take ceiling for advance instead of round to have better spacing (will slightly increase overall size). Fix offsets for small fonts when rendering "," (changes)

Toolkit.Content

  • Improved error reporting when an asset is not found (issue #181). (changes)
  • Made some ContentManager members protected to allow easier extensibility (issue #325). (changes)

Toolkit.Game

  • Add comments and cleaned up code for Desktop platform classes. (changes)
  • Add context switching support for WP8/DrawingSurface platform. (changes)
  • Add GameContext.UseCustomDoEvents (changes)
  • Add support for setting Window.Title with WPF rendering (changes)
  • Added generic method overloads for IServiceRegistry and its implementation GameServiceRegistry (issue #175). (changes)
  • Added missing event handler unbinding for Desktop/WPF platform. (changes)
  • Added possibility to rebind a running game to a different game context for the Desktop-WinForms platform. (changes)
  • Added support for GameContext switching for Desktop/WPF platform. (changes)
  • Added support for SwapChainPanel in DX11.2. (changes)
  • Added support for switching game context for WP8/BackgroundGrid platform. (changes)
  • Added support for switching GameContext on WinRT/XAML platform. (changes)
  • Added ToDisposeContent helper method to GameSystem. (changes)
  • Added Unload(Type,string) method to ContentManager to match the Load method overloads (issue #324). (changes)
  • Added WPF support for DX11.2 build. (changes)
  • Applied an indirect fix that allows workaround of the issue #179 and changed appropiate samples to use .NET4 instead of 4.5.1. (changes)
  • Changed default present interval from Immediate to One for GameWindowRenderer, as in main game it is One by default (issue #321). (changes)
  • Changed SwitchContext functionality to recreate only the GraphicsPresenter instead of the whole GraphicsDevice. (changes)
  • Changed the default value for Game.IsFixedTimeStep from true to false (github issue #160). (changes)
  • Fix compilation issues. Simplify GameContext class and remove typed method in order to avoid assembly references (like WPF on Desktop when not using it) (changes)
  • Fix DrawInstanced indirect overload (changes)
  • Fix issue #237. Remove redundant code (changes)
  • Fix issue #279. Mouse position was incorrect after switching to fullscreen. Remove call to PointToClient to avoid GC (changes)
  • Fix WPF issue for SharpDXElement to make it focusable (changes)
  • Fixed compilation - removed unused member. (changes)
  • Fixed github bug #235 - WPF SharpDXElement disappears when switching displays. (changes)
  • Fixed high CPU consumption when IsFixedTimestep=true (github issue #265). (changes)
  • Fixed issue #297. (changes)
  • Fixed RenderForm fullscreen behavior when changing AllowUserResizing property (issue #329). (changes)
  • Fixed resize behavior when switching game context for Desktop/WinForms platform. (changes)
  • Fixed unbinding of event handlers from previous control when switching game context in Desktop/WinForms platform. (changes)
  • Fixed WPF support for DX11.2 build (issue #371). (changes)
  • Improved FileSystemContentResolver to handle enxtensionless paths with a dot in the name. (changes)
  • Made gameTime field protected to allow access of derived classes outside of Draw and Update methods (issue #366). (changes)
  • Mouse visibility state processed correctly if it was set from Game constructor before creation of game window. (changes)
  • Use the assembly path from the Game class to probe content path (changes)

Toolkit.Games

  • Remove strict dependency to EffectCompiler assembly from Toolkit.Game on Desktop (changes)

Toolkit.Graphics

  • Add Effect.Clone() (changes)
  • Add EffectDefaultParameters.WorldInverseTransposeView parameter (changes)
  • Add event Effect.Initialized useful when using dynamic recompilation of shaders at runtime (changes)
  • Add generic constraint on CreateSharedData method (changes)
  • Add GeometricPrimitive.Plane uv factor for uv remapping (changes)
  • Add GraphicsPerformance.Enabled and GraphicsPerformance.AllowProfiling (changes)
  • Add performance marker through GraphicsDevice.Performance (changes)
  • Add RenderTarget2D implicit cast to Direct3D11.Resource (changes)
  • Add support for automatic ViewInverse in effect (changes)
  • Add support for rendering in WPF through a standard WinForm (changes)
  • Add support for Texture.GetData with DoNotWait new flag. (changes)
  • Add TextureView to wrap raw ShaderResourceView and RenderTargetView and to provide exact size of the 1st mipmap as well as texel size. Update all internals to use TextureView. (changes)
  • added a method in SpriteFont to check if a character is present in the font (changes)
  • Adds support for SwapChainPanel CompositionScale (changes)
  • Adjust swapchain size according to composition scale on SwapChainPanel control (changes)
  • Adjusted SpriteBatch.Draw methods accoding to added Rectangle-to-RectangleF conversions and reordered methods for better readability. (changes)
  • Avoid to resize the backbuffer if the size is not different (changes)
  • Breaking change remove GraphicsDevice.DrawQuad methods and add GraphicsDevice.Quad property instead (changes)
  • Change API for selecting a Texture.TextureView by passing the ViewFormat. Internally we are now using a dictionary to store TextureView (changes)
  • Exposed IndexBuffer & VertexBuffer in Geometric Primitives (changes)
  • Fix calculation for mipmap counts (changes)
  • Fix compilation issue (changes)
  • Fix compilation issues on net20 platform (changes)
  • Fix compilation issues on net20 platform (bis) (changes)
  • Fix compilation on DX11.2 for issue #290 (changes)
  • Fix EffectParameter value arrays where value is not a multiple of sizeof(float4) (changes)
  • Fix issue #140. Matrix with size different from float4x4 (like 4x3, 3x4...etc.) are now correctly set into the constant buffer. (changes)
  • Fix issue #161 with default values in constant buffers causing an AccessViolationException (changes)
  • Fix issue #184 with SpriteFont.MeasureText. This should now compute the correct width including whitespaces (changes)
  • Fix issue #236 with SpriteFont layout (changes)
  • Fix issue #246. Static initializer is removed in GraphicsAdapter (changes)
  • Fix issue #266. Switch to DirectWrite for tkfont and fix issue with offsets/measure when rendering. (changes)
  • Fix issue #276. Add AntiAlias mode to FontDescription. Handle gamma correction. (changes)
  • Fix issue #276. Fix spacing, fix several issues in original DirectXTk implementation. Add SpriteFontApp sample (changes)
  • Fix issue #276. Improve spacing, apply Ceiling on the final value instead of the original advance value (changes)
  • Fix issue #276. Improve tkfont error handling. Disable anti-aliasing when font size is <= 13 to mimic System.Drawing text anti-aliasing behavior (changes)
  • Fix issue #276. Revert to Round only for final offset (changes)
  • Fix issue #359. Release Resource COM object when finished with custom ShaderResourceView (changes)
  • Fix issue for WPF, allowing to use Depth as ShaderResource when creating backbuffer (changes)
  • Fix last commit (changes)
  • Fix regression on backbuffer resizing when using Window.AllowUserResizing = true (changes)
  • Fix SamplerState code to apply anisotropy fix on level_9_1 for for custom sampler state (changes)
  • Fixed compilation after adding additional contructor in Color that accepts ints. (changes)
  • Fixed DepthStencilBuffer creation to support texture arrays (issue #210). (changes)
  • Fixed effect parameters setting for arrays (issue #332). (changes)
  • Fixed GraphicsDevice disposing attached EffectPools. (changes)
  • Fixed issue #167: add flag to allow SpriteFont to dispose unmanaged resources from SpriteFontData. (changes)
  • Fixed memory leak in GeometricPrimitive, issue #158. (changes)
  • Fixed null-ref in implicit cast for TextureView, issue #162. (changes)
  • implemented syncronization for WPF platform to avoid flickering under heavy load (changes)
  • Improvement for issue #266. Make sure all glyphs will snap to the nearest pixel when rendering by rounding advance and line spacing to nearest. Add cleartype rendering (experimental). (changes)
  • Remove assert on DDSHelper when creating an image (changes)
  • Remove EffectPool from GraphicsDevice's list on dispose, fix for issue #165. (changes)
  • Rename MaterialKeysBase to MaterialKeys, and MaterialKeys to TextureKeys. Make them static class. (changes)
  • Restore access to GraphicsResource.GraphicsDevice (changes)
  • Try to fix issue #290. Breaking change, as the FindBestDevices no longer retrieve the list of all available modes. For fullscreen, rely on DXGIOutput.FindClosestMatchingMode instead. (changes)
  • Update SpriteFontApp sample and add ClearType/Scaling sample (changes)
  • VertexBufferLayout from type ignored instance count (changes)

Toolkit.Input

  • Breaking changes of KeyboardState. Now contains one states for Down keys and two events Pressed/Released since last frame. (changes)
  • Change behavior of buttons handling for MouseManager using new ButtonState. Refactor code using ButtonState. (changes)
  • Fix issue on WinRT for released moust buttons (changes)
  • Fixed KeyboardInput for WinRT to work with overlaid XAML IInputElement. For example, the input event wasn't propagated to a focused TextBox. (changes)
  • Improved code comments and reordered members in MouseManager class. (changes)

Toolkit.Samples

  • Added a sample showing switching of context for WinRT/XAML platform. (changes)
  • Added audio sample back to solution (removed accidentally after merge). (changes)
  • Added Audio sample for WinRT platform. (changes)
  • Added Audio sample for WP8 platform, changed AudioGame to use Pointer input instead of Mouse to have same sample code on all platforms. (changes)
  • Added foreground swapchain sample for DX11.2. (changes)
  • Added MiniCube sampel for Win 8.1 SwapChainPanel control. Implemented as separate solution to not break building of other samples on older OS. (changes)
  • Added ShaderLinking sample to demonstrate DX11.2 shader linking functionality. (changes)
  • Added TiledResources sample for DirectX 11.2 (changes)
  • Added WP81 MiniCube sample. (changes)
  • Fix compilation issue on WinRT for MouseInput (changes)
  • Fix compilation issues on desktop (changes)
  • Fixed mouse controls in Audio sample. (changes)
  • Fixed StreamOutParticles sample after changes in pull request #200. (changes)
  • Fixed TiledResources sample after KeyboardState refactoring. (changes)
  • Improved audio sample to demonstrate how to pause, resume and stop sound effects. (changes)
  • Moved Audio sample content and code to a common folder to reuse it for different platform samples. (changes)
  • Removed usage of SharpDXSdkDir environment variable from samples as it breaks continuous integration for WinRT (changes)
  • Retargeted WinRT 8 samples to WinRT 8.1 according to the new WinRT 8.1 support. (changes)
  • Updated temporary certificate for all WinRT samples. (changes)

Toolkit.Yaml

  • Add new SharpDX.Toolkit.Yaml project that allows to load Yaml files directly into .NET object using the ContentManager. (changes)
  • Add support for loading other assets directly from a YAML file (Commit merged from dfkeenan) (changes)
  • Add support for serialization of some default types (Color, Vector4...etc.) in compact YAML form (aka flow). Update to SharpYaml 1.1 (changes)
  • Fix reference to SharpYaml (changes)
  • Switch to SharpYaml from nuget (changes)
  • Update to SharpYaml 1.2 (changes)

Tools.CompilerTask

  • Add TkItem.ParentTaskItem, not yet used but will be used when working on per-option files (changes)

VisualStudio

  • Fix bug in previous commit for #311 (changes)
  • Fix issue #311. Check SharpDXSdkDir environment variable for both user and machine. (changes)
  • Fix LeftHanded to RightHanded (changes)
  • Update SharpDX Toolkit for VisualStudio to support VS2013 (changes)

WIC

  • Fixed creation of a WIC Bitmap from a System.Drawing.Bitmap without a palette (issue #342). (changes)
  • Improved mapping for DdsFrameDecode class. (changes)

XACT3

Hi All!

We have seen recently lots of exciting news coming from for C#, .NET and DirectX. SharpDX is going to try to keep up with all of this and this post is explaining what's on the roadmap.

First of all, as you probably know, there are three major fix/new features for .NET and DirectX that will have most likely an impact for SharpDX:

Until now, we had to use a laborious bridge between .NET and native code in order to get access to DirectX on WP8. With Windows Phone 8.1, we should be able to provide pure AnyCPU assemblies for WP8.1. That will simplify a lot our build system as we had to keep a separate special build for WP8 in order to build SharpDX in x86 and ARM. We are just going to start to work on WP8.1 SharpDX migration.

This was a high request from us, and it is great to see it coming. While the SIMD feature is still in a very alpha stage, only available on an alpha JIT and Windows 8, we will keep an eye on this and as soon as we have a broader set of platforms supported we will try to move to it. Current maths code in SharpDX is not deeply spread all other the code but we will have to study how to integrate SIMD in SharpDX, or to simplify its integration and avoid redundancy with part of our math library.

  • DirectX12

We are still in negotiation with Microsoft to get an early access to start development of a managed wrapper for DX12 that could be available for day-one official release of DirectX12 for developers supposedly later this year.

We have also lots of things done/planned for the upcoming SharpDX 2.6 release:
  • Embrace nuget to deploy SharpDX to all platforms/framework: This is not easy, as SharpDX is coming into different form, depending on several OS platforms (Desktop+DirectX11, Desktop+DirectX11.2, WinRT+DirectX11.2, WP8+DirectX11) * several .NET platforms (2.0/4.0)
  • Audio support in the Toolkit thanks to the contribution of developers on our github repository.
  • Loads of bugfixes, small and new features accessible from latest version (DirectX11.2...etc.)
Also, in order to simplify our build and the maintenance burden, we are planning to abandon support for 2.0/3.5 .NET framework.We don't know yet if it will be effective for 2.6 or later, but if you have any issue with this, please tell us.

All of this is keeping us busy, considering that we have also several other spare time projects to develop, but we will try to keep you updated with SharpDX!

Best regards,
xoofx
Current latest dev package of SharpDX 2.5.1 is integrating the work done by Artiom to provide DirectX11.2 in SharpDX.

You will find also in the Toolkit two samples using some of the features of this new API:
  • ShaderLinking sample explores usage of Shader Linking capabilities to allow combination of small functions/shaders at runtime
  • TiledResources is a direct port of http://tiledresources.codeplex.com/ using Direct3D Tiled Resources
The code was compiled against latest VS2013 RC and Windows8.1 SDK.

Regards,
The SharpDX Team
Hi All,

We have recently closed the SharpDX forum after a bit more than one year of maintenance and support for it. I would like to explain here in more details the reason of this change.

First of all, the forum has received close to 1000 members, with in fact half active users (480 with at least a single post), with a total of 900 topics and 4100 posts. Let's just look at the big cake of posts:

SharpDXForumUsersPosts



As you can see, the spread of the number of posts per users, and repartition is quite exponential. From the top, xoofx and Artiom have been mainly answering questions to other users. For the users in the top 20, they were both askers/answerers though most of the time it was more for asking than answering.

Most of the posters are coming for one to a couple of questions, sometimes it is the same issue we have been responding many times.

The whole forum can be quite considered as a big FAQ. There are plenty of issues spotted, plenty of issues resolved, it is a goldmine for whoever is looking for some help. That's great. But unfortunately, for the two main maintainer - xoofx and Artiom - of this forum, It is way too much work considering that we have: a daytime job, a family (with kids), a life, some coding projects outside SharpDX, bug fixes for SharpDX, preparations for next releases of SharpDX, developement of new/requested features... etc. and of course, the forum to maintain. With only 1 hour to a few hours per day of spare time, we cannot afford to spent an hour on the forum and sometimes, believe us, It can take some time to track down what is presented by someone as a bug but is in fact a wrong usage of the DirectX API.

Since my last post in June where I explained that I would no longer help on the forum/bugfixes, Artiom has been trying to do this job as much as he can, but of course, as It was for my case, this cannot be done by a single person, and at some point, we are completely exhausted (and bored, let's tell the truth), to answer to questions that could have been solved most of the time if the person reporting the issue would have spent more time on google, on msdn documentation and/or digging into the problem more carefully.

Last week, Artiom was not available to help on the forum, and after few days of questions stacking up, I have decided that It was no longer possible for us to maintain it. We would love to work on SharpDX fulltime, being paid to provide better documentation, helping on the forum and building some nice demos showcase with it. But well, this is not the case and we have to deal with it.

I don't know how much they were behind the development and support of XNA, but they were definitely not two people maintaining and building the whole stuff behind the scene!

So we apologize for the inconvenience, but we really need to enjoy also our spare time as you surely try to do in your life. We have spent - and are still spending, a large amount of our spare time to provide a free, open source and viable solution for DirectX for .NET, but as I have said previously, SharpDX is just a backend project. It is used to build higher level framework/engine (like MonoGame, like DeltaEngine, like Paradox...etc.), used by some serious group/company to develop game/demo/tools/multimedia applications, used also by hundreds of wannabe just trying to jump into the DirectX galaxy. 

Just look at Calcifer demo by Still (pouet link), recently released at Evoke 2013 demo party, hey, they are using SharpDX! But SharpDX is a very small contribution in this whole great production, it is mainly their talents and hard work. And these guys have not requested a single help on the forum or by email, they know how to program Direct3D11 and do great things with this API.


Calcifer Demo by Still (using SharpDX)

Yes, SharpDX is mainly a low level API, it is almost a plain DirectX for C#, nothing more, and if you want to master it, prepare yourself for some hard work, not just a little XNA sample grabbed on internet that you can download and press compile/run easily.

But hey, SharpDX forum closed doesn't imply that you won't find any help on Internet!

If you have a question regarding:
  • The usage of the DirectX API, you can try to post your question on gamedev.net DiretX and XNA. You can also find some help on gamedev.stackexchange.com.
  • For anything specific to the SharpDX Toolkit, you will find little help on these forums. The Toolkit is a bonus in SharpDX, a little high level framework on top of Direct3D11 to help prototyping things much easily than using straight Direct3D11. It is open source, so you can dig into the source code yourself. The code is globally well commented and there are lots of samples already available. But if you are really still struggling with the Toolkit, try to use MonoGame instead. It is XNA compatible and has a bigger community. The Toolkit is mainly for people that want to access the full Direct3D11 API on all platforms with lots of helpers. It is not suitable for beginners as It still requires you to understand how things are working under the hood.
  • For any bug regarding SharpDX, please use github SharpDX issue. Keep in mind that there are some level of priority between the API/Platforms:
    • Direct3D11/DXGI/D3DCompiler on Desktop/WinRT/WP8 have the highest priority. The main reason behind this choice is that we are using SharpDX at my work, mainly these APIs, so any bugs in theses API are critical for my work as well.
    • All other APIs have a lower priority.
    • The Toolkit is a special case. It is not part of DirectX but can be considered as a bonus API. We are maintaining it because we are using it for our spare time projects, but if we don't, It won't get much attention. The Toolkit (and SharpDX as a whole in fact), is in the hand of their users.

I really hope that this post has clarify some of the obscure reason of the sudden forum shutdown. We are still committed to bug fixes and new features (Artiom has been working hard to provide DirectX11.2 for next release!) but we would like also to enjoy our spare time!

Thank you for your understanding,
Best Regards,
xoofx

Page 1 of 4