# C1.Util.DX.Direct3D11.CommonShaderStage-1

## Content

<div class="doc-site-dotnet-api-container">



  <h1 id="C1_Util_DX_Direct3D11_CommonShaderStage_1" data-uid="C1.Util.DX.Direct3D11.CommonShaderStage`1" class="text-break">CommonShaderStage&lt;T&gt; Class
</h1>
  <div class="markdown level0 summary"><p>Common Shader class. Provides a common set of methods for a Shader Stage.
TODO: check if usage of abstract is not introducing an unacceptable overhead...</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
    <div class="level1"><a class="xref" href="C1.Util.DX.DisposeBase.html">DisposeBase</a></div>
    <div class="level2"><a class="xref" href="C1.Util.DX.CppObject.html">CppObject</a></div>
    <div class="level3"><a class="xref" href="C1.Util.DX.Direct3D11.CommonShaderStageBase.html">CommonShaderStageBase</a></div>
    <div class="level4"><span class="xref">CommonShaderStage&lt;T&gt;</span></div>
      <div class="level5"><a class="xref" href="C1.Util.DX.Direct3D11.ComputeShaderStage.html">ComputeShaderStage</a></div>
      <div class="level5"><a class="xref" href="C1.Util.DX.Direct3D11.DomainShaderStage.html">DomainShaderStage</a></div>
      <div class="level5"><a class="xref" href="C1.Util.DX.Direct3D11.GeometryShaderStage.html">GeometryShaderStage</a></div>
      <div class="level5"><a class="xref" href="C1.Util.DX.Direct3D11.HullShaderStage.html">HullShaderStage</a></div>
      <div class="level5"><a class="xref" href="C1.Util.DX.Direct3D11.PixelShaderStage.html">PixelShaderStage</a></div>
      <div class="level5"><a class="xref" href="C1.Util.DX.Direct3D11.VertexShaderStage.html">VertexShaderStage</a></div>
  </div>
  <div class="implements">
    <h5>Implements</h5>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.idisposable">IDisposable</a></div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="C1.Util.DX.Direct3D11.html">C1.Util.DX.Direct3D11</a></h6>
  <h6><strong>Assembly</strong>: C1.WPF.DX.4.6.2.dll</h6>
  <h5 id="C1_Util_DX_Direct3D11_CommonShaderStage_1_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public abstract class CommonShaderStage&lt;T&gt; : CommonShaderStageBase, IDisposable where T : DeviceChild</code></pre>
  </div>
  <div class="codewrapper">
    <pre><code class="lang-vbnet hljs">Public MustInherit Class CommonShaderStage(Of T As DeviceChild)
    Inherits CommonShaderStageBase
    Implements IDisposable</code></pre>
  </div>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td><p>Type of the shader</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="constructors">Constructors
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_Util_DX_Direct3D11_CommonShaderStage_1__ctor_System_IntPtr_" data-uid="C1.Util.DX.Direct3D11.CommonShaderStage`1.#ctor(System.IntPtr)">
          <a class="xref" href="C1.Util.DX.Direct3D11.CommonShaderStage-1.-ctor.html#C1_Util_DX_Direct3D11_CommonShaderStage_1__ctor_System_IntPtr_">CommonShaderStage(IntPtr)</a>
        </td>
        <td class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="C1.Util.DX.Direct3D11.CommonShaderStage-1.html">CommonShaderStage&lt;T&gt;</a> class.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_Util_DX_Direct3D11_CommonShaderStage_1_Get" data-uid="C1.Util.DX.Direct3D11.CommonShaderStage`1.Get">
          <a class="xref" href="C1.Util.DX.Direct3D11.CommonShaderStage-1.Get.html#C1_Util_DX_Direct3D11_CommonShaderStage_1_Get">Get()</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the shader currently assigned to the device.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_Direct3D11_CommonShaderStage_1_Get_C1_Util_DX_Direct3D11_ClassInstance___" data-uid="C1.Util.DX.Direct3D11.CommonShaderStage`1.Get(C1.Util.DX.Direct3D11.ClassInstance[])">
          <a class="xref" href="C1.Util.DX.Direct3D11.CommonShaderStage-1.Get.html#C1_Util_DX_Direct3D11_CommonShaderStage_1_Get_C1_Util_DX_Direct3D11_ClassInstance___">Get(ClassInstance[])</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the shader currently assigned to the device.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_Direct3D11_CommonShaderStage_1_Set__0_" data-uid="C1.Util.DX.Direct3D11.CommonShaderStage`1.Set(`0)">
          <a class="xref" href="C1.Util.DX.Direct3D11.CommonShaderStage-1.Set.html#C1_Util_DX_Direct3D11_CommonShaderStage_1_Set__0_">Set(T)</a>
        </td>
        <td class="markdown level1 summary"><p>Assigns a compute shader to the device.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_Direct3D11_CommonShaderStage_1_Set__0_C1_Util_DX_ComArray_C1_Util_DX_Direct3D11_ClassInstance__" data-uid="C1.Util.DX.Direct3D11.CommonShaderStage`1.Set(`0,C1.Util.DX.ComArray{C1.Util.DX.Direct3D11.ClassInstance})">
          <a class="xref" href="C1.Util.DX.Direct3D11.CommonShaderStage-1.Set.html#C1_Util_DX_Direct3D11_CommonShaderStage_1_Set__0_C1_Util_DX_ComArray_C1_Util_DX_Direct3D11_ClassInstance__">Set(T, ComArray&lt;ClassInstance&gt;)</a>
        </td>
        <td class="markdown level1 summary"><p>Assigns a compute shader to the device.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Util_DX_Direct3D11_CommonShaderStage_1_Set__0_C1_Util_DX_Direct3D11_ClassInstance___" data-uid="C1.Util.DX.Direct3D11.CommonShaderStage`1.Set(`0,C1.Util.DX.Direct3D11.ClassInstance[])">
          <a class="xref" href="C1.Util.DX.Direct3D11.CommonShaderStage-1.Set.html#C1_Util_DX_Direct3D11_CommonShaderStage_1_Set__0_C1_Util_DX_Direct3D11_ClassInstance___">Set(T, ClassInstance[])</a>
        </td>
        <td class="markdown level1 summary"><p>Assigns a compute shader to the device.</p>
</td>
      </tr>
    </tbody>
  </table>

</div>
