c - 如何通过鼠标单击获取像素的 RGB 颜色值

标签 c opengl mouse mouseevent glut

这可能是一个非常天真的问题,但我有点卡住了。 我正在编写我的第一个 opengl 程序,我想获取通过鼠标单击获得的点的像素的 R 值。 我对如何使用 glReadPixels 函数一无所知。

void myMouseFunc( int button, int state, int x, int y ) {
    if ( button==GLUT_LEFT_BUTTON && state==GLUT_DOWN ) {

        glReadPixels(x,y,0.1,0.1,GL_RED,GL_INT, pixel);

        glutPostRedisplay();
    }
}

最佳答案

文档非常清楚:

http://www.opengl.org/sdk/docs/man/xhtml/glReadPixels.xml

GLubyte pixel;
glReadPixels(x, windowHeight - y - 1, 1, 1, GL_RED, GL_UNSIGNED_BYTE, &pixel);

关于c - 如何通过鼠标单击获取像素的 RGB 颜色值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7122144/

相关文章:

c - 为什么这段代码会出现段错误?

opengl - 在OpenGL中,为什么我们默认位于世界空间中的(0,0,0)?

c++ - glReadPixel(一次通过与通过点循环)

opengl - 如何在 OpenGL/Glut 中更改鼠标光标的位置?

无法在 C 中模拟 write() 系统调用

c - C 中的段错误(代码转储)错误

performance - "Intrinsics"可能在 OpenGL 上的 GPU 上吗?

c++ - 使用 Oblita/Interception 库发送鼠标点击/发送坐标?

Javascript (jQuery) 限制元素内的鼠标移动速度

c - 使用结构和动态内存分配的队列