gpt4 book ai didi

c++ - 使用 glDrawPixels 时遇到问题

转载 作者:行者123 更新时间:2023-11-28 03:40:44 24 4
gpt4 key购买 nike

我必须使用 glDrawPixels 来实现光栅算法。

现在我只是想得到一个 glDrawPixels 工作但有问题的简单示例。

GLint height, width, size = 0;
GLbyte *image = NULL;
int i,j=0;

width = 512;
height = 512;
size = width*height;
image = (GLbyte*)malloc(sizeof(GLbyte)*size*3);

for(i = 0; i < size*3; i=i+width*3){
for(j = i; j < width*3; j=j+3){
image[j] = 0xFF;
image[j+1] = 0x00;
image[j+2] = 0x00;
}
}

glDrawPixels(width, height, GL_RGB, GL_BYTE, image);

free(image);
gluSwapBuffers();

以上是我试图开始工作的代码,根据我的理解,它应该简单地绘制一个 512x512 的红色方 block 。

但是我得到的是底部的红色一行,其他所有内容都是灰色的。

最佳答案

您的第二个 for() 循环中断了——您从 i 开始,但只上升到 width * 3,所以当 i > 0 时它根本不运行。

这里有一个更简单的方法:

GLbyte *p = image;
for (i = 0; i < height; i++) {
for (j = 0; j < width; j++) {
*p++ = 0xFF;
*p++ = 0x00;
*p++ = 0x00;
}
}

关于c++ - 使用 glDrawPixels 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9345392/

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