首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C- openGL glDrawPixels

C- openGL glDrawPixels
EN

Stack Overflow用户
提问于 2016-04-03 04:08:55
回答 1查看 1.3K关注 0票数 1

我对图形编程很陌生。我试图使用glDrawPixels绘制,但我的程序没有任何输出。我在网上进行了研究,并不断得到关于我应该将哪些数据传递到glDrawPixels中的不同答案。我见过data[w*h*3]data[w*h][3]data[w][h][3],哪个是最好的?

到目前为止,我正在将我的RGB值存储在display函数下:

代码语言:javascript
复制
float pixels[1024][768][3];
int i,j;

//Should give me all red
for (i = 0; i < 768; i++) { 
  for (j = 0; j < 1024; j++) { 
     pixels[j][i][0] = 255.0;
     pixels[j][i][1] = 0.0;
     pixels[j][i][2] = 0.0;
  }
}
glDrawPixels(1024,768,GL_RGB,GL_FLOAT,pixels);

我的主要节目:

代码语言:javascript
复制
int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode (GLUT_RGBA | GLUT_DOUBLE);
    glutInitWindowSize (1024, 768);
    glutCreateWindow (argv[0]);

    glutDisplayFunc(display);
    glutMainLoop();
    return 0; 
}

我得到的输出只是一个空窗口,我做错了什么?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-03 04:22:21

您需要指定要将像素放置在视口中的位置(考虑到所提供的内容,这与窗口相同)。

试着在glWindowPos2i(0, 0)打电话之前给glDrawPixels打电话。这应该定位在你的窗口左下角的所谓光栅位置。

至于您提出的关于声明像素的最佳方法的问题,您建议的任何形式都是足够的,因为它们会创建一个用于存储像素数据的具有传染性的内存数组。您声明的数组上的不同维度数只会影响您在数组中索引的方式。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36381519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档