Skip to content

permanent="true" causes ghost rendering during animations #382

Description

@JMattChiam

When running the generated C code on hardware, when a screen is marked as permanent="true", animations on child objects produce a ghost; a static copy of the object remains visible at its original position while an animated instance moves.

Environment

  • LVGL version: 9.5
  • LVGL Pro Editor version 1.2.1
  • Platform: Renesas EK-RA8D1

Sample component:

ball.xml
<component>
	<animations>
		<timeline name="jump">
			<animation target="self" prop="translate_y" start="0" end="-500" duration="300" early_apply="false" />
			<animation
				target="self"
				prop="translate_y"
				start="-500"
				end="0"
				duration="300"
				delay="1000"
				early_apply="false"
			/>
		</timeline>
	</animations>

	<view extends="lv_button" style_width="50" style_height="50" style_radius="25" />
</component>

Sample screen:

<screen permanent="true">
	<view>
		<ball name="ball_1" align="bottom_mid" />
		<lv_button align="bottom_left">
			<lv_label text="Jump" />
			<play_timeline_event target="ball_1" timeline="jump" />
		</lv_button>
	</view>
</screen>

Expected Behavior

The "ball" component animates cleanly with no duplicate rendering.

Actual Behavior

A static ghost of the component remains at its original position while the animated copy moves.

Additional Notes

There is only one screen. I have not tried this with multiple screens.
Setting permanent="false" (or omitting the attribute) on the screen fixes the problem.
The preview on LVGL Pro Editor does not exhibit this behavior. It is only seen when running on hardware.

Is this behavior expected? Seems to be relate to how a permanent screen is saved/ cached in the LVGL runtime.

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions