glew Missing GL version c++ using SDL2 2.0.5 and glew 2.0.0
Posted
技术标签:
【中文标题】glew Missing GL version c++ using SDL2 2.0.5 and glew 2.0.0【英文标题】: 【发布时间】:2017-01-08 16:17:05 【问题描述】:我正在学习 OpenGL 上的“使用 Bens 制作游戏”(https://www.youtube.com/user/makinggameswithben) 教程,我明白了
缺少 gl 版本
每次我尝试初始化 glew。 我已经多次重新安装了glew和SDL2。 我不明白我做错了什么。
我正在使用 glew 2.0.0 和 SDL2 2.0.5
头文件:
#pragma once
#include <string>
#include <vector>
//Graphics
#include <SDL2\SDL.h>
#include <GL\glew.h>
class Display
public://functions:
Display(int m_width, int m_heigth, const char title []);
void update();
~Display();
private:
public://variables:
std::vector<char> error;
int width;
int heigth;
private:
//Window pointer
SDL_Window * m_window;
;
.cpp 文件:
#include "Display.h"
Display::Display(int m_width, int m_heigth, const char title[])
m_window = nullptr;
width = m_width;
heigth = m_heigth;
//Initialize SDL
SDL_Init(SDL_INIT_EVERYTHING);
m_window = SDL_CreateWindow(title, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, m_width, m_heigth, SDL_WINDOW_OPENGL);
//error 1:
if (m_window = nullptr)
error.push_back(255);
//error 2:
SDL_GLContext glContext = SDL_GL_CreateContext(m_window);
if (glContext = nullptr)
error.push_back(254);
const GLenum GLerror = glewInit();
//error 3:
if (GLerror != GLEW_OK)
error.push_back(GLerror);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
glClearColor(0.0f, 0.0f, 1.0f, 1.0f);
void Display::update()
glClearDepth(1.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
SDL_GL_SwapWindow(m_window);
Display::~Display()
delete m_window;
SDL_Quit();
【问题讨论】:
如果你分享你如何编译程序可能有助于找出问题所在。 【参考方案1】:您可能需要这样做:
glewExperimental = GL_TRUE;
就在之前
glewInit();
这将允许 GLEW 使用高于 OpenGL 版本 2.0 的 OpenGL 功能。
【讨论】:
以上是关于glew Missing GL version c++ using SDL2 2.0.5 and glew 2.0.0的主要内容,如果未能解决你的问题,请参考以下文章
使用 CMake 和 Visual Studio 2019 编译 GLEW?