glewInit() 失败,OpenGL 应用程序

2024-03-17

我正在尝试使用 glew/glfw 构建一个 OpenGL 应用程序。我已经下载了二进制文件,将它们放在文件夹的根目录中,添加了 include 和 lib 目录的路径,并告诉我的项目需要 glew32.lib、GLFW.lib 和 opengl32.lib。

我什至将 glew32.lib 复制到根目录,因为我的项目看不到它。

我必须将所有依赖项保留在项目目录中,因为我将分发它。我不知所措。

现在,当我运行我的程序时,它在 glewInit() 处失败

这是我到目前为止的实现:

#include "Common.h"

GameEngine::GameEngine()
{
    InitWithSize(1024, 768);
    InitInput();
}

void GameEngine::InitWithSize(int _width, int _height)
{
    try {
        // Initialise GLFW
        if( !glfwInit() )
            throw std::exception("Failed to initialize GLFW\n");

        //glfwOpenWindowHint(GLFW_FSAA_SAMPLES, 4);
        glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3); 
        glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 3);
        glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

        // Open a window and create its OpenGL context
        if( !glfwOpenWindow( _width, _height, 0,0,0,0, 32,0, GLFW_WINDOW ) ) 
            throw std::exception("Failed to initialize GLFW\n");


        glfwSetWindowTitle( "Tutorial 01" );

        // Initialize GLEW
        if (glewInit() != GLEW_OK)
            throw std::exception("Failed to initialize GLEW\n");


    } catch ( std::system_error const& err) {
        fprintf(stdout, "System Error: %s", err.what());
        glfwTerminate(); // Free glfw if it has been allocated
        // Try Again
        this->InitWithSize(_width, _height);
    } catch( std::exception const& err) {
        fprintf(stdout, "Exception Found: %s", err.what());
    } catch ( ... ) {
        fprintf(stdout,"Unknown Exception Occurred\n");
    }
}

void GameEngine::InitInput()
{
        // Ensure we can capture the escape key being pressed below
        glfwEnable( GLFW_STICKY_KEYS );
}

void GameEngine::StartGameLoop()
{
    do{
            // Draw nothing, see you in tutorial 2 !

            // Swap buffers
            glfwSwapBuffers();

        } // Check if the ESC key was pressed or the window was closed
        while( glfwGetKey( GLFW_KEY_ESC ) != GLFW_PRESS &&
            glfwGetWindowParam( GLFW_OPENED ) );
}


void GameEngine::InitTestData()
{
    // An array of 3 vectors which represents 3 vertices
    static const GLfloat g_vertex_buffer_data[] = {
        -1.0f, -1.0f, 0.0f,
        1.0f, -1.0f, 0.0f,
        0.0f,  1.0f, 0.0f,
    };

}

使用我的通用标题:

#ifndef _COMMON_H
#define _COMMON_H

// OpenGL Libraries
#define GLEW_STATIC
//#pragma comment(lib, "glew32.lib")
#include <GL\glew.h>
#include <GL\glfw.h>

// Core Libraries
#include <Windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <map>
#include <string>
#include <fstream>

// C++ 11 Libraries
#include <memory>
#include <exception>
#include <thread>
#include <chrono>

// Manager Classes
#include "ThreadManager.h"
#include "GameEngine.h"
#include "ShaderManager.h"

// Lesser Classes
#include "Shader.h"

#endif

我知道这个答案来得有点晚了,但我没有看到你通过调用使 OpenGL 上下文成为当前上下文glfwMakeContextCurrent(window)。你必须在打电话之前这样做glewInit()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

