无法在Raspberry Pi上使用C ++绘图

时间:2014-08-10 23:57:43

标签: c++ raspberry-pi drawing2d openvg

由于一些帮助,我得到了下面的程序来编译和运行,但是虽然它一直在消失,我看不到在Pi的屏幕上绘制的任何东西。

我不认为这是使用openvg和ajstarks代码所特有的问题,因为在problem I had compiling the test progam期间,我尝试了一种不同的写图像方式(对不起,我记得的只是那个它是低级别的,并不需要openvg的包含。它花了一些时间进行搜索和重写以使其编译,当它发生同样的事情时。

我坚持了一段时间,但没有在哪里。 Raspberry Pi和X Windows引发了一些限制,导致了同样的问题。你绘制的东西但它没有显示。鉴于有几条评论表明openvg有效,我回过头来(感谢一个叫Ross的家伙)最终找出了为什么我无法编译代码。

所以现在我正处于可以编译其他人必须成功运行的代码的地步,但它并没有在屏幕上绘制任何东西。我知道代码运行 - 它咀嚼CPU周期(官方演示确实如此,尽管它仍然肯定会发展,但是我的代码可以放弃)并且代码可以退出

使用图形的另一种方法遇到了相同的无输出显示问题,所以我认为问题出在我的Pi上,但我在如何处理X Windows(或者它可能是X11,希望我保持标签打开!)不想绘制问题。

任何帮助都非常感谢,提前感谢!

#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)

好的......

由于幸运,我找到了答案,这很奇怪。无论如何对我来说......

如果其他人遇到问题,这里的(部分)解决方案会导致另一个问题很快发布。

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

我一直在尝试解决这个问题,并且一度连接了键盘和鼠标,并注意到它们似乎已被识别(激光打开,Caps Lock切换等),但是当他们没有做任何事情时移动/输入。

最后,随着我越来越困惑为什么没有其他人遇到这个问题,便士开始在边缘开始。似乎很奇怪,没有其他人有这个问题,然后我开始怀疑更多关于kb /鼠标的问题。

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

不知何故,我有2台桌面同时运行。物理键盘和鼠标控制一个,VNC控制另一个。有趣的是,VNC的标题是 Pi的X桌面,暗示图形问题可能与X有关,但我不确定下面的原因。

如果我在“物理”桌面上启动一个终端窗口,它不会显示在“VNC”桌面上,反之亦然 - 它们似乎是独立的,尽管这并不完全正确。

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

我真的不明白!

所以,这回答了原始问题,因为程序确实在Pi上运行。

关于如何让VNC显示“物理”桌面或如何将图形输出定位到“正确”的桌面,发布(希望是最终的)问题。