簡體   English   中英

如何控制Raspberry Pi上的哪個桌面C ++圖形輸出?

[英]How do I Control Which Desktop C++ Graphics Output to on Raspberry Pi?

我試圖在學校里運行一個編程俱樂部,將Pi物理連接到kb,鼠標和顯示器是不切實際的,因此它們都可以自動運行VNC,而我們使用Ultra-VNC連接到計算機。 這些程序被寫在一個共享目錄中,並且Eclipse C ++在主機上運行。 因此,所有程序輸出均通過VNC查看。

使用Python進行編程時以及我們開始使用C ++時,一切都很好。 但是,當嘗試顯示圖形時,我碰到了磚牆。 我可以構建一個看起來可以運行的程序,但是該程序只能提供終端輸出-它永遠不會在屏幕上顯示圖形。 在嘗試解決該問題時,曾一度連接了鍵盤和鼠標,並注意到它們似乎可以被識別(出現了激光,按下了Caps Lock鍵等),但是在移動/鍵入時它們什么也沒做。

最終,由於越來越多的人開始使用openvg,似乎又有很多人對此感到困惑,我開始對此越來越困惑,一分錢一分錢都開始變得微不足道。我開始對kb / mouse問題產生了更多的疑問。

我嘗試將HDMI輸出插入家用顯示器(學校的仍然是模擬d-sub!),瞧瞧,物理kb和鼠標都能正常工作。 然后真的很奇怪!

不知何故,我有2個台式機同時運行。 物理鍵盤和鼠標控制一個,而VNC控制另一個。 如果我在“物理”桌面上啟動終端窗口,則該窗口不會顯示在“ VNC”桌面上,反之亦然-它們似乎是獨立的,盡管並非如此。

當我在“物理”桌面上運行圖形可執行文件時,它可以正常工作,並且只能使用物理kb進行控制。 當我在“ VNC”桌面上運行它時,只能用VNC kb對其進行控制,但輸出將顯示在物理屏幕上。

我真的不明白!

我有點需要能夠通過VNC運行程序,但是我需要能夠告訴我要運行的代碼輸出到哪個桌面,因為它似乎默認為錯誤的桌面。 實際上,讓VNC連接到現有的HDMI桌面而不是啟動一個新的HDMI桌面是可取的,但是我無法找到如何告訴緊密的VNC那樣做。

代碼在這里,但是我認為問題可能出在庫中的init()函數中,因此最好將VNC安裝到正確的桌面上。

在此先感謝您的幫助!

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

extern "C" {
#include "VG/openvg.h"
#include "VG/vgu.h"
#include "fontinfo.h"
#include "shapes.h"
}

using namespace std;

int main (void) {

int width, height;
        VGfloat w2, h2, w;
    char s[3];

    init(&width, &height);                                      // Graphics initialization

    w2 = (VGfloat)(width/2);
    h2 = (VGfloat)(height/2);
    w  = (VGfloat)w;

    Start(width, height);                                       // Start the picture
    Background(0, 0, 0);                                        // Black background
    Fill(44, 77, 232, 1);                                       // Big blue marble
    Circle(w2, 0, w);                                           // The "world"
    Fill(255, 255, 255, 1);                                     // White text
    TextMid(w2, h2, "hello, world", SerifTypeface, width/10);   // Greetings
    End();                                                      // End the picture
    fgets(s, 2, stdin);                                         // Pause until RETURN]
    finish();                                                   // Graphics cleanup
    exit(0);
}

請參閱最后評論-放棄了openvg並使用X Windows。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM