SDL基本函数讲解

27. 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区域上。



50. 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。



54. SDL_CreateTexture(SDL_Renderer* A, Uint32  B, int C, int D,int  E)

参数说明:A为渲染器指针,B为像素格式, C为访问方式,D为宽度,E为高度。

函数说明:返回一个SDL_Texture指针,宽度高度就是指定贴图大小,这个函数功能就是创建空白的贴图,然后你向贴图提供图像数据,格式要和你提供的数据匹配,访问可能是指贴图中数据的存储方式,是放在显卡还是内存,是否锁定之类的。(PS:这个是问别人的,本身不是很清楚,B和C具体参数进入官网查询)

55. SDL_Texture* SDL_CreateTextureFromSurface(SDL_Renderer* A , SDL_Surface*  B)

参数说明:A为渲染器指针,B为Surface类型的表面指针(参见SDL1.2)。

函数说明:将B通过A渲染成Texture(纹理),成功函数返回一个SDL_Texture类型的指针,失败返回NULL。


57. 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。


62. void SDL_Delay(Uint32 ms)

参数说明:参数为32位(4个字节)无符号整型数,为延迟的毫秒数。

函数说明:执行到这个函数时会延迟你所设定的毫秒数。


65. void SDL_DestroyRenderer(SDL_Renderer* renderer)

参数说明:参数为创建的SDL_Renderer指针。

函数说明:使用这个函数摧毁的渲染上下文窗口和自由相关的纹理,释放缓存。


67. void SDL_DestroyTexture(SDL_Texture* texture)

参数说明:参数为创建的SDL_Texture指针。

函数说明:使用这个函数摧毁指定的纹理,释放缓存。

68. void SDL_DestroyWindow(SDL_Window* window)

参数说明:参数为创建的SDL_Window指针。

函数说明:使用这个函数摧毁一个窗口,释放缓存。


73. Uint8 SDL_EventState(Uint32 type,int state)

参数说明:type为SDL_EventType类,state为事件状态,分别为:SDL_QUERY(-1)返回指定的当前处理的事件、 SDL_IGNORE(0)或 SDL_DISABLE(0) 事件将自动从事件队列删除,并将不会被过滤、 SDL_ENABLE 事件将会被正常处理。

函数说明:使用这个函数来设置处理事件的类型的状态,返回值为8位无符号整型。


74.  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。


75.  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。


83. void SDL_FreeSurface(SDL_Surface* surface)

参数说明:由SDL_Surface创建的指针。

函数说明:释放由SDL_Surface创建的表面,释放缓存。


84. void SDL_FreeWAV(Uint8* audio_buf)

参数说明:由 SDL_LoadWAV() or SDL_LoadWAV_RW()函数创建的指向缓存区的指针。


函数说明:释放由SDL_LoadWAV() or SDL_LoadWAV_RW()函数分配的数据。



136. 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。


140. const char* SDL_GetError(void)

函数说明:使用这个函数检索发生的错误,返回一个错误消息。


156. SDL_Window* SDL_GetMouseFocus(void)

函数说明:使用这个函数获取一个当前拥有鼠标焦点的窗口(当前正在操作的窗口),返回该窗口的指针。

157. Uint32 SDL_GetMouseState(int* x,int* y)

参数说明:x为与焦点窗口(当前操作的窗口)有关的鼠标光标的X轴坐标,y为为与焦点窗口(当前操作的窗口)有关的鼠标光标的Y轴坐标。

函数说明:返回一个表明当前按钮状态的32位按钮位掩码。


172.void SDL_GetRGB(Uint32 pixel,const SDL_PixelFormat* format,Uint8* r, Uint8* g,Uint8* b)


参数说明:pixel为像素值,format为像素格式描述像素格式(不同的RGB或RGBA组成),r为红色颜色值,g为绿色颜色值,b为蓝色颜色值。

函数说明:使用这个函数从指定的像素值获取RGB值。


173. 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值。


177. int SDL_GetRenderDrawColor(SDL_Renderer* renderer,Uint8* r,Uint8* g,Uint8* b,Uint8* a)

