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:

mehr als 256 Farben und zu hohe Auflösung

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Tomtitom



Anmeldungsdatum: 20.09.2004
Beiträge: 308

BeitragVerfasst am: 24.06.2005, 15:57    Titel: mehr als 256 Farben und zu hohe Auflösung Antworten mit Zitat

Hallo,
nachdem ich mich jetzt auch mal in FB kundtue, habe ich aber auch einige Fragen:

Also ich will z.B. 16 Bit Farben auf den Bildschirm haben, jetzt habe ich das Problem, dass da scheinbar der Palettenbefehl bei 16 Bit nicht mehr klappt und ich glaube man kann ja trotzdem nur 256 direkt auf dem Bildschirm haben, ich will aber z.B. 1000 Pixel auf dem Bildschirm haben, die alle eine unterschiedliche Farbe haben.

Ein kleines Bsp. verdeutlicht vielleicht mein Problem:
Code:
SCREEN 20,16

FOR i = 0 TO 49
    FOR j = 0 TO 9
        PALETTE j*50+i, i,j*6,0
    NEXT
NEXT

FOR i = 0 TO 499
    LINE (2*i,0)-(2*i+1,100), i, bf
NEXT

SLEEP

Wie man sieht verändert sich nichts.

So jetzt noch ein anderes Problem, wenn ich Programme schreibe, sollen sie ja möglichst auf allen Rechnern gleich aussehen - wenn ich jetzt aber Screen 21 nehme, fehlt immer ein Stückchen des Bildschirms auch bei Vollbild. Nun habe ich Angst, dass das auch bei anderen Rechnern passieren kann, wenn ich screen 20 nehme.
Also gibt es eine Möglichkeit, die Auflösungen doch richtig zu setzen, denn eigentlich kann ich auch 1280x1024 darstellen. Bzw. gibt es eine Möglichkeit rauszukriegen, ob der Screen-Befehl richtig funktioniert? Falls man es mit screeninfo geht, das Bsp. in der Referenz funktioniert nicht.

MfG, Tomtitom
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 24.06.2005, 16:14    Titel: Antworten mit Zitat

Hallo.

Nimm doch irgendeine RGB Funktion, um die Pixel zu färben. Wenn ich mich recht erinnere, gibt es die aus VB bekannte RGB(r%,g%,b%) Funktion auch in FB.
Und mach den Screen doch als Vollbild. Dann wird der auf die gesamte Bildschirmfläche vergrößert.

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 24.06.2005, 17:59    Titel: Antworten mit Zitat

@Sebastian:
Tomtitom hat Folgendes geschrieben:

fehlt immer ein Stückchen des Bildschirms auch bei Vollbild.


Ist das denn bei allen Screens so?

Mir ist sowas auch mal passiert, und ich habe dann einfach am Monitor die
Bildlage geändert...

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Tomtitom



Anmeldungsdatum: 20.09.2004
Beiträge: 308

BeitragVerfasst am: 25.06.2005, 09:40    Titel: Antworten mit Zitat

also das RGB in FB ist nur dazu da um Farbnummern in High/Truecolor auszurechnen, zum Färben kann man es nicht nehmen, wenn ich das richtig verstanden habe.

Das bei SCREEN nicht der ganze Bereich zu sehen ist, ist nur bei SCREEN 21, alle anderen klappen normal.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 25.06.2005, 10:06    Titel: Antworten mit Zitat

Und wie sieht's auf anderen Rechnern aus?

Wenn es dort normal ist, könnte es sein, dass du die Bildlage am Monitor einstellen musst.

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 25.06.2005, 14:49    Titel: Antworten mit Zitat

Hallo.

Ich dachte mir das so:
Code:
PSET (100, 100), RGB(123,123,123)


Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Tomtitom



Anmeldungsdatum: 20.09.2004
Beiträge: 308

BeitragVerfasst am: 25.06.2005, 18:41    Titel: Antworten mit Zitat

ah danke sebi, das klappt.

jb hat Folgendes geschrieben:
Und wie sieht's auf anderen Rechnern aus?

Wenn es dort normal ist, könnte es sein, dass du die Bildlage am Monitor einstellen musst.


