二、SDL2基本API介绍(1)

目录

二、SDL2基本API介绍(1)

SDL_Init()

SDL_Quit()

SDL_CreateWindow()

SDL_DestroyWindow()

SDL_CreateRenderer()

SDL_DestroyRenderer()

SDL_PollEvent()

SDL_GetError()

示例程序


二、SDL2基本API介绍(1)

SDL_Init()

函数原型:

int SDL_Init(Uint32 flags)

参数:

SDL_INIT_TIMER:计时器子系统
SDL_INIT_AUDIO:音频子系统
SDL_INIT_VIDEO:视频子系统
SDL_INIT_JOYSTICK:操纵杆子系统
SDL_INIT_HAPTIC:触觉(力反馈)子系统
SDL_INIT_GAMECONTROLLER:控制器子系统
SDL_INIT_EVENTS:事件子系统
SDL_INIT_EVERYTHING:所有上述子系统
SDL_INIT_NOPRACHUTE:兼容性

返回值:

成功时为0,失败时为负错误代码;有关详细信息,请调用SDL_GetError()

函数作用:

初始化SDL库

SDL_Quit()

函数原型:

void SDL_Quit(void)

参数:

返回值:

函数作用:

清理所有初始化的子系统

SDL_CreateWindow()

函数原型:

SDL_Window *SDL_CreateWindow(const char *title, int x, int y, int w, int h, Uint32 flags)

参数:

title–窗口的标题,采用UTF-8编码
​
x–窗口的x位置,“SDL_WINDOWPOS_CENTERED”或“SDL_WINDOWPOS_UNDEFINED”`
​
y–窗口的y位置,“SDL_WINDOWPOS_CENTERED”或“SDL_WINDOWPOS_UNDEFINED”`
​
w–窗口的宽度,以屏幕坐标表示
​
h–窗口的高度,以屏幕坐标表示
​
flags–窗口状态属性标识,0,或一个或多个SDL_WindowFlags或一起

返回值:

返回创建的窗口或失败时返回NULL;有关详细信息,请调用SDL_GetError()

函数作用:

使用指定的位置、尺寸和标志创建窗口

SDL_DestroyWindow()

函数原型:

void SDL_DestroyWindow(SDL_Window *window)

参数:

window – 销毁的窗口

返回值:

函数作用:

销毁一个窗口。如果“window”为NULL,则在将SDL错误消息设置为“Invalid window”后,此函数将立即返回。请参见SDL_GetError()

SDL_CreateRenderer()

函数原型:

SDL_Renderer *SDL_CreateRenderer(SDL_Window *window, int index, Uint32 flags)

参数:

window–显示渲染的窗口
​
index–要初始化的渲染驱动程序的索引,或-1初始化第一个支持请求标志的驱动程序
​
flags–0,或一个或多个SDL_RenderFlags或一起
SDL_RENDERER_SOFTWARE:      渲染器使用软件加速
SDL_RENDERER_ACCELERATED:   渲染器使用硬件加速
SDL_RENDERER_PRESENTVSYNC:  和显示器的刷新率同步
SDL_RENDERER_TARGETTEXTURE: 渲染器支持渲染到纹理
PS:请注意,不提供任何标志会优先使用可用的SDL_RENDERER_ACCELERATED渲染器

返回值:

返回创建的渲染或失败时返回NUL;有关详细信息,请调用SDL_GetError()

函数作用:

为窗口创建二维渲染context 

SDL_DestroyRenderer()

函数原型:

void SDL_DestroyRenderer(SDL_Renderer *renderer)

参数:

renderer – 销毁的渲染

返回值:

函数作用:

破坏窗口的渲染上下文并释放关联的纹理。如果`renderer`为NULL,则在将SDL错误消息设置为“Invalid renderer”后,此函数将立即返回。请参见SDL_GetError()。

SDL_PollEvent()

函数原型:

int SDL_PollEvent(SDL_Event *event)

参数:

event–要用队列中的下一个事件填充的SDL_event结构,或NULL

返回值:

1(如果有挂起的事件)或0(如果没有可用的事件)。

函数作用:

轮询当前挂起的事件。如果“event”不为NULL,则从队列中删除下一个事件,并将其存储在“event(事件)”指向的SDL_event结构中。返回的1指的是该事件,该事件立即存储在SDL event结构中,而不是要跟随的事件。如果“event”为NULL,那么如果队列中有事件,它只返回1,但不会将其从队列中删除。

SDL_GetError()

函数原型:

const char *SDL_GetError(void)

参数:

返回值:

包含发生的特定错误信息的消息,如果自上次调用SDL_ClearError()以来没有设置错误消息,则为空字符串。只有当SDL函数发出错误信号时,该消息才适用。您必须检查SDL函数调用的返回值,以确定何时适当地调用SDL_GetError()。

函数作用:

检索有关当前线程上发生的最后一个错误的消息。在调用SDL_GetError()之前,可能会发生多个错误。只返回最后一个错误。只有当SDL函数发出错误信号时,该消息才适用。您必须检查SDL函数调用的返回值,以确定何时适当地调用SDL_GetError()。

示例程序

#include <stdio.h>
#include <SDL.h>
​
int main(int argc,char* argv[])
{
    /*初始化SDL*/
    SDL_Init(SDL_INIT_AUDIO);
    /*创建窗口*/
    SDL_Window* Win_1 = SDL_CreateWindow("hello",SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,640,480,SDL_WINDOW_SHOWN);
    if(Win_1 == NULL){
        printf("SDL Create Window Error: %s \n",SDL_GetError());
        return 1;
    }
    /创建渲染器*/
    SDL_Renderer* Ren_1 = SDL_CreateRenderer(Win_1,-1,SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
    if(Ren_1 == NULL){
        printf("SDL Create Rendre Error: %s \n",SDL_GetError());
        return 1;
    }
    SDL_RenderPresent(Ren_1);
    /*事件处理*/
    int isquit = 0;
    SDL_Event event;
​
    while (!isquit)
    {
       while(SDL_PollEvent(&event)){
        if(event.type == SDL_QUIT){
            isquit = 1;
        }
       }
    }
    
    SDL_DestroyRenderer(Ren_1);
    SDL_DestroyWindow(Win_1);
    SDL_Quit();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值