Microsoft released the [February 2010 DirectX SDK](http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=2c7da5fb-ffbb-4af6-8c66-651cbd28ca15) last week, and so we on the SlimDX team now present you with the [February 2010 SlimDX SDK](http://slimdx.org/download_feb10.php).
There aren’t many major changes in the DirectX SDK this time around– PIX has gained some improvements, including better support for dealing with D3D11, and XNAMath got a few bug fixes, but most other changes are relatively minor. However, the SlimDX SDK includes some interesting changes (a full summary can be found in our [release notes](http://slimdx.org/latestdocs/Default.aspx?topic=SlimDX+Software+Development+Kit%2fWhat%27s+Changed+in+the+February+2010+SDK)).
##### Ownership and Disposal
We made some modifications to certain interfaces to help clarify the ownership/disposal semantics of those interfaces under typical usage scenarios. In particular, we changed the ownership rules for `GetBackBuffer` so that users must call `Dispose` on the returned object themselves, and we changed how surfaces are constructed from swap chains (using the static `FromSwapChain` method on the `Surface` interface). These changes were made to alleviate some issues caused by unclear ownership semantics, leading users to not know when it was appropriate to `Dispose` of an interface, and in some cases making it impossible to correctly clean up a resource.
##### New Subsystems
August’s SDK release included DirectWrite wrappers, but they were severely lacking. We’ve implemented significantly more of the DirectWrite interface for this month’s release, although by our estimate we’re still missing about half of the subsystem.
We’ve also added wrappers for the XAPO API.
##### Decreased Subsystem Interdependence
D3D11 shares a few interfaces (and constants) with D3D10, so in the previous SlimDX release one would need to reference both namespaces to effectively utilize D3D11 functionality in some cases (involving, for example, the `ShaderBytecode` class). For February, we’ve split those shared interfaces into 10 and 11 versions, so this should no longer be necessary.
##### Revamped Sample Framework
Finally, as I have discussed previously, we had plans to rewrite the sample framework and the associated sample set. There were many problems with the previous sample framework, mostly centering on its similarity to XNA (which caused many users to interpret it as a reusable “game” framework and try to use it for real applications). It isn’t our intention to be providing that kind of a framework in SlimDX, so the new sample framework is significantly more bare-bones. We have removed most of the old samples from the distribution, replacing them with more narrowly-focused samples illustrating some specific basic concepts that we receive a lot of questions about — specifically, dealing with losing the device and resizing the window in D3D9 (illustrated by the framework itself) and in setting up depth and alpha blend states in D3D10 (illustrated by the SimpleMesh10 sample).
Unfortunately we didn’t have the time to complete everything we would have liked to have done with the new sample framework for this release, but we’ll be continuing to add samples of increased complexity in future releases.
Tags: slimdx
It’s too bad that there isn’t a future for the existing sample framework. It was nicely put together and I got a lot of use out of it as a starting point.