Re: Windows APIとの併用 ( No.1 ) |
- 名前:管理人 日時:2007/07/03 11:48
優柔不断さん始めまして、DXライブラリの管理人です。
ステータスバーやボタンコントロール等の DirectX ではなく GDI を使用して
表示されているものを正常に表示するには DxLib_Init を実行した後に、
以下の関数に TRUE を渡して呼ぶ必要があります。
// GDI描画を使用するかどうかを設定する
int SetUseGDIFlag( int Flag );
ただ、GDI と DirectX の相性は良くないので、これを使用しても正常に
表示されるかどうかは分かりません。(- -;
|
Re: Windows APIとの併用 ( No.2 ) |
- 名前:優柔不断 日時:2007/07/03 19:44
相性がよくないとは、どういうことでしょうか。
すいません、こんな質問して、これからのプログ
ラミングに生かそうと思いまして。
|
Re: Windows APIとの併用 ( No.3 ) |
- 名前:管理人 日時:2007/07/05 11:38
優柔不断さんどうも、DXライブラリの管理人です。
> 相性がよくないとは、どういうことでしょうか。
DirectX は元々 GDI との共存を前提としていないからです。
(元々描画速度が低速な GDI の解決策として開発した DirectX 上で GDI を
使用しては本末転倒なので、DirectX を使用したプログラムでのメニューの類は
基本的にすべてソフト側での実装が前提となっているのです)
|
Re: Windows APIとの併用 ( No.4 ) |
- 名前:優柔不断 日時:2007/07/05 19:50
やはり、正常に描画されませんでした。ここから思っ
たのですが、ある一部分だけをScreenFlipできる方法
があればいいなと思ったのですが、どうでしょうか?
|
Re: Windows APIとの併用 ( No.5 ) |
- 名前:管理人 日時:2007/07/07 12:52
優柔不断さんどうも、DXライブラリの管理人です。
> やはり、正常に描画されませんでした。ここから思っ
> たのですが、ある一部分だけをScreenFlipできる方法
> があればいいなと思ったのですが、どうでしょうか?
フルスクリーン時の ScreenFlip は裏画面用のメモリ領域から
画素情報を表画面用のメモリ領域に転送するのではなく、モニタに
出力するメモリ領域を表画面用のメモリ領域から裏画面用のメモリ領域に
変更するということをしているので、一部分だけ、ということは出来ません。
描画速度は遅くなりますが、DxLib_Init を呼び出す前に DirectDraw の
機能を使用するかどうかを設定できる SetUseDirectDrawFlag 関数に FALSE
を渡して DirectDraw を使用しないようにすることで正常に表示されるかも
しれません。(描画速度は落ちますが・・・)
SetUseDirectDrawFlag( FALSE );
if( DxLib_Init() < 0 ) return -1;
尚、こちらの関数は内部処理がちょくちょく変わっていますので、宜しければ
こちらの最新版をお使いになってみてください。m(_ _)m
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
|
Re: Windows APIとの併用 ( No.6 ) |
- 名前:優柔不断 日時:2007/07/07 18:59
やってみましたが、もっとひどい状況になりました。
|
Re: Windows APIとの併用 ( No.7 ) |
- 名前:優柔不断 日時:2007/07/24 23:21
(追伸)
解決いたしました。
思い切ってDxライブラリでボタンを作りました。
|