- - PR -
DirectXでの背景色指定について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-03-13 14:48
いつもお世話になっております。
DirectXを使用して描画処理を行いたいのですが、サーフェスの背景色設定を RGBで行うと下記の問題が起こりました。 1 ディスプレイの設定の違い(画面の色が34bitか16bitか)などで想定した色が 表示されない。 2 同じ背景色を指定してbmpを塗りつぶしても微妙に色が違う。 コード: サーフェスの背景色指定 secondarySurface.ColorFill(Color.FromArgb(int_R, int_G, int_B)) bmpの背景色指定 graph.Clear(Color.FromArgb(int_R, int_G, int_B)) ディスプレイモードを取得して、それに合わせてR,G,Bの値を変換、設定する方法を 調べてみましたがよくわかりませんでした。 環境は下記の通りです。 Windows XP SP2 DirectX 9.0c Microsoft Visual Studio 2005 Ver 8.0.50727 Microsoft .NET Framework Version 2.0.50727 Microsoft DirectX.Direct3D ご存知の方がいらっしゃいましたらご教授ください。 よろしくお願い致します。 | ||||
|
投稿日時: 2007-03-13 15:21
DirectXは詳しくないんですけど、Device.DisplayModeプロパティで取得できるオブジェクトのFormatプロパティで色深度を取得できるんじゃないでしょうか。
全然試してないんですけど。
この想定した色というのは、もちろん16bitで表現できる色なんですよね? 16bitで表現できるということは当然32bitでも表現できるはずなのに、32bit(?)にすると違う色が出るという理解でいいですか? | ||||
|
投稿日時: 2007-03-13 18:22
ColorFillメソッドではなくForeColorメソッドを使用することで
解決できました。 ありがとうございました。 | ||||
|
投稿日時: 2007-03-13 18:22
ColorFillメソッドではなくForeColorメソッドを使用することで
解決できました。 ありがとうございました。 | ||||
|
投稿日時: 2007-03-13 18:22
ColorFillメソッドではなくForeColorメソッドを使用することで
解決できました。 ありがとうございました。 |
1