j'aimerai afficher des images a des points donnes qui soit plus grands que des sprites
sur tiwiki j'ai trouve ca mais
http://www.tiwiki.org/BitmapPut
je comprend pas ça
const void * bitmap
et ça
const SCR_RECT * clip
Pegase :
j'aimerai afficher des images a des points donnes qui soit plus grands que des sprites
sur tiwiki j'ai trouve ca mais
http://www.tiwiki.org/BitmapPut
je comprend pas ça
const void * bitmap
et ça
const SCR_RECT * clip
SCR_RECT r; /* un rectangle */ /* Je configure mon rectangle: ma zone d'écran est positioné à 0,0 et a une longueur de 160 et une hauteur de 100*/ r.x0 = 0; r.y0 = 0; r.x1 = 159; r.y1 = 99; char monBitmap [BITMAP_HDR_SIZE + LCD_WIDTH*LCD_HEIGHT/8]; /* directement copié collé de la doc, un buffer (zone mémoire) assez grande pour acceuillir une capture de l'écran */ BitmapGet (&r, monBitmap); /* copié collé de la doc, capture de l'écran le & veut dire adresse de ce qui est référé par la variable, donc l'adresse de mon rectangle */ BitmapPut (0, 0, monBitmap, &r, A_REPLACE); /* Copié collé encore une fois: affiche le bitmap en position 0,0 */
Pegase :
devrais pas y'avoirr.x1 = 160; r.y1 = 100;
??
si je dois afficher un bitmap a (83,3) de [54,16]pxl
Pegase :
et le code du bitmap je le met ou?(données binaire)
/**
* Converts a specified PIC file name to a bitmap.
* If the file string object risk to be used later, use a copy of the string object
* instead of the original, the string being finalized before the method returns.
*
* @param file The PIC file name
* @return The converted bitmap or null in case of error.
*/
public native static BITMAP* bitmapFromVar(String file) {
char *SymName = file->toVat_(file);//T'as besoin d'une 'chaîne TIOS' voir la doc, le truc toVat est une particularité de Moka
BITMAP* bitmap;
SYM_ENTRY *sym_entry = SymFindPtr (SymName, 0);
if ((sym_entry) && (peek (HToESI (sym_entry->handle)) == PIC_TAG)) {
bitmap = Graphics_cloneBitmap_BITMAP_p(HeapDeref (sym_entry->handle) + 2); /* Fait une copie du bitmap, pas nécessaire si tu ne modifies pas le bitmap */
}
free ( SymName - strlen(file->value) - 1) ; /* libération d'une string tios */
file->finalize_(file);//Frees the memory allocated to the TIOS string Particularité de moka ignorer
return bitmap;
}
Pegase :
on peut pas definir un bitmap?
http://tigcc.ticalc.org/doc/graph.html#BITMAP par ex
char monBitmap [BITMAP_HDR_SIZE + LCD_WIDTH*LCD_HEIGHT/8]; /* Allocation */ monBitmap.NumRows = 100; monBitmap.NumCols = 160;
monBitmap.Data[0] |= 0x80;
Link :
PS: pour la non-duplication de constantes, quand on en duplique une, mieux vaut la dupliquer complètement (et c'est aussi plus lisible): char buf[ 80 ]; /*blablabla*/ buf[ 80-1 ] = '\0'; (le 80-1 est bien plus lisible et plus facile à remplacer que 79...)
