Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ART-Pi Smart
[ART smart 开发板] SDL测试
发布于 2022-06-26 23:36:18 浏览:683
订阅该版
关于SDL2的移植我参考的是这个大佬的文章,他的教程也得到官方背书了,被官方放到教程里面去了。 ![VF6T10(A`E~R}[1A]THP0(1.png](https://oss-club.rt-thread.org/uploads/20220626/50fa4dcfa52089b708d61bec52398d55.png "VF6T10(A`E~R}[1A]THP0(1.png") https://club.rt-thread.org/ask/article/ea69b90a0e576dfa.html https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-smart/application-note/sdl2_ffmpeg/sdl2_ffmpeg p.s 本文的环境是基于linux的,ubuntu20.04 1、因为新版本的ART-Pi-smart,改了一下库的路径,但是里面一些脚本还没有做同步的更新,所以需要我们手动去修改一下脚本适配一下。 首先先进入ART-Pi-smar 所在的目录 `gedit userapps/gnu-apps/sdl/build_sdl.sh ![RD[{%P[]J)L2{N~EF%PJ5EW.png](https://oss-club.rt-thread.org/uploads/20220626/2d73f03851654b966a0436199ae8488a.png.webp "RD[{%P[]J)L2{N~EF%PJ5EW.png") 此时在重新执行一下 ./build_sdl.sh 即可,如果需要用到的buidl_test.sh的话同样进去修改即可。 还有按照那个大佬的文章,里面关于makefile脚本的那一段,在链接库的时候少链接了sdl,所以如果完全按照那篇文章来执行的话会报错,提示没有找到相应的函数定义,需要做如下修改 ![M%W0`MN[V[_BE(M_U6)_TGY.png](https://oss-club.rt-thread.org/uploads/20220626/3918da509b654d037f135b4e70d3a878.png.webp "M%W0`MN[V[_BE(M_U6)_TGY.png") 跑一下大佬的程序 ![IMG_20220626_230130.jpg](https://oss-club.rt-thread.org/uploads/20220626/74b01c413e54d4a285febbb55d724e90.jpg.webp "IMG_20220626_230130.jpg") 自己写的一个demo,本来想基于此来控制硬件点灯啥的,但不知道为啥加入rtthread.h头文件就会报错,用linux控制io的方式好像也不行,就放弃,实现触摸屏幕会改变方框的颜色。 ![1656256596021.jpg](https://oss-club.rt-thread.org/uploads/20220626/085c984a0b2419f026e6981e9f4cb262.jpg.webp "1656256596021.jpg") ```c #include
#include
#include
extern Uint32 rtt_screen_width; extern Uint32 rtt_screen_heigth; static SDL_Rect rect = { 100, 100, 30, 30}; void signalHandler( int signum ) { printf("Interrupt signal %d received.\n", signum); SDL_Quit(); // exit(signum); } int main(void) { signal(SIGINT, signalHandler); //ctrl+c signalHandler //The window we'll be rendering to SDL_Window* window = NULL; //The surface contained by the window SDL_Renderer *renderer; //use dummy video driver SDL_setenv("SDL_VIDEODRIVER","rtt",1); //Initialize SDL if( SDL_Init( SDL_INIT_VIDEO ) < 0 ) { printf( "SDL could not initialize! SDL_Error: %s\n", SDL_GetError() ); return -1; } window = SDL_CreateWindow( "Home", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, rtt_screen_width, rtt_screen_heigth, SDL_WINDOW_SHOWN ); if( window == NULL ) { printf( "Window could not be created! SDL_Error: %s\n", SDL_GetError() ); return -1; } renderer = SDL_CreateRenderer(window, -1, 0); SDL_Surface *surface = SDL_LoadBMP("home.bmp"); SDL_Texture *texture = SDL_CreateTextureFromSurface(renderer, surface); SDL_SetRenderTarget(renderer, texture); SDL_RenderCopy(renderer, texture, NULL, NULL); SDL_SetRenderDrawColor(renderer, 0, 0, 0, SDL_ALPHA_OPAQUE); // SDL_RenderDrawLine(renderer, 0, 0,320, 200); //SDL_RenderDrawLine(renderer, 320, 0, 320, 480); // SDL_RenderDrawLines(renderer, points, POINTS_COUNT); SDL_RenderDrawRect(renderer, &rect); SDL_RenderPresent(renderer); while(1) { SDL_Event event; if(SDL_PollEvent(&event) >= 0) { if(event.type == SDL_QUIT) goto end; else if(event.type == SDL_FINGERDOWN) { SDL_SetRenderDrawColor(renderer, 255, 0, 0, SDL_ALPHA_OPAQUE); SDL_RenderDrawRect(renderer, &rect); SDL_RenderPresent(renderer); } else if(event.type == SDL_FINGERUP) { SDL_SetRenderDrawColor(renderer, 255, 255, 255, SDL_ALPHA_OPAQUE); SDL_RenderDrawRect(renderer, &rect); SDL_RenderPresent(renderer); } } } end: //destory renderer if (renderer) { SDL_DestroyRenderer(renderer); } //Destroy window SDL_DestroyWindow( window ); //Quit SDL subsystems SDL_Quit(); return 0; } ```
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
towelroll
这家伙很懒,什么也没写!
文章
2
回答
1
被采纳
0
关注TA
发私信
相关文章
1
求助vscode开发art-pi smart开发板的问题
2
vscode下载rt-smart用户态代码时udb有问题
3
RGB565 显示图片异常
4
浮点数打印,从内核态直接打印和从用户态访问设备再触发打印,效果不一致
5
csi 开启 DMA_REQ_EN_RFF 前提下,开启 CSI 就卡住无打印
6
求助如何移植rt-thread到野火imx6ull开发板上
7
RT-thread smart 用户态程序运行出错
8
art-pi-smart 编译报错
9
ART-PI Smart User 运行LED 程序崩溃
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
a1012112796
9
个答案
1
次被采纳
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
lizimu
1
篇文章
3
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部