Какао OpengGL: нарисовать текстуру и закруглить углы - PullRequest
1 голос
/ 07 октября 2011

Если я использую стандарт NSWindow для размещения NSOpenGLView, который распространяется на всю оконную раму, два нижних угла окна автоматически округляются.

При переключении на NSBorderlessWindowMask у меня естьсправиться с закруглением угла самостоятельно.Я уже реализовал прозрачный кастом NSWindow и закругленный кастом NSView, и они оба работают нормально.После этого я реализовал прозрачный NSOpenGLContext, установив для NSOpenGLCPSurfaceOpacity значение 0. Если я установлю цвет фона для контекста OpenGL, представление будет отображено правильно, и я получу нужный закругленный угол.

Но, поскольку приложение является проигрывателем фильмов, мне нужно нарисовать текстуру, соответствующую каждому кадру фильма.

Когда я делаю это (используя glTexCoord2f и glVertex2f), текстурарисуется до углов, и, следовательно, изображение рисуется до закругленных углов, и я теряю закругленный аспект моего окна.

Что делает система, когда окно стандартное и не NSBorderlessWindowMask что я не могу воспроизвести?

Как лучше всего закруглить угол текстуры при рисовании ее в буфере кадров?

1 Ответ

1 голос
/ 07 октября 2011

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

...