【发布时间】:2011-10-07 09:37:18
【问题描述】:
如果我使用标准的NSWindow 来承载延伸到所有窗框的NSOpenGLView,则窗口的两个底角会自动变圆。
当切换到NSBorderlessWindowMask 时,我必须自己处理圆角。
我已经实现了一个透明的自定义NSWindow 和一个圆形的自定义NSView,它们都可以正常工作。
之后,我通过将 NSOpenGLCPSurfaceOpacity 设置为 0 来实现透明的 NSOpenGLContext。
如果我为 OpenGL 上下文设置颜色背景,则正确绘制视图并获得所需的圆角。
但是,由于该应用是一个电影播放器,我需要绘制对应于每个电影帧的纹理。
当我这样做(使用glTexCoord2f 和glVertex2f)时,纹理被绘制到角落,因此图像被绘制到圆角之外,我松开了窗口的圆形外观。
当窗口是标准的并且我似乎无法重现的非 NSBorderlessWindowMask 时,系统会做什么?
在将纹理绘制到帧缓冲区时圆角的最佳方法是什么?
【问题讨论】:
标签: cocoa opengl textures rounded-corners nsopenglview