2013-02-18 45 views
1

我想構建一個MacOS應用程序,它創建一個OpenGL視圖並將其嵌入到webview中,因爲它的元素(使用OpenGL代替WebGL)。主要目標是使用web(html/javascript)作爲UI並用OpenGL視圖繪製結果。 (此外,OpenGL視圖也將處理用戶輸入)OSX可可在webview中嵌入opengl視圖

問題是webview和OpenGL視圖之間的疊加。如果在webview之上的OpenGL視圖,可能會被OpenGL視圖切割的webview UI(如:下拉框)。在OpenGL視圖之上的webview中,所有webview視圖都會阻止OpenGL視圖。

有沒有解決方案來解決這個問題? (OpenGL和Webview)

+1

難道你不能只是添加一個Web視圖和一個OpenGL視圖垂直堆疊,而不是試圖嵌入其中一個?屏幕截圖可以更容易地對此進行響應。 – paulmelnikow 2013-02-18 15:48:25

+0

問題在這裏:[OpenGL視圖切割網頁視圖下拉按鈕](http://postimage.org/image/tyd416uvd/) – 2013-02-20 03:02:59

+0

也許而不是一個網絡視圖,你可以使用一些自定義NSViews和一個NSPopupButton?這應該很好,在彈出窗口展開時在OpenGL視圖上進行顯示。這種或那種方式,我認爲popover需要是它自己的看法。 – paulmelnikow 2013-02-20 06:58:41

回答

1

WebKit有一個有趣的功能,您可以將webviews與某些MIME類型關聯到您自己的自定義NSView類。

在您的HTML webview中,您可以放置​​一個具有自定義mimetype的iframe(例如「application/my-custom-view」)。

之後,從您的本機應用程序,您可以撥打:

[WebView registerViewClass:[MyCustomView class] representationClass:[MyCustomRepresentation class] forMIMEType:@"application/my-custom-view"]; 

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Webkit/Classes/WebView_Class/Reference/Reference.html#//apple_ref/occ/clm/WebView/registerViewClass:representationClass:forMIMEType

MyCustomRepresentation可以很輕便,我代表類沒有做任何事情,它只是定義了存根的委託功能。

+0

感謝您提供有用的信息。我們開始將我們的庫移植到NPAPI(稍後用於PPAPI),並使用Web瀏覽器(使用CALAYER繪圖)作爲應用程序(而不是本機OSX應用程序)。 – 2014-02-13 04:08:49