Microsoft DirectX 8.1 (C++)

IDirect3DDevice8::SetGammaRamp

Sets the gamma correction ramp for the implicit swap chain.

void SetGammaRamp(
  DWORD Flags,
  CONST D3DGAMMARAMP* pRamp
);

Parameters

Flags
[in] Indicates whether correction should be applied. Gamma correction results in a more consistent display, but can incur processing overhead and should not be used frequently. Short-duration effects such as flashing the whole screen red should not be calibrated, but long-duration gamma changes should be calibrated. One of the following values can be set.
D3DSGR_CALIBRATE
If a gamma calibrator is installed, the ramp will be modified before being sent to the device to account for the system and monitor response curves.

If a calibrator is not installed, the ramp will be passed directly to the device.

D3DSGR_NO_CALIBRATION
No gamma correction is applied. The supplied gamma table is transferred directly to the device.
pRamp
[in] Pointer to a D3DGAMMARAMP structure, representing the gamma correction ramp to be set for the implicit swap chain.

Return Values

None.

Remarks

There is always at least one swap chain (the implicit swap chain) for each device, because Microsoft® Direct3D® has one swap chain as a property of the device.

Because the gamma ramp is a property of the swap chain, the gamma ramp may be applied when the swap chain is windowed.

The gamma ramp takes effect immediately. No wait for VSYNC is performed.

If the device does not support gamma ramps in the swap chain's current presentation mode (full-screen or windowed), no error return is given. Applications can check the D3DCAPS2_FULLSCREENGAMMA and D3DCAPS2_CANCALIBRATEGAMMA capability bits in the Caps2 member of the D3DCAPS8 structure to determine the capabilities of the device and whether a calibrator is installed.

Requirements

  Header: Declared in D3d8.h.
  Import Library: Use D3d8.lib.

See Also

IDirect3DSwapChain8, IDirect3DDevice8::GetGammaRamp