- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试创建一个 NSOpenGLContext,初始化我的渲染引擎,然后使用来自第一个上下文的共享参数创建新的 NSOpenGLContext。这行不通,在我继续之前,上下文之间究竟共享什么?文档对此有一些说明:
Shared contexts share all texture objects, display lists, vertex programs, fragment programs, and buffer objects created before and after sharing is initiated. The state of the objects is also shared but not other context state, such as current color, texture coordinate settings, matrix and lighting settings, rasterization state, and texture environment settings.
当我创建我的第一个 NSOpenGLContext 时,我初始化我的渲染引擎,它进行以下类型的调用:
其中大部分用于三种类型的任务 - 创建顶点和着色器程序、在程序中存储对属性和统一位置的引用、创建顶点数组以及绑定(bind)一些纹理。
您是否希望所有这些项目都能跨上下文共享?
最佳答案
函数调用不跨上下文共享。只有对象。并且只有一些对象。
一般来说,共享的对象是那些显然不允许在另一个上下文中重新创建的对象。要么是因为存储了大量数据,要么是设置时间相对较长。
如果你想要一个列表,共享以下对象:
未共享的显着对象:
被共享的对象意味着它在上下文中维护所有状态。因此,如果您从一个上下文修改状态,您将在另一个上下文中看到它。然而,这也意味着如果您使用多线程,您必须同步您对共享 GL 对象的访问。否则可能会出现竞争条件和其他不良情况。
关于objective-c - 两个 NSOpenGLContext 之间究竟共享什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9495250/
如何在Cocoa中创建一个独立于系统的NSOpenGLContext,不是为了绘图,而是为了检索OpenGL信息,如供应商、版本等。??? 最佳答案 您以与“绘图”相同的方式创建一个,但创建它后,您会
我正在尝试创建一个 NSOpenGLContext,初始化我的渲染引擎,然后使用来自第一个上下文的共享参数创建新的 NSOpenGLContext。这行不通,在我继续之前,上下文之间究竟共享什么?文档
(提前为这里看似大量的代码感到抱歉)我正在尝试使用 Cocoa 创建一个带有 OpenGL 上下文的窗口,但我发现我无法设置 的 view 属性我创建的 NSOpenGLContext。 我不能简单地
我正在通过 NSOpenGLContext 从主屏幕的某个区域读取像素。现在我想在该区域周围画一个矩形来指示它的实际位置。我该怎么做?我的第一个想法是“Cocoa 方式”:创建一个透明的全屏 NSWi
我是一名优秀的程序员,十分优秀!