1

bon c'est juste un thread pour mettre l'évolution du developpement de Xlib.
pour le moment:
routine de gray modifiées.
j'attaque la routine de background.

2

bon finalement j'ai du passé pas mal de temps a redefinir les bases de XLib, pour le moment:
void _main(void)
{
unsigned short i,j;

XOn();
XCGPlan(_X_CGPlan);
for(i=0;i<240;i++)
for(j=0;j<128;j++)
XGPxlPut(i,j,(i)%4);

XGSwap();
while ( !(_rowread(0x2FF)&0x40) );
XOff();

}
marche nikel tongue

3

les fonctions qui marchent pour le moment (completement reprogrammées pour certaines) sont:
extern void XOn(void);
extern void XOff(void);
extern unsigned long *_X_CGPlan;
extern volatile unsigned long XTimer1;
extern volatile unsigned long XTimer5;



// Fonctions de plan //
#define XNewGPlan() calloc(1,3840*2)
#define XNewBWPlan() calloc(1,3840)
#define XDestGPlan(a) free(a)
#define XDestBWPlan(a) free(a)
extern void XGSwap();
extern void XClrGPlan();
extern void XClrLPlan();
extern void XClrDPlan();
extern void XClrBWPlan();
extern void XCpyBWPlanToLPlan();
extern void XCpyBWPlanToDPlan();
extern void XCpyGPlanToLCD();
extern void XCpyBWPlanToInvLCD();
extern void XCpyDPlanToLLCD();
extern void XCpyDPlanToLCD();
extern void XCpyLPlanToDLCD();
extern void XCpyLPlanToLCD();
extern void XCGPlan(register void *GPlan asm("a0"));
extern void XCBWPlan(register void *GPlan asm("a0"));
extern void XCpyGPlanToGPlan(register void *GPlan_source asm("a0"),register void *GPlan_destination asm("a1"));


// Fonctions de pixels //
extern void XGPxlPut(register short x asm("d0"),register short y asm("d1"),register short couleur asm("d2"));
extern void XGPxlWPut(register short x asm("d0"),register short y asm("d1"));
extern void XGPxlLPut(register short x asm("d0"),register short y asm("d1"));
extern void XGPxlDPut(register short x asm("d0"),register short y asm("d1"));
extern void XGPxlBPut(register short x asm("d0"),register short y asm("d1"));
extern void XGPxlCPut(register short x asm("d0"),register short y asm("d1"));
extern short XGPxlTest(register short x asm("d0"),register short y asm("d1"));
extern void XBWPxlPut(register short x asm("d0"),register short y asm("d1"),register short couleur asm("d2"));
extern void XBWPxlWPut(register short x asm("d0"),register short y asm("d1"));
extern void XBWPxlBPut(register short x asm("d0"),register short y asm("d1"));
extern void XBWPxlCPut(register short x asm("d0"),register short y asm("d1"));
extern short XBWPxlTest(register short x asm("d0"),register short y asm("d1"));

4

XLibPC est presque distribuable si tu veux smile

5

bon pour les routines de level, c'est a voir, puisqu'il semblerai que ce soit peut etre inutil..

6

Bah moi, avec les fct de sprite d'extgraph (ok, elles ne sont pas rapides), je n'arrive même pas à 30 fps. Par contre, avec les fonctions de plane, j'arrive à plus de 60 fps...
Je gagne plus de 100% de rapidité en plus.

7

je vais reprogrammer les fonctions pour voir ...

8

Elles font quelle taille, tes fonctions d'affichage de sprite ?

9

je sais pas, pour le moment je refait tout, en optimisant niveau memoire (calcul d'ofset externalisé etc..)

10

erf finalement ca vaut pas le coup l'externalisation

11

je pense que le scroll diff peut tourné a 60Hz

12

Bon, j'ai encore réduis la taille (108 octets) de la fonction HLine, sa rapidité permet maintenant d'être intégrée sans problème dans XLib, même si elle st un poil moins rapide (j'ai encore réduis l'écart avec extgraph).

13

bon j'ai fait une grosse boullette dans mon bench hier (les resultats me semblaient quand meme trop bon).
En revanche j'ai trouvé une nouveau systeme de drawlevel qui permettra de faire des transparence dans toutes les couleurs sans perdre trop de vitesse, je reste optimiste pour un scroll a 40 fps, mais bon je verais tongue

14

bon j'ai un XBackground qui tourne a 320 fps tongue
mais bon ca va descendre lors de la finalisation de la routine sad mais je pense rester au dessus de 200fps (j'espere).
en revanche ca limite un ptit peu, et de plus le fps est relatif au nombre d'annimations a l'écran.
ca prend en plus un peu de ram (mais pas d'archive)
je pourais augmenter le fps en creant les fonctions en ram , a voir!

15


godzil » nEUrOO: héhé grin

je vais poster sa sur le forum, mais je pense qu'il faut pas lesiner sur les fonctionner a mettre dans la lib, la taille du .a on s'en fou un peu a partir du moment qu'en utilisation "normal" sa prennend pas 100Ko smile

Plus on fourni de fonction plus il seront contents smile meme si on trouve lent etc...

Moi perso, je serait pour trouver des nom plus evocateurs pour les fonction pasque XDrwSprt16GWT

c'est un peu enigmatique


Je précise aussi qu'il faudrait garder une certaine compatibilité avec les sources deja existantes, mais que cette compatibilité ne soit qu'au moment de la compilation (genre un #define pour une fonction ayant changer de nom)
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

16

nEUrOO> J'ai moi aussi optimisé légèrement (TRÈS légèrement en fait : 2 octets, 4 cycles) ma routine de ligne horizontale...

17

bein creer un topic la dessus comme ca on aura une trace du dev smile

18

Bon, y'a aussi un logiciel de conversion bmp,gif,jpg > sprite, la version ligne de commande est finie, et la version win32 est presque finie ...

(d'ailleurs, je pourras p-ê mettre les format de genlib avec, si c pas le mm)

19

Bon, j'ai réécrit une fonction de tracé de ligne horiz en me basant sur une autre implantation, et en affichant des words plutôt que des longs cette fois-ci, et je suis 4% plus lent que l'ancienne version (pour des grandes lignes, en moyenne 120 pixels) et 2% plus rapide pour des lignes d'une longueur moyenne de 50 pixels. La fonction fait 144 octets, soit 12 de moins que l'ancienne version.
Je suis moyennement satisfait.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

20

Il n'y a plus beaucoup de news sad
Bon, vu que j'ai arrêté ExtGraph, vous voulez mes fonctions de level ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

21

bein tu peux joindre la XTeam, moi perso je prog plus sad
bien entendu tu grade tes copyrights etc...

22

Beh, c mal parti pour XLib .
je proposerai bien de mettre toutes les sources en ligne, pas de lib compilée ... comme ca, celui qui veut se sert.

23

Pkoi c'est mal parti ?
Sinon, j'aimerais bien comparer la vitesse de ton algo de ligne par rapport à un bresenham classique, c'est possible ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

24

de ligne classique ?
mais je n'ai pas vraiment d'algo ... juste l'efla qui n'est pas codé en asm, mais de tte facon, en réfléchissant un peu a cause de la division je pense que c mort ...

25

J'aimerais bien tester, pour voir si c'est viable.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

26

faudrait que j'en fasse une implémentation en asm .... je risque d'avoir le temps vu que je vais pu avoir le net pendant qq temps :'(
je vais essayer, mais je te promets rien.