The Active Network

ActiveWin: DirectX Active Network | Articles | Editorials | Interviews | FAQ's | Forums


DirectX 9 New Features

There are many new and exciting features in all of the DirectX components.

The SDK has added a new member to its core technology called Managed DirectX, a DirectPlay port for the PocketPC, a High Level Shader Language for D3DX, and Windows XP parity on downlevel operating systems for DirectShow and the DirectX audio APIs.

DirectShow also has a new Video Mixing Renderer (VMR9) which uses D3D9 surfaces and always renders video through the 3D pipeline, along with new and exciting samples.

The generic Windows Media Format SDK stub library (wmstub.lib) available in previous beta releases has been removed. DirectShow samples using this stub library have been reverted to the DirectX 8.1 behavior of displaying a warning to obtain the stub separately, and the readme.txt files have also been reverted with information on the process to obtain the stub.

DirectX 9.0 Sample Browser:

This is a new method of access samples, documentation and projects with DirectX 9.0. With the Sample Browser, we’ve removed the lengthy Start Menu hierarchy to execute samples and replaced it with the Sample Browser. From the browser you can execute samples, view documentation, load a sample project in Visual Studio (version 6 or .NET) & access DirectX utilities.
See the "New Features:" section for each of the component for additional information.

DirectX 9 SDK Features:

  • DXDiag automation, to enable MSInfo32 and other clients to get at its info.

  • DirectPlay hot-switchable between retail and debug using SDK control panel.

  • VS.NET compatibility (projects, solutions, etc. )

  • New AppWizards for DMOs (DirectSound/DirectShow) and DMTool (DirectMusic)

  • New Samples - vastly improved DirectShow/Direct3D integration is a note worthy change over DirectX 8.x.

  • Updated AppWizard for VS 7.0

  • Direct3D Shader debugger, integrates with the VS IDE.

  • D3DSpy is a new addition to the DirectX 9.0 SDK and can be used to analyze. Direct3D programs. D3DSpy provides a simple user interface that lets programmers monitor the internal state of the Direct3D runtime, track and step through every call a program makes into Direct3D, examine the contents of textures/models/etc., and see statistical information about how efficiently a program uses the Direct3D API. You’ll find D3DSpy in the bin\DXUtils folder. We need your feedback.

  • New SAMPLES: Shader Workshop interactive shader test environment

  • New to DirectX 9.0 is Managed DirectX. We have enabled access to the DirectX APIs though managed code. Visual Studio .NET developers can now take advantage of the multimedia functionality and hardware acceleration of DirectX. Exposed API include: Direct3D, DirectPlay, DirectInput, DirectSound and support for Audio/Video Playback. By eliminating the COM interop layer we are able to enhance performance over previous typelibs. For example, the performance goal for Managed Direct3D is 98% of core C++ performance. By using managed code we’ve also seen a minimum reduction in code of 10% and upwards of 40% in some cases. Managed code is a great productivity improvement and frees developers from having to deal with memory management tasks. Through the DirectX9 beta cycle you will find a growing set of C# samples and tutorials using the DirectX managed layer and increasingly detailed documentation. As always we are anxiously awaiting your feedback to make this feature work best for you. Have some fun and let us know what you think.

DirectX for Managed DirectX Samples:

  • Full support for all features in Direct3D, D3DX, DirectDraw, DirectPlay, DirectInput, and DirectSound.

  • Support for simple playback of many common audio and video formats.

  • A near 1 for 1 complement of samples when compared with C++.

  • Code reduction: Most common tasks done in DirectX are done with fewer lines of code via Managed Code.

  • Tight integration with .NET - Managed DirectX fully utilizes .NET and it's common types anywhere it can. For example, you can create a Managed Direct3D texture from a .NET Bitmap object via the 'FromBitmap' method.

