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...)