qq_30561005
yinggggggg
采纳率11.1%
2018-02-08 07:29 阅读 1.7k

调用glReadPixels函数 得到的全为黑色

80

我实在winform窗口中 调用了一个mfc做的dll中的函数进行opengl绘制。然后想得到窗口中每个像素的颜色来进行截屏生成图片,但是用glReadPixels函数读到的都是黑色。
初始化是用winform的handle带进去进行初始化,然后绘制一个全部绿色的窗口。绿色窗口成功显示,但是但是用glReadPixels函数读不出来。
初始化过程:图片说明图片说明
然后绘制的函数:图片说明
读取像素的函数:图片说明
图像绘制是成功的:图片说明
但是读取到的值都是黑色,只有alpha是ff:图片说明
why???

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • DRACULAX05 DRACULAX05 2018-02-24 03:04

    你的GetScreenSnot在哪里调用的?
    glReadPixels实际上是从缓冲区中读取数据,如果使用了双缓冲区,则默认是从正在显示的缓冲(即前缓冲)中读取,而绘制工作是默认绘制到后缓冲区的。一句话,glReadPixels需要在swapbuffers以后调用才行,另外,也不推荐用这个函数,效率超级差

    点赞 评论 复制链接分享

相关推荐