Re: ウィンドウモードでのGraphLock関数について ( No.1 ) |
- 名前:Will 日時:2008/10/17 10:01
予想になりますが、ウィンドウモードの場合様々なソフトが画面表示を行うため、
あるひとつのアプリケーションがロックしてしまうと、ほかのソフトがとまってしまうため出来ないようになっているのではないでしょうか。
GraphLock関数の説明に、ロック中にブレークポイントを使うとハングアップすると書いています。
これは、ブレークによりフルスクリーンが解除されるとウィンドウモードに移行してしまうため、
その瞬間にハングアップしますよ、ってことだと思います。
|
Re: ウィンドウモードでのGraphLock関数について ( No.2 ) |
- 名前:ジェイ 日時:2008/10/17 20:20
Willさんの書き込みを拝見しましたが、いくつか
腑に落ちない点があります。
----引用----
ウィンドウモードの場合様々なソフトが画面表示を行うため、あるひとつのアプリケーションがロックしてしまうと、ほかのソフトがとまってしまう
------------
PCのスクリーン全体がGraphLockの対象となり、
ロックされてしまうということでしょうか?
リファレンスを見ますと、ロックは
グラフィックハンドルを対象に行われるように
見受けられます。
またサンプルでは、表画面のグラフィックハンドルを
ロックの対象としているようですが、
表画面=PCの画面全体である、という記載が
見当たりませんでした。
----引用----
これは、ブレークによりフルスクリーンが解除されるとウィンドウモードに移行してしまうため、
その瞬間にハングアップしますよ、ってことだと思います。
------------
もしそうであれば、ブレークポイントについての
言及ではなく、直接「ウィンドウモードでは
GraphLockは禁止」のような記載が
リファレンスにあるのではないかと思うのですが、
いかがでしょうか?
|
Re: ウィンドウモードでのGraphLock関数について ( No.3 ) |
- 名前:ジェイ 日時:2008/10/26 09:56
もし管理人さんがご覧になっていましたら、お尋ねしたいです。
よろしくお願いします。
|
Re: ウィンドウモードでのGraphLock関数について ( No.4 ) |
- 名前:管理人 日時:2008/11/03 22:51
申し訳ありません、GraphLock は現在のPC環境に適していないので非公開関数にすることにしました
代替手段があるかもしれませんので、宜しければ GraphLock をどのような用途でお使いになりたかったのか
教えていただけないでしょうか?
因みに上記のことを踏まえた上で、お書き込み頂いた質問にご返答します
> ウィンドウモードでGraphLock関数を利用する場合、何か特別な設定が必要なのでしょうか?
> もしくは、GraphLock関数は、フルスクリーンモードでのみ動作する関数なのでしょうか?
いえ、ウインドウモードでも正常に動作します
ただ、表画面に対するロックには動作に差異がありますので、表画面に対するロックは控えた方が良いと思います
> PCのスクリーン全体がGraphLockの対象となり、
> ロックされてしまうということでしょうか?
はい、その通りです
Aero を有効にした Vista では違いますが・・・
|
Re: ウィンドウモードでのGraphLock関数について ( No.5 ) |
- 名前:ジェイ 日時:2008/11/04 22:20
管理人様、ご返答ありがとうございます。
> 代替手段があるかもしれませんので、宜しければ GraphLock をどのような用途でお使いになりたかったのか
> 教えていただけないでしょうか?
GraphLockを使用したかったのは、
「画面描画用タイルパターンを、bmpファイルのロードではなく、
プログラムから作成したかった」為です。
画面を、タイルパターン(例えば8ドットx8ドット)を敷き詰めて描画する場合、
(1)いくつかのタイルパターンをまとめ、"AAAA.bmp"タイルパターン画像ファイルを作成。
(2)プログラム内で、タイルパターン用グラフィックハンドルに"AAAA.bmp"をロード。
(3)DrawRectGraphで、タイルパターン用グラフィックハンドルの任意の部分から
表画面ないし裏画面にタイルパターンをコピーして、画面を作成。
のような処理を行うと思います。
上記の処理では、(2)のタイルパターン用グラフィックハンドルで指し示される画像は、
(1)のタイルパターン画像ファイルの内容となりますが、
私の作成するプログラムでは、(2)の画像をプログラム内で作成する形にしたいのです。
このため、特定のグラフィックハンドルに対してのDrawPixel, DrawBox, GetPixelを
行うような関数が無いかと探しましたが、見当たらなかったため、GrapLockを使用した次第です。
以上、ご回答まで。
|
Re: ウィンドウモードでのGraphLock関数について ( No.6 ) |
- 名前:管理人 日時:2008/11/05 02:44
ご返答ありがとうございます
ジェイさんがご希望の処理は今回のバージョンアップで追加した LoadSoftImage 系の関数で実現できると思います
簡単に手順をご説明しますと
1.MakeXRGB8ColorSoftImage でタイルパターン格納用のソフトウエアイメージハンドルを作成
( アルファチャンネルが必要な場合は MakeARGB8ColorSoftImage 関数を使用してください )
2.DrawPixelSoftImage を使用して1で作成したソフトウエアイメージハンドル上に
タイルパターンを作成
3.CreateGraphFromSoftImage で1で作成したソフトウエアイメージハンドルからグラフィックハンドルを作成
という感じです
( 申し訳ありません、大変お手数ですが関数の詳細はリファレンスページの開設をご参照下さい m(_ _;m )
ソフトウエアイメージハンドルに対しては DrawPixel に相当する機能しかありませんが、
DrawPixel で済ませられることでしたらソフトウエアイメージハンドルの類で実現可能です
宜しければご検討下さい
|