Interface Changes

This article outlines the changes in Microsoft® Direct3D® Retained Mode interfaces throughout their history. It discusses the naming convention of sequentially numbered interfaces and lists interfaces that replace older interfaces. It also lists methods added by new interfaces and by successive versions of interfaces.

This article contains the following sections.

Sequentially Numbered Interfaces and Methods

Component Object Model (COM) systems, such as Direct3D Retained Mode, provide new methods and functionality through the use of new interfaces that are sequentially numbered. For example, the IDirect3DRMFrame3 interface adds methods to those exposed by IDirect3DRMFrame2. IDirect3DRMFrame2 adds methods to the those exposed by IDirect3DRMFrame.

Beginning with DirectX 6.0, new Direct3D Retained Mode interfaces do not inherit from their predecessor interfaces. For example, IDirect3DRMFrame2, which was introduced in DirectX 5.0, inherits directly from IDirect3DRMFrame, but IDirect3DRMFrame3, which was introduced in DirectX 6.0, does not inherit from IDirect3DRMFrame2 or IDirect3DRMFrame. For a diagram showing the relationship between all Direct3D Retained Mode interfaces, see the Interface Hierarchy Chart.

Beginning with DirectX 6.0, new Direct3D Retained Mode interfaces also require the latest version of input parameters, such as pointers to the latest interface objects. The older interfaces remain unchanged, so you will not have to rewrite your existing applications. For example, IDirect3DRMFrame3 provides all of the functionality present in IDirect3DRMFrame2 and IDirect3DRMFrame. IDirect3DRMFrame3::AddChild takes a pointer to an IDirect3DRMFrame3 interface as its parameter while the same method on the older interfaces takes a pointer to the base IDirect3DRMFrame interface as its parameter. For a list of the interfaces introduced in DirectX 6.0, see New and Replaced Interfaces in this article.

The Direct3D Retained Mode library and run time include the earlier, unchanged interfaces for backward compatibility, but this documentation covers only the latest interfaces and methods to decrease redundant material. This article notes the widespread changes. The documentation for the individual interfaces and methods notes more limited changes between versions. Although you could use the older interfaces to create new applications, it is recommended that you use the newer interfaces to take advantage of their increased functionality.

Prior to DirectX 6.0, new Direct3D Retained Mode methods always accepted the base interface object for input parameters. For output parameters, the new methods return the new interface or object. If the parameters for a particular method change, the name of the changed method is numbered sequentially (for example, by appending a "2" to the name), and that method is added to the new interface. For example, IDirect3DRMFrame::AddMoveCallback has two parameters. In order to expand the functionality, a new version of that method that takes an additional parameter is exposed on a new, sequentially numbered interface as IDirect3DRMFrame2::AddMoveCallback2. Beginning with DirectX 6.0, the practice of appending a number to changed method names is no longer necessary because the new interfaces do not inherit from the old interfaces. Therefore, some Direct3D Retained Mode method names that were appended with a "2" in DirectX 5.0 drop the "2" in DirectX 6.0 or later. Specifically, IDirect3DRMFrame3::AddMoveCallback replaces IDirect3DRMFrame2::AddMoveCallback2 and IDirect3DRMMeshBuilder3::GenerateNormals replaces IDirect3DRMMeshBuilder2::GenerateNormals2.

New and Replaced Interfaces

The following list shows the new interfaces introduced in version 6.0 of the Microsoft DirectX® Software Development Kit (SDK). It also lists old interfaces when those interfaces have been replaced by newer interfaces.
Old interface New interface
None IDirect3DRMClippedVisual
None IDirect3DRMAnimationArray
None IDirect3DRMObject2
IDirect3DRM IDirect3DRM3
IDirect3DRM2 IDirect3DRM3
IDirect3DRMAnimation IDirect3DRMAnimation2
IDirect3DRMAnimationSet IDirect3DRMAnimationSet2
IDirect3DRMDevice IDirect3DRMDevice3
IDirect3DRMDevice2 IDirect3DRMDevice3
IDirect3DRMFrame IDirect3DRMFrame3
IDirect3DRMFrame2 IDirect3DRMFrame3
IDirect3DRMMaterial IDirect3DRMMaterial2
IDirect3DRMMeshBuilder IDirect3DRMMeshBuilder3
IDirect3DRMMeshBuilder2 IDirect3DRMMeshBuilder3
IDirect3DRMShadow IDirect3DRMShadow2
IDirect3DRMTexture IDirect3DRMTexture3
IDirect3DRMTexture2 IDirect3DRMTexture3
IDirect3DRMViewport IDirect3DRMViewport2

Added and Changed Methods

The following provides the history of Direct3D Retained Mode by listing the methods and the version in which each method and interface was added or changed. In cases where more than two interface versions exist (such as with IDirect3DRM3, IDirect3DRM2, and IDirect3DRM), all versions except the first are listed to show the incremental functionality between versions. Interfaces that remain unchanged since the inception of Direct3D Retained Mode are not listed. The version of the DirectX SDK in which an interface was introduced is indicated in parentheses beside the interface name.


Top of Page Top of Page
© 2000 Microsoft and/or its suppliers. All rights reserved. Terms of Use.