Rychlost grafických aplikací   zodpovězená otázka

VB.NET, Optimalizace, WinForms, Grafika

Zdravím,

mám zde dotaz a také možný námět na diskuzi. Často jsem pozoroval, že některé aplikace s více designovaným rozhraním (typickým příkladem je nový Skype) jsou renderingově rychlejší, než ty moje, přesto, že ty moje mají menší grafický objem.... Například jsem onehdy vyráběl jednoduchou aplikační UserControl, která měla dragovací části a při každém posunu, se celá UserControl znovu renderovala, což s sebou přinášelo celkové zpomalení a problikávání... A potom jsem někde ve Skypu uviděl animaci, která byla pohybově mnohem složitější, než moje dragování a přesto nic neproblikávalo. Jaké renderingové postupy mám použít v grafické aplikaci, nebylo by výhodnější vyrobit HTML web a ten vložit do aplikace pomocí WebBrowseru???

Předem děkuji za odpovědi

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Na aplikace s bohatým uživatelským rozhraním, animacemi a podobně je přesně navrženo WPF, které automaticky podporuje hardwarovou akceleraci vykreslování a je založeno na vektorové grafice. Dokonce i celý jeho koncept (XAML a styly) se velmi podobá HTML.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Děkuji, podívám se na to...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Odpověď p. Linharta je jasná a logická, píše však o "...s bohatým uživatelským rozhraním, animacemi a podobně ", zatímco vy jste otevřel problém nad "jednoduchou aplikační UserControl". Tak mě zajímá, zda se jednoduchá animace nebo přetahování myší dá vyřešit bez WPF tak, aby běhala plynule a s vyhovující rychlostí.

Dělal jsem jednoduchou aplikaci s přetahováním a velmi jednoduchou animací a chodila obstojně, animace až příliš. Až spuštění z klienta na vzdálené ploše serveru (2,83 GHz 64b, 4 jádra, 8 GB paměti) byla katastrofa. Zjistil jsem, že po každé změně překreslování probíhá vždy asi 11x za sebou. Mohla za to tlačítka - kolik tlačítek tolik zbytečných překreslení navíc. Po uzavření tlačítek do panelu a omezení překreslované plochy parametrem v Invalidate je i provoz z konzole OK.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Mě by ještě zajímala jedna věc, dá se WPF nějakým způsobem dostat do Windows Mobile (na internetu jsou o tom dost bouřlivé diskuse)?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nevím jestli to jde v CF, ale v norm. WinForms můžete vytvořit WPF UserControl a dát ji přes " ElementHost " na WinForm formulář.

Že by šlo wpf normálně, asi ne.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Obávám se, že to ti moc nepomůže. Přínos WPF v oblasti grafických aplikací (ve vztahu k rychlosti, o které píšeš výše) je mimo jiné právě v tom, že pro grafický výstup využívá HW akceleraci (aniž cokoliv speciálně programuješ třeba v Direct X, tak WPF to udělá za tebe a pokud je to možné, renderuje výstupy za pomocí GPU.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback