オーケー、探していたものが見つかりました。についての私のコメントglGetFramebufferAttachmentParameteriv
は正しかったので、参考文献を次に示します。
glGetFramebufferAttachmentParameteriv — バインドされたフレームバッファ オブジェクトの添付ファイルに関する情報を取得する
ここまでは順調ですね。
デフォルトのフレームバッファがターゲットにバインドされている場合、アタッチメントは、カラー バッファを識別する GL_FRONT_LEFT、GL_FRONT_RIGHT、GL_BACK_LEFT、または GL_BACK_RIGHT のいずれかである必要があります。
そうです、スクリーンバッファに使用できます! そして今、あなたが興味を持っている部分:
pname
次のいずれかです。
GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE
GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE
GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE
GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE
GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE
params
指定されたアタッチメントの対応する赤、緑、青、アルファ、深度、またはステンシル コンポーネントのビット数が含まれます。要求されたコンポーネントが添付ファイルに存在しない場合は、0 が返されます。
そして、ああ、target
そうかもしれませGL_FRAMEBUFFER
ん。
編集:あなたはそれをすべて要約するために例を要求したので...
glBindFramebuffer(GL_FRAMEBUFFER, 0);
GLint ret;
glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_FRONT_LEFT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &ret);
if (ret == GL_NONE)
exit(1); // something is really bad there or FRONT_LEFT isn't your default buffer. Check it!
glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_FRONT_LEFT, GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE, &ret);
そして、ここでINVALID_ENUMS
あなたが得ることができる可能性があります:
- GL_INVALID_ENUM は、ターゲットが受け入れられたトークンの 1 つでない場合に生成されます。
- pname が GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE の値に対して有効でない場合、GL_INVALID_ENUM が生成されます。