1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| initializeOpenGLFunctions(); glClearColor(0.0f,0.0f,0.0f,1.0f);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_RGBA|GL_ALPHA_BITS); glEnable(GL_DEPTH_TEST);
program = new QOpenGLShaderProgram; program->addCacheableShaderFromSourceFile(QOpenGLShader::Vertex,":/resources/vsrc.glsl"); program->addCacheableShaderFromSourceFile(QOpenGLShader::Fragment,":/resources/fsrc.glsl"); program->bindAttributeLocation("aPos",0); program->bindAttributeLocation("aColor",1); program->link(); program->bind();
glGenBuffers(4, &m_vboIds[0]); GLfloat triangleVertices[] = { 0.0f, 1.0f, 0.0f, -1.0f,-1.0f, 0.0f, 1.0f,-1.0f, 0.0f, }; glBindBuffer(GL_ARRAY_BUFFER, m_vboIds[0]); glBufferData(GL_ARRAY_BUFFER, sizeof(triangleVertices), triangleVertices, GL_STATIC_DRAW);
GLfloat triangleColors[] = { 1.0f,0.0f,0.0f, 0.0f,1.0f,0.0f, 0.0f,0.0f,1.0f }; glBindBuffer(GL_ARRAY_BUFFER, m_vboIds[1]); glBufferData(GL_ARRAY_BUFFER, sizeof(triangleColors), triangleColors, GL_STATIC_DRAW);
GLfloat quadVertices[] = { 1.0f, 1.0f, 0.0f, -1.0f, 1.0f, 0.0f, 1.0f,-1.0f, 0.0f, -1.0f,-1.0f, 0.0f }; glBindBuffer(GL_ARRAY_BUFFER, m_vboIds[2]); glBufferData(GL_ARRAY_BUFFER, sizeof(quadVertices), quadVertices, GL_STATIC_DRAW);
GLfloat quadColors[] = { 0.5f,0.5f,1.0f, 0.5f,0.5f,1.0f, 0.5f,0.5f,1.0f, 0.5f,0.5f,1.0f }; glBindBuffer(GL_ARRAY_BUFFER, m_vboIds[3]); glBufferData(GL_ARRAY_BUFFER, sizeof(quadColors), quadColors, GL_STATIC_DRAW);
|