Bonjour à tous,
Encore une question concernant les effets graphiques sur TI.
Est-il possible de faire des fondus (contrast qui baisse ou qui monte par programmation)?
Si oui, où puis-je trouver un exemple?
D'avance merci.
Fred.
)
/* Original by Thomas Nussbaumer, added fading options */
void Dissolve(const short Flag) {
unsigned short seq = 1, offset;
unsigned char mask;
do
{
mask = seq & 0x7;
offset = seq >> 3;
if (seq & 1)
seq = (seq>>1)^0x6000;
else seq = seq>>1;
mask = 0x80 >> mask;
if (offset >= LCD_SIZE)
continue;
if (Flag == 1) { // Fade to Black
*(unsigned char*)(Activel + offset) |= mask;
*(unsigned char*)(Actived + offset) |= mask;
} else if (!Flag) { // Fade to White
*(unsigned char*)(Activel + offset) &= ~mask;
*(unsigned char*)(Actived + offset) &= ~mask;
} else { // Fade to a new screen
/* -------------------------------------------------------------------------
If Flag == 2, the fade will act like a strange double buffer toggle. The
contents of the Hidden planes will be faded onto the Active gray planes!
------------------------------------------------------------------------- */
// Light
if (*(unsigned char*)(Hiddenl + offset) & mask)
*(unsigned char*)(Activel + offset) |= mask;
else *(unsigned char*)(Activel + offset) &= ~mask;
// Dark
if (*(unsigned char*)(Hiddend + offset) & mask)
*(unsigned char*)(Actived + offset) |= mask;
else *(unsigned char*)(Actived + offset) &= ~mask;
}
} while (seq != 1);
}
unsigned char *contraste(void) ;
asm(" contraste:
move.w %d0,-(%a7)
move.w #4,%d0
trap #9
move.w (%a7)+,%d0
rts" ) ;
void set_contraste (int value_contrast)
{
unsigned char *contrast=contraste();
*contrast=value_contrast+1;
OSContrastDn ();
}