Kezdőoldal » Számítástechnika » Programozás » Turbo Pascal graph miért...

Turbo Pascal graph miért olyan lassú?

Figyelt kérdés
Van-e bármi mód felgyorsítani? Egy ciklussal íratok ki 2-300 pixelt, majd letakarom őket fekete pixelekkel, így mozgás illúzióját keltve. Vagyis keltené, de nem lenne bitang lassú... Miért rajzol ilyen lassan?

2013. jún. 2. 00:06
 1/4 anonim ***** válasza:

Mert az ilyesmi időbe telik. Nincs varázslat, optimalizálni kell a kódot. Csak azt a részét rajzold újra a képnek, ami változik, egy pixellel se többet. Ha minden körben letörlöd a képernyőt, az tetű lassú lesz, és villogni fog.


Ha eleve így csinálod, akkor passz, látni kéne a kódot hozzá. Azt is érdemes nézni, hogy milyen platformon fut a programod. Ha nem vagy normális DOS alatt, akkor kapásból nem lesz olyan gyors, mint ahogy kellene.

2013. jún. 2. 00:13
Hasznos számodra ez a válasz?
 2/4 tabaki ***** válasza:
Ha modern rendszered van, az Windowsból teremti meg a DOS-os környezetet, ami máris egy áttétel. Valamennyit itt is javíthatsz a Dos-képernyő konfigurálásával. Egyébként a DOSban nem biztos, hogy a TP bolondbiztos pixelrajzoló rutinja a legszerencsésebb, mert nyilván minden pixel megrajzolásához gondosan menti a regisztereket, utána meg visszatölti. Ez önmagában is többszörösére növelheti a szükséges időt. Mivel te tudod, hogy a ciklusod lefutása során nem lesz szükséged az eredeti értékekre, elég, ha a ciklus előtt vermeled el a regisztereket, és csak a teljes lefutása után állítod vissza őket. A fix képernyőmemóriának köszönhetően könnyen írhatsz megfelelő assembly-betétet egy saját eljárásba, vagy rádefiniálsz egy tömböt a képernyőmemóriára, és tömbkezeléssel viheted be a megfelelő színeket. Ezenkívül szokásban van a képernyő lapozása, tehát amíg az egyik rajzot a képenyőn tartod, addig a nem látható lapon rajzolod meg a másikat, és a képernyővisszafutáskor átváltod. Így egy pillanat alatt a kész képet jeleníti meg, nem a képernyőn intézi a bonyodalmas átírást.
2013. jún. 2. 01:15
Hasznos számodra ez a válasz?
 3/4 A kérdező kommentje:
Köszönöm a tippet, tényleg az ASM-es közvetlen memória írás lett a megoldás, így teljesen jó :) Az emulátor annyit azért nem lassít rajta, így viszont most klassz lett.
2013. jún. 3. 11:39
 4/4 anonim ***** válasza:
Hehe, ez a konstruktív hozzáállás. Diákkoromban én is egy lassú grafikai program miatt kezdtem gépi kódban rajzolni. :-)
2013. jún. 7. 19:37
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!