CoreAnimationDrawingModel을 사용하여 Safari NPAPI 플러그인을 작성하고 있습니다. 이를 통해 고성능 CAOpenGLLayer를 만들고이를 브라우저에 반환 할 수 있습니다 (이 코드는 https://wiki.mozilla.org/NPAPI:CoreAnimationDrawingModel입니다).CALayer 기반 NPAPI 플러그인에서 망막을 지원하는 방법은 무엇입니까?
불행히도, 나는이 설정에서 Retina 디스플레이를 지원하는 데 어려움을 겪고 있습니다. 플러그인이 Retina 디스플레이에서 호스팅되는지 여부를 확인할 수 없기 때문입니다. 이 정보가 없으면 CALayer의 contentScale 속성을 올바르게 설정할 수 없습니다.
네이티브 응용 프로그램에서는 NSView에서 CALayer를 호스팅하고 viewDidChangeBackingProperties를 감시하여 필요한 해상도 정보를 얻습니다. NPAPI 세계에서 레이어 호스트를 얻는 방법이 있는지 확실하지 않습니다. 그게 가능했다 할지라도, 해결을 위해 폴링해야 할 필요가 있습니다. 이상적으로는 알림 청취자를 등록하려고합니다.
나는 FireBreath (http://www.firebreath.org/)를 사용하여 플러그인을 작성하고 있으며 IRC의 devs (Richard Bateman)와 대화를 나누었지만 여기에서 묻는 것이 좋습니다. (Stuart Morgan은 좋은 사람이라고 물었습니다.)
감사합니다. 이것은 분명 도움이됩니다. 다음 주 초에 자세히 테스트 할 것입니다. 브라우저에서 업데이트 알림 (NPP_SetValue 포함)을 계속 보내 게됩니다. 지금까지 테스트 한 결과를 보지 못했지만 NPN_GetValue 쿼리 만 시작합니다. –
다른 사람들을 위해 FireBreath 플러그인 프레임 워크에 관련 지원 코드를 추가했습니다. 이제는 병합을 기다리고 있습니다 : https://github.com/firebreath/FireBreath/pull/119. Safari 6.0.5 이상에서는 잘 작동합니다. –
이것은 Safari NPAPI 플러그인에서 망막 지원에 관해 찾을 수있는 유일한 유용한 정보입니다. 코어 그래픽 플러그인이 있는데 망막에서 작동하도록하는 방법을 찾지 못했습니다. 이견있는 사람? – Samir