トップページ > 記事閲覧
DX_GRAPH_FILTER_REPLACEMENTがdotNetで使用できません
名前:774 日時: 2022/01/12 11:01

DX_GRAPH_FILTER_REPLACEMENTの指定はできるんですが、引数11個渡せるようになっていないため透過再生できないようです。 またこれに関する説明がリファレンスページに反映されていないようですが、裏技的な扱いでしょうか
メンテ

Page: 1 |

Re: DX_GRAPH_FILTER_REPLACEMENTがdotNetで使用できません ( No.1 )
名前:管理人 日時:2022/01/13 01:42

すみません、GraphFilter系の関数を dotNet版で使えるようにした際には、引数が11個になる 想定をしていませんでした 引数11個渡せるように変更したバージョンをアップしましたので、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用
メンテ
Re: DX_GRAPH_FILTER_REPLACEMENTがdotNetで使用できません ( No.2 )
名前:774 日時:2022/01/14 08:25

動作確認出来ました。 ありがとうございます。 ただグリーンバックの動画でテストしたのですが、グリーンバックを別の色に置き換えることは出来ましたが、 アルファ値を0にしても別の色がそのまま描画されるようです。 置き換え色All0指定で黒バックの描画がされました。 描画順序の変更で個人的には透過出来なくても問題はなくなったのですが、一応ご報告まで。 ソース抜粋 DX.GraphFilterBlt(basegh, testgh, DX.DX_GRAPH_FILTER_REPLACEMENT, 0, 255, 0, 255, 0, 0, 0, 0); DX.DrawRectModiGraphF(p1.X, p1.Y, p2.X, p2.Y, p3.X, p3.Y, p4.X, p4.Y, Xy2.X, Xy2.Y, Wh.Width, Wh.Height, testgh, DX.TRUE);
メンテ
Re: DX_GRAPH_FILTER_REPLACEMENTがdotNetで使用できません ( No.3 )
名前:管理人 日時:2022/01/15 18:26

以下のようなプログラムで私も試してみましたが、緑の部分を透明ドットに 置き換えて描画した所、問題なく透過されました #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { // ウィンドウモードで起動 ChangeWindowMode( TRUE ); // 画面モードの設定 SetGraphMode( 640, 480, 32 ) ; if( DxLib_Init() < 0 ) return -1; // 320x240 の緑の動画を読み込み int Movie = LoadGraph( "GreenAVI.avi" ); // 動画の再生 PlayMovieToGraph( Movie, DX_PLAYTYPE_LOOP ); // 320x240 のアルファチャンネル付き画像を作成 int Screen = MakeScreen( 320 , 240 , TRUE ); // 描画先を裏画面に変更 SetDrawScreen( DX_SCREEN_BACK ) ; // メインループ while( ProcessMessage() == 0 ) { // 緑の動画の緑部分を透明ドットに置き換え GraphFilterBlt( Movie, Screen, DX_GRAPH_FILTER_REPLACEMENT, 0, 255, 0, 255, 0, 0, 0, 0 ); // 透明になっているか判断するため、画面全体を青で塗りつぶし DrawBox( 0, 0, 640, 480, GetColor( 0, 0, 255 ), TRUE ); // 緑の部分を透明ドットに置き換えた画像を画面に描画 DrawGraph( 0, 0, Screen, TRUE ); // 裏画面の内容を表画面に反映 ScreenFlip() ; } DxLib_End(); return 0; } GraphFilterBlt の転送先の画像 testgh にアルファチャンネルが無い、ということは 無かったでしょうか?
メンテ
Re: DX_GRAPH_FILTER_REPLACEMENTがdotNetで使用できません ( No.4 )
名前:774(解決) 日時:2022/02/17 08:32

スクリーン作成時にαチャンネルが無かっただけでした。 ありがとうございました
メンテ

Page: 1 |

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

   クッキー保存