GL_INVALID_VALUE at glTexImage2D
GL_INVALID_VALUE at glTexImage2D
调用glTexImage2D()后出现GL_INVALID_VALUE错误
GLCheckForErrors(); // no error
glTexImage2D(GL_TEXTURE_2D, 0, GL_RED, width, height, 0, GL_RED, GL_UNSIGNED_BYTE, 0);
GLCheckForErrors(); // error printed here
我已经将width和height的值分别替换为512和512,它解决了我的问题。这让我相信这是一个2次幂的问题。但我不明白的是,我认为我使用的opengl版本有NPOT纹理可用?
OpenGL Version - 4.1 INTEL-8.28.30
GLSL Version - 4.10
Renderer - Intel HD Graphics 5000 OpenGL Engine
这应该支持NPOT纹理好吗?
谢谢
我的宽度参数似乎太大了(超过24,000)。
我在一个长纹理中加载了一系列字符,所以我所做的就是删除不必要的字符来降低宽度,我不再得到那个错误。
另一个解决方案是只有一个固定的宽度,然后建立(但这对我来说不是那么容易,因为每个字符都有一个可变的宽度)。
来自glTexImage2D()手册页的相关错误条件是:
如果宽度或高度小于0或大于GL_MAX_TEXTURE_SIZE,则生成GL_INVALID_VALUE。
纹理大小限制可通过glGetIntegerv(GL_MAX_TEXTURE_SIZE, ...)
查询。
相关文章:
- 如何处理来自核心指南检查器的关于gsl::at的静态分析警告
- "CID"在AT+HTTPPARA= "CID" ,1中是什么意思
- 在C++中使用 Catch 测试框架编译错误"error: expected ';' at end of declaration list"
- CMake 用于设定C++标准的设施 "at least C++NN"
- SIGSEGV on Boost UDP 套接字关闭 - tcache_get at malloc.c.
- 使用 mat.at<uchar>(i,j) 的 opencv C++中的矩阵赋值错误
- CMake Error at modules/videoio/cmake/detect_ffmpeg.cmake:16
- 当键值是 std 向量时,为什么使用 at in C++ 访问映射值如此缓慢?
- 两个垫子的 OpenCV 数据是相同的,但使用 Mat::at 检索时的值已损坏
- glTexImage2D 访问违规
- 使用 at() 访问 std::map 元素是否比运算符 [] 慢?
- 错误:调用 .. at return 语句时没有匹配函数
- OpenCV 像素访问点与 at() - 不同的值
- C++11 功能 std::map::at 编译旧版本的C++
- AT 命令响应解析器
- 在macOS上使用libcurl库编译一个c++at项目
- 使用模板时获取"Trigger Breakpoint Error at delete"
- 为什么向量的.at()成员函数返回引用而不是迭代器
- 向量数组"Cannot access memory at address"
- GL_INVALID_VALUE at glTexImage2D