Entwickler-Ecke
Multimedia / Grafik - Mit OpenGL in Bitmap rendern
jvkh - Mi 20.04.05 17:42
Titel: Mit OpenGL in Bitmap rendern
Hallo Leute,
In vielen Demos und Büchern gibt es immer nur Beispiele wie man anhand eines Gerätekontextes für ein Fenster einen OpenGL-Renderingcontext erstellt. Wie kann man das analog zu einem Bitmap? Ich hatte bei Tests hauptsächlich das Problem, dass ich kein doppelt gepuffertes Bitmap anlegen konnte. Dadurch schlug die Erzeugung des Renderingcontexts fehl. Kann mir jemand weiterhelfen? Ich arbeitet mit Delphi7 Pro ohne VCL.
Jörg
Lossy eX - Mi 20.04.05 18:07
Ja. Das geht. Dadurch, dass dein Bild bereits ein Buffer ist brauchst du kein Doublebuffering. Obwohl das wohl auch gehen sollte. Es kann aber durchaus sein, dass du dich dann recht schnell im Softwaremodus befindest. In der
dglOpenGl.pas [
http://www.delphigl.com/forum/viewtopic.php?t=1863] existiert eine Methode namens
CreateRenderingContext. Wenn du dort als DC ein
Bitmap.Canvas.Handle übergibst, dann sollte er rein theoretisch in das Bitmap rendern. Das Bild muss vorher aber 100%tig richtig initialisiert sein. Also Pixelformat am Besten auf 24 oder 32. Breite und Höhe entsprechend deinen Wünschen.
jvkh - Di 03.05.05 15:03
Hi,
vielen Dank nochmal für die Antwort. Ich bein jetzt
endlich mal dazu gekommen, das auszuprobieren.
Generell funktioniert es, aber leider nur bedingt.
Das Bitmap erlaubt bei mir keine Darstellung von
texturierten Rechtecken. Die Fläche bleibt jetzt
weiß. Generell kann man wohl sagen, dass der
Funktionsumfang nicht voll unterstützt wird. Ich
denke, dass ich vieleicht doch noch am Konzept
Änderungen vornehmen werde.
Jörg
Lossy eX - Di 03.05.05 17:14
Also Texturen sollte schon unterstütt werden. Für mich klingt es eher danach, dass die Textur nicht ganz richtig angelegt werden konnte. Das kann aber auch daraus resultieren, dass der Loader etwas anspricht was nicht unterstützt wird. Was für einen hast du denn verwendet?
FilE - So 15.05.05 15:58
Titel: Warum nicht mit SDL
es gäbe doch die möglichkeit openGL zusammen mit SDL zu nutzen. SDL für delphi gibt es in form der JEDI-SDL, welche mit OpenGL12.pas auch die openGL header beinhaltet. Das beste: bei der initialisierung erstellt man ein SDL-surface (kein DC Shit :twisted: ), welches man jederzeit mit SDL_SaveBMP( surface) speichern kann. ausserdem kann man solche programme (SDL+OpenGL) auch auf Linux/Unix/OSX kompilieren.
gruss FilE
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!