展讯平台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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值