Page 1 sur 1
purebasic vs blitz
Publié : mer. 11/mai/2005 23:13
par kamelito
salut
ca vaut ce que ca vaut mais j'ai regardé deux meme prog sur PB et BB (rasters de unkof)
Resultat:
BB :
taille exe : 1264ko
temps cpu : entre 74 et 92 (souvent à 88 )
memoire utilisée : 5912ko
PB:
taille exe : 103ko
temps cpu : entre 81 et 96 (souvent 94)
memoire utilisée 2868ko
si qq'un a une routine afficher le framerate je suis preneur.
Info : impossible de s'incrire à ce forum sous Firefox, à chaque fois il me dit que le code de validation n'est pas bon (et non je n'ai pas des pb de vue

)
Re: purebasic vs blitz
Publié : jeu. 12/mai/2005 16:53
par comtois
kamelito a écrit :Info : impossible de s'incrire à ce forum sous Firefox, à chaque fois il me dit que le code de validation n'est pas bon (et non je n'ai pas des pb de vue

)
J'utilise Firefox , et je n'ai pas de problème.
pour la CPU , tu peux mettre un delay(10) dans la boucle pour la libérer , c'est à toi de voir.
pour le framerate il y a des exemples un peu partout , notamment sur
http://www.purearea.net
exemple
Code : Tout sélectionner
; English forum:
; Author: waffle
; Date: 29. May 2003
; Example for calculating the actual FrameRate
; This code does NOT run directly, it must be included in the main loop of your own program/game...
TimeDelay.l=100
MasterTimer.l=ElapsedMilliseconds()
;game loop
Repeat
FlipBuffers()
;and other code...
TimeDelay=ElapsedMilliseconds()-MasterTimer
MasterTimer=ElapsedMilliseconds()
FrameRate.f=1000/TimeDelay
Until quit
ou alors
Code : Tout sélectionner
Temps = ElapsedMilliseconds()
repeat
;/Calcul le temps d'affichage d'une image
If ElapsedMilliseconds()-Temps>1000
Temps = ElapsedMilliseconds()
Delta=1000.0/FPS
FPS=0
Else
FPS+1
EndIf
Flipbuffer()
until ....
Re: purebasic vs blitz
Publié : jeu. 12/mai/2005 21:06
par kamelito
Salut
>J'utilise Firefox , et je n'ai pas de problème.
Moi non plus une fois le compte crée sous IE, c'est la création qui ne marche pas.
>pour la CPU , tu peux mettre un delay(10) dans la boucle pour la libérer , >c'est à toi de voir.
>pour le framerate il y a des exemples un peu partout , notamment sur
>
http://www.purearea.net
Merci, c'est difficle à voir, mais avec un delay de 100 milliseconds j'ai 9 images/s donc 90 sans delay.
Re: purebasic vs blitz
Publié : jeu. 12/mai/2005 21:13
par kamelito
Re
Je trouve pas logique que pour afficher du texte dans un screen il faille faire startdrawing()/stopdrawing().
Pourquoi est-ce nécessaire? Il me semble logique que si je fais un drawtext() ca sera pour le screen que je viens d'ouvrir...
Don't you think ? (ca rajoute de l'overhead pas nécessaire IMHO)
Publié : jeu. 12/mai/2005 21:20
par filperj
Pourquoi est-ce nécessaire? Il me semble logique que si je fais un drawtext() ca sera pour le screen que je viens d'ouvrir...
Ou pour un sprite, ou une image, ou une fenêtre, ou une texture (je crois que c'est tout^^).
Publié : jeu. 12/mai/2005 21:23
par comtois
dans startdrawing() tu précises sur quelle surface tu écris ou dessine .
ça peut être l'écran , un sprite , une image, l'imprimante, une fenêtre , une texture .
Tu vois que c'est quand même utile de savoir ce que tu veux faire

Publié : ven. 13/mai/2005 7:51
par kamelito
Salut
Je comprends mieux maintenant merci, mais je trouve tjs pas ca logique de prime abord. Il aurait été dans ce cas plus logique de rajouter un paramètre pour spécifier l'output et par défaut prend l'écran ou la fenêtre ouverte
Je sais j'aime pas admettre que j'ai tort
comtois a écrit :dans startdrawing() tu précises sur quelle surface tu écris ou dessine .
ça peut être l'écran , un sprite , une image, l'imprimante, une fenêtre , une texture .
Tu vois que c'est quand même utile de savoir ce que tu veux faire

Publié : ven. 13/mai/2005 10:27
par Dr. Dri
c'est parce que les fonctions de dessin sont relativement bas niveau... l'idée c'est de faire un startdrawing pour l'élément sur lequel tu veux dessiner, de faire tous tes tracés, et d'arrêter de dessiner... Parce que le start/stop bouffe quand même un peu de temps...
Dri
Publié : ven. 13/mai/2005 10:38
par kamelito
Dr. Dri a écrit :c'est parce que les fonctions de dessin sont relativement bas niveau... l'idée c'est de faire un startdrawing pour l'élément sur lequel tu veux dessiner, de faire tous tes tracés, et d'arrêter de dessiner... Parce que le start/stop bouffe quand même un peu de temps...
Dri
Justement c'est ce que je voulais dire en qq sorte ca bouffe du temps pas nécessaire selon moi. Enfin j'ai pas mesurer l'overhead mais ca fait qd meme deux sous routines en plus. Or si tu dis ok je veux afficher sur l'écran, tu récupéres le pointeur bien avant de tracer et pas besoin de stardrawing/stopdrawing dans ta boucle principale. Pour ce qui est de l'affichage dans une fenetre c'est pas génant mais si tu fais une démo ou un jeu t'y perds IHMO.
Publié : ven. 13/mai/2005 15:24
par djes
A mon avis, Fred a choisi la solution la plus simple et la plus rapide...
Publié : ven. 13/mai/2005 19:27
par filperj
Startdrawing() initialise ... euh... plein de choses (je connais pas les détails, mais on accède pas à la mémoire vidéo aussi simplement qu'à la ram), et stopdrawing() rend la surface à nouveau disponible pour une utilisation normale.
Ça évite de faire tout ça à chaque fois qu'une commande de dessin est appelée.
En tout cas, c'est ce que j'ai compris.

Publié : ven. 13/mai/2005 21:41
par Dr. Dri
filperj a écrit :Startdrawing() initialise ... euh... plein de choses (je connais pas les détails, mais on accède pas à la mémoire vidéo aussi simplement qu'à la ram), et stopdrawing() rend la surface à nouveau disponible pour une utilisation normale.
Ça évite de faire tout ça à chaque fois qu'une commande de dessin est appelée.
En tout cas, c'est ce que j'ai compris.

exactement, si en blitz tu n'as pas de telle fonction, c'est probablement parce qu'elles sont exécutées de facon transparente avec chaque fonction de "dessin"
Dri