OpenHarmony富設(shè)備移植指南(5.1)顯示調(diào)試經(jīng)驗(yàn)分享
??想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):??
??51CTO 開(kāi)源基礎(chǔ)軟件社區(qū)??
1、CPU渲染適配,開(kāi)機(jī)后渲染服務(wù)能接管屏幕但是黑屏
因?yàn)楫?dāng)前OH代碼內(nèi)部為默認(rèn)啟用GPU渲染,當(dāng)我們關(guān)閉使用GPU,并使用CPU渲染時(shí),OH代碼沒(méi)有做好分支判斷,導(dǎo)致黑屏。
解決辦法:修改rs_base_render_engine.cpp文件中的NeedForceCPU函數(shù),強(qiáng)制使用cpu。
2、系統(tǒng)整體顏色偏色問(wèn)題
偏色原因猜測(cè)是OH申請(qǐng)創(chuàng)建圖層時(shí)申請(qǐng)的格式不一致,合成時(shí)導(dǎo)致的問(wèn)題,GPU渲染無(wú)此問(wèn)題。
解決辦法:修改display適配中的drm_allocator.cpp文件,修改內(nèi)存申請(qǐng)時(shí)的buffer格式,把非【PIXEL_FMT_BGRA_8888】格式轉(zhuǎn)為【PIXEL_FMT_BGRA_8888】格式。
修改后:
3、進(jìn)入桌面后顯示比例不協(xié)調(diào)
OH官方提供了dpi的配置,具體位置如下圖,rk3568之外的設(shè)備使用的是other文件夾下的配置。
查看display_manager_config.xml,發(fā)現(xiàn)有提供dpi的配置,但是因?yàn)閕nstall_enale=false的原因?qū)е屡渲梦募](méi)有加入編譯,配置不生效。
一個(gè)辦法是修改install_enable=true,然后修改other下的display_manager_config.xml。
按照解耦的思想,這個(gè)自定義的配置應(yīng)該剝離出官方代碼,放到我們適配的文件夾中自己管理,所以我想到了一個(gè)解決辦法,同樣通過(guò)ohos_prebuilt_etc模板把編譯配置跟配置文件都放到board文件夾中,自己管理,不修改官方代碼,代碼如下。
board下添加window_cfg,復(fù)制rk3568的配置到目錄下,添加BUILD.gn。
上層BUILD.gn的sigit_group中添加window_cfg:
window_cfg文件夾下的BUILD.gn添加如下配置:
這里的dpi并不能直接套用網(wǎng)上的計(jì)算dpi的公式得出的結(jié)果,需要自己嘗試幾個(gè)值查看顯示效果,這個(gè)是我適配小米6的dpi值,供大家參考。
??想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):??