【昉·星光 2(VisionFive 2)RISC-V单板计算机】SDL开发

描述

前言

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得开发体验,可以看出整个过程非常高效简单。
可以将本板作为轻量化还开发主机使用。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分