|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Tomtitom
Anmeldungsdatum: 20.09.2004 Beiträge: 308
|
Verfasst am: 24.06.2005, 16:57 Titel: mehr als 256 Farben und zu hohe Auflösung |
|
|
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 |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
jb
Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 24.06.2005, 18:59 Titel: |
|
|
@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 |
|
|
Tomtitom
Anmeldungsdatum: 20.09.2004 Beiträge: 308
|
Verfasst am: 25.06.2005, 10:40 Titel: |
|
|
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 |
|
|
jb
Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 25.06.2005, 11:06 Titel: |
|
|
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 |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
Tomtitom
Anmeldungsdatum: 20.09.2004 Beiträge: 308
|
Verfasst am: 25.06.2005, 19:41 Titel: |
|
|
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 |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 25.06.2005, 19:55 Titel: |
|
|
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 |
|
|
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 25.06.2005, 19:57 Titel: |
|
|
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 |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
Tomtitom
Anmeldungsdatum: 20.09.2004 Beiträge: 308
|
Verfasst am: 25.06.2005, 20:42 Titel: |
|
|
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 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 |
|
|
Mecki Igel
Anmeldungsdatum: 10.09.2004 Beiträge: 985 Wohnort: Niederbayern
|
|
Nach oben |
|
|
Tomtitom
Anmeldungsdatum: 20.09.2004 Beiträge: 308
|
Verfasst am: 26.06.2005, 12:44 Titel: |
|
|
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 |
|
|
marzec
Anmeldungsdatum: 13.10.2004 Beiträge: 267
|
Verfasst am: 26.06.2005, 14:58 Titel: |
|
|
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 ).
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 . 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 |
|
|
Tomtitom
Anmeldungsdatum: 20.09.2004 Beiträge: 308
|
Verfasst am: 26.06.2005, 18:25 Titel: |
|
|
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 . |
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 |
|
|
Dusky_Joe
Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 26.06.2005, 18:39 Titel: |
|
|
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 |
|
|
|
|
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.
|
|