homescreens/folio: Render page in one texture

Render every page together in one texture. This groups together all page contents so that it is rendered a single time in the scene graph.
This commit is contained in:
Devin Lin 2026-02-18 22:43:13 -05:00
parent 7ff97875cc
commit c8be7be5cb

View file

@ -72,9 +72,14 @@ MouseArea {
anchors.bottomMargin: root.verticalMargin anchors.bottomMargin: root.verticalMargin
// animation so that full opacity is only when the page is in view // animation so that full opacity is only when the page is in view
readonly property real distanceToCenter: Math.abs(-folio.HomeScreenState.pageViewX - root.width * pageNum) readonly property real distanceToCenter: Math.abs(-folio.HomeScreenState.pageViewX - folio.HomeScreenState.pageWidth * pageNum)
readonly property real positionX: root.width * index + folio.HomeScreenState.pageViewX readonly property real positionX: folio.HomeScreenState.pageWidth * index + folio.HomeScreenState.pageViewX
readonly property real progressToCenter: 1 - Math.min(1, Math.max(0, distanceToCenter / root.width)) readonly property real progressToCenter: 1 - Math.min(1, Math.max(0, distanceToCenter / folio.HomeScreenState.pageWidth))
// Use layer to render all page items together in one texture
layer.enabled: Math.abs(index - folio.HomeScreenState.currentPage) <= 1
&& !folio.HomeScreenState.isDraggingDelegate
layer.smooth: true
visible: opacity > 0 visible: opacity > 0
opacity: { opacity: {