2013-02-18 5 views
1

Я пытаюсь создать приложение MacOS, которое создает представление OpenGL и встраивает его в webview как элемент (используя OpenGL вместо WebGL). Основная цель - использовать веб-интерфейс (html/javascript) в качестве пользовательского интерфейса и нарисовать результат с помощью представления OpenGL. (кроме того, представление OpenGL также будет обрабатывать пользовательский ввод)OSX Cocoa embed opengl view in webview

Проблема заключается в наложении между просмотром веб-представления и OpenGL. Если представление OpenGL поверх webview, пользовательский интерфейс webview (например, раскрывающийся список) может быть разрезан представлением OpenGL. Веб-представление поверх представления OpenGL, все представления веб-просмотра блокируют представление OpenGL.

У вас есть решение проблемы? (OpenGL и Webview)

+1

Не можете ли вы просто добавить веб-представление и представление OpenGL вертикально уложить, а не пытаться внедрить его внутри другого? Снимок экрана облегчит ответ на этот вопрос. – paulmelnikow

+0

здесь: [OpenGL view cut the web view dropdown button] (http://postimage.org/image/tyd416uvd/) –

+0

Возможно, вместо веб-представления вы можете использовать некоторые пользовательские NSView и NSPopupButton? Это должно работать хорошо, делая всплывающее отображение поверх представления OpenGL при его расширении. Так или иначе, я думаю, что popover должен быть его собственным взглядом. – paulmelnikow

ответ

1

WebKit имеет интересную функциональность, где вы можете связать веб-просмотры с определенными типами MIME с вашими собственными классами NSView.

В вашем веб-браузере HTML вы можете поместить iframe с пользовательским типом mimetype (например, «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) и использовать веб-браузер (рисунок с CALAYER) в качестве приложения (вместо собственного приложения osx). –