Announcement

Collapse
No announcement yet.

Wie kopiert man schnell Daten vom Systemspeicher auf die AGP-Grafikkarte?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie kopiert man schnell Daten vom Systemspeicher auf die AGP-Grafikkarte?

    Hallo,

    ich bekomme zeilenweise Bilddaten von einem Detektor. Das Bild soll quasi live angezeigt werden. Es baut sich also zeilenweise auf, alle 3 ms steht eine neue Zeile zur Verfügung. Es geht um max. 30000 Zeilen pro Bild mit jeweils 1536 Bytes pro Zeile. Der Benutzer soll in diesem Bild AUF und Ab scrollen können, später auch noch zoomen.

    Zur Zeit benutze ich folgendes Codefragment:

    this->pDXBackSurf->GetDC( &hSurfDC ) ) )

    SetDIBitsToDevice( hSurfDC, 0, 0, WNDWIDTH, WNDHEIGHT, 0, 0, 0, WNDHEIGHT, this->pTDDisplayPosition, this->pBMPInfo, DIB_RGB_COLORS);

    this->pDXBackSurf->ReleaseDC(hSurfDC);

    Je nach Hardware dauert SetDIBitsToDevice 17 .. 100 ms! Das ist nicht applikationsgerecht. Leider habe ich keine DirectDraw Erfahrungen und bin deshalb sehr an Hinweisen und Beispielen interessiert.

    Anmerkung: Die Systemspeicherzugriffe sind beim "100 ms Computer" schneller als beim "17-er". Beide Computer sind mit der gleichen Matrox Parhelia ausgerüstet.

    Viele Dank im Voraus

    Rainer Steinfeldt

  • #2
    Ich empfehle einen Matrox Framegrabber (z. B. Meteor II /MC) und die MIL (Matrox Imaging Library) zu benutzen. In unserer Firma sind wir damit zufrieden. Ich grabbe gerade einzelne Halbbilder einer Kamera mache Bilderkennung darauf und gebe sie aus. Ich erreiche 18 Bilder die Sekunde statt der 25 die die Kamera liefert

    Comment


    • #3
      Die ActiveXe der MIL in Delphi einzubinden geht allerdings nicht ohne Nacharbeit der _TLB.pas Files

      Comment

      Working...
      X