美文网首页
crop 为-1 分析

crop 为-1 分析

作者: 我在等你回复可你没回 | 来源:发表于2019-07-01 18:03 被阅读0次

HISI_HWC gpu compose for layer cropHeight =-1,cropWidth =-1

实际是一个阴影的动画
applyDim

其实就是初始化的值
void Rect::makeInvalid() {
left = 0;
top = 0;
right = -1;
bottom = -1;
}

结果是这个样子
07-01 18:26:18.741 1675 1675 E SurfaceFlinger: name animation background stackId=1 width=2880, h=1620 ,crop=( 0, 0, -1, -1)

size有点奇怪

应该是这里搞得事情


image.png

trace是下面这个样子

07-01 18:47:14.749  2612  2912 E WindowManager: java.lang.Throwable
07-01 18:47:14.749  2612  2912 E WindowManager:         at com.android.server.wm.DimLayer.setBounds(DimLayer.java:228)
07-01 18:47:14.749  2612  2912 E WindowManager:         at com.android.server.wm.DimLayer.setBoundsForFullscreen(DimLayer.java:222)
07-01 18:47:14.749  2612  2912 E WindowManager:         at com.android.server.wm.DimLayerController.updateDimLayer(DimLayerController.java:59)
07-01 18:47:14.749  2612  2912 E WindowManager:         at com.android.server.wm.WindowSurfacePlacer.performLayoutLockedInner(WindowSurfacePlacer.java:1001)
07-01 18:47:14.749  2612  2912 E WindowManager:         at com.android.server.wm.WindowSurfacePlacer.applySurfaceChangesTransaction(WindowSurfacePlacer.java:652)
07-01 18:47:14.749  2612  2912 E WindowManager:         at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementInner(WindowSurfacePlacer.java:317)
07-01 18:47:14.749  2612  2912 E WindowManager:         at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementLoop(WindowSurfacePlacer.java:232)
07-01 18:47:14.749  2612  2912 E WindowManager:         at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:180)
07-01 18:47:14.749  2612  2912 E WindowManager:         at com.android.server.wm.WindowManagerService.relayoutWindow(WindowManagerService.java:2936)
07-01 18:47:14.749  2612  2912 E WindowManager:         at com.android.server.wm.Session.relayout(Session.java:215)
07-01 18:47:14.749  2612  2912 E WindowManager:         at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:286)
07-01 18:47:14.749  2612  2912 E WindowManager:         at com.android.server.wm.Session.onTransact(Session.java:136)
07-01 18:47:14.749  2612  2912 E WindowManager:         at android.os.Binder.execTransact(Binder.java:565)

adjustBounds user=Stack=1 mBounds=Rect(-480, -270 - 2400, 1350)

下面这里设置size的,没有看到裁剪


image.png

applydim的流程如下

07-01 19:12:30.152  2610  2633 E WindowManager: applyDim
07-01 19:12:30.152  2610  2633 E WindowManager: java.lang.Throwable
07-01 19:12:30.152  2610  2633 E WindowManager:         at com.android.server.wm.DimLayerController.applyDim(DimLayerController.java:320)
07-01 19:12:30.152  2610  2633 E WindowManager:         at com.android.server.wm.DimLayerController.applyDimBehind(DimLayerController.java:306)
07-01 19:12:30.152  2610  2633 E WindowManager:         at com.android.server.wm.WindowState.applyDimLayerIfNeeded(WindowState.java:1588)
07-01 19:12:30.152  2610  2633 E WindowManager:         at com.android.server.wm.WindowSurfacePlacer.applySurfaceChangesTransaction(WindowSurfacePlacer.java:696)
07-01 19:12:30.152  2610  2633 E WindowManager:         at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementInner(WindowSurfacePlacer.java:317)
07-01 19:12:30.152  2610  2633 E WindowManager:         at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementLoop(WindowSurfacePlacer.java:232)
07-01 19:12:30.152  2610  2633 E WindowManager:         at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:180)
07-01 19:12:30.152  2610  2633 E WindowManager:         at com.android.server.wm.WindowManagerService$H.handleMessage(WindowManagerService.java:8096)

这里开始的dim


image.png

应该就是dimlayer了。
7-02 11:34:27.253 1675 1675 E SurfaceFlinger: name com.wenfengtou.xposedsimpledemo/com.wenfengtou.xposedsimpledemo.MainActivity width=1920, h=1080 ,crop=( 0, 0,1920,1080)
07-02 11:34:27.253 1675 1675 E SurfaceFlinger: name DimLayerController/Stack=0 width=2880, h=1620 ,crop=( 0, 0, -1, -1)
07-02 11:34:27.254 1675 1675 I hwc : HISI_HWC gpu compose for layer cropHeight =-1,cropWidth =-1

