C++ Can';t在QopengelBuffer::allocate上使用std::vector代替std::array
我正在使用OpenGl和Qt,我正在使用std::array分配一个缓冲区,我想用std::vector替换它,它应该以几乎相同的方式工作,但它根本不工作,只是黑屏 Vertex只是一个有六个浮点数(x、y、z、r、g、b)和几个方法的类 顶点声明C++ Can';t在QopengelBuffer::allocate上使用std::vector代替std::array,c++,qt,opengl,C++,Qt,Opengl,我正在使用OpenGl和Qt,我正在使用std::array分配一个缓冲区,我想用std::vector替换它,它应该以几乎相同的方式工作,但它根本不工作,只是黑屏 Vertex只是一个有六个浮点数(x、y、z、r、g、b)和几个方法的类 顶点声明 //有效 std::数组顶点={ 顶点0,顶点2,顶点顶部, 顶点2,顶点1,顶点顶部, 顶点1,顶点0,顶点顶部, 顶点0,顶点1,顶点2, }; //不起作用 标准::向量顶点={ 顶点0,顶点2,顶点顶部, 顶点2,顶点1,顶点顶部, 顶点1,
//有效
std::数组顶点={
顶点0,顶点2,顶点顶部,
顶点2,顶点1,顶点顶部,
顶点1,顶点0,顶点顶部,
顶点0,顶点1,顶点2,
};
//不起作用
标准::向量顶点={
顶点0,顶点2,顶点顶部,
顶点2,顶点1,顶点顶部,
顶点1,顶点0,顶点顶部,
顶点0,顶点1,顶点2,
};
缓冲区分配
m_vertex.allocate(vertex.data(),sizeof(vertex)*vertex.size());
什么是m_顶点
?allocate
是否获取字节数?为什么std::vector vertex={…}
不起作用?Vertex
是否不可复制?但是,std::array
也不起作用。考虑到问题的性质,应该很容易组合一个数组。