glewInit() 失败,OpenGL 应用程序 的相关文章

  • glDrawElements 在 PyOpenGL 中绘制立方体

    我最近开始通过 Python 学习 OpenGL 这要归功于几个教程 尤其是 Nicolas P Rougier 的教程 http www labri fr perso nrougier teaching opengl http www l
  • OpenGL 超级采样抗锯齿?

    在办公室 我们正在使用旧的 GLX Motif 软件 该软件使用 OpenGL 的 AccumulationBuffer 来实现保存图像的抗锯齿功能 我们的问题是Apple从其所有驱动程序中删除了AccumulationBuffer 从OS
  • glGenerateMipmap 是否在 sRGB 纹理的线性空间中执行平均?

    OpenGL 3 3 规范似乎没有要求 mipmap 生成在线性空间中完成 我能找到的只有以下内容 派生的 mipmap 数组的内部格式都与 levelbase 数组和派生数组的维度如下 第 3 8 14 节中描述的要求 的内容 派生数组是
  • Qt 5 和 OS X Mavericks 问题

    我正在使用 Cmake 在 OS X 10 9 上构建 QT 项目 自 Mavericks 以来 OpenGL 标头的位置似乎发生了变化 文件夹 System Library Frameworks OpenGL framework Head
  • libgdx 中帧缓冲区的结果不明确

    我得到以下奇怪的结果帧缓冲区 http libgdx badlogicgames com nightlies docs api com badlogic gdx graphics glutils FrameBuffer htmllibgdx
  • OpenGL Z 偏置(多边形偏移)限制

    我有两个共面的多边形 我尝试做 glEnable GL POLYGON OFFSET FILL glPolygonOffset 0 1 并期望其中一个明显 位于 另一个之上 这种情况直到大约 70 75 个单位之外 近剪裁平面为 1 远剪裁
  • Opengl 非同步/非阻塞地图

    我刚刚找到以下内容OpenGL 规范ARB map buffer range http www opengl org registry specs ARB map buffer range txt 我想知道是否可以使用此扩展进行非阻塞地图调
  • OpenGL 说“from_param 收到了一个不连续的数组”

    安装 Yosemite 后 我必须升级 numpy PyOpenGL 等 现在 以前运行的程序给了我以下堆栈跟踪 file latebind pyx line 44 in OpenGL accelerate latebind Curry c
  • 纹理openGl。 C++、qt

    我试图用草纹理覆盖我的地形 由高度图制成 但它没有按预期工作 我什至无法在简单的 GL QUAD 上获取纹理 结果是多色网络 void GLWidget initializeGL glEnable GL TEXTURE 2D 在 QGLwi
  • (定义一个宏)方便OpenGL命令调试?

    有时插入条件打印和检查需要很长时间glGetError 使用二分搜索的形式来缩小范围 其中第一个函数调用是 OpenGL 首先报告错误 我认为如果有一种方法可以构建一个宏 我可以包装所有可能失败的 GL 调用 并有条件地调用 那就太酷了gl
  • OpenGL 的每个组件 alpha 通道?

    是否可以使用 OpenGL 对每个组件使用一个 alpha 通道 一个用于红色 一个用于绿色 一个用于蓝色 进行混合 如果没有 有哪些可能的解决方法 这不是直接支持的东西 不过 您自己实现起来相当容易 使用 3 通道 alpha 纹理渲染三
  • OpenGL:调试“单通道线框渲染”

    我正在尝试实现论文 单通道线框渲染 它看起来很简单 但它给了我所期望的厚暗值 论文没有给出计算海拔高度的确切代码 所以我按照自己认为合适的方式进行了操作 代码应该将三个顶点投影到视口空间中 获取它们的 高度 并将它们发送到片段着色器 片段着
  • 我的绘图存在坐标/glortho 问题

    I have made a bit of a change to my code in the last couple of hours as everything was messy with my grid so I made it i
  • openGL转png

    我正在尝试将包含大量纹理 没有移动 的 openGL 编辑 我画的卡片 thx unwind 转换为一个 PNG 文件 我可以在框架的另一部分中使用该文件我正在与 有 C 库可以做到这一点吗 thanks 如果您的意思只是 获取由 Open
  • OpenGL 着色器不与着色器程序链接

    我正在尝试使用 GLFW GLEW 添加着色器 我收到一个错误 指出着色器已加载 但它们没有有效的对象代码 这是我用于加载着色器的代码 class SHADER public void LoadShaders const char vert
  • WebKit 是否使用 OpenGL 来渲染 CSS 过渡?

    WebKit 是使用 OpenGL 来渲染 CSS 过渡 还是使用软件渲染 WebKit 只是一个前端 这取决于后端和硬件支持 谷歌浏览器使用skia http code google com p skia 作为后端 它可以使用软件或硬件
  • Eclipse 标记 OpenGL 函数无法解析

    我尝试在 Eclipse C C 中使用一些 OpenGL 函数 一些 标准 函数如 GlClear 可以被 eclipse 识别 而其他函数如 glBindBuffer 和 glEnableVertexAttribArray 则不能 它们
  • OpenGL - 两个纹理的幂

    OpenGL 使用二次幂纹理 这是因为由于 MipMapping 某些 GPU 只接受 2 的幂纹理 当绘制比实际更大的纹理时 使用这些二次方纹理会导致问题 我想到了一种方法来解决这个问题 即仅在我们使纹理小于实际大小时使用 PO2 比率
  • GLSL NVidia 方形神器

    当 GLSL 着色器在以下 GPU 上生成不正确的图像时 我遇到了问题 GT 430 GT 770 GTX 570显卡760 但在这些上正常工作 英特尔高清显卡 2500英特尔高清4000英特尔4400显卡740MRadeon HD 631
  • 三角形纹理映射OpenGL

    我正在开发一个使用 Marching Cubes 算法并将数据更改为 3D 模型的项目 现在我想在 OpenGL 中为我的 3D 模型使用纹理映射 我首先尝试了一个简单的示例 它将图片映射到三角形上 这是我的代码 int DrawGLSce

