Schnellere Routine als StretchBlt
-
hi!
Gibt es irgendeine Möglichkeit ein Bild schneller zu skalieren als über StretchBlt? Vielleicht mit OpenGL? Wenn ja, wie kann man ein normales HBITMAP über OpenGL in ein fenster stretchblitten?
Hat dazu jemand ein Codebeispiel?
mfg
chris90
-
Oh je, meines Wissen ist das nicht einfach möglich. Die ganze Anwendung müßte auf OpenGL oder DirectX programmiert sein und das erfordert eine ganz eigene API.
-
Also ich würde das mit DirectDraw im Cooperativen Modus machen.
DDraw und GDI arbeiten recht gut zusammen, so dass man nicht allzuviel umschreiben müsste.
-
DDraw ist die bessere Lösung als OpenGL, da beide Produkte (Windows und DirectX) bekanntlicherweise von einer Firma stammen und diese kompatibler miteinander sind.

-
Wozu brauchst du StretchBlt?
BTW: http://turing.fh-landshut.de/~jamann/Skalierung von Rastergrafiken.pdfich geh mal davon aus, dass du ständig dein Bild neulädst oder ständig von DIB nach DDB umwandelst - die Integration von OpenGL ist nicht wild - OpenGL will nur den Handle auf ein Fenster, in das es rein rendern kann.... also einfach in ein Label oder ne Textbox reinrendern
-
DDraw ist die bessere Lösung als OpenGL
IMHO ist die Untersützung von OpenGL besser als die von DDraw, da
- OpenGL noch weiterentwickelt wird und DDraw nicht mehr
- 3D Grafikkarten 2D über die 3D Pipeline emulieren (Orthogonale Projektion)
-
Hallo Vertexwahn,
3D Grafikkarten 2D über die 3D Pipeline emulieren (Orthogonale Projektion)
Ist das jetzt auch IMHO, oder kann man zu diesem Thema näheres lesen?
Ich bezweifle nämlich, dass es so gelöst wird, würde mich aber dennoch interessieren, wenn es wirklich so ist.
-
Ist das jetzt auch IMHO, oder kann man zu diesem Thema näheres lesen?
Ich bezweifle nämlich, dass es so gelöst wird, würde mich aber dennoch interessieren, wenn es wirklich so ist.ich glaube raspo oder Stefan Zerbst haben das mal geschrieben, aber ich weiß jetzt nicht mehr genau, und ich kann mir vorstellen, dass die da besser Einblicke habe als ich
-
danke!
mit was für einer funktion kann ich denn ein hbitmap in OpenGL laden?
auf ein hdc zu zeichnen scheint ja nicht weiter schwierig zu sein - aber wie kann ich den OpneGL Buzffer mit meinem HDC füllen?danke
chris90
-
guckst du nehe.gamedev.net
da wird erklärt wie man Texturen, also ein Bitmap, lädt (dort gibts glaub ich auch sogar Bibliotheken für das Laden von PNG, JPG, TGA) und in den Einsteigern Tutorials wird gezeigt wie man auf ein Fenster rendertbist du dir sicher, dass sich der Aufwand lohnt? StetchBlt könnte schneller sein weil es einen Besseren Filter wie OpenGL verwendet - muss man halt auch abwägen - Qualität gegen Schnelligkeit
nicht das es nur daran scheiter, dass du die WinAPI falsch einsetzt
was soll das für ne Anwendung werden?
-
eine verkehrssimulation. Naja ich werde dann version 2 umsteigen auf OpenGL. Also vielen Dank erstmal!