OSDN Git Service

BGAの黒ピクセルが透過になっていなかったミスを修正。
authorFROM <from@alto.ocn.ne.jp>
Mon, 8 May 2017 12:54:48 +0000 (21:54 +0900)
committerFROM <from@alto.ocn.ne.jp>
Mon, 8 May 2017 12:54:48 +0000 (21:54 +0900)
バックバッファから取得した X フォーマットを、対応する A フォーマットに変換。

DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏BGA.cs
FDK17プロジェクト/コード/04.グラフィック/CTexture.cs
実行時フォルダ/DTXCreator.exe
実行時フォルダ/DTXManiaGR.exe
実行時フォルダ/dll/FDK.dll
実行時フォルダ/ja-JP/DTXCreator.resources.dll
実行時フォルダ/ja-JP/DTXManiaGR.resources.dll

index 1ccae54..ec03f37 100644 (file)
@@ -138,12 +138,21 @@ namespace DTXMania
                                {\r
                                        try\r
                                        {\r
+                                               var format = Format.A8R8G8B8;\r
+                                               switch( surface.Description.Format )    // バックバッファ用フォーマットで X を持つのはこれだけ。\r
+                                               {\r
+                                                       case Format.X4R4G4B4: format = Format.A4R4G4B4; break;\r
+                                                       case Format.X8B8G8R8: format = Format.A8R8G8B8; break;\r
+                                                       case Format.X8R8G8B8: format = Format.A8R8G8B8; break;\r
+                                               }\r
+\r
                                                this.txBGA = new CTexture( CDTXMania.Instance.Device,\r
                                                        size基準.Width,\r
                                                        size基準.Height,\r
-                                                       surface.Description.Format,\r
+                                                       format,\r
                                                        Pool.Default,\r
-                                                       Usage.RenderTarget );\r
+                                                       Usage.RenderTarget,\r
+                                                       true );\r
 \r
                                                txBGA.vc拡大縮小倍率 = new Vector3(\r
                                                        (float) CDTXMania.Instance.Coordinates.Movie.W / size基準.Width,\r
index 3b9b2e8..a1c06fe 100644 (file)
@@ -183,11 +183,11 @@ namespace FDK
                /// <param name="pool">テクスチャの管理方法。</param>\r
                /// <exception cref="CTextureCreateFailedException">テクスチャの作成に失敗しました。</exception>\r
                public CTexture( Device device, int n幅, int n高さ, Format format, Pool pool )\r
-                       : this( device, n幅, n高さ, format, pool, Usage.None )\r
+                       : this( device, n幅, n高さ, format, pool, Usage.None, false )\r
                {\r
                }\r
                \r
-               public CTexture( Device device, int n幅, int n高さ, Format format, Pool pool, Usage usage )\r
+               public CTexture( Device device, int n幅, int n高さ, Format format, Pool pool, Usage usage, bool b黒を透過する )\r
                        : this()\r
                {\r
                        try\r
@@ -196,8 +196,9 @@ namespace FDK
                                this.sz画像サイズ = new Size( n幅, n高さ );\r
                                this.szテクスチャサイズ = this.t指定されたサイズを超えない最適なテクスチャサイズを返す( device, this.sz画像サイズ );\r
                                this.rc全画像 = new Rectangle( 0, 0, this.sz画像サイズ.Width, this.sz画像サイズ.Height );\r
-               \r
-                               using ( var bitmap = new Bitmap( 1, 1 ) )\r
+                               int colorKey = ( b黒を透過する ) ? unchecked((int) 0xFF000000) : 0;\r
+\r
+                               using( var bitmap = new Bitmap( 1, 1 ) )\r
                                {\r
                                        using ( var graphics = Graphics.FromImage( bitmap ) )\r
                                        {\r
@@ -211,7 +212,7 @@ namespace FDK
                                                pool = poolvar;\r
 #endif\r
                                                // 中で更にメモリ読み込みし直していて無駄なので、Streamを使うのは止めたいところ\r
-                                               this.texture = Texture.FromStream( device, stream, n幅, n高さ, 1, usage, format, pool, Filter.Point, Filter.None, 0 );\r
+                                               this.texture = Texture.FromStream( device, stream, n幅, n高さ, 1, usage, format, pool, Filter.Point, Filter.None, colorKey );\r
                                        }\r
                                }\r
                        }\r
index eb391f6..22295ce 100644 (file)
Binary files a/実行時フォルダ/DTXCreator.exe and b/実行時フォルダ/DTXCreator.exe differ
index 25a5947..85fcc11 100644 (file)
Binary files a/実行時フォルダ/DTXManiaGR.exe and b/実行時フォルダ/DTXManiaGR.exe differ
index 97f07a6..aef69a8 100644 (file)
Binary files a/実行時フォルダ/dll/FDK.dll and b/実行時フォルダ/dll/FDK.dll differ
index 3fcbb79..e8cdfc3 100644 (file)
Binary files a/実行時フォルダ/ja-JP/DTXCreator.resources.dll and b/実行時フォルダ/ja-JP/DTXCreator.resources.dll differ
index fb7a873..dd20710 100644 (file)
Binary files a/実行時フォルダ/ja-JP/DTXManiaGR.resources.dll and b/実行時フォルダ/ja-JP/DTXManiaGR.resources.dll differ