当前位置: 首页 > 知识库问答 >
问题:

GLFW无法加载所有GL ES 2.0函数

蒯华彩
2023-03-14
    glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_ES_API);
    glfwWindowHint(GLFW_CONTEXT_CREATION_API, GLFW_NATIVE_CONTEXT_API);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);

    glfwindow  = glfwCreateWindow(width, height, "Window Title", NULL, NULL);
    if (!glfwindow)
    {
        glfwTerminate();
        exit(1);
    }

    glfwMakeContextCurrent(glfwindow);

然后,它甚至无法创建着色器(glCreateShader())返回0。

但是如果我使用GLFW_EGL_CONTEXT_API,我就可以完成大多数GL例程,如着色器加载、程序编译和链接、GL VBO设置等,但是在glDrawElements()上失败了。

如果我使用此设置打印供应商信息,我可以看到以下内容:

另外,如果我试图手动检索glDrawElements的函数指针,它将返回NULL。

PFNGLDRAWELEMENTSPROC func = reinterpret_cast<PFNGLDRAWELEMENTSPROC>
(eglGetProcAddress("glDrawElements"));

我想了解什么可能是问题,以及如何使用GLFW为GL ES上下文创建正确的方式。

共有1个答案

景靖琪
2023-03-14

由于没有人回答我自己的问题,也因为我很久以前就已经找到了问题的根源,这里有一个解释:

GLFW对GLES上下文初始化很好。问题是链接的库。在窗口上模拟GLES时,不能链接opengl32.lib。在我的例子中,我使用PowerVR SDK及其ES2和ES3 libs。因此,以下lib是必需的:

glfw3.lib

利贝格

libglesv2.lib

 类似资料:
  • 我可以运行我的项目,并且没有错误地运行它。但当我运行测试时,它不能。 我看到文档,一步一步地。 我不知道我在哪里犯了错误。 配置: 测试文件 错误消息:

  • 我实际上有几个问题,第一个问题是为什么我的CSS文件没有加载?需要说明的是,我对HTML和CSS非常陌生,这实际上是我的第一个项目,所以不要太苛刻?而且,有时我的视频没有加载,就像我有一个模因页面,它只是给我一个黑色的视频播放器。我决定忽略它,专注于CSS,然后测试我的页面和加载的memes。我的最后一个问题是如何将多个视频/音频加在一起。例如,如果我有三个音频文件,如音频一,音频二,音频三,只有

  • 我实际上有几个问题,第一个问题是为什么我的CSS文件没有加载?需要说明的是,我对HTML和CSS非常陌生,这实际上是我的第一个项目,所以不要太苛刻?而且,有时我的视频没有加载,就像我有一个模因页面,它只是给我一个黑色的视频播放器。我决定忽略它,专注于CSS,然后测试我的页面和加载的memes。我的最后一个问题是如何将多个视频/音频加在一起。例如,如果我有三个音频文件,如音频一,音频二,音频三,只有

  • 这是密码。没有警告,文件正常。

  • 问题内容: 我想要一个jQuery进度栏,该进度栏会根据服务器端请求的状态进行更新。我基于本教程编写此代码,但它使用文件上传器作为基础(与此问题相同)。没有文件上传器,我无法使其工作完全相同。问题是进度条仅在process.php完成后才更新。它等待整个过程完成,而不是异步请求进度更新。我只看到数据:数据警报一次。 有任何想法吗? 网页: Process.php-提交表单时调用 javascrip

  • 在中设置回调函数时,要使用什么? 我尝试将函数设置为类型<code>void。将其更改为<code>void __stdcall,但如何使用<code>GLFW的<code>typedef,例如<code>GLFW*fun?我认为这是正确的选择。我真的需要一个示例源代码。 顺便说一句,我将GLFW定义为 更新 我的代码是这样的: (我以三种方式做到了) 一 原型。因为在下面,所以这个给我一个编译错