0

多亏了一些帮助,我设法让下面的程序编译并运行,但是尽管它一直在运行,但我看不到 Pi 屏幕上绘制的任何内容。

我不认为这是使用 openvg 和 ajstarks 代码所独有的问题,因为在我编译测试程序的问题期间,我尝试了另一种编写图像的方式(对不起,我只记得它很低级别并且不需要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);
}
4

1 回答 1

0

好的...

幸运的是,我找到了答案,这很奇怪。反正对我来说...

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

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

我一直在继续尝试解决问题,并在某一时刻连接了键盘和鼠标,并注意到它们似乎被识别(激光亮起,Caps Lock 切换等),但它们在移动/键入时没有做任何事情上。

最终,当我越来越困惑为什么没有其他人遇到这个问题时,便士开始在边缘撕裂。似乎很奇怪,没有其他人有这个问题,然后我开始更多地想知道 kb/鼠标问题。

我尝试将 HDMI 输出插入家里的显示器(孩子们仍然是模拟 d-sub!),你瞧,物理 kb 和鼠标工作。然后就真的很奇怪了!

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

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

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

我真的不明白这个!

因此,这回答了最初的问题,因为程序确实在 Pi 上运行。

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

于 2014-08-11T16:57:03.377 回答