CoreAnimationDrawingModel を使用して Safari NPAPI プラグインを作成しています。これにより、高性能の CAOpenGLLayer を作成してブラウザに返すことができます (これを使用しています: https://wiki.mozilla.org/NPAPI:CoreAnimationDrawingModel )。
残念ながら、プラグインが Retina ディスプレイでホストされているかどうかを判断する方法が見つからないため、このセットアップで Retina ディスプレイをサポートするのに問題があります。この情報がないと、CALayer の contentScale プロパティを適切に設定できません。
ネイティブ アプリケーションでは、NSView で CALayer をホストし、viewDidChangeBackingProperties を監視して、必要な解像度情報を取得します。NPAPI ワールドでレイヤ ホストを取得する方法があるかどうかわかりません。たとえそれが可能だったとしても、解決のためにそれをポーリングしなければならないのは面倒です。理想的には、ある種の通知リスナーを登録したいと思います。
私は FireBreath ( http://www.firebreath.org/ ) を使用してプラグインを作成しており、IRC で開発者 (Richard Bateman) と話しましたが、彼らはここで質問することを提案しました (Stuart Morgan は質問するのに適した人物として言及されていました)。 .