1、SDL_BlitSurface()
2、SDL_CreateRenderer()
3、SDL_CreateTexture()
4、 SDL_CreateTextureFromSurface()
5、SDL_CreateWindow()
5.1、SDL_CreateWindowFrom()
5.2、SDL_CreateYUVOverlay()
6、 SDL_Delay()
7、SDL_DestroyRenderer()
8、 SDL_DestroyTexture()
9、 SDL_DestroyWindow()
10、SDL_EventState()
11、SDL_FillRect()
12、SDL_FillRects()
13、 SDL_FreeSurface()
14、SDL_FreeWAV()
15、SDL_GetColorKey()
16、SDL_GetError()
17、 SDL_GetMouseFocus()
18、 SDL_GetMouseState()
19、 SDL_GetRGB()
20、SDL_GetRGBA()
21、SDL_GetRenderDrawColor()
22、SDL_GetWindowFlags()
23、SDL_GetWindowFromID()
24、SDL_GetWindowID()
25、SDL_GetWindowPixelFormat()
26、SDL_GetWindowPosition()
27、SDL_GetWindowSize()
28、 SDL_GetWindowSurface()
29、SDL_GetWindowTitle()
29.1、SDL_Init()
30、SDL_LoadBMP()
31、 SDL_MapRGB()
32、 SDL_MapRGBA()
33、SDL_MaximizeWindow()
34、SDL_MinimizeWindow()
35、SDL_RestoreWindow()
35.1 、SDL_AddTimer()
36、SDL_MixAudio()
37、SDL_MixAudioFormat()
38、SDL_OpenAudio()
######################################################
#####################################################
1. int SDL_BlitSurface(SDL_Surface* A,const SDL_Rect* B,SDL_Surface* C,SDL_Rect* D)
参数说明:A为源表面指针,B为截取A所指表面的一个矩形区域,若设置为NULL则为整个A所指表面,C为A要blit的目的表面(就是A在C所指的区域上显示),D为截取C所指表面的一个矩形区域(A在C上显示的地方),若设置为NULL,则blit的起点为C的(0,0)点。
函数说明:返回值为整型,成功则返回0,将A所指的表面的B区域的图显示到C表面的D区域上。
##############################
########################
#####################################################
2. SDL_Renderer* SDL_CreateRenderer(SDL_Window* A, int B, int32 C)
参数说明:A为窗口指针,渲染所将要呈现的地方,B为指定一个可选的显卡驱动(参数C所指定驱动),或者直接把参数设为-1,让SDL为你选择最合适的驱动,C为指定的驱动。
C指定驱动类型:1、SDL_RENDERER_SOFTWARE 渲染纹理是一种软件后退 2、SDL_RENDERER_ACCELERATED
渲染纹理是一种硬件加速(PS:用这个的时候要使用SDL_CreateTextureFromSurface(SDL_Renderer* ,
SDL_Surface* )建立一个硬件加速纹理,或者直接用IMG_LoadTexture(SDL_Renderer* , std::string
filename)函数进行硬件加速纹理 3、SDL_RENDERER_PRESENTVSYNC 使用和窗口的同步频率 4、
SDL_RENDERER_TARGETTEXTURE 渲染器支持渲染纹理。(PS:若是C设置为NULL,SDL则优先选择
SDL_RENDERER_ACCELERATED)
函数说明:函数返回值为一个SDL_Renderer渲染器指针,成功返回一个指针,失败返回NULL。
######################################################
#####################################################
3. SDL_CreateTexture(SDL_Renderer* A, Uint32 B, int C, int D,int E)
参数说明:A为渲染器指针,B为像素格式, C为访问方式,D为宽度,E为高度。
函数说明:返回一个SDL_Texture指针,宽度高度就是指定贴图大小,这个函数功能就是创建空白的贴图,然后你向贴图提供图像数据,格式要和你提供的数据匹配,访问可能是指贴图中数据的存储方式,是放在显卡还是内存,是否锁定之类的。(PS:这个是问别人的,本身不是很清楚,B和C具体参数进入官网查询)
######################################################
#####################################################
4. SDL_Texture* SDL_CreateTextureFromSurface(SDL_Renderer* A , SDL_Surface* B)
参数说明:A为渲染器指针,B为Surface类型的表面指针(参见SDL1.2)。
函数说明:将B通过A渲染成Texture(纹理),成功函数返回一个SDL_Texture类型的指针,失败返回NULL。
######################################################
#####################################################
5. SDL_Window* SDL_CreateWindow(const char* A,int B,int C,int D,int E,Uint32 F)
参数说明:A为窗口的标题(切记不能用中文,否则会乱码,至于中文标题,用SDL_RenderUTF8_*(星号表示渲染的方式:Solid、Shaded、Blended)或者用SDL_RenderUNICODE_*(星号内容和前面相同)后面会介绍到显示中文标题的函数),B为窗口的起始点X,C为窗口的起始点Y(PS:X和Y是相对于电脑屏幕左上角点(0,0)而言,C4droid上直接就是全屏了,没什么影响
。),D为创建窗口的宽度,E为创建窗口的高度,F为创建窗口的方式。
参数F说明:1、SDL_WINDOW_FULLSCREEN 窗口全屏 2、SDL_WINDOW_FULLSCREEN_DESKTOP 在当前分辨率的桌面上全屏 3、SDL_WINDOW_OPENGL OPENGL下可用的窗口 4、 SDL_WINDOW_HIDDEN 窗口不可见(隐藏窗口) 5、 SDL_WINDOW_BORDERLESS 没有窗口修饰(没有边框) 6、 SDL_WINDOW_RESIZABLE 窗口可以调整大小 7、 SDL_WINDOW_MINIMIZED 窗口最小化 8、 SDL_WINDOW_MAXIMIZED 窗口最大化 9、 SDL_WINDOW_INPUT_GRABBED 窗口有输入焦点 (鼠标只能在窗口内) 10、SDL_WINDOW_ALLOW_HIGHDPI 窗口应该创建在high-DPI模式下如果大于SDL2.0.1版本
函数说明:创建窗口,成功返回指向SDL_Window的指针,失败返回NULL。
######################################################
#####################################################
5.1、SDL_CreateWindowFrom(dlg->GetDlgItem(IDC_SCREEN)->GetSafeHwnd())
######################################################
#####################################################
5.2、SDL_CreateYUVOverlay()
######################################################
#####################################################
6. void SDL_Delay(Uint32 ms)
参数说明:参数为32位(4个字节)无符号整型数,为延迟的毫秒数。
函数说明:执行到这个函数时会延迟你所设定的毫秒数。
######################################################
#####################################################
7. void SDL_DestroyRenderer(SDL_Renderer* renderer)
参数说明:参数为创建的SDL_Renderer指针。
函数说明:使用这个函数摧毁的渲染上下文窗口和自由相关的纹理,释放缓存。
######################################################
#####################################################
8. void SDL_DestroyTexture(SDL_Texture* texture)
参数说明:参数为创建的SDL_Texture指针。
函数说明:使用这个函数摧毁指定的纹理,释放缓存。
######################################################
#####################################################
9. void SDL_DestroyWindow(SDL_Window* window)
参数说明:参数为创建的SDL_Window指针。
函数说明:使用这个函数摧毁一个窗口,释放缓存。
######################################################
#####################################################
10. Uint8 SDL_EventState(Uint32 type,int state)
参数说明:type为SDL_EventType类,state为事件状态,分别为:SDL_QUERY(-1)返回指定的当前处理的事件、 SDL_IGNORE(0)或 SDL_DISABLE(0) 事件将自动从事件队列删除,并将不会被过滤、 SDL_ENABLE 事件将会被正常处理。
函数说明:使用这个函数来设置处理事件的类型的状态,返回值为8位无符号整型。
######################################################
#####################################################
11. int SDL_FillRect(SDL_Surface* dst,const SDL_Rect* rect,Uint32 color)
参数说明:dst为所要填充颜色的Surface类型指针,rect为填充颜色的矩形区域, color为要填充的32为无符号整型颜色值。
参数说明:color=SDL_MapRGB(dst->format,Uint8 R,Uint8 G,Uint8 B),R为红色,G为绿色,B为蓝色(范围为0—255的16进制的数,例如0xff,或者0XFF)。(或者由SDL_MapRGBA(SDL_Surface* format,Uint8 R,Uint8 G,Uint8 B, Uint8 A)得到,A为alpha透明度,0为完全透明,255为完全不透明)
函数说明:使用这个函数将设定的矩形区域填充为指定的颜色,成功返回0。
######################################################
#####################################################
12. int SDL_FillRects(SDL_Surface* dst,const SDL_Rect* rects,int count,Uint32 color)
参数说明:rects为一个由多个矩形区域组成的数组,count为数组的元素个数,color dst SDL_FillRect里面的参数一样。(PS:如果dst指针
所指的表面区域和rects数组有交集,那只填充交集部分)
函数说明:使用这个函数填充多个区域,是SDL_FillRect()函数的升级版,成功返回0。
######################################################
#####################################################
13. void SDL_FreeSurface(SDL_Surface* surface)
参数说明:由SDL_Surface创建的指针。
函数说明:释放由SDL_Surface创建的表面,释放缓存。
######################################################
#####################################################
14. void SDL_FreeWAV(Uint8* audio_buf)
参数说明:由 SDL_LoadWAV() or SDL_LoadWAV_RW()函数创建的指向缓存区的指针。
函数说明:释放由SDL_LoadWAV() or SDL_LoadWAV_RW()函数分配的数据。
######################################################
#####################################################
15. int SDL_GetColorKey(SDL_Surface* surface,Uint32* key)
参数说明:一个Surface(表面)指针,一个32位无符号整型数指针。
Uint32 *key=SDL_MapRGB(SDL_Surface* format ,R, G, B) (PS:format为Surface类储存像素格式的成员)
函数说明:使用这个函数时获取一个Surafece对象的透明色,通过这个函数将透明色对应的颜色分别赋值给key中的R、G、B,成功返回0。
######################################################
#####################################################
16. const char* SDL_GetError(void)
函数说明:使用这个函数检索发生的错误,返回一个错误消息。
######################################################
#####################################################
17. SDL_Window* SDL_GetMouseFocus(void)
函数说明:使用这个函数获取一个当前拥有鼠标焦点的窗口(当前正在操作的窗口),返回该窗口的指针。
######################################################
#####################################################
18. Uint32 SDL_GetMouseState(int* x,int* y)
参数说明:x为与焦点窗口(当前操作的窗口)有关的鼠标光标的X轴坐标,y为为与焦点窗口(当前操作的窗口)有关的鼠标光标的Y轴坐标。
函数说明:返回一个表明当前按钮状态的32位按钮位掩码。
######################################################
#####################################################
19.void SDL_GetRGB(Uint32 pixel,const SDL_PixelFormat* format,Uint8* r, Uint8* g,Uint8* b)
参数说明:pixel为像素值,format为像素格式描述像素格式(不同的RGB或RGBA组成),r为红色颜色值,g为绿色颜色值,b为蓝色颜色值。
函数说明:使用这个函数从指定的像素值获取RGB值。
######################################################
#####################################################
20. void SDL_GetRGBA(Uint32 pixel,const SDL_PixelFormat* format,Uint8* r,Uint8* g,Uint8* b,Uint8* a)
参数说明:前几个参数参见SDL_GetRGB()函数,最后一个参数a为透明值。(若是Surface没有透明值,则a为0xff,100%不透明)
函数说明:使用这个函数从指定的像素值获取RGBA值。
######################################################
#####################################################
21. int SDL_GetRenderDrawColor(SDL_Renderer* renderer,Uint8* r,Uint8* g,Uint8* b,Uint8* a)
参数说明:renderer为设置了颜色的渲染器指针,r、g、b、a分别为渲染器设置的颜色值和透明值。
函数说明:获取rgba的值,成功返回0。(PS:与其对应的是SDL_SetRenderDrawColor(参数一样)函数则是相反,是给渲染器设置颜色值和透明值的。
######################################################
#####################################################
22. Uint32 SDL_GetWindowFlags(SDL_Window* wind
ow)
参数说明:创建窗口的指针。
函数说明:获取窗口的flags(窗口打开的方式),返回一个32为无符号整型数(flags的标志)。
######################################################
#####################################################
23. SDL_Window* SDL_GetWindowFromID(Uint32 ID)
参数说明:窗口的ID(通过SDL_GetWindowID()函数获得)。
函数说明:返回一个该ID标志的窗口指针。
######################################################
#####################################################
24. Uint32 SDL_GetWindowID(SDL_Window* window)
参数说明:创建的窗口的指针。
函数说明:返回一个32为无符号整型数(窗口的ID,与SDL_GetWindowFromID配套使用)。
######################################################
#####################################################
25. Uint32 SDL_GetWindowPixelFormat(SDL_Window* window)
参数说明:创建的窗口的指针。
函数说明:成功则返回一个32位无符号整数(窗口的像素格式),失败则返回SDL_PIXELFORMAT_UNKNOWN
,可以用SDL_GetError()获取相关错误信息。
######################################################
#####################################################
26. void SDL_GetWindowPosition(SDL_Window* window,int* x,int* y)
参数说明:window为创建的窗口指针,x为将要得到的窗口X坐标,y为将要得到的窗口Y坐标。
函数说明:获得窗口当前的位置信息。(与SDL_SetWindowPosition(参数相同)函数配套使用)
######################################################
#####################################################
27. void SDL_GetWindowSize(SDL_Window* window,int* w,int* h)
参数说明:window为创建的窗口的指针,w为得到的窗口宽度,h为得到的窗口高度。
函数说明:获取窗口的大小。(与SDL_SetWindowSize(参数一样)函数配套使用)
######################################################
#####################################################
28. SDL_Surface* SDL_GetWindowSurface(SDL_Window* window)
参数说明:创建的窗口的指针。
函数说明:获取窗口的Surface指针。(可以配合与 int SDL_UpdateWindowSurface(window)函数的使用,结合SDL1.2中SDL_BlitSurface()函数,实现图片的显示)
######################################################
#####################################################
29. const char* SDL_GetWindowTitle(SDL_Window* window)
参数说明:创建的窗口的指针。
函数说明:以UTF8的格式返回窗口的标题。(适合返回UTF8渲染的标题)
void SDL_SetWindowTitle(SDL_Window* window,const char* title)
参数说明:window为创建的窗口的指针,title设置为UTF8格式渲染的标题。
函数说明:以UTF8格式设置窗口的标题。
######################################################
#####################################################
29.1、SDL_Init()
SDL运行的初始
int SDLCALL SDL_Init(Uint32 flags)
其中,flags可以取下列值:
SDL_INIT_TIMER:定时器
SDL_INIT_AUDIO:音频
SDL_INIT_VIDEO:视频
SDL_INIT_JOYSTICK:摇杆
SDL_INIT_HAPTIC:触摸屏
SDL_INIT_GAMECONTROLLER:游戏控制器
SDL_INIT_EVENTS:事件
SDL_INIT_NOPARACHUTE:不捕获关键信号(这个不理解)
SDL_INIT_EVERYTHING:包含上述所有选项
######################################################
#####################################################
30. SDL_Surface* SDL_LoadBMP(const char* file)
参数说明:BMP格式的图片名字字符窜(加上图片路径)
函数说明:加载一张BMP格式的图片,并返回一个指向图片的Surface指针。
######################################################
#####################################################
31. Uint32 SDL_MapRGB(const SDL_PixelFormat* format,Uint8 r, Uint8 g, Uint8 b)
参数说明:表面类的像素格式 例如:“XX->format”(XX为Surface类的指针),rgb为映射所需设定的颜色值。
函数说明:返回一个32位关键色的色值,并通过SDL_SetColorKey(SDL_Surface*(format对应的Surface指针),SRCCOLORKEY(开启透明色,将设置的关键色colorkey隐去),colorkey(设置的关键色色值))将设置的关键色隐去(不显示)。
######################################################
#####################################################
32. Uint32 SDL_MapRGBA(const SDL_PixelFormat* format,Uint8 r, Uint8 g, Uint8 b,Uint8 a)
参数说明:前四个参数与SDL_MapRGB()函数一样,a为设定的关键色的透明色,取值为0-255,0为完全透明(关键色完全隐去),255
为完全不透明(关键色为原来的透明度,没改变)。
函数说明:返回一个设定的关键色和透明值混合的颜色值(32位),如果目标format(Surface类的成员)没有透明值,透明值将被忽略。
######################################################
#####################################################
33. void SDL_MaximizeWindow(SDL_Window* window)
参数说明:window类的指针。
函数说明:使窗口达到最大化。
######################################################
#####################################################
34:void SDL_MinimizeWindow(SDL_Window* window)
参数说明:window类的指针。
函数说明:使窗口达到最小化。
######################################################
#####################################################
35. void SDL_RestoreWindow(SDL_Window* window)
参数说明:window类的指针。
函数说明:使窗口恢复最小化或者最大化的大小和位置。
######################################################
#####################################################
35.1、SDL_AddTimer()
SDL_TimerID SDL_AddTimer(Uint32 interval, SDL_TimerCallback callback, void *param):
向系统请求增加一个定时器.
SDL_TimerID: 定时器的ID,若该值为NULL,表示请求失败;
interval: 定时间隔;
callback: 回调函数,定时时间到后会调用此函数;
备注: typedef Uint32 (* SDL_TimerCallback)(Uint32 interval, void *param):
该函数返回值为下次唤醒的时长,若返回0,则不会再唤醒.
######################################################
#####################################################
36. void SDL_MixAudio(Uint8* dst, const Uint8* src,Uint32 len, int volume)
参数说明:dst为混合音频的目的地,src为将要被混合的源音频缓冲区,len为音频缓冲区的长度,volume为范围从0 - 128,应该设置为SDL_MIX_MAXVOLUME完全音频音量。
######################################################
#####################################################
37. void SDL_MixAudioFormat
(Uint8* dst,const Uint8* src,SDL_AudioFormat format,Uint32 len, int volume)
参数说明:format是指定的音频格式。
函数说明:混合指定格式的音频。
######################################################
#####################################################
38. int SDL_OpenAudio(SDL_AudioSpec* desired, SDL_AudioSpec* obtained)
它的参数是两个SDL_AudioSpec结构体,它们的含义:
desired:期望的参数。
obtained:实际音频设备的参数,一般情况下设置为NULL即可。