openFrameworksで複数ディスプレイに別々のウィンドウを表示

openFrameworksには、0.9.0からマルチウィンドウ機能があります。
このマルチウィンドウ機能を複数ディスプレイで使う方法を紹介します。

・開発環境
 macOS Sierra 10.12
 openFrameworks 0.9.8
 Xcode8.3.3
 メインディスプレイサイズ:1280×800
 サブディスプレイサイズ:2560×1440

・ディスプレイ配置

複数ディスプレイで別々のウィンドウを表示

・main.cpp

ポイント
 ・ofAppと同様にofBaseAppを継承したSubAppクラスを作成しておきます。
  (両ウィンドウにofAppを表示する場合は、必要ありません。)
 ・サブウィンドウのsetPositionをメインディスプレイの横幅分ずらす。
  (サブディスプレイを右側に配置したため)
 ・プロパティのdecoratedをfalseにするとメニューバーが非表示になりフルスクリーンにできます。
  (各AppのsetupでofSetFullscreen(true)を書けば必要ありません。)

おまけ:1つのウィンドウを2画面に渡って表示

・プロパティのmultiMonitorFullScreenをtrueにする。
・システム環境設定 -> Mission Controlの「ディスプレイごとに個別の操作スペース」のチェックを外す。また、一旦ログアウトする必要あり。

・main.cpp

これによって、2画面をまたいで半分づつ表示されます。

2つのディスプレイの解像度が合っていないとウィンドウの表示のされ方に違いが出ますので、こちらは同型のディスプレイを2つ以上使う場合に適しています。

●この記事を書いた人