-
SDL: 安装SDL2_mixer https://www.iteye.com/blog/lobin-2516515
SDL2
SDL相关资料
mpg123
http://www.mpg123.de/
libTiMidity
https://sourceforge.net/projects/libtimidity
SoX
https://sourceforge.net/projects/sox
libmpeg2
https://sourceforge.net/projects/libmpeg2
安装SDL2
./configure --prefix=/usr/local/SDL2-2.0.7
make
make install
目录结构
│ sdl2-config
│ SDL2.dll
│
├─include
│ └─SDL2
│ begin_code.h
│ close_code.h
│ SDL.h
│ SDL_assert.h
│ SDL_atomic.h
│ SDL_audio.h
│ SDL_bits.h
│ SDL_blendmode.h
│ SDL_clipboard.h
│ SDL_config.h
│ SDL_cpuinfo.h
│ SDL_egl.h
│ SDL_endian.h
│ SDL_error.h
│ SDL_events.h
│ SDL_filesystem.h
│ SDL_gamecontroller.h
│ SDL_gesture.h
│ SDL_haptic.h
│ SDL_hints.h
│ SDL_joystick.h
│ SDL_keyboard.h
│ SDL_keycode.h
│ SDL_loadso.h
│ SDL_log.h
│ SDL_main.h
│ SDL_messagebox.h
│ SDL_metal.h
│ SDL_mouse.h
│ SDL_mutex.h
│ SDL_name.h
│ SDL_opengl.h
│ SDL_opengles.h
│ SDL_opengles2.h
│ SDL_opengles2_gl2.h
│ SDL_opengles2_gl2ext.h
│ SDL_opengles2_gl2platform.h
│ SDL_opengles2_khrplatform.h
│ SDL_opengl_glext.h
│ SDL_pixels.h
│ SDL_platform.h
│ SDL_power.h
│ SDL_quit.h
│ SDL_rect.h
│ SDL_render.h
│ SDL_revision.h
│ SDL_rwops.h
│ SDL_scancode.h
│ SDL_sensor.h
│ SDL_shape.h
│ SDL_stdinc.h
│ SDL_surface.h
│ SDL_system.h
│ SDL_syswm.h
│ SDL_test.h
│ SDL_test_assert.h
│ SDL_test_common.h
│ SDL_test_compare.h
│ SDL_test_crc32.h
│ SDL_test_font.h
│ SDL_test_fuzzer.h
│ SDL_test_harness.h
│ SDL_test_images.h
│ SDL_test_log.h
│ SDL_test_md5.h
│ SDL_test_memory.h
│ SDL_test_random.h
│ SDL_thread.h
│ SDL_timer.h
│ SDL_touch.h
│ SDL_types.h
│ SDL_version.h
│ SDL_video.h
│ SDL_vulkan.h
│
├─lib
│ │ libSDL2.a
│ │ libSDL2.dll.a
│ │ libSDL2.la
│ │ libSDL2main.a
│ │ libSDL2main.la
│ │ libSDL2_test.a
│ │ libSDL2_test.la
│ │
│ ├─cmake
│ │ └─SDL2
│ │ sdl2-config-version.cmake
│ │ sdl2-config.cmake
│ │
│ └─pkgconfig
│ sdl2.pc
│
└─share
└─aclocal
sdl2.m4
SDL2
渲染
创建渲染器
extern DECLSPEC SDL_Renderer * SDLCALL SDL_CreateRenderer(SDL_Window * window,
int index, Uint32 flags);
另外两个创建渲染器的函数
extern DECLSPEC SDL_Renderer * SDLCALL SDL_CreateSoftwareRenderer(SDL_Surface * surface);
extern DECLSPEC int SDLCALL SDL_CreateWindowAndRenderer(
int width, int height, Uint32 window_flags,
SDL_Window **window, SDL_Renderer **renderer);
对应有个销毁渲染器的函数
extern DECLSPEC void SDLCALL SDL_DestroyRenderer(SDL_Renderer * renderer);
纹理
创建纹理
extern DECLSPEC SDL_Texture * SDLCALL SDL_CreateTexture(SDL_Renderer * renderer,
Uint32 format,
int access, int w,
int h);
extern DECLSPEC SDL_Texture * SDLCALL SDL_CreateTextureFromSurface(SDL_Renderer * renderer, SDL_Surface * surface);
对应有个销毁纹理的函数
extern DECLSPEC void SDLCALL SDL_DestroyTexture(SDL_Texture * texture);
Surface
表面?外表?表层?面层。。。我有时候也理解为遮罩层。
SDL只提供了创建RGB的Surface
extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurface
(Uint32 flags, int width, int height, int depth,
Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask);
extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceWithFormat
(Uint32 flags, int width, int height, int depth, Uint32 format);
extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceFrom(void *pixels,
int width,
int height,
int depth,
int pitch,
Uint32 Rmask,
Uint32 Gmask,
Uint32 Bmask,
Uint32 Amask);
extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceWithFormatFrom
(void *pixels, int width, int height, int depth, int pitch, Uint32 format);
另外还有2个通过加载bmp图像创建Surface:
extern DECLSPEC SDL_Surface *SDLCALL SDL_LoadBMP_RW(SDL_RWops * src,
int freesrc);
#define SDL_LoadBMP(file) SDL_LoadBMP_RW(SDL_RWFromFile(file, "rb"), 1)
对应也有个释放销毁Surface的函数
extern DECLSPEC void SDLCALL SDL_FreeSurface(SDL_Surface * surface);
图像
音频
参考SDL_LoadWAV和SDL_LoadWAV_RW:
extern DECLSPEC SDL_AudioSpec *SDLCALL SDL_LoadWAV_RW(SDL_RWops * src,
int freesrc,
SDL_AudioSpec * spec,
Uint8 ** audio_buf,
Uint32 * audio_len);
#define SDL_LoadWAV(file, spec, audio_buf, audio_len) \
SDL_LoadWAV_RW(SDL_RWFromFile(file, "rb"),1, spec,audio_buf,audio_len)
视频
相关推荐
同时,"sdl_sdl-ne"指的是SDL的非加密版本,它允许开发者查看和修改源代码,以便更好地理解和定制网络功能,这对于开源项目或者需要深度定制的商业应用尤其有用。而"sdl_net"则是对整个网络库的简写,强调了它是SDL...
《SDL_ttf-2.0.8:在Linux下构建图形界面的利器》 SDL_ttf,全称为Simple DirectMedia Layer TTF(简单直接媒体层TrueType字体库),是SDL库的一个扩展,专为在Linux操作系统上处理TrueType字体而设计。这个版本,...
### SDL入门教程中文知识点概述 #### 一、SDL简介 - **定义**:SDL(Simple DirectMedia Layer)是一个跨平台的多媒体库,旨在提供对多媒体硬件底层的直接控制接口。其核心功能涵盖音频处理、输入设备(如键盘、...
这个“SDL中文帮助文档”是为初学者和开发者提供的一份详尽指南,旨在加速对SDL的理解和应用。这份文档以中文呈现,使得国内的开发者能够更方便地学习和掌握SDL的核心功能和使用技巧。 在SDL的帮助下,开发者可以...
**标题解析:** "SDL2.0.3源码安装包" 指的是Simple DirectMedia Layer(SDL)的版本2.0.3的源代码安装包。SDL是一个跨平台的开发库,主要用于处理图形、音频、输入设备等多媒体功能,尤其在游戏开发和图形用户界面...
**Qt+FFMPEG+SDL实现的视频播放器** 在软件开发中,创建一个功能完备的视频播放器是一项挑战,但结合Qt、FFmpeg和SDL(Simple DirectMedia Layer)库,我们可以构建出一个高效且跨平台的解决方案。下面将详细阐述这...
10. **扩展库**:除了基本功能,SDL还有许多扩展库,如SDL_ttf用于TrueType字体渲染,SDL_image用于加载多种图像格式,SDL_mixer用于音频混音,SDL_net则提供了网络通信功能。 总的来说,SDL 2.28.5是一个强大的...
**标题解析:** "SDL2-2.0.8.tar.gz" 是一个压缩包文件,其中 "SDL2" 表示 Simple DirectMedia Layer 的第二版,这是一个跨平台的开发库,用于处理图形、音频和输入设备。版本号 "2.0.8" 指示这是该库的第 2.0.8 ...
10. **扩展库**:有许多基于SDL2的扩展库,如SDL_ttf用于文本渲染,SDL_image处理图像加载,SDL_mixer处理音频混合等。 在实际使用中,开发者需要了解如何配置和编译SDL2源代码,以及如何在项目中集成和使用它的API...
这个压缩包“SDL_ttf-2.0.9.rar_.ttf_SDL_ttf-2_TTFILk_sdlttf_ttfiLk下载”包含了SDL_ttf库的版本2.0.9,它是一个用于SDL(Simple DirectMedia Layer)库的扩展,使得开发者能够方便地在他们的应用中添加文本显示...
SDL_gfx库是一个用于SDL(Simple DirectMedia Layer)的扩展库,主要提供了丰富的图形操作功能,包括图像旋转和缩放。这个库对于游戏开发者、图形界面设计师和其他需要在SDL平台上进行2D图形处理的程序员来说非常...
SDL,即Security Development Lifecycle(安全开发生命周期),是针对软件开发过程中的安全性管理,提出的一套管理方法论,强调在软件的生命周期的每个阶段都考虑并融入安全性措施。滴滴出行作为一家大型互联网企业...
在Linux系统中,特别是对于开发和测试多媒体应用的开发者来说,Simple DirectMedia Layer(SDL2)是一个必不可少的库。它提供了跨平台的图形、音频和输入功能,使得开发者能够轻松地创建高性能的游戏、图形界面和...
**SDL2_image库详解** `SDL2_image`是SDL(Simple DirectMedia Layer)的一个扩展库,主要用于处理图像加载和渲染。这个库使得开发者能够轻松地将各种格式的图像文件(如JPEG、PNG、TIF等)引入到他们的游戏或者...
标题"SDL-1.3 SDL.lid SDL.dll SDL.h"中,"SDL-1.3"代表这是一个关于Simple DirectMedia Layer(SDL)库的版本1.3的相关内容。"SDL.lid"、"SDL.dll"和"SDL.h"是SDL库在Windows环境下开发和运行时所需的三个关键文件...
【标题】"SDL2_SDL2_SDL2_" 指的是 Simple DirectMedia Layer 的第二版,这是一个跨平台的开发库,主要用于处理图形、音频、输入设备等方面,广泛应用于游戏开发和其他多媒体应用。SDL2 提供了底层访问硬件的能力,...
本文将深入探讨SDL库中的几个核心函数:`SDL_Init`、`SDL_InitSubSystem`、`SDL_QuitSubSystem`、`SDL_Quit`及`SDL_WasInit`。 1. **`SDL_Init`** 函数是使用SDL库的第一步,负责初始化SDL支持的子系统。它的原型...
《构建海思OSD叠加:freetype2.4.10+SDL_ttf2.0.11+SDL1.2.15详解》 在计算机图形学领域,OSD(On-Screen Display)叠加是指在视频或图像上显示文本、图标和其他信息的技术。在海思平台中,这一功能的实现往往依赖...
标题"SDL2-2.0.2.tar.gz源码"表明这是一个开源软件库的源代码包,使用的是版本控制格式`.tar.gz`,具体来说是SDL2库的2.0.2版本。SDL2是Simple DirectMedia Layer的第二版,是一个跨平台的开发库,主要用于处理...
**SDL2帮助文档离线版概述** SDL2(Simple DirectMedia Layer 2)是一个跨平台的开发库,专为游戏开发和其他实时多媒体应用设计。它提供了低级别的硬件访问,包括图形渲染、音频处理、输入设备管理和窗口管理。SDL2...