J'ai l'impression d'avoir trouvé un bug dans Genlib, et plus précisément dans la routine de tracé de triangle. Pphd n'ayant toujours pas répondu à mon mail, je me suis dit que certaines personnes de Yaro connaissent p-ê Genlib (qui est maintenant opensource rappelons-le) et pourraient m'aider.
Voilà le pb : pour certaines coordonnées, aucun triangle n'est affiché (et il y a même parfois des débordements de mémoire, Genlib écrivant au-delà du buffer attribué à l'écran). Voici un exemple :
Le tracé avec les coordonnées suivantes marche parfaitement :
gl_draw_face ( (&(POINT){ 0, 99 }), (&(POINT){150, 10}) , (&(POINT){0,
10}), DARK_SCREEN (gl_get_dscreen ()));
Tandis que celui-ci n'affiche rien :
gl_draw_face ( (&(POINT){ 0, 99 }), (&(POINT){150, 10}) , (&(POINT){0, 9}),
DARK_SCREEN (gl_get_dscreen ()));
C'est compilé sous TIGCC 0.96 beta 6 en Kernel avec la dernière version de genlib et testé sous VTI (avec une ROM de 89 ou de V200). Qqn peut-il me confirmer que cette erreur ne survient pas que chez moi ?
Merci et @+
CBSoft
PS : La source complète (pas très importante) :
#define USE_KERNEL
#include "genlib.h"
void gl_main()
{
gl_init();
// gl_draw_face ( (&(POINT){ 0, 99 }), (&(POINT){150, 10}) , (&(POINT){0, 9}), DARK_SCREEN (gl_get_dscreen ()));
gl_draw_face ( (&(POINT){ 0, 99 }), (&(POINT){150, 10}) , (&(POINT){0, 10}), DARK_SCREEN (gl_get_dscreen ()));
ngetchx();
gl_quit();
}