2
我有一个线程执行以下操作:SDL:在多线程程序中安全吗?
- 初始化SDL
- 存储的指针SDL_Surface
- 进入一个循环,等待任何鼠标事件,并对其进行处理
在另一个线程中有以下功能:
- 获取p ointer到SDL_Surface
- 难道一个SDL_LockSurface
- 操纵像素
- 难道一个SDL_UnlockSurface
- 调用SDL_Flip表面
我已经在文档中读取一般SDL lib中的函数调用都应该在来自同一个线程。这是否包括直接更改SDL_Surface?如何使用表面的锁定和解锁功能?我认为这些锁定和解锁对旨在用于多线程情况。
SDL_Flip函数怎么样?如果这需要从初始化SDL的SDL线程中调用,那么我可以简单地发信号通知用户事件并在另一个线程中处理它。
SDL_LockSurface()和SDL_UnlockSurface在大多数平台上都是不合适的。我现在记不起来了,但我认为他们只需要GDI或DirectX。无论如何,它们对于同步线程绝对无用。 – ninjalj 2010-10-06 21:47:12