Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

FbBuffer nach SDL und zurück

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 02.11.2009, 23:18    Titel: FbBuffer nach SDL und zurück Antworten mit Zitat

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 zwinkern

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 lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
funkeld
gesperrt


Anmeldungsdatum: 10.10.2009
Beiträge: 179

BeitragVerfasst am: 04.11.2009, 09:56    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 04.11.2009, 10:48    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 04.11.2009, 18:47    Titel: Antworten mit Zitat

Statt GDI+ schau dir mal lieber libCairo an.

http://cairographics.org/

http://cairographics.org/OpenGL/
http://cairographics.org/samples/
http://cairographics.org/tutorial/
http://cairographics.org/cookbook/

Funktioniert auch mit SDL zusammen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 04.11.2009, 21:40    Titel: Antworten mit Zitat

Zitat:
Cairo: A Vector Graphics Library
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 04.11.2009, 22:27    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 05.11.2009, 00:48    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
funkeld
gesperrt


Anmeldungsdatum: 10.10.2009
Beiträge: 179

BeitragVerfasst am: 05.11.2009, 10:13    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 06.11.2009, 10:28    Titel: Antworten mit Zitat

@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 traurig ... Kannst es ja mal selbst probieren, vielleicht hab ich ja irgendwo nen fehler gemacht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 06.11.2009, 11:33    Titel: Antworten mit Zitat

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 traurig ... 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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
funkeld
gesperrt


Anmeldungsdatum: 10.10.2009
Beiträge: 179

BeitragVerfasst am: 06.11.2009, 16:10    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
funkeld
gesperrt


Anmeldungsdatum: 10.10.2009
Beiträge: 179

BeitragVerfasst am: 06.11.2009, 16:11    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 06.11.2009, 18:50    Titel: Antworten mit Zitat

http://wiki.delphigl.com/index.php/glReadPixels
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz