OpenGLがmacOSMojaveでレンダリングされない

エルビス・ストラズディン

macOS MojaveでNSViewとカスタムを作成した場合NSOpenGLContext、ウィンドウはサイズ変更されるまでレンダリングされません。しかし、NSOpenGLView代わりに使用すればすべてが機能しますウィンドウをプログラムでサイズ変更する(http://people.bath.ac.uk/abscjkw/ComputerPrograms/C++programs/OpenGL/MojaveOpenGL.cpp)、レンダリングする前、または[NSOpenGLContext update]2回呼び出すhttps://ハックがたくさんあります。 github.com/go-gl/glfw/pull/229/commits/9e6129a572227a13ff9acb4904443d2ae7d66e77)、しかしそれらは本当にハッキーで信頼できないようです。

エルビス・ストラズディン

Appleのフレームワークを逆アセンブルしたところ、MojaveでのOpenGLレンダリングの動作が変更されていることがわかりました。それは設定しても、あなたであれば無効に層状のバッキングと思われるNSViewwantsLayerNONSViewまだ作成され、モハーベ上のビューに層を付加します。レンダリングする前にウィンドウのサイズを変更すると、通常はが呼び出されるため、機能し[NSOpenGLContext update]ます。最初のフレームにNSViewはレイヤーがアタッチされておらず、updateメソッドは2番目のフレームでしか機能しないため、更新を2回呼び出すと機能し[NSOpenGLContext update]ます。レイヤーはそこにあり、実際にフレームバッファーを初期化します。

したがって、解決策は、次のように、[NSOpenGLContext update]のレイヤーNSViewが設定されるたびに手動で呼び出すことです

@interface OpenGLView: ViewMacOS
{
    NSOpenGLContext* _openGLContext;
}
@end

@implementation OpenGLView

-(void)setLayer:(CALayer*)layer
{
    [super setLayer:layer];

    [_openGLContext update];
}

@end

私はそれをテストし、Mojaveと古いバージョンのmacOSの両方で動作します([NSView setLayer:]macOS 10.13以前のバージョンでは呼び出されていません)。これが私がOuzelエンジンに対して行った完全なコミットです:https//github.com/elnormous/ouzel/commit/7e708636189d970bad6b013ecd5375cfe693f3f3

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

OpenGL が Ubuntu 18.04 でレンダリングされない

分類Dev

LWJGL-OpenGLがレンダリングされない

分類Dev

macOSMojaveの崇高なテキスト3でのフォントのレンダリングが悪い

分類Dev

スプライトがOpenGLでレンダリングされないのはなぜですか?

分類Dev

OpenGLテクスチャがレンダリングされない

分類Dev

テクスチャが正しくレンダリングされない(OpenGL)

分類Dev

OpenGL GLFW、三角形がレンダリングされない

分類Dev

Android OpenGL ES 2. 0VBOがレンダリングされない

分類Dev

ボケ:ColumnDataSourceがVbarでレンダリングされない

分類Dev

PygameSysFontが関数内でレンダリングされない

分類Dev

FullcalendarがLaravelでレンダリングされない

分類Dev

NextJsで小道具がレンダリングされない

分類Dev

Safariで最大幅がレンダリングされない

分類Dev

FullCalendarがタブでレンダリングされない

分類Dev

Famous.jsがAngularでレンダリングされない

分類Dev

CSSがRubyonRailsでレンダリングされない

分類Dev

KineticJSで画像がレンダリングされない

分類Dev

WebGLがFirefoxでレンダリングされない

分類Dev

ListView行がReactNativeでレンダリングされない

分類Dev

Datatableが光沢でレンダリングされない

分類Dev

Google Fonts が FireFox でレンダリングされない

分類Dev

React.jsがCodepenでレンダリングされない

分類Dev

PrimeFacesがIntellij2017.2.6でレンダリングされない

分類Dev

ChromeではレンダリングされるがAcrobatではレンダリングされないPDF

分類Dev

HTMLテンプレートがGmailでレンダリングされない

分類Dev

OpenGL GLFW シンプル キューブがレンダリングされない

分類Dev

印刷プレビューで画像がレンダリングされない

分類Dev

円グラフがChartJSでレンダリングされない

分類Dev

SVGデータURIがimgタグでレンダリングされない

Related 関連記事

  1. 1

    OpenGL が Ubuntu 18.04 でレンダリングされない

  2. 2

    LWJGL-OpenGLがレンダリングされない

  3. 3

    macOSMojaveの崇高なテキスト3でのフォントのレンダリングが悪い

  4. 4

    スプライトがOpenGLでレンダリングされないのはなぜですか?

  5. 5

    OpenGLテクスチャがレンダリングされない

  6. 6

    テクスチャが正しくレンダリングされない(OpenGL)

  7. 7

    OpenGL GLFW、三角形がレンダリングされない

  8. 8

    Android OpenGL ES 2. 0VBOがレンダリングされない

  9. 9

    ボケ:ColumnDataSourceがVbarでレンダリングされない

  10. 10

    PygameSysFontが関数内でレンダリングされない

  11. 11

    FullcalendarがLaravelでレンダリングされない

  12. 12

    NextJsで小道具がレンダリングされない

  13. 13

    Safariで最大幅がレンダリングされない

  14. 14

    FullCalendarがタブでレンダリングされない

  15. 15

    Famous.jsがAngularでレンダリングされない

  16. 16

    CSSがRubyonRailsでレンダリングされない

  17. 17

    KineticJSで画像がレンダリングされない

  18. 18

    WebGLがFirefoxでレンダリングされない

  19. 19

    ListView行がReactNativeでレンダリングされない

  20. 20

    Datatableが光沢でレンダリングされない

  21. 21

    Google Fonts が FireFox でレンダリングされない

  22. 22

    React.jsがCodepenでレンダリングされない

  23. 23

    PrimeFacesがIntellij2017.2.6でレンダリングされない

  24. 24

    ChromeではレンダリングされるがAcrobatではレンダリングされないPDF

  25. 25

    HTMLテンプレートがGmailでレンダリングされない

  26. 26

    OpenGL GLFW シンプル キューブがレンダリングされない

  27. 27

    印刷プレビューで画像がレンダリングされない

  28. 28

    円グラフがChartJSでレンダリングされない

  29. 29

    SVGデータURIがimgタグでレンダリングされない

ホットタグ

アーカイブ