π
<-
Chat plein-écran
[^]

Fonctions graphiques en nSDL

C, C++, ASM...

Fonctions graphiques en nSDL

Message non lude newprog » 27 Déc 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
Avatar de l’utilisateur
newprog
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Prochain niv.: 84%
 
Messages: 15
Inscription: 28 Nov 2012, 00:48
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Un peu trop vieux pour l'avouer

Re: Fonctions graphiques en nSDL

Message non lude Lepzulnag » 29 Déc 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.
Avatar de l’utilisateur
Lepzulnag
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 78.5%
 
Messages: 151
Inscription: 02 Aoû 2012, 21:15
Localisation: Bretagne
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: M2 Maths

Re: Fonctions graphiques en nSDL

Message non lude newprog » 29 Déc 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
Dernière édition par newprog le 29 Déc 2012, 20:55, édité 3 fois.
Avatar de l’utilisateur
newprog
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Prochain niv.: 84%
 
Messages: 15
Inscription: 28 Nov 2012, 00:48
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Un peu trop vieux pour l'avouer

Re: Fonctions graphiques en nSDL

Message non lude Lionel Debroux » 29 Déc 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.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Fonctions graphiques en nSDL

Message non lude newprog » 29 Déc 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))
Avatar de l’utilisateur
newprog
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Prochain niv.: 84%
 
Messages: 15
Inscription: 28 Nov 2012, 00:48
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Un peu trop vieux pour l'avouer

Re: Fonctions graphiques en nSDL

Message non lude Lionel Debroux » 29 Déc 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.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Fonctions graphiques en nSDL

Message non lude Levak » 29 Déc 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
Avatar de l’utilisateur
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 98.9%
 
Messages: 6414
Images: 22
Inscription: 27 Nov 2008, 00:00
Localisation: 0x1AACC355
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: BAC+5: Epita (ING3)

Re: Fonctions graphiques en nSDL

Message non lude newprog » 29 Déc 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 ! ;-)
Avatar de l’utilisateur
newprog
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Prochain niv.: 84%
 
Messages: 15
Inscription: 28 Nov 2012, 00:48
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Un peu trop vieux pour l'avouer

Re: Fonctions graphiques en nSDL

Message non lude 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.
Avatar de l’utilisateur
sarniq
Niveau 1: MD (Membre Débutant)
Niveau 1: MD (Membre Débutant)
Prochain niv.: 20%
 
Messages: 3
Inscription: 07 Jan 2013, 23:14
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile


Retourner vers Native: Ndless, Linux, ...

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 15 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1735 utilisateurs:
>1722 invités
>8 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)