[リストへもどる]
一括表示

投稿時間:2004/05/01(Sat) 15:40
投稿者名:アルエ
Eメール:
URL :
タイトル:
VBでDirectDrawを使用した場合のマルチディスプレイの対応について質問
はじめまして、こんにちは。
現在Viual Basic6.0でDirectX7のDirectDrawを使用して描画関係のプログラムを作っているんですが、少し悩んでいることがあります。
ビデオカードの設定を利用してマルチデスクトップ(2ディスプレイ)上で動作する描画プログラムというのを目指して開発しているんですが、
プライマリ領域では正常に動作するのですが、セカンダリ領域だとDirectDrawの機能が上手く働かなくなってしまいます。
具体的にはDirectDrawのBlt関数でBMPの表示を行っているのですが、描画部分が少しでもセカンダリ領域に入ると描画の処理が行われなくなってしまいます(実行ファイル自体は動作します)

例としてAとB2つのディスプレイがあったとしてAをプライマリ、Bをセカンダリとして実行するとAのディスプレイ上では正しく動作してBのディスプレイ上では正しく動作しません。
設定を逆にしてBをプライマリ、AをセカンダリにするとやはりBでは上手く動作しますが、Aでは動作しなくなります。
自分の検証した範囲だとこれぐらいが限界で頭を痛めています。
Visual BasicにDirectXを組み込む際は描画領域に何か制約があるものなんでしょうか?
もし何か知ってる方がいらっしゃいましたらご教授よろしくお願いします。


・開発環境
-OS:Windows2000
-開発ソフト:VisualBasic6.0
(描画部分にDirectX7のDirectDrawを使用)
-グラフィックカード
nVIDIA GeforceFX5700
(nViewモード:DualView)
ディスプレイ1(アナログモニター)解像度:1024×768
ディスプレイ2(デジタルモニター)解像度:1600×1200

投稿時間:2004/05/03(Mon) 11:54
投稿者名:K.J.K.
Eメール:akiya@koalanet.ne.jp
URL :
タイトル:
Re: VBでDirectDrawを使用した場合のマルチディスプレイの対応について質問
# 回答ではありません。
# 改行は適切に。

DirectX7( for VB)って、マルチディスプレイに対応していましたっけ?
で、もし仮に対応していたとしたら、ディスプレイごとにサーフェイス
を作り、それぞれ別個に描画する必要があります。(DX9からの類推。)

投稿時間:2004/05/06(Thu) 09:50
投稿者名:アルエ
Eメール:
URL :
タイトル:
Re^2: VBでDirectDrawを使用した場合のマルチディスプレイの対応について質問
>K.J.K.さん
返信遅くなって申し訳ないです、アドバイスありがとうございます。

VB上でDirectXを使用するのが今回が初めてで身近にあって参考になるものが
DX7ベースのものだったのでマルチディスプレイに対応しているかまで考慮せずにDX7で作っていました。
あれから調べてみたのですがDX7ではおそらく対応できないようです。
導入する前に調べておくべきだったと改めて反省してます。

DirectXのHPなど見回ってみてDX9のことも調べてみたんですが
マルチディスプレイに関する詳しい記述が探しきれなかったのですが
DX9ではマルチディスプレイは対応しているのでしょうか?
重ね重ね質問申し訳ないと感じていますがもし知っていられたらご教授お願いします。

投稿時間:2004/05/06(Thu) 12:37
投稿者名:K.J.K.
Eメール:akiya@koalanet.ne.jp
URL :
タイトル:
Re: VBでDirectDrawを使用した場合のマルチディスプレイの対応について質問
# 改行は適切に。

> マルチディスプレイに関する詳しい記述が探しきれなかったのですが
> DX9ではマルチディスプレイは対応しているのでしょうか?

と、DirectX9 SDKのヘルプには書いてありますけど。
ただ、私が言いたいのは、対応している・していない、ということでは
なく、マルチディスプレイの場合は、ディスプレイごとに描画面を用意
して、それぞれに描画する必要がある、ということです。

DirectXそのものが対応していたとしても、今のアルエさんの方法だと
マルチディスプレイには対応できませんよね。
# DirectX7が対応していないかどうか、を私は覚えておりません。

投稿時間:2004/05/06(Thu) 14:03
投稿者名:アルエ
Eメール:
URL :
タイトル:
Re^2: VBでDirectDrawを使用した場合のマルチディスプレイの対応について質問
>K.J.Kさん
返信ありがとうございます。

>マルチディスプレイの場合は、ディスプレイごとに描画面を用意
>して、それぞれに描画する必要がある、ということです。

たしかに今の方法では描画面はプライマリ領域分しか作ってなかったです。
DirectX自体対応してないんじゃなくて作ってるソフト側が対応させてなかったってことですね。
DirectX9のヘルプをDLしてにらめっこしてみることにします。
アドバイスほんと助かりました。
ありがとうございました。