トップページ > 記事閲覧
乗算済みαの有効無効を混在させた際の画像の再読み込み
名前:Nameless 日時: 2016/02/06 20:20

乗算済みα画像と普通の画像を混在させた際の、画像の再読み込み時の挙動についての要望です。 Ver 3.16のDxLibだと、デバイスロストの発生時やReloadFileGraphAllを呼び出したとき、 その際のSetUsePremulAlphaConvertLoadの設定に従って画像を読み込み直しているようですが、 これをその画像を読み込むときに使ったSetUsePremulAlphaConvertLoadの設定に従って読み込み直すようにしていただけないでしょうか? 現在、全体を乗算済みαを使わないように書き直したので急ぎではないのですが、時間があるときに検討いただければと思います。 テストコード #include "DxLib.h" int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR , int) { int non_pma_handle, pma_handle; bool UsePremulAlphaConvertLoad;//乗算済みアルファ画像に変換するか // DXライブラリの初期化 if (DxLib_Init() < 0) return -1; SetDrawScreen(DX_SCREEN_BACK); SetDrawMode(DX_DRAWMODE_BILINEAR); //普通の半透明画像 non_pma_handle = LoadGraph("Bar.png");//適当な半透明画像 //乗算済みアルファ用の画像 SetTransColor(255, 0, 255); UsePremulAlphaConvertLoad = true; SetUsePremulAlphaConvertLoad(UsePremulAlphaConvertLoad); pma_handle = LoadGraph("PMAImage01.png");//「乗算済みアルファのすすめ」のもの while (ProcessMessage() == 0) { if (CheckHitKey(KEY_INPUT_Z)){//画像の再読み込み ReloadFileGraphAll(); WaitTimer(100);//二重押し防止 } if (CheckHitKey(KEY_INPUT_X)){//乗算済みアルファ画像に変換するかのフラグ切り替え UsePremulAlphaConvertLoad = !UsePremulAlphaConvertLoad; SetUsePremulAlphaConvertLoad(UsePremulAlphaConvertLoad); WaitTimer(500);//二重押し防止 } // 結果が分かりやすいように画面を灰色にする DrawBox(0, 0, 400, 400, GetColor(128, 128, 128), TRUE); // 乗算済みアルファを使い描画 SetDrawBlendMode(DX_BLENDMODE_PMA_ALPHA, 255); DrawExtendGraph(0, 0, 400, 400, pma_handle, TRUE); // 結果が分かりやすいように画面を水色にする DrawBox(400, 0, 640, 100, GetColor(0xab, 0xcd, 0xef), TRUE); // 乗算済みアルファを使わずに描画 SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 255); DrawExtendGraph(400, 0,640, 100, non_pma_handle, TRUE); ScreenFlip(); ClearDrawScreen(); } DxLib_End(); return 0; }
メンテ

Page: 1 |

Re: 乗算済みαの有効無効を混在させた際の画像の再読み込み ( No.1 )
名前:管理人 日時:2016/02/06 21:29

確かに初回読み込み時の設定通りに再読み込みを行わないと元通りにならないですね… ご提案ありがとうございます、実装を検討してみます m(_ _)m
メンテ
Re: 乗算済みαの有効無効を混在させた際の画像の再読み込み ( No.2 )
名前:管理人 日時:2016/02/07 03:39

読み込み時の SetUsePremulAlphaConvertLoad の設定が再読み込みの際にも反映されるようにした バージョンをアップしましたので、よろしければお試しください m(_ _)m https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.exe // BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_DevCppTest.exe // Dev-C++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.exe // MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) 因みに左右反転読み込みについては再読み込みの際も左右反転されるようになっていたので、 本件は機能強化というよりバグ修正という方が正しいものでした… (_ _;;
メンテ
Re: 乗算済みαの有効無効を混在させた際の画像の再読み込み ( No.3 )
名前:Nameless(解決) 日時:2016/02/07 21:40

期待通りの動作をすることを確認しました。 迅速な対応ありがとうございます。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存