Microsoft DirectX 8.1 (C++) |
The only requirement for configuring the viewport parameters for a rendering device is to set the viewport's clipping volume. To do this, you initialize and set clipping values for the clipping volume and for the render-target surface. Viewports are commonly set up to render to the full area of the render-target surface, but this isn't a requirement.
You can use the following settings for the members of the D3DVIEWPORT8 structure to achieve this in C++.
D3DVIEWPORT8 viewData = { 0, 0, width, height, 0.0f, 1.0f };
After setting values in the D3DVIEWPORT8 structure, apply the viewport parameters to the device by calling its IDirect3DDevice8::SetViewport method. The following code example shows what this call might look like.
HRESULT hr; hr = pd3dDevice->SetViewport(&viewData); if(FAILED(hr)) return hr;
If the call succeeds, the viewport parameters are set and will take effect the next time a rendering method is called. To make changes to the viewport parameters, just update the values in the D3DVIEWPORT8 structure and call SetViewport again.
Note The D3DVIEWPORT8 structure members MinZ and MaxZ indicate the depth-ranges into which the scene will be rendered and are not used for clipping. Most applications set these members to 0.0 and 1.0 to enable the system to render to the entire range of depth values in the depth buffer. In some cases, you can achieve special effects by using other depth ranges. For instance, to render a heads-up display in a game, you can set both values to 0.0 to force the system to render objects in a scene in the foreground, or you might set them both to 1.0 to render an object that should always be in the background.