☰ Menu

Scene.hu

Magyar demoscene portál – grafikusok, zenészek, programozók alkotói közössége

Home Forums Platformok PC SEGITSEG! Reply To: SEGITSEG!

#3957
avatar-SP-
Member

Bár igazából nem olyan húdenagy segélykiáltás, de jobb topicot hirtelen nem látok. Ötlet kellene, vagy sima útbaigazítás.

C#, hogyan lehet a legegyszerűbben megoldani egy sima rajzolást? 2D-ről van szó, a standard windows canvason. A legegyszerűbb ugye az, hogy folyamatosan létrehozok egy Bitmap objectet, aminek van setPixel meg getPixel methodja, és az így baxkurált képet állandóan update-elem, aztán backgroundImage-ként kitolom a formra. Na, ez nyilván iszonyat lassú. Ha ehelyett byte array-eket változtatok, és azt tolom be a kép objectbe (Marshal.Copy()), akkor sokkal gyorsabb, de csak ilyen 320×240-ig. Egy 1024-es felbontás kitöltése itt is nagyon sokáig tart. Időt lehet nyerni azzal, hogy az Invalidate() csak egy bizonyos terepen belül rajzolja újra, de azzal nem lehet kalkulálni, meg csomószor kellene fulscreen update is.

Tudom, hogy a C# nem a demókészítés legjobb nyelve :) de itt ez az egész kb. 3 sorban kivitelezhető. Csak baromi lassú.
Van esetleg valami alternatívája? Ismétlem, csak generált 2D-ről van szó.

Ugrás a lap tetejére Ugrás a lap aljára