我有一个线程,它执行以下操作:
- 初始化SDL
- 存储指向SDL_Surface的指针
- 进入循环并等待任何鼠标事件并处理它们
在另一个线程中,有一个函数执行以下操作:
- 获取指向SDL_Surface的指针
- 执行SDL_LockSurface
- 操作像素
- 执行SDL_UnlockSurface
- 在表面上调用SDL_Flip
我在文档中读到,通常SDL库函数调用应该都来自同一个线程。这是否包括直接更改SDL_Surface?那么关于表面的锁定和解锁函数呢?我认为这对锁定和解锁是用于多线程情况。
那么SDL_Flip函数呢?如果需要从初始化SDL的SDL线程中调用它,那么我可以简单地发出用户事件并在其他线程中处理它。