30

les macros de Extgraph marchent que sur un plan, je crois..
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

31

ouaiwink mais moi j'utilise pâs de macrosmile
si j'ai fait la fonction XPxlPut c'est juste pour le confort... car les fonctions XPxlDPut etc sont beaucoup plus rapides (et ce ne sont pas des macro...)
Enfin bin j'attend de voir le bench que pphd a fait... smile
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

32

y'a pas moyen de booster celle qui affiche sur les eux plans à la fois ?
(dieux, que je suis chiant et exigeant... surtout que j'utiliserai sûrement pas de sitôt cette fonction grin)
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

33

Erf XPxlDPut etc sont des fonctions gray.... seulement on passe pas par parrametre la couleur.. il y a une fonction par couleursmile
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

34

Correction d'un bug dans la fonction XClrGplan();
Thx squale92 qui a eut pour cadeau un ptit !kbsmile
http://www.ifrance.fr/lifeislife/_X_Lib_003.rar
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

35

enfoiré grin
heureusement que ça a po duré grin grin grin
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

36

Erf.... tu le meritaissmile
Bon au fait... pour les bench de pxlwink
l'equivalent avec extgraphlib c'est :
void EXT_PxlPut(short x, short y, short couleur)
{
switch(couleur)
{
case 1:
PxlClear(x,y,plan1)
PxlClear(x,y,plan2)
break;
case 2:
PxlPut(x,y,plan1)
PxlClear(x,y,plan2)
break;
case 3:
PxlClear(x,y,plan1)
PxlPut(x,y,plan2)
break;
case 4:
PxlPut(x,y,plan1)
PxlPut(x,y,plan2)
break;
case 5:
PxlChng(x,y,plan1)
PxlChng(x,y,plan2)
break;
}

je pense pas que ca fasse du 70000 pxl seconde casmile
donc si on compare:
pxlput(x,y,plan1)
pxlput(x,y,plan2)
a
XPxlDPut(x,y)
sachant que XPxlDPut fait du 90000pxl/sec je pense pas que pxlput fait du 180000.... c'est meme imposiblewink

j'attend ce bench avec impatiencesmile



XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

37

J'ai fait le bench, mais j'ai pas le cable pour le tester on-calc.
D'apres mes resultats sur Vti, genlib est encore devant.

38

... alors là...
Site : http://www.phareaway.com/
Membre du groupe Phare Away et webmaster du site

39

ATTENTION:
Pour les utilisateur de Xlib, si il y en a, vous ne devez pas utiliser des abscisses superieur a 241 ou des ordonnées superieur a 129.... (merci squale92)
Ce n'est pas un bug...

pphd:
Si tu pouvais m'envoyer le bench a: jackosking@aol.com
Je le testerai sur ma 92+ HW2 ... et donnerai les resultats..
De toute maniere, cette version la de Xlib, et loin d'etre la plus rapide.. et j'ai adoter une methode de semi preshifting qui boost pas mal.. mai encore pas mal buge aussi...
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

40

Bon.. nouvelle version de _X_Lib...:
[url]http:\www.ifrance.comlifeislife_X_Lib_004.rar[/url]

Ajout de :
XGFSprite16x8(x,y,g_sprite)
XGFSprite16x16(x,y,g_sprite)
XGFSprite16x24(x,y,g_sprite)
XGFSprite16x32(x,y,g_sprite)

XGFSpriteM16x8(x,y,g_sprite)
XGFSpriteM16x16(x,y,g_sprite)
XGFSpriteM16x24(x,y,g_sprite)
XGFSpriteM16x32(x,y,g_sprite)


Ce sont des fonctions plus rapides que les anciennes... ( j'ai juste derouler la boucle...).
Le gain est d'un peut pres 1000 a 2000 sprites par seconde selon les fonctions et les abcisses..
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

41

Ton lien ne marche pas. Tu pourrais mettre en zip ?
Ensuite, je te l'enverrais Lundi le prog.
Enfin, Tigcc optimise pas mal le calcul d'offset : a la seconde macro, il ne recalcule pas tout !
PxlClear(x,y,plan1) -> Calcul ptr
PxlPut(x,y,plan2) -> Ptr deja calcule !

Ce qui fait qu'en fait, extgraph est toujours meilleur sur les pixels. smile

42

je suppose que XLIB ne marche pas en nostub....
ca serais possible d'en faire une version NOSTUB ?

et a propos, a pparament, il fait surtout du gray, mais les fncs marche aussi en N&B ?
Ancien pseudo : lolo

43

Erf... je vais faire un bench pour Extgraphlib , ca me passera le temps....

lolo: Non, Xlib est en nostub... bien que pour le moment son syteme de fonctionnement est plutot bourin, ca marche pas si mal que casmile
Par contre, ca fonctionne qu'en mode gray, puisque c'est une lib concu pour celasmile


Sinon pour l'url:
http://www.ifrance.fr/lifeislife/_X_Lib_004.rar
ca devrait marcher...
Pour le zip:
http://www.ifrance.fr/lifeislife/_X_Lib_004.zip

Mais WinZip & Winrace ne decompresse pas les fichier rar???
[edit]Edité par TiMad le 15-02-2002 à 16:52:46[/edit]
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

44

c'é vré qu'on peut faire de la 3D avec Xlib ?

45

Erf de la 3D avec Xlib... ca c'est le boulot de neurone.. mais pour le moment je crois qu'il fait tourner qu'un cube... Mais tout depend de luismile

Sinon j'ai fait un bench avec ExtGraphlib:

Source:
INT_HANDLER oldint7 = NULL;
INT_HANDLER oldint6 = NULL;
INT_HANDLER oldint5 = NULL;

volatile int mseconds50 =0;

volatile short count;


DEFINE_INT_HANDLER (myint5handler) { mseconds50--;}
DEFINE_INT_HANDLER (myint7handler) { }
DEFINE_INT_HANDLER (myint6handler) { }

unsigned short vaisseau[]={ 0x180, 0x180, 0x240, 0x240, 0x240, 0x240, 0x5A0, 0x7E0, 0xBD0, 0x2BD4, 0x33CC, 0x27E4, 0x4C32, 0xD99B, 0xDA5B, 0x7C3E};


#define h 16
void bench()
{
 unsigned long k=0;
 clrscr();
 DrawStr(0,90,"Bench GO!",A_NORMAL);
 oldint5 = GetIntVec(AUTO_INT_5);
 SetIntVec(AUTO_INT_5, myint5handler);
 oldint6 = GetIntVec(AUTO_INT_6);
  SetIntVec(AUTO_INT_6, myint6handler);
  oldint7 = GetIntVec(AUTO_INT_7);
  SetIntVec(AUTO_INT_7, myint7handler);
	asm("
	movem.l	%d0,-(%a7)
	move.w	#400,%d0
	TRAP	#1
	movem.l	(%a7)+,%d0	
	")


XClrGPlan();

k=0;	mseconds50 =20;


	while (mseconds50)
		{ 
/////////////////////////////////////////		
// Simulation XPxlLPut...
/////////////////////////////////////////
EXT_SETPIX(LCD_MEM,mseconds50,mseconds50);  //utilisation du timer pour avoir des coordonnées dynamiques
EXT_CLRPIX(LCD_MEM-1,mseconds50,mseconds50);  // decalage de -1 pour simuler le 2eme plan
EXT_SETPIX(LCD_MEM,mseconds50,mseconds50);
EXT_CLRPIX(LCD_MEM-1,mseconds50,mseconds50);
EXT_SETPIX(LCD_MEM,mseconds50,mseconds50);
EXT_CLRPIX(LCD_MEM-1,mseconds50,mseconds50);
EXT_SETPIX(LCD_MEM,mseconds50,mseconds50);
EXT_CLRPIX(LCD_MEM-1,mseconds50,mseconds50);  // 4 fois
///////////////////////////////////////// 
		k++;
		}
	k=k*4;	 
	printf_xy(10,0,"R1: %ld /s",k);
 k=0;	mseconds50=20;
	while (mseconds50)
	 {
/////////////////////////////////////////
XPxlLPut(mseconds50,mseconds50);
XPxlLPut(mseconds50,mseconds50);
XPxlLPut(mseconds50,mseconds50);
XPxlLPut(mseconds50,mseconds50);
/////////////////////////////////////////
 	 	 k++;
	 }
	k=k*4;	 
	printf_xy(10,10,"R2: %ld Sp",k);
 k=0;	mseconds50=20;
	while (mseconds50)
	 {
/////////////////////////////////////////
XGSZoom16x16(10,10,S8);
XGSZoom16x16(10,10,S8);
XGSZoom16x16(10,10,S8);
XGSZoom16x16(10,10,S8);
/////////////////////////////////////////
 			k++;
	 } 
	k=k*4;	 
	printf_xy(10,20,"R3: %ld Sp",k);
 k=0;	mseconds50=20;
	while (mseconds50)
	 {
/////////////////////////////////////////	 	
XGSZoom8x8(10,10,S8);
XGSZoom8x8(10,10,S8);
XGSZoom8x8(10,10,S8);
XGSZoom8x8(10,10,S8);
/////////////////////////////////////////
 			k++;
	 } 
	k=k*4;	 

	printf_xy(10,30,"R3: %ld Sp",k);

  ngetchx();

  XClrGPlan(); 
  XCpyGPlanToLCD();

	SetIntVec(AUTO_INT_5, oldint5); 
	SetIntVec(AUTO_INT_6, oldint6); 
	SetIntVec(AUTO_INT_7, oldint7); 
	asm("
	movem.l	%d0,-(%a7)
	clr.w	%d0
	TRAP	#1
	movem.l	(%a7)+,%d0	
	")
  ngetchx();
}



Bon voila les resultats du bench avec des piles plutot faibles:

Extgraphlib: 38080 pxl/s
_X_Lib: 68024 pxl/s

Noter que les piles sont faibles puisque XPxlLPut tourne d'habitude a 90k pxl/sec

Donc bin je sais pas comment tu fais tes benchs pphd, mais ya un probleme....

Au fait je part ce soir a 18h donc si j'ai pas ton bench avant, je pourais pas l'essayer avant dimanche prochain...
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

46

TImad RULEEZZzzzz smile
Tu nous porte ça pour l'Azur après ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

47

heu..
TiMad Suxxxx
En effet, le timer varie entre PxlPut et PxlClr.. conclusion, je refait un bench.. mais ca risque d'etre la reaction inverse.. sad
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

48

Meuh non wink
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

49

Bon voila le resultats des differents benchs:

Si je me les coordonnées dans une variables et que j'executes tour apres tours PxlClr et PxlPut de xtygraphlib, j'obtient les resultats suivants:
EXT: 88676 pxl/sec
X: 76880 pxl/sec

donc Ext est plus rapide...:( 
Mais a noter que dans ce cas la, Extgraphlib n'est pas utiliser a titre de fonction mais de macro.. ce qui dans un programme prend beaucoup de place!!!!!!

Donc j'ai fait un autre bench en remplacant par une fonction auxiliaire:

void EXT_PxlLPut(short x, short y)
{
	EXT_SETPIX(LCD_MEM,x,y);
	EXT_CLRPIX(LCD_MEM-1,x,y);
}

J'obtient les resultats suivants:
EXT: 50788 pxl/s
X: 71852 pxl/s

Voila, donc vue que dans un programme on va pas utiliser a chaque fois un macro ce qui prend ennormement de place.... faut plutot considere comme une fonction .. et dans ce cas la, X est plus rapide...
sans compter qu'il suffit de rajouter un petit chouya entre 2 appelles des macro de EXT et on a alors aucune optimisation de tigcc => perte de place et fonction lente...
Et oui, si j'avais fait mon bench qu'avec 1 appele de chaque fonctions.. l'optimisation de tigcc n'aurait pas lieu...

Voila :))))
A vous de voir:)

XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

50

bon, ben si timad avait deigné télécharger le pitit package que je lui avait fait .. y'aurais pas mal de fonctions en plus dans XLib smile

sinon, pr la 3D, je teste en ce mmt .. j'ai qq petits probs mais ca va venir grin

51

j'ai hate de voir a quoi ca ressemble...si c'est plus rapide que mon prog ou pas...

52

Ben en general, tu utilises quand meme les macros smile Les programmeurs C sont TRES bourrins.

53

Merde mon prog de bench ne se compile plus correctement... Va falloir ruse.

54

Erf toujours pas recu ton mail sad

Bon sinon recapitulatif sur Extgraphlib!
Ses fonctions de pxl ne sont pas du tout plus rapdide que genlib ou Xlib...
Dans tous les progs, jeux etc... l'utilisation des fonctions de Gen et X seront presque 2 fois plus rapide que Ext...
Le seul avantage d'utiliser Ext est si vous faites un programme du genre:
pxl_put(1,1);
pxl_put(1,1);
pxl_put(1,1);
pxl_put(1,1);
pxl_put(1,1);
.. qui s'averera plus rapide ...

D'ailleur pour le bench , si je veux rendre genlib ou Xlib plus rapides, il suffit de 'bencher' sur un appele de fonction dans la boucle while.; et Extgraphlib sera terriblement lente ...
Voilàsmile

Sinon Pphd, pour le bench, tu mets bien du temps.. pourtant c'est pas si compliquer que ca a faire pour toi, puisque la seul difficulte dans ce prog c'est l'utilisation de gen (que je metrise pas du tout) .. qui ne devrait pas te poser de probleme..
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

55

les codeurs C ne sont pas SI bourrin que ça... enfin... quoique, en réfléchissant bien.... sad
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

56

c clair que c bourin un programmeur C, je pense que ca vient des PC ..
quand on fait du C en général, on prog sur PC .. pis voilà, pas besoin d'otpimiser etc..

57

Ca me fait penser que nous, on doit optimiser notre code en C sur PC... faut dire que c'est exceptionnel : traiter 3 images par secondes sur un 200 MHz...
Site : http://www.phareaway.com/
Membre du groupe Phare Away et webmaster du site

58

Franchement apprendre a optimiser ca vaut le coup... apres on le fait sans s'en rendre compte:!)

Bon, n'ayant toujours rien recu de la part de pphd, je considere que Xlib est plus rapidesmile surtout si l'on considere que le format de genlib est un format de faux Gspritessmile

peut importe la prchaine version sera du jamais vu sur ti.. et je vous prepare une belle demo...

Je souhaite qu'un truc c'est que pendant que je suis en prepa, pas mal de gens programme avec:happy
Et je compte sur un certain squale92, qui nous prepare un bon ptit trucsmile)))
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

59

bon TiMad, je v faire ici un résumé de ce qui est déja exploitable sous XLib (ce que j'ai fais et qui est surement définitif)

2D:
- Line, WULine, SINLine, Spline (4points)
- Cercle, ellipse, disque
- Polygone, FillTriangle

Maths:
- fonctions Sin,Cos,Tan avec tables (256,512 ou 1024)
- prod scalaire, norme, prod vectoriel
- plusieurs fonctions sur les matrices

y'a pas tout là .. notament les effets (blur, ...)

60

Ok! cool...

Bon si tu veux tu peux releaser la version.. tu dl le rar, tu ajoute ton nom ( soit a titre de createur d'un addon si tu veux garder la propriete entiere de tes routines, soit a titre d'coauteur du projet Xlib, dans ce cas la, toute les fonctions de Xlib seront la proprietées de toi et moi... ) dans le readme, ainsi que tes fonctions, et tu le met sur le netsmile
Tu fais comme tu le sents, puisque c'est ton projet comme le mien maintenant... seulement essaie stp de mettre en plus un fichier: VERSION ou tu mets les nouvelles fonctions ainsi qu'un fichier TO_DO...
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!