我想得到一个像素的颜色。像素是鼠标位置。我使用glReadPixels,但我不能
POINT pt;
GetCursorPos(&pt);
unsigned char pixel[3];
glReadPixels(pt.x, pt.y, 1, 1, GL_RGB, GL_UNSIGNED_BYTE, pixel);在这个编码之后,像素的值是:'Ì',有什么想法吗?
发布于 2013-01-29 17:58:49
204是十六进制表示的CC。该值通常用于填充未初始化的内存。如果您将pixel初始化为0(例如)
unsigned char pixel[3] = {0};99,(9)%调用glReadPixels后,您将看到零。取决于documentation glReadPixels
如果生成错误,则不会更改数据内容。
也就是说,您在pixel中的数据没有因为错误而更改。遵循@OlegTitov的第四条建议(看看glGetError();会告诉你什么)
更新:如果你想只使用glReadPixels从主屏幕获取像素值,如果你没有创建任何GLFrameBuffer,我不确定,但我认为你会失败。我再重复一遍-我不确定,但我认为glReadPixels只能从帧缓冲区读取像素值,这是以前由gl-functions创建的
发布于 2013-01-29 16:59:00
char输出到控制台时,编译器将打印为符号,而不是字母。这是为可以正常打印的C样式字符串而做的。要打印整数值,首先将变量转换为整型。glReadPixels(pt.x,window_height - pt.y,1,1,GL_RGB,GL_UNSIGNED_BYTE,像素);
glBindFramebuffer(GL_READ_FRAMEBUFFER,0);
glGetError();检查您的代码
https://stackoverflow.com/questions/14578091
复制相似问题