Toon posts:

[win32] Stretchblt probleem *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik gebruik strechblt om een plaatje uit te zoomen. Het plaatje wordt in een loop diverse keren geschreven totdat het op volledige grootte op het scherm staat.

Nu heb ik bij bepaalde scherm resoluties en window grootte het probleem dat de tijd die strechblt nodig heeft, opeens van <10ms na 70-80 ms schiet en de cpu usage van 0-1% na 100% ( constant tot einde loop ). Als ik tijdens de 100% cpu load de scherm resolutie verander is het probleem meestal weg en als ik het window resize komt het ook weer goed. Ondertussen heb ik alle waarden waarmee strechblt wordt aangeroepen bekeken en die zie er niet vreemd uit ( geen te grote waarden, geen neg waardes etc etc ).

Iemand een idee wat hier mis kan zijn ?
Code toevoegen heeft verder weinig zin, ik neem aan dat iedereen weet hoe een strechblt er uit ziet ;-)

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:01

.oisyn

Moderator Devschuur®

Demotivational Speaker

is het alleen bij jou zo of heb je het ook op andere pc's geprobeerd?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
Zo slim zijn we wel ;-)

Ik kan het probleem reproduceren op diverse windows versies, verschillende hardware etc etc.

Verwijderd

Topicstarter
Ik wil deze toch even 1 keer omhoog helpen als laatste redding ;-)

Iemand ooit iets gelijkwaardigs meegemaakt ?

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:01

.oisyn

Moderator Devschuur®

Demotivational Speaker

heb je trouwens ook nog een Sleep () oid in de loop staan?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
Yip, dat is verder ook het probleem niet.
Als het probleem zich voor doet en ik switch van 1280*1024 na 1024*786 en terug dan is het probleem opgelost. Dit is dan weer dezelfde situatie, het lijkt misschien ook nog wel op een init probeem.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Je kunt met een stukje benchmarkcode checken hoe lang iedere blit-stap duurt, en vervolgens alle parameters dumpen zodra deze tijd enorm boven een ingestelde threshold schiet. Met die parameters zou je het theoretisch ook standalone moeten kunnen reproduceren...

Professionele website nodig?


  • The End
  • Registratie: Maart 2000
  • Laatst online: 15:07

The End

!Beginning

Damn, ik heb een kwartier lopen zoeken naar die functie tot ik erachter kwam dat het niet 'strechblt' is, maar stretchblt moet zijn...

Haal je elke keer de DC op met 'GetDC'? Vergeet dan niet elke keer 'ReleaseDC' aan te roepen.

[ Voor 0% gewijzigd door The End op 16-09-2002 11:49 . Reden: typo :) ]


Verwijderd

Topicstarter
The End schreef op 16 september 2002 @ 11:46:
Damn, ik heb een kwartier lopen zoeken naar die functie tot ik erachter kwam dat het niet 'strechblt' is, maar stretchblt moet zijn...

Haal je elke keer de DC op met 'GetDC'? Vergeet dan niet elke keer 'ReleaseDC' aan te roepen.
Sorry fot tha T ;-)

Ik gebruik een array met pointers naar drie verschillende hDc's.
Een Release gebeurd pas helemaal op het einde.

  • Adion
  • Registratie: Januari 2001
  • Laatst online: 30-08 21:18
Heeft de stretchblt misschien waarden buiten het venster waar je op tekent op die momenten ofzo?

Verder heb ik in Visual Basic (maar met win32 drawing functies) een gelijkaardig probleem al meegemaakt :
Normaal gaat het tekenen snel, maar als ik het start menu open, en dat opent transparant-fadend over de venstertjes in visual basic, dan dropt de tekensnelheid ook plots enorm (ook als het start menu daarna weer toe is).

Ik bewaarde ook steeds de hDC van dat venster.
Als ik bij de redraw code echter na de drop een window.Cls doe (dus een clear, en ook een nieuwe hDC krijgen) is het probleem opgelost.

VirtualDJ 2026 - Fast Image Resizer - Instagram


  • The End
  • Registratie: Maart 2000
  • Laatst online: 15:07

The End

!Beginning

Verwijderd schreef op 16 september 2002 @ 21:45:
[...]


Sorry fot tha T ;-)

Ik gebruik een array met pointers naar drie verschillende hDc's.
Een Release gebeurd pas helemaal op het einde.
Toch van verschillende windows he?
Probeer eens tijdens de loop de dc's te releasen en opnieuw te verkrijgen.
Pagina: 1