LoginSignup
0
1

More than 5 years have passed since last update.

oFで起動時セカンドディスプレイフルスクリーンする時の注意

Posted at

はじめに

セカンドディスプレイ(サブモニター)でフルスクリーンをする記事はいろんなところに腐るほどでてます。
ただ、その通りやってみてうまくいかずちょっと困ったので残しときます。

問題

メインモニターでUI画面、サブモニターで描画画面をフルスクリーンで出したいというのが目的でした。

そこでとりあえずぐぐって最初の方に出た以下の2つを参考にやってみました。

openFrameworksでマルチウィンドウ、マルチディスプレイの実装方法
openFrameworksで起動時にセカンドディスプレイでフルスクリーンにする方法

が、うまくいかない。
自身のメインモニターの解像度は1920*1080なのでウィンドウ位置を1921, 0に設定してフルスクリーン化すると、メインモニターでフルスクリーンになってしまう。

結論

上の記事でも書いてありますが、フルスクリーン化(ofToggleFullScreen()とかofSetFullScreen(true)とか)はそのウィンドウが存在するモニターでフルスクリーン化します。
また、例えば2画面の場合、そのどちらにも属さない状態でフルスクリーン化しようとするとメインモニターでフルスクリーンになります。

と言うわけで、サブモニターでフルスクリーン化した時の座標を見てみました。

キャプチャ.PNG

ofGetWindowPositionX(),ofGetWindowPositionY()で座標を取得しました。widthとheightはついでです。

お気づきの通り、y座標が3になってます。それ自体の原因はわかりませんが、要は一旦手動でサブモニターでフルスクリーンにしてあげて、その時の座標に設定してあげればちゃんとサブモニターの領域に入るということです。

というわけで、基本は上記の記事通りですが、設定する座標に注意しましょうという話でした。
ちなみにこの座標の値ですが、メインモニターの解像度に依存するはずなので使いまわしは可能だとは思いますが、検証はしていないのでまたうまくいかなかったら再度手動で調べてみてください。

最後に

以上で終わります。
「ディスプレイ」と「モニター」とか、「メイン・サブ」と「セカンド」とか、言葉の使い分けが非常に面倒くさい。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1