Batched easing evaluation API, playlist tokenization, and Component animate refactor#249
Open
inigomonyota wants to merge 12 commits intocurrentfrom
Open
Batched easing evaluation API, playlist tokenization, and Component animate refactor#249inigomonyota wants to merge 12 commits intocurrentfrom
inigomonyota wants to merge 12 commits intocurrentfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
stringstreamsplitting from the hot path by parsing playlist filters once atTweenconstruction.Description
using EasingKernel = float (*)(float, float, float);,static EasingKernel Tween::getKernel(TweenAlgorithm), and a new batched entrystatic void Tween::evaluateBatch(...)which evaluates contiguousprogress/start/changearrays for a single algorithm.playlistFilterintoplaylistFilterTokensinside theTweenconstructor and exposebool matchesPlaylist(const std::string&) constplus lightweight accessorsstartValue()/endValue()used by the batching flow.Component::animate()to a gather/bucket/evaluate/apply pipeline that: resolves start values during gather, builds aTweenEvaluationlist, buckets evaluations by algorithm, assembles SoA arrays (progress,start,change) per bucket and callsTween::evaluateBatch(...), then applies results in original order while preserving behavior for zero/negative durations andstartDefinedsemantics.docs/animation-batching-simd-plan.mddescribing the motivation, design, and next steps for SIMD-friendly batching and data-layout changes.Testing
git -C /workspace/RetroFE diff --checkto validate whitespace/merge issues and it completed with no reported problems.git -C /workspace/RetroFE status --shortto confirm staged modifications and it reported the modified files.nl(slices ofTween.h,Tween.cpp, andComponent.cpp) to verify the new APIs, constructor tokenization,evaluateBatchimplementation, and gather/bucket/evaluate/apply pipeline; those inspections matched the intended changes.Codex Task