[GUI]Schrift wird falsch/defekt angezeigt

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

klin

Betreff: [GUI]Schrift wird falsch/defekt angezeigt

BeitragDi, Mai 25, 2010 4:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich bin derzeit an einem Projekt dran. Dazu brauchte ich 2 Fenstern mit jeweils einem Canvas.
Bei dem ersten Fenster mit Canvas wurde die Schrift normal angezeigt. Jedoch sobald ich das zweite Fenster mit Canvas erstellte, wurde die Schift bei dem zweiten Canvas total kapput angezeigt (Also nur Blöcke).
Ich habe mal den Bsp. von der Help genommen und das Fenster dupliziert (Weil mein Quelltext ein wenig größer ist Wink ). Aber das Resultat bleibt gleich:

BlitzMax: [AUSKLAPPEN]
' createcanvas.bmx

Framework BRL.Max2D
Import MaxGui.Drivers
Import BRL.pngloader
Import BRL.Timer
Import BRL.EventQueue
Import BRL.Retro
Import BRL.Graphics
Import BRL.freetypefont
Import BRL.GLMax2D

Strict
SetGraphicsDriver GLMax2DDriver()

Local Font:TImageFont

Global GAME_WIDTH=320
Global GAME_HEIGHT=240


Local wx=(ClientWidth(Desktop())-GAME_WIDTH)/2
Local wy=(ClientHeight(Desktop())-GAME_HEIGHT)/2

Local window:TGadget=CreateWindow("My Canvas",wx,wy,GAME_WIDTH,GAME_HEIGHT,Null,WINDOW_TITLEBAR|WINDOW_CLIENTCOORDS)
Local canvas:TGadget=CreateCanvas(0,0,320,240,window)


Local window2:TGadget=CreateWindow("My Canvas2",wx+100,wy+100,GAME_WIDTH,GAME_HEIGHT,Null,WINDOW_TITLEBAR|WINDOW_CLIENTCOORDS)
Local canvas2:TGadget=CreateCanvas(0,0,320,240,window2)


Font=LoadImageFont(getenv_("WINDIR")+"/Fonts/Arial.ttf",12)

CreateTimer 60

While WaitEvent()
Select EventID()
Case EVENT_TIMERTICK
RedrawGadget canvas

Case EVENT_GADGETPAINT
SetGraphics CanvasGraphics(canvas)
SetImageFont Font
DrawText "Test",0,0
Flip

SetGraphics CanvasGraphics(canvas2)
If Font=Null Then Font=LoadImageFont(getenv_("WINDIR")+"/Fonts/Arial.ttf",12)
SetImageFont Font
DrawText "Test",0,0
Flip


Case EVENT_MOUSEMOVE
Print "MOVE!"

Case EVENT_WINDOWCLOSE
FreeGadget canvas
End

Case EVENT_APPTERMINATE
End
End Select
Wend

Man kann auch die Font weglassen. Trotzdem bleibt das Problem. Wenn ich sogar bei dem SetGraphics statt zuerst canvas1 dann canvas2 mache, ist es umgekehrt (also statt bei canvas2, ist nun bei canvas1 die Schrift kapput).

Habe ich da irgendwo einen Fehler? Oder ist das ein BMAX Bug?
Bitte um Rat :>

THX
MFG
Klin

Thunder

BeitragDi, Mai 25, 2010 11:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, bei mir liegt es am Treiber. Importier Mal BRL.d3d9max2d und setze statt GLMax2DDriver() den D3D9Max2DDriver(). So hat es bei mir funktioniert.

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

klin

BeitragDi, Mai 25, 2010 13:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
Ich habe es mal ausprobiert und in der Tat geht es mit DirectX. Aber wieso klappt es dann nicht bei OpenGL? Weil ich wollte es eigentlich auch noch für Linux verwenden. Und für gewöhnlich passt DX + Linux nicht gut zusammen Wink

THX
MFG
Klin

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group