Also auf meinem anderen Rechner geht es, vermutlich gibt es eben irgendwie Probleme auf meinem Notebook mit SCREEN 21.
Aber mir geht es auch weniger darum, dass ich auf meinem Rechner SCREEN 21 hinkriege, als dass ich erkennen kann ob bei jemanden die SCREEN-Anweisung richtig geklappt hat.
Es könnte ja genauso gut sein, dass bei jemanden auch SCREEN 20 nicht fehlerfrei läuft und das soll das Programm automatisch erkennen und einen Screen wählen, der läuft.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 25.06.2005, 18:55    Titel: Antworten mit Zitat

Hallo.

Na dann kanns am Notebook liegen. Notebooks können bauweisebedingt auf ihrem TFT oft nur 1024x768 darstellen. Wird die Auflösung größer, fehlt logischerweise was. Kannst du denn unter Anzeigeeigenschaften von Windows eine entsprechend hohe Einstellung fehlerfrei einstellen? Ich vermute, dass es am Laptop bzw. dessen Bildschirms liegt.

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 25.06.2005, 18:57    Titel: Antworten mit Zitat

Sebastian hat Folgendes geschrieben:
Hallo.

Ich dachte mir das so:
Code:
PSET (100, 100), RGB(123,123,123)


Viele Grüße!
Sebastian


Ich ändere die Farben immer so:
Code:

col = &HFFFFFF ' = weiß  &H(rot,gruen,blau) jeweils 2 ziffern für eine Farbe
PSET (2,2),col


Damit kann man sehr viele Farben mischen. Ich probiere damit erade viele Sachen aus. Zum Fehler von screen: http://fb.exp-soft.de/r.php?s=SCREENPTR#1

damit müsste man das erkennen, ob das richtig eingestellt wurde. Ich hoffe, ich konnte dir helfen.

Mfg
Michael
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 25.06.2005, 19:00    Titel: Antworten mit Zitat

Hallo.

Wenn du
Code:
PRINT HEX$(RGB(123,123,123))

machst, sollte man auch &HRRGGBB sehen können.

Man kann aber auch, wenn man gut im Kopf mit HEX-Werten rechnen kann, auch direkt
Code:
PSET (100,100), &HABABAB

schreiben. zwinkern

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Tomtitom



Anmeldungsdatum: 20.09.2004
Beiträge: 308

BeitragVerfasst am: 25.06.2005, 19:42    Titel: Antworten mit Zitat

anfänger hat Folgendes geschrieben:

Ich ändere die Farben immer so:
Code:

col = &HFFFFFF ' = weiß  &H(rot,gruen,blau) jeweils 2 ziffern für eine Farbe
PSET (2,2),col



Nein, so werde ich sicher nicht meine Farben wählen, denn das würde zu lange dauern, wenn ich oft was male, ich mache es ähnlich dem Palette, dass ich am Anfang f(65535) am Anfang mit den Farben belege und als Farbe nehm ich dann immer ein f(x).

Das mit SCREENPTR habe ich auch schon ausprobiert, aber ich habe noch nicht rausgekriegt, wie man damit mein Problem lösen könnte.

Bei meinem Notebook kann ich übrigens Höher als 1024x768 einstellen, nämlich 1280x800 mit den Augen rollen ist ja aber trotzdem zu wenig für Screen 21. Aber in Spielen oder so habe ich auch schon Auflösungenvon über 1280x1024 machen können, aber vielleicht wird das dann alles nur interpoliert. Wäre ja aber schön, wenn man das auch mit FB machen könnte.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mecki
Igel


Anmeldungsdatum: 10.09.2004
Beiträge: 985
Wohnort: Niederbayern

BeitragVerfasst am: 26.06.2005, 10:22    Titel: Antworten mit Zitat

Also ich bezweifle, ob Lillo die GFXlib mit solchen Spielereien abbremsen möchte zwinkern
Ansonsten gäbe es auch noch den Befehl ScreenRes aber ich denke du fährst sowieso besser, wenn du mit 1024x768 arbeitest.. lächeln
_________________
» Yodl.de: So sucht man gestern. verwundert
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
Tomtitom



Anmeldungsdatum: 20.09.2004
Beiträge: 308

BeitragVerfasst am: 26.06.2005, 11:44    Titel: Antworten mit Zitat

hm, also irgendwie versteht ihr mich alle nicht ganz.
Mache ich es jetzt mal klar und deutlich - gibt es jemanden unter euch, der SCREEN 20 nicht fehlerfrei darstellen kann?
Wenn 99% aller Rechner diesen SCREEN ohne Probleme darstellen, dann hat sich das Problem wirklich erledigt und ich werde ihn immer nehmen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
marzec



