展讯平台lcm旋转180°

当lcm芯片不支持画面旋转时,需要对平台进行修改。

路径:frameworks//native/services/surfaceflinger/SurfaceFlinger.cpp 

diff --git a/native/services/surfaceflinger/SurfaceFlinger.cpp b/native/services/surfaceflinger/SurfaceFlinger.cpp
index 09bd38f..2b1c820 100644
--- a/native/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/native/services/surfaceflinger/SurfaceFlinger.cpp
@@ -361,7 +361,7 @@ SurfaceFlinger::SurfaceFlinger(Factory& factory) : SurfaceFlinger(factory, SkipI
     useContextPriority = use_context_priority(true);
 
     using Values = SurfaceFlingerProperties::primary_display_orientation_values;
-    switch (primary_display_orientation(Values::ORIENTATION_0)) {
+    switch (primary_display_orientation(Values::ORIENTATION_180)) {
         case Values::ORIENTATION_0:
             break;
         case Values::ORIENTATION_90:
@@ -5519,6 +5519,9 @@ status_t SurfaceFlinger::captureScreen(const sp<IBinder>& displayToken,
     ATRACE_CALL();
 
     if (!displayToken) return BAD_VALUE;
+     if (internalDisplayOrientation != ui::ROTATION_0) {
+        rotation = rotation + internalDisplayOrientation;      //适应普通手机截屏
+    }
 
     auto renderAreaRotation = ui::Transform::toRotationFlags(rotation);
     if (renderAreaRotation == ui::Transform::ROT_INVALID) {
@@ -5616,14 +5619,20 @@ status_t SurfaceFlinger::captureScreen(uint64_t displayOrLayerStack, Dataspace*
         width = uint32_t(display->getViewport().width());
         height = uint32_t(display->getViewport().height());
 
-        const auto orientation = display->getOrientation();
+        auto orientation = display->getOrientation();
         captureOrientation = ui::Transform::toRotationFlags(orientation);
 
+        if (internalDisplayOrientation != ui::ROTATION_0) {
+            orientation = orientation + internalDisplayOrientation;
+            captureOrientation = ui::Transform::toRotationFlags(orientation);   //适应adb截屏
+        }
         switch (captureOrientation) {
             case ui::Transform::ROT_90:
                 captureOrientation = ui::Transform::ROT_270;
                 break;
-
+            case ui::Transform::ROT_180:
+                captureOrientation = ui::Transform::ROT_180;
+                break;
             case ui::Transform::ROT_270:
                 captureOrientation = ui::Transform::ROT_90;
                 break;

路径:device/sprd/mpool/module/gpu/main.mk

diff --git a/module/gpu/main.mk b/module/gpu/main.mk
index 8514e3af..26f9de80 100644
--- a/module/gpu/main.mk
+++ b/module/gpu/main.mk
@@ -24,7 +24,7 @@ PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
     ro.surface_flinger.use_vr_flinger=false \
     ro.surface_flinger.max_frame_buffer_acquired_buffers=3 \
     ro.surface_flinger.start_graphics_allocator_service=false \
-    ro.surface_flinger.primary_display_orientation=ORIENTATION_0
+    ro.surface_flinger.primary_display_orientation=ORIENTATION_180
 
 # Memtack HAL
 PRODUCT_PACKAGES += \

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
展讯平台是一个基于Linux操作系统的广告展示平台,而Ubuntu是一种流行的开源操作系统。要在Ubuntu上编译展讯平台的文档,首先需要确保已经安装了必要的软件和依赖项。 首先,我们需要安装编译文档所需的工具链。在终端中运行以下命令,以安装gcc和make工具: ``` sudo apt-get update sudo apt-get install build-essential ``` 接下来,我们需要安装展讯平台编译文档所依赖的其他软件。这些软件可能因平台而异,具体需求请参考展讯平台的官方文档。一般来说,可能需要安装python、git、doxygen等工具。 安装完所需的软件和依赖项后,我们可以开始编译展讯平台的文档。首先,我们需要获取展讯平台源代码。在终端中,使用git命令克隆源代码: ``` git clone <展讯平台源代码地址> ``` 克隆完源代码后,进入展讯平台源代码所在的目录。在终端中,运行以下命令进入目录: ``` cd <展讯平台源代码目录> ``` 进入展讯平台源代码目录后,我们可以运行Make命令来编译文档。在终端中,使用以下命令进行编译: ``` make docs ``` 完成编译后,展讯平台的文档将生成在指定目录中。具体生成的位置和格式可能因展讯平台的配置而异,可以参考展讯平台的官方文档。 综上所述,要在Ubuntu上编译展讯平台的文档,我们需要安装必要的工具和依赖项,并按照展讯平台的官方文档进行操作。这样可以获得展讯平台的编译文档,并查阅相关信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值