如果我使用一个标准NSWindow
来承载一个NSOpenGLView
延伸到所有窗框的标准,则窗口的两个底角会自动变圆。
切换到时,NSBorderlessWindowMask
我必须自己处理圆角。我已经实现了一个透明的自定义NSWindow
和一个圆形的自定义NSView
,它们都工作得很好。之后,我NSOpenGLContext
通过设置NSOpenGLCPSurfaceOpacity
为 0 实现了透明。如果我为 OpenGL 上下文设置颜色背景,则视图被正确绘制并获得所需的圆角。
但是,由于该应用程序是一个电影播放器,我需要绘制对应于每个电影帧的纹理。
当我这样做(使用glTexCoord2f
and glVertex2f
)时,纹理被绘制到角落,因此图像被绘制到圆角之外,我松开了窗口的圆形方面。
当窗口是标准的而不是 NSBorderlessWindowMask
我似乎无法重现的窗口时,系统会做什么?
在将纹理绘制到帧缓冲区时将其圆角的最佳方法是什么?