2011-07-24 9 views
1

それは通常ののOpenGL ES物事のすべてをレンダリングすることは可能ですが代わりにフレームバッファのバッファを割り当てた:は、OpenGL ESは、CPUのメモリにレンダリングすることができますか?

/* render into this buffer */ 
GLubyte* buffer = 
(GLubyte*) calloc(width * height * 4, sizeof(GLubyte)); 

を私は他の用途のためのテクスチャにそれらのレンダリング画像を変換することができるようにしたいです。

私は、標準のC APIでのOpenGL ES 1.3を使用しています。このため

+1

、あなたは、OpenGL ESの1.3バージョンがあることを確認していますか?私は1.0,1.1、そして2.0しかないと思った。しかし私はESの経験がないので、間違っているかもしれません。 –

答えて

2

あなたは、glReadPixelsへの呼び出しを中心に、システムメモリにフレームバッファのどのコピーコンテンツを取得することはできません。しかし、あなたはテクスチャにコピーしたいときは、直接glCopyTex(Sub)Image2Dを使用するか、またはFBOsを使用して、コピーを必要とせずにテクスチャに直接描画することにより、これを行うことができます(ただし、FBOsがESでサポートされている場合、私はわかりません)。しかし、もちろん、あなたが(彼らはGPUメモリに格納されているようなテクスチャのために、それは、FBOsを使用して動作します)システムメモリに直接レンダリングすることはできません。ところで

関連する問題