はじめに
今回の話題はopenFrameworksです。
先日、マルチウィンドウでgui画面と描画画面を作成し、描画画面をサブモニターに映そうとしたところ、ウィンドウをサブモニターに移動した瞬間なぜか動かなくなるという事態が起きました。
おかしいと思い、試しに適当な1画面のサンプルを起動しサブモニターに移すと、これも動かない。
タイトルにfpsを表示するようにしたところ、そこは更新されるが画面だけ全く更新されない。
結構詰まったので備忘録。
ちなみにそういう問題じゃなくてただ2画面でマルチウィンドウしたいと言う人はこの辺とかどうでしょう↓
https://qiita.com/aframeworks-blog/items/2244b11afbfa1a4218ed
結論
PC内部、環境の問題でした。
自分の環境は以下のような感じです。
OS | Windows10 Home |
openFrameworks | v0.10.0 |
開発環境 | Visual Studio Community 2017 |
まぁ正直この辺はたぶんそんなに関係ないです。
問題はグラフィック周り。
自分のグラフィック周りでは、以下のような設定になっていました。
この画面は、
スタートメニュー→設定→システム→ディスプレイ→ディスプレイの詳細設定
から行けます。
見ての通り、オンボードとグラフィックカードが各ウィンドウで別々に制御してるっぽかったので、そこら辺で何かあるんじゃないかと踏んでいろいろしました。
1. ドライバーの更新
注:先に書いておくとここは「ちょっと効果があった」くらいです。
やり方はどこからでもいいですが、せっかく上の画面まで来た人は、そのまま
ディスプレイ〇のアダプターのプロパティを表示します
→プロパティ
→ドライバー
→ドライバーの更新
って流れで更新できます。
NVIDIAから更新してみましたが変化0だったので、Intelの方も更新したところ、一応動くようにはなりました。
ただ爆遅。メインモニターでは60fps出てたものが、サブに移した瞬間20~30ほどまで落ちました。
これじゃ使い物にならん。
2. NVIDIAコントロールパネルの設定
最終的にここまでやって直りました。
NVIDIA製のグラフィックカードが入っている人は、NVIDIAコントロールパネルというものがあるのではないでしょうか。
自分の場合、デスクトップの何もないところで右クリックしたら出てきました。
多分他にもやり方はあると思います。
何はともあれ起動したら、画面左のツリービュー的なやつから
3D設定→3D設定の管理
と進みます。
そこの「優先するグラフィックスプロセッサ」を「高パフォーマンスNVIDIAプロセッサ」に変えてください。
そして右下の適用をクリック。
するとあら不思議、2画面で60fpsで動きました。
おわりに
適当ですが終わります。
備忘録で結構適当なので何かしらあったらコメントください。
ハードウェア周りは苦手です...
以下1個ですが参考↓
グラフィックカードの有効化(オンボードからの切り替え)