gpt4 book ai didi

c++ - 传递指向全局 da 的指针

转载 作者:行者123 更新时间:2023-11-28 06:40:57 26 4
gpt4 key购买 nike

我在设置一个函数来为我生成和绑定(bind)缓冲区时遇到困难。

我有两个函数,如下:

GLuint vertex_buffer(const GLfloat * thing)
{
GLuint vertexbuffer;
glGenBuffers(1, &vertexbuffer);
glBindBuffer(GL_ARRAY_BUFFER, vertexbuffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(thing), thing, GL_STATIC_DRAW);
return vertexbuffer;
}
GLuint cube_vertex_buffer()
{
GLuint vertexbuffer;
glGenBuffers(1, &vertexbuffer);
glBindBuffer(GL_ARRAY_BUFFER, vertexbuffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(cube), cube, GL_STATIC_DRAW);
return vertexbuffer;
}

我有一些为多维数据集声明的全局数据:

static const GLfloat cube[] = {
-1.0f,-1.0f,-1.0f, // triangle 1 : begin
-1.0f,-1.0f, 1.0f,
-1.0f, 1.0f, 1.0f, // triangle 1 : end
1.0f, 1.0f,-1.0f, // triangle 2 : begin
-1.0f,-1.0f,-1.0f,
-1.0f, 1.0f,-1.0f, // triangle 2 : end
1.0f,-1.0f, 1.0f,
-1.0f,-1.0f,-1.0f,
1.0f,-1.0f,-1.0f,
1.0f, 1.0f,-1.0f,
1.0f,-1.0f,-1.0f,
-1.0f,-1.0f,-1.0f,
-1.0f,-1.0f,-1.0f,
-1.0f, 1.0f, 1.0f,
-1.0f, 1.0f,-1.0f,
1.0f,-1.0f, 1.0f,
-1.0f,-1.0f, 1.0f,
-1.0f,-1.0f,-1.0f,
-1.0f, 1.0f, 1.0f,
-1.0f,-1.0f, 1.0f,
1.0f,-1.0f, 1.0f,
1.0f, 1.0f, 1.0f,
1.0f,-1.0f,-1.0f,
1.0f, 1.0f,-1.0f,
1.0f,-1.0f,-1.0f,
1.0f, 1.0f, 1.0f,
1.0f,-1.0f, 1.0f,
1.0f, 1.0f, 1.0f,
1.0f, 1.0f,-1.0f,
-1.0f, 1.0f,-1.0f,
1.0f, 1.0f, 1.0f,
-1.0f, 1.0f,-1.0f,
-1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f,
-1.0f, 1.0f, 1.0f,
1.0f,-1.0f, 1.0f
};

当我打电话

GLuint vertexbuffer = cube_vertex_buffer();

一切正常,但当我尝试调用时

GLuint vertexbuffer = vertex_buffer(cube);

立方体被破坏了,看起来像随机放置的三角形。

我试过将参数类型更改为 vertex_buffer 函数,但似乎效果不大。我不知道是否有可能将数组作为指针作为此类事物的参数传递。有没有办法让 vertex_buffer 函数起作用?

最佳答案

sizeof(thing) 不等于 sizeof(cube)。这可能很重要

关于c++ - 传递指向全局 da 的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25966065/

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