PAlib: Bitmap mode, for any screen...

Page principale | Modules | Liste des fichiers | Portée globale | Rechercher

# Bitmap mode, for any screen...

## Macros

#define | PA_Get16bitPixel(screen, x, y) PA_DrawBg[screen][x + (y << 8)]
| Récupérer la couleur d'un pixel, en mode dessin 16 bit
#define | PA_SetDrawSize(screen, draw_size) PA_drawsize[screen] = draw_size;
| Regler la taille du stylo quand on dessine.
#define | PA_Load8bitBitmap(screen, bitmap) DMA_Copy(bitmap, (void*)PA_DrawBg[screen], 256*96, DMA_16NOW);
| Charger une image à l'écran... pour une fond dessinable de 8 bits
#define | PA_Load16bitBitmap(screen, bitmap)
| Charger une image à l'écran... pour une fond dessinable de 16 bits
#define | PA_Clear8bitBg(screen) DMA_Copy(Blank, (void*)PA_DrawBg[screen], 256*96, DMA_16NOW);
| Efface l'écran... pour une fond dessinable de 8 bits
#define | PA_Clear16bitBg(screen) DMA_Copy(Blank, (void*)PA_DrawBg[screen], 256*192, DMA_16NOW)
| Efface l'écran... pour une fond dessinable de 16 bits

## Fonctions

void | PA_Init8bitBg (u8 screen, u8 bg_priority)
| Initialise le mode de dessin 8 bit (avec palette). Il suffit de choisir l'écran et la priorité de ce font (de 0 à 3). Ce fond sera placé sur le fond 3 (le remplacant), et doit etre chargé avant tout autre fond ! Prend environ 3/8 de la VRAM
void | PA_Init16bitBg (u8 screen, u8 bg_priority)

Initialise le mode de dessin 16 bit (sans palettes, couleurs RGB). Il suffit de choisir l'écran et la priorité de ce font (de 0 à 3). Ce fond sera placé sur le fond 3 (le remplacant), et doit etre chargé avant tout autre fond ! Prend environ 3/8 de la VRAM

void | PA_Put8bitPixel (u8 screen, s16 x, s16 y, u8 color)
| Dessine un pixel à l'écran, sur un fond de 8 bits
void | PA_Put2_8bitPixels (u8 screen, s16 x, s16 y, u16 colors)
| Dessine deux pixels à l'écran, sur un fond de 8 bits. Ces pixels sont contigus, et le premier doit avoir une position X pair. Beaucoup plus rapide que de dessiner les 2 pixels séparemment
void | PA_PutDouble8bitPixels (u8 screen, s16 x, s16 y, u8 color1, u8 color2)
| Dessine deux pixels à l'écran, sur un fond de 8 bits. Ces pixels sont contigus, et le premier doit avoir une position X pair. Beaucoup plus rapide que de dessiner les 2 pixels séparemment
void | PA_Put4_8bitPixels (u8 screen, s16 x, s16 y, u32 colors)
| Dessine 4 pixels à l'écran, sur un fond de 8 bits. Ces pixels sont contigus, et le premier doit avoir une position X pair. Façon la plus rapide de dessiner à l'écran
u8 | PA_Get8bitPixel (u8 screen, u8 x, u8 y)
| Récupérer la couleur d'un pixel, en mode dessin 8 bit
void | PA_Put16bitPixel (u8 screen, s16 x, s16 y, u16 color)
| Dessine un pixel à l'écran, sur un fond de 16 bits
void | PA_Draw8bitLine (u8 screen, u16 x1, u16 y1, u16 x2, u16 y2, u8 color)
| Dessiner une ligne en mode dessin... pour le mode dessin 8 bit
void | PA_Draw16bitLine (u8 screen, u16 x1, u16 y1, u16 x2, u16 y2, u16 color)
| Dessiner une ligne en mode dessin... pour le mode dessin 16 bit
void | PA_Draw16bitLineEx (u8 screen, s16 basex, s16 basey, s16 endx, s16 endy, u16 color, s8 size)
| Dessiner une ligne épaisse en mode dessin... pour le mode dessin 16 bit
void | PA_Draw8bitLineEx (u8 screen, s16 basex, s16 basey, s16 endx, s16 endy, u8 color, s8 size)
| Dessiner une ligne épaisse en mode dessin... pour le mode dessin 8 bit
void | PA_Draw16bitRect (u8 screen, s16 basex, s16 basey, s16 endx, s16 endy, u16 color)
| Dessiner rectangle en mode dessin... pour le mode dessin 16 bit
void | PA_8bitDraw (u8 screen, u8 color)

Pour 8 bit : Jolie petite fonction qui dessine à l'écran ! Tout ce qu'il reste à faire, c'est de choisir la couleur. Si le VBL PA n'est pas initialiser, ne pas oublier de rafraichir le Stylet à chaque cycle (et non, pas avec des glacons !). Il suffit d'executer PA_Draw à chaque cycle pour dessiner...

void | PA_16bitDraw (u8 screen, u16 color)

Pour 16 bit : Jolie petite fonction qui dessine à l'écran ! Tout ce qu'il reste à faire, c'est de choisir la couleur. Si le VBL PA n'est pas initialiser, ne pas oublier de rafraichir le Stylet à chaque cycle (et non, pas avec des glacons !). Il suffit d'executer PA_Draw à chaque cycle pour dessiner...

void | PA_LoadJpeg (u8 screen, void *jpeg)
| Charger un jpeg sur un fond de 16 bits... Faut pas oublier de charger ce fond avant !
void | PA_LoadBmpToBuffer (u16 *Buffer, s16 x, s16 y, void *bmp, s16 SWidth)
| Charger un BMP dans un buffer de 16 bit
void | PA_LoadBmpEx (u8 screen, s16 x, s16 y, void *bmp)
| Charger un BMP sur un fond de 16 bits... Faut pas oublier de charger ce fond avant !
void | PA_LoadBmp (u8 screen, void *bmp)
| Charger un BMP sur un fond de 16 bits... Faut pas oublier de charger ce fond avant !
u16 | PA_GetGifWidth (void *gif)
| Récupérer la largeur d'un Gif en pixels
u16 | PA_GetGifHeight (void *gif)
| Récupérer la hauteur d'un Gif en pixels
void | PA_LoadGif (u8 screen, void *gif)
| Charger un Gif sur un fond de 16 bits... Faut pas oublier de charger ce fond avant !
void | PA_LoadGBFSImage (u8 screen, s16 GBFSImage)
| Charger une image depuis GBFS sur l'écran (16 bit). Support le Gif, Jpeg, et BMP
void | PA_LoadGBFSImageToBuffer (void *Buffer, s16 GBFSImage, s16 Width)
u16 | PA_GetBmpWidth (void *bmp)
| Récupérer la largeur d'un BMP en pixels
u16 | PA_GetBmpHeight (void *bmp)
| Récupérer la hauteur d'un BMP en pixels

## Description détaillée

Draw on screen, either a pixel or a line, or anything ! Load a Bitmap, a Jpeg...

## Documentation des macro

#define PA_Clear16bitBg | ( | screen |  | ) | DMA_Copy(Blank, (void*)PA_DrawBg[screen], 256*192, DMA_16NOW)

Efface l'écran... pour une fond dessinable de 16 bits

Paramètres:

  | screen | Choix de l'écran (0 ou 1)

#define PA_Clear8bitBg | ( | screen |  | ) | DMA_Copy(Blank, (void*)PA_DrawBg[screen], 256*96, DMA_16NOW);

Efface l'écran... pour une fond dessinable de 8 bits

Paramètres:

  | screen | Choix de l'écran (0 ou 1)

#define PA_Get16bitPixel | ( | screen,
|  | x,
|  | y |  | ) | PA_DrawBg[screen][x + (y << 8)]

Récupérer la couleur d'un pixel, en mode dessin 16 bit

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | x | Position X. Attention, si X n'est pas compris entre 0 et 255, le résultat ne sera pas celui escompté
  | y | Position Y. Attention, si Y n'est pas compris entre 0 et 191, le résultat ne sera pas celui escompté

#define PA_Load16bitBitmap | ( | screen,
|  | bitmap |  | ) |

Valeur:

    {u32 PA_temp; \
    for (PA_temp = 0; PA_temp < 256*192; PA_temp++)\
    PA_DrawBg[screen][PA_temp] = bitmap[PA_temp] | (1 << 15);}

Charger une image à l'écran... pour une fond dessinable de 16 bits

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | bitmap | Nom du bitmap

#define PA_Load8bitBitmap | ( | screen,
|  | bitmap |  | ) | DMA_Copy(bitmap, (void*)PA_DrawBg[screen], 256*96, DMA_16NOW);

Charger une image à l'écran... pour une fond dessinable de 8 bits

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | bitmap | Nom du bitmap

#define PA_SetDrawSize | ( | screen,
|  | draw_size |  | ) | PA_drawsize[screen] = draw_size;

Regler la taille du stylo quand on dessine.

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | draw_size | Taille...

## Documentation des fonctions

PA_16bitDraw | ( | u8 | screen,
|  | u16 | color
| ) |

Pour 16 bit : Jolie petite fonction qui dessine à l'écran ! Tout ce qu'il reste à faire, c'est de choisir la couleur. Si le VBL PA n'est pas initialiser, ne pas oublier de rafraichir le Stylet à chaque cycle (et non, pas avec des glacons !). Il suffit d'executer PA_Draw à chaque cycle pour dessiner...

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | color | Couleur de 15 bits.On peut utiliser la macro PA_RGB pour entrer les valeurs RGB...

PA_8bitDraw | ( | u8 | screen,
|  | u8 | color
| ) |

Pour 8 bit : Jolie petite fonction qui dessine à l'écran ! Tout ce qu'il reste à faire, c'est de choisir la couleur. Si le VBL PA n'est pas initialiser, ne pas oublier de rafraichir le Stylet à chaque cycle (et non, pas avec des glacons !). Il suffit d'executer PA_Draw à chaque cycle pour dessiner...

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | color | Couleur de 15 bits.On peut utiliser la macro PA_RGB pour entrer les valeurs RGB...

void PA_Draw16bitLine | ( | u8 | screen,
|  | u16 | x1,
|  | u16 | y1,
|  | u16 | x2,
|  | u16 | y2,
|  | u16 | color
| ) |

Dessiner une ligne en mode dessin... pour le mode dessin 16 bit

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | x1 | Position X du premier point. Attention, si X n'est pas compris entre 0 et 255, le résultat ne sera pas celui escompté
  | y1 | Position Y du premier point. Attention, si Y n'est pas compris entre 0 et 191, le résultat ne sera pas celui escompté
  | x2 | Position X du deuxième point. Attention, si X n'est pas compris entre 0 et 255, le résultat ne sera pas celui escompté
  | y2 | Position Y du deuxième point. Attention, si Y n'est pas compris entre 0 et 191, le résultat ne sera pas celui escompté
  | color | Couleur de 15 bits.On peut utiliser la macro PA_RGB pour entrer les valeurs RGB...

void PA_Draw16bitLineEx | ( | u8 | screen,
|  | s16 | basex,
|  | s16 | basey,
|  | s16 | endx,
|  | s16 | endy,
|  | u16 | color,
|  | s8 | size
| ) |

Dessiner une ligne épaisse en mode dessin... pour le mode dessin 16 bit

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | basex | Position X du premier point. Attention, si X n'est pas compris entre 0 et 255, le résultat ne sera pas celui escompté
  | basey | Position Y du premier point. Attention, si Y n'est pas compris entre 0 et 191, le résultat ne sera pas celui escompté
  | endx | Position X du deuxième point. Attention, si X n'est pas compris entre 0 et 255, le résultat ne sera pas celui escompté
  | endy | Position Y du deuxième point. Attention, si Y n'est pas compris entre 0 et 191, le résultat ne sera pas celui escompté
  | color | Couleur de 15 bits.On peut utiliser la macro PA_RGB pour entrer les valeurs RGB...
  | size | Largeur du trait, en pixels

void PA_Draw16bitRect | ( | u8 | screen,
|  | s16 | basex,
|  | s16 | basey,
|  | s16 | endx,
|  | s16 | endy,
|  | u16 | color
| ) |

Dessiner rectangle en mode dessin... pour le mode dessin 16 bit

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | basex | Position X du premier point. Attention, si X n'est pas compris entre 0 et 255, le résultat ne sera pas celui escompté
  | basey | Position Y du premier point. Attention, si Y n'est pas compris entre 0 et 191, le résultat ne sera pas celui escompté
  | endx | Position X du deuxième point. Attention, si X n'est pas compris entre 0 et 255, le résultat ne sera pas celui escompté
  | endy | Position Y du deuxième point. Attention, si Y n'est pas compris entre 0 et 191, le résultat ne sera pas celui escompté
  | color | Couleur de 15 bits.On peut utiliser la macro PA_RGB pour entrer les valeurs RGB...

void PA_Draw8bitLine | ( | u8 | screen,
|  | u16 | x1,
|  | u16 | y1,
|  | u16 | x2,
|  | u16 | y2,
|  | u8 | color
| ) |

Dessiner une ligne en mode dessin... pour le mode dessin 8 bit

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | x1 | Position X du premier point. Attention, si X n'est pas compris entre 0 et 255, le résultat ne sera pas celui escompté
  | y1 | Position Y du premier point. Attention, si Y n'est pas compris entre 0 et 191, le résultat ne sera pas celui escompté
  | x2 | Position X du deuxième point. Attention, si X n'est pas compris entre 0 et 255, le résultat ne sera pas celui escompté
  | y2 | Position Y du deuxième point. Attention, si Y n'est pas compris entre 0 et 191, le résultat ne sera pas celui escompté
  | color | Couleur de la palette du fond (0-255)

void PA_Draw8bitLineEx | ( | u8 | screen,
|  | s16 | basex,
|  | s16 | basey,
|  | s16 | endx,
|  | s16 | endy,
|  | u8 | color,
|  | s8 | size
| ) |

Dessiner une ligne épaisse en mode dessin... pour le mode dessin 8 bit

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | basex | Position X du premier point. Attention, si X n'est pas compris entre 0 et 255, le résultat ne sera pas celui escompté
  | basey | Position Y du premier point. Attention, si Y n'est pas compris entre 0 et 191, le résultat ne sera pas celui escompté
  | endx | Position X du deuxième point. Attention, si X n'est pas compris entre 0 et 255, le résultat ne sera pas celui escompté
  | endy | Position Y du deuxième point. Attention, si Y n'est pas compris entre 0 et 191, le résultat ne sera pas celui escompté
  | color | Couleur de 15 bits.On peut utiliser la macro PA_RGB pour entrer les valeurs RGB...
  | size | Largeur du trait, en pixels

inline u8 PA_Get8bitPixel | ( | u8 | screen,
|  | u8 | x,
|  | u8 | y
| ) | `[inline]`

Récupérer la couleur d'un pixel, en mode dessin 8 bit

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | x | Position X. Attention, si X n'est pas compris entre 0 et 255, le résultat ne sera pas celui escompté
  | y | Position Y. Attention, si Y n'est pas compris entre 0 et 191, le résultat ne sera pas celui escompté

inline u16 PA_GetBmpHeight | ( | void * | bmp | ) | `[inline]`

Récupérer la hauteur d'un BMP en pixels

Paramètres:

  | bmp | image au format BMP...

inline u16 PA_GetBmpWidth | ( | void * | bmp | ) | `[inline]`

Récupérer la largeur d'un BMP en pixels

Paramètres:

  | bmp | image au format BMP...

inline u16 PA_GetGifHeight | ( | void * | gif | ) | `[inline]`

Récupérer la hauteur d'un Gif en pixels

Paramètres:

  | gif | image au format Gif...

inline u16 PA_GetGifWidth | ( | void * | gif | ) | `[inline]`

Récupérer la largeur d'un Gif en pixels

Paramètres:

  | gif | image au format Gif...

void PA_Init16bitBg | ( | u8 | screen,
|  | u8 | bg_priority
| ) |

Initialise le mode de dessin 16 bit (sans palettes, couleurs RGB). Il suffit de choisir l'écran et la priorité de ce font (de 0 à 3). Ce fond sera placé sur le fond 3 (le remplacant), et doit etre chargé avant tout autre fond ! Prend environ 3/8 de la VRAM

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | bg_priority |

void PA_Init8bitBg | ( | u8 | screen,
|  | u8 | bg_priority
| ) |

Initialise le mode de dessin 8 bit (avec palette). Il suffit de choisir l'écran et la priorité de ce font (de 0 à 3). Ce fond sera placé sur le fond 3 (le remplacant), et doit etre chargé avant tout autre fond ! Prend environ 3/8 de la VRAM

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | bg_priority |

inline void PA_LoadBmp | ( | u8 | screen,
|  | void * | bmp
| ) | `[inline]`

Charger un BMP sur un fond de 16 bits... Faut pas oublier de charger ce fond avant !

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | bmp | image au format BMP...

inline void PA_LoadBmpEx | ( | u8 | screen,
|  | s16 | x,
|  | s16 | y,
|  | void * | bmp
| ) | `[inline]`

Charger un BMP sur un fond de 16 bits... Faut pas oublier de charger ce fond avant !

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | x | Position X du coin supérieur gauche
  | y | Position Y du coin supérieur gauche
  | bmp | image au format BMP...

void PA_LoadBmpToBuffer | ( | u16 * | Buffer,
|  | s16 | x,
|  | s16 | y,
|  | void * | bmp,
|  | s16 | SWidth
| ) |

Charger un BMP dans un buffer de 16 bit

Paramètres:

  | Buffer | Buffer...
  | x | Position X du coin supérieur gauche
  | y | Position Y du coin supérieur gauche
  | bmp | image au format BMP...
  | SWidth | Largeur du buffer, en pixels (256 pour la taille de l'écran...)

inline void PA_LoadGBFSImage | ( | u8 | screen,
|  | s16 | GBFSImage
| ) | `[inline]`

Charger une image depuis GBFS sur l'écran (16 bit). Support le Gif, Jpeg, et BMP

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | GBFSImage | Numéro de l'image dans GBFS

inline void PA_LoadGif | ( | u8 | screen,
|  | void * | gif
| ) | `[inline]`

Charger un Gif sur un fond de 16 bits... Faut pas oublier de charger ce fond avant !

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | gif | image au format Gif...

inline void PA_LoadJpeg | ( | u8 | screen,
|  | void * | jpeg
| ) | `[inline]`

Charger un jpeg sur un fond de 16 bits... Faut pas oublier de charger ce fond avant !

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | jpeg | image au format jpeg...

inline void PA_Put16bitPixel | ( | u8 | screen,
|  | s16 | x,
|  | s16 | y,
|  | u16 | color
| ) | `[inline]`

Dessine un pixel à l'écran, sur un fond de 16 bits

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | x | Position X (0-255)
  | y | Position Y (0-191)
  | color | Couleur de 16 bits, obtenue avec PA_RGB(rouge, vert, bleu)

inline void PA_Put2_8bitPixels | ( | u8 | screen,
|  | s16 | x,
|  | s16 | y,
|  | u16 | colors
| ) | `[inline]`

Dessine deux pixels à l'écran, sur un fond de 8 bits. Ces pixels sont contigus, et le premier doit avoir une position X pair. Beaucoup plus rapide que de dessiner les 2 pixels séparemment

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | x | Position X (0-254), doit etre PAIR
  | y | Position Y (0-191)
  | colors | Couleurs des premier et deuxième pixels (*256 pour le deuxième)

inline void PA_Put4_8bitPixels | ( | u8 | screen,
|  | s16 | x,
|  | s16 | y,
|  | u32 | colors
| ) | `[inline]`

Dessine 4 pixels à l'écran, sur un fond de 8 bits. Ces pixels sont contigus, et le premier doit avoir une position X pair. Façon la plus rapide de dessiner à l'écran

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | x | Position X (0-254), doit etre PAIR
  | y | Position Y (0-191)
  | colors | Couleurs des 4 pixels

inline void PA_Put8bitPixel | ( | u8 | screen,
|  | s16 | x,
|  | s16 | y,
|  | u8 | color
| ) | `[inline]`

Dessine un pixel à l'écran, sur un fond de 8 bits

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | x | Position X (0-255)
  | y | Position Y (0-191)
  | color | Couleur de la palette du fond (0-255)

inline void PA_PutDouble8bitPixels | ( | u8 | screen,
|  | s16 | x,
|  | s16 | y,
|  | u8 | color1,
|  | u8 | color2
| ) | `[inline]`

Dessine deux pixels à l'écran, sur un fond de 8 bits. Ces pixels sont contigus, et le premier doit avoir une position X pair. Beaucoup plus rapide que de dessiner les 2 pixels séparemment

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | x | Position X (0-254), doit etre PAIR
  | y | Position Y (0-191)
  | color1 | Couleur de la palette du fond (0-255) pour le premier pixel
  | color2 | Couleur de la palette du fond (0-255) pour le deuxième pixel