将坐标数组传递给主数组(openGL,C++)
Passing coordinate array to main (openGL, C++)
我正在尝试将立方体的坐标传递给 C++ 中的主函数。此函数位于单独的 cpp 文件中,方法如下所示:
GLfloat * Cube::getVertices()
{
// Set up our vertex data (and buffer(s)) and attribute pointers
GLfloat vertices[] = {
-0.5f, -0.5f, -0.5f, 0.0f, 0.0f,
0.5f, -0.5f, -0.5f, 1.0f, 0.0f,
0.5f, 0.5f, -0.5f, 1.0f, 1.0f,
0.5f, 0.5f, -0.5f, 1.0f, 1.0f,
-0.5f, 0.5f, -0.5f, 0.0f, 1.0f,
-0.5f, -0.5f, -0.5f, 0.0f, 0.0f,
-0.5f, -0.5f, 0.5f, 0.0f, 0.0f,
0.5f, -0.5f, 0.5f, 1.0f, 0.0f,
0.5f, 0.5f, 0.5f, 1.0f, 1.0f,
0.5f, 0.5f, 0.5f, 1.0f, 1.0f,
-0.5f, 0.5f, 0.5f, 0.0f, 1.0f,
-0.5f, -0.5f, 0.5f, 0.0f, 0.0f,
-0.5f, 0.5f, 0.5f, 1.0f, 0.0f,
-0.5f, 0.5f, -0.5f, 1.0f, 1.0f,
-0.5f, -0.5f, -0.5f, 0.0f, 1.0f,
-0.5f, -0.5f, -0.5f, 0.0f, 1.0f,
-0.5f, -0.5f, 0.5f, 0.0f, 0.0f,
-0.5f, 0.5f, 0.5f, 1.0f, 0.0f,
0.5f, 0.5f, 0.5f, 1.0f, 0.0f,
0.5f, 0.5f, -0.5f, 1.0f, 1.0f,
0.5f, -0.5f, -0.5f, 0.0f, 1.0f,
0.5f, -0.5f, -0.5f, 0.0f, 1.0f,
0.5f, -0.5f, 0.5f, 0.0f, 0.0f,
0.5f, 0.5f, 0.5f, 1.0f, 0.0f,
-0.5f, -0.5f, -0.5f, 0.0f, 1.0f,
0.5f, -0.5f, -0.5f, 1.0f, 1.0f,
0.5f, -0.5f, 0.5f, 1.0f, 0.0f,
0.5f, -0.5f, 0.5f, 1.0f, 0.0f,
-0.5f, -0.5f, 0.5f, 0.0f, 0.0f,
-0.5f, -0.5f, -0.5f, 0.0f, 1.0f,
-0.5f, 0.5f, -0.5f, 0.0f, 1.0f,
0.5f, 0.5f, -0.5f, 1.0f, 1.0f,
0.5f, 0.5f, 0.5f, 1.0f, 0.0f,
0.5f, 0.5f, 0.5f, 1.0f, 0.0f,
-0.5f, 0.5f, 0.5f, 0.0f, 0.0f,
-0.5f, 0.5f, -0.5f, 0.0f, 1.0f
};
// GLfloat *vert = vertices;
return vertices;
}
在主要方法中,我这样做
Cube cube1;
GLfloat * vertices;
vertices = cube1.getVertices();
每当我的坐标在主坐标中时,立方体就会正确出现,但是当它在这个单独的方法中时,似乎我得到的是地址而不是值,并且没有出现正方形。它与我传递数组的方式有关吗?
在这种情况下,您似乎有要返回的常量数据。使其静态和恒定。然后它就不会超出范围。
const GLfloat* Cube::getVertices() {
static const GLfloat vertices[] = {
// Data here.
};
return vertices;
}
它与我传递数组的方式有关吗?
您不传递数组。你传递一个指针。对于本地数组,当函数离开时,这些生存期结束。你在这里拥有的只是未定义的行为。
相关文章:
- 在 glsl opengl 中将嵌套结构数组作为统一传递
- 如果我使用malloc()而不是堆栈数组,OpenGL不会渲染对象
- OpenGL 顶点数组对象与 tinyobjloader
- 假设传递给 OpenGL 的结构数组的内存布局存在潜在错误
- OpenGL:使用指向静态数据的指针数组传递缓冲区数据
- 如何从OpenGL 4.5中的单个Cube地图纹理中创建Cube地图数组纹理
- 如何使用OpenImageio将RGB值存储在数组中?(使用C ,OpenGL)
- 将 OpenGL 颜色附件存储在 constexpr GLenum 数组中
- opengl:两个不同的矢量可以绑定到同一个顶点数组对象吗
- 正确初始化 OpenGL 的结构数组
- 将opengl纹理保存到Byte数组中
- OpenGL 批处理:为什么我的绘制调用超出了数组缓冲区边界
- 将坐标数组传递给主数组(openGL,C++)
- 在 OpenGL 中重新组织图像/图片数组以适应 2 种纹理大小的幂
- openGL drawElements - 一个额外的三角形,使用索引数组
- Opengl 数组纹理,适用于原始数据,但不适用于图像数据
- 在 OpenGL 中呈现三角形结构引用数组
- OpenGL:两个顶点数组 + 两个索引数组
- OpenGL与C++:将类数组传递给glTexImage2d时出现vtable问题
- 纹理每个多边形在顶点数组- OpenGL