Forum Graph100

Forum Graph100

Vous n'êtes pas identifié.

Annonce

Bonjour et bienvenue sur le nouveau Forum Graph100 !
L'intégralité des données a été transférée sur un forum PunBB et tout les comptes sont fonctionnels avec le même nom d'utilisateur et mot de passe.
Un wiki est aussi disponible avec le même compte ! N'oubliez pas de remettre votre avatar, bon surf !
Pour plus d'informations, consultez ce post.

#1 08 Jul 2002 05:00:29

JoB
Membre
Lieu: Haut-Rhin - Alsace
Date d'inscription: 03 Jul 2002
Messages: 106

Souce d'affichage pour le mode DB

Code:

setgray(void)
{
outportb(0x02,0xDB);
}

delgray(void)
{
outportb(0x02,0xE3);
}

invgpix(unsigned int X,unsigned int Y)      //niveau de gris: pixel clair
{
X=127-X;
Y=63-Y;
asm {
mov ax,0x1A20
mov es,ax
mov cx,X
mov si,Y
shl si,4
mov ch,cl
shr cx,3
shr cl,5
xor bx,bx
mov bl,ch
add si,bx
xor bl,bl
db 0x0F,0x14,0xC3
xor es:[si],bl

mov ax,0x1AA0
mov es,ax
xor bl,bl
db 0x0F,0x14,0XC3
xor es:[si],bl
}
return 0;
}

invgRect(int x1,int y1,int x2,int y2)
    {int i,j;
    for(i=x1;i<=x2;i++)
        for(j=y1;j<=y2;j++)
            invgpix(i,j);
return 0;
    }

black_pixel(unsigned int X,unsigned int Y)
{
X=127-X;
Y=63-Y;

asm {
mov ax,0x1A20
mov es,ax
mov cx,X
mov si,Y
shl si,4
mov ch,cl
shr cx,3
shr cl,5
xor bx,bx
mov bl,ch
add si,bx
xor bl,bl
db 0x0F,0x14,0xC3
or es:[si],bl

mov ax,0x1AA0
mov es,ax
xor bl,bl
db 0x0F,0x14,0xC3
or es:[si],bl
}
return 0;
}

dark_pixel(unsigned int X,unsigned int Y)    //niveau de gris: pixel foncé
{
X=127-X;
Y=63-Y;
asm {
mov ax,0x1A20
mov es,ax
mov cx,X
mov si,Y
shl si,4
mov ch,cl
shr cx,3
shr cl,5
xor bx,bx
mov bl,ch
add si,bx
xor bl,bl
db 0x0F,0x14,0xC3
or es:[si],bl
}
return 0;
}

gray_pixel(unsigned int X,unsigned int Y)      //niveau de gris: pixel clair
{
X=127-X;
Y=63-Y;
asm {
mov ax,0x1A20
mov es,ax
mov cx,X
mov si,Y
shl si,4
mov ch,cl
shr cx,3
shr cl,5
xor bx,bx
mov bl,ch
add si,bx
xor bl,bl
db 0x0F,0x14,0xC3
or es:[si],bl

mov ax,0x1AA0
mov es,ax
xor bl,bl
db 0x0F,0x14,0XC3
and bl,es:[si]
xor es:[si],bl
}
return 0;
}

light_pixel(unsigned int X,unsigned int Y)
{
return 0;
}

white_pixel(unsigned int X,unsigned int Y)    //niveau de gris: pixel blanc
{
X=127-X;
Y=63-Y;
asm {
mov ax,0x1A20
mov es,ax
mov cx,X
mov si,Y
shl si,4
mov ch,cl
shr cx,3
shr cl,5
xor bx,bx
mov bl,ch
add si,bx
xor bl,bl
db 0x0F,0x14,0XC3
and bl,es:[si]
xor es:[si],bl

mov ax,0x1AA0
mov es,ax
xor bl,bl
db 0x0F,0x14,0XC3
and bl,es:[si]
xor es:[si],bl
}
return 0;
}

gpixel(unsigned char X,unsigned char Y,unsigned char coul)
{
if (coul==0) white_pixel(X,Y);
if (coul==1) light_pixel(X,Y);
if (coul==2) gray_pixel(X,Y);
if (coul==3) dark_pixel(X,Y);
if (coul==4) black_pixel(X,Y);
return 0;
}

