二、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();
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SDL是一个跨平台的多媒体库,提供了一个简单的接口,用于在图形界面和音频处理方面进行开发。SDL C是用C语言编写的SDL的绑定库,可以方便地用于开发C语言项目。 SDL C提供了丰富的功能,包括窗口管理、渲染器、2D绘图、音频播放、事件处理等。它为开发者提供了一系列简单易用的函数和结构体,使得在C语言项目中处理图形和音频变得更加容易。 SDL C的中文文档对于初学者和习惯使用中文的开发者来说是非常重要的。它包含了详细的SDL C函数和结构体的说明,以及使用示例和常见问题的解答。中文文档可以帮助开发者更快地了解SDL C的使用方法,并且能够更加方便地查找到需要的信息。 中文文档还涵盖了SDL C的各个方面,包括窗口创建与管理、图像绘制与渲染、音频播放和事件处理等。开发者可以通过阅读文档,了解SDL C的基本概念和原理,掌握使用SDL C进行开发的基本技巧。 此外,中文文档还可以提供一些特定领域的开发指导,比如游戏开发、嵌入式系统开发等。通过中文文档,开发者可以学习到如何结合SDL C和其他库进行开发,以及一些高级用法和技巧。 总之,SDL C的中文文档对于使用SDL C进行开发的开发者来说至关重要。它使得开发者可以更轻松地学习和使用SDL C,提高开发效率,降低开发难度。通过中文文档,开发者可以更好地掌握SDL C的使用方法,为自己的项目带来更好的用户体验。 ### 回答2: SDL C是一个跨平台的多媒体开发库,它使用C语言编写,旨在简化游戏和多媒体应用程序的开发过程。SDL是Simple DirectMedia Layer的缩写,它提供了一系列的API,用于处理图形、音频、输入和网络等方面的功能。 SDL C的中文文档可以为用户提供对SDL C库的详细了解和使用指导。这些文档通常包括如下内容: 1. SDL C库的介绍介绍SDL C库的基本信息,包括其功能和特点。 2. 安装和配置:说明如何下载、安装和配置SDL C库,以便用户能够在自己的开发环境中使用它。 3. 入门指南:提供一些简单的示例代码,帮助用户快速上手使用SDL C库进行游戏和多媒体应用程序的开发。 4. API文档:对SDL C库的API进行详细的描述,包括函数、结构体和宏等的说明,让用户了解如何使用这些API来实现自己的程序需求。 5. 示例代码:提供一些完整的示例代码,演示如何使用SDL C库来创建游戏和多媒体应用程序,帮助用户更好地理解和应用这些API。 6. 常见问题解答:列出一些常见问题和解答,帮助用户解决在使用SDL C库过程中可能遇到的一些问题。 通过阅读SDL C的中文文档,用户可以了解到SDL C库的使用方法和技巧,掌握游戏和多媒体应用程序开发的基本知识,提升自己的编程水平。同时,中文文档也方便中国用户使用SDL C库,减少语言上的障碍,加快开发速度。 ### 回答3: SDL(Simple DirectMedia Layer)是一个跨平台的多媒体开发库,它提供了一套易用的API,用于处理音频、图形、输入设备和窗口管理等功能。SDL C是指使用C语言编写的SDL库程序。 关于SDL C中文文档,我们可以从以下几个方面进行回答: 首先,SDL C中文文档是一份介绍SDL C程序开发的指南。它包含了SDL C库的基本概念、函数和数据结构的详细说明,以及使用SDL C编写程序的示例代码。文档中会涵盖SDL C库的各个方面,包括图形绘制、窗口管理、事件处理、音频和输入设备等。 其次,SDL C中文文档可以帮助开发者快速入门SDL C编程。文档中会对SDL C的基本概念进行简明扼要的介绍,同时提供了丰富的示例代码,帮助开发者理解和运用SDL C的各种功能。通过阅读文档,开发者可以了解SDL C库的使用方法和开发技巧,从而更快地编写出具有各种多媒体功能的程序。 最后,SDL C中文文档还可以作为SDL C开发的参考手册。当开发者在使用SDL C编程时遇到问题或需要查找某个函数或数据结构的具体使用方法时,可以通过查询文档找到相应的解答。文档中会包含详尽的函数和数据结构的说明,以及常见问题的解答和开发技巧的分享。这样,开发者可以更加高效地解决问题,提高开发效率。 总之,SDL C中文文档是对SDL C库进行详细介绍和说明的一份指南,它可以帮助开发者快速入门SDL C编程,提供开发参考和解决问题的手册。对于学习和使用SDL C的开发者来说,这份文档是一份非常宝贵的资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值