我正在使用SDL_Image在屏幕上显示JPEG,并且在显示的分辨率方面存在一些问题。
据我所知,如果我在调用SDL_SetVideoMode时将0传递给宽度,高度和位,SDL将获取当前模式值,但在我的情况下这些似乎是错误的。
我在带有自定义显示器的嵌入式Linux系统上运行它(LED屏幕为1440x900),帧缓冲器为1280x720。
显示JPEG但似乎是640x480,因此屏幕的大部分区域都是白色的。当我使用SDL_SetVideoMode指定宽度和高度时,我收到错误:
SDL_SetVideoMode:没有大到1280x720的视频模式
这是我正在使用的主要代码:
pImage = IMG_Load(file);
pScreen = SDL_SetVideoMode(0,0,0,SDL_ANYFORMAT);
SDL_BlitSurface(pImage,0,pScreen,0);
SDL_Flip(pScreen);
任何人都有任何想法/指示?
谢谢!
答案 0 :(得分:1)
通过将自定义分辨率添加到/etc/fb.modes来解决这个问题,如下所示:
mode "1280x720-59"
# D: 172.00 MHz, H: 82.700 kHz, V: 66.00 Hz
geometry 1280 720 1280 720 16
timings 13000 300 70 26 3 80 5
endmode
仍然无法修复我上面评论中引用的SDL_SetVideoMode ...