随机推荐

  • 如何在 Ionic 中实现媒体查询

    我想为我的离子应用程序添加完整的背景图像 并为每个设备添加不同的图像 这是我的 CSS 代码 iPhone 6 媒体查询 media max width 750px and max height 1334px pane view backg
  • 在Doctrine 2.2中体现MySQL多态关联

    我将 Doctrine 2 2 0 与 Codeigniter 一起使用 我是 Doctrine 或者一般的 ORM 的新手 我正在基于 YAML 文件设置实体和代理类 效果很好 我在 Doctrine 类中反映数据库中的多态关联时确实遇到
  • 如何在Java游戏中播放声音?

    我使用以下代码成功在 Java 1 5 小程序游戏中播放声音 get an available clip to play it Clip clip null for Clip clipTemp players if clipTemp isO
  • 如何将seaborn轴添加到带有子图的matplotlib图形中?

    我有一个返回seaborn 情节的函数 我想通过循环将多个seaborn图添加到一个图形中 我找到了答案here https stackoverflow com questions 6309472 matplotlib can i crea
  • 使用 .net 紧凑框架进行本地化

    我正在使用 NET Compact Framework 3 5 和 MS Visual Studio 2008 为移动设备 Windows CE 5 0 预装 NET Compact Framework 2 0 开发应用程序 我正在使用内置
  • 无法在 pandas 中使用 dropna 删除 NAN

    我将 pandas 导入为 pd 并运行下面的代码并得到以下结果 Code traindataset pd read csv Users train csv print traindataset dtypes print traindata
  • Javascript 中的多行警报

    这段代码 alert Hello again This is how we n add line breaks to an alert box 不起作用 Firefox JavaScript 控制台将错误命名为 未终止的字符串文字 并指向
  • 以编程方式设置 grunt 任务的选项?

    我有一个繁琐的任务 查看选项grunt option foo 如果我从以下位置调用此任务grunt task run my task 我怎样才能改变这些论点 我正在寻找类似的东西 grunt task run my task foo bar
  • 在条件执行之前从 NHibernate 条件获取 SQL 查询

    我有一个 NHibernate 标准 我需要从中获取 SQL 查询 我尝试了各种方法here https stackoverflow com questions 554481 how to get sql from hibernate cr
  • Polars 从日期时间对象中添加/减去 UTC 偏移量

    我想添加 减去UTC极坐标中日期时间对象的偏移量 通常以小时为单位 但我似乎没有找到实现此目的的方法 鉴于日历年中存在夏令时 UTC 偏移量可以是动态的 例如 EST EDT 映射到 5 4 小时UTC分别偏移 from datetime
  • 创建可以通过拖动背景区域中的任意位置来移动的非矩形表单

    我想通过左键单击并按住背景区域来移动表单窗口 就像我们通常使用标题栏一样 然后我还想将应用程序的表单窗口 即矩形窗口 更改为自定义设计的图形窗口 我在许多其他应用程序中看到过这种类型的窗口 所以我相信这是可能的 问题一 要允许在拖动其客户区
  • 如何使用 Cordova 处理文件?

    注意 此问题被重新发布 因为无论出于何种原因 原始发布者决定在提供并接受答案后将其删除 因此 我再次添加它以保存知识 原问题 我尝试在混合应用程序中使用 apache cordova api 从 localhost 8080 filenam
  • 如何从 CoNLL 格式转换为 spacy 格式

    我目前正在研究 NER 模型 我有一堆以 CoNLL 格式存储的数据 需要转换为 Spacy 格式 在 CoNLL 中 句子的每个单词旁边都有一个标签 在 Spacy 中 标签仅显示给具有实际标签的单词 我如何从下面的这种格式转换 CoNL
  • 为什么 clang 发出 32 位 float ps 指令来获取 64 位 double 的绝对值?

    clang为什么会转fabs double into vandps代替vandpd 就像海湾合作委员会那样 示例来自编译器资源管理器 https gcc godbolt org z TsfW9hrjT include
  • UTC 和 Etc/UTC 时区之间有区别吗?

    在 PHP 文档中 支持的时区列表 http php net manual en timezones others php UTC被列出两次 UTC Etc UTC 这两者之间有概念上的区别吗 或者它们只是同义词 简短回答 NO 有没有不同
  • JCL 安装到 Delphi 10 西雅图时出错

    我正在尝试将 JCL JVCL 安装到 Delphi 10 Seattle 中 我收到以下错误 使用 Embarcadero RAD Studio 10 西雅图 Embarcadero Delphi for Win32 编译器版本30 0
  • PHP 浮动使用的最佳实践

    我读过浮点指南 http floating point gui de languages php 关于在 PHP 中使用 float 类型 答案是使用 BC Math 扩展 使用字符串可以将浮点数表示为精确类型 并防止浮点数和整数问题 同时
  • 从 VBA 中的不同模块调用子例程

    是否可以从一个函数调用一个函数Module到另一个 我有以下代码 Sub MAIN Call IDLE End Sub MAIN位于Module1 IDLE位于Module2并定义为 Sub IDLE 在调用前加上 Module2 前缀 例
  • 使用 SUMO 场景的子集进行 OMNeT++ 网络模拟(使用 VEINS)

    我正在尝试使用 OMNeT Veins 和 SUMO 评估在车载网络上运行的应用程序 因为该应用程序依赖于现实的流量行为 所以我决定使用LuST场景 https github com lcodeca LuSTScenario 这似乎是此类数
  • glewInit() 失败,OpenGL 应用程序

    我正在尝试使用 glew glfw 构建一个 OpenGL 应用程序 我已经下载了二进制文件 将它们放在文件夹的根目录中 添加了 include 和 lib 目录的路径 并告诉我的项目需要 glew32 lib GLFW lib 和 ope