Les DisplaySprites clignotent apres un DrawImage
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).
Alors, va réviser...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.
ps : et si tu avais essayé les 3 flipbuffer differents, tu aurais vu que ca faisait la meme chose
-
- Messages : 1307
- Inscription : dim. 08/juil./2007 18:32
- Localisation : Toulouse
sans la connaissance, l'ignorance
Code : Tout sélectionner
FlipBuffers()
ClearScreen(RGB(0, 0, 0))
Dernière modification par beauregard le lun. 16/juin/2008 15:05, modifié 1 fois.
oui mais là c'est toi qui a pas Vu !!!beauregard a écrit :voyez !Code : Tout sélectionner
FlipBuffers() ClearScreen(RGB(0, 0, 0))
c'est pas le tout d'arriver dans un topic !!SPH a écrit :Non merci. Je n'irais pas au fofo anglais; c'est fred qui viendra a moi (au fofo fr)Dobro a écrit :parle en sur le Forum anglais a FredSPH 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 !!
Faudrai voir a lire ce qui se dit avant !!
Voyez !
-
- Messages : 1307
- Inscription : dim. 08/juil./2007 18:32
- Localisation : Toulouse
ignare je suis, ignare je resterai
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 honteDobro a écrit :Faudrai voir a lire ce qui se dit avant !!
Voyez !
Re: ignare je suis, ignare je resterai
quand meme pasbeauregard a écrit :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 honteDobro a écrit :Faudrai voir a lire ce qui se dit avant !!
Voyez !
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 )SPH a écrit :Alors, va réviser...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.
ps : et si tu avais essayé les 3 flipbuffer differents, tu aurais vu que ca faisait la meme chose
- * Efface
* Dessine
* Rendu
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.SPH a écrit :Alors, va réviser...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.
ps : et si tu avais essayé les 3 flipbuffer differents, tu aurais vu que ca faisait la meme chose
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).
-
- Messages : 1307
- Inscription : dim. 08/juil./2007 18:32
- Localisation : Toulouse
nouvelle capacité, nouvelle approche
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).SPH a écrit :Si c'est vrai, alors c'est une info utiledjes 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, 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...