PureBasic

Forums PureBasic
Nous sommes le Lun 26/Oct/2020 13:22

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 2 messages ] 
Auteur Message
 Sujet du message: une horloge ....lente
MessagePosté: Lun 05/Mar/2018 23:38 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 4191
Salut,

petit soucis avec mon horloge qui est mega lente sur mon pb 5 (pas essayé avec pb4). Avez vous une explication ?

merciiii

Code:
; SPH(2006)
; PB4

InitSprite()
InitMouse()
InitKeyboard()

;SetPriorityClass_ ( GetCurrentProcess_ (), #IDLE_PRIORITY_CLASS )

If ExamineDesktops()
   dw.w=DesktopWidth(0)
   dh.w=DesktopHeight(0)
   do.b=DesktopDepth(0)
Else
   dw.w=1024
   dh.w=768
EndIf

OpenScreen(dw,dh,do,"Les horloges de SPH")


xx=dw/2
yy=dh/2
pis.f=ATan(1)*12.1585
pim.f=ATan(1)*12.1585
pih.f=ATan(1)*2.4317
echp=yy/1.4
;echh=yy/2.4
echm=yy/1.5
col=RGB(33,33,33)
ii.f=Random(20)/100
uu.f=Random(20)/100
ii2.f=Random(20)/100
uu2.f=Random(20)/100

;;;;;;;;;;;
;;;;;;;;;;;
;;;;;;;;;;;


Repeat ; Boucle principale

xxx=Cos(ii)*45+Sin(ii2)*40
yyy=Sin(uu)*45-Cos(uu2)*40
decx.f=Cos(ii)/18+Sin(uu2)/15

ExamineMouse()
xmouse=MouseDeltaX()/45 ; /x : x= sensibilité
ymouse=MouseDeltaY()/45 ; /x : x= sensibilité

If MouseButton(#PB_MouseButton_Left)<>0
s+1:If s>=60:s-60:m+1:EndIf:If m=60:m=0:h+1:EndIf:If h=12:h=0:EndIf
Else
h=Hour(Date()):m=Minute(Date()):s=Second(Date())
EndIf


;*****
ClearScreen(0)
StartDrawing(ScreenOutput())
;;;;;;;;;;;
ss.f=decx+s/pis
mm.f=decx+(m+s/60)/pim
hh.f=decx+(h+m/60)/pih
For i=0 To 11
If i=0 Or i=3 Or i=6 Or i=9
co=RGB(200,210,220)
Else
co=RGB(70,80,90)
EndIf
For u=1 To 5
Plot(xx+Sin(decx+i/pih)*(echp+xxx)+Random(6)-3,yy-Cos(decx+i/pih)*(echp+yyy)+Random(6)-3,co)
;Plot(xx+Sin(decx/12+i/pih)*echp+Random(6)-3,yy-Cos(decx/12+i/pih)*echp+Random(6)-3,co)
Next
Next
hh$=FormatDate("%hh:%ii:%ss", Date())
DrawText(0,0,hh$,1,0)
For u=0 To 15
For i=0 To 55
If Point(i,u)=1
r=(50+Random(u*12))
rv=RGB(r,r,r/(i/15+1))
Plot(20+i*8+Random(6),dh-120+u*8+Random(6),rv)
Plot(20+i*8+Random(6),dh-120+u*8+Random(6),rv)
Plot(20+i*8+Random(6),dh-120+u*8+Random(6),rv)
EndIf
Next
Next


x1=Sin(mm)*(echm+xxx)
y1=-Cos(mm)*(echm+yyy)
;Line(xx,yy,x1,y1,RGB(200,200,0))
dist=Sqr(x1*x1+y1*y1)
xx1.f=x1/dist
yy1.f=y1/dist
xx2.f=xx
yy2.f=yy
u=0
For i=0 To dist/3
r=Random(255)
Plot(xx2-u/32+Random(u/16),yy2-u/32+Random(u/16),RGB(r,r,0))
xx2+xx1
yy2+yy1
u+2
Next
For i=0 To dist/2
u-1
r=Random(255)
Plot(xx2-u/32+Random(u/16),yy2-u/32+Random(u/16),RGB(r,r,0))
xx2+xx1
yy2+yy1
Next


x1=Sin(hh)*(echm+xxx)
y1=-Cos(hh)*(echm+yyy)
;Line(xx,yy,x1,y1,RGB(200,0,0))
dist=Sqr(x1*x1+y1*y1)
xx1.f=x1/dist
yy1.f=y1/dist
xx2.f=xx
yy2.f=yy
u=0
For i=0 To dist/8
r=Random(255)
Plot(xx2-u/8+Random(u/4),yy2-u/8+Random(u/4),RGB(r,20,r/3))
xx2+xx1
yy2+yy1
u+2
Next
For i=0 To dist/4
u-1
r=Random(255)
Plot(xx2-u/8+Random(u/4),yy2-u/8+Random(u/4),RGB(r,20,r/3))
xx2+xx1
yy2+yy1
Next

x1=Sin(ss)*(echm+xxx)
y1=-Cos(ss)*(echm+yyy)
dist=Sqr(x1*x1+y1*y1)
xx1.f=x1/dist
yy1.f=y1/dist
xx2.f=xx-2
yy2.f=yy-2
For i=0 To dist
If Random(2)=1
Plot(xx2+Random(4),yy2+Random(4),RGB(0,0,Random(255)))
EndIf
xx2+xx1
yy2+yy1
Next

;ii+0.024
;uu+0.0189
;ii2+0.013
;uu2+0.021
ii+0.007
uu+0.0059
ii2+0.0043
uu2+0.0031

;;;;;;;;;;;
StopDrawing()
;*****

FlipBuffers()

Delay(1)

ExamineKeyboard()
Until KeyboardPushed(#PB_Key_All)
End


_________________
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: une horloge ....lente
MessagePosté: Mar 06/Mar/2018 10:30 
Hors ligne

Inscription: Mer 14/Sep/2011 16:59
Messages: 941
C'est tout bon avec mon pb562 x86.

Tu peux peut-être essayer les options de openscreen à savoir, d'après la doc:
Citation:
... Définit le mode de synchronisation utilisé avant l'échange des buffers.
(Vertical blank synchronization = Synchro verticale)').

Peut prendre l'une des valeurs suivantes :
#PB_Screen_NoSynchronization : Désactive la synchronisation
#PB_Screen_WaitSynchronization : Active la synchronisation (mode par défaut)
#PB_Screen_SmartSynchronization: Active la synchronisation en essayant de préserver le temps processeur,lorsque le jeu est en mode plein écran.

Attendre la synchronisation permet d'avoir des inversions de buffers parfaites, sans 'tearing' (ancienne et nouvelle image à moitié visible) ou autres effets parasites car l'inversion est effectuée lorsque que le faisceau lumineux est en dehors de la partie visible de l'écran. De plus, l'inversion se fait à un rythme régulier, en relation avec sa fréquence de rafraîchissement: par exemple, pour un écran en 60 Hz, l'inversion pourra se faire au maximum 60 fois par seconde (donc on aura un rythme régulier de 60 images/secondes).

ainsi que le taux de rafraîchissement.


Pour info, il est toujours bon de se rappeler que windows 8 et 10 ont leurs propres APIs et qu'ils émulent les APIs antérieurs (API windows 7, xp, etc). Ce qui donnent parfois des ralentissements inexpliqués et mêmes des comportements un peu bizarres surtout avec directX.

M.


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 2 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 32 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye