如果我使用标准NSWindow
来托管所有窗框的NSOpenGLView
,则窗口的两个底角会自动舍入。
当切换到NSBorderlessWindowMask
时,我必须自己处理圆角。
我已经实现了透明的自定义NSWindow
和舍入的自定义NSView
,它们都可以正常工作。
之后,我通过将NSOpenGLContext
设置为0来实现透明的NSOpenGLCPSurfaceOpacity
。
如果我为OpenGL上下文设置了颜色背景,则会正确绘制视图并获得所需的圆角。
但是,由于该应用程序是一个电影播放器,我需要绘制与每个电影帧相对应的纹理。
当我这样做时(使用glTexCoord2f
和glVertex2f
),纹理被绘制到角落,因此图像被绘制到圆角的外面,我松开了窗口的圆形面。 / p>
当窗口是标准窗口时,系统会执行什么操作?非 NSBorderlessWindowMask
我似乎无法再现这些窗口?
在将纹理绘制到帧缓冲区时对纹理角进行圆角的最佳方法是什么?
答案 0 :(得分:1)
您可以将纹理应用于具有圆角的几何体,在带有圆角的影片纹理上使用其他Alpha蒙版,或使用模板测试来圆化视口的角落。