Simple DirectMedia Layer是一个跨平台开发库,旨在通过OpenGL和Direct3D提供对音频、键盘、鼠标、操纵杆和图形硬件的低级访问。视频播放软件、模拟器和流行游戏(包括Valve的获奖目录和许多Humble Bundle游戏)都使用了它。
SDL正式支持Windows、macOS、Linux、iOS和Android。在源代码中可以找到对其他平台的支持。
SDL是用C编写的,可以本地使用c++工作,并且还有其他几种语言的绑定,包括c#和Python。
SDL 2.0在zlib许可下发布。该许可证允许您在任何软件中自由使用SDL。
详见官网:https://www.libsdl.org/
本文以SDL开发为例,来体验本板GUI程序得开发。
得益于本板运行完整的debian系统,支持apt直接安装包,
所以可以直接安装sdl开发环境,避免可交叉编译部署得麻烦。
s呼入如下指令直接安装SDL开发环境。
sudo apt-get install libsdl2-dev
编写测试代码sdltest.c
输入如下指令
nano sdltest.c
输入如下代码
代码比较简单不再详叙
#include < SDL2/SDL.h >
#include < stdio.h >
#include < stdlib.h >
#include < stdbool.h >
int main(int argc, char *argv[])
{
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;
}
对于小型项目我们可以直接板上开发,
直接板上编译
输入如下指令编译,链接SDL2库。
gcc sdltest.c -o sdltest -lSDL2
编译完后输入如下指令进行测试
./sdltest
得益于本板强劲得性能和运行完整得Debian系统,可以直接
安装开发环境,基于板上直接开发,避免了交叉编译部署得麻烦。
以上通过SDL得开发体验,可以看出整个过程非常高效简单。
可以将本板作为轻量化还开发主机使用。
全部0条评论
快来发表一下你的评论吧 !