Kniffliges Problem mit Direct3D & GDI



  • Hallo zusammen,

    ich entwickle einen Zusatz für den Flugsimulator FS2002 von Microsoft (jaa,
    immer noch @Bärchen).

    Der Flugsimulator hat ein "Virtual Cockpit" mit Direct3D programmiert. Ich als Addonentwickler bekomme Zugriff (einen HDC) auf ein DirectX Surface auf dem Cockpit, um ein Instrument zeichnen zu lassen (mit GDI).

    Doch was ich auch mit dem Handle mache, alle GDI Objekte werden transparent angezeigt (man sieht den Cockpithintergrund). Ich habe natürlich den Brush und Pen richtig gesetzt, viele Farben ausprobiert, SetBKMode und SetBKColor gesetzt ... alles bringt nichts. Das Ergebnis sieht immer so aus:

    [url] www.bluecommerce.net/problem.jpg [/url]
    <img src=www.bluecommerce.net/problem.jpg> www.bluecommerce.net/problem.jpg

    Es funktioniert nur, wenn ich das GDI Zeug auf einen selbsterstellten HDC zeichne (erstellt mit CreateCompatibleDC und CreateCompatibleBitmap), und diesen hdc anschleißend auf den HDC vom FLugsimulator Blitte mit BitBlt, allerdings nur mit der OPTION SCRPAINT (SRCCOPY geht nicht!). Jetzt ist das Problem, wenn ich das Display update, werden die alten Pixel nicht gelöscht, das Bild wird übereinender gemalt. Ich bekomme das Bild vor dem Blitten nicht schwarz- es wird sofort wieder transparent.

    Vielleicht muss ich irgendwie selber ein Bitmap erstellen und dem HDC als Zeichenfläche zuweisen? Mit CreateCompatibleBitmap und anschließend SelectObject habe ich schon probiert, jetzt kann ich mit GDI garnichts mehr malen.

    Besten Dank für jeden Tipp.

    Schöne Grüße,
    Marcel Burr


Anmelden zum Antworten