MultiSampleType Enumeration
Namespace: Microsoft.Xna.Framework.Graphics
Assembly: Microsoft.Xna.Framework (in microsoft.xna.framework.dll)
| Member name | Description | |
|---|---|---|
| SixteenSamples | Enables 16 levels of full-scene multisampling. | |
| FifteenSamples | Enables 15 levels of full-scene multisampling. | |
| FourteenSamples | Enables 14 levels of full-scene multisampling. | |
| ThirteenSamples | Enables 13 levels of full-scene multisampling. | |
| TwelveSamples | Enables 12 levels of full-scene multisampling. | |
| ElevenSamples | Enables 11 levels of full-scene multisampling. | |
| TenSamples | Enables 10 levels of full-scene multisampling. | |
| NineSamples | Enables 9 levels of full-scene multisampling. | |
| EightSamples | Enables 8 levels of full-scene multisampling. | |
| SevenSamples | Enables 7 levels of full-scene multisampling. | |
| SixSamples | Enables 6 levels of full-scene multisampling. | |
| FiveSamples | Enables 5 levels of full-scene multisampling. | |
| FourSamples | Enables 4 levels of full-scene multisampling. | |
| ThreeSamples | Enables 3 levels of full-scene multisampling. | |
| TwoSamples | Enables 2 levels of full-scene multisampling. | |
| NonMaskable | Enables the multisample quality value. For a quality of 1, the video card determines the best multisampling mode. | |
| None | Specifies no full-scene multisampling, and enables swap effects other than SwapEffect.Discard. |
When multisampling is enabled, all subsamples of a pixel are updated in one pass. However, when subsamples are used for other effects that involve multiple rendering passes, the application can specify that only some of them be affected by a given rendering pass. This latter approach enables simulation of motion blur, depth-of-field focus effects, reflection blur, and other effects.
In addition to enabling full-scene multisampling when a Reset occurs, there are render states that turn various multisampling aspects on and off at fine-grained levels. For more information, see RenderState.
Multisampling is valid only on a swap chain that is created or reset with SwapEffect.Discard.
The multisampling antialiasing value can be set with the parameters or sub-parameters in the following methods.
| Module | Parameters | Sub-parameters |
|---|---|---|
| CheckDeviceMultiSampleType | multiSampleType, qualityLevels | None |
| GraphicsDevice | presentationParameters | MultiSampleType, MultiSampleQuality |
| Reset | presentationParameters | MultiSampleType, MultiSampleQuality |
Use the PreparingDeviceSettings event to set MultiSampleType after calling CheckDeviceMultiSampleType:
void graphics_PreparingDeviceSettings(object sender, PreparingDeviceSettingsEventArgs e)
{
// Xbox 360 and most PCs support FourSamples/0 (4x) and TwoSamples/0 (2x)
// antialiasing.
#if XBOX
e.GraphicsDeviceInformation.PresentationParameters.MultiSampleQuality = 0;
e.GraphicsDeviceInformation.PresentationParameters.MultiSampleType =
MultiSampleType.FourSamples;
return;
#endif
int quality = 0;
GraphicsAdapter adapter = e.GraphicsDeviceInformation.Adapter;
SurfaceFormat format = adapter.CurrentDisplayMode.Format;
// Check for 4xAA
if (adapter.CheckDeviceMultiSampleType(DeviceType.Hardware, format,
false, MultiSampleType.FourSamples, out quality))
{
// even if a greater quality is returned, we only want quality 0
e.GraphicsDeviceInformation.PresentationParameters.MultiSampleQuality = 0;
e.GraphicsDeviceInformation.PresentationParameters.MultiSampleType =
MultiSampleType.FourSamples;
}
// Check for 2xAA
else if (adapter.CheckDeviceMultiSampleType(DeviceType.Hardware, format,
false, MultiSampleType.TwoSamples, out quality))
{
// even if a greater quality is returned, we only want quality 0
e.GraphicsDeviceInformation.PresentationParameters.MultiSampleQuality = 0;
e.GraphicsDeviceInformation.PresentationParameters.MultiSampleType =
MultiSampleType.TwoSamples;
}
return;
}