トップページ > 記事閲覧
MakeScreenしたグラフィックに対する描画の不具合
名前:けいじ 日時: 2018/10/16 01:08

お世話になっております。連続投稿で大変失礼いたします。 表題の件についてご連絡いたします。 MakeScreenとDerivationGraphを組み合わせた際に不具合と思われる動作がありました。 以下に動作確認プログラムを添付します。 grHandle2に文字列描画が正しく行われていません。恐らく元のグラフィックハンドルgrHandle0に対して描画されていると推測されます。 またコメントアウトしているClearDrawScreenを有効にした場合、やはり元のgrHandle0がクリアされているような感じです。 お忙しいかと思いますが、ご確認頂けますと幸いです。 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ChangeWindowMode(true); SetGraphMode(640, 480, 32); SetAlwaysRunFlag(true); if (DxLib_Init() == -1) { return -1; } int grHandle0, grHandle1, grHandle2; int fnHandle; grHandle0 = MakeScreen(400, 100, TRUE); // MakeScreenでグラフィック作成:grHandle0 grHandle1 = DerivationGraph(0, 0, 400, 30, grHandle0); // grHandle0から上部の一部分を抜き出し:grHandle1 grHandle2 = DerivationGraph(0, 50, 400, 30, grHandle0); // grHandle0から下部の一部分を抜き出し:grHandle2 SetFontCacheUsePremulAlphaFlag(TRUE); fnHandle = CreateFontToHandle("MS ゴシック", 32, 4, DX_FONTTYPE_ANTIALIASING_8X8); SetDrawBlendMode(DX_BLENDMODE_PMA_ALPHA, 255); FillGraph(grHandle0, 0x00, 0xFF, 0x00, 128); // grHandle0を緑に(全体が緑に) FillGraph(grHandle1, 0xFF, 0x00, 0x00, 192); // grHandle1を赤に(上部一部が赤に) FillGraph(grHandle2, 0xFF, 0xFF, 0x00, 64); // grHandle2を黄に(下部一部が黄に) // grHandle1に文字列描画 SetDrawScreen(grHandle1); // 描画対象をgrHandle1に // ClearDrawScreen(); SetDrawBlendMode(DX_BLENDMODE_PMA_ALPHA, 128); DrawStringToHandle(0, 0, "赤っぽい背景に文字列", GetColor(0xFF, 0xFF, 0xFF), fnHandle); // grHandle2に文字列描画 SetDrawScreen(grHandle2); // 描画対象をgrHandle2に // ClearDrawScreen(); SetDrawBlendMode(DX_BLENDMODE_PMA_ALPHA, 128); DrawStringToHandle(10, 0, "黄っぽい背景に文字列", GetColor(0xFF, 0xFF, 0xFF), fnHandle); SetDrawScreen(DX_SCREEN_BACK); // 描画対象を裏画面に SetBackgroundColor(0x00, 0x00, 0xFF); // 背景色を青 ClearDrawScreen(); // クリア(背景全体が青) SetDrawBlendMode(DX_BLENDMODE_PMA_ALPHA, 255); DrawGraph(50, 20, grHandle0, TRUE); // @grHandle0を描画(MakeScreenで作った本体) DrawGraph(100, 150, grHandle1, TRUE); // AgrHandle1を描画(上部一部分を抜き出した画像) DrawGraph(100, 225, grHandle2, TRUE); // BgrHandle2を描画(下部一部分を抜き出した画像) ScreenFlip(); WaitKey(); DxLib_End(); }
メンテ

Page: 1 |

Re: MakeScreenしたグラフィックに対する描画の不具合 ( No.1 )
名前:管理人 日時:2018/10/17 02:15

すみません、DerivationGraph で派生させたグラフィックハンドルを SetDrawScreen で 描画対象にすることは想定していませんでした これに対応するにはかなり色々な箇所を変更しなければならないので、ひとまずは 『DerivationGraph で作成したグラフィックハンドルは SetDrawScreen で描画対象にはできない』 を仕様とします m(_ _;m
メンテ
Re: MakeScreenしたグラフィックに対する描画の不具合 ( No.2 )
名前:けいじ(解決) 日時:2018/10/18 11:23

ご確認いただきましてありがとうございます。 元となるテクスチャを共通化しておけば、派生元を大量描画する際に早いかなと思ったのがきっかけです。 当面は分割しないで個々にMakeScreenして処理したいと思います。 お時間と機会あれば、そんな機能も実装して頂けますと幸いです。
メンテ

Page: 1 |

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

   クッキー保存