public D3D12_DEPTH_STENCIL_DESC(BOOL depthEnable, D3D12_DEPTH_WRITE_MASK depthWriteMask, D3D12_COMPARISON_FUNC depthFunc, BOOL stencilEnable, [NativeTypeName("UINT8")] byte stencilReadMask, [NativeTypeName("UINT8")] byte stencilWriteMask, D3D12_STENCIL_OP frontStencilFailOp, D3D12_STENCIL_OP frontStencilDepthFailOp, D3D12_STENCIL_OP frontStencilPassOp, D3D12_COMPARISON_FUNC frontStencilFunc, D3D12_STENCIL_OP backStencilFailOp, D3D12_STENCIL_OP backStencilDepthFailOp, D3D12_STENCIL_OP backStencilPassOp, D3D12_COMPARISON_FUNC backStencilFunc)
 {
     DepthEnable                  = depthEnable;
     DepthWriteMask               = depthWriteMask;
     DepthFunc                    = depthFunc;
     StencilEnable                = stencilEnable;
     StencilReadMask              = stencilReadMask;
     StencilWriteMask             = stencilWriteMask;
     FrontFace.StencilFailOp      = frontStencilFailOp;
     FrontFace.StencilDepthFailOp = frontStencilDepthFailOp;
     FrontFace.StencilPassOp      = frontStencilPassOp;
     FrontFace.StencilFunc        = frontStencilFunc;
     BackFace.StencilFailOp       = backStencilFailOp;
     BackFace.StencilDepthFailOp  = backStencilDepthFailOp;
     BackFace.StencilPassOp       = backStencilPassOp;
     BackFace.StencilFunc         = backStencilFunc;
 }
 public void Init(uint shaderRegister, D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, float mipLODBias = 0, uint maxAnisotropy = 16, D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, float minLOD = 0, float maxLOD = D3D12_FLOAT32_MAX, D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, uint registerSpace = 0)
 {
     Init(out this, shaderRegister, filter, addressU, addressV, addressW, mipLODBias, maxAnisotropy, comparisonFunc, borderColor, minLOD, maxLOD, shaderVisibility, registerSpace);
 }
 public static void Init([NativeTypeName("D3D12_STATIC_SAMPLER_DESC &")] out D3D12_STATIC_SAMPLER_DESC samplerDesc, uint shaderRegister, D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, float mipLODBias = 0, uint maxAnisotropy = 16, D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, float minLOD = 0, float maxLOD = D3D12_FLOAT32_MAX, D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, uint registerSpace = 0)
 {
     samplerDesc.ShaderRegister   = shaderRegister;
     samplerDesc.Filter           = filter;
     samplerDesc.AddressU         = addressU;
     samplerDesc.AddressV         = addressV;
     samplerDesc.AddressW         = addressW;
     samplerDesc.MipLODBias       = mipLODBias;
     samplerDesc.MaxAnisotropy    = maxAnisotropy;
     samplerDesc.ComparisonFunc   = comparisonFunc;
     samplerDesc.BorderColor      = borderColor;
     samplerDesc.MinLOD           = minLOD;
     samplerDesc.MaxLOD           = maxLOD;
     samplerDesc.ShaderVisibility = shaderVisibility;
     samplerDesc.RegisterSpace    = registerSpace;
 }