我想用openGL在控制台中进行最小的视觉显示,但据我所知,必须有一个窗口系统(glut,glfw,sdl等等)。
我已经看到omxplayer从控制台构建一个图形环境(我只是假设它是openGL或类似的东西,所以请纠正我,如果我错了),以节省一些处理能力,并使PI中可观看的电影。
我只是想知道他们是怎么做到的?这个主题中有一些文献吗?我最感兴趣的是C / C ++中的解决方案,但任何具有这些功能的语言都会很有用!
我通过源代码搜索,但无法真正找到关于此特定任务的线索。任何帮助或指针将不胜感激!
答案 0 :(得分:3)
注意:Raspberry Pi执行OpenGL ES,而不是OpenGL。
您可以在VideoCore SDK中找到基于控制台的OpenGL ES应用程序的示例:
/opt/vc/src/hello_pi
我不确定“窗口系统”是什么意思,特别是当你提到SDL时。您绝对可以在控制台中使用SDL + OpenGL ES。这就是Quake3端口(以及我制作的Quake2端口)所使用的。
答案 1 :(得分:2)
它使用EGL本机平台接口。
以下是SubtitleRenderer类的一些代码:
void SubtitleRenderer::initialize_vg() {
// get an EGL display connection
display_ = eglGetDisplay(EGL_DEFAULT_DISPLAY);
ENFORCE(display_);
// initialize the EGL display connection
ENFORCE(eglInitialize(display_, NULL, NULL));
// get an appropriate EGL frame buffer configuration
static const EGLint attribute_list[] = {
EGL_RED_SIZE, 8,
EGL_GREEN_SIZE, 8,
EGL_BLUE_SIZE, 8,
EGL_ALPHA_SIZE, 8,
EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
EGL_NONE
};
EGLConfig config{};
EGLint num_config{};
ENFORCE(eglChooseConfig(display_, attribute_list, &config, 1, &num_config));