Share via


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