【发布时间】:2014-10-03 17:50:54
【问题描述】:
在一些帮助下,我设法让下面的程序编译并运行,但尽管它一直在运行,但我在 Pi 的屏幕上看不到任何东西。
我不认为这是使用 openvg 和 ajstarks 代码所独有的问题,因为在 problem I had compiling the test progam 期间,我尝试了另一种编写图像的方式(对不起,我只记得它是低级的并且不需要openvg的包含)。它需要一些搜索和重写才能编译,当它编译时,同样的事情发生了。
我坚持了一段时间,但没有成功。有人提到 Raspberry Pi 和 X Windows 的某种限制会导致同样的问题。你画了一些东西,但它不显示。鉴于有几个 cmets 表明 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);
}
【问题讨论】:
-
我四处搜索了一下,发现这个'......对于休闲编码人员来说,目前有一个小障碍。传统方式(在 Linux 上)是使用 X 窗口系统提供一个可以渲染 OpenGL/OpenGL ES 表面的表面。目前,树莓派的 X 实现无法做到这一点,所以你不能使用 X 来提供你的表面。虽然我没有尝试这些库,但我认为问题是相关的。
-
我也尝试过与 OpenVG 无关的this code 并且发生了同样的事情 - prog 使用控制台输出运行,但没有屏幕显示应该有...
-
如果您想绘制简单的形状,也许您应该尝试 Raspian 附带的 PyGame。如果您想坚持使用 c++,我建议您尝试 OpenFrameworks,因为它在幕后处理 OpenGLES 渲染,您可以轻松绘制 circles 或其他形状
标签: c++ raspberry-pi drawing2d openvg