Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 在linux控制台中创建openGL上下文(Raspbian)_C_Graphics_Opengl Es_Console Application_Raspbian - Fatal编程技术网

C 在linux控制台中创建openGL上下文(Raspbian)

C 在linux控制台中创建openGL上下文(Raspbian),c,graphics,opengl-es,console-application,raspbian,C,Graphics,Opengl Es,Console Application,Raspbian,我想用openGL在控制台中进行最小的视觉显示,但据我所知,必须有一个窗口系统(glut、glfw、sdl等) 我见过从控制台构建图形环境(我只是假设它是openGL或类似的东西,所以如果我错了,请纠正我),以节省一些处理能力,并使电影在PI中可观看 我只是想知道他们是怎么做到的?这个话题里有一些文学作品吗?我最感兴趣的是C/C++中的解决方案,但是任何具有这些功能的语言都非常值得了解 我翻遍了源代码,但找不到关于这个特定任务的线索。任何帮助或指示都将不胜感激 它使用本机平台接口 下面是该类的一

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

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

我只是想知道他们是怎么做到的?这个话题里有一些文学作品吗?我最感兴趣的是C/C++中的解决方案,但是任何具有这些功能的语言都非常值得了解

我翻遍了源代码,但找不到关于这个特定任务的线索。任何帮助或指示都将不胜感激

它使用本机平台接口

下面是该类的一些代码:


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

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

/opt/vc/src/hello\u pi

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

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