D3DPRESENT
Describes the relationship between the adapter refresh rate and the rate at which Present or Present operations are completed. These values also serve as flag values for the PresentationIntervals field of D3DCAPS9.
Constant | Description |
---|---|
|
Use the front buffer as both the source and target surface during rendering. A frame synch is scheduled but the displayed surface does not change. This flag is only available when the application is in fullscreen mode and D3DSWAPEFFECT_FLIPEX has been specified. This flag is available in Direct3D 9Ex only. |
|
A presentation cannot be scheduled by a hal device. If this flag is set in a call to Present, and the hardware is busy processing or waiting for a vertical sync interval, then Present will return D3DERR_WASSTILLDRAWING to indicate that the blit operation is incomplete. |
|
Reserved. |
|
D3DPRESENT_INTERVAL_IMMEDIATE is enforced on this Present call. This flag can only be specified when using D3DSWAPEFFECT_FLIPEX. Windowed and fullscreen presentation behaviors are the same. This is especially useful for media apps that want to discard frames that have been detected as late and present subsequent frames at composition time. An invalid parameter error will be returned if this flag is improperly specified. When multiple consecutive frames with D3DPRESENT_FORCEIMMEDIATEs are queued, only the last frame is displayed, for both windowed and fullscreen presentation. This flag is available in Direct3D 9Ex on Windows 7 or later operating systems. When using D3DSWAPEFFECT_FLIPEX, each frame presented using D3DPRESENT_INTERVAL_IMMEDIATE or D3DPRESENT_INTERVAL_FORCEIMMEDIATE will override the previous frame's present interval. For example, if you queue the following frames using the following swap effects: frame A (D3DPRESENT_INTERVAL_ONE), frame B(D3DPRESENT_INTERVAL_ONE), frame C(D3DPRESENT_INTERVAL_ONE), frame D(D3DPRESENT_INTERVAL_FORCEIMMEDIATE), frame D will override frame C's present interval. The displayed frames per present interval are frame A, frame B, (frame C overridden by) frame D. See Remarks. |
|
This is nearly equivalent to D3DPRESENT_INTERVAL_ONE. See remarks. |
|
The driver will wait for the vertical retrace period (the runtime will "beam follow" to prevent tearing). Present operations will not be affected more frequently than the screen refresh; the runtime will complete at most one Present operation per adapter refresh period. This is equivalent to using D3DSWAPEFFECT_COPYVSYNC in DirectX 8.1. This option is always available for both windowed and full-screen swap chains. See remarks. |
|
The driver will wait for the vertical retrace period. Present operations will not be affected more frequently than every second screen refresh. Check the PresentationIntervals cap (see D3DCAPS9) to see if D3DPRESENT_INTERVAL_TWO is supported by the driver. |
|
The driver will wait for the vertical retrace period. Present operations will not be affected more frequently than every third screen refresh. Check the PresentationIntervals cap (see D3DCAPS9) to see if D3DPRESENT_INTERVAL_THREE is supported by the driver. |
|
The driver will wait for the vertical retrace period. Present operations will not be affected more frequently than every fourth screen refresh. Check the PresentationIntervals member (see D3DCAPS9) to see if D3DPRESENT_INTERVAL_FOUR is supported by the driver. |
|
The runtime updates the window client area immediately and might do so more than once during the adapter refresh period. This is equivalent to using D3DSWAPEFFECT_COPY in DirectX 8. Present operations might be affected immediately. This option is always available for both windowed and full-screen swap chains. See remarks. |
|
The content of the back buffer to be presented is in the linear color space.
|
D3DPRESENT_VIDEO_RESTRICT_TO_MONITOR |
Clips the rendered contents to the monitor/device the adapter is targeting, shows thumbnails for the content in the Flip3D view and taskbar thumbnails on other monitors. This flag is available in Direct3D 9Ex only. See Desktop Window Manager for further details on this feature of Windows Vista. If you are not running in desktop composition mode, the flag gives the same behavior as D3DPRESENTFLAG_DEVICECLIP. Note: This flag should only be used with swap effect D3DSWAPEFFECT_FLIPEX. The use of this flag with other swap effects is being deprecated, and may not work in future versions of Windows. |
|
Updates the overlay position or the colorkey data without causing an actual flip and without changing the duration with which the image is displayed. This flag is available in Direct3D 9Ex only. |
|
Turns off the overlay hardware. This flag is available in Direct3D 9Ex only. |
|
Redraws the colorkey data. This flag is available in Direct3D 9Ex only. |
Remarks
Windowed mode supports D3DPRESENT_INTERVAL_DEFAULT, D3DPRESENT_INTERVAL_IMMEDIATE, and D3DPRESENT_INTERVAL_ONE. D3DPRESENT_INTERVAL_DEFAULT and the D3DPRESENT_INTERVAL_ONE are nearly equivalent (see the information regarding timer resolution below). They perform similarly to COPY_VSYNC in that there is only one present per frame, and they prevent tearing with beam-following. In contrast, D3DPRESENT_INTERVAL_IMMEDIATE will attempt to provide an unlimited presentation rate.
Full-screen mode supports similar usage as windowed mode by supporting D3DPRESENT_INTERVAL_IMMEDIATE regardless of the refresh rate or swap effect. D3DPRESENT_INTERVAL_DEFAULT uses the default system timer resolution whereas the D3DPRESENT_INTERVAL_ONE calls timeBeginPeriod to enhance system timer resolution. This improves the quality of vertical sync, but consumes slightly more processing time. Both parameters attempt to synchronize vertically.
Requirements
Requirement | Value |
---|---|
Header |
|