π
<-

Fonctions graphiques en nSDL

C, C++, ASM...

Fonctions graphiques en nSDL

Unread postby newprog » 27 Dec 2012, 01:40

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
User avatar
newprog
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 84%
 
Posts: 15
Joined: 28 Nov 2012, 00:48
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Un peu trop vieux pour l'avouer

Re: Fonctions graphiques en nSDL

Unread postby Lepzulnag » 29 Dec 2012, 01:07

Eh bien d'après ce que j'ai cru comprendre sur le site de Hoffa c'est possible :

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.
User avatar
Lepzulnag
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 78.5%
 
Posts: 151
Joined: 02 Aug 2012, 21:15
Location: Bretagne
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: M2 Maths

Re: Fonctions graphiques en nSDL

Unread postby newprog » 29 Dec 2012, 14:05

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
Last edited by newprog on 29 Dec 2012, 20:55, edited 3 times in total.
User avatar
newprog
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 84%
 
Posts: 15
Joined: 28 Nov 2012, 00:48
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Un peu trop vieux pour l'avouer

Re: Fonctions graphiques en nSDL

Unread postby Lionel Debroux » 29 Dec 2012, 19:21

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.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.3%
 
Posts: 6869
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Fonctions graphiques en nSDL

Unread postby newprog » 29 Dec 2012, 19:41

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))
User avatar
newprog
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 84%
 
Posts: 15
Joined: 28 Nov 2012, 00:48
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Un peu trop vieux pour l'avouer

Re: Fonctions graphiques en nSDL

Unread postby Lionel Debroux » 29 Dec 2012, 21:06

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.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.3%
 
Posts: 6869
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Fonctions graphiques en nSDL

Unread postby Levak » 29 Dec 2012, 21:08

4e solution :
static unsigned char popup_str[6][] = {"item1","item2","end"}; // 6 car chaines de maximum 6 charactères avec le \0
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: Fonctions graphiques en nSDL

Unread postby newprog » 29 Dec 2012, 22:16

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 ! ;-)
User avatar
newprog
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 84%
 
Posts: 15
Joined: 28 Nov 2012, 00:48
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Un peu trop vieux pour l'avouer

Re: Fonctions graphiques en nSDL

Unread postby sarniq » 07 Jan 2013, 23:18

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.
User avatar
sarniq
Niveau 1: MD (Membre Débutant)
Niveau 1: MD (Membre Débutant)
Level up: 20%
 
Posts: 3
Joined: 07 Jan 2013, 23:14
Gender: Not specified
Calculator(s):
MyCalcs profile


Return to Native: Ndless, Linux, ...

Who is online

Users browsing this forum: ClaudeBot [spider] and 8 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1542 utilisateurs:
>1528 invités
>8 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)