How to change the display Orientation in Android 10 hdmi port

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

How to change the display Orientation in Android 10 hdmi port

511件の閲覧回数
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 返答(返信)

471件の閲覧回数
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 件の賞賛
返信

458件の閲覧回数
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%3EAndroid%2010%E3%81%AEHDMI%E3%83%9D%E3%83%BC%E3%83%88%E3%81%A7%E3%83%87%E3%82%A3%E3%82%B9%E3%83%97%E3%83%AC%E3%82%A4%E3%81%AE%E5%90%91%E3%81%8D%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%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%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%3C%2FFONT%3E%3C%2FP%3E%3CP%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3EAndroid%2010_2.3.0%20%E3%82%92%E6%90%AD%E8%BC%89%E3%81%97%E3%81%9F%20i.MX8MP%20%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%20%E3%83%9C%E3%83%BC%E3%83%89%E3%81%AB%E5%8F%96%E3%82%8A%E7%B5%84%E3%82%93%E3%81%A7%E3%81%84%E3%81%BE%E3%81%99%E3%80%82Android%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%81%AE%E8%A1%A8%E7%A4%BA%E6%96%B9%E5%90%91%E3%82%92%E6%A8%AA%E9%95%B7%E3%81%8B%E3%82%89%E7%B8%A6%E9%95%B7%E3%81%AB%E5%A4%89%E6%9B%B4%E3%81%97%E3%82%88%E3%81%86%E3%81%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%A7%E3%80%81.mk%E3%81%AB%E6%AC%A1%E3%81%AE%E5%A4%89%E6%9B%B4%E3%82%92%E5%8A%A0%E3%81%88%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%80%82%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%3E%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%2092197b61..2b105592%20100644%3C%2FFONT%3E%3CBR%20%2F%3E%20%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E---%20a%2Fimx8m%2F%E3%83%9C%E3%83%BC%E3%83%89%E6%A7%8B%E6%88%90%E3%82%B3%E3%83%A2%E3%83%B3.mk%3C%2FFONT%3E%3CBR%20%2F%3E%20%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%2B%2B%2B%20b%2Fimx8m%2F%E3%83%9C%E3%83%BC%E3%83%89%E6%A7%8B%E6%88%90%E3%82%B3%E3%83%A2%E3%83%B3.mk%3C%2FFONT%3E%3CBR%20%2F%3E%20%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%40%40%20-10%2C7%20%2B10%2C10%20%40%40%20HAVE_FSL_IMX_IPU%20%5C%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%E3%83%97%E3%83%AC%E3%83%93%E3%83%AB%E3%83%89_FSL_IMX_GPU%20%5C%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%E3%83%9C%E3%83%BC%E3%83%89SOC%E3%82%BF%E3%82%A4%E3%83%97%5C%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%E8%A3%BD%E5%93%81%E3%83%A1%E3%83%BC%E3%82%AB%E3%83%BC%20%5C%3C%2FFONT%3E%3CBR%20%2F%3E%20%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E-%E3%83%9C%E3%83%BC%E3%83%89_VPU_ONLY%3C%2FFONT%3E%3CBR%20%2F%3E%20%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%2B%E3%83%9C%E3%83%BC%E3%83%89VPU%E3%81%AE%E3%81%BF%5C%3C%2FFONT%3E%3CBR%20%2F%3E%20%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%2BSF_PRIMARY_DISPLAY_ORIENTATION%3C%2FFONT%3E%3CBR%20%2F%3E%20%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%2B%3C%2FFONT%3E%3CBR%20%2F%3E%20%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%20%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%20%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%20%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%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%20ed30f771..cd8f4c89%20100644%3C%2FFONT%3E%3CBR%20%2F%3E%20%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E---%20a%2Fimx8m%2Fevk_8mm%2F%E3%83%9C%E3%83%BC%E3%83%89%E6%A7%8B%E6%88%90.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%2F%E3%83%9C%E3%83%BC%E3%83%89%E6%A7%8B%E6%88%90.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%20%3A%3D%20true%3C%2FFONT%3E%3CBR%20%2F%3E%20%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%23%20%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E6%95%B0%E3%82%92%E5%AE%9A%E7%BE%A9%E3%81%99%E3%82%8B%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3ENUM_FRAMEBUFFER_SURFACE_BUFFERS%20%3A%3D%203%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%20%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%2BSF_PRIMARY_DISPLAY_ORIENTATION%20%3A%3D%20270%3C%2FFONT%3E%3CBR%20%2F%3E%20%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%2B%3C%2FFONT%3E%3CBR%20%2F%3E%20%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3Eifeq%20(%24(PRODUCT_IMX_DRM)%2Ctrue)%3C%2FFONT%3E%3CBR%20%2F%3E%20%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3ECMASIZE%3D736M%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%E3%81%9D%E3%82%8C%E4%BB%A5%E5%A4%96%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%3ESF_PRIMARY_DISPLAY_ORIENTATION%20%3A%3D%20270%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E5%87%BA%E5%8A%9B%E3%81%AF%E6%AC%A1%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%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%3ESF_PRIMARY_DISPLAY_ORIENTATION%20%3A%3D%20180%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E5%87%BA%E5%8A%9B%E3%81%AF%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%E3%81%97%E3%81%8B%E3%81%97%E3%80%81%E6%AD%A3%E3%81%97%E3%81%84%E6%96%B9%E5%90%91%E3%81%A7%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%81%A7%E3%81%97%3C%2FFONT%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3E%E3%81%9F%E3%80%82%20%3CBR%20%2F%3EAndroid%2015%E3%81%A7%24%20settings%20put%20system%20user_rotation%203%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E6%AD%A3%E3%81%97%E3%81%84%E3%83%9D%E3%83%BC%E3%83%88%E3%83%AC%E3%83%BC%E3%83%88%E3%83%93%E3%83%A5%E3%83%BC%E3%81%8C%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%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%E3%81%9F%E3%81%A0%E3%81%97%E3%80%81%E3%81%93%E3%81%AE%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AF%20Android%2011%20%E3%81%A7%E3%81%AF%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FFONT%3E%3C%2FP%3E%3CP%3E%3CFONT%20face%3D%22georgia%2Cpalatino%22%20color%3D%22%23000000%22%3EAndroid%2010%E3%81%A7%E6%9C%9F%E5%BE%85%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E6%96%B9%E5%90%91%E6%80%A7%E3%82%92%E7%A4%BA%E3%81%99%E7%94%BB%E5%83%8F%E3%82%92%E6%B7%BB%E4%BB%98%E3%81%97%E3%81%BE%E3%81%99%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%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%80%82%3CBR%20%2F%3E%E3%82%B9%E3%83%90%E3%82%B7%E3%83%A5.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%E3%82%B0%E3%83%A9%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF%E3%82%B9%E3%81%A8%E3%83%87%E3%82%A3%E3%82%B9%E3%83%97%E3%83%AC%E3%82%A4%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3Ei.MX%208%E3%83%95%E3%82%A1%E3%83%9F%E3%83%AA%20%7C%20i.MX%208QuadMax%E2%80%AF(8QM)%20%7C%208QuadPlus%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3Ei.MX%208M%20%7C%20i.MX%208M%20%E3%83%9F%E3%83%8B%20%7C%20i.MX%208M%20%E3%83%8A%E3%83%8E%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%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F151788%22%20target%3D%22_blank%22%3E%40Zhiming_Liu%3C%2FA%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CP%3E%E3%83%91%E3%83%83%E3%83%81%E3%82%92%E9%81%A9%E7%94%A8%E3%81%97%E3%81%9F%E5%BE%8C%E3%80%81%E7%94%BB%E9%9D%A2%E3%81%AB%E3%81%84%E3%81%8F%E3%81%A4%E3%81%8B%E3%81%AE%E5%A4%89%E5%8C%96%E3%81%8C%E8%A6%8B%E3%82%89%E3%82%8C%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E8%A7%A3%E5%83%8F%E5%BA%A6%E3%81%AF%E8%89%AF%E3%81%8F%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%E3%81%BE%E3%81%9F%E3%80%81%E3%83%9E%E3%82%A6%E3%82%B9%E3%82%92%E6%8E%A5%E7%B6%9A%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E7%B8%A6%E5%90%91%E3%81%8D%E3%83%8A%E3%83%93%E3%82%B2%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%8F%E6%A8%AA%E5%90%91%E3%81%8D%E3%83%8A%E3%83%93%E3%82%B2%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A8%E3%81%97%E3%81%A6%E5%8B%95%E4%BD%9C%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E3%81%BE%E3%81%9F%E3%80%81%E3%83%8A%E3%83%93%E3%82%B2%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%20%E3%83%90%E3%83%BC%E3%82%82%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93%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%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%97%E3%81%BE%E3%81%99%E3%80%81%3CBR%20%2F%3E%E3%82%B9%E3%83%90%E3%82%B7%E3%83%A5%E3%83%BBP.%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%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%3CBR%20%2F%3E%3CBR%20%2F%3E%20%3CSPAN%3EAndroid10%20%E3%81%A7%E3%81%AF%20surfaceflinger%20%E3%81%AE%E5%9B%9E%E8%BB%A2%E6%83%85%E5%A0%B1%E3%81%AF%20HWC%20%E3%81%AB%E6%B8%A1%E3%81%95%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82HAL%20%E3%81%AE%E6%B7%BB%E4%BB%98%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E8%A9%A6%E3%81%97%E3%80%81%E3%83%86%E3%82%B9%E3%83%88%E3%81%AB%E3%81%AF%E3%80%8Csettings%20put%20system%20accelerometer_rotation%200%2F1%E3%80%8D%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%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%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%97%E3%81%BE%E3%81%99%E3%80%81%3CBR%20%2F%3E%E5%BF%97%E6%98%8E%3C%2FP%3E%3C%2FLINGO-BODY%3E