Beispiel #1
0
    public TextureMaskRenderer(Device device, ShaderCache shaderCache)
    {
        this.device = device.QueryInterface <Device3>();

        var features = this.device.CheckD3D113Features2();

        var vertexShaderAndBytecode = shaderCache.GetVertexShader <TextureMaskRenderer>("texturing/processing/TextureMask");

        inputLayout  = new InputLayout(device, vertexShaderAndBytecode.Bytecode, MeshBuffers.InputElements);
        vertexShader = vertexShaderAndBytecode;

        var rasterizerStateDesc = new RasterizerStateDescription2()
        {
            FillMode = FillMode.Solid,
            CullMode = CullMode.None,
            IsFrontCounterClockwise = false,
            DepthBias                     = 0,
            SlopeScaledDepthBias          = 0.0f,
            DepthBiasClamp                = 0.0f,
            IsDepthClipEnabled            = true,
            IsScissorEnabled              = false,
            IsMultisampleEnabled          = true,
            IsAntialiasedLineEnabled      = false,
            ConservativeRasterizationMode = ConservativeRasterizationMode.On
        };

        rasterizerState = new RasterizerState2(this.device, rasterizerStateDesc);

        pixelShader = shaderCache.GetPixelShader <TextureMaskRenderer>("texturing/processing/TextureMask");

        var blendStateDesc = BlendStateDescription.Default();

        blendStateDesc.RenderTarget[0].RenderTargetWriteMask = ColorWriteMaskFlags.Alpha;
        blendState = new BlendState(device, blendStateDesc);
    }
Beispiel #2
0
 /// <summary>
 /// Dispose resources
 /// </summary>
 /// <param name="disposing">Free managed resources</param>
 protected virtual void Dispose(bool disposing)
 {
     if (disposing)
     {
         this.rasterizerState?.Dispose();
         this.rasterizerState = null;
     }
 }
Beispiel #3
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="rasterizerState">Rasterizer state</param>
 internal EngineRasterizerState(RasterizerState2 rasterizerState)
 {
     this.rasterizerState = rasterizerState;
 }