How to change the display Orientation in Android 10 hdmi port

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

How to change the display Orientation in Android 10 hdmi port

516 次查看
subash_p
Contributor III

Hi,

I am working on an i.MX8MP custom board with Android 10_2.3.0. I am trying to change the display orientation from landscape to portrait in my Android image, so I added the following changes in my .mk files.

diff --git a/imx8m/BoardConfigCommon.mk b/imx8m/BoardConfigCommon.mk
index 92197b61..2b105592 100644
--- a/imx8m/BoardConfigCommon.mk
+++ b/imx8m/BoardConfigCommon.mk
@@ -10,7 +10,10 @@ HAVE_FSL_IMX_IPU \
PREBUILT_FSL_IMX_GPU \
BOARD_SOC_TYPE \
PRODUCT_MANUFACTURER \
-BOARD_VPU_ONLY
+BOARD_VPU_ONLY \
+SF_PRIMARY_DISPLAY_ORIENTATION
+
+SOONG_CONFIG_IMXPLUGIN_SF_PRIMARY_DISPLAY_ORIENTATION = 270

SOONG_CONFIG_IMXPLUGIN_BOARD_PLATFORM = imx8
SOONG_CONFIG_IMXPLUGIN_NUM_FRAMEBUFFER_SURFACE_BUFFERS = 3
diff --git a/imx8m/evk_8mm/BoardConfig.mk b/imx8m/evk_8mm/BoardConfig.mk
index ed30f771..cd8f4c89 100644
--- a/imx8m/evk_8mm/BoardConfig.mk
+++ b/imx8m/evk_8mm/BoardConfig.mk
@@ -117,6 +117,8 @@ TARGET_USES_MKE2FS := true
# define frame buffer count
NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3

+SF_PRIMARY_DISPLAY_ORIENTATION := 270
+
ifeq ($(PRODUCT_IMX_DRM),true)
CMASIZE=736M
else


When I set SF_PRIMARY_DISPLAY_ORIENTATION := 270, the output appears in

landscape_view_android_10.jpeg

When I set SF_PRIMARY_DISPLAY_ORIENTATION := 180, the output appears in a

portrait_type_view_android_10.jpeg

,but not in the correct orientation. When i passed the 
$ settings put system user_rotation 3 command in android 15 means gives me the correct_portrait_view

correct_portrait_view.jpg

However, this command does not work on Android 11.

I will attach an image showing the orientation I am expecting in Android 10

correct_portrait_view.jpg


Thanks &Regards
Subash.P

 

标记 (4)
0 项奖励
回复
2 回复数

476 次查看
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi,

surfaceflinger rotation information will not pass to HWC in Android10, please try the attachment in HAL and use 'settings put system accelerometer_rotation 0/1' for test.

