参考youtube教程:Game Engine Development
视频教程中为vs2012+qt4,本文改动将会注明
//sandbox.cpp
#include
int main(int argc, char* argv[]) {
QApplication Application(argc, argv);
return Application.exec();
}
//sandbox.cpp
#include
#include
int main(int argc, char* argv[]) {
QApplication Application(argc, argv);
qWidget myGlWidget;
myGlWidget.show();
return Application.exec();
}
//MyGlWindow.h
#ifndef SANDBOX_MY_GL_WINDOW
#define SANDBOX_MY_GL_WINDOW
#include
class MyGlWindow : public QGLWidget
{
};
#endif
//sandbox.cpp
#include
#include
#include "MyGlWindow.h"
int main(int argc, char* argv[]) {
QApplication Application(argc, argv);
MyGlWindow myGlWidget;
myGlWidget.show();
return Application.exec();
}
//MyGlWindow.h
#ifndef SANDBOX_MY_GL_WINDOW
#define SANDBOX_MY_GL_WINDOW
#include
class MyGlWindow : public QGLWidget
{
protected:
void initializeGL();
void paintGL();
};
#endif
//MyGlWindow.cpp
#include
#include
#include "MyGlWindow.h"
void MyGlWindow::initializeGL() {
GLenum errorCode = glewInit();
assert(errorCode == 0);
GLuint myBufferID;
glGenBuffers(1, &myBufferID);
glBindBuffer(GL_ARRAY_BUFFER, myBufferID);
float verts[] = {
+0.0f,+1.0f,
-1.0f,-1.0f,
+1.0f,-1.0f,
};
glBufferData(GL_ARRAY_BUFFER, sizeof verts, verts,
GL_STATIC_DRAW);
}
void MyGlWindow::paintGL() {
glClear(GL_COLOR_BUFFER_BIT);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, 0);
glDrawArrays(GL_TRIANGLES, 0, 3);
}