gpt4 book ai didi

c - OpenGL : error with invalid format but NULL data

转载 作者:行者123 更新时间:2023-12-05 04:28:51 24 4
gpt4 key购买 nike

有时我们需要初始化一个没有数据的纹理。所以我想写一个效用函数,类似这样的东西:

GLuint create_texture(GLenum internal_format, int width, int height)
{
GLuint id;
glGenTextures(1, &id);
glBindTexture(GL_TEXTURE_2D, id);
glTexImage2D(GL_TEXTURE_2D, 0, internal_format, width, height, 0, GL_RGB, GL_FLOAT, NULL);
return id;
}

我希望能够使用我想要的任何格式进行初始化(GL_RGBGL_RGBA 等...)。但是,如果 format 参数与 internal_format 参数不匹配,即使没有实际数据,这也会崩溃。是否可以在不使用与给定 internal_formatformat 匹配的外部表的情况下避免此错误(这可以通过 this page 的帮助实现,在 < em>错误段落)?但是,这有点乏味,所以我想知道是否有其他选择。

我们不能使用 format=internal_format 因为有些值不兼容,比如 GL_RGBA16F

最佳答案

如果您可以访问 OpenGL 4.2,则 glTexStorage方法正是你所需要的。它为纹理分配存储空间但不使用任何数据对其进行初始化。

关于c - OpenGL : error with invalid format but NULL data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72490069/

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