首先完成glew的初始化,在Display.cpp构造函数中,添加
GLenum status=glewInit();
if(status!=GLEW_OK)
{
std::cerr<<"glew init failure!"<<std::endl;
}
这样,每次构造Display对象是,就已经完成了GLEW的初始化.
添加SDL事件处理,在Display.cpp中添加Update()函数 ,实现如下
SDL_GL_SwapWindow(m_Window);
SDL_Event e;
while(SDL_PollEvent(&e))
{
if(e.type==SDL_QUIT)
{
m_isClose=true;
}
}
在Display.h中添加bool m_isClose;并初始化为false.
最后在main.cpp中添加
while(!display.IsClose())
{
glClearColor(0.0f,0.15f,0.3f,1.0f);
glClear(GL_COLOR_BUFFER_BIT);
display.Update();
}
由于glClearColor和glClear用的非常普遍,所以在Display中添加Clear(float r ,float g,float b,float b)函数,并这两行代码添加到Display::Clear函数中,完成整个窗口的绘制.