{
public class テクスチャ : FDK.Activity
{
+ // 全インスタンス共通項目(static)
+
public static void 共有リソースを作成する( FDK.メディア.デバイスリソース dr )
{
+ var シェーダコンパイルのオプション =
+ SharpDX.D3DCompiler.ShaderFlags.Debug |
+ SharpDX.D3DCompiler.ShaderFlags.SkipOptimization |
+ SharpDX.D3DCompiler.ShaderFlags.EnableStrictness |
+ SharpDX.D3DCompiler.ShaderFlags.PackMatrixColumnMajor;
+
+ #region " 頂点シェーダ "
+ //----------------
+ // シェーダコードをコンパイルする。
+ using( var code = SharpDX.D3DCompiler.ShaderBytecode.Compile(
+ FDK.Properties.Resources.テクスチャ用シェーダコード,
+ "VS", "vs_4_0", シェーダコンパイルのオプション ) )
+ {
+ // 頂点シェーダを生成する。
+ テクスチャ.VertexShader = new SharpDX.Direct3D11.VertexShader( dr.D3DDevice, code );
+ }
+ //----------------
+ #endregion
}
public static void 共有リソースを解放する()
{
+ テクスチャ.VertexShader?.Dispose();
}
+ protected static SharpDX.Direct3D11.VertexShader VertexShader;
+
+ // 個別項目
+
public float 不透明度 { get; set; } = 1f; // 0:透明~1:不透明
public テクスチャ( string 画像ファイルパス )
d3dContext.InputAssembler.PrimitiveTopology = SharpDX.Direct3D.PrimitiveTopology.TriangleStrip;
// 頂点シェーダ
- d3dContext.VertexShader.Set( dr.VertexShader );
+ d3dContext.VertexShader.Set( テクスチャ.VertexShader );
d3dContext.VertexShader.SetConstantBuffers( 0, this.ConstantBuffer );
// ジオメトリシェーダ
public SharpDX.Direct3D11.Texture2D DepthStencil => this.bs_DepthStencil;
public SharpDX.Direct3D11.DepthStencilView DepthStencilView => this.bs_DepthStencilView;
public SharpDX.Direct3D11.DepthStencilState DepthStencilState => this.bs_DepthStencilState;
- public SharpDX.Direct3D11.VertexShader VertexShader => this.bs_VertexShader;
public SharpDX.Direct3D11.PixelShader PixelShader => this.bs_PixelShader;
public SharpDX.Direct3D11.BlendState BlendState => this.bs_BlendState;
public SharpDX.Direct3D11.RasterizerState RasterizerState => this.bs_RasterizerState;
}
//----------------
#endregion
- #region " 頂点シェーダ "
+ #region " ピクセルシェーダ "
//----------------
var シェーダコンパイルのオプション =
SharpDX.D3DCompiler.ShaderFlags.Debug |
SharpDX.D3DCompiler.ShaderFlags.SkipOptimization |
SharpDX.D3DCompiler.ShaderFlags.EnableStrictness |
SharpDX.D3DCompiler.ShaderFlags.PackMatrixColumnMajor;
-
- // コードをコンパイルする。
- using( var code = SharpDX.D3DCompiler.ShaderBytecode.Compile(
- FDK.Properties.Resources.テクスチャ用シェーダコード,
- "VS", "vs_4_0", シェーダコンパイルのオプション ) )
- {
- // 頂点シェーダを作成する。
- this.bs_VertexShader = new SharpDX.Direct3D11.VertexShader( this.bs_D3DDevice, code );
- }
- //----------------
- #endregion
- #region " ピクセルシェーダ "
- //----------------
// コードをコンパイルする。
using( var code = SharpDX.D3DCompiler.ShaderBytecode.Compile(
FDK.Properties.Resources.テクスチャ用シェーダコード,
this.bs_RasterizerState?.Dispose();
this.bs_BlendState?.Dispose();
this.bs_PixelShader?.Dispose();
- this.bs_VertexShader?.Dispose();
this.bs_SwapChain?.Dispose();
this.bs_D3DDevice?.Dispose();
}
private SharpDX.DXGI.SwapChain bs_SwapChain = null;
private SharpDX.Mathematics.Interop.RawViewportF[] bs_ViewPort = new SharpDX.Mathematics.Interop.RawViewportF[ 1 ];
private SharpDX.Direct3D11.DepthStencilState bs_DepthStencilState = null;
- private SharpDX.Direct3D11.VertexShader bs_VertexShader = null;
private SharpDX.Direct3D11.PixelShader bs_PixelShader = null;
private SharpDX.Direct3D11.BlendState bs_BlendState = null;
private SharpDX.Direct3D11.RasterizerState bs_RasterizerState = null;