feat: CoreSetup.RenderLoopCallback supports render only when changed