画面外に出た部分の描画内容の消滅

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Math

Re: 画面外に出た部分の描画内容の消滅

#31

投稿記事 by Math » 7年前

普通にはGameは全画面モードがデフォルト設定だと思います。

Math

Re: 画面外に出た部分の描画内容の消滅

#32

投稿記事 by Math » 7年前

全画面モードでは問題がなく動作しますでしょうか?。

Math

Re: 画面外に出た部分の描画内容の消滅

#33

投稿記事 by Math » 7年前

C#,VBでGameをつくるときは考えなくてもいいので気がつかなかったのですがC/C++では”再描画”は必要なようです。
http://wisdom.sakura.ne.jp/system/winap ... index.htmlに私が勉強したC言語のページがあります。http://wisdom.sakura.ne.jp/system/winap ... win35.htmlの内容とhttp://wisdom.sakura.ne.jp/system/winap ... win34.htmlの内容は必須と思われます。
C言語の私のホームページのメモを読んで気づきました。

夢猫。
記事: 28
登録日時: 8年前

Re: 画面外に出た部分の描画内容の消滅

#34

投稿記事 by 夢猫。 » 7年前

ありがとうございます。
じっくり読み解いてみますね

今作っているのはゲームというよりは3Dモデルのモデリングツールみたいな感じでしょうか。
なので全画面モードで起動した事はないです。
ただゲームを見越して汎用性を高く組んでいる(つもり)なのでゲームを作るのにソースは使用すると思います。

シェーダ美味しい

Re: 画面外に出た部分の描画内容の消滅

#35

投稿記事 by シェーダ美味しい » 7年前

wc.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
の行をコメントアウトしたらどうなります?ついでにWndProcのWM_PAINTを処理しているところも省いて。


色々コードを取り除いた時の弊害かもしれませんが、インデントがめちゃくちゃだったり
WinMainが__stdcallになっていなかったり、ブロックの対応関係がとれていなかったり
DirectInputのヘッダとリンクが行われていなかったりでこのままのコード動きませんね。
動いても何も描画はされない状態・・・。

夢猫。
記事: 28
登録日時: 8年前

Re: 画面外に出た部分の描画内容の消滅

#36

投稿記事 by 夢猫。 » 7年前

シェーダ美味しい さんが書きました:wc.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
の行をコメントアウトしたらどうなります?ついでにWndProcのWM_PAINTを処理しているところも省いて。


色々コードを取り除いた時の弊害かもしれませんが、インデントがめちゃくちゃだったり
WinMainが__stdcallになっていなかったり、ブロックの対応関係がとれていなかったり
DirectInputのヘッダとリンクが行われていなかったりでこのままのコード動きませんね。
動いても何も描画はされない状態・・・。
ありがとうございます!wc.hdrBackgroundの行をコメントアウトしたら解決しました!
WinMainに関してはWINAPIを書かなきゃいけないということをすっかり忘れていました。DXライブラリでもやったはずなんですけどね…(苦笑)
インデンがめちゃくちゃで読みづらいのはもともとです。
もっと読みやすいコードを意識しなければいけませんね…
DirectInputのヘッダとのリンクはそれに関したクラスを作って書いたヘッダでリンクさせてあるせいですね。コードをここにあげる際にリンクをさせる事を忘れていました。というか存在を忘れていました…

シェーダ美味しい

Re: 画面外に出た部分の描画内容の消滅

#37

投稿記事 by シェーダ美味しい » 7年前

解決したようでよかったです。その方針で良いのか分かりませんが。


個人的には、DirectXを用いる際には(そのウィンドウに対しては)Win32APIを下手に混在させない事を意識しています。
それぞれが競合しあって、分かりやすいところでは先ほどの点滅が起こるというような事になってしまうので、WndProcでは最低限の事のみ、後はゲームロジックとしてループ内で記述する形ですね。

ツールを作成するということなので、見た目を表示する部分(今回の部分?)、操作を受け付ける部分(3D空間の操作等があるかもしれませんが)、データを操作する部分など、適切に切り分けて設計出来ると良いですね。応援しております。

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

Re: 画面外に出た部分の描画内容の消滅

#38

投稿記事 by ISLe » 7年前

オフトピック
1. WM_ERASEBKGNDで何もせず1を返す
2. WM_PAINTで何もせずBeginPaintとEndPaintだけを呼び出す
をテンプレにしておくとよいと思います。

1.は背景消去処理そのものを無効化します。
2.はWM_PAINTメッセージが連投されないように無効領域を解消します。

夢猫。
記事: 28
登録日時: 8年前

Re: 画面外に出た部分の描画内容の消滅

#39

投稿記事 by 夢猫。 » 7年前

ISLe さんが書きました:
オフトピック
1. WM_ERASEBKGNDで何もせず1を返す
2. WM_PAINTで何もせずBeginPaintとEndPaintだけを呼び出す
をテンプレにしておくとよいと思います。

1.は背景消去処理そのものを無効化します。
2.はWM_PAINTメッセージが連投されないように無効領域を解消します。
分かりました。アドバイスありがとうございます!

閉鎖

“C言語何でも質問掲示板” へ戻る