トップページ > 記事閲覧
DrawLineに太さを指定したときのドローコール
名前:れあ 日時: 2018/10/12 13:45

こんにちは、いつも使わせて頂いています。 DrawLineに太さを指定したとき、又はDrawLineAAを使用した場合、描画するたびにドローコールが呼ばれます。 同じテクスチャを続けて描画するときのように、まとめることは可能でしょうか?
メンテ

Page: 1 |

Re: DrawLineに太さを指定したときのドローコール ( No.1 )
名前:管理人 日時:2018/10/14 23:03

可能です ただ、この週末はもう作業する時間が殆どないので、次の週末に実装してみます 申し訳ありませんが少しお時間をください m(_ _)m
メンテ
Re: DrawLineに太さを指定したときのドローコール ( No.2 )
名前:れあ 日時:2018/10/17 00:25

承知しました。
メンテ
Re: DrawLineに太さを指定したときのドローコール ( No.3 )
名前:管理人 日時:2018/10/22 00:32

お待たせしました、DrawLine の太さ指定をしたときの高速化と、DrawLineAA などのアンチエイリアス付き図形描画を 高速に行うための関数を追加したバージョンをアップしましたので、よろしければダウンロードしてください m(_ _)m http://dxlib.o.oo7.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 http://dxlib.o.oo7.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 http://dxlib.o.oo7.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.2 用 http://dxlib.o.oo7.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 http://dxlib.o.oo7.jp/temp/DxLibDotNet.zip // Windows版 .NET用 http://dxlib.o.oo7.jp/temp/DxLibAndroidTest_ARM.zip // Android版 ARM用 http://dxlib.o.oo7.jp/temp/DxLibAndroidTest_ARM64.zip // Android版 ARM64用 http://dxlib.o.oo7.jp/temp/DxLibAndroidTest_x86.zip // Android版 x86用 http://dxlib.o.oo7.jp/temp/DxLibAndroidTest_x64.zip // Android版 x64用 http://dxlib.o.oo7.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) 上記のバージョンにしていただければ DrawLine の太さ指定描画は以前のバージョンより高速になるのですが、 DrawLineAA などのアンチエイリアス付き図形描画はどうしてもそのままでは高速化できなかったので、 以下の関数を呼ぶようにする形としました // DrawTriangleAA などのアンチエイリアス付き図形描画の準備を行う int BeginAADraw( void ) ; // DrawTriangleAA などのアンチエイリアス付き図形描画の後始末を行う int EndAADraw( void ) ; 連続して DrawLineAA などのアンチエイリアス付き図形描画を行う前に BeginAADraw を呼び出し、 連続アンチエイリアス付き図形描画が終わったら EndAADraw を呼んでいただければ、その間の 描画のドローコールがまとめられ高速に描画を行うことができます よろしければお試しください m(_ _)m
メンテ
Re: DrawLineに太さを指定したときのドローコール ( No.4 )
名前:れあ 日時:2018/10/26 01:27

関数の追加、ありがとうございます。 試したのですが、BeginAADrawとEndAADrawを使い DrawLineAAでGetColor(210, 255, 255)で描画したときに RGB 95, 255, 255で描画されます。不具合でしょうか?
メンテ
Re: DrawLineに太さを指定したときのドローコール ( No.5 )
名前:管理人 日時:2018/10/28 22:19

ご返信が遅くなり申し訳ありません 手元で BeginAADraw(); DrawLineAA( 0.0f, 0.0f, 128.0f, 0.0f, GetColor( 210, 255, 255 ) ) ; EndAADraw(); という処理を実行してみましたが、RGB 210, 255, 255 で描画されていました SetDrawBlendMode で半透明の線が描画されるように設定されていたり、 SetDrawBright で描画輝度を RGB 255, 255, 255 以外に設定されていたりということはないでしょうか?
メンテ
Re: DrawLineに太さを指定したときのドローコール ( No.6 )
名前:れあ 日時:2018/10/30 04:25

すみません、調査と説明が不足していました。連続で描画したときに不具合が出ます。 実際はfor文で回して描画していますが、以下のコードを試してみてください。 BeginAADraw(); DrawLineAA( 0.0f, 0.0f, 128.0f, 128.0f, GetColor( 210, 255, 255 ),50.0f ) ; DrawLineAA( 128.0f, 128.0f, 256.0f, 256.0f, GetColor( 210, 255, 255 ),50.0f ) ; DrawLineAA( 256.0f, 256.0f, 384.0f, 384.0f, GetColor( 210, 255, 255 ),50.0f ) ; DrawLineAA( 384.0f, 384.0f, 512.0f, 512.0f, GetColor( 210, 255, 255 ),50.0f ) ; EndAADraw();
メンテ
Re: DrawLineに太さを指定したときのドローコール ( No.7 )
名前:管理人 日時:2018/11/01 01:53

再現用コードありがとうございます、手元でも現象を確認しました 関数内で変更していた描画輝度を元に戻す処理が BeginAADraw() 〜 EndAADraw() を使用した場合に行われていませんでした 修正版をアップしましたので、よろしければお試しください m(_ _;m http://dxlib.o.oo7.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 http://dxlib.o.oo7.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 http://dxlib.o.oo7.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.2 用 http://dxlib.o.oo7.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 http://dxlib.o.oo7.jp/temp/DxLibDotNet.zip // Windows版 .NET用 http://dxlib.o.oo7.jp/temp/DxLibAndroidTest_ARM.zip // Android版 ARM用 http://dxlib.o.oo7.jp/temp/DxLibAndroidTest_ARM64.zip // Android版 ARM64用 http://dxlib.o.oo7.jp/temp/DxLibAndroidTest_x86.zip // Android版 x86用 http://dxlib.o.oo7.jp/temp/DxLibAndroidTest_x64.zip // Android版 x64用 http://dxlib.o.oo7.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
メンテ
Re: DrawLineに太さを指定したときのドローコール ( No.8 )
名前:れあ(解決) 日時:2018/11/02 00:40

正常に動作することを確認しました。修正ありがとうございます。
メンテ

Page: 1 |

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

   クッキー保存