如何控制树莓派上的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和鼠标工作了。然后事情变得很奇怪!
不知怎么的,我有两个桌面同时运行。其中一个由物理键盘和鼠标控制,另一个由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);
}
参见最后一条注释-放弃openvg并使用X Windows
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 如何从void函数输出字符串
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- AES加密到解密未正确输出
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用C++程序合并排序没有得到正确的输出
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- C++格式化输出问题
- 将值从二维数组输出到文本文件
- 集合上的输出迭代器:assign和increment迭代器
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 为什么rk4.do_step不输出C++中的初始条件
- 输出没有重复元素的动态数组(收缩数组)C++
- 如何根据单词在文本中出现的概率输出单词