1

Bonjour,

J'essaie actuellement d'utiliser la librairie graphique Genlib en C sous TIGCC.

J'arrive à utiliser Extgraph, mais pour Genlib j'ai du mal, car il n'y a pas d'exemples en C, et mes connaissances en ASM sont limitées. J'essaie simplement d'initilialiser Genlib, et d'activer un pixel.

Voici le code que j'ai pu faire, en me basant sur la documentation:
// C Source File // Created 2005-08-13; 12:22:33 #include <genlib.h> // Main Function void gl_main(void) {      gl_init();      ALLOC_DSCREEN(Screen);      gl_set_dscreen_int(Screen);      gl_set_dscreen_function(Screen);      gl_put_pixel(20, 20, 3);      gl_wait_a_key();      gl_quit(); }

Je compile en mode kernel. Quand je l'exécute, l'écran devient blanc, puis environ 3 secondes plus tard, le programme plante et indique 'Out of Memory' dans la status line.

Si quelqu'un veut bien m'indiquer ce que je ne fais pas correctement, ce serait bien gentil smile
Julien C.
Débutant :P

2

me semble qu'il y a déjà u ntopic de bouflib sur le même sujet, l'as-tu lu ? (je connais pas du tout genlib, donc je peux pas t'en dire plus)
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

3

Flanker> boulifb a choisi d'utiliser extgraph+tilemap engine, et non genlib, il me semble.

JulienC>
j'ai pas utilisé des masses genlib, et jamais en me basant sur gl_main
mais si on regarde la doc de gl_main, il est dit :
— Function: void gl_main (void)
Well, this function isn't defined by genlib. You must define it yourself. If you want to use 'gl_main', you don't need to define another entry point (the standard _main function) and you don't need to initialize genlib: genlib is started, and two DScreens are allocated (one on the stack, the other on the heap) and cleared. So you can start directly!

étant donné qu'on n'a pas besoin d'initialiser genlib (cf ci-dessus), je pense que ton gl_init n'est déjà pas nécessaire ; de même, j'ai l'impression qu'il y a déjà deux DScreens d'alloués : tu n'as donc pas besoin d'en réallouer un toi-même
(enfin, je me demande si le gl_quit est nécessaire, ou s'il est fait automatiquement, vu que tu utilises gl_main)

Ensuite, pour accéder aux DScreen alloués automatiquement (si tu utilises gl_main, ce que tu fais), il est dit de voir les fonction de gl_aux - Cf la doc de genlib pour ça smile ; cf gl_aux_swap, je pense, en particulier
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

4

Super ça fonctionne à présent, je n'avais pas assez exploré la documentation alors.

Merci beaucoup smile
Julien C.
Débutant :P

5

De rien smile
ça fait toujours plaisir de voir quelqu'un qui s'intéresse à genlib smile
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

6

Le gl_quit est fait tout seul.
Et apres on va dire que c'est complique smile

7

J'ai commencé a programmer en ASM avec Genlib et je voudrais passer au C (je suis intéressé par sa portabilité) mais je n'ai toujours pas réussi as faire une programme qui ne bugge pas.
Es-ce que quelqu'un pourrais m'envoyé un programme en C qui affiche un sprite à l'écran et qui quitte quand on appuie sur une touche ?

8

C'est quoi ton programme C ?

9

En AMS native ou kernel-based:
void _main(void) {
Sprite8(...); // ou Sprite16, etc.
ngetchx();
}
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

10

Ben je peux faire aussi:
#include "genlib.h"
void gl_main () {
gl_put_sprite_16 (...);
glaux_swap ();
gl_wait_a_key ();
}

11

et avec XlIb:
void main(void)
{
XLib_MakeGame("Doom III");
}

12

#9: ben voui, mais je ne sais pas faire des exemples Genlib par coeur.
#10: smile roll
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

13

void gl_main() { }quand je compile ça : #include "genlib.h"
Il me retourne cette erreure :
Unresolved reference to 'glaux_init'.

14

Tu a mis genlib.a dans ton projet ? Je pense que non.

15

ha ok
merci pour l'info

16

#include "genlib.h"
#define USE_KERNEL
void gl_main()
{

}

Je l'ai rejouté et maintenant j'ai ça (je uis un peux lourd) :
Library calls are not support in this mode.

17

Si tu veux faire un programme nostub tu dois utiliser gennlib.a et non pas genlib.a (j'ai pas réussi à le faire marcher en nostub personnellement)
Si tu veux faire un programme kernel tu dois utiliser genlib.a et rajouter au début de ton programme "#define USE_KERNEL"

Si tu veux un projet de test qui marche télécharge ça (il dessine un triangle et affiche si tu appuie sur des touches fléchées)

Edit : le téléchargement
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

18

Avant #include "genlib.h"