問候!Mac OS X:一個進程可以渲染到另一個進程的窗口嗎?
我目前正在將一個web瀏覽器插件從Win32移植到MacOSX。插件的一個特點是,當插件被加載時,它產生一個單獨的進程,作爲插件的「引擎」,並執行繪製操作到插件的窗口中(具體地說,通過將OpenGL上下文附加到父進程的窗口並在該上下文中執行OpenGL渲染命令)。我們這樣做是因爲插件通常作爲瀏覽器進程中的線程加載,因此插件崩潰會導致整個瀏覽器崩潰。通過將「繁重」分解爲單獨的流程並保持插件代碼非常纖薄,我們可以保護用戶免受此類崩潰。
我想在MacOSX上保留這個子進程渲染器體系結構,但是我聽到一個令人討厭的傳言(與Google Chrome瀏覽器有關),MacOSX不允許進程訪問它窗口到另一個進程。我在這個領域的搜索一直沒有結果;如果任何人對這個問題有任何的瞭解,並且可以提供一些關於如何實現這個目標的建議,或者是一個更加決定性的「不可能完成」的建議,那麼這將非常有幫助。
謝謝你的幫助!
這個發現可能是你的興趣。 http://developer.apple.com/DOCUMENTATION/CoreFoundation/Conceptual/CFPlugIns/CFPlugIns.html – Jonathan 2009-02-28 00:41:30
這與原始海報的要求沒有任何關係。 – 2009-03-10 03:10:21