- PR -

DirectXでの背景色指定について

1
投稿者投稿内容
みかん
常連さん
会議室デビュー日: 2006/08/08
投稿数: 31
投稿日時: 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

ご存知の方がいらっしゃいましたらご教授ください。
よろしくお願い致します。

一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2007-03-13 15:21
DirectXは詳しくないんですけど、Device.DisplayModeプロパティで取得できるオブジェクトのFormatプロパティで色深度を取得できるんじゃないでしょうか。
全然試してないんですけど。

引用:

みかんさんの書き込み (2007-03-13 14:48) より:
ディスプレイの設定の違い(画面の色が34bitか16bitか)などで想定した色が表示されない。


この想定した色というのは、もちろん16bitで表現できる色なんですよね?
16bitで表現できるということは当然32bitでも表現できるはずなのに、32bit(?)にすると違う色が出るという理解でいいですか?
みかん
常連さん
会議室デビュー日: 2006/08/08
投稿数: 31
投稿日時: 2007-03-13 18:22
ColorFillメソッドではなくForeColorメソッドを使用することで
解決できました。

ありがとうございました。

みかん
常連さん
会議室デビュー日: 2006/08/08
投稿数: 31
投稿日時: 2007-03-13 18:22
ColorFillメソッドではなくForeColorメソッドを使用することで
解決できました。

ありがとうございました。

みかん
常連さん
会議室デビュー日: 2006/08/08
投稿数: 31
投稿日時: 2007-03-13 18:22
ColorFillメソッドではなくForeColorメソッドを使用することで
解決できました。

ありがとうございました。

1

スキルアップ/キャリアアップ(JOB@IT)