Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Programmation C » Copie d'écran avec mask (23 réponse(s))
./REPRISE DU POST PRECEDENT (post n°19)   Marquer comme non lu.
Nul Ecrit le: Samedi 16 juillet 2005 à 11:15 Déconnecté(e)    Voir le profil de Nul Envoyer un email à Nul Envoyer un message privé à Nul  

Merci Kevin pour le code mais je ne comprends pas, les bords ne sont pas copiés. En fait je l'ai modifié sur le modèle d'un code de Malcom Smith et ça marche:

static inline void CopieBordsToScreen(void * bords_0, void * bords_1, void * mask, void * dest_0, void * dest_1)
{
long *dummy1,*dummy2,*dummy3,*dummy4,*dummy5;
asm volatile("
move.w #(3840)/4-1,%%d0
loop:
move.l (%3),%%d1
and.l (%2),%%d1 |copie du masque
or.l (%0)+,%%d1 |copie du dessin
move.l %%d1,(%3)+ |enregistrement du résultat dans dest
move.l (%4),%%d1
and.l (%2)+,%%d1 |copie du masque
or.l (%1)+,%%d1 |copie du dessin
move.l %%d1,(%4)+ |enregistrement du résultat dans dest
dbra %%d0,loop
" \
:"=a"(dummy1),"=a"(dummy2),"=a"(dummy3),"=a"(dummy4),"=a"(dummy5)
:"0"(bords_0),"1"(bords_1),"2"(mask),"3"(dest_0),"4"(dest_1)
:"d0","d1","cc","memory");
}

Cette fois-ci les bords sont copiés. Merci à tous pour votre aide ! #love#

Mais est-ce-que c'est plus rapide que mon code en C puisque c'est exactement les mêmes opérations que je fais (mais en C quoi) ?
-Edité le Samedi 16 juillet 2005 à 11:17 par Nul-
"De tous les animaux, l'homme a le plus de pente,
A se porter dedans l'excès."

Jean de la Fontaine
    
./Post n°20   Marquer comme non lu.
Lionel Debroux Ecrit le: Samedi 16 juillet 2005 à 11:49 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

GCC génère rarement du code aussi optimisé que ce qu'on peut faire à la main. L'écart taille/vitesse est plus ou moins important.
GCC 4.0 optimise plutôt mieux taille quand on demande taille, vitesse quand on demande vitesse, mais respecte plutôt moins ce que l'utilisateur lui demande de faire (cas typique: postincrémenté sur du cast as lvalue, qui m'embête dans les softs de TICT, déjà reporté) que GCC 3.3.
-Edité le Samedi 16 juillet 2005 à 11:50 par Lionel Debroux-
Lionel Debroux - membre de TICT.
    
./Post n°21   Marquer comme non lu.
Nul Ecrit le: Samedi 16 juillet 2005 à 11:56 Déconnecté(e)    Voir le profil de Nul Envoyer un email à Nul Envoyer un message privé à Nul  

Je n'ai pas tout compris dans ce que tu as dit (surtout à la fin) mais apparemment le code en ASM est le meilleur possible.
"De tous les animaux, l'homme a le plus de pente,
A se porter dedans l'excès."

Jean de la Fontaine
    
./Post n°22   Marquer comme non lu.
Folco Ecrit le: Samedi 16 juillet 2005 à 15:09 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


regarde le fichier .s de ton code produit par TIGCC.
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°23   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 16 juillet 2005 à 16:41 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Nul :
Merci Kevin pour le code mais je ne comprends pas, les bords ne sont pas copiés. En fait je l'ai modifié sur le modèle d'un code de Malcom Smith et ça marche:

Je ne comprends pas, normalement ça devrait donner la même chose. Il faudrait peut-être mettre des variables temporaires pour les paramètres de la macro aussi? Mais de toute façon, si la version avec le static inline marche, c'est bon.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
  :: Index » Forum Ti68K » Programmation C » Copie d'écran avec mask (23 réponse(s))
Pages : 2/2     « 1 [2] » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 41.16ms avec 18 requetes