我试图修改Apple的GLCameraRipple示例应用程序以在后台线程上处理视频帧。在这个例子中,它处理使用下面的代码在主线程的每个帧:如何修改GLCameraRipple示例以在后台线程上处理?
// Set dispatch to be on the main thread so OpenGL can do things with the data
[dataOutput setSampleBufferDelegate:self queue:dispatch_get_main_queue()];
如果我改变了代码在后台线程来处理:
dispatch_queue_t videoQueue = dispatch_queue_create("com.test.queue", NULL);
[dataOutput setSampleBufferDelegate:self queue:videoQueue];
然后程序崩溃。
当我尝试创建第二个EAGLContext与苹果的文档中指定的共享,然后我只看到一个绿色或黑色的屏幕。
如何修改此示例应用程序以在后台线程上运行?
当你的应用程序崩溃时,你得到的错误是什么? – 2012-02-03 14:59:40
图像通过什么方式进入屏幕?你是否遵循了规则(即,之前刷新,传递,刷新),以便在同一共享组中的不同上下文之间传递已命名的GL资源? – Tommy 2012-02-03 16:58:28