yinggggggg 2018-02-07 23:29 采纳率: 22.2%
浏览 2102
已结题

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

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

  • 写回答

1条回答 默认 最新

  • DRACULAX05 2018-02-23 19:04
    关注

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

    评论
    编辑
    预览

    报告相同问题?

    手机看
    程序员都在用的中文IT技术交流社区

    程序员都在用的中文IT技术交流社区

    专业的中文 IT 技术社区,与千万技术人共成长

    专业的中文 IT 技术社区,与千万技术人共成长

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    客服 返回
    顶部