gline(int Xd,int Yd, int Xf,int Yf,char couleur)
{
    short avX,avY,X,Y,dX,dY,cpt,i;
    dX=abs(Xf-Xd);
    dY=abs(Yf-Yd);
    if (Xd<Xf) avX=1;
        else avX=-1;
    if (Yd<Yf) avY=1;
        else avY=-1;
    X=Xd;
    Y=Yd;
    gpixel(X,Y,couleur);
    if (dX>dY)
        {
        cpt=dX/2;
        for (i=1;i<=dX;i++)
            {
            X=X+avX;
            cpt=cpt+dY;
            if (cpt>dX)
                {
                Y=Y+avY;
                cpt=cpt-dX;
                }
            gpixel(X,Y,couleur);
            }
        }
    else
    {
        cpt=dY/2;
        for (i=1;i<=dY;i++)
            {
            Y=Y+avY;
            cpt=cpt+dX;
            if (cpt>dY)
                {
                X=X+avX;
                cpt=cpt-dY;
                }
            gpixel(X,Y,couleur);
            }
    }

return 0;
}

ghline(int x1,int x2,int y,char couleur) //Affiche une ligne horizontale (duobab)
{
    int i;
    for(i=x1;i<=x2;i++) gpixel(i,y,couleur);
return 0;
}

gvline(int x,int y1,int y2,char couleur) //Affiche une ligne verticale (duobab)
{
    int i;
    for(i=y1;i<=y2;i++) gpixel(x,i,couleur);
return 0;
}

gcercle(int X, int Y,int r, char c1)
{
    int x=0,y,d;
    y = r;
    d = 1 - r;
    gpixel(x+X,y+Y,c1);
    gpixel(-x+X,y+Y,c1);
    gpixel(x+X,-y+Y,c1);
    gpixel(-x+X,-y+Y,c1);
    gpixel(y+X,x+Y,c1);
    gpixel(-y+X,x+Y,c1);
    gpixel(y+X,-x+Y,c1);
    gpixel(-y+X,-x+Y,c1);
    while ( y > x )
    {
    if ( d < 0 )
        d+=2*x+3;
    else    {
        d+=2*(x-y)+5;
        y--;
        }
    x++;
    gpixel(y+X,x+Y,c1);
    gpixel(-y+X,x+Y,c1);
    gpixel(y+X,-x+Y,c1);
    gpixel(-y+X,-x+Y,c1);
    gpixel(x+X,y+Y,c1);
    gpixel(x+X,-y+Y,c1);
    gpixel(-x+X,y+Y,c1);
    gpixel(-x+X,-y+Y,c1);
    }
return 0;
}

void fillgRect(int x1,int y1,int x2,int y2,char state)
    {int i,j;
    for(i=x1;i<=x2;i++)
        for(j=y1;j<=y2;j++)
            gpixel(i,j,state);
    }

void grect(int x1,int y1,int x2,int y2,unsigned char c)
    {
    ghline(x1,x2,y1,c);
    ghline(x1,x2,y2,c);
    gvline(x1,y1,y2,c);
    gvline(x2,y1,y2,c);
    }

presskey()
{
while (!bioskey(1)) outportb(0x02,0xDB);
}

pour gpixel(x,y,c);

0=pixel blanc opaque
1=pixel blanc transparent
2=pixel gris opaque
3=pixel gris transparent
4=pixel noir opaque

utilisez les correctement !

@+

Hors ligne

 

#2 08 Jul 2002 05:07:02

M@ck
Membre
Date d'inscription: 31 Jan 2002
Messages: 169

Re: Souce d'affichage pour le mode DB

Excuse moi, mais quesque tu entend par transparent?

Hors ligne

 

#3 08 Jul 2002 05:18:29

JoB
Membre
Lieu: Haut-Rhin - Alsace
Date d'inscription: 03 Jul 2002
Messages: 106

Re: Souce d'affichage pour le mode DB

ouai c'est vrai j'ai oublier de presiser pour transparant :
                                       BUF1            BUF2
0=pixel blanc opaque          pix0             pix0
1=pixel blanc transparent    pix0             pix inchanger
2=pixel gris opaque            pix1             pix0
3=pixel gris transparent      pix1             pix inchanger
4=pixel noir opaque            pix1             pix1

BUF1=0x1A20
BUF2=0x1AA0

pix0=pixel eteint(blanc)
pix1=pixel allumer(noir)
pix inchanger =pixel ou l'etat ne change pas

