Direct3D Retained-Mode Architecture

All access to Direct3D Retained Mode is through a small set of objects. The following table lists these objects and a brief description of each:

Object Description
Direct3DRMAnimation This object defines how a transformation will be modified, often in reference to a Direct3DRMFrame or Direct3DRMFrame2 object. You can use it to animate the position, orientation, and scaling of Direct3DRMVisual, Direct3DRMLight, and Direct3DRMViewport objects.
Direct3DRMAnimationSet This object allows Direct3DRMAnimation objects to be grouped together.
Direct3DRMDevice This object represents the visual display destination for the renderer.
Direct3DRMDevice2 This object represents the visual display destination for the renderer. Same as the Direct3DRMDevice object but with enhanced control of transparency.
Direct3DRMFace This object represents a single polygon in a mesh.
Direct3DRMFrame This object positions objects within a scene and defines the positions and orientations of visual objects.
Direct3DRMFrame2 Extends the Direct3DRMFrame object by enabling access to the frame axes, bounding boxes, and materials. Also supports ray picking.
Direct3DRMInterpolator This object stores actions and applies the actions to objects with automatic calculation of in-between values.
Direct3DRMLight This object defines one of five types of lights that are used to illuminate the visual objects in a scene.
Direct3DRMMaterial This object defines how a surface reflects light.
Direct3DRMMesh This object consists of a set of polygonal faces. You can use this object to manipulate groups of faces and vertices.
Direct3DRMMeshBuilder This object allows you to work with individual vertices and faces in a mesh.
Direct3DRMMeshBuilder2 This object allows you to work with individual vertices and faces in a mesh. Same as the Direct3DRMMeshBuilder object but with than the Direct3DRMMeshBuilder object.
Direct3DRMObject This object is a base class used by all other Direct3D Retained-Mode objects; it has characteristics that are common to all objects.
Direct3DRMPickedArray This object identifies a visual object that corresponds to a given 2-D point.
Direct3DRMPicked2Array This object identifies a visual object that corresponds to a given ray intersection.
Direct3DRMProgressiveMesh This object consists of a coarse base mesh together with records describing how to incrementally refine the mesh. This allows a generalized level of detail to be set on the mesh as well as progressive download of the mesh from a remote source.
Direct3DRMShadow This object defines a shadow.
Direct3DRMTexture This object is a rectangular array of colored pixels.
Direct3DRMTexture2 This object is a rectangular array of colored pixels. Same as the Direct3DRMTexture object except that resources can be loaded from files other than the currently executing file, textures can be created from images in memory, and you can generate MIP maps.
Direct3DRMUserVisual This object is defined by an application to provide functionality not otherwise available in the system.
Direct3DRMViewport This object defines how the 3-D scene is rendered into a 2-D window.
Direct3DRMVisual This object is anything that can be rendered in a scene. Visual objects need not be visible; for example, a frame can be added as a visual object.
Direct3DRMWrap This object calculates texture coordinates for a face or mesh.

Many objects can be grouped into arrays, called array objects. Array objects make it simpler to apply operations to the entire group. The COM interfaces that allow you to work with array objects contain the GetElement and GetSize methods. These methods retrieve a pointer to an element in the array and the size of the array, respectively. For more information about array interfaces, see IDirect3DRM Array Interfaces.