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 15 Oct 2003 09:24:14

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Page Flipping en DB

Voila on connait assez bien le page flipping en mode C3 pour faire facilement du double buffering
(pour ceux qui aiment pas l'anglais ou qui ont un trou de mémoire je copie l'explication que 2072 a redonnée tantôt:

le page flipping ça consiste simplement à ne pas copier le contenue de l'écran dans un autre buffer, c'est à dire que tu changes juste l'addresse de la mémoire vidéo.
Le page flipping est impossible sur g100 lorsqu'on utilise printf par exemple car on ne peu pas redireger la sortie vidéo vers un autre buffer...

Mais puisque les fontes perso se sont généralisées maintenant ça ne pose plus de problème. Il suffit de faire des fonctions graphiques qui écrivent vers une addresse vidéo qu'on peut choisir.

Le principe est simple: pendant que tu écris dans un buffer tu montre l'autre une fois que t'as terminé d'écrire tu "flip"les buffer : tu montres celui dans lequel tu écrivais et tu écris dans celui que tu montrais...

); mais en mode DB, comment fait-on pour désigner quelles sont les pages que les interruptions video vont utiliser pour raffraichir l'écran?


Pensez à surveiller mes releases wink

Hors ligne

 

#2 15 Oct 2003 09:39:34

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

Re: Page Flipping en DB

bah soit tu modif l'int 53 par un movevideo maison !! (cf ma routine d'effaçage d'écran faite sur la base des routines de tonton1664) Soit bin tu fais un movevideo manuellement, à la xth wink


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

Statut: indéfini

Hors ligne

 

#3 15 Oct 2003 10:12:22

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Page Flipping en DB

Lol comme d'hab j'ai posé la question avant de faire mes tests...  :oops:

J'ai essayé sur sonic d'inverser l'écran et les buffers, donc de dessiner dans l'"écran" (segment 0x1A20) et d'afficher dans les buffers (0x1A60 et 0x1AE0 dans sonic), et ca marche impec big_smile
il suffit de faire un setpage(1) avec la vieille fonction de Libthium:

Code:

void setpage(short page){
    asm{
    mov ax,page
    shl ax,6
    add ax,0x1A20
    xor dx,dx
    shl ax,1
    rcl dx,1
    shl ax,1
    rcl dx,1
    shl ax,1
    rcl dx,1
    shl ax,1
    rcl dx,1
    out 0x05,ax
    mov al,dl
    out 0x07,al } }

Donc en gros ca fonctionne exactement comme pour le C3... C génial ça, ca supprime la nécessité de copier les 2 buffers d'une page à l'autre à chaque frame... lol je sens que j'ai de l'opti à faire moi  :mrgreen:


Pensez à surveiller mes releases wink

Hors ligne

 

#4 15 Oct 2003 14:00:11

Azor
Le Coté Obscur De La G100
Lieu: glop glop!
Date d'inscription: 04 May 2002
Messages: 5479
Site web

Re: Page Flipping en DB

"bah soit tu modif l'int 53 par un movevideo maison !! (cf ma routine d'effaçage d'écran faite sur la base des routines de tonton1664) Soit bin tu fais un movevideo manuellement, à la xth "
ta fumé koi toi, lol utilisé l' int53 ça sert strictement a rien, faut avoir fini de dessiner avant mdr


Anciennement X-thunder28
Cats shall rule teh world!

Hors ligne

 

#5 15 Oct 2003 15:37:07

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Page Flipping en DB

Bon j'ai essayé  d'adapter ca pour sonic... Et ca clignote à mort  neutral
je sais pas si c moi qui ai laissé une connerie qq part (mais j'ai passé du temps a vérifier pourtant), mais c pas comme qd on dessine directement sur l'écran ou on peut voir les différents éléments apparaitre l'un apres l'autre; je pense plutot que la calto fait un "flash" a chaque fois qu'on change la page, qq soit le contenu des buffers et ce qui à l'écran à ce moment...
Enfin je suis pas sur, parce qu'alors en tte logique je devrais voir tout l'écran "flasher" entierement, or je vois l'arrière-plan en transparence à certains endroits et ca c pas normal. Mais bon je n'ai pas vu de gain énorme au niveau de la vitesse, je laisse donc ca sur le coté en attendant que d'autres se penchent sur cette technique wink :P


Pensez à surveiller mes releases wink

Hors ligne

 

#6 15 Oct 2003 16:15:41

2072
Programmeur Graph100
Lieu: Somewherebourg
Date d'inscription: 29 Jan 2002
Messages: 2056
Site web

Re: Page Flipping en DB

t'as dû te planter qq part, essaye en aveugle avec TOUCHE, tu te mets en DB et tu vas dans le menu F.


-~2072~-
Paid Emails
[URL=http://www.2072productions.com]2072productions.com[/URL]
[URL=http://www.casiocalc.org]casiocalc.org[/URL]

Hors ligne

 

#7 15 Oct 2003 16:21:26

2072
Programmeur Graph100
Lieu: Somewherebourg
Date d'inscription: 29 Jan 2002
Messages: 2056
Site web

Re: Page Flipping en DB

oui je viens d'essayer avec touche en aveugle et ça ne clignote pas du tout...


-~2072~-
Paid Emails
[URL=http://www.2072productions.com]2072productions.com[/URL]
[URL=http://www.casiocalc.org]casiocalc.org[/URL]

Hors ligne

 

#8 15 Oct 2003 16:39:34

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Page Flipping en DB

Bon ben je reprendrai ca une autre fois alors... smile


Pensez à surveiller mes releases wink

Hors ligne

 

#9 16 Oct 2003 09:24:36

Azor
Le Coté Obscur De La G100
Lieu: glop glop!
Date d'inscription: 04 May 2002
Messages: 5479
Site web

Re: Page Flipping en DB

si tu la mis sur interruption c'est normal alors lol

sinon... il me semble que un programme utilise cette technique mais me souvient plus de son nom...


Anciennement X-thunder28
Cats shall rule teh world!

Hors ligne

 

Pied de page des forums

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