如何在Raspberry Pi上控制哪些桌面C ++图形输出?

时间:2014-08-11 17:27:30

标签: c++ raspberry-pi vnc

我正在尝试在我的学校开办一个编程俱乐部,将Pi连接到kb,鼠标和显示器是不切实际的,所以他们都自动运行VNC并连接到机器使用Ultra-VNC。程序编写在共享目录中,Eclipse C ++在主机上运行;因此,所有程序输出都通过VNC查看。

在Python编程和我们开始使用C ++时,一切都很好。但是,在尝试显示图形时,我遇到了一个brik墙。我可以构建一个似乎运行的程序,但它只给出了终端输出 - 它永远不会在屏幕上显示图形。在尝试解决问题的同时,连接了键盘和鼠标并注意到它们似乎被识别出来(激光打开,Caps Lock切换等等)但是当移动/输入时它们没有做任何事情。

最后,一分钱开始变得边缘化,因为我越来越困惑为什么没有其他人有这个问题,因为似乎有很多人使用openvg,我开始想知道更多关于kb /鼠标问题。

我尝试将HDMI输出插入家中的显示器(shool的仍然是模拟d-sub!)并且看,物理kb和鼠标工作。然后真的很奇怪!

不知何故,我有2台桌面同时运行。物理键盘和鼠标控制一个,VNC控制另一个。如果我在'物理'上启动终端窗口桌面,它没有出现在VNC'桌面,反之亦然 - 它们似乎是独立的,尽管这并不完全正确。

当我在'物理'上运行图形可执行文件时桌面,它工作正常,只能使用物理kb控制。当我在VNC'上运行时桌面,它只能用VNC kb控制,但输出显示在物理屏幕上。

我真的不明白!

我需要能够通过VNC运行程序,但我需要能够告诉我运行哪个桌面输出的代码,因为它似乎默认为错误的。实际上,让VNC连接到现有的HDMI桌面而不是开始新的桌面是令人愉快的,但我不知道如何告诉tightVNC这样做。

代码在这里,但我认为问题可能出在库中的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);
}

1 个答案:

答案 0 :(得分:0)

参见上次评论 - 废弃openvg并使用X Windows。