1

Quand j'affiche une image sur tout l'écran de la TI89 de cette manière :
if (!GrayMode (GRAY_ON)) return 0;

SetPlane (0);
ClrScr ( );
BitmapPut (0, 0, Image_C0, ScrRect, A_NORMAL);

SetPlane (1);
ClrScr ( );
BitmapPut (0, 0, Image_C1, ScrRect, A_NORMAL);
ngetchx ( );

GrayMode (GRAY_OFF);
il y a une zone en bas qui reste blanche : elle correspond à la barre de status.
Comment faire pour afficher même dans cette zone ?

2

Parce qu'elle est effacée par AMS ?
Essaie de rediriger l'auto-interruption #1 (exemple de "When I disable interrupts, grayscale doesn't work!" de la FAQ de TIGCC). Attention, ngetchx() ne fonctionnera plus, il faut alors utiliser keytest, rowread, etc. de kbd.h.

3

Ca me fait toujours le même problème. Cette fois-ci j'avais mis :

INT_HANDLER save_int_1;
save_int_1 = GetIntVec (AUTO_INT_1);
SetIntVec (AUTO_INT_1, DUMMY_HANDLER); // redirect auto-int 1 to "nothing"
// enable grayscale

if (!GrayMode (GRAY_ON)) return 0;

SetPlane (0);
ClrScr ( );
BitmapPut (0, 0, Image_C0, ScrRect, A_NORMAL);

SetPlane (1);
ClrScr ( );
BitmapPut (0, 0, Image_C1, ScrRect, A_NORMAL);
for (;wink
{
BEGIN_KEYTEST
if (_keytest_optimized (RR_ENTER))
break;
END_KEYTEST
}


GrayMode (GRAY_OFF);

// disable grayscale
SetIntVec (AUTO_INT_1, save_int_1);

Mon image fait pourtant 160 sur 100 : c'est bien ça les dimensions de l'écran TI89 ? Je comprends pas pourquoi ça marche toujours pas...

4

L'image est tronquée ? Qu'est-ce qu'on voit exactement ?

5

Oui, c'est normal. Lis la Note: à la fin de la documentation de ScrRect. ScrRect clip par défaut au niveau de la status line.

6

Ah, ok, je vois. Mais je sais pas du tout comment le modifier.

7

Le plus simple c'est d'utiliser des fonction d'une bibliothèque graphique (style Extgraph) plutôt que de dépendre des fonctions d'AMS (ScrRect est pas vraiment fait pour être modifié de toute façon).

8

Finalement, c'est bon : au lieu de mettre ScrRect, j'ai mis &(SCR_RECT){{0, 0, 159, 99}} et ça marche nickel !
Du cou, plus besoin de rediriger l'auto-interruption #1. Et je peux réutiliser ngetchx().
Merci beaucoup pour ton aide en tout cas !