qt opengl中 glReadPixels 获取鼠标位置的颜色失效 处理方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ckwave/article/details/56494656
void SelectTrend::mousePressEvent(QMouseEvent *event)
{

float pix[3] = { 0.0 };
glReadPixels(event->x(), height() - event->y(), 1, 1, GL_RGB, GL_FLOAT, pix);
qDebug() << pix[0] << " " << pix[1] << " " << pix[2];

}


我写了这一段代码,想获取鼠标单击位置的白色位置的颜色,但是获取出来,都是 0,0,0,显然是错误的。



偶然间发现,当窗口触发刷新时,glReadPixels 就可以读取了



解决方法很简单,只要在获取颜色之前,加一个 UpdateGL()就可以了


void SelectTrend::mousePressEvent(QMouseEvent *event)
{
updateGL();
float pix[3] = { 0.0 };
glReadPixels(event->x(), height() - event->y(), 1, 1, GL_RGB, GL_FLOAT, pix);
qDebug() << pix[0] << " " << pix[1] << " " << pix[2];

}


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页