Anmeldungsdatum: 13.10.2004
Beiträge: 267

BeitragVerfasst am: 26.06.2005, 13:58    Titel: Antworten mit Zitat

wie bereits oben von mehreren leuten angesprochen ist das zu hundert prozent ein graka/monitor problem, dass von fb nicht gelöst werden kann. es liegt also nur an der hardware.

zum thema farben: alle screens > 13 sind "truecolor" modes. d.h. du hast dor t farbtiefen von 16 bis 32-bit. in solchen modi gibt es keine palette, daher funktioniert palette auch nicht. farben in solchen modi werden immer direkt per rgb angegeben. ein 16-bit modus bietet zum beispiel nur ranges von 0-63 für r 0-127 für g und 0-63 für b. ein 24-bit modus bietet dir range 0-255 für r, g und b. 32-bit modi bieten zusätzlich einen alpha kanal mit dem man transparenz erzeugen kann ( im grunde ist es eine gewichtung der rgb values ). r, g und b bieten in diesen modi nach wie vor nur eine range von 0-255. unter der range versteht man dabei die anzahl der abstufung der einzelnen farben. r = 0 bedeutet z.B. kein rot, r = 255 bedeutet volles rot ( in 24, bzw. 32-bit modi ). aus den drei grundfarben r g und b ergibt sich dann die gewünschte farbe ( nur der vollständigkeit halber erwähnt Zunge rausstrecken ).

ein 16-bit modus kann 2 hoch 16 verschiedene farben darstellen ( 64.000 und ein paar zerquetschte ). 24-bit ist analog dazu 2 hoch 24.

warum du einen 64kb großen array für alle farben anlegst ist mir leicht schleierhaft Zunge rausstrecken. wenn du ganz sicher gehen willst das du kompatibel zu allen screenmodes bist ( bis auf die paletten mode, d.h. modes <=13 ) verwende wie oben bereits erwähnt RGB. diese rechnet deine angaben von einer norm range 0 - 255 auf die einzelnen ranges des aktuellen screenmodes um.
_________________
Yagl - yet another gameprogramming library
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Tomtitom



Anmeldungsdatum: 20.09.2004
Beiträge: 308

BeitragVerfasst am: 26.06.2005, 17:25    Titel: Antworten mit Zitat

danke nochmal für deine Ausführungen, aber das Problem mit RGB war ja eigentlich schon vom Tisch.
Was die Auflösung betrifft ist mir auch schon klar geworden, dass es nicht an FB liegt, aber ich wollte ja sowieso nur wissen, wie man feststellt, ob GraKa/Monitor den gegebenen Screen darstellen können. Oder ob es heutzutage noch welche gibt, die nicht 1024x768 nicht darstellen können, weil dann könnte ich das ohne Sorge verwenden.
marzec hat Folgendes geschrieben:
warum du einen 64kb großen array für alle farben anlegst ist mir leicht schleierhaft Zunge rausstrecken.

Wie ich gesagt habe, würde es zu lange dauern, wenn ich bei jedem PSET erst die RGB Werte ausrechne, darum mache ich es einmal mit einen Ritt. Und ich brauche ja auch nicht alle Farben 1024 reichen mir schon, was also nur ein vertretbares KB wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 26.06.2005, 17:39    Titel: Antworten mit Zitat

Die RGB-Funktion ist ein Makro, dass SHL verwendet, und daher relativ schnell Funktioniert. Die Hexadezimale darstellung sollte aber in jedem Fall funktionieren, und da muss gar nichts berechnet werden.

Dass es mit einem Array schneller geht, würde ich auch nicht unterschreiben; jeder ASM-Programmierer weiß, dass Speicherzugriffe zu den zeitaufwändigsten Operationen gehören.

Was die Unterstützten Bildschirmmodi angeht:
Seit Version 0.14b gibt es die Funktion SCREENLIST. In docs/gfxlib.txt ist eine Englische Beschreibung des Befehls, hier ist meine deutsche Übersetzung:
http://dhost.info/siteofkaos/freeBASIC/Referenz.html#SCREENLIST

(kann ein bisschen dauern, bis es geladen ist; 300 KB HTML file dauern bei ISDN schon ein paar Sekunden... In naher Zukunft wird es diese Version der Referenz aber auch bei Mecki geben)
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
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 -> Allgemeine Fragen zu FreeBASIC. 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