SDL2 简单介绍以及Windows开发环境搭建

您所在的位置:网站首页 CMake使用SDL2 SDL2 简单介绍以及Windows开发环境搭建

SDL2 简单介绍以及Windows开发环境搭建

2024-01-19 01:07| 来源: 网络整理| 查看: 265

1.简介

SDL(Simple DirectMedia Layer)是一个跨平台的多媒体开发库,使用C语言写成,用于实现音频、图形、输入以及窗口功能的处理。它提供了一个简单、易用的API,可以帮助开发者快速构建跨平台的多媒体应用程序。

SDL库分为 Video、Audio、CD-ROM、Joystick 和 Timer 等若干子系统。

Video(图像)—图像控制以及线程(thread)和事件管理(event)。Audio(声音)—声音控制Joystick(摇杆)—游戏摇杆控制CD-ROM(光盘驱动器)—光盘媒体控制Window Management(视窗管理)-与视窗程序设计集成Event(事件驱动)-处理事件驱动

除此之外,还有一些单独的官方扩充函数库。这些库由官方网站提供,并包含在官方文档中,共同组成了SDL的“标准库”:

SDL_image—支持时下流行的图像格式:BMP、PPM、XPM、 PCX、GIF、JPEG、PNG、TGA。SDL_mixer—更多的声音输出函数以及更多的声音格式支持。SDL_net—网络支持。SDL_ttf—TrueType字体渲染支持。SDL_rtf—简单的RTF渲染支持。 2.SDL库的主要特点 简单易用:SDL库提供了一套简洁清晰的API,可以快速上手。它的文档详尽,示例丰富。跨平台:SDL库可以在多个操作系统上使用。多媒体处理:SDL库提供了对音频、图形的处理能力。输入处理:SDL库可以处理多种输入设备,包括键盘、鼠标、游戏手柄等。窗口管理:SDL库提供了窗口管理功能,可以创建和管理窗口。 3.编译

SDL2.0源码下载地址:

GitHub - libsdl-org/SDL at SDL2

解压源码包:

使用cmake进行编译:设置源码的路径,以及编译后的存放路径,

点击Configure,再点击Generate,最后Open Project,编译成库。

 

最后库文件生成到Release目录下。

4.配置

新建解决方案工程文件SDL2Test.sln

在解决方案工程文件SDL2Test.sln基础上新建项目SinglestTest。

在SinglestTest同级目录下新建目录thirdPart

thirdPart目录结构如下所示thirdPart\SDL2

分别将编译好的lib、dll库文件放到lib目录、bin目录下。

将源码中的SDL-SDL2\include目录下所有文件拷贝到include目录下。

SinglestTest工程配置include和lib。

C/C++->常规->附加包含目录:$(SolutionDir)thirdPart\SDL2\include

链接器->常规->附加库目录:$(SolutionDir)thirdPart\SDL2\lib

链接器->输入->附加依赖项:SDL2.lib

 

至此环境已经配置完成。

5.示例

// SinglestTest.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include #include #undef main int main() { SDL_Window *window = SDL_CreateWindow("demo", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_SHOWN); SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED); bool quit = false; SDL_Event event; SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255); while (!quit) { while (SDL_PollEvent(&event)) { switch (event.type) { case SDL_QUIT: quit = true; break; case SDL_MOUSEMOTION: if (SDL_GetMouseState(NULL, NULL) &SDL_BUTTON(1)) SDL_RenderDrawPoint(renderer, event.motion.x, event.motion.y); break; } } SDL_RenderPresent(renderer); SDL_Delay(1000 / 60); } SDL_DestroyWindow(window); SDL_DestroyRenderer(renderer); return 0; }



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3