写道
-
C: Linux C 编程 - SDL图像处理 https://www.iteye.com/blog/lobin-2516506
-
C: Linux C 编程 - SDL音频处理 https://www.iteye.com/blog/lobin-2516507
-
C: Linux C 编程 - SDL+mpg123音频处理 https://www.iteye.com/blog/lobin-2437638
-
C: Linux C 编程 - SDL视频处理 https://www.iteye.com/blog/lobin-2437866
图形界面
创建窗口
#include<stdio.h> #include<SDL_video.h> #include<SDL_events.h> int main(int argc, char **argv) { SDL_Window *pWin; SDL_Event e; int exit = 0; pWin = SDL_CreateWindow("SDL", 100, 100, 500, 500, SDL_WINDOW_RESIZABLE); // SDL_WINDOW_FULLSCREEN, SDL_WINDOW_RESIZABLE if (pWin == NULL) { fprintf(stderr, "create window err.\n"); return 1; } while (! exit) { while (SDL_PollEvent(&e)) { if (e.type == SDL_QUIT) { exit = 1; } } } SDL_DestroyWindow(pWin); SDL_Quit(); return 0; }
显示图片
#include<stdio.h> #include<SDL_video.h> #include<SDL_render.h> #include<SDL_surface.h> #include<SDL_events.h> int main(int argc, char **argv) { SDL_Window *pWin; SDL_Renderer *renderer; SDL_Surface *bmp; SDL_Texture *texture; SDL_Event e; int exit = 0; pWin = SDL_CreateWindow("SDL", 100, 100, 500, 500, SDL_WINDOW_RESIZABLE); // SDL_WINDOW_FULLSCREEN, SDL_WINDOW_RESIZABLE if (pWin == NULL) { fprintf(stderr, "create window err.\n"); return 1; } renderer = SDL_CreateRenderer(pWin, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); if (renderer == NULL) { fprintf(stderr, "create renderer err: %s\n", SDL_GetError()); return 1; } bmp = SDL_LoadBMP("huacao.bmp"); if (bmp == NULL) { fprintf(stderr, "load bmp err: %s\n", SDL_GetError()); return 1; } texture = SDL_CreateTextureFromSurface(renderer, bmp); if (texture == NULL) { fprintf(stderr, "create texture err: %s\n", SDL_GetError()); return 1; } SDL_FreeSurface(bmp); SDL_RenderClear(renderer); SDL_RenderCopy(renderer, texture, NULL, NULL); SDL_RenderPresent(renderer); while (! exit) { while (SDL_PollEvent(&e)) { if (e.type == SDL_QUIT) { exit = 1; } else if (e.type == SDL_WINDOWEVENT) { if (e.window.event == SDL_WINDOWEVENT_RESIZED) { } else if (e.window.event == SDL_WINDOWEVENT_SIZE_CHANGED) { } } } } SDL_DestroyTexture(texture); SDL_DestroyRenderer(renderer); SDL_DestroyWindow(pWin); SDL_Quit(); return 0; }
相关推荐
3. **07linux-sdl-thread**:多线程编程在现代应用中至关重要,特别是在处理音视频时。这部分会讲解如何在SDL中创建和管理线程,以实现并发任务,比如同时播放音频和渲染视频。 4. **08linux-sdl-playyuv**:YUV是...
SDL2(Simple DirectMedia Layer 2)是一个跨平台的开发库,用于处理图形、音频、输入设备等多媒体元素。它在游戏开发领域特别受欢迎,因为它的API简洁高效,并且支持多种操作系统,包括Windows、Linux、Mac OS X...
在本资源包中,我们主要关注的是C语言与SDL2库结合进行游戏编程的基础知识。SDL2(Simple DirectMedia Layer 2)是一个跨平台的开发库,它为开发者提供了丰富的功能,包括图形渲染、音频处理、事件管理等,是创建2D...
**标题与描述解析** 标题"SDL2-2.0.2"指的是...熟悉C/C++编程是必要的,因为这是SDL2主要支持的语言。对于Linux运维人员来说,理解如何在服务器上安装、管理和更新SDL2库,以及解决相关的依赖问题,也是重要的技能。
SDL2的一个主要优点是它的跨平台性,可以在Windows、Linux、Mac OS X、Android和iOS等操作系统上运行。 **Android NDK和JNI** 为了在Android上使用C/C++库,如SDL2,开发者需要使用Android Native Development Kit ...
- C++是C语言的增强版,增加了面向对象编程特性,同时保留了C语言的效率和灵活性。 - 在imgviewer-sdl项目中,C++用于编写应用程序的主要逻辑,包括图像加载、显示、缩放和旋转等功能。 ### 图像查看器功能 - 图像...
SDL2是用C语言编写的,但具有良好的可扩展性,可以通过绑定到其他编程语言,如Python、Java、甚至JavaScript。它的核心功能包括: 1. **图形渲染**:SDL2支持2D渲染,可以创建窗口、绘制图形、线条和文本。它还提供...
在计算机编程中,Simple DirectMedia Layer(SDL)是一个跨平台的多媒体库,主要用于游戏开发和图形用户界面的创建。它提供了对硬件加速图形、音频、输入设备等的访问,使得开发者可以轻松地编写跨平台的应用程序。...
在Linux和Windows操作系统上,SDL 提供了一个统一的编程接口,使得开发者可以在多个平台上轻松移植代码。 标题“linux-winows-跨平台开源图形库 SDL-1.2”明确指出,这个资源是关于 SDL 库的一个特定版本——1.2.13...
通过Alien-sdl,SBCL能够直接调用SDL的C接口,使得Lisp程序可以直接处理图形、音频和输入事件,极大地扩展了Lisp在游戏开发和多媒体领域的应用范围。 Alien-sdl的核心是对外部函数的绑定。在Lisp中,"alien"一词...
JEDI_SDL Delphi 开发库是一个强大的工具,它允许开发者使用Delphi编程语言来创建跨平台的游戏和多媒体应用,支持Windows和Linux操作系统。这个库是基于Simple DirectMedia Layer (SDL) 库的,SDL是一个广泛使用的跨...
Neovim是一款高度可配置的、现代化的文本编辑器,而SDL2(Simple DirectMedia Layer 2)则是一个跨平台的开发库,主要用于处理多媒体和图形用户界面,包括窗口管理、图像渲染、输入设备管理等。 **描述分析:** ...
2. **Linux环境下的图形编程**:在Linux系统中,开发者通常需要直接操作X Window System或Wayland等窗口系统来实现图形界面,而SDL库则抽象了这些复杂的接口,提供了一套统一的编程模型。 3. **SDL2.0.3版本特点**...
《快乐成长贪吃蛇》是一款基于Linux平台,利用C语言编程和SDL库开发的教育娱乐游戏。这款项目旨在将经典游戏“贪吃蛇”与学习元素相结合,特别针对100美元笔记本用户,旨在提供一个寓教于乐的环境,帮助儿童在玩乐中...
6. **跨平台性**:虽然这里讨论的是Windows版本,但SDL2库同样支持Linux、Mac OS X、Android、iOS等多个操作系统,为跨平台开发提供了便利。 7. **应用场景**:SDL2广泛应用于游戏开发,尤其是独立游戏。它也适合...
SDL(Simple DirectMedia Layer)是一个开源的跨平台开发库,主要用于多媒体编程,包括音频处理、图形绘制和输入设备管理等。SDL库是游戏开发、媒体播放器和其他图形应用程序的理想选择,因为它提供了低级别的硬件...
它提供了一个相对简单的接口,使得开发者能够轻松地在多个操作系统上构建多媒体应用,如Windows、Linux、Mac OS X和各种嵌入式系统。 **SDL 1.2与SDL 2.0的区别** - **API变化**:SDL 2.0引入了一些新的API函数,...
SDL_net的核心优势在于其简洁的API设计,它降低了网络编程的复杂性,使得开发者无需深入了解底层网络协议就能实现基本的网络通信。例如,它提供了TCP/IP连接管理、UDP包发送和接收以及IP地址处理等功能,这些功能...
- 使用SDL时,开发者可能需要熟悉C或C++编程,因为SDL是用这些语言编写的。同时,调试过程中可能涉及音频解码错误、内存管理和性能优化等问题。 通过这个基于SDL的音乐播放器,我们可以学习到多媒体处理、用户界面...
《C语言+SDL在Linux平台实现贪吃蛇游戏》 贪吃蛇游戏,作为一个经典的编程实践项目,可以很好地展示C语言的基本功能以及SDL库在图形界面处理中的应用。本项目结合了C语言与SDL(Simple DirectMedia Layer)库,使得...