Bonjour,
Je cherche à savoir si il est possible d'utiliser des fonctions graphiques existantes en nSDL (par exemple le traçage de lignes à l'écran). Je sais que c'est possible avec SDL_gfx mais j'ai l'impression que ce n'est pas disponible sur les nspires pour le moment.
Aussinon, je vois que sur le site de nSDL (de HOFFA), il y a des exemples de jeux programmés en nSDL pour nspire. Serait-il possible de récupérer ces codes sources. Tout autre code source serait aussi le bien venu. En effet, pour ma part, je n'ai trouvé que l'exemple de helloworld fourni avec ndless.
Si quelqu'un pourrait m'aider... Merci par avance
Fonctions graphiques en nSDL
9 posts
• Page 1 of 1
-
newprog
Niveau 3: MH (Membre Habitué)- Posts: 15
- Joined: 28 Nov 2012, 00:48
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Un peu trop vieux pour l'avouer
Re: Fonctions graphiques en nSDL
Eh bien d'après ce que j'ai cru comprendre sur le site de Hoffa c'est possible :
En parlant de SDL_gfx et fdlibm sur cette page : https://github.com/Hoffa/nSDL/wiki/Additional-libraries.
Mais après je n'ai jamais testé car jamais eu besoin.
The following libraries have been specifically ported to the TI-Nspire.
En parlant de SDL_gfx et fdlibm sur cette page : https://github.com/Hoffa/nSDL/wiki/Additional-libraries.
Mais après je n'ai jamais testé car jamais eu besoin.
-
Lepzulnag
Niveau 9: IC (Compteur Infatigable)- Posts: 151
- Joined: 02 Aug 2012, 21:15
- Location: Bretagne
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: M2 Maths
Re: Fonctions graphiques en nSDL
Merci pour ta réponse. Je me pose maintenant deux questions, qui n'ont pas grand chose à voir l'une envers l'autre. Premièrement, je me pose une question dans la continuité de mon permier post. Deuxièmement une question relative au C en général. Voici ces questions :
1) Effectivement, je pensais au premier abord que SDL_gfx était integré à l'IDE fourni sur le site de ndless, ce qui n'était pas le cas. Ca ne pouvait donc pas compilé.
J'ai donc téléchargé et copié les .h de SDL_gfx (et la librairie mathématique SDL) dans D:\ndless-v3.1-beta-r695-sdk\ndless\3rd\nSDL\include\SDL ainsi que les fichiers .a dans D:\ndless-v3.1-beta-r695-sdk\ndless\3rd\nSDL\lib sur mon ordinateur.
J'ai défini les includes de la manière suivante dans SDL-gfxprimitives.h :
#include "SDL.h"
#include "fdlibm.h"
J'ai tenté de compiler le code suivant qui est une légère modification du helloword-sdl fourni avec l'IDE :
#include <os.h>
#include <SDL/SDL.h>
#include <SDL/fdlibm.h>
#include <SDL/SDL_gfxPrimitives.h>
int main(void) {
int i=0;
SDL_Surface *screen;
nSDL_Font *font;
SDL_Init(SDL_INIT_VIDEO);
screen = SDL_SetVideoMode(320, 240, is_cx ? 16 : 8, SDL_SWSURFACE);
font = nSDL_LoadFont(NSDL_FONT_FANTASY,
SDL_MapRGB(screen->format, 29, 43, 61),
NSDL_FONTCFG_DEFAULT);
SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 184, 200, 222));
nSDL_DrawString(screen, font, (int)(rand()%250), (int)(rand()%180), "Hello, world! \x1");
pixelColor(screen,10,10,0xF15F);
SDL_Flip(screen);
SDL_Delay(3000);
SDL_Quit();
return 0;
}
Et obtiens l'erreur de compilation suivante :
hello-sdl.c:(.text.startup+0xfc): undefined reference to `pixelColor'
collect2: ld returned 1 exit status
make: *** [helloworld-sdl.tns] Error 1
Built.
Quelqu'un pourrait t'il me dire d'où vient le problème...
2) J'ai un deuxième problème concernant maintenant des notions de C. J'ai le programme suivant :
#include <os.h>
#include <nspireio2.h>
static unsigned char *popup_str[] = {"item1","item2","end"};
nio_console csl;
int main(void) {
int i;
lcd_ingray();
clrscr();
// 53 columns, 29 rows. 0px offset for x/y. Background color 0 (black), foreground color 15 (white)
nio_InitConsole(&csl, 53, 29, 0, 0, 15, 0);
nio_DrawConsole(&csl);
nio_printf(&csl, "\nSTR=%s\n",popup_str[0]);
wait_key_pressed();
return 0;
}
Je m'attends à l'exécution du programme à avoir d'affiché '"item1". Cependant, rien ne s'affiche.
Il me semble cependant qu'avec un printf classique sur ti89 cela fonctionnait. Quelqu'un sait-il pourquoi ?
Merci par avance
1) Effectivement, je pensais au premier abord que SDL_gfx était integré à l'IDE fourni sur le site de ndless, ce qui n'était pas le cas. Ca ne pouvait donc pas compilé.
J'ai donc téléchargé et copié les .h de SDL_gfx (et la librairie mathématique SDL) dans D:\ndless-v3.1-beta-r695-sdk\ndless\3rd\nSDL\include\SDL ainsi que les fichiers .a dans D:\ndless-v3.1-beta-r695-sdk\ndless\3rd\nSDL\lib sur mon ordinateur.
J'ai défini les includes de la manière suivante dans SDL-gfxprimitives.h :
#include "SDL.h"
#include "fdlibm.h"
J'ai tenté de compiler le code suivant qui est une légère modification du helloword-sdl fourni avec l'IDE :
#include <os.h>
#include <SDL/SDL.h>
#include <SDL/fdlibm.h>
#include <SDL/SDL_gfxPrimitives.h>
int main(void) {
int i=0;
SDL_Surface *screen;
nSDL_Font *font;
SDL_Init(SDL_INIT_VIDEO);
screen = SDL_SetVideoMode(320, 240, is_cx ? 16 : 8, SDL_SWSURFACE);
font = nSDL_LoadFont(NSDL_FONT_FANTASY,
SDL_MapRGB(screen->format, 29, 43, 61),
NSDL_FONTCFG_DEFAULT);
SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 184, 200, 222));
nSDL_DrawString(screen, font, (int)(rand()%250), (int)(rand()%180), "Hello, world! \x1");
pixelColor(screen,10,10,0xF15F);
SDL_Flip(screen);
SDL_Delay(3000);
SDL_Quit();
return 0;
}
Et obtiens l'erreur de compilation suivante :
hello-sdl.c:(.text.startup+0xfc): undefined reference to `pixelColor'
collect2: ld returned 1 exit status
make: *** [helloworld-sdl.tns] Error 1
Built.
Quelqu'un pourrait t'il me dire d'où vient le problème...
2) J'ai un deuxième problème concernant maintenant des notions de C. J'ai le programme suivant :
#include <os.h>
#include <nspireio2.h>
static unsigned char *popup_str[] = {"item1","item2","end"};
nio_console csl;
int main(void) {
int i;
lcd_ingray();
clrscr();
// 53 columns, 29 rows. 0px offset for x/y. Background color 0 (black), foreground color 15 (white)
nio_InitConsole(&csl, 53, 29, 0, 0, 15, 0);
nio_DrawConsole(&csl);
nio_printf(&csl, "\nSTR=%s\n",popup_str[0]);
wait_key_pressed();
return 0;
}
Je m'attends à l'exécution du programme à avoir d'affiché '"item1". Cependant, rien ne s'affiche.
Il me semble cependant qu'avec un printf classique sur ti89 cela fonctionnait. Quelqu'un sait-il pourquoi ?
Merci par avance
Last edited by newprog on 29 Dec 2012, 20:55, edited 3 times in total.
-
newprog
Niveau 3: MH (Membre Habitué)- Posts: 15
- Joined: 28 Nov 2012, 00:48
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Un peu trop vieux pour l'avouer
Re: Fonctions graphiques en nSDL
As-tu demandé au linker d'utiliser la librairie SDL_gfx (switch -l) ?
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
-
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6869
- Joined: 23 Dec 2009, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: -
- GitHub: debrouxl
Re: Fonctions graphiques en nSDL
Non, je n'ai pas demandé au linker d'utiliser la librairie. Faut t'il ajouter switch -l quelque part ? (dans le makefile par exemple ). Est-ce nécessaire vu que SDL classique compile sans problème sans que j'ai eu à toucher au makefile.
Je fais un up sur mon post précédant que je viens d'éditer (rajout du 2))
Je fais un up sur mon post précédant que je viens d'éditer (rajout du 2))
-
newprog
Niveau 3: MH (Membre Habitué)- Posts: 15
- Joined: 28 Nov 2012, 00:48
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Un peu trop vieux pour l'avouer
Re: Fonctions graphiques en nSDL
1) oui, je pense qu'il faut ajouter -lSDL_gfx (ou un truc du genre) aux LDFLAGS dans le Makefile, vu que pixelColor est une fonction SDL_gfx.
2) les tableaux de chaînes de caractères globaux (l'exemple le plus courant de construction nécessitant relocation), tels que tu peux en avoir l'habitude avec GCC4TI (ou avec la quasi-totalité des environnements de programmation), ne fonctionnent pas avec Ndless, par manque de relocation automatique. Au moins trois solutions:
* les reloger toi-même à la main, nl_relocdata et autres;
* tu contournes le problème en définissant tes tableaux de chaînes dans les fonctions, en tant que variables locales;
* tu utilises le support bFLT out of tree, voir le blog de tangrs. Je sais qu'ExtendeD a essayé de l'intégrer à Ndless, mais il y a des problèmes, et c'est au point mort. tangrs travaille plus sur Linux que bFLT/C++, maintenant.
2) les tableaux de chaînes de caractères globaux (l'exemple le plus courant de construction nécessitant relocation), tels que tu peux en avoir l'habitude avec GCC4TI (ou avec la quasi-totalité des environnements de programmation), ne fonctionnent pas avec Ndless, par manque de relocation automatique. Au moins trois solutions:
* les reloger toi-même à la main, nl_relocdata et autres;
* tu contournes le problème en définissant tes tableaux de chaînes dans les fonctions, en tant que variables locales;
* tu utilises le support bFLT out of tree, voir le blog de tangrs. Je sais qu'ExtendeD a essayé de l'intégrer à Ndless, mais il y a des problèmes, et c'est au point mort. tangrs travaille plus sur Linux que bFLT/C++, maintenant.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
-
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6869
- Joined: 23 Dec 2009, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: -
- GitHub: debrouxl
Re: Fonctions graphiques en nSDL
4e solution :
static unsigned char popup_str[6][] = {"item1","item2","end"}; // 6 car chaines de maximum 6 charactères avec le \0
static unsigned char popup_str[6][] = {"item1","item2","end"}; // 6 car chaines de maximum 6 charactères avec le \0
-
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6414
- Images: 22
- Joined: 27 Nov 2008, 00:00
- Location: 0x1AACC355
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: BAC+5: Epita (ING3)
Re: Fonctions graphiques en nSDL
Merci pour vos réponses.
J'ai ajouter les "-l" et ça marche maintenant
Quant au problème d'initialisation des tableaux de strings, j'ai utilisé la solution nl_relocdata. Les autres solutions n'avaient pas l'air de foncitonner (à par la 3eme que je n'ai pas testée).
Grâce à vous, j'ai résolu mes problèmes. Merci beaucoup !
J'ai ajouter les "-l" et ça marche maintenant
Quant au problème d'initialisation des tableaux de strings, j'ai utilisé la solution nl_relocdata. Les autres solutions n'avaient pas l'air de foncitonner (à par la 3eme que je n'ai pas testée).
Grâce à vous, j'ai résolu mes problèmes. Merci beaucoup !

-
newprog
Niveau 3: MH (Membre Habitué)- Posts: 15
- Joined: 28 Nov 2012, 00:48
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Un peu trop vieux pour l'avouer
Re: Fonctions graphiques en nSDL
Il y a au moins un example dans le dossier test (https://github.com/Hoffa/nSDL/tree/master/tinspire/test), qui devrait etre le code du screenshot avec Link.
-
sarniq
Niveau 1: MD (Membre Débutant)- Posts: 3
- Joined: 07 Jan 2013, 23:14
- Gender:
- Calculator(s):→ MyCalcs profile
9 posts
• Page 1 of 1
Return to Native: Ndless, Linux, ...
Who is online
Users browsing this forum: ClaudeBot [spider] and 8 guests