完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
[RK3128][Android7.1] android端强制使用固定分辨率显示内容
Platform: Rockchip OS: Android 7.1.2 Kernel: 3.10 最近使用480P小屏幕开发时,碰到某些第三方APP的屏幕适配有BUG,如果直接修改配置文件会导致屏幕显示异常,因些只能直接在android显示端做分辨率调整。 修改路径:kerneldriversvideorockchiprk_fb.c 第一步:修改成需要的显示分辨率 int rk_fb_prase_timing_dt(struct device_node *np, struct rk_screen *screen) { struct display_timings *disp_timing; struct display_timing *dt; disp_timing = of_get_display_timings(np); if (!disp_timing) { pr_err("parse display timing errn"); return -EINVAL; } dt = display_timings_get(disp_timing, disp_timing->native_mode); /* 修改屏幕显示分辨率*/ + dt->hactive.typ = 1280; + dt->vactive.typ = 720; rk_fb_video_mode_from_timing(dt, screen); return 0; } 第二步:修改显示分辨率后,会导致显示区域也被相对缩放,因此需要修改显示窗口缩放规则 static void rk_fb_update_win(struct rk_lcdc_driver *dev_drv, struct rk_lcdc_win *win, struct rk_fb_reg_win_data *reg_win_data) { ... } else { /* 对小于720P的屏幕不做缩放处理 */ + if (reg_win_data->reg_area_data.xsize >= 1280 && reg_win_data->reg_area_data.ysize >= 720){ win->area.xpos = reg_win_data->reg_area_data.xpos * cur_screen->mode.xres / primary_screen.mode.xres; win->area.ypos = reg_win_data->reg_area_data.ypos * cur_screen->mode.yres / primary_screen.mode.yres; win->area.xsize = reg_win_data->reg_area_data.xsize * cur_screen->mode.xres / primary_screen.mode.xres; win->area.ysize = reg_win_data->reg_area_data.ysize * cur_screen->mode.yres / primary_screen.mode.yres; + } /* recalc display size if set hdmi scaler when at ONE_DUAL mode */ if (inf->disp_mode == ONE_DUAL && hdmi_switch_state) { if (cur_screen->xsize > 0 && cur_screen->xsize <= cur_screen->mode.xres) { win->area.xpos = ((cur_screen->mode.xres - cur_screen->xsize) >> 1) + cur_screen->xsize * win->area.xpos / cur_screen->mode.xres; win->area.xsize = win->area.xsize * cur_screen->xsize / cur_screen->mode.xres; } if (cur_screen->ysize > 0 && cur_screen->ysize <= cur_screen->mode.yres) { win->area.ypos = ((cur_screen->mode.yres - cur_screen->ysize) >> 1) + cur_screen->ysize * win->area.ypos / cur_screen->mode.yres; win->area.ysize = win->area.ysize * cur_screen->ysize / cur_screen->mode.yres; } } } ... } 目前屏幕显示正常,无触摸屏,触摸屏触摸效果是否会有异常暂时未知 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于米尔瑞芯微RK3576核心板/开发板的人脸疲劳检测应用方案
1760 浏览 0 评论
2096 浏览 1 评论
1771 浏览 1 评论
3106 浏览 1 评论
4025 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-11 13:43 , Processed in 0.682255 second(s), Total 70, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号