DirectX Audio (DirectSound® & DirectMusic®)

  • DirectSound low-latency sink: enables DirectMusic to attain significantly lower latency when using audiopaths that play through the software synthesizer and DirectSound. This is of particular interest to sound designers and composers who wish to take advantage of DirectMusic's features but require low latency for quick interactive response. For this release the default latency for DirectMusic is 55 ms; however, on higher-end machines the latency can be set much lower.

  • DirectSound support of 192+ kHz: The maximum frequency of sound buffers has been increased from 100 kHz to 200 kHz, where supported by the operating system (i.e., starting with Windows XP SP1). Note that this new frequency limit is not currently supported by DirectShow.

  • Frequency and effects (DSBCAPS_CTRLFREQUENCY and DSBCAPS_CRTLFX flags) can now be combined on DirectSound buffers.

  • The effects in dsdmo.dll support parameter curves (when hosted outside of DirectSound) without having to call Process() on them repeatedly in very small increments. The effects in dsdmo.dll can also process audio data in
    IEEE_FLOAT format.

  • WAVEFORMATEXTENSIBLE audio formats are fully supported throughout DirectSound. However, they cannot be used in conjunction with DMO effects.

  • DirectMusic waves in wave tracks have variable range values for attenuation and fine tuning, enabling another degree of randomness in playback.

  • DirectMusic streamed waves now have looping enabled. This is effective for the use of larger streamed waves for looped environments and ambiences.

  • DirectMusic clocktime looping is enabled, allowing loops that will not change when the musical tempo is altered. In order to function as expected, segment length should be set in clocktime; every segment track should also be specified to use clocktime in its property page.

  • DirectMusic compression improvement: a function to eliminate the empty space at the start of MP3 compressed wave files in DLS.

  • DirectSound and DirectMusic include all Windows XP and Windows XP SP1 bug fixes.

  • New Audio Effect DMO and DirectMusic Tool wizards. See CD Layout above for more detailed information.

  • DirectMusic Style Library in the Essentials directory. See CD Layout above for more detailed information.

  • DirectMusic Producer: see Dmusprod.txt after installing Producer for new feature information.

Direct3D® New features:

Many new interesting data formats, including:

  • Floating point z buffer formats

  • 16-bit floating point vertex and texture formats

  • 64-bit integer and 32-bit floating point texture formats

  • 10:10:10:2 pixel formats

  • Discardable depth and stencil buffers

  • Light-weight mipmap

  • two-sided stencils

Support for 2D/video/GDI features, including:

  • Support for video hardware acceleration

  • D operations, e.g., stretch, BLT, scissoring

  • GDI interoperability with GetDC method

New 3D rendering features, including

  • Displacement maps

  • Depth biasing

  • Antialiased lines

  • Constant blend factor

  • Separate alpha channel blending

  • Multisampling quality control parameter

  • Tesselation

  • Multi-Element Texture support

  • Multiple render targets

  • Autogenerated mipmaps

  • Spherical TexGen mode


  • Asynchronous notification

  • New vertex stream declarations

  • Multi-head support

  • Cleaned up interfaces to Swap Effects and Presentation Rates

  • Improved monitor refresh rate heuristics

  • Gamma correction

  • Color-converting windowed presentation

  • New vertex and pixel shader models for current and future hardware

  • Pixel shader models 2.0 and 3.0

  • Vertex shader models 2.0 and 3.0

D3DX New features:

  • DirectX 9 introduces a new high level shading language for shader programming. This language provides the ability to more easily write shaders with functions, arbitrary variable names, conditionals, and loops.

  • The shader compiler now supports the following profiles: vs_1_1, vs_2_0, ps_1_1, ps_1_2, ps_1_3, ps_1_4, ps_2_0, ps_2_sw.

  • A shader fragment linker has been added to facilitate the management and generation of shaders, The fragment linker links assembly or high level shading language shader fragments together. i.e. to allow mixing and matching of lighting types, skinning types, etc.

  • The Effect framework has undergone some exciting changes for DirectX9, specifically the addition of the ID3DXEffectCompiler interface. The Effect compiler interface can be used for shader specialization. i.e. marking a global variable as literal for a specific compile of the shader.

  • Added variable sharing between effects. Variables in effects files declared with the keyword "share" will be shared across all effects created with a given effect pool.

  • A new animation subsystem and mesh hierarchy loader are now included.

  • The mesh library now supports arbitrary vertex declarations (single stream only).

  • CloneMesh handles all data type conversions. i.e. FLOAT2 to FLOAT16_2, D3DDECLTYPE_DEC3N...

  • Patch support is included in the mesh library, including Adaptive tessellation.

