1

NSWindowすべてのウィンドウ フレームに拡張する をホストするために標準を使用するとNSOpenGLView、ウィンドウの 2 つの下隅が自動的に丸められます。

切り替えるときNSBorderlessWindowMaskは、コーナーの丸みを自分で処理する必要があります。透明なカスタムNSWindowと丸みを帯びたカスタムを既に実装してNSViewおり、どちらも正常に機能します。その後、 0NSOpenGLContextに設定NSOpenGLCPSurfaceOpacityして透明を実装しました。OpenGL コンテキストに色付きの背景を設定すると、ビューが正しく描画され、目的の丸みを帯びたコーナーが得られます。

ただし、このアプリはムービー プレーヤーなので、ムービー フレームごとにテクスチャを描画する必要があります。

これを ( と を使用glTexCoord2fしてglVertex2f) 行うと、テクスチャが角まで描画されるため、丸みを帯びた角の外側まで画像が描画され、ウィンドウの丸みが失われます。

ウィンドウが標準的で、再現できないと思われる場合 、システムは何をしますか?NSBorderlessWindowMask

テクスチャをフレーム バッファに描画する際に、テクスチャの角を丸くする最良の方法は何ですか?

4

1 に答える 1

1

テクスチャを角の丸いジオメトリに適用したり、角の丸いムービー テクスチャに追加のアルファ マスクを使用したり、ステンシル テストを使用してビューポートの角を丸くしたりできます。

于 2011-10-07T09:45:27.000 に答える