在窗口CMyWndClass上用OpenGl画了一个图形,然后用glReadPixels获取窗口中的图像,将图像读到缓冲区lpDIBits中。我的程序最初是运行在intel 的32位CPU上,用glReadPixels读到的图像跟窗口上显示的一致。后来,我把程序拿到intel 的64位CPU上运行,发现,图像严重失真。不知什么原因? 请熟悉opengl的老兄帮忙分析一下。
下面是我使用glReadPixels的方式,不知有什么问题。LPBYTE CMyWndClass::GetImageData() 
{
   ::glReadPixels(0, 0, m_nImageSize[0], m_nImageSize[1], 
         GL_RGB, GL_UNSIGNED_BYTE,   (GLvoid  *)m_lpDIBits);
   return m_lpDIBits;
}
其中: m_nImageSize[0] = (窗口宽度 / 4)  * 4
       m_nImageSize[1] = 窗口高度
m_lpDIBits为保存屏幕图像数据的缓冲区,在外面已经生成。