SDL基本函数1

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即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值