Создание элемента управления ВПЕРЕД представления OpenGL - PullRequest
4 голосов
/ 29 февраля 2012

У меня есть представление OpenGL на Mac.Я хочу поместить NSTextField перед ним, но даже если я поставлю его перед ним, он будет скрыт видом.

Существует очень простой тестовый пример.Создайте новый проект в XCode (я использую 4.0.2) и окно.Добавить представление OpenGL.Теперь добавьте текстовое поле и установите его так, чтобы половина его перекрывала представление OpenGL.Запустите программу.Отображается все поле, но при вводе текста отображается только половина, независимо от того, как вы расположили поля спереди назад.

1 Ответ

2 голосов
/ 01 марта 2012

NSOpenGLView на самом деле не рисует в окне, он рисует на поверхности, которая выше или ниже окна, по умолчанию выше.Если вы хотите элемент управления перед поверхностью OpenGL, вы должны сделать поверхность под окном, используя параметр NSOpenGLContext NSOpenGLCPSurfaceOrder.Но затем вы должны вырезать прозрачный прямоугольник в окне, чтобы увидеть поверхность OpenGL.

Редактировать, чтобы добавить: Альтернативно, вы можете создать прозрачное наложение или дочернее окно, которое находится над поверхностью OpenGL, а такжеглавное окно, и поместите управление туда.Не уверен, какой путь будет проще.

...