std :: vector to GLvoid*?

use*_*779 0 c++ opengl png image

我正在尝试在OpenGL上学习教程,而不是加载原始图像我正在使用lodePNG.

问题是,当我使用函数glTexImage2D时,我在最后一个参数上得到一个错误,它只需要一个GLvoid*变量.LodePNG仅输出std :: vector作为最终图像数据.我在这个问题上找不到任何其他资源.

我如何才能使这个功能起作用?该错误只是表明它不采用这种数据类型.

Sti*_*org 5

vector::data() 是你的朋友.

您必须将原始数据从向量传递给glTexImage函数.

vector<...> image;
glTexImage2d(..., image.data());
Run Code Online (Sandbox Code Playgroud)

  • 请注意,`data()`方法仅在C++ 11中添加,因此在旧版本的C++中不可用. (3认同)