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:

[Win/Linux] Erweiterte GFX-Ausgabe

 
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: 01.05.2010, 23:38    Titel: [Win/Linux] Erweiterte GFX-Ausgabe Antworten mit Zitat

Diese Bibliothek soll die übliche GFX-Grafikausgabe mithilfe der SDL-Bibliothek erweitern.

Damit ist möglich:

- Ein zweites Grafikfenster (SDL-Fenster) zusätzlich zum normalen GFX-Fenster zu erstellen und zu benutzen.
- Tastatur&Maus-Informationen des SDL-Fensters analog zu den üblichen GFX-Befehlen auslesen und verarbeiten.
- normale GFX-Grafikpuffer im SDL-Fenster darstellen.
- Die Größe des normalen GFX-Fensters ist zur Programlaufzeit vom Benutzer nicht änderbar;
Mit dem SDL-Fenster ist das nun möglich.

Das einzige was man UNTER WINDOWS noch braucht, ist die SDL.DLL !
( http://www.libsdl.org/release/SDL-1.2.14-win32.zip )
Unter Linux braucht man zum entwickeln das developer packet von SDL der jeweiligen Linux-Distro. (Im packetmanager einfach mal nach "sdl" und "dev" suchen und installieren)

GFX2SDL.bi:
http://www.freebasic-portal.de/porticula/gfx2sdl-bi-1089.html

Beispiel.bas:
http://www.freebasic-portal.de/porticula/beispiel-bi-1090.html


Leider fehlen noch ein paar "Kleinigkeiten", die aber meistens im Produktiveinsatz wenig stören sollten)

Das störendste ist, das der SDL.GetMouse(...) Befehl keine Maus-Scrollrad-Informationen ausließt.
Vielleicht weiss da einer mehr drüber .. ich würd mich sehr freuen, wenn mir da einer weiterhelfen könnte!

Ich versuche alle Befehle im SDL-Namensraum genau analog zu den normalen GFX-Befehlen zu halten.

So gibt es ein SDL.Screen(...), SDL.ScreenRes(...), SDL.GetMouse(...), SDL.Inkey(...)

Die Parametrierung dieser Befehle soll auch möglichst genau dem GFX-Original entsprechen. Allerdings, manchmal mit kleinen Erweiterungen. Und im Falle von OpenGL auf verzicht der OpenGL-Erweiterungen im SDL-Fenster.

Schaut euch am besten Beispiel.bas an. Hab da zwar nichts kommentiert, aber eigentlich ist es ja recht einfach gehalten.

Gruß Chris


Zuletzt bearbeitet von OneCypher am 16.05.2010, 10:27, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 996

BeitragVerfasst am: 02.05.2010, 11:21    Titel: Antworten mit Zitat

Das sieht schon gut aus. Ich hab mich ja an sowas per WinAPI gesetzt, habe es aber aufgegeben, weil ich die Einschränkung auf Win nicht haben wollte.

Das mit dem Namensraum ist auch gut, nur solltest du Befehle wie Circle mit einschließen und nicht nur die fbgfx dazu verwenden. Versuch am Besten die fbgfx unnötig zu machen, eine threadsichere Grafiklib wäre echt gut.

Dazu müsste man dann halt alle Befehle möglichst eins zu eins nachbauen und threadsafe machen (dazu gehört auch Sleep usw).

Du solltest eventuell noch im Startpost eine Quelle für die SDL libs angeben.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 02.05.2010, 22:24    Titel: Antworten mit Zitat

@MOD: Ok, hab die SDL-Bibliotheken im Hauptpost verlinkt!

Ich weiss nicht obs gut ist, die "normalen" GFX-Befehle nachzuprogrammieren. Das machen bzw versuchen eh schon viel zu viele andere Grafik-Libs auch.

Was ich möchte ist, Grafikpuffer im SDL-fenster darstellen und dabei dir vorzüge von SDL ausnutzen. (Vorteile wie z.B. Größenänderbare Fenster)

Wenn jemand Thread-sichere Grafikbefehle programmieren möchte, oder programmiert hat, dann kann er sie genauso gut auf den Grafikpuffer anwenden der vom SDL-Fenster dargestellt wird. Das muss nicht zwangsläufig mit dieser SDL-bibliothek zu tun haben.

Einen kompletten grafik-befehlssatz wollte ich ja gar nicht zum ziel machenl. Ich wollte nur eine Erweiterung für die übliche GFX-Ausgabe per SDL.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
funkeld
gesperrt


Anmeldungsdatum: 10.10.2009
Beiträge: 179

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

Gut gelungen , der 2. Screen.

Kannst du die "bi" noch ein wenig abspecken um den 2. Screen zu bekommen?

Die Grafikbefehle kann man schön über den Buffer realisieren.
Da braucht man das Rad nicht neu erfinden.

Gruss
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 14.05.2010, 23:59    Titel: Antworten mit Zitat

@funkfeld: Danke für dein Lob lächeln .. was meinst du genau mit "abspecken um den 2. Screen zu bekommen" ?

Ich mein, man muss die .bi inkludieren, den screen aufrufen, nen puffer oder pointer vorbereiten und das wars..
Oder man benutzt den internen Puffer-Zeiger der in der SDL-Namensumgebung dafür vorgesehen ist... Also ich glaub, man kann da verschiedene Lösungswege beschreiten die alle ihre vor und nachteile haben.. Aber du darfst dir natürlich gerne die .bi-datei nehmen und sie nach deinen wünschen anpassen und hier wieder posten lächeln .. würd mich sogar freuen!!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
funkeld
gesperrt


Anmeldungsdatum: 10.10.2009
Beiträge: 179

BeitragVerfasst am: 15.05.2010, 08:12    Titel: Antworten mit Zitat

Ich kenne auf Grund meiner wenigen kenntnisse über Feebasic den Weg dort nicht, ich finde keinen roten Faden mit der Copiererei der Screens untereinander.

Darum die Frage, ob es einfacher(abgespeckter) geht.

Gruss
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 16.05.2010, 10:29    Titel: Antworten mit Zitat

@funkfeld: Ich kann dir grade nicht so richtig folgen.. Aber ich lade bald eine kommentierte und etwas aufgeräumtere version der .BI-Datei hoch. Die Ist zwar dann nicht abgespeckt, weil man leider jede Funktion, jeden Mutex und jede Condition braucht, aber vielleicht hilfts ja beim verstehen...
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