我試圖修改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