Milyen grafikai toolkit?

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?

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?

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 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.

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

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

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.

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.