作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个使用 2D 纹理创建动画万花筒的应用程序。它开始显示到 NSOpenGLView。我正在添加一个切换到全屏模式的选项。
我更喜欢将 OS 10.5 方法用于全屏,这样我就可以支持 10.5,但我认为如果我使用“在 Mac OS X v10 中创建全屏应用程序”下的文档中描述的方法,我会面临同样的问题.6"。
NSOpenGLContext init 方法 initWithFormat:shareContext: 接受一个可选指针,指向“另一个 OpenGL 图形上下文,其纹理命名空间和显示列表要与接收器共享”。
我用来创建全屏 OpenGL 上下文的代码很简单:
NSOpenGLPixelFormatAttribute myAttributes[] = // Pixel Format Attributes for the FullScreen NSOpenGLContext
{
NSOpenGLPFAFullScreen, // specify full-screen OpenGL context
NSOpenGLPFAScreenMask,
CGDisplayIDToOpenGLDisplayMask(kCGDirectMainDisplay), // specify main display
NSOpenGLPFAColorSize, (NSOpenGLPixelFormatAttribute) 32,
NSOpenGLPFADepthSize, (NSOpenGLPixelFormatAttribute) 0,
NSOpenGLPFAStencilSize, 0,
NSOpenGLPFADoubleBuffer,
NSOpenGLPFAAccelerated,
0
};
NSOpenGLPixelFormat *myPixelFormat = [[NSOpenGLPixelFormat alloc] initWithAttributes:myAttributes]; // Create FullScreen NSOpenGLContext with these attributes
NSOpenGLContext *fullScreenContext = [[NSOpenGLContext alloc] initWithFormat:myPixelFormat shareContext: myContext]; // Create an NSOpenGLContext with the FullScreen pixel format.
最佳答案
这些天,我在 OSX 上处理共享上下文,为没有一个应该做的事情 list 而苦苦挣扎。我认为值得分享一些小事或关键字,以帮助找出问题所在。
建议:在没有正确检查工具的情况下使用 DirectX 和 OpenGL 等绘图 API(请参阅开发人员网站的 khronos 或 NVidia)可能会非常痛苦。正确的工具是您首先需要的。
NSOpenGLContext
使用相同的像素格式对其进行初始化,并将其他上下文指示为共享资源的源。伟大的! NSOpenGLView
使用 setOpenGLContext
方法。 (不需要 update
, setview
或我在非常旧的帖子中在网上看到的其他内容)xib
创建了窗口文件,可以使用awakeFromNib
的方法的NSOpenGLView
类将默认上下文更改为刚刚创建的新上下文 [your_new_Context makeCurrentContext]
- 我在 awakeFormNib
中做到了方法关于opengl - 如何在 Mac OS 中的 NSOpenGLView 和全屏上下文之间共享纹理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5143505/
我是一名优秀的程序员,十分优秀!