d'autre  :?:

Hors ligne

 

#4 08 Jul 2002 09:04:35

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Re: Souce d'affichage pour le mode DB

Heu tu sors d'ou ?
On ta jamais vu !

Hors ligne

 

#5 08 Jul 2002 11:45:09

nykosledieu
Team G100
Lieu: Strasbourg
Date d'inscription: 29 Jan 2002
Messages: 3028
Site web

Re: Souce d'affichage pour le mode DB

normal il est inscrit ke depuis 5 jours !


Nykosledieu
nykosJEMMERDELESPAM@graph100.com - http://team.graph100.com
Venez sur le chat !!

Hors ligne

 

#6 08 Jul 2002 13:32:07

M@ck
Membre
Date d'inscription: 31 Jan 2002
Messages: 169

Re: Souce d'affichage pour le mode DB

clair, le mec y débarque, il nous refait toutes nos routines, et il découvre une bete de manip :!:
Chapeau!

Hors ligne

 

#7 08 Jul 2002 15:36:36

C@siomax
Programmeur Graph100
Lieu: Grenoble, au QG de fmw-product
Date d'inscription: 03 Feb 2002
Messages: 3042
Site web

Re: Souce d'affichage pour le mode DB

?? Ceci s'apparente drôlement aux routines de KTr... surtout les pixels transparents. Mais bon, je voudrais savoir un truc, sont-elles plus rapides que le mode CB (je dsi bien CB)??


:mrd: :mrd:
.·´¯`·.¸.-> Casiomax <-·´¯`·.¸.·

Statut: indéfini

Hors ligne

 

#8 08 Jul 2002 15:56:43

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Re: Souce d'affichage pour le mode DB

Yep c les routines de Ktr en + rapides

Hors ligne

 

#9 09 Jul 2002 05:05:54

KTr
Haut fonctionnaire graph100.com
Lieu: Saint Etienne
Date d'inscription: 19 Mar 2002
Messages: 1909
Site web

Re: Souce d'affichage pour le mode DB

Et ouais c moi le + rapide !!  :arrow:  :arrow:  :arrow:  :arrow:  :arrow:  :diablotin:
Parceke en général le DB est + rapide que le CB (Moins de calcul) et qu'en plus mes routinnes sont les plus simples possibles....


(¯`·.¸¸.·´¯`·.¸¸.-> www.ktr.fr.fm  ktr@fr.fm <-.¸¸.·´¯`·.¸¸.·´¯)

Hors ligne

 

#10 09 Jul 2002 05:35:53

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Re: Souce d'affichage pour le mode DB

Je veut pas te contrarier mais tu t'es un pezu beaucoup servit des routines de whyp pour l'autre nivre de N&B ....

Hors ligne

 

#11 09 Jul 2002 09:14:32

JoB
Membre
Lieu: Haut-Rhin - Alsace
Date d'inscription: 03 Jul 2002
Messages: 106

Re: Souce d'affichage pour le mode DB

Je suis aller un peu trop vite  :oops: . j'aurai pas du les mettres aussi vite en ligne. sa s'apparente un peu au source de KTR c'est vrai mais bon...

Hors ligne

 

#12 09 Jul 2002 09:22:51

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Re: Souce d'affichage pour le mode DB

Je evut pas te contrarier mais tu as utilisé les routines whyp quabnd m^me, je les reconnais, je les ai faites avec lui, et d'aiileur, alle ne sont pas optimisées.
Tu pourais au moins expliquer, non, quand je modifie des routines, je marque qui les a faites en 1er

Hors ligne

 

#13 09 Jul 2002 17:08:51

KTr
Haut fonctionnaire graph100.com
Lieu: Saint Etienne
Date d'inscription: 19 Mar 2002
Messages: 1909
Site web

Re: Souce d'affichage pour le mode DB

Désolé ms je savai pa ke t'avai bossé dessus, d'autre part j'ai jamais dit ke c moi k'il les avaient faites EX-NIHILO... L st pa optimisées ?? Moi je trouve ke si...


(¯`·.¸¸.·´¯`·.¸¸.-> www.ktr.fr.fm  ktr@fr.fm <-.¸¸.·´¯`·.¸¸.·´¯)

Hors ligne

 

#14 10 Jul 2002 04:51:25

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Re: Souce d'affichage pour le mode DB

Heu Ktr, on parle pas de toi mais de Job  :P

Hors ligne

 

