Les DisplaySprites clignotent apres un DrawImage

Archive.
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Effectivement, c'est moi qui dit n'importe quoi. J'ai désassemblé l'exemple, et comme il est dit dans la doc, quand on ne passe pas de paramètre, c'est comme si on faisait un flipbuffers(1), donc on active bien la synchro... Du coup je pense que le problème vient peut-être d'un problème de pilotes (on peut "forcer" la désactivation de la synchro, notamment pour les jeux 3d), ou d'un problème avec PB (l'allocation de la mémoire pour l'image se fait peut-être en mémoire centrale, ce qui ralentirait les transferts vers la mémoire vidéo).
Avatar de l’utilisateur
SPH
Messages : 4722
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

djes a écrit :On va encore dire que je m'énerve mais c'est vraiment du grand n'importe quoi! Si tu désactives la synchro, c'est normal que tu aies un clignotement!!! Faudrait réviser le principe du double-buffer et de l'affichage avant d'accuser à tort et à travers.
Alors, va réviser...

ps : et si tu avais essayé les 3 flipbuffer differents, tu aurais vu que ca faisait la meme chose
beauregard
Messages : 1307
Inscription : dim. 08/juil./2007 18:32
Localisation : Toulouse

sans la connaissance, l'ignorance

Message par beauregard »

Code : Tout sélectionner

FlipBuffers()
ClearScreen(RGB(0, 0, 0))
voyez !
Dernière modification par beauregard le lun. 16/juin/2008 15:05, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

beauregard a écrit :

Code : Tout sélectionner

FlipBuffers()
ClearScreen(RGB(0, 0, 0))
voyez !
oui mais là c'est toi qui a pas Vu !!! :lol:
SPH a écrit :
Dobro a écrit :
SPH a écrit : En effet, ca fonctionne
Mais l'image pleine ecran recouvre de toute facon tout l'ecran. Alors l'image devrait remplacer un cls !!
C dingue quand meme : pb4 ne plantait pas, et a partir de 4.10, ca plante !!
parle en sur le Forum anglais a Fred :)
Non merci. Je n'irais pas au fofo anglais; c'est fred qui viendra a moi (au fofo fr)
c'est pas le tout d'arriver dans un topic !!

Faudrai voir a lire ce qui se dit avant !!

Voyez !
beauregard
Messages : 1307
Inscription : dim. 08/juil./2007 18:32
Localisation : Toulouse

ignare je suis, ignare je resterai

Message par beauregard »

Dobro a écrit :Faudrai voir a lire ce qui se dit avant !!
Voyez !
je voie, oh, et bien, me voilà pris ! Et moi qui pensais pouvoir briller l'instant d'un instant... je baisse ma tête rouge de honte :oops:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: ignare je suis, ignare je resterai

Message par Backup »

beauregard a écrit :
Dobro a écrit :Faudrai voir a lire ce qui se dit avant !!
Voyez !
je voie, oh, et bien, me voilà pris ! Et moi qui pensais pouvoir briller l'instant d'un instant... je baisse ma tête rouge de honte :oops:
:lol: :lol: :lol: quand meme pas :lol: :lol:
Anonyme

Message par Anonyme »

SPH a écrit :
djes a écrit :On va encore dire que je m'énerve mais c'est vraiment du grand n'importe quoi! Si tu désactives la synchro, c'est normal que tu aies un clignotement!!! Faudrait réviser le principe du double-buffer et de l'affichage avant d'accuser à tort et à travers.
Alors, va réviser...

ps : et si tu avais essayé les 3 flipbuffer differents, tu aurais vu que ca faisait la meme chose
Chez moi , seul le mode par défaut déconne. dans tout les cas , le 1° code est erroné , dans le sens ou l'écran n'est pas effacer , c'est à faire à chaque tour de boucle avant l'inversion des buffers ( syncro ou pas )
  • * Efface
    * Dessine
    * Rendu
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

SPH a écrit :
djes a écrit :On va encore dire que je m'énerve mais c'est vraiment du grand n'importe quoi! Si tu désactives la synchro, c'est normal que tu aies un clignotement!!! Faudrait réviser le principe du double-buffer et de l'affichage avant d'accuser à tort et à travers.
Alors, va réviser...

ps : et si tu avais essayé les 3 flipbuffer differents, tu aurais vu que ca faisait la meme chose
Je fais mon mea culpa, sachant que je n'ai pas ce problème sur mes postes, j'ai jugé un peu trop vite en voyant le flipbuffers() que tu désactivais la synchro.

En tous cas, essaye de remplacer le drawimage par un drawsprite. Cela permet de s'assurer que l'image est bien en mémoire vidéo, et donc c'est plus rapide (plus rapide en général aussi qu'un clearscreen; enfin ça dépend de la config).
Avatar de l’utilisateur
SPH
Messages : 4722
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

djes a écrit :En tous cas, essaye de remplacer le drawimage par un drawsprite. Cela permet de s'assurer que l'image est bien en mémoire vidéo, et donc c'est plus rapide (plus rapide en général aussi qu'un clearscreen; enfin ça dépend de la config).
Si c'est vrai, alors c'est une info utile
beauregard
Messages : 1307
Inscription : dim. 08/juil./2007 18:32
Localisation : Toulouse

nouvelle capacité, nouvelle approche

Message par beauregard »

SPH a écrit :
djes a écrit :En tous cas, essaye de remplacer le drawimage par un drawsprite. Cela permet de s'assurer que l'image est bien en mémoire vidéo, et donc c'est plus rapide (plus rapide en général aussi qu'un clearscreen; enfin ça dépend de la config).
Si c'est vrai, alors c'est une info utile
pour le jeu, il vaut mieux effectivement utiliser les bibliothèques sprite et sprite3D( sous réserve d'avoir une geforce avec au moins 128Mo de vram).

Si, par exemple, tu couvre tout l'écran de sprite3D en utilisant la transparence de ces dernier donc, le couple StartDrawing(ScreenOutput())
StopDrawing() pour afficher le fond va inéluctablement faire chuter le fps( faudra donc logiquement utiliser également des sprites3D pour ton fond).

sprite-> animation des personnages
sprite3D-> l'eau, les nuages, la poussière( transparence, zoom, rotation avec une facilité déconcertante)

Maintenant, avec les cartes dotées de 512 Mo de vram, il est légitime de remettre en cause cette, heu..., planification du travail, en songeant faire du "tout en sprite3D". Mais ceci, est une autre histoire...
Répondre