このチュートリアルに基づいて、三角形をレンダリングすることになっている単純な OpenGL 3.3 プログラムを作成しましたが、最初から行うのではなく、GLFW を使用してウィンドウとコンテキストを作成しています。また、Ubuntuを使用しています。
三角形はレンダリングされませんが、黒い画面が表示されます。関数は適切に動作しているようglClearColor()
にglClear()
見えますが、三角形をレンダリングするコードはそうではありません。関連するビットは次のとおりです。
#define GLFW_INCLUDE_GL_3
#include <GL/glew.h>
#include <GLFW/glfw3.h>
int main ()
{
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
GLFWwindow* window = glfwCreateWindow(800, 600, "GLFW test", NULL, NULL);
glfwMakeContextCurrent(window);
glewExperimental = GL_TRUE;
glewInit();
float vertices[] = {-0.5f, -0.5f, 0.0f, 0.5f, 0.5f, -0.5f};
GLuint VBOid[1];
glClear(GL_COLOR_BUFFER_BIT);
glGenBuffers(1, VBOid);
glBindBuffer(GL_ARRAY_BUFFER, VBOid[0]);
glBufferData(GL_ARRAY_BUFFER, 6 * sizeof(float), vertices, GL_STATIC_DRAW);
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, VBOid[0]);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);
glDrawArrays(GL_TRIANGLES, 0, 3);
...
}
私は何が欠けていますか?