OSDN Git Service

FDK.メディア.ビットマップ付きテクスチャ クラスを追加。
[strokestylet/CsWin10Desktop3.git] / FDK24 / メディア / テクスチャ.cs
index ec7dc81..813f3dd 100644 (file)
@@ -17,13 +17,19 @@ namespace FDK.メディア
                public SharpDX.Size2F サイズdpx => this.ShaderResourceViewSize;
                public SharpDX.Matrix 等倍スケーリング行列 => SharpDX.Matrix.Scaling( this.サイズdpx.Width, this.サイズdpx.Height, 1f );
 
-               public テクスチャ( string 画像ファイルパス )
+               public テクスチャ( string 画像ファイルパス, SharpDX.Direct3D11.BindFlags bindFlags = SharpDX.Direct3D11.BindFlags.ShaderResource )
                {
+                       this.bindFlags = bindFlags;
+
+                       // ↓どちらかを選択的に指定する。
                        this.画像ファイルパス = 画像ファイルパス;
                        this.ユーザ指定サイズdpx = SharpDX.Size2.Empty;
                }
-               public テクスチャ( SharpDX.Size2 サイズdpx )
+               public テクスチャ( SharpDX.Size2 サイズdpx, SharpDX.Direct3D11.BindFlags bindFlags = SharpDX.Direct3D11.BindFlags.ShaderResource )
                {
+                       this.bindFlags = bindFlags;
+
+                       // ↓どちらかを選択的に指定する。
                        this.画像ファイルパス = null;
                        this.ユーザ指定サイズdpx = サイズdpx;
                }
@@ -51,13 +57,22 @@ namespace FDK.メディア
                                //----------------
                                if( this.画像ファイルパス.Nullでも空でもない() )
                                {
+                                       // (A) 画像ファイルから生成する場合。
                                        this.ShaderResourceView = FDK.Utilities.CreateShaderResourceViewFromFile(
-                                               d3dDevice, FDK.フォルダ.絶対パスに含まれるフォルダ変数を展開して返す( this.画像ファイルパス ), out this.ShaderResourceViewSize, out this.Texture );
+                                               d3dDevice,
+                                               this.bindFlags,
+                                               FDK.フォルダ.絶対パスに含まれるフォルダ変数を展開して返す( this.画像ファイルパス ),
+                                               out this.ShaderResourceViewSize,
+                                               out this.Texture );
                                }
                                else if( this.ユーザ指定サイズdpx != SharpDX.Size2.Empty )
                                {
+                                       // (B) サイズを指定して生成する場合。
                                        this.ShaderResourceView = FDK.Utilities.CreateShaderResourceView(
-                                               d3dDevice, this.ユーザ指定サイズdpx, out this.Texture, target: true );
+                                               d3dDevice,
+                                               this.bindFlags,
+                                               this.ユーザ指定サイズdpx,
+                                               out this.Texture );
 
                                        this.ShaderResourceViewSize = new SharpDX.Size2F( this.ユーザ指定サイズdpx.Width, this.ユーザ指定サイズdpx.Height );
                                }
@@ -162,6 +177,7 @@ namespace FDK.メディア
                        }
                }
 
+               protected SharpDX.Direct3D11.BindFlags bindFlags;
                protected string 画像ファイルパス = null;
                protected SharpDX.Size2 ユーザ指定サイズdpx;
                protected struct ST定数バッファの転送元データ