Sziasztok!
Egy .NET -es programot készítek, és nem tudom eldönteni, hogy milyen eszközre építsem a grafikus felületet.Elég speciális igényeim vannak, szeretném, ha a program nem csak linux+mono alatt működne, hanem win-en is jól futna.
Lenne benne klasszikus ablakozós, form-os interface, de fő munkafelület egy interaktív, szépen animálódó rész lenne. Amit meg kellene jeleníteni, azok gráfpontok + élek, ezeken kicsi kép vagy némi szöveg. A pontok pedig egy interaktív 2D-s dinamikai szimuláció szerint mozognának, lehetőleg szaggatás és egyéb grafikai bugok nélkül.
Mit javasoltok?
- 5615 megtekintés
Hozzászólások
Eddig GTK + GDK + Cairo -t nézegettem, ablakozni szépen, rajzolni aránylag gyorsan tudok vele. Ha ezt használom, akkor csináljak widget-et a pontoknak és éleknek, vagy inkább egy nagy vászonra rajzoljak saját widgetek nélkül?
- A hozzászóláshoz be kell jelentkezni
Szerintem egy nagy vászonra rajzolj, különösen, ha nem kell egérkezelés, vagy bármilyen interaktivitás.
Ha kell, akkor valószínüleg könnyebb dolgod lesz külön widgetekkel, bár megoldható a nagyvászonos módszerrel is.
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
A GDK-ra akartam írni, hogy gyors. Cairo-t még nem próbáltam sebesség szempontjából. GDK-val sikertül 500 000 kis karikát kirajzolnom egy másodperc alatt, ami 50fps -el számolva 10 000 elemi rajzolási műveletet enged nekem képkockánként max cpu kihasználtság mellett. Szerintem ez egész jó.
Kíváncsi vagyok Cairo-t használva és widget-be zárva mennyit sikerül kihoznom belőle.
Az életképes megoldás, hogy Cairo-val egyszer megrajzolom a gráf pontjainak statikus részeit, és ezt egy pixbuf-ban gyorsítótárazom? (pontonkét külön cache) Ekkor az animáció során csak a változó dolgokat kellene minden alkalommal újra kirajzolni.
- A hozzászóláshoz be kell jelentkezni
Nem tudom a .NET mennyire fontos, de a Qt (>=4.2)-ben a Graphics View Framework pont jó lenne neked.
Van egy .NET-es Qt binding, a Qyoto, de ez elég új dolognak tűnik.
Az biztos, hogy az összes elterjedtebb grafikai toolkit közül a Cairo a leglassabb (még), tehát ha annak a sebessége megfelelő, akkor bármi jó neked.
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Cairo lassú ???
Szinte mindenütt alkalmazzák. firefox-tól a beryl -ig
- A hozzászóláshoz be kell jelentkezni
De nem azért mert gyors. :)
http://zrusin.blogspot.com/2006/10/benchmarks.html
http://www.xaraxtreme.org/about/performance.html
Amikor utoljára olvasgattam Cairoról, akkor bevallottan nem a sebesség volt a szempont a fejlesztésnél, mert egy csomó tervezett feature még hiányzott.
Azért használják a Cairot, mert C-s, mert cross-platform, mert sokféle kimenetet támogat, mert vektor alapú, és mert hardware-esen gyorsítható.
Ez utóbbi nem tudom hol áll, de gyanítom elég kezdeti stádiumban.
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Csináltam egy kis házi benchmarkot, szigorúan a mono alatti teljesítményre.
Az eredmény:
Egy Cario karika kirajzolása kb. 160x lassabb, mint egy GDK karika rajzolása ugyanarra a GTK felületre. Viszont a Cairo karika sokkal szebb, mivel élsimítva jelenik meg; valamint villogás sincs, mivel double-buffering -et használ.
- A hozzászóláshoz be kell jelentkezni
Tehát akkor minőség miatt lasabb.
- A hozzászóláshoz be kell jelentkezni
Ebből is látszik, hogy értelmetlen összehasonlítani a Cairot a GDK-val.
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
glitz ?
- A hozzászóláshoz be kell jelentkezni
Talán tudsz valami trükköt, amivel mono alatt rá lehet venni a Cairo-t, hogy használja?
- A hozzászóláshoz be kell jelentkezni
Csak arra gondoltam talán gyorsabb vele, de tesztek szerint nem nagyon, bár az régebbi cairo, az élsimitás miatt lehet annyival lasabb, mint a teszteken láttam,de 160x körnél már kicsit soknak tűnik, vagy minden kör után volt flip ?
glitz úgy látom csak tervben van monoéknál.
- A hozzászóláshoz be kell jelentkezni
Szemmel úgy láttam, mintha minden karika után lett volna flip.
Úgy tűnik a default beállításokkal sikerült a leggyorsabb GDK-t összehasonlítani a leglassabb Cario-val. :)
- A hozzászóláshoz be kell jelentkezni