0

仕事のために、私は非常に特殊なソフトウェアを開発しており、各モニターで1つずつ、2つのフルスクリーンアプリケーションを実行する必要があります。簡単にするために、現在、AMD Radeon HD グラフィックス カードを搭載した LUbuntu 64 ビットを使用しています (現在正確なバージョンを思い出すことはできませんが、かなり新しいものです)。

可能であれば SDL2 を使い続けたいと思っていますが、それをハッキングしたり、別のライブラリに移動したりする必要がある場合は、それで十分です。

それで、私の質問は、Linux の異なるモニターで 2 つのフルスクリーン アプリケーションを実行することは可能ですか (可能であれば、どのようなセットアップ手順を実行する必要がありますか)? ディスプレイを列挙して左上の x/y 位置を取得し、ウィンドウをそのモニターに移動して全画面表示するように SDL に指示するにはどうすればよいでしょうか?

注: この質問が厳密にUbuntuプラットフォームを中心に展開しているかどうかわからないため、これをaskubuntuに投稿しませんでした。

アップデート:

からの出力は次のxrandr -qとおりです。

Screen 0: minimum 320 x 200, current 3200 x 1080, maximum 3200 x 3200
DFP1 disconnected (normal left inverted right x axis y axis)
DFP2 disconnected (normal left inverted right x axis y axis)
DFP3 disconnected (normal left inverted right x axis y axis)
DFP4 disconnected (normal left inverted right x axis y axis)
DFP5 disconnected (normal left inverted right x axis y axis)
DFP6 disconnected (normal left inverted right x axis y axis)
DFP7 disconnected (normal left inverted right x axis y axis)
DFP8 disconnected (normal left inverted right x axis y axis)
DFP9 connected 1920x1080+1280+0 (normal left inverted right x axis y axis) 533mm x 312mm
   1280x1024      50.0 +   75.0     60.0     30.0     24.0  
   1920x1080      60.0 +   50.0*    59.9     30.0     25.0     30.0     24.0     30.0     30.0     24.0  
   1776x1000      50.0     59.9     25.0     24.0     30.0     30.0  
   1680x1050      50.0     60.0     30.0     24.0  
   1400x1050      50.0     60.0     30.0     24.0  
   1600x900       50.0     60.0     30.0     24.0  
   1440x900       50.0     59.9     30.0     24.0  
   1280x960       50.0     60.0     30.0     24.0  
   1280x800       50.0     59.8     30.0     24.0  
   1152x864       50.0     59.9     75.0     30.0     24.0  
   1280x768       50.0     59.8     30.0     24.0  
   1280x720       60.0     50.0     59.9     30.0     24.0  
   1024x768       50.0     75.0     70.1     30.0     24.0     60.0  
   1152x648       50.0     59.9  
   800x600        50.0     30.0     24.0     72.2     75.0     60.3     56.2  
   720x576        59.9     30.0     24.0     50.0  
   720x480        50.0     30.0     24.0     60.0     59.9  
   640x480        50.0     30.0     24.0     75.0     72.8     67.0     60.0     59.9  
DFP10 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm x 301mm
   1280x1024      60.0*+   76.0     75.0     72.0  
   1280x960       76.0     75.0     72.0     60.0  
   1152x864       75.0     60.0  
   1280x768       76.0     75.0     72.0     60.0  
   1280x720       76.0     75.0     72.0     60.0  
   1024x768       75.0     70.1     60.0  
   800x600        72.2     75.0     60.3  
   640x480        75.0     72.8     67.0     59.9  
   640x350        60.0     70.1  
CRT1 disconnected (normal left inverted right x axis y axis)

この情報をどうするかについてのより良い説明を求めて、いくつかのフォーラムを検索してみましたが、次のようにする必要があるようです:

xrandr --output DFP9 --auto --output DFP10 --auto

これを行っても、まだ 1 つのディスプレイ (":0") しかありません。

4

2 に答える 2

1

あなたの設定は何ですか?実際に 2 つの別々の X ディスプレイを持っていますか、それとも Xinerama を使用して 2 つを組み合わせていますか?

2 つのディスプレイを使用している場合は、独自の -display または DISPLAY 環境変数が必要です。それを使用して、新しいアプリを実行できます。

$ echo $DISPLAY
:0.0
$ xterm -display :0.0

他のディスプレイでシェルを開いて、他のディスプレイ環境変数を取得します。

[Wth,Ht+X+Y] の形式の -geometry もあります。

$ xterm -geometry 132x80+500+0

Xinerama が有効になっている場合、他のディスプレイは通常 +X+Y オフセットになります。

もちろん、これにはアプリがコマンド ライン引数を処理する必要があります。次に、ウィンドウを初期化するときにそれらを X に渡します。xterm の場合、幅と高さはテキスト文字の単位であり、X/Y は画面のピクセルです。

于 2013-03-15T15:39:56.800 に答える
0

X構成を制御でき、他のアプリケーションが実稼働ワークステーションに表示されない場合は、「Xinerama」機能を無効にして2つの画面を設定することをお勧めします。次に、アプリを接続して、それぞれから画面サイズを取得することができ:0.0ます:0.1

于 2013-03-15T15:30:39.103 に答える