OSX Cocoa在webview中嵌入了opengl视图

时间:2013-02-18 09:12:22

标签: macos cocoa opengl

我正在尝试构建一个MacOS应用程序,它创建一个OpenGL视图并将其嵌入webview作为它的元素(使用OpenGL而不是WebGL)。主要目标是使用Web(html / javascript)作为UI并使用OpenGL视图绘制结果。 (此外,OpenGL视图也将处理用户输入)

问题是webview和OpenGL视图之间的叠加。如果在webview之上的OpenGL视图,则可以通过OpenGL视图剪切webview UI(如:下拉框)。在OpenGL视图之上的webview,所有webview视图都将阻止OpenGL视图。

有没有解决方案可以解决这个问题? (OpenGL和Webview)

1 个答案:

答案 0 :(得分:1)

WebKit有一个有趣的功能,您可以将webview与某些MIME类型关联到您自己的自定义NSView类。

在HTML网页视图中,您可以放置​​一个具有自定义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可以非常轻量级,我的Representation类没有做任何事情,它只是定义了存根委托函数。