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.
81 lines
3.8 KiB
C
81 lines
3.8 KiB
C
//
|
|
// G A M E.O.N.E - LOW LEVEL LIB V1.0
|
|
// Copyright (C) 2001 LEVEL ONE ENTERTAINMENT,
|
|
// Licensed under the terms of LGPL.
|
|
//:---------------------------------------------------------------------------
|
|
//:Description
|
|
//
|
|
// LLGFX-BLITTER Funktionen
|
|
//
|
|
// SourceRect: Falls die SrcGrafik Frames besitzt, gibt rect die Framenummer ab #0 an
|
|
// ansonsten einen Zeiger auf ein SrcRect übergeben.
|
|
// Frames werden mit llgfx_SetFrameCount() gesetzt.
|
|
//:---------------------------------------------------------------------------
|
|
|
|
#if !defined(LLGFX_BLIT_INCLUDED)
|
|
#define LLGFX_BLIT_INCLUDED
|
|
|
|
/*
|
|
* Blit FLAGS
|
|
*/
|
|
#define BLIT_COPY (0) // Plain copy
|
|
#define BLIT_SRC_CKEY (1<<0) // Blit ausser Pixel die SrcColorkey entsprechen
|
|
#define BLIT_SRC_INVCKEY (1<<1) // Blitet nur Pixel die SrcColorkey entsprechen
|
|
#define BLIT_DST_CKEY (1<<2) // Ziel überschreiben bis auf Zielpixel die Ziel-Colorkey entsprechen
|
|
#define BLIT_DST_INVCKEY (1<<3) // Ziel überschreiben nur auf Zielpixel die Ziel-Colorkey entsprechen
|
|
|
|
#define BLIT_SRC_ALPHA (1<<4) // Blendet Pixel über Ziel mit SRC Maske als Alphachannel
|
|
#define BLIT_DST_ALPHA (1<<5) // Blendet Pixel über Ziel mit DST Maske als Alphachannel
|
|
#define BLIT_SRC_INVALPHA (1<<6) // Wie SRC_ALPHA aber mit invertierten Alphachannel
|
|
#define BLIT_DST_INVALPHA (1<<7) // Wie DST_ALPHA aber mit invertierten Alphachannel
|
|
|
|
|
|
#define BLIT_RASTER (1<<8) // 50% copy "*.*.*"
|
|
#define BLIT_SCANLINES (1<<9) // jede 2te zeile wird ausgelassen
|
|
#define BLIT_RANDOM (1<<10) // Rauschen, pixels per Zufall ausmaskiert
|
|
|
|
#define BLIT_FXBLEND (1<<11) // Blendet Pixel über Ziel mit fixem Alphawert, in llgfx_sBLITFX.fixalpha angeben
|
|
#define BLIT_FXADD (1<<12) // Addiert SrcGfx multipliziert mit Alphawert 0.0f - 1.0f
|
|
#define BLIT_FXSUB (1<<13) // Subtrahiert SrcGfx multipliziert mit Alphawert 0.0f - 1.0f
|
|
#define BLIT_FXMUL (1<<14) // Multipliziert SrcGfx multipliziert mit Alphawert 0.0f - 1.0f
|
|
#define BLIT_FXINVMUL (1<<15) // Multipliziert Inv SrcGfx multipliziert mit Alphawert 0.0f - 1.0f
|
|
#define BLIT_FXCOLOR (1<<16) // Color Overlay mit Alphawert 0.0f - 1.0f
|
|
#define BLIT_FXDIFF (1<<17) // Difference Src/Dst, Ergebnis multipliziert mit Alphawert 0.0f - 1.0f
|
|
#define BLIT_FXDARKEN (1<<18) // Min von Src und Dst multipliziert mit Alphawret 0.0f - 1.0f
|
|
#define BLIT_FXLIGHTEN (1<<19) // Max von Src und Dst multipliziert mit Alphawret 0.0f - 1.0f
|
|
|
|
#define BLIT_SPRITE (1<<20) // Blittet mit Kollisionserkennung
|
|
#define BLIT_SKEW (1<<21) // Horizontal/Vertikal Verziehen
|
|
#define BLIT_FILL (1<<22) // Verziehen nach einer Bumpmap
|
|
#define BLIT_TILE (1<<23) // Tileblitter
|
|
#define BLIT_X2 (1<<24) // Blittet mit Kollisionserkennung
|
|
|
|
#define BLIT_MASK (1<<25) // Src und Ziel betrifft Mask Daten
|
|
#define BLIT_STRETCH (1<<26) // Stretchfactor in llgfx_sBLITFX.scale angeben
|
|
#define BLIT_ROTATE (1<<27) // Grad 0-360 in llgfx_sBLITFX.angle angeben
|
|
#define BLIT_MIRROR_X (1<<28) // SrcGfx wird horizontal gespiegelt
|
|
#define BLIT_MIRROR_Y (1<<29) // SrcGfx wird vertikal gespiegelt
|
|
#define BLIT_SRC_CENTERED (1<<30) // um den Mittelpunkt der Sourcegrafik versetzt.
|
|
#define BLIT_DST_CENTERED (1<<31) // SrcGfx wird genau in die Mitte der DstGrafik gesetzt. X/Y ist zusätzlicher Versatz
|
|
|
|
|
|
typedef struct {
|
|
float angle_z; // 0-360 degrees
|
|
float angle_x;
|
|
float angle_y;
|
|
float scale_x; // 0.0f - x.f ( 1.0f = 1:1 copy )
|
|
float scale_y; // 0.0f - x.f ( 1.0f = 1:1 copy )
|
|
float fixalpha; // 0.0f(transparent) - 1.0f(opaque)
|
|
float sine; // rotation sin value by angle
|
|
float cosine; // rotation cosine value by angle
|
|
TxU32 color1; // Farbwert
|
|
TxU32 color2; // Farbwert
|
|
TxU32 color3; // Farbwert
|
|
TxU32 color4; // Farbwert
|
|
} llgfx_sBLITFX;
|
|
|
|
typedef llgfx_sBLITFX s_blitfx; //
|
|
|
|
|
|
#endif // LLGFX_BLIT_INCLUDED
|