Whidbey Managed DirectX
The October SDK release is now available and (if you read ZMan's blog, you already know) it includes the first beta of the Managed DirectX for the 2.0 CLR. I'm extremely interested in your feedback on this, particularly design decisions that were made, what you think should have been done, etc.
Here is the information from our "announcement" internally:
The DirectX® Team is pleased to announce the next release of the DirectX 9.0 SDK Update (October 2005)
The October 2005 update includes the first release of XInput, beta releases of XACT, Managed DirectX for Whidbey, several new samples, as well as the usual slew of bug fixes and documentation updates.
XInput API
This new SDK optional component allows applications to use the Xbox 360 Controller for Windows. Controller input, vibration effects, and voice input/output are supported. Several samples are included that introduce the API and features of the controller.
Microsoft Cross-Platform Audio Creation Tool (XACT Beta)
XACT is an audio design tool and runtime that allows application developers and audio content designers to create vibrant sound in games. Samples are included demonstrating features such as cues, streaming, and auditioning.
10-Foot Experience Updates
The article covering topics related to games on Windows XP Media Center Edition 2005 has been updated to help you make your game more accessible within the Media Center interface. Two new samples, MCELauncher and MediaCenterGame, have been added to illustrate best practices as well.
Graphics Card Capabilities
A chart, in Adobe PDF and Microsoft Excel formats, containing a collection of capabilities exposed by current drivers on a wide range of graphics hardware is now available in the SDK.
Simple2D
This Managed DirectX sample demonstrates several basic 2D techniques including scrolling and sprites using Direct3D.
DxOps Batch Processing Tool
The DxOps tool is a command-line tool that allows you to do common mesh and texture processing using simple scripts.
Managed DirectX for Whidbey (Beta)
This is the first release of Managed DirectX with support for the Common Language Runtime (CLR) 2.0. In addition to addressing issues related to using Managed DirectX with Microsoft Visual Studio 2005, it includes new features that take advantage of CLR 2.0. Support for Direct3D, D3DX, DirectSound, DirectInput, and XInput are included in this release.
There have been no updates to D3DX or PIX for Windows in this release.
MSDN https://msdn.microsoft.com/directx/sdk/
MS Download Center https://www.microsoft.com/downloads/details.aspx?FamilyId=1C8DC451-2DBE-4ECC-8C57-C52EEA50C20A&displaylang=en
Comments
- Anonymous
October 05, 2005
Whats the equivalent of TextureLoader.SaveToStream(ImageFileFormat.Dds, l_tex) in the new SDK?
I want to save a texture to a DDS file using the october SDK with MDX, but I don't see any "save" method...
thx. - Anonymous
October 05, 2005
I have not yet downloaded the new update, does Managed DirectX now support 64bit? Until now i have to build 32bit assemblies to get it to work.
Greets,
Mario - Anonymous
October 05, 2005
Hmm, is there a way to get it working under vs2005 RC1? Its my main developing platform, so downgrading to beta2 is not really an option. Otherwise its no big deal, I'll probably just wait it out until next (final?) release, which hopefully isnt too far behind nov 7 :-) - Anonymous
October 05, 2005
Mario,
From the readme:
http://msdn.microsoft.com/directx/sdk/readmepage/default.aspx
Known Issues with Pre-Release Managed DirectX for Whidbey
...
There is no 64-bit support in Managed DirectX for this release and the 32-bit pre-release Whidbey managed DirectX samples crash on 64-bit Windows. - Anonymous
October 05, 2005
Thanks for all your efforts related to Managed DirectX! Tremendous.
The one dll approach is good, especially if we must redist the entire MDX CAB anyway
GraphicsBuffer approach seems O.K.
Where are the animiation/hierarchy-related classes (AllocateHierarchy, AnimationController, AnimationRootFrame, BoneCombination, Frame, KeyframedAnimationSet, LoadUserData, MeshContainer, MeshData, SkinInformation, etc.)?
Where are the PRT-related classes (PrtEngine, PrtCompressedBuffer, etc.)?
Where are the DirectInput action-related classes (Action/ActionAttributesFlag/ActionFormat/BufferedDataCollection/etc.)? Please do not remove any DirectInput support until something comparable is available. XInput is useful but definitely not equivalent.
Where are the SurfaceLoader, TextureLoader, Mesh.FromFile, etc. classes?
Where are the Microsoft.DirectX.Diagnostics classes?
Please do not spend time trying to trim DirectX functionality or guessing what functions developers will use. Just wrap them all (as was pretty much already done in the previous releases).
Will/can you please (perhaps informally) release work-in-progress, non-redist snapshots of your MDX beta ASAP (just the microsoft.directx.dll compressed down to ~400KB is fine) more frequently than bimonthly ... daily ;) This will allow us to actually compile and test performance, etc. We will provide timely feedback.
You really should run FxCop on the MDX assembly.
When will there be support for 64-bit? What is the main issue here?
When do you plan MDX for .NET 2.0 to be available as an official redist? Hopefully well before February 15th, 2006 ... December release would be good.
Slightly Unrelated:
Does the (eventual) MDX redist really need the XML files? Can't these just be in the SDK? Is the (2MB+) dsetup32.exe approach really necessary? Can the size of the setup (overhead) files be reduced? This increases online download size. Please pay more attention to online distribution of (small) MDX apps. Can Microsoft please host (on their servers) a "Latest D3DX and MDX (only)" setup configuration that end-users could download if they already have 9.0c? While redistribution is not a big deal for CD-ROM based titles, online titles are somewhat different.
Thanks again - Anonymous
October 05, 2005
oh and how can I create directInput device using
new Microsoft.DirectX.DirectInput.Device(Guid)
if you removed the SystemGuid.Keyboard/Mouse ??? - Anonymous
October 05, 2005
Will the 64 bit version available for December? - Anonymous
October 05, 2005
What happened to LightType enum in the .NET 2.0 beta MDX assemblies? It appears the enum type is empty, meaning there is no way to create a point light, spot light, etc.
Tom, am I missing something? - Anonymous
October 05, 2005
In addition to the LightType enum, it appears the MatrixStack class is gone. Is there a replacement? - Anonymous
October 05, 2005
The comment has been removed - Anonymous
October 06, 2005
When I try to paint a triangle in Win64, generates exceptions. I know you mentioned something in the docs about win64 samples will crash , but I wanna know if can paint just a simple triangle in win64 or is this version absolutely incompatible with win64 pls? - Anonymous
October 06, 2005
The comment has been removed - Anonymous
October 06, 2005
Oh btw, I dont like at all the new GraphicsBuffer approach... Simple arrays were much intuitive and fast because GraphicsBuffer implies "copy"... See what I mean with an example:
Old style:
sVERTEX[] l_arrV = new sVERTEX[2];
l_arrV[0].x = 1.0f; //direct value put,optimal
l_arrV[0].y = 2.0f;
l_arrV[1].x = 3.0f;
l_arrV[1].y = 4.0f;
m_d3dDev.DrawIndexedPrimitive(..,..,l_arrV);
New style:
GraphicsBuffer<sVERTEX> l_gb = new GraphicsBuffer<sVERTEX>(2);
sVERTEX l_sV = new sVERTEX();
l_sV.x = 1.0f;
l_sV.y = 2.0f;
l_gb[0] = l_sV; //copyes value, time is spent
l_sV.x = 3.0f;
l_sV.y = 4.0f;
l_gb[1] = l_sV;
m_d3dDev.DrawIndexedPrimitive(..,..,l_gb);
So as you can see, new approach takes more lines, requires to "copy" values from one struct to another and is not better at all. - Anonymous
October 06, 2005
The new generic GraphicsBuffer is nice. But can you please add the possibility to wrap an array without copying the content ?
Something like this.
int[] indices=new int[[]{...}
GraphicsBuffer<int> buffer=new GraphicsBuffer(indices);
I know that I can get an IntPtr of the array with a pinned GCHandle but I fear that it would be too slow. - Anonymous
October 06, 2005
I see all the equality methods have disappeared. I presume this is to prevent very common floating point equality issues. If this is true, can we get these methods back, but with an epsilon comparison? Preferably with an adjustable epsilon value.
ie:
struct Vector3
{
public static float EqualityEpsilon = 0.001;
public static bool Equals(Vector3 lhs, Vector3 rhs)
{
Vector3 difference = lhs - rhs;
return difference.X < EqualityEpsilon && difference.Y < EqualityEpsilon && difference.Z < EqualityEpsilon;
}
// ... rest of Vector 3 here
} - Anonymous
October 06, 2005
Is the EffectInstance struct "damaged"?
WaveFormat.BlackAlign -> WaveFormat.BlockAlign (typo?) - Anonymous
October 06, 2005
I see that some of the Class names in DSound have changed:
Listener3D => now just Listener
Listener3DSettings => now just ListenerSetting
SecondaryBuffer => now simple buffer
Makes sense! But no docu anywhere:-(
Otherwise GREAT JOB! I really like the unification and clean structure.
Does that mean the 3DX library is gone again? - Anonymous
October 06, 2005
The comment has been removed - Anonymous
October 22, 2005
I agree fully with Chris Muench. You're making our company have horrible transitions from our previous code to the newest versions. Our next meeting is discussing the use of OpenGL for our next project. The truth is simple: we like Microsoft, but we can't keep up with them. - Anonymous
May 29, 2009
PingBack from http://paidsurveyshub.info/story.php?title=tom-miller-s-blog-whidbey-managed-directx