DirectPlay New features:

  • The DirectPlay application programming interfaces (APIs) are available for the Microsoft Windows® Powered Pocket PC 2002. See DirectPlay for Pocket PC 2002 in the help file for more information.

  • DirectPlay8 Bluetooth Service Provider for Pocket PC 2002 is available for devices using the Microsoft Windows CE Bluetooth stack.

  • The DPN_MSGID_SEND_COMPLETE message structure has new members that allow you to accurately determine the round-trip travel time of individual messages.

  • DirectPlay has a new service provider for network simulation. You can continue to use the dp8simui.exe interface tool or try the new IDP8SimControl methods to test applications under a variety of network conditions.

  • Applications can cancel all messages sent by a particular player using the DPNCANCEL_PLAYER_SENDS flag when calling IDirectPlay8Peer::CancelAsyncOperation(),IDirectPlay8Server::CancelAsyncOperation(), or IDirectPlay8Client::CancelAsyncOperation().

  • Players receive their local player identifier (ID) in the DPN_MSGID_CONNECT_COMPLETE message.

  • Hosts can prevent DirectPlay from servicing enumeration queries by setting the DPNSESSION_NOENUMS flag in the DPN_APPLICATION_DESC structure when calling IDirectPlay8Peer::Host() or IDirectPlay8Server::Host(). Additionally, servicing enumeration queries may be turned off and on with this flag by calling IDirectPlay8Peer::SetApplicationDesc() or IDirectPlay8Server::SetApplicationDesc().

  • Messages sent to a group with no players in it will now return DPNSUCCESS_NOPLAYERSINGROUP instead of DPNERR_GENERIC.

  • Optional packet signing for all DirectPlay8 traffic

  • Improved defense against connection spoofing

  • Added DPNCLOSE_IMMEDIATE flag to Close() for ungraceful immediate shut down

  • Added DPNINITIALIZE_HINT_LANSESSION to Initialize() to provide DirectPlay8 a hint about the underlying session infrastructure

  • Added packet coalescence via DPNSEND_COALESCE flag for Send()/SendTo()

  • Allow application tuning of the DirectPlay8 protocol via DPN_CAPS_EX structure provided to SetCaps() and retrieved from GetCaps()

  • Added the group owner’s context value to the DPNMSG_CREATE_GROUP structure

  • Calls to Host() without the DPNSESSION_NODPNSVR flag set in the DPN_APPLICATION_DESC structure will fail if dpnsvr.exe fails to start and will return DPNERR_DPNSVRNOTAVAILABLE

  • Improved DirectPlay8 protocol behavior for slightly “lossy” links

  • Added new IDirectPlay8NATResolver interface and client side device address components DPNA_KEY_NAT_RESOLVER & DPNA_KEY_NAT_RESOLVER_USER_STRING to further improve NAT support.

  • Added new DPNA_KEY_TRAVERSALMODE device address component to control automated NAT and firewall traversal settings.

  • Added new IDirectPlay8ThreadPool interface for finer control over DirectPlay's threading, include a new DoWork threadless mode.

  • Added DPNGETLOCALHOSTADDRESSES_COMBINED flag for GetLocalHostAddresses() to combine all of the hosts addresses into a single address object. This can be passed to EnumHosts or Connect so that all addresses will be tried simultaneously.

  • Added transparent IPv6 support to the TCP/IP service provider. Applications should require no changes to support either IPv4 or IPv6 as long as they do not assume that the DPNA_KEY_HOSTNAME component is in IPv4 decimal dotted notation (nnn.nnn.nnn.nnn).

Broadcast Driver Architecture New Features:

  • Functional parity for down level systems (pre-Windows XP)

  • Addition of support for DVB-T and DVB-C broadcast standards

