tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
821
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    basd basd ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Ort
    München
    Beiträge
    264
    Hallo,

    habe eine Frage:
    Kennt einer eine Möglichkeit schnell in ein MDI Fenster zu Zeichnen ?
    Also ich will jeden Pixel einzeln setzen !

    Nachdem ich mit Freuden festgestellt habe, dass die SetPixel(V) Routine sehr langsam sind hab ich mich auf die Suche gemacht und bin auf ein paar Artikel mit bitmaps gestoßen. Dort kann ich dann auch direkt ein von mir beschriebenen Speicherbereich einem Bitmap zuweisen und diesen dann auf den Bildschirm bliten. Das funktioniert alles auch sehr gut (im Vergleich mit dem Sekunden dauernden SetPixel), nur je größer das Fenster ist desto langsamer wird es. (Ich habe Pixel zeilen die von oben nach unten Scrollen). Gibt es eine Möglichkeit wie in SDL das Display Surface zu LOCKEN in den Speicher schreiben und anschließend wieder freigeben ?
    Muss man DirectDraw verwenden ? Wo gibt es ein brauchbares Tutorial (mit google hab ich nix anständdiges gefunden) ?

    Danke !
     

  2. #2
    Registriert seit
    Jan 2002
    Ort
    Bayern
    Beiträge
    1.390
    Also wie du schon angedeutet hast, kann man das "Bild" vorher im Speicher zeichnen und dann blitten.
    Da ich leider nicht ganz weiß wie du das machst kann ich dir auch nicht näher helfen.
    Aber schau dir mal die Funktion CreateCompatibleDC() an, damit kannst du dir einen Device Context im Speicher erstellen, in diesen kannst du dann reinzeichnen und dann über einen BitBlit auf den Device Context des jeweiligen Fensters blitten, das ist in der Regel eigentlich ziemlich flott.

    Wenn du dazu mehr Hilfe benötigst, dann meld dich nochmal.

    Gruß Homer
     
    we would change the world if god gave us the source code...
    and remember, science is nothing more than reverse engineering nature...

    Current projects:
    - LdrawConverter

  3. #3
    basd basd ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Ort
    München
    Beiträge
    264
    Also ich benutzte CreateCompatibleDC ( schon um den Flackern zu umgehen).
    In das Bitmap dieses DCs setze ich die Bits direkt (SetbitmapBits).
    Also das setzen der Bits geht scheinbar schnell genug denn wenn das Fenster klein ist bzw. teils bedeckt ist geht das Zeichnen flott genug aber sobald das (sichtbare) Bild auf ca. 1/4 Bildschirmgröße wird das ewig lahm.
    Hoffe damit ist das Probelm besser beschrieben .

    Wie machen die das bei den Videoplayern ? einer Beispielcode
     

Ähnliche Themen

  1. C++ ChildWindow Problem
    Von Binär10010111 im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 01.03.08, 11:45
  2. Schnelles Capturen?
    Von Alex363 im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 4
    Letzter Beitrag: 26.09.07, 11:24
  3. ATL Childwindow -> Vollbildmodus
    Von Shadow im Forum VisualStudio & MFC
    Antworten: 4
    Letzter Beitrag: 25.04.06, 11:18
  4. Titelleiste von ChildWindow
    Von SeeSharpNewBee im Forum .NET Archiv
    Antworten: 2
    Letzter Beitrag: 01.08.05, 13:53
  5. Antworten: 3
    Letzter Beitrag: 12.05.05, 01:53