讨论广场 问答详情
ohos5.0.2,接入2个hdmi屏幕,开启persist.display.expand.enabled=1,副屏未亮
zhou55253366 2025-04-28 14:13:13
71 评论 分享

从日志看,副屏下没有rsrendernode,导致没有需要送显的buff,是否需要适配副屏的AddChild整体流程,如果需要适配,能给一些参考吗

71 评论 分享
相关文件下载
hilog.zip
8.21 MB
下载
写回答
全部评论(5)
2 楼
    int32_t logicalScreenWidth = 0;
    int32_t logicalScreenHeight = 0;
    GetLogicalScreenSize(node, curScreenInfo, logicalScreenWidth, logicalScreenHeight);
    
    if (node.IsMirrorDisplay()) {
        auto mirrorSource = node.GetMirrorSource();
        auto existingSource = mirrorSource.lock();
        if (!existingSource) {
            RS_LOGI("RSRenderServiceVisitor::PrepareDisplayRenderNode mirrorSource haven't existed");
            return;
        }
        if (mParallelEnable) {
            CreateCanvas(logicalScreenWidth, logicalScreenHeight, true);
        }
        PrepareChildren(*existingSource);
    } else {
        auto& boundsGeoPtr = (node.GetRenderProperties().GetBoundsGeometry());
        RSBaseRenderUtil::SetNeedClient(boundsGeoPtr && boundsGeoPtr->IsNeedClientCompose());
        CreateCanvas(logicalScreenWidth, logicalScreenHeight);
        PrepareChildren(node);
    }

 

通过canvas获取的,可以看下这里的逻辑。

2025-04-29 15:54:00
2025-05-08 19:18:00
引用:“https://laval.csdn.net/user/discuss/6819d32cda5d787fd5daa253,现在分析是这个情况,能帮忙看下吗”
rk3568在5.1.0版本上确认扩展屏可以显示,可以使用multiscreendisplaydemo这个应用测试下。你对比下社区代码和你的代码有什么更改的
2025-05-08 19:18:00
2025-05-07 08:59:56
https://laval.csdn.net/user/discuss/6819d32cda5d787fd5daa253,现在分析是这个情况,能帮忙看下吗
2025-05-07 08:59:56
1 楼

屏幕信息没有问题,主屏和副屏的RSDisplayRenderNode是独立的,是否是应用的RSRenderNode没有挂载在不同的屏幕上。试试开机动画的Independent模式,指定屏幕id。

2025-04-28 14:48:26
2025-04-28 17:46:34
请问下这个deviceClipRect的宽高是在哪被修改的,这里答应为0
2025-04-28 17:46:34