GraphicsControl

Status
Niet open voor verdere reacties.

ninjaplayer

Gebruiker
Lid geworden
15 apr 2007
Berichten
603
Ik heb een control geschreven speciaal om op te kunnen tekenen. Normaal kun je bij een control CreateGraphics gebruiken maar als je heel veel in een keer tekent, wordt het traag.
Alles wordt eerst onzichtbaar getekend op een 'vel papier' en daarnaar wordt alles op dat vel in de control getekent.

Sleep dll naar toolbox.

Tekenen gaat via de Graphics property:
Code:
'voorbeeld
GraphicsControl1.Graphics.DrawImage(imgVoorbeeld, 0, 0)

Maar met alleen dat zie je niets op de control, gebruik Draw om het om de control te tekenen:
Code:
GraphicsControl1.Draw()

Ik had dit nodig omdat een spel waarmee is bezig ben sloom was om die reden maar volgens mij kun je ook zo je eigen grafieken of iets dergelijks mee tekenen.

Download in bijlage.
 

Bijlagen

Hey,

Hoe precies werkt dit sneller dan?

Cheers
BN
 
Wat ik eerst deed was steeds een code om elke afbeelding te tekenen. Dat maakt het traag want jij ziet elke afbeelding apart getekend worden. Hiermee teken je eerst al je afbeeldingen onzichtbaar op een image en die wordt dat zichtbaar getekend.
 
Dus je wisselt geheugen gebruik om voor snelheid? :)

EDIT:
Ik zou je control mischien in een van mn apps kunnen gebruiken, maar dan wil ik natuurlijk wel weten hoe die precies werkt en de source kunnen zien, en ook niet verplicht zijn om een extra dll aan die app toe te voegen.
 
Laatst bewerkt:
Dat trukje maakt het er volgensmij niet veel sneller op, atleast wanneer ik het doe gaat het even snel.
 
Dat komt omdat het alleen traag wordt als je echt heel veel afbeeldingen moet tekenen (wat bij mij het geval is).
 
Jah maar dus kan je niet een soort graphicscontrol maken dan die met DirectX werkt zodat je snel en easy dingen kan tekenen zoals met GDI? Dat zou pas echt vet zijn
dit is gewoon een beetje hetzelfde
 
Je kan het proberen maar DirectX is niet zo makkelijk maar als je het doet is het echt vet dan kan je gewoon super snel easy drawen
 
Sneller drawen dan DirectX met DoubleFramebuffer gaat niet...
Zowat elke taal biedt trouwens de mogelijkheid om met een (al dan niet dubbele) framebuffer te werken. Het feit dat je beeld geleidelijk aan werd opgebouwd heeft gewoon te maken met het feit dat jouw data niet snel genoeg in de framebuffer terecht komt, waardoor die reeds gewisseld is met het actieve scherm en jij maar een stuk van je complete render ziet.
Wat jij doet is dus in geen geval sneller tekenen, maar het tekenen uitstellen tot je framebuffer geladen is..
 
dat weet ik maar GDI+ is softwarematig drawen, en directX is Hardware drawen, dus directX is 1000 keer zo snel als GDI+
 
Het zichtbare proces is sneller omdat je maar een tekenopdracht ziet. Maar het tekenen wordt niet sneller inderdaad.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan