PicoVGA  1.0-cmake
VGA/TV display on Raspberry Pico
vga_layer.h File Reference

File Description

VGA layers.

Author
Miroslav Nemecek Panda.nosp@m.38@s.nosp@m.eznam.nosp@m..cz
See also
Overlay Layers
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  sLayerProg
 
struct  sLayerMode
 
struct  sLayer
 Layer screen descriptor (on change update SLAYER_* in define.h) More...
 
struct  sSprite
 Sprite (on change update SSPRITE_* in define.h) More...
 

Macros

#define VGADARK(num, col)   (((u32)(vga_offset_dark+BASE_OFFSET)<<27) | ((u32)(num)<<8) | (u32)(col))
 
#define VGACMD(jmp, num)   (((u32)(jmp)<<27) | (u32)(num))
 
#define VGAKEY(delay, num, col)   (((u32)((delay)+1)<<19) | ((u32)(col)<<11) | (u32)((num)-1))
 
#define VGAMONO(delay, num, col)   (((u32)((delay)+0)<<20) | ((u32)(col)<<12) | ((u32)((num)-1)<<1) | B0)
 
#define VGACOLOR(delay, num)   (((u32)((delay)+2)<<20) | ((u32)0xff<<12) | ((u32)((num)-1)<<1) | 0)
 
#define VGABLACK(delay, num)   (((u32)((delay)+3)<<16) | (u32)((num)-1))
 
#define VGAWHITE(delay, num)   (((u32)((delay)+3)<<16) | (u32)((num)-1))
 
#define VGARLE(delay)   ((delay)+1)
 
#define BYTESWAP(n)   ((((n)&0xff)<<24)|(((n)&0xff00)<<8)|(((n)&0xff0000)>>8)|(((n)&0xff000000)>>24))
 
#define ALIGN4(x)   ((x) & ~3)
 

Functions

void LayerOn (u8 inx)
 Set overlapped layer 1..3 ON. More...
 
void LayerOff (u8 inx)
 Set overlapped layer 1..3 OFF. More...
 
void LayerSetX (u8 inx, s16 x)
 Set coordinate X of overlapped layer. More...
 
void LayerSetY (u8 inx, s16 y)
 Set coordinate Y of overlapped layer. More...
 
void LayerSetW (u8 inx, u16 w)
 Set width of image of overlapped layer. More...
 
void LayerSetH (u8 inx, u16 h)
 Set height of image of overlapped layer. More...
 
void LayerSetup (u8 inx, const u8 *img, const sVmode *vmode, u16 w, u16 h, u8 col=0, const void *par=NULL)
 Setup overlapped layer 1..3 (not for sprites or perspective mode) More...
 
void LayerPerspSetup (u8 inx, const u8 *img, const sVmode *vmode, u16 w, u16 h, u8 xbits, u8 ybits, s8 horiz, const int *mat, u8 col=0)
 Setup overlapped layer 1..3 for LAYERMODE_PERSP* modes. More...
 
void LayerSpriteSetup (u8 inx, sSprite **sprite, u16 spritenum, const sVmode *vmode, s16 x, s16 y, u16 w, u16 h, u8 col=0)
 Setup overlapped layer 1..3 for LAYERMODE_SPRITE* and LAYERMODE_FASTSPRITE* modes. More...
 
void SpritePrepLines (const u8 *img, u8 *x0, u8 *w0, u16 w, u16 h, u16 wb, u8 col, Bool fast)
 Prepare array of start and length of lines (detects transparent pixels) More...
 
void SortSprite (sSprite **list, int num)
 Sort fast sprite list by X coordinate. More...
 

Variables

const sLayerProg LayerProg [LAYERPROG_NUM]
 
u8 LayerProgInx
 
sLayerProg CurLayerProg
 
const sLayerMode LayerMode [LAYERMODE_NUM]
 
u8 LayerModeInx [LAYERS]
 
sLayerMode CurLayerMode [LAYERS]
 
u8 LayerMask
 
sLayer LayerScreen [LAYERS]
 Current layer screens.
 
u8 LayerFirstPin [LAYERS_MAX]
 Index of first pin of layer (base layer should stay VGA_GPIO_FIRST)
 
u8 LayerNumPin [LAYERS_MAX]
 Number of pins of overlapped layer (base layer should stay VGA_GPIO_OUTNUM)