2

我想用openGL在控制台中做一个最小的视觉显示,但据我所知,必须涉及一个窗​​口系统(glut、glfw、sdl等)。

我已经看到omxplayer从控制台构建了一个图形环境(我只是假设它是 openGL 或类似的东西,所以如果我错了,请纠正我),以节省一些处理能力,并使电影在 PI 中可观看。

我只是想知道他们是怎么做到的?该主题是否有一些文献?我对 C/C++ 中的解决方案最感兴趣,但是任何具有这些功能的语言都会很高兴知道!

我翻阅了源代码,但无法真正找到有关此特定任务的线索。任何帮助或指针将不胜感激!

4

2 回答 2

3

注意:Raspberry Pi 使用 OpenGL ES,而不是 OpenGL。

您可以在 VideoCore SDK 中找到制作基于控制台的 OpenGL ES 应用程序的示例:

/opt/vc/src/hello_pi

我不确定您所说的“窗口系统”是什么意思,尤其是当您提到 SDL 时。您绝对可以在控制台中使用 SDL + OpenGL ES。这就是 Quake3 端口(和我制作的 Quake2 端口)使用的。

于 2013-04-18T11:03:35.413 回答
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));
于 2013-04-18T10:56:08.817 回答