Autor Beitrag
Andreas Pfau
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: Sa 08.11.03 21:24 
Hallo,

ich will mit OpenGL in ein Bitmap rendern - leider ändert sich aus unerfindlichen Gründen Canvas.Handle (also der Bitmap-DC), d.h. ich initialisiere OpenGL mit dem gegenwärtigen DC, aber bis ich dann erst rendere ist der DC schon wieder anders.

OK, ich habe rausgefunden, dass wenn ich Canvas.Lock() aufrufe, der DC konstant bleibt, aber ist das der richtige Weg? Laut Onlinehilfe mach Lock() nicht grade das, was ich will (den DC beibehalten), sondern verhindert lediglich GDI-Zeichenoperationen. Ist das nur Zufall, dass der DC ausnahmsweise gleich bleibt, oder kann ich davon ausgene, dass diese Methode auf allen Systemen anstandslos funktioniert?

_________________
Life is a bad adventure, but the graphic is really good!
Matthias
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 121



BeitragVerfasst: Mo 10.11.03 12:08 
Hallo,

soweit ich weiss wird der canvas.handle zum Zeichnen der Bitmap jedes mal neu erzeugt und das muß auch so sein, da dieser nur während des Zeichnens benötigt wird. Eine Bitmap hat aber sebst auch noch einen Handle (Bitmap.Handle) und dieser dürfte sich nicht ändern. Alternativ könnte es auch funktionieren mit CreateCompatibleDC eine eigenen DC auf die Zeichenfäche zu erzeugen und Ihn anschließen mit ReleaseDC wieder freizugeben.

ciao
Matthias
Andreas Pfau Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: Mo 10.11.03 17:33 
Hallo,

das ist eine gute Idee, ich werd's mal probieren! Danke!

_________________
Life is a bad adventure, but the graphic is really good!