diff --git a/display/display/Composer.cpp b/display/display/Composer.cpp
old mode 100644
new mode 100755
index 8dba110..282c4f8
--- a/display/display/Composer.cpp
+++ b/display/display/Composer.cpp
@@ -350,11 +350,40 @@ int Composer::clearWormHole(LayerVector& layers)
 
 int Composer::composeLayer(Layer* layer, bool bypass)
 {
+	int transform;
     if (layer == NULL || mTarget == NULL) {
         ALOGE("composeLayer: invalid layer or target");
         return -EINVAL;
     }
 
+
+	/*
+		0 =>     4
+	   4  =>   3
+	   3  =>   7
+	   7  =>   0
+	*/
+	ALOGI("liutest1 composeLayer transform:0x%x\n",layer->transform);
+
+	switch (layer->transform)
+	{
+	case 0:
+		transform = 4;
+		break;
+	case 4:
+		transform = 3;
+		break;
+	case 3:
+		transform = 7;
+		break;
+	case 7:
+		transform = 0;
+		break;
+
+	default:
+		ALOGI("liutest1 invalid transform:0x%x\n",layer->transform);
+	}
+
     if (bypass && layer->isSolidColor()) {
         ALOGV("composeLayer dim layer bypassed");
         return 0;
@@ -392,7 +421,7 @@ int Composer::composeLayer(Layer* layer, bool bypass)
             continue;
         }
 
-        setClipping(srect, drect, clip, layer->transform);
+        setClipping(srect, drect, clip, /*layer->transform*/transform);
         ALOGV("index:%d, i:%d sourceCrop(l:%d,t:%d,r:%d,b:%d), "
              "visible(l:%d,t:%d,r:%d,b:%d), "
              "display(l:%d,t:%d,r:%d,b:%d)", layer->index, (int)i,
@@ -403,8 +432,9 @@ int Composer::composeLayer(Layer* layer, bool bypass)
             ALOGV("zorder:0x%x, layer phys:0x%" PRIx64,
                 layer->zorder, layer->handle->phys);
         }
-        ALOGV("transform:0x%x, blend:0x%x, alpha:0x%x",
-                layer->transform, layer->blendMode, layer->planeAlpha);
+        /*ALOGV*/ALOGI("liutest1 transform:0x%x:0x%x, blend:0x%x, alpha:0x%x",
+                layer->transform,transform, layer->blendMode, layer->planeAlpha);
+
 
         setG2dSurface(dSurfaceX, mTarget, drect);
 
@@ -422,7 +452,7 @@ int Composer::composeLayer(Layer* layer, bool bypass)
             return -EINVAL;
         }
 
-        convertRotation(layer->transform, sSurface, dSurface);
+        convertRotation(/*layer->transform*/transform, sSurface, dSurface);
         if (!bypass) {
             convertBlending(layer->blendMode, sSurface, dSurface);
         }



Best Regards,
Zhiming

0 项奖励
回复

463 次查看
subash_p
Contributor III

Hi @Zhiming_Liu 

After applying your patch, I can see some changes on my screen, but the resolution is not good. Also, when I connect a mouse, it works in the way of landscape navigation, not in portrait navigation. 

And also, the navigation bar is not visible.

a6a427ba-b133-4e1c-9cc8-b7fe694ef852.jpg


Best Regards,
Subash P.

