[VB] refresh rate syncen met progje

Pagina: 1
Acties:

  • Aplo
  • Registratie: Januari 2002
  • Laatst online: 18-02 15:49
Ik heb een vb progje die via LAN een beeldje krijgt van een camera en die netjes weergeeft. Nu gaat dat via LAN lekker snel maar je krijgt wel dat irritante geflikker. Waarschijnlijk omdat de monitor (TFT @ 60 hz) refresh rate uiteraard niet gelijk loopt met de frequentie het progsol de plaatjes toont.

Mijn vraag is dus; is het mogelijk om je progje te "syncen" met je refresh rate van je machine? Dus met bijv 60 fps de beeldjes toont maar wel steeds op het moment dat de monitor dat ook doet.

Hoop het zo duidelijk genoeg uitgelegd te hebben :P

Verwijderd

Mogelijk dat je eens kan zoeken op double buffering, waardoor flikkeren wordt onderdrukt.

Verwijderd

Of LockWindowUpdate (The LockWindowUpdate function disables drawing in the given window. Only one window can be locked at a time.)
code:
1
2
3
4
5
6
Private Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long
Private Sub UpdateImage
  LockWindowUpdate Me.hWnd
  'doe bewerking
  LockWindowUpdate 0
end sub

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 29-04 08:14

Janoz

Moderator Devschuur®

!litemod

Het geflikker heeft niks met de refresh rate te maken. Het wordt eerder veroorzaakt doordat het scherm eerst gewist wordt voordat het volgende beeld wordt neergezet. Dit is op te lossen door, zoals RikeR al aangeeft, double buffering te gebruiken. Het is echter misschien wel makkelijker om je programma zo aan te passen dat het plaatje over het vorige plaatje heen getekend wordt. Er komen dan geen lege schermen tussendoor.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Aplo
  • Registratie: Januari 2002
  • Laatst online: 18-02 15:49
Dank u voor de reacties :>

we gaan aan de slag met de tips en ik laat het nog ff weten welke resultaten er worden geboekt

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Stop AI Slop

Op welke manier zet je het beeld wat je van de camera ontvangt op het scherm?

Als dit in een picturebox is, moet je deze, zoals eerder al gezegd, niet wissen (pixturebox.cls) maar gewoon het volgende beeld er overheen prakken.

ik zou zelf ook eerder voor DirectDraw (DirectX8) kiezen om zulke snelle (25-30 fps I assume?) beelden op het scherm te tekenen dan API calls als "BitBlt" en "BltFast".

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...

Pagina: 1