RK原厂提供了一种针对切割屏显示的修改,只要设置framebuffer分辨率和修改hwcomposer即可。
下面讲一下针对1920x1080切割成800x800分辨率的水平居中切割屏的显示修改。
1.设置framebuffer分辨率。
底层内核里面配置使用1920x1080分辨率的点屏参数,在device下添加persist.vendor.framebuffer.main=800x800@60,根据自己实际编译的devices目录添加,如我编译的是rk3588s_s,则在device/rockchip/rk3588/rk3588s_s/rk3588s_s.mk中添加:
PRODUCT_PROPERTY_OVERRIDES += persist.vendor.framebuffer.main=848x848@60
2.修改hwcomposer,主要是对修改显示区域的修改。
找到hardware/rockchip/hwcomposer/drmhwc2/rockchip/common/drmlayer.cpp中的void DrmHwcLayer::SetDisplayFrame函数。里面left_scale,right_scale,top_scale,bottom_scale强制改成1。
if(!ctx->bStandardSwitchResolution){
- left_scale = ctx->rel_xres / (float)ctx->framebuffer_width;
- right_scale = ctx->rel_xres /