gpt4 book ai didi

c++ - 使用 OpenGL 和 GLFW 的简单三角形

转载 作者:行者123 更新时间:2023-11-27 23:04:06 25 4
gpt4 key购买 nike

<分区>

我编写了一个小程序来使用顶点缓冲区显示一个简单的三角形。对于窗口,我使用的是 glfw,我的环境是 Mac 10.9,XCode 5。

窗口显示为黑色,但三角形未绘制。

这里是代码:

#include <GLFW/glfw3.h>
#include <OpenGL/gl.h>
#include <iostream>

int main(int argc, const char * argv[])
{
GLFWwindow* window;
if (!glfwInit())
{
return -1;
}

glfwWindowHint (GLFW_CONTEXT_VERSION_MAJOR, 4);
glfwWindowHint (GLFW_CONTEXT_VERSION_MINOR, 1);
glfwWindowHint (GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
glfwWindowHint (GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

window = glfwCreateWindow(640, 480, "Hello Triangle", NULL, NULL);
if (!window)
{
glfwTerminate();
return -1;
}

glfwMakeContextCurrent(window);

GLfloat verts[] =
{
0.0f, 0.5f, 0.0f,
0.5f, -0.5f, 0.0f,
-0.5f, -0.5f, 0.0f
};

//Generate a buffer id
GLuint vboID;

//Create a buffer on GPU memory
glGenBuffers(1, &vboID);

//Bind an arraybuffer to the ID
glBindBuffer(GL_ARRAY_BUFFER, vboID);

// Fill that buffer with the client vertex
glBufferData(GL_ARRAY_BUFFER, sizeof(verts), verts, GL_STATIC_DRAW);

//Enable attributes
glEnableVertexAttribArray(0);

// Setup a pointer to the attributes
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

while (!glfwWindowShouldClose(window))
{
glDrawArrays(GL_TRIANGLES, 0, 3);

glfwPollEvents();
glfwSwapBuffers(window);
}

glfwTerminate();
return 0;
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com