Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: piirtämisen vilkkuminen poijes

sooda [26.11.2003 20:01:15]

#

kun mun 3D RautaLanka Moottori piirtää parhaimmillaan 20000 viivaa joka kerta kun se pyörii uusiks (2 kertaa sekunnissa) niin voitte kuvitella kuinka se tuppaa vilkkumaan aika ikävästi. Miten sen saisi pois kun se piirtää viivat ihan vaan Linellä saisiko siihen jonkunmoisen tuplabufferoinnin tms?

juhapekka [26.11.2003 20:31:08]

#

oletko kokeillut tehdä framebufferia?

teoriassa tapahtuu sillain, että piirretään toiseen pictureboxiin, joka on piilossa, kun grafiikan on piirretty boxiin, niin boxin sisältö kopioidaan näkyvään boxiin.

sama toimii muidenkin hDC pintojen kanssa.
itse ainakin sain aikanaan tällä tavalla toimiin..
kannattaa siirtyä käyttämään WinAPI käskyjä. suoraan sanottuna noi vb:n omat grafiikkarutiinit haisee..

visual studion mukana tulee api text viewer.. sieltä vaan selaileen..

esimerkkinä muutama grafiikka käsky, jotka löytyy tuon ohjelman avulla. tästä jää vielä puuttumaan muutama esimääritelty muuttuja, mutta ne löydät kyllä api text viewerin avulla (win32api.txt).


laittaa pinnalle pixelin.
---
Public Declare Function SetPixel Lib "gdi32" Alias "SetPixel" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long

nimensä mukainen käsky. katsoo pixein ns värin.
---
Public Declare Function GetPixel Lib "gdi32" Alias "GetPixel" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long

käytä bitblt-käskyä tuon taustabufferin kirjoittamiseen/tyhjentämiseen.
--
Public Declare Function BitBlt Lib "gdi32" Alias "BitBlt" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

----
näillä eväillä varmaan onnistuu..

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta