为什么我的无符号字节需要两倍大
Why does my unsigned byte need to be twice as big?
我正在断开程序渲染部分与Qt的连接,并将其升级到OpenGL 4。
我遇到了一个关于纹理的奇怪问题,我因为没有向glTexImage提供正确大小的数据而受到指责。这很奇怪,因为我很确定我为它提供了正确大小的数据。
int n = 1*g_windowHeight*g_windowHeight;
//int n = 2*g_windowHeight*g_windowHeight; Doesn't segfault but doesn't make sense to me
auto data = (GLbyte*) malloc(n*sizeof(GLbyte));
glBindTexture(GL_TEXTURE_2D,textures[i]);
glTexImage2D(GL_TEXTURE_2D,0,GL_R8,g_windowWidth,g_windowHeight,0,GL_RED,GL_UNSIGNED_BYTE,data); //
中0x0000000180012212(ig4cd64.dll)处出现未处理的异常renderMan.exe:0xC0000005:读取位置时发生访问冲突0x0000007035F7000.
如果我使用GL_R8,为什么GL_R8需要每个像素2个字节?
这是一个拼写错误:
int n = 1*g_windowHeight*g_windowHeight;
应为:
int n = 1*g_windowWidth*g_windowHeight;
// ^^^^^
相关文章:
- 我想知道长双倍和双倍之间的区别
- 我可以创建一个包含两个变量的 for 循环,但时间复杂度仍然为 O(n) 吗?
- 为什么我的两个 cin 语句没有在程序结束时运行?
- 我应该如何去缓解两次出现的cin?
- C++数组与向量排序(在我的情况下,向量比数组慢~2.5倍(无优化))
- 我需要std::condition,但有两个以上的选择
- 有没有办法我可以在 C++ 中使用 if 语句来说明如果一个字符串不是两个名称的 eqal,它会给出一个输出,ATM i
- 重复使用预分配的向量<复杂<double>>作为<double>长度两倍的向量
- 为什么 valgrind 报告两个内存分配,而我的代码只请求一个?
- 我的字符串数组一次打印出前两个字符串
- 当两个相等的双精度的相对比较不起作用时,我该怎么办?
- 谷歌测试发现在macOSX上添加并运行了我的所有测试两次
- 如果我的容器位于两个现有值之间,那么伪造迭代器类别是否合理
- C++问题,我的两个源代码应该具有相同的输出,但它们是不同的
- 为什么当我进入退出条件时,程序会打印两倍的默认条件而不是退出 while 循环?
- 为什么我的最终向量是它应该大小的两倍并且具有前导 0?
- 在同一台机器上,是否保证两倍值的不精确性是一致的
- 处理数据的方法,速度是我处理速度的两倍
- 为什么我的无符号字节需要两倍大
- 在C++中缩放两倍时的精度差异