2011-10-07 4 views
1

표준 NSWindow을 사용하여 모든 창 프레임에 대해 NSOpenGLView을 호스트하는 경우 창의 두 하단 모서리가 자동으로 반올림됩니다.코코아 OpengGL : 텍스처와 둥근 모서리를 그립니다.

NSBorderlessWindowMask으로 바꿀 때 코너 라운딩을 직접 처리해야합니다. 투명 사용자 정의 NSWindow 및 반올림 지정 NSView을 이미 구현했으며 둘 다 정상적으로 작동합니다. 그런 다음 NSOpenGLCPSurfaceOpacity을 0으로 설정하여 투명 NSOpenGLContext을 구현했습니다. OpenGL 컨텍스트에 대한 색 배경을 설정하면보기가 올바르게 그려지고 원하는 둥근 모서리를 얻습니다.

그러나 앱이 무비 플레이어이므로 모든 무비 프레임에 해당하는 텍스처를 그릴 필요가 있습니다.

이렇게하면 (glTexCoord2fglVertex2f) 질감이 모서리까지 그려 지므로 이미지가 둥근 모서리의 바깥 쪽에서 그려지고 내 창의 둥근면이 느슨해집니다.

윈도우가 표준이고 이 아닌 경우NSBorderlessWindowMask으로 재생할 수없는 시스템은 무엇을 수행합니까?

텍스처를 프레임 버퍼로 가져 오는 동안 텍스처 모서리를 둥글게 만드는 가장 좋은 방법은 무엇입니까?

답변

1

모서리가 둥근 지오 메트릭에 텍스처를 적용하거나, 모서리가 둥근 무비 텍스처에 알파 마스크를 추가로 사용하거나 스텐실 테스트를 사용하여 뷰포트의 모서리를 반올림 할 수 있습니다.

+0

이러한 솔루션 중 하나에 대한 샘플이 있습니까? 왜냐하면 저는 프로그래밍에 매우 익숙하고, 특히 OpenGL에 익숙하지 않기 때문에 실제로 제안한 것을 구현하는 방법을 알지 못합니다. – Andrea3000

+0

나는 그것을 알아 냈습니다. 알파 마스크를 추가로 사용했습니다. 당신의 도움을 주셔서 대단히 감사합니다! – Andrea3000

관련 문제