标记 (4)
0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2157311%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E5%A6%82%E4%BD%95%E6%9B%B4%E6%94%B9%20Android%2010%20hdmi%20%E7%AB%AF%E5%8F%A3%E7%9A%84%E6%98%BE%E7%A4%BA%E6%96%B9%E5%90%91%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2157311%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%E6%82%A8%E5%A5%BD%EF%BC%8C%3C%2FFONT%3E%3C%2FP%3E%3CP%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%E6%88%91%E6%AD%A3%E5%9C%A8%E5%BC%80%E5%8F%91%E4%B8%80%E6%AC%BE%E6%90%AD%E8%BD%BD%E5%AE%89%E5%8D%93%2010_2.3.0%20%E7%9A%84%20i.MX8MP%20%E5%AE%9A%E5%88%B6%E6%9D%BF%E3%80%82%E6%88%91%E8%AF%95%E5%9B%BE%E5%B0%86%20Android%20%E5%9B%BE%E5%83%8F%E7%9A%84%E6%98%BE%E7%A4%BA%E6%96%B9%E5%90%91%E4%BB%8E%E6%A8%AA%E5%90%91%E6%94%B9%E4%B8%BA%E7%BA%B5%E5%90%91%EF%BC%8C%E5%9B%A0%E6%AD%A4%E5%9C%A8%20.mk%20%E4%B8%AD%E6%B7%BB%E5%8A%A0%E4%BA%86%E4%BB%A5%E4%B8%8B%E6%9B%B4%E6%94%B9%E6%96%87%E4%BB%B6%3C%2FFONT%3E%3C%2FP%3E%3CP%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3Ediff%20--git%20a%2Fimx8m%2FBoardConfigCommon.mk%20b%2Fimx8m%2FBoardConfigCommon.mk%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3Eindex%2092197b61..2b105592%20100644%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E---%20a%2Fimx8m%2FBoardConfigCommon.mk%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%2B%2B%2B%20b%2Fimx8m%2FBoardConfigCommon.mk%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%40%20-10%2C7%20%2B10%2C10%20%40%40%20have_fsl_imx_ipu%20%5C%5C%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3Eprebuilt_fsl_imx_gpu%20%5C%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3Eboard_soc_type%20%EF%BC%88%E6%9D%BF%E5%8D%A1%E7%B1%BB%E5%9E%8B%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3Eproduct_manufacturer%20%EF%BC%88%E4%BA%A7%E5%93%81%E5%88%B6%E9%80%A0%E5%95%86%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E-%E6%9D%BF%E8%BD%BD%20VPU%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%2Bboard_vpu_only%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%2Bsf_primary_display_orientation%20%EF%BC%88%E4%B8%BB%E8%A6%81%E6%98%BE%E7%A4%BA%E6%96%B9%E5%90%91%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%2B%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%2Bsoong_config_imxplugin_sf_primary_display_orientation%20%3D%20270%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3ESOONG_CONFIG_IMXPLUGIN_BOARD_PLATFORM%20%3D%20imx8%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3Esoong_config_imxplugin_num_framebuffer_surface_buffers%20%3D%203%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3Ediff%20--git%20a%2Fimx8m%2Fevk_8mm%2FBoardConfig.mk%20b%2Fimx8m%2Fevk_8mm%2FBoardConfig.mk%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%E7%B4%A2%E5%BC%95%20ed30f771..cd8f4c89%20100644%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E---%20a%2Fimx8m%2Fevk_8mm%2FBoardConfig.mk%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%2B%2B%2B%20b%2Fimx8m%2Fevk_8mm%2FBoardConfig.mk%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%40%40%20-117%2C6%20%2B117%2C8%20%40%40%20target_uses_mke2FS%3A%20%3D%20true%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%20%23%20%E5%AE%9A%E4%B9%89%20%E5%B8%A7%E7%BC%93%E5%86%B2%E5%8C%BA%E6%95%B0%20num_framebuffer_surface_buffer_surface_buffer_buffer_surface_buffer_bu%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%20%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3Effer_surface_buffer_buffer_buffer_surface_buffer_buffer_buffer_buffer_sur%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%20%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%E5%BD%93%E6%88%91%E8%AE%BE%E7%BD%AE%20SF_PRIMARY_DISPLAY_ORIENTION%3A%20%3D%20270%20%E6%97%B6%EF%BC%8C%E8%BE%93%E5%87%BA%E6%98%BE%E7%A4%BA%E5%9C%A8%3C%2FFONT%3E%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22landscape_view_android_10.jpeg%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22landscape_view_android_10.jpeg%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F353876i67B29E097B92ABF8%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22landscape_view_android_10.jpeg%22%20alt%3D%22landscape_view_android_10.jpeg%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%E5%BD%93%E6%88%91%E8%AE%BE%E7%BD%AE%20SF_PRIMARY_DISPLAY_ORIENTATION%20%3A%3D%20180%20%E6%97%B6%EF%BC%8C%E8%BE%93%E5%87%BA%E7%BB%93%E6%9E%9C%E6%98%BE%E7%A4%BA%E4%B8%BA%3CBR%20%2F%3E%3C%2FFONT%3E%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22portrait_type_view_android_10.jpeg%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22portrait_type_view_android_10.jpeg%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F353877i8AF9FEFE953EB1B3%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22portrait_type_view_android_10.jpeg%22%20alt%3D%22portrait_type_view_android_10.jpeg%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%E4%BD%86%E6%96%B9%E5%90%91%E4%B8%8D%E5%AF%B9%E3%80%82W%3C%2FFONT%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%E5%BD%93%E6%88%91%E5%9C%A8%E5%AE%89%E5%8D%93%2015%20%E4%B8%AD%E9%80%9A%E8%BF%87%3CBR%20%2F%3E%24%20settings%20put%20system%20user_rotation%203%20%E5%91%BD%E4%BB%A4%E6%97%B6%EF%BC%8C%E6%88%91%E7%9C%8B%E5%88%B0%E4%BA%86%E6%AD%A3%E7%A1%AE%E7%9A%84%E8%82%96%E5%83%8F%E8%A7%86%E5%9B%BE%E3%80%82%3CBR%20%2F%3E%3C%2FFONT%3E%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22correct_portrait_view.jpg%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22correct_portrait_view.jpg%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F353878i4F3E7E66291FFB36%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22correct_portrait_view.jpg%22%20alt%3D%22correct_portrait_view.jpg%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%E4%B8%8D%E8%BF%87%EF%BC%8C%E8%AF%A5%E5%91%BD%E4%BB%A4%E5%9C%A8%20Android%2011%20%E4%B8%8A%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%E3%80%82%3C%2FFONT%3E%3C%2FP%3E%3CP%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%E6%88%91%E5%B0%86%E9%99%84%E4%B8%8A%E4%B8%80%E5%BC%A0%E5%9B%BE%E7%89%87%EF%BC%8C%E6%98%BE%E7%A4%BA%E6%88%91%E6%9C%9F%E6%9C%9B%E5%9C%A8%20Android%2010%20%E4%B8%AD%E7%9C%8B%E5%88%B0%E7%9A%84%E6%96%B9%E5%90%91%3C%2FFONT%3E%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22correct_portrait_view.jpg%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22correct_portrait_view.jpg%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F353879i4AC6F309AD105594%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22correct_portrait_view.jpg%22%20alt%3D%22correct_portrait_view.jpg%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%3CBR%20%2F%3E%E8%B0%A2%E8%B0%A2%26amp%3BRegards%3CBR%20%2F%3ESubash.P%3C%2FFONT%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E2%80%83%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2157311%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3EAndroid%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3E%E5%9B%BE%E5%BD%A2%E4%B8%8E%E6%98%BE%E7%A4%BA%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3Ei.MX%208%20%E7%B3%BB%E5%88%97%20%7C%20i.MX%208QuadMax%20(8QM)%20%7C%208QuadPlus%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3Ei.MX%208M%20%7C%20i.MX%208M%20Mini%20%7C%20i.MX%208M%20Nano%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2158287%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20How%20to%20change%20the%20display%20Orientation%20in%20Android%2010%20hdmi%20port%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2158287%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F151788%22%20target%3D%22_blank%22%3E%40%E5%88%98%E5%BF%97%E6%98%8E%3C%2FA%3E%20%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CP%3E%E4%BD%BF%E7%94%A8%E6%82%A8%E7%9A%84%E8%A1%A5%E4%B8%81%E5%90%8E%EF%BC%8C%E6%88%91%E5%8F%AF%E4%BB%A5%E5%9C%A8%E5%B1%8F%E5%B9%95%E4%B8%8A%E7%9C%8B%E5%88%B0%E4%B8%80%E4%BA%9B%E5%8F%98%E5%8C%96%EF%BC%8C%E4%BD%86%E5%88%86%E8%BE%A8%E7%8E%87%E4%B8%8D%E9%AB%98%E3%80%82%E6%AD%A4%E5%A4%96%EF%BC%8C%E5%BD%93%E6%88%91%E8%BF%9E%E6%8E%A5%E9%BC%A0%E6%A0%87%E6%97%B6%EF%BC%8C%E5%AE%83%E5%8F%AA%E8%83%BD%E6%A8%AA%E5%90%91%E5%AF%BC%E8%88%AA%EF%BC%8C%E8%80%8C%E4%B8%8D%E8%83%BD%E7%BA%B5%E5%90%91%E5%AF%BC%E8%88%AA%E3%80%82%20%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%AD%A4%E5%A4%96%EF%BC%8C%E5%AF%BC%E8%88%AA%E6%A0%8F%E4%B9%9F%E4%B8%8D%E5%8F%AF%E8%A7%81%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22a6a427ba-b133-4e1c-9cc8-b7fe694ef852.jpg%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22a6a427ba-b133-4e1c-9cc8-b7fe694ef852.jpg%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F354107i3DEC5D2F7B48A60F%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22a6a427ba-b133-4e1c-9cc8-b7fe694ef852.jpg%22%20alt%3D%22a6a427ba-b133-4e1c-9cc8-b7fe694ef852.jpg%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%95%AC%E4%B8%8A%EF%BC%8C%3CBR%20%2F%3ESubash%20P.%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CP%3E%E2%80%83%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2157866%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20How%20to%20change%20the%20display%20Orientation%20in%20Android%2010%20hdmi%20port%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2157866%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%82%A8%E5%A5%BD%EF%BC%8C%E5%9C%A8%20Android10%20%E4%B8%AD%EF%BC%8C%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%3Esurfaceflinger%20%E6%97%8B%E8%BD%AC%E4%BF%A1%E6%81%AF%E4%B8%8D%E4%BC%9A%E4%BC%A0%E9%80%92%E5%88%B0%20HWC%EF%BC%8C%E8%AF%B7%E5%B0%9D%E8%AF%95%20HAL%20%E4%B8%AD%E7%9A%84%E9%99%84%E4%BB%B6%EF%BC%8C%E5%B9%B6%E4%BD%BF%E7%94%A8%20%22settings%20put%20system%20accelerometer_rotation%200%2F1%20%22%E8%BF%9B%E8%A1%8C%E6%B5%8B%E8%AF%95%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%20translate%3D%22no%22%3Ediff%20--git%20a%2Fdisplay%2Fdisplay%2FComposer.cpp%20b%2Fdisplay%2Fdisplay%2FComposer.cpp%0Aold%20mode%20100644%0Anew%20mode%20100755%0Aindex%208dba110..282c4f8%0A---%20a%2Fdisplay%2Fdisplay%2FComposer.cpp%0A%2B%2B%2B%20b%2Fdisplay%2Fdisplay%2FComposer.cpp%0A%40%40%20-350%2C11%20%2B350%2C40%20%40%40%20int%20Composer%3A%3AclearWormHole(LayerVector%26amp%3B%20layers)%0A%20%0A%20int%20Composer%3A%3AcomposeLayer(Layer*%20layer%2C%20bool%20bypass)%0A%20%7B%0A%2B%09int%20transform%3B%0A%20%20%20%20%20if%20(layer%20%3D%3D%20NULL%20%7C%7C%20mTarget%20%3D%3D%20NULL)%20%7B%0A%20%20%20%20%20%20%20%20%20ALOGE(%22composeLayer%3A%20invalid%20layer%20or%20target%22)%3B%0A%20%20%20%20%20%20%20%20%20return%20-EINVAL%3B%0A%20%20%20%20%20%7D%0A%20%0A%2B%0A%2B%09%2F*%0A%2B%09%090%20%3D%26gt%3B%20%20%20%20%204%0A%2B%09%20%20%204%20%20%3D%26gt%3B%20%20%203%0A%2B%09%20%20%203%20%20%3D%26gt%3B%20%20%207%0A%2B%09%20%20%207%20%20%3D%26gt%3B%20%20%200%0A%2B%09*%2F%0A%2B%09ALOGI(%22liutest1%20composeLayer%20transform%3A0x%25x%5Cn%22%2Clayer-%26gt%3Btransform)%3B%0A%2B%0A%2B%09switch%20(layer-%26gt%3Btransform)%0A%2B%09%7B%0A%2B%09case%200%3A%0A%2B%09%09transform%20%3D%204%3B%0A%2B%09%09break%3B%0A%2B%09case%204%3A%0A%2B%09%09transform%20%3D%203%3B%0A%2B%09%09break%3B%0A%2B%09case%203%3A%0A%2B%09%09transform%20%3D%207%3B%0A%2B%09%09break%3B%0A%2B%09case%207%3A%0A%2B%09%09transform%20%3D%200%3B%0A%2B%09%09break%3B%0A%2B%0A%2B%09default%3A%0A%2B%09%09ALOGI(%22liutest1%20invalid%20transform%3A0x%25x%5Cn%22%2Clayer-%26gt%3Btransform)%3B%0A%2B%09%7D%0A%2B%0A%20%20%20%20%20if%20(bypass%20%26amp%3B%26amp%3B%20layer-%26gt%3BisSolidColor())%20%7B%0A%20%20%20%20%20%20%20%20%20ALOGV(%22composeLayer%20dim%20layer%20bypassed%22)%3B%0A%20%20%20%20%20%20%20%20%20return%200%3B%0A%40%40%20-392%2C7%20%2B421%2C7%20%40%40%20int%20Composer%3A%3AcomposeLayer(Layer*%20layer%2C%20bool%20bypass)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20continue%3B%0A%20%20%20%20%20%20%20%20%20%7D%0A%20%0A-%20%20%20%20%20%20%20%20setClipping(srect%2C%20drect%2C%20clip%2C%20layer-%26gt%3Btransform)%3B%0A%2B%20%20%20%20%20%20%20%20setClipping(srect%2C%20drect%2C%20clip%2C%20%2F*layer-%26gt%3Btransform*%2Ftransform)%3B%0A%20%20%20%20%20%20%20%20%20ALOGV(%22index%3A%25d%2C%20i%3A%25d%20sourceCrop(l%3A%25d%2Ct%3A%25d%2Cr%3A%25d%2Cb%3A%25d)%2C%20%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22visible(l%3A%25d%2Ct%3A%25d%2Cr%3A%25d%2Cb%3A%25d)%2C%20%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22display(l%3A%25d%2Ct%3A%25d%2Cr%3A%25d%2Cb%3A%25d)%22%2C%20layer-%26gt%3Bindex%2C%20(int)i%2C%0A%40%40%20-403%2C8%20%2B432%2C9%20%40%40%20int%20Composer%3A%3AcomposeLayer(Layer*%20layer%2C%20bool%20bypass)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20ALOGV(%22zorder%3A0x%25x%2C%20layer%20phys%3A0x%25%22%20PRIx64%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20layer-%26gt%3Bzorder%2C%20layer-%26gt%3Bhandle-%26gt%3Bphys)%3B%0A%20%20%20%20%20%20%20%20%20%7D%0A-%20%20%20%20%20%20%20%20ALOGV(%22transform%3A0x%25x%2C%20blend%3A0x%25x%2C%20alpha%3A0x%25x%22%2C%0A-%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20layer-%26gt%3Btransform%2C%20layer-%26gt%3BblendMode%2C%20layer-%26gt%3BplaneAlpha)%3B%0A%2B%20%20%20%20%20%20%20%20%2F*ALOGV*%2FALOGI(%22liutest1%20transform%3A0x%25x%3A0x%25x%2C%20blend%3A0x%25x%2C%20alpha%3A0x%25x%22%2C%0A%2B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20layer-%26gt%3Btransform%2Ctransform%2C%20layer-%26gt%3BblendMode%2C%20layer-%26gt%3BplaneAlpha)%3B%0A%2B%0A%20%0A%20%20%20%20%20%20%20%20%20setG2dSurface(dSurfaceX%2C%20mTarget%2C%20drect)%3B%0A%20%0A%40%40%20-422%2C7%20%2B452%2C7%20%40%40%20int%20Composer%3A%3AcomposeLayer(Layer*%20layer%2C%20bool%20bypass)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20return%20-EINVAL%3B%0A%20%20%20%20%20%20%20%20%20%7D%0A%20%0A-%20%20%20%20%20%20%20%20convertRotation(layer-%26gt%3Btransform%2C%20sSurface%2C%20dSurface)%3B%0A%2B%20%20%20%20%20%20%20%20convertRotation(%2F*layer-%26gt%3Btransform*%2Ftransform%2C%20sSurface%2C%20dSurface)%3B%0A%20%20%20%20%20%20%20%20%20if%20(!bypass)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20convertBlending(layer-%26gt%3BblendMode%2C%20sSurface%2C%20dSurface)%3B%0A%20%20%20%20%20%20%20%20%20%7D%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%E8%87%B4%E6%95%AC%EF%BC%8C%3CBR%20%2F%3EZhiming%3C%2FP%3E%3C%2FLINGO-BODY%3E