Steuerelement Animation
Verfasst: 27.06.2012 14:08
Ich schreib zurzeit für ein größeres Projekt neue Steuerelemente, welche möglichst "integriert", flüssig, schell, flexibel und funktional sein sollen. (HyperTree, DockBar, SwiftPanel, Ribbon, GradientBar)
Damit das ganze noch eleganter wirkt möchte ich Fading und weiche Bewegungs Animationen ermöglichen (optional). Meine Frage ist jetzt welcher Weg am optimalsten wäre.
1. Thread
Ein Thread für jede Klasse. Also 8 Gadgets des selben Typs werden durch ein Thread mit geringer Priorität gesteuert, der zudem pausiert wird solange keine Animation mehr stattfindet.
2. Callback
Ein Callback dem Fenster anhängen, wobei ich nicht weiß ob es zum Stop kommt wenn WaitWindowEvent verwendet wird.
Schnelleres Rendern auf Canvas?
Eine andere Frage wäre noch, ob noch schnelleres Rendern möglich ist. Canvas ist ja schon sehr gut, nur auf größeren Flächen etwas langsam meiner Meinung. Wäre es schneller mit BitBlt_() ein fertig gerenderten Frame direkt in den Buffer zu pushen? (damit kein weißes Flackern entstehen kann)
GDI+ schneller?
Ich würde eigentlich gerne GDI+ verwenden da es mehr Möglichkeiten und Anti-Aliasing bietet. Aber nachdem ich mich über die Performance informiert hab soll es sehr langsam sein? (mit HighSpeed)
Wäre sehr dankbar für Tipps und Vorschläge. Werde diese neuen Gadgets auch hier mit euch teilen wer sie verwenden kann, wie bereits DockBar und GradientGadget. Gerade bei DockBar möchte ich eine Flüssige Klapp-Bewegung der Elemente.
Damit das ganze noch eleganter wirkt möchte ich Fading und weiche Bewegungs Animationen ermöglichen (optional). Meine Frage ist jetzt welcher Weg am optimalsten wäre.
1. Thread
Ein Thread für jede Klasse. Also 8 Gadgets des selben Typs werden durch ein Thread mit geringer Priorität gesteuert, der zudem pausiert wird solange keine Animation mehr stattfindet.
2. Callback
Ein Callback dem Fenster anhängen, wobei ich nicht weiß ob es zum Stop kommt wenn WaitWindowEvent verwendet wird.
Schnelleres Rendern auf Canvas?
Eine andere Frage wäre noch, ob noch schnelleres Rendern möglich ist. Canvas ist ja schon sehr gut, nur auf größeren Flächen etwas langsam meiner Meinung. Wäre es schneller mit BitBlt_() ein fertig gerenderten Frame direkt in den Buffer zu pushen? (damit kein weißes Flackern entstehen kann)
GDI+ schneller?
Ich würde eigentlich gerne GDI+ verwenden da es mehr Möglichkeiten und Anti-Aliasing bietet. Aber nachdem ich mich über die Performance informiert hab soll es sehr langsam sein? (mit HighSpeed)
Wäre sehr dankbar für Tipps und Vorschläge. Werde diese neuen Gadgets auch hier mit euch teilen wer sie verwenden kann, wie bereits DockBar und GradientGadget. Gerade bei DockBar möchte ich eine Flüssige Klapp-Bewegung der Elemente.