DirectShow New features:

  • Video Mixing Renderer Filter 9 (VMR-9). - This new, redistributable rendering filter is similar in concept and design to the VMR that is available for Microsoft Windows XP Home Edition and Windows XP Professional. The VMR-9 is more powerful than the original VMR (now called "VMR-7") because it is fully compatible with the DirectX 9.0 graphics capabilities and it offers improved support for deinterlacing and ProcAmp control (brightness, contrast, hue, and saturation).

  • New deinterlacing support in the DV Video Decoder filter. The DV Decoder filter now supports interlaced output, as well as deinterlaced output. Earlier versions of the decoder always deinterlace the video. With the new version, the interlaced video can be preserved and saved to file, or the video can be deinterlaced by the VMR, for improved rendering quality.

  • New deinterlacing support in DirectX Video Acceleration.

  • AVStream driver development and runtime support on all platforms prior to Windows XP has been improved for close functional parity with Windows XP. A few AVStream and core Kernel Streaming behavioral differences still exist that are documented in the SDK.

  • New encoder application programming interface (API) specification. The Encoder API defines a standard, format-neutral way in which software or hardware encoders can communicate with applications and device drivers. IGetCapabilitiesKey is a new interface that filters can implement in order to enable applications to query for the filter's capabilities.

  • MPEG-2 Sections and Tables Filter. This new filter enables an application to get PSI tables from an MPEG-2 transport stream.

  • Microsoft TV Technologies now supports DVB-T (terrestrial) and DVB-C (cable), in addition to DVB-S (satellite). For more information, see the SDK documentation.

  • The Analog TV Tuner filter now supports adding new channel frequencies via the registry. This feature extends the existing mechanism for adding channel frequency overrides. For more information, see International Analog TV Tuning in the SDK.

  • DirectShow Editing Services (DES) now supports plug-in video resizing filters. For more information, see Providing a Custom Video Resizer in the SDK.

  • The DVD Graph Builder enables applications to use the VMR-9 through the IDvdGraphBuilder::RenderDvdVideoVolume method. The DVD Navigator now supports playback of audio during fast forward; users can now watch a movie at speeds higher than 1x without raising the pitch of the audio track, if the decoder supports this feature. The DVD navigator now provides faster DVD menu navigation.

  • Video renderer no longer displays frame counters on debug builds.

  • SDK Updates

  • Significant enhancements to the GraphEdit utility, including Windows Media Certification (dekeying of non-DRM WM graphs), Filter Favorites menu, improved connect/disconnect from remote graphs, save/restore options, frame stepping, and color coding of connected filters. XGR files are no longer supported by GraphEdit.

  • Sample source code has been improved to enhance security, reliability, and readability. Support for Visual Studio.NET has also been added (VC.NET projects, solutions, etc.)

  • Managed code for audio and video file playback. The Microsoft.DirectX.AudioVideoPlayback managed code namespace provides playback and simple control of audio and video media. For more information, refer to the DirectX documentation for the managed DirectX components.

  • Numerous bug fixes and refinements for SDK samples and tools

  • New Unicode Debug/Release build targets for Visual C++ 6.0 and Visual Studio.NET projects

  • New and revised content in the SDK documentation

  • New ProfileEnum tool (in Bin\DXUtils) lists the Windows Media system profiles that are available for use on your system. This tool is helpful if you are creating Windows Media files (ASF,WMA,WMV) through DirectShow interfaces.

  • The AMCap sample application now supports MPEG-2 program stream input, for example from analog TV Tuners that stream MPEG-2 content. A third-party DirectShow-compatible MPEG-2 decoder is still required to decode the streams.

  • The PlayCapMoniker sample demonstrates an alternate method (AddSourceFilter())because using RenderFile() with monikers is no longer supported.

Information Courtesy & Copyright Microsoft. Information is for educational purposes only. Featured Partners:
646-203 is the most significant Cisco sales expert CSE certification to start the successful career of IT professionals by enhancing the knowledge and skills in Cisco products and Cisco technologies. 646-203 exams are the assessment of networking equipments with absolute solutions aided by Cisco system, having entire configuration and management set up of LAN and wireless LAN and WAN. 70-536 exams are designed for the application of basic advancement of .NET infrastructure to enable the individuals to be excellent application developer. IP communication offers the wide-reaching and competitive environment for the advancement of telecommunication sectors. XK0-002 is introduced as communicative software application for learning and improving the comprehensiveness of technical terms with entire feasible tools. 70-528 exams have main focal point on excellence of web-based client development and .NET structural building with the great opportunity of advancing the career of web developer.


Return To the Main Index


  *   *