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

问题是web视图和OpenGL视图之间的重叠。如果OpenGL视图位于webview顶部,则webview UI(如下拉框)可能会被OpenGL视图剪切。该webview位于OpenGL视图的顶部,所有的webview视图都将阻止OpenGL视图。

有解决方案吗? (OpenGL和Webview)

最佳答案

WebKit具有有趣的功能,您可以将具有某些MIME类型的Web视图关联到您自己的自定义NSView类。

在HTML Web视图中,您可以放置​​一个具有自定义模仿类型的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类不执行任何操作,它仅定义存根委托函数。

关于macos - OSX Cocoa将opengl View 嵌入到webview中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14932775/

10-12 07:39
查看更多