Mehrere Grafikfenster

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Der Eisvogel

Betreff: Mehrere Grafikfenster

BeitragMo, Mai 31, 2010 13:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo
Ich spiele seit 2 Tagen mit verschiedenen Grafikfenstern. Es gibt ja neben dem Befehler "Graphics" auch noch die Befehle CreateGraphics, SetGraphics, CloseGraphics, ...
Jetzt habe ich mir gedacht, OK, jetzt kann ich mir mehrere Fenster erstellen und dann nacheinandern in alle rein malen.
Folgender Code sollte das Bewerkstelligen:

BlitzMax: [AUSKLAPPEN]
SuperStrict

EnablePolledInput

Global a:TGraphics = CreateGraphics(320, 240, 0, 60, 0)
Global b:TGraphics = CreateGraphics(640, 480, 0, 60, 0)
Global c:TGraphics = CreateGraphics(800, 600, 0, 60, 0)

Local timer:TTimer = CreateTimer(60)

Local x:Int = 50

Repeat
WaitTimer(timer)

x:+KeyDown(KEY_RIGHT) * 3 - KeyDown(KEY_LEFT) * 3

SetGraphics a
Cls
DrawText GraphicsWidth() + ", " + GraphicsHeight(), 10, 10
DrawRect x, x, 100, 100
Flip 0

SetGraphics b
Cls
DrawText GraphicsWidth() + ", " + GraphicsHeight(), 10, 10
DrawRect x, x, 100, 100
Flip 0

SetGraphics c
Cls
DrawText GraphicsWidth() + ", " + GraphicsHeight(), 10, 10
DrawRect x, x, 100, 100
Flip 0
Until AppTerminate()


Doch wer diesen Code ausführt, wird schnelle merken das da etwas nicht stimmen kann. Es werden 3 unterschiedliche große Fenster erstellt. Und in jedes wird das gleiche Rechteck an der selben Position gemalt. Bzw. sollte gemalt werden. Denn es wird immer das Koordinatensystem des als erstes erstellten Fensters übernommen. Hier: 320,240. In den beiden anderen Fenstern bekomme ihc also größere Rechtecke zu sehen, die sich auch schneller bewegen. Ich habe mir um das Problem zu beiseitigen den Code von BRL.Graphics angeguckt. Allerdings wurde ich daraus nicht schlau. Beim erstellen einen Grafikfensters ist mir nichts ungewöhnliches aufgefallen, und bei SetGraphics werden die Fensterinformationen eigentlich auch geladen. Das heißt, das das Problem bei BRL.Max2D liegen muss, oder? Nun gut, den Code habe ich mir auch angeschaut, aber aus dem wurde ich überhauptnicht schlau.
Kurz: Ich weis nicht wie ich diese Problem beiseitigen soll.

Gibt es einen Möglichkeit, das jedes Fenster mit seinem eigenen Koordinatensystem arbeitet? Oder ist es noch nicht mal so gedacht, dass mehrere Fenster erstellt werden können? Das wäre nämlich echt ein krasses Feature, wenn man mehrere Fenster erstellen könnte. Das würde mir sehr helfen.

MfG
Der Eisvogel
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.
 

Macintosh

BeitragMo, Mai 31, 2010 15:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Also bei mirfahren die alle gleichscnell und es ist alles so wies sol. (auf mac).
Allerdigns wir der Text nicht richtig angezeigt, da sind bei mir weiße rechtecke dazwischen, stat zalen.
sind bei mir auch alle gleichgroß, die rechtecke.

Der Eisvogel

BeitragMo, Mai 31, 2010 15:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Mh, interessant. Bei mir sieht das ganze so aus: https://www.blitzforum.de/upload/file.php?id=8670
Aber das ist echt lustig, das es auch noch unterschiedliche Fehler auf unterschiedlichen System sind. Ist zwar nichts komisches, aber trotzdem lusitg.
Könntest du vielleicht mal ein Bild bei dir machen und es ebenfalls hochladen?
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

Artemis

BeitragMo, Mai 31, 2010 16:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab die gleichen Symptome wie Macintosch. Ich bin unterwegs auf einem Ubuntu Linux 9.10 64bit.

Thunder

BeitragMo, Mai 31, 2010 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Das liegt doch auf der Hand (ich hab es außerdem gerade getestet): Der neue Direct3D9-Treiber ist Schuld! Mit D3D7Max2DDriver geht es problemlos und GLMax2DDriver hat wieder Probleme mit der Schrift, aber bewegt wird alles richtig.


mfg Thunder
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit

das wurgel

BeitragMo, Mai 31, 2010 16:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei mir sieht die Schrift auch so verkrutzelt aus:

user posted image


Wenn ich nach jedem SetGraphics ein SetVirtualResolution 320, 240 schreibe sieht es aus wie bei Morgenstern, ohne verkrutzelte Schfrift.

@ Eisvogel: Mach mal bei dir nach jedem SetGraphics ein SetVirtualResolution mit der Auflösung des aktuellen Graphicsobjekts. Mal sehen ob es dann so aus sieht wie bei uns.

System: windows 7 64bit, geforce gt 240m

edit
ich meinte natürlich eisvogel, nicht morgenstern^^
  • Zuletzt bearbeitet von das wurgel am Di, Jun 01, 2010 14:36, insgesamt einmal bearbeitet

Der Eisvogel

BeitragMo, Mai 31, 2010 17:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Das SetVirutalResolution hat bei mir keine Auswirkung hat bei mir keine Auswirkung.
Aber Thunder hat recht. Aber ich verstehe nicht so ganz, warum das auf der Hand liegen soll. Für mich ist es komisch, das ein zuvor implementiertes Feature durch ein Update ruiniert wird.
Lohnt es sich einen Bug-report zu machen? Oder muss ich jetzt immer mit dem D3D7 Treiber arbeiten?

MfG
Der Eisvogel
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

Thunder

BeitragMo, Mai 31, 2010 17:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich meinte was anderes. Wenn es bei dir nicht geht (Windowsnutzer -> Direct3D9) und bei den Nutzern von MacOS und Linux (OpenGL) schon, dann ist das auf-der-Hand-liegend was der Verursacher ist (habs dann noch schnell getestet).
Ob du jetzt einen Bug-Report machen musst bin ich mir nicht sicher.

mfg Thunder
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit

Der Eisvogel

BeitragMo, Mai 31, 2010 17:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja bei OS X ist ja auch ein Fehler, nur ein anderer halt. xD. Aber gut, jetzt ist mir das einleuchtend. Ich denke nie an diese Treiber-Sache.
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.
 

klepto2

BeitragDi, Jun 01, 2010 10:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Für den OpenGL treiber gibt es einen schnellen Fix den ihr mal ausprobieren könnt:

Code: [AUSKLAPPEN]

SetGraphicsDriver GLMax2DDriver()
GLShareContexts()


einfach am Anfang einfügen.
Matrix Screensaver
Console Modul für BlitzMax
KLPacker Modul für BlitzMax

HomePage : http://www.brsoftware.de.vu

Der Eisvogel

BeitragDi, Jun 01, 2010 10:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Cool das geht. Gibt es sowas auch für DX?
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

Thunder

BeitragDi, Jun 01, 2010 12:40
Antworten mit Zitat
Benutzer-Profile anzeigen
@klepto2: Ich bekomme "Unable to calculate tex size"
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group