01-01 08:00:11.665  2612  2612 V DimLayerController:    at com.android.server.wm.DimLayerController.updateDimLayer(DimLayerController.java:70)
01-01 08:00:11.665  2612  2612 V DimLayerController:    at com.android.server.wm.TaskStack.setBounds(TaskStack.java:292)
01-01 08:00:11.665  2612  2612 V DimLayerController:    at com.android.server.wm.TaskStack.updateDisplayInfo(TaskStack.java:363)
01-01 08:00:11.665  2612  2612 V DimLayerController:    at com.android.server.wm.TaskStack.attachDisplayContent(TaskStack.java:675)
01-01 08:00:11.665  2612  2612 V DimLayerController:    at com.android.server.wm.WindowManagerService.attachStack(WindowManagerService.java:5004)
01-01 08:00:11.665  2612  2612 V DimLayerController:    at com.android.server.am.ActivityStack.attachDisplay(ActivityStack.java:455)
01-01 08:00:11.665  2612  2612 V DimLayerController:    at com.android.server.am.ActivityStackSupervisor$ActivityContainer.attachToDisplayLocked(ActivityStackSupervisor.java:3968)
01-01 08:00:11.665  2612  2612 V DimLayerController:    at com.android.server.am.ActivityStackSupervisor.createStackOnDisplay(ActivityStackSupervisor.java:2305)
01-01 08:00:11.665  2612  2612 V DimLayerController:    at com.android.server.am.ActivityStackSupervisor.getStack(ActivityStackSupervisor.java:1919)
01-01 08:00:11.665  2612  2612 V DimLayerController:    at com.android.server.am.ActivityStackSupervisor.setWindowManager(ActivityStackSupervisor.java:555)
01-01 08:00:11.665  2612  2612 V DimLayerController:    at com.android.server.am.ActivityManagerService.setWindowManager(ActivityManagerService.java:2477)
01-01 08:00:11.665  2612  2612 V DimLayerController:    at com.android.server.SystemServer.startOtherServices(SystemServer.java:623)
01-01 08:00:11.665  2612  2612 V DimLayerController:    at com.android.server.SystemServer.run(SystemServer.java:328)
01-01 08:00:11.665  2612  2612 V DimLayerController:    at com.android.server.SystemServer.main(SystemServer.java:213)
01-01 08:00:11.665  2612  2612 V DimLayerController:    at java.lang.reflect.Method.invoke(Native Method)
01-01 08:00:11.665  2612  2612 V DimLayerController:    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1013)
01-01 08:00:11.665  2612  2612 V DimLayerController:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:903)

看看他的透明度时怎么设置下去的。

07-02 13:29:42.991 2610 2632 E adjustAlpha: at com.android.server.wm.DimLayer.adjustAlpha(DimLayer.java:164)
07-02 13:29:42.991 2610 2632 E adjustAlpha: at com.android.server.wm.DimLayer.setAlpha(DimLayer.java:160)
07-02 13:29:42.991 2610 2632 E adjustAlpha: at com.android.server.wm.DimLayer.stepAnimation(DimLayer.java:350)
07-02 13:29:42.991 2610 2632 E adjustAlpha: at com.android.server.wm.DimLayerController.animateDimLayers(DimLayerController.java:263)
07-02 13:29:42.991 2610 2632 E adjustAlpha: at com.android.server.wm.DimLayerController.animateDimLayers(DimLayerController.java:213)
07-02 13:29:42.991 2610 2632 E adjustAlpha: at com.android.server.wm.DisplayContent.animateDimLayers(DisplayContent.java:462)
07-02 13:29:42.991 2610 2632 E adjustAlpha: at com.android.server.wm.WindowAnimator.animateLocked(WindowAnimator.java:725)
07-02 13:29:42.991 2610 2632 E adjustAlpha: at com.android.server.wm.WindowAnimator.-wrap0(WindowAnimator.java)
07-02 13:29:42.991 2610 2632 E adjustAlpha: at com.android.server.wm.WindowAnimator$1.doFrame(WindowAnimator.java:140)

加到framecallback去播放动画的。

这个时hardware层


image.png

节点路径的对应


image.png image.png

hwc_prepare
hisi_hwc_prepare

海思的hwc


image.png

合成的流程参考:
https://blog.csdn.net/kc58236582/article/details/70146317

mDisplayData这个数据时怎么来的??

https://blog.csdn.net/kc58236582/article/details/70146317

莫非时这里??


image.png

layerdim有什么特殊标志?

相关文章

网友评论

      本文标题:crop 为-1 分析

      本文链接:https://www.haomeiwen.com/subject/mucrcctx.html