トップページ > 過去ログ > 記事閲覧
GetColorBitDepth の戻り値について
名前:kum0708 日時: 2009/11/12 09:26

DXライブラリにいつもお世話になっています。 ライブラリをDxLib_VC3_00にしてから GetColorBitDepthの戻り値がおかしくなっています。 私もPCを一台しかなくもう一台あれば試せるのですが、すみませんが、皆さんの環境ではどうなってるかお聞きしたいのですが。 windowモードで起動する際に現在のディスプレイの 色数を求めるのにGetColorBitDepthをつかっていて の戻り値をSetGraphModeの第三引数に渡して いるのですが、戻り値が”0”って帰ってきてしまい。 画面モードの変更がうまくできなくなっています。 ちなみに、下記テキストが実際に使っている部分です。 if(SetGraphMode(SCREEN_WIDTH,SCREEN_HEIGHT,GetColorBitDepth())!= DX_CHANGESCREEN_OK) return FALSE; どなたか、ご教授いただけるとうれしいです。 よろしくお願いします。

Page: 1 |

Re: GetColorBitDepth の戻り値について ( No.1 )
名前:いっち 日時:2009/11/12 14:27

私の環境でも同様でした。 SetGraphMode()かDxLib_Init()を一度実行した後だと正しい値を返してくれるようです。 テスト環境: OS WindowsXP SP3 DirectX 9.0c DXLib Ver3.00e
Re: GetColorBitDepth の戻り値について ( No.2 )
名前:いっち 日時:2009/11/12 15:03

もう少し調べてみました。 // もともとの画面色数は32bitです。 int d = 0; d = GetColorBitDepth( ); // <- 戻り値は0 SetGraphMode( 640, 480, 16 ); d = GetColorBitDepth( ); // <- 戻り値は16 if ( DxLib_Init() == -1 ) return -1; d = GetColorBitDepth( ); // <- 戻り値は32 となりました。 一度SetGraphtModeを16bitで初期化し、DxLib_Init()を呼んだあとで、 もう一度SetGraphModeをGetColorBitDepthを引数にして呼ぶと うまくいくのではないでしょうか?
Re: GetColorBitDepth の戻り値について ( No.3 )
名前:kum0708 日時:2009/11/12 15:14

いっちさんありがとうございます。 たとえば、windowモードではじめからウィンドウを作りたい場合、 色数を調べるのにDxLib_Initを呼んだあとに SetGraphModeで再設定しないといけないってことですかね? それだと homepage2.nifty.com/natupaji/DxLib/dxtec.html#M7 上記のURLで『前処理』のすすめでの書いていますけど。 あんまり、いい処理では無いとおもうんですが。
Re: GetColorBitDepth の戻り値について ( No.4 )
名前:いっち 日時:2009/11/12 15:56

すみません、No2の情報は間違っていました。 もともとの画面色数は32bitでWindowモードで実行した場合 以下のような結果になりました。 ChangeWindowMode( TRUE ); GetColorBitDepth( ); // <-戻り値=0 SetGraphMode( 1024, 768, 16 ); // <-戻り値=0 GetColorBitDepth( ); // <-戻り値=16 if ( DxLib_Init() == -1 ) return -1; GetColorBitDepth( ); // <-戻り値=32 SetGraphMode( 1024, 768, 16 ); // <-戻り値=-1 GetColorBitDepth( ); // <-戻り値=32 以上の結果から。 WindowモードのときはSetGraphMode()で色数の変更はできない GetColorBitDepth()でもともとのシステムの色数をとることは現状できない ということだと思います。 GetColorBitDepth()の仕様については私ではなんとも言えません。
Re: GetColorBitDepth の戻り値について ( No.5 )
名前:管理人 日時:2009/11/14 22:37

すいません、GetColorBitDepth の仕様が Ver3.00 以前と違っていましたので、 Ver3.00 以前と同じ値を返すように修正したバージョンをアップしました よろしければお使い下さい m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい) 因みに、ウインドウモードの場合は SetGraphMode の第3引数は無視され、常にデスクトップに 設定されている色数の画面モードになります( ソフトウエアレンダリングモードの場合は設定が反映されます )

Page: 1 |