kCGLRendererGenericFloatID 和 kCGLRendererAppleSWID 有什么区别?
文档看起来非常相似,只是 kCGLRendererAppleSWID 仅从 10.9 开始受支持。
最佳答案
如果您想知道您的系统上有哪些渲染器可用,您可以使用如下代码:
NSOpenGLPixelFormatAttribute attrs[] = {
NSOpenGLPFAOpenGLProfile, NSOpenGLProfileVersion3_2Core, // optional
0
};
NSOpenGLPixelFormat* pf = [[NSOpenGLPixelFormat alloc] initWithAttributes:attrs];
for (int i = 0; i < pf.numberOfVirtualScreens; i++)
{
GLint val;
[pf getValues:&val forAttribute:NSOpenGLPFARendererID forVirtualScreen:i];
val &= kCGLRendererIDMatchingMask;
printf("renderer 0x%08x\n", val);
}
可能只有 kCGLRendererGenericFloatID
或 kCGLRendererAppleSWID
之一可用。如果两者都可用,您可以使用相同的 -getValues:forAttribute:forVirtualScreen:
方法查询该虚拟屏幕的其他属性,以尝试区分它们。您还可以创建一个上下文并将其设为当前上下文,然后查询其 OpenGL 功能和限制,如 OpenGL Programming Guide for Mac: Determining the OpenGL Capabilities Supported by the Renderer 所示。 .
关于macos - kCGLRendererGenericFloatID 与 kCGLRendererAppleSWID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22066203/