-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
✨ Add LKAnimationKit #217
✨ Add LKAnimationKit #217
Conversation
Codecov Report
@@ Coverage Diff @@
## develop #217 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 40 42 +2
Lines 651 665 +14
=========================================
+ Hits 651 665 +14
Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
premier passage! :)
4a70ce6
to
4537fd0
Compare
fb32c83
to
6a5d68c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
on est quasi bon! quelques petits points de forme et un ajout sur les tests et on est bon 👍
_animation.stop(); | ||
} | ||
|
||
void LKAnimationKit::setRefreshRate(std::chrono::milliseconds rate) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
quelles peuvent être les raisons de changer le refresh rate?
quel est l'impact? ne doit-on pas le passer aussi à CGAnimation pour pas qu'elle puisse s'adapter (on ne veut pas que le cube aille trop vite ou trop lentement)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Il n'y a pas de notion de temps dans les CGAnimation
Celui qui gère le temps, que ce soit avec des ThisThread::sleep_for() ou lors du event_queue, c'est dans LKAnimationKit. C'est l'appel de run()
dans LKAnimationKit qui conditionnera la vitesse de l'animation
La raison pour le changer sont
- D'un point de vue esthétique, chaque animation à des vitesse différentes
- Dans LKAnimationKit, garder le contrôle du "Temps" à haut niveau
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Il n'y a pas de notion de temps dans les CGAnimation
c'est pas l'object de la PR mais en fait si c'est là que ça doit être
D'un point de vue esthétique, chaque animation à des vitesse différentes
mais ça LKAnimationKit ne le sait pas, faut donc que l'utilisateur se rappelle de mettre le "bon temps"
Dans LKAnimationKit, garder le contrôle du "Temps" à haut niveau
je ne comprends pas ça
C'est l'appel de run() dans LKAnimationKit qui conditionnera la vitesse de l'animation
en animation en général tu veux justement tout l'inverse : si ton ordi rame sur une tâche lourde et que tu joues une vidéo en même temps, le durée absolue de la vidéo ne va pas changer, la vidéo ne sera pas jouée au ralenti. par contre tu vas avoir du lag avec des moments de freeze puis une courte séquence, freeze, et ainsi de suite. c'est le CPU qui donne trop peu de temps au process de la vidéo pour avancer correctement.
c'est au lecteur de s'adapter
ici c'est pareil:
- une animation elle doit avoir une version de base avec une durée définie et une fréquence optimale définies aussi
- tu peux vouloir la jouer plus ou moins vite mais je ne vois pas de cas d'usage pour ça
- connaissant sa durée, tu sais dire à chaque fois que tu appelles
run()
ou tu dois en être. tu peux donc corriger si ça rame pour ne pas avoir l'animation qui dure plus longtemps que prévu e et qui risque donc de décaler tout le reste dans le temps
bien sûr le lag n'est pas ce qu'on recherche, mais c'est le moindre mal vis à vis du timing.
cela dit, ce n'est pas l'objet de la PR, on pourra revoir cela plus tard.
fead98e
to
1e4347a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
encore trois trucs et on merge 👍
9dcfce6
to
d71a6d8
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
3 points de formes et une question sur le setRefreshDuration
auto refresh_duration = std::chrono::milliseconds(42); | ||
|
||
animationkit.setRefreshDuration(refresh_duration); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ici on test pas que dispatch est appelé avec le bon refresh duration? (voir comment plus haut)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Il faut faire un mock de event_queue, c'était pas spécialement prévu mais si c'est indispensable je peux le faire
9ab5bbe
to
167fa8a
Compare
167fa8a
to
5a2e531
Compare
5a2e531
to
7ed30a5
Compare
Code Climate has analyzed commit 7ed30a5 and detected 0 issues on this pull request. View more on Code Climate. |
SonarCloud Quality Gate failed. |
No description provided.