#15 10 Jul 2002 14:47:26

KTr
Haut fonctionnaire graph100.com
Lieu: Saint Etienne
Date d'inscription: 19 Mar 2002
Messages: 1909
Site web

Re: Souce d'affichage pour le mode DB

:x  :rocket:
C mon 4è craquage aujourd'hui vous pouvez pas savoir comme j'en ai marre (Si vous me revoyez pas c ke je suis allé me suicider :P )


(¯`·.¸¸.·´¯`·.¸¸.-> www.ktr.fr.fm  ktr@fr.fm <-.¸¸.·´¯`·.¸¸.·´¯)

Hors ligne

 

#16 14 Jul 2002 10:38:48

L@rk
Programmeur Graph100
Lieu: Saumur (49)
Date d'inscription: 30 Jan 2002
Messages: 742
Site web

Re: Souce d'affichage pour le mode DB

Pour programmer des jeux, ce genre de outine n'est absolument pas utile pour la bonne raison que pour que l'affichage (la rapiditéé) soit optimisé, il ne faut en aucun cas écrire ds la mém vidéo point par point (bit par bit) mais octet par octet (8 pts par 8 pts).

En résumé, comme le moteur d'affichage de tt jeu est a chaque fois différent, il faut reprogrammer une routine d'affichage différente à chaque fois, adaptée au mieux à ce que l'on veut faire.

Ce genre de routine "passe partout" est bien sur utilisable pour beaucoup de choses (ex: traitement des touches, communication par le port, etc...) mais en aucun cas pour l'affichage, partie du programme qui demande 100% d'optimisation et donc un code 100% adapté aux besoins.

Cependant, si ca vous amuse de programmer des routines, fautes donc gentes dames lol !!

Voila c ce que j'en pense.


L@rk @ FGPstudios

Hors ligne

 

#17 05 Sep 2002 16:16:47

KTr
Haut fonctionnaire graph100.com
Lieu: Saint Etienne
Date d'inscription: 19 Mar 2002
Messages: 1909
Site web

Re: Souce d'affichage pour le mode DB

Ben franchement c grace au routines toutes faites ke j'ai commencé à programmer sans ca j'y serai jamais arrivé !! (enfin je crois  wink )


(¯`·.¸¸.·´¯`·.¸¸.-> www.ktr.fr.fm  ktr@fr.fm <-.¸¸.·´¯`·.¸¸.·´¯)

Hors ligne

 

#18 06 Sep 2002 04:37:56

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Re: Souce d'affichage pour le mode DB

C sur, moa aussi, g fait mes routines byte par byte grace a des routines de whyp, mais bon faut pas exagerer non plus !
Je vais faire une lib hyper partique pour els logs (pas jeux) qui affiche un pix sur l'ecran das n'importe kel mode, cad que je vais faire des routines pareille et aussi rapides pour les modes C3,D3,CB,DB
Cadf que si tu fait setpix(x,y,page) et que t sur le mode C3, ça va utiliser la routine C3, ainsi de suite mais faut que je trouve un moyen de trouver une routine pour trouver le mode video courant !
Voila
(ça sera utilise pour les prog universels !)

Hors ligne

 

#19 09 Sep 2002 14:59:42

KTr
Haut fonctionnaire graph100.com
Lieu: Saint Etienne
Date d'inscription: 19 Mar 2002
Messages: 1909
Site web

Re: Souce d'affichage pour le mode DB

utilise un peek non ?


(¯`·.¸¸.·´¯`·.¸¸.-> www.ktr.fr.fm  ktr@fr.fm <-.¸¸.·´¯`·.¸¸.·´¯)

Hors ligne

 

#20 10 Sep 2002 12:03:33

JoB
Membre
Lieu: Haut-Rhin - Alsace
Date d'inscription: 03 Jul 2002
Messages: 106

Re: Souce d'affichage pour le mode DB

8O je croyais que mon post était mort 8O

Hors ligne

 

#21 10 Sep 2002 15:09:37

KTr
Haut fonctionnaire graph100.com
Lieu: Saint Etienne
Date d'inscription: 19 Mar 2002
Messages: 1909
Site web

Re: Souce d'affichage pour le mode DB

ben non je l'ai détérré ....  :P


(¯`·.¸¸.·´¯`·.¸¸.-> www.ktr.fr.fm  ktr@fr.fm <-.¸¸.·´¯`·.¸¸.·´¯)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr