glad create_window create opengl glfw

opengl - create_window - glfw ubuntu



¿Cómo creo un contexto OpenGL 3.3 en GLFW 3? (1)

He escrito un sencillo programa OpenGL 3.3 que se supone renderiza un triángulo, basado en este tutorial , excepto que estoy usando GLFW para crear la ventana y el contexto, en lugar de hacerlo desde cero. Además, estoy usando Ubuntu.

Sin embargo, el triángulo no representa, solo tengo una pantalla negra. Las funciones como glClearColor() y glClear() parecen funcionar exactamente como deberían, pero el código para representar el triángulo no funciona. Aquí están los aspectos relevantes de esto:

#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); ... }

¿Qué me estoy perdiendo?


En el perfil central OpenGL 3.3, necesita un sombreador para renderizar. Por lo tanto, debe compilar y vincular un programa que contenga un vértice y un sombreador de fragmentos.