Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
RasterizerState.Direct3D.cs
Go to the documentation of this file.
1 // Copyright (c) 2014 Silicon Studio Corp. (http://siliconstudio.co.jp)
2 // This file is distributed under GPL v3. See LICENSE.md for details.
3 #if SILICONSTUDIO_PARADOX_GRAPHICS_API_DIRECT3D
4 using System;
5 
6 namespace SiliconStudio.Paradox.Graphics
7 {
8  /// <summary>
9  /// Describes rasterizer state, that determines how to convert vector data (shapes) into raster data (pixels).
10  /// </summary>
11  public partial class RasterizerState
12  {
13  /// <summary>
14  /// Initializes a new instance of the <see cref="RasterizerState"/> class.
15  /// </summary>
16  /// <param name="device">The device.</param>
17  /// <param name="name">The name.</param>
18  /// <param name="rasterizerStateDescription">The rasterizer state description.</param>
19  private RasterizerState(GraphicsDevice device, RasterizerStateDescription rasterizerStateDescription) : base(device)
20  {
21  Description = rasterizerStateDescription;
22 
23  CreateNativeDeviceChild();
24  }
25 
26  /// <inheritdoc/>
27  protected internal override void OnDestroyed()
28  {
29  base.OnDestroyed();
30  DestroyImpl();
31  }
32 
33  /// <inheritdoc/>
34  protected internal override bool OnRecreate()
35  {
36  base.OnRecreate();
37  CreateNativeDeviceChild();
38  return true;
39  }
40 
41  /// <summary>
42  /// Applies this instance to the pipeline stage.
43  /// </summary>
44  /// <param name="device">The device.</param>
45  internal void Apply(GraphicsDevice device)
46  {
47  device.NativeDeviceContext.Rasterizer.State = (SharpDX.Direct3D11.RasterizerState)NativeDeviceChild;
48  }
49 
50  private void CreateNativeDeviceChild()
51  {
52  SharpDX.Direct3D11.RasterizerStateDescription nativeDescription;
53 
54  nativeDescription.CullMode = (SharpDX.Direct3D11.CullMode)Description.CullMode;
55  nativeDescription.FillMode = (SharpDX.Direct3D11.FillMode)Description.FillMode;
56  nativeDescription.IsFrontCounterClockwise = Description.FrontFaceCounterClockwise;
57  nativeDescription.DepthBias = Description.DepthBias;
58  nativeDescription.SlopeScaledDepthBias = Description.SlopeScaleDepthBias;
59  nativeDescription.DepthBiasClamp = Description.DepthBiasClamp;
60  nativeDescription.IsDepthClipEnabled = Description.DepthClipEnable;
61  nativeDescription.IsScissorEnabled = Description.ScissorTestEnable;
62  nativeDescription.IsMultisampleEnabled = Description.MultiSampleAntiAlias;
63  nativeDescription.IsAntialiasedLineEnabled = Description.MultiSampleAntiAliasLine;
64 
65  NativeDeviceChild = new SharpDX.Direct3D11.RasterizerState(NativeDevice, nativeDescription);
66  }
67  }
68 }
69 #endif
CullMode
Indicates triangles facing a particular direction are not drawn.
Definition: CullMode.cs:14