我有一个执行以下操作的主题:
在另一个主题中,有一个函数执行以下操作:
我在文档中已经读到SDL lib函数调用通常都来自同一个线程。这是否包括直接更改SDL_Surface?如何使用表面的锁定和解锁功能?我认为这些锁定和解锁对旨在用于多线程情况。
SDL_Flip功能怎么样?如果需要从初始化SDL的SDL线程调用它,那么我可以简单地发信号通知用户事件并在另一个线程中处理它。
答案 0 :(得分:4)
SDL_Surfaces上的锁定/解锁是为了处理将位图放在系统内存以外的位置的后端。锁定表面会将位图拉回系统内存进行修改,而解锁会将其推回原位。
它们不适用于多线程。
你可能能够通过锁定/解锁主线程中的表面并将位图指针传递给工作线程来实现。