You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
4.4 KiB
HTML

<!menue>
<!h2a=Blitter test frameloop,Blitter Frameloop,blittertestfrmloop>
<WT>DST ist der Bezeichner für die Zielgrafik. Zielgrafik mit der <wT>llgfx_id <wD>0 ist immer der Backbuffer. Als Ziel ist jeder Grafikbuffer möglich.
<wH>CLIPPER ist immer aktiviert. <wT>SRC <wT>DST Grafiken können beliebige Dimensionen haben, der Blitter blittet nur in gültige Bereiche. Das gilt auch für <wF>Stretch blits und <wF>Rotate blits.
Alle Blitter Demofunktionen verwenden diesen Frameloop:
<!rtf=blitdemo_frameloop.rtf>
/*-------*/
<!h2a=BLIT_DST_CENTERED,Blittet SRC zentriert nach DST,blitdstcentered>
Bei <wD>BLIT_DST_CENTERED ignoriert die parameter x,y und setzt die <wT>SRC Grafik immer zentriert über die <wT>DST Grafik. Dieser <wV>blitflag kann mit jedem anderen blitflag kombiniert werden.
<!img=blitdemo_000.jpg>
<!rtf=blitdemo_000.rtf>
/**/
<!h2a=BLIT_SRC_CKEY,Blittet nur SRC Pixel die nicht dem gesetzten colorkey Farbwert entsprechen,blitdsrcckey>
<!img=blitdemo_001.jpg>
<!rtf=blitdemo_001.rtf>
/**/
<!h2a=BLIT_SRC_INVCKEY,Blittet nur SRC Pixel die dem colorkey Farbwert entsprechen,blitdsrcinvckey>
<!img=blitdemo_002.jpg>
<!rtf=blitdemo_002.rtf>
/**/
<!h2a=BLIT_FXBLEND,Überblended SRC auf DST mit beliebigem Transparentwert,blitdfxblend>
<!img=blitdemo_003.jpg>
<!rtf=blitdemo_003.rtf>
/**/
<!h2a=BLIT_SRC_ALPHA,Überblended SRC auf DST mit SRC Alphachannel,blitdsrcalpha>
Der SRC Alphachannel wird automatisch geladen wenn es sich um ein PNG32 (<wS>oder <wS>TGA32*) Bild handelt. Wenn der Alphachannel nicht automatisch beim Grafikfile dabei ist kann man durch blitten mit dem blitflag BLIT_MASK direkte den Alphachannel bearbeiten. In der Regel sollte der Alphachannel bereits beim Grafik file inkludiert sein. Das Tool AsinDesigner zeigt an ob eine Maske (=sprich Alphachannel) vorhanden ist oder nicht. Wenn der Alphakanal nur "schwarz" = binär 0 ist, dann wird auch nichts dargestellt.
0x00 im Alphachannel bewirkt das das Pixel 100% Transparent ist, ein 0xFF im Alphachannel bewirkt das das Pixel zu 0% Transparent ist. Bei der Kontrolle im Asindesigner kann man gut sehen was von der Grafik genau geblittet werden wird (weisse und graue Stellen).
<!img=blitdemo_004.jpg>
<!rtf=blitdemo_004.rtf>
/**/
<!h2a=BLIT_SRC_INVALPHA,Überblended SRC auf DST mit Inversen SRC Alphachannel,blitdsrcinvalpha>
Siehe SRC_ALPHA. Der Alphachannel wird beim blitten invertiert.
<!img=blitdemo_005.jpg>
<!rtf=blitdemo_005.rtf>
/**/
<!h2a=BLIT_FXADD,Addiert SRC auf DST blitfx.fixalpha als Effektstärke,blitdfxadd>
<!img=blitdemo_006.jpg>
<!rtf=blitdemo_006.rtf>
/**/
<!img=blitdemo_007.jpg>
<!h2a=BLIT_FXSUB,Subtrahiert SRC von DST blitfx.fixalpha als Effekts,blitdfxsub>
<!rtf=blitdemo_007.rtf>
/**/
<!h2a=BLIT_FXDARKEN,Kombiniert die dunkelsten Pixel von SRC und DST blitfx.fixalpha als Effektstärke,blitdfxdarken>
<!img=blitdemo_008.jpg>
<!rtf=blitdemo_008.rtf>
/**/
<!h2a=BLIT_FXLIGHTEN,Kombiniert die hellsten Pixel von SRC und DST blitfx.fixalpha als Effektstärke,blitdfxlighten>
<!img=blitdemo_009.jpg>
<!rtf=blitdemo_009.rtf>
/**/
<!h2a=BLIT_FXMUL,Multipliziert SRC Pixel auf DST blitfx.fixalpha als Effektstärke,blitdfxmul>
<!img=blitdemo_010.jpg>
<!rtf=blitdemo_010.rtf>
/**/
<!h2a=BLIT_FXINVMUL,Multipliziert Inverse SRC Pixel auf DST blitfx.fixalpha als Effektstärke,blitdfxinvmul>
<!img=blitdemo_011.jpg>
<!rtf=blitdemo_011.rtf>
/**/
<!h2a=BLIT_FXDIFF,Blittet Differenz von SRC und DST blitfx.fixalpha als Effektstärke,blitdfxdiff>
<!img=blitdemo_012.jpg>
<!rtf=blitdemo_012.rtf>
/**/
<!h2a=BLIT_FXCOLOR,Farbüberlagerung auf SRC und blit auf DST blitfx.fixalpha als Effektstärke,blitdfxcolor>
<!img=blitdemo_013.jpg>
<!rtf=blitdemo_013.rtf>
/**/
<!h2a=BLIT_FXSTRETCH,Skaliert X/Y Achse von SRC,blitdfxstretch>
<!img=blitdemo_014.jpg>
<!rtf=blitdemo_014.rtf>
/**/
<!h2a=BLIT_FXROTATE,Rotiert SRC,blitdfxrotate>
Beim Rotieren muss man darauf achten wo der Haltepunkt der Grafik ist. Der Haltepunkt ist normalerweise 0:0, also die linke obere Ecke.
Der BlitFlag BLIT_SRC_CENTERED, Zentriert den Blit rund um die Zielkoordinaten. Wenn man die Grafik mit BLIT_ROTATE dreht und noch BLIT_SRC_CENTERED verwendet, dann dreht sich das Sprite quasi um den eigenen Mittelpunkt.
Den Haltepunkt kann man beliebig verändern mit der Funktioner <wF>llgfx_SetOrigion(gfxid,xoffset,yoffset).
Damit kann man die Drehung beliebig steuern. x/y-offset von SetOrigin kommen auch beim flag BLIT_SRC_CENTERED zum tragen. Der Haltepunkt ist dann relativ zum Mittelpunkt der Grafik duch xyoffset verschoben.
<!img=blitdemo_015.jpg>
<!rtf=blitdemo_015.rtf>