代码之家  ›  专栏  ›  技术社区  ›  Vojtěch Melda Meluzín

NSOpenGLContext破坏另一个上下文的纹理

  •  1
  • Vojtěch Melda Meluzín  · 技术社区  · 12 年前

    我正在使用NSOpenGLContext优化绘制AU插件。有多个插件,每个插件可以有多个实例。因此,每个插件都创建一个全局NSOpenGLContext,并将特定的NSView上下文附加到其中,这样纹理就不需要复制了。

    问题:当我打开一个插件时,这是正常的。我打开另一个插件,这是正确的。现在我发布第一个插件,它会破坏所有资源=>第二个会失去纹理!

    我检查了两个上下文不同,共享不同,它们都在lockFocus和drawRect中使用makeCurrentContext。知道这里出了什么问题吗?

    顺便说一句,我在使用AGL和WGL(在Windows上)时得到了同样的效果,两者都没有问题,所以它和往常一样只是Cocoa。

    1 回复  |  直到 12 年前
        1
  •  0
  •   Vojtěch Melda Meluzín    12 年前

    好的,我想我找到了一个解决方案——需要调用[NOpenGLContext clearCurrentContext];在任何涂漆或任何处理之后。为什么?不知道。。。我正在考虑Mac OS X中的另一个错误…不可能的伪系统。。。