参数说明:renderer为设置了颜色的渲染器指针,r、g、b、a分别为渲染器设置的颜色值和透明值。

函数说明:获取rgba的值,成功返回0。(PS:与其对应的是SDL_SetRenderDrawColor(参数一样)函数则是相反,是给渲染器设置颜色值和透明值的。

206. Uint32 SDL_GetWindowFlags(SDL_Window* window)

参数说明:创建窗口的指针。

函数说明:获取窗口的flags(窗口打开的方式),返回一个32为无符号整型数(flags的标志)。


207. SDL_Window* SDL_GetWindowFromID(Uint32 ID)

参数说明:窗口的ID(通过SDL_GetWindowID()函数获得)。

函数说明:返回一个该ID标志的窗口指针。


210. Uint32 SDL_GetWindowID(SDL_Window* window)

参数说明:创建的窗口的指针。

函数说明:返回一个32为无符号整型数(窗口的ID,与SDL_GetWindowFromID配套使用)。


213. Uint32 SDL_GetWindowPixelFormat(SDL_Window* window)

参数说明:创建的窗口的指针。

函数说明:成功则返回一个32位无符号整数(窗口的像素格式),失败则返回SDL_PIXELFORMAT_UNKNOWN
,可以用SDL_GetError()获取相关错误信息。


214. void SDL_GetWindowPosition(SDL_Window* window,int* x,int* y)

参数说明:window为创建的窗口指针,x为将要得到的窗口X坐标,y为将要得到的窗口Y坐标。

函数说明:获得窗口当前的位置信息。(与SDL_SetWindowPosition(参数相同)函数配套使用)

215. void SDL_GetWindowSize(SDL_Window* window,int* w,int* h)

参数说明:window为创建的窗口的指针,w为得到的窗口宽度,h为得到的窗口高度。

函数说明:获取窗口的大小。(与SDL_SetWindowSize(参数一样)函数配套使用)

216. SDL_Surface* SDL_GetWindowSurface(SDL_Window* window)

参数说明:创建的窗口的指针。

函数说明:获取窗口的Surface指针。(可以配合与 int SDL_UpdateWindowSurface(window)函数的使用,结合SDL1.2中SDL_BlitSurface()函数,实现图片的显示)

217. const char* SDL_GetWindowTitle(SDL_Window* window)

参数说明:创建的窗口的指针。

函数说明:以UTF8的格式返回窗口的标题。(适合返回UTF8渲染的标题)

void SDL_SetWindowTitle(SDL_Window* window,const char* title)

参数说明:window为创建的窗口的指针,title设置为UTF8格式渲染的标题。

函数说明:以UTF8格式设置窗口的标题。


291. SDL_Surface* SDL_LoadBMP(const char* file)

参数说明:BMP格式的图片名字字符窜(加上图片路径)

函数说明:加载一张BMP格式的图片,并返回一个指向图片的Surface指针。



321. 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(设置的关键色色值))将设置的关键色隐去(不显示)。


322. 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类的成员)没有透明值,透明值将被忽略。



324.  void SDL_MaximizeWindow(SDL_Window* window)

参数说明:window类的指针。

函数说明:使窗口达到最大化。


325:void SDL_MinimizeWindow(SDL_Window* window)

参数说明:window类的指针。

函数说明:使窗口达到最小化。

391. void SDL_RestoreWindow(SDL_Window* window)

参数说明:window类的指针。

函数说明:使窗口恢复最小化或者最大化的大小和位置。


326. void SDL_MixAudio(Uint8* dst, const Uint8* src,Uint32 len, int volume)

参数说明:dst为混合音频的目的地,src为将要被混合的源音频缓冲区,len为音频缓冲区的长度,volume为范围从0 - 128,应该设置为SDL_MIX_MAXVOLUME完全音频音量。


327. void SDL_MixAudioFormat
               (Uint8* dst,const Uint8* src,SDL_AudioFormat format,Uint32 len, int  volume)


参数说明:format是指定的音频格式。

函数说明:混合指定格式的音频。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值