SDL封装的系统操作(转载)
Andrew Haung bluedrum@163.com
|
4.判断系统的字节序
#include "SDL_endian.h"
定义在宏上SDL_BYTEORDER ,如果是小端字节序则等于SDL_LIL_ENDIAN
,大端字节序是SDL_BIG_ENDIAN
5.信号量
采用SDL_sem结构,操作跟Posix 信号量一致
SDL_sem * SDL_CreateSemaphore(Uint32 initial_value);#创建信号量
void SDL_DestroySemaphore(SDL_sem *sem); #销毁信号量
int SDLCALL SDL_SemWait(SDL_sem *sem); #类似于sem_wait()
int SDL_SemTryWait(SDL_sem *sem);#类似于 sem_trywait();
int SDLCALL SDL_SemWaitTimeout(SDL_sem *sem, Uint32 ms);#类似于sem_timedwait();
int SDL_SemPost(SDL_sem *sem); #相当于sem_post;
6.互斥锁SDL_Mutex
它的原型类似于 pthread_mutex.采用用于加锁,便是由信号量的实现的。
SDL_mutex * SDLCALL SDL_CreateMutex(void);创建互斥量
SDL_LockMutex(m); //加锁
SDL_UnlockMutex(m);//解锁
void SDLCALL SDL_DestroyMutex(SDL_mutex *mutex);销毁互斥量
5
7.条件变量
SDL_cond :原型类似pthread_cond_t.用于事件同步
SDL_cond * SDL_CreateCond(void); #创建条件变量
void SDL_DestroyCond(SDL_cond *cond); #关闭条件变量
int SDL_CondSignal(SDL_cond *cond);#通知条件成立,类似于pthread_cond_signal()
int SDL_CondBroadcast(SDL_cond *cond); #通知条件类似于 pthread_cond_broadcast();一次性通知所有阻塞条件
int SDLCALL SDL_CondWait(SDL_cond *cond, SDL_mutex *mut);#类似于pthread_cond_wait();