ウィンドウシステムにGLUTを使用して、いくつかの画像を画面に出力しています。また、画像をファイルに出力したいと思います。これは挑戦でした。一部のウィンドウ解像度(256x256、1024x1024、1920x1200など)では、glReadPixelsは画面とまったく同じ画像ファイルを生成します。ただし、ウィンドウのサイズを変更すると(たとえば、655x652、529x566で画面キャプチャを実行すると、画像がジグザグになり、ピクセルが直線的にシフトしたように見えます。
どんな助けでもありがたいです!
編集-glReadPixels呼び出しに至るまでのコードを追加しています。
glGetIntegerv(GL_VIEWPORT, dimensions);
width = dimensions[2];
height = dimensions[3];
screencapture = (unsigned char*)malloc(width*height*sizeof(unsigned char));
glReadPixels(0,0,width, height, GL_GREEN, GL_UNSIGNED_BYTE, screencapture);
編集2-マウスでウィンドウのサイズを変更すると、良い画像が生成される場合があることを忘れました。ちょうどいい解像度になったときに起こると思います。