我不是 OpenGL 的新手,但不是专家。许多教程教如何绘制、3D、2D、投影、正交等,但是如何设置视图呢?(可可,Mac 中的 NSOpenGLView)。
例如我有这个:
- (id) initWithFrame: (NSRect) frame
{
GLuint attribs[] = { //PF: PixelAttibutes
NSOpenGLPFANoRecovery,
NSOpenGLPFAWindow,
NSOpenGLPFAAccelerated,
NSOpenGLPFADoubleBuffer,
NSOpenGLPFAColorSize, 24,
NSOpenGLPFAAlphaSize, 8,
NSOpenGLPFADepthSize, 24,
NSOpenGLPFAStencilSize, 8,
NSOpenGLPFAAccumSize, 0,
0
};
NSOpenGLPixelFormat* fmt = [[NSOpenGLPixelFormat alloc] initWithAttributes: (NSOpenGLPixelFormatAttribute*) attribs];
return self = [super initWithFrame:frame pixelFormat: [fmt autorelease]];
}
而且我不太了解它们的用法,特别是在组合它们时。
例如:
如果我希望我的视图能够全屏显示,我应该只写 NSOpenGLPFAFullScreen 吗?或两者?(有能力我的意思是不总是全屏)
关于双缓冲,这到底是什么?(下:苹果的定义)
如果存在,此属性指示仅考虑双缓冲像素格式。否则,仅考虑单缓冲像素格式
关于颜色:如果 NSOpenGLPFAColorSize 是 24 并且 NSOpenGLPFAColorSize 是 8 那么这意味着 alpha 和 RGB 组件的处理方式不同吗?如果我将前者设置为 32,将后者设置为 0,会发生什么?
等等,一般来说,我如何学习从头开始设置我的视图?
提前致谢。
伊格纳西奥。