RK3288 android7.1 异形屏修改补丁

0.dts中配置1920x1080的分辨率
1.build.prop添加下面属性:
persist.sys.framebuffer.main=1920x600@60  
2.hardware/rockchip/hwcomposer合入下面修改:

diff --git a/hwcomposer.cpp b/hwcomposer.cpp
index 0fd2177..3ad13a9 100755
--- a/hwcomposer.cpp
+++ b/hwcomposer.cpp
@@ -3498,8 +3498,10 @@ static int hwc_get_display_configs(struct hwc_composer_device_1 *dev,

   char framebuffer_size[PROPERTY_VALUE_MAX];
   uint32_t width = 0, height = 0 , vrefresh = 0 ;
+  if (display == HWC_DISPLAY_PRIMARY)
   property_get("persist.sys.framebuffer.main", framebuffer_size, "use_baseparameter");
-
+  else if(display == HWC_DISPLAY_EXTERNAL)
+  property_get("persist.sys.framebuffer.aux", framebuffer_size, "use_baseparameter");
   /*
    * if unset framebuffer_size, get it from baseparameter , by libin
    */

@@ -2298,7 +2301,8 @@ static int hwc_prepare(hwc_composer_device_1_t *dev, size_t num_displays,
     hd->rel_yres = mode.v_display();
     hd->v_total = mode.v_total();
     hd->w_scale = (float)mode.h_display() / hd->framebuffer_width;
-    hd->h_scale = (float)mode.v_display() / hd->framebuffer_height;
+    //hd->h_scale = (float)mode.v_display() / hd->framebuffer_height;
+    hd->h_scale = 1.0;
     int fbSize = hd->framebuffer_width * hd->framebuffer_height;
     //get plane size for display
     std::vector<PlaneGroup *>& plane_groups = ctx->drm.GetPlaneGroups();
@@ -3638,7 +3647,8 @@ static int hwc_set_active_config(struct hwc_composer_device_1 *dev, int display,
     return -ENOENT;
   }
   hd->w_scale = (float)mode.h_display() / hd->framebuffer_width;
-  hd->h_scale = (float)mode.v_display() / hd->framebuffer_height;
+  //hd->h_scale = (float)mode.v_display() / hd->framebuffer_height;
+  hd->h_scale = 1.0;

   c->set_current_mode(mode);
   ctx->drm.UpdateDisplayRoute();

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值