2

NSOpenGLPixelFormatを作成するときにNSOpenGLPFAColorSizeに設定する値がわかりません。ドキュメントからそれは述べています:

値は非負のバッファサイズ指定です。指定されたサイズに最も近いカラーバッファが推奨されます。指定しない場合、OpenGLは画面に一致するカラーサイズを選択します。

しかし、これはピクセルあたりのビット数を意味しますか?またはコンポーネントあたりのビット数?たとえば、24に設定され、ピクセルあたりのビット数として解釈される場合、各RGBA色はコンポーネントあたり6ビットであり、RGBAピクセル全体で合計24ビットになることを意味します。

ただし、コンポーネントあたりのビット数として解釈される場合、96ビットのRGBAピクセルを作成するには、赤、緑、青、およびアルファの各コンポーネントが24ビットであることを意味します。

サンプルコードで設定された値は8、16、24、32の範囲であり、コンポーネントあたりのビット数として解釈すると24以外はすべて意味があるため、コンポーネントあたりのビット数を意味すると思いがちですいくつかの決定的な答えがあるといいのですが。

注: OpenGLのピクセルがRGBではなくRGBAであることを反映するように編集されています。

4

1 に答える 1

3

NSOpenGLPFAColorFloatドキュメントをさらに精査した後、私は属性に出くわしました。これはドキュメントによると:

ブール属性。存在する場合、この属性は、浮動小数点ピクセルを格納するバッファーを使用できるレンダラーのみが考慮されることを示します。これには、64(ハーフフロートピクセルコンポーネントの場合)または128(フルフロートピクセルコンポーネントの場合)のNSOpenGLPFAColorSizeを伴う必要があります。すべてのハードウェアが浮動小数点カラーバッファをサポートしているわけではないため、返されるピクセル形式がNULLになる可能性があることに注意してください。

その追加情報では、ピクセルあたりのビット数を意味する必要があります。

私もいくつかの実験を行い、8、16、24、32NSOpenGLPFAColorSizeのそれぞれに設定して、何が戻ったかを確認しました。いずれの場合も、32に設定されたピクセル形式が返されました。これNSOpenGLPFAColorSizeはRGBAピクセルあたり32ビットを意味します。カラーサイズに何も設定せずに渡すだけNSOpenGLPFAColorFloatで、64ビット/ピクセルのピクセル形式を取り戻すことができます。

于 2013-03-14T00:09:33.347 に答える