Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 02.11.2009, 23:18 Titel: FbBuffer nach SDL und zurück |
|
|
Hallo,
In meinem GuiPtr Projekt ist beim frickeln mit der SDL-Bibliothek was abgefallen: http://www.freebasic-portal.de/porticula/sdl-fbgfx-bas-1001.html
Ein kleines progrämmchen, welches mehrere fenster (unter Windows 3 und unter linux 2), öffnet, wenn man es ohne besondere parameter kompiliert und mit anwesender SDL.dll (im gleichen verzeichniss) startet.
Das erste fenster ist die normale DOS-Box (unter linux nicht sichtbar).
Das zweite Fenster ist ein normales GFX-Fenster.
Und das dritte Fenster ist ein SDL-Fenster, welches einen "normalen" FB-Bildpuffer wiedergibt.
Schauts euch einfach mal an. Ich denke, es hat gutes potenzial zum weiteren ausbau!
In dem quelltext sind auch noch funktionen zum auslesen von Maus und tastatur vorhanden, falls jemand etwas mehr damit machen möchte. (verhalten ist einigermaßen äquivalent zu getmouse und inkey)
Diese lösung entspricht weitgehend dem oft gesuchten 2. GFX-Fenster.
Das einzige was dafür nötig ist, ist die SDL.dll im gleichen verzeichnis wie das kompilat.
Meine bisherigen experimente haben sogar ergeben, das grafikausgaben im SDL-Fenster performanter sein können als die im GFX-Fenster!! einfach mal ein bischen mit experimentieren, der quellcode ist nicht schwierig.
Wenn jemand fragen hat, immer her damit. Hab den quellcode allerdings nicht kommentiert. Aber ich schätze der erklärt sich weitgehend von selbst.. wenn nicht, ich bin oft da
PS: Es gibt dort 2 sehr ähnliche sub. Die eine Surface2Buffer kopiert den inhalt eines SDL-Surface-Objekts in einen normalen FB-bildpuffer und die Buffer2Surface kopiert den inhalt eines FB-Bildpuffers in ein SDL-Surface-Objekt. ... ach, das is ja eh alles selbsterklärend.. wenn einer fragen hat, einfach stellen  |
|
Nach oben |
|
 |
funkeld gesperrt
Anmeldungsdatum: 10.10.2009 Beiträge: 179
|
Verfasst am: 04.11.2009, 09:56 Titel: |
|
|
Wenn jemand fragen hat, immer her damit.
Ich würde mal gern einen Anfang mit dem GDI+ mit SDL sehen in Freebasic
GDI+ hat sehr viele Möglichkeiten hinsichtlich der Grafik.
Mal über den Tellerrand programmieren.
Danke.
Gruss |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 04.11.2009, 10:48 Titel: |
|
|
GDI(+) ist aber leider plattformabhängig. Das gibts unter linux nicht. Ich halte mich mit vorliebe bei themen auf, die plattformunabhängig verfügbar sind.
@funkfeld: War nun deine eigentliche frage? |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 04.11.2009, 21:40 Titel: |
|
|
Zitat: | Cairo: A Vector Graphics Library |
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 04.11.2009, 22:27 Titel: |
|
|
Cairo kann auch mit Pixelgrafik umgehen.
Oh, und dann wäre da noch das hier:
Zitat: | Konkurrenztechnologien sind WPF sowie GDI+ von Microsoft und Quartz von Apple. |
_________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 05.11.2009, 00:48 Titel: |
|
|
cairo is schon eine tolle grafikbibliothek.. keine frage.. ziemlich viele populäre opensource-gui-anwendungen werden damit gerendert. Aber das is für meine Gui höchstens ein thema weit in der zukunft...
erm.. driftet das hier grad nich ein bischen offtopic? ... Ursprünglich gings darum, das man mit SDL-Unterstützung ein 2. GFX-Fenster erstellen kann.... |
|
Nach oben |
|
 |
funkeld gesperrt
Anmeldungsdatum: 10.10.2009 Beiträge: 179
|
Verfasst am: 05.11.2009, 10:13 Titel: |
|
|
Für mich stellt sich die Frage, wie kann ich ein gedrehtes Openglbild/Fenster(64x64 Pixel zb) von dem SDL-fenster ins normale Freebasicfenster transverrieren.
Das bekomme ich nicht hin.
Gruss |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 06.11.2009, 10:28 Titel: |
|
|
@funkfeld: Theoretisch sollte die funktion "Surface2Buffer" in dem quelltext, um den es hier eigentlich geht, genau das können. Meine Versuche haben aber gezeigt das sich die OpenGL-Pixel-Daten nicht so auslesen lassen wie übliche Pixel-Daten in SDL-Surface-Objecten ... Kannst es ja mal selbst probieren, vielleicht hab ich ja irgendwo nen fehler gemacht. |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 06.11.2009, 11:33 Titel: |
|
|
OneCypher hat Folgendes geschrieben: | Meine Versuche haben aber gezeigt das sich die OpenGL-Pixel-Daten nicht so auslesen lassen wie übliche Pixel-Daten in SDL-Surface-Objecten ... Kannst es ja mal selbst probieren, vielleicht hab ich ja irgendwo nen fehler gemacht. |
siehe: glReadPixels -> http://www.freebasic-portal.de/tutorials/screenshot-opengl-fenster-freeimage-61.html _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
funkeld gesperrt
Anmeldungsdatum: 10.10.2009 Beiträge: 179
|
Verfasst am: 06.11.2009, 16:10 Titel: |
|
|
Wie muss ich die Daten vom FidataPointer auslesen und wieder einlesen um ein Bild im Freebasic mit Put darzustellen?
Danke.
Gruss
Code: |
bitmap = FreeImage_Allocate(xres, yres, bits) '// Bild erstellen
FiDataPointer = FreeImage_GetBits(bitmap) '// Pointer auf Bilddaten holen
glReadPixels(0, 0, xres, yres, GL_BGRA, GL_UNSIGNED_BYTE, FiDataPointer)
|
Zuletzt bearbeitet von funkeld am 06.11.2009, 16:12, insgesamt 2-mal bearbeitet |
|
Nach oben |
|
 |
funkeld gesperrt
Anmeldungsdatum: 10.10.2009 Beiträge: 179
|
Verfasst am: 06.11.2009, 16:11 Titel: |
|
|
Zitat: |
Meine Versuche haben aber gezeigt das sich die OpenGL-Pixel-Daten nicht so auslesen lassen wie übliche Pixel-Daten in SDL-Surface-Objecten traurig ... Kannst es ja mal selbst probieren, vielleicht hab ich ja irgendwo nen fehler gemacht.
|
Funktioniert bei mir auch nicht. Freebasic stürtzt dann ab. |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
|
Nach oben |
|
 |
|