前言
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文章
74瀏覽量
15631 -
SDL
+關注
關注
0文章
18瀏覽量
7401 -
RISC-V
+關注
關注
45文章
2277瀏覽量
46158 -
RISC-V處理器
+關注
關注
0文章
80瀏覽量
10008
發布評論請先 登錄
相關推薦
評論