GLBasic Benutzerhandbuch

Main sections

PRESCALER

PRESCALER screenx%, screeny%



Dieser Befehl ermöglicht es, alle Grafikausgaben so zu skalieren, als ob der Ausgabebildschirm die Abmessungen screenx% X screeny% Pixel hätte. Das erleichtert ein Portieren von Programmen für Handhelds auf z.B. Android und iOS.
Die Skalierung geschieht in den Skalierfaktoren: 1, 1.5, 2,3,4,8,10 und alle ganzzahligen Teilungen darüber.
Die Skalierung reduziert nicht auf einen Faktor < 1.0.
Das Bild wird anschließend zentriert. Der bestehende Rahmen kann mit CLEARSCREEN gefärbt werden. Der Befehl steht nur unter OpenGL-basierten Platformen zur Verfügung.

ACHTUNG:
Folgende Befehle funktionieren derzeit NICHT mit dem PRESCALER:
LOADBMP
SAVEBMP
GRABSPRITE

SYSTEMPOINTER TRUE

LOCAL pix%[]
DIMDATA pix%[], 0xff00ffff, 0xff00ff00, 0xff0000ff, 0xffff0000
MEM2SPRITE(pix[], 0, 2,2)

PRESCALER 320,240 // GRABSRITE will not work in scaled mode!!
SMOOTHSHADING FALSE


CREATESCREEN 4,4,64,64
USESCREEN 4
DRAWRECT 0,7,64,10,RGB(0,255,128)
PRINT "Screen#4", 0,8
USESCREEN -1


LOCAL scx,scy
GETSCREENSIZE scx,scy
WHILE TRUE

    VIEWPORT 0,0,0,0

    LOCAL x,y,b1,b2
    MOUSESTATE x,y,b1,b2

    DRAWRECT 0,0,scx,scy, RGB(0,0,64)

    DRAWRECT 0,y,scx,1,0xffffff
    DRAWRECT x,0,1,scy,0xffffff

    STRETCHSPRITE 0,x,y, 16, 16
    PRINT "P",x,y

    VIEWPORT 100,100,64,64
    DRAWRECT -999,-999,2222,2222,RGB(0,0,128)
    PRINT "Viewport", 0,0
    VIEWPORT 0,0,0,0


    PRINT scx+"/"+scy, 0,0
    PRINT x+", "+y, 0,32

    DRAWSPRITE 4,100,164

    SHOWSCREEN
    HIBERNATE
WEND

See also...