Le debut de la fin du bug du Point()

Programmation d'applications complexes
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Le debut de la fin du bug du Point()

Message par kernadec »

bonsoir LSI

Oui.. ma résolution se trouve dans la liste: 1920 x 1080 60Hz


Cordialement

640 x 400 70Hz
320 x 200 70Hz
640 x 480 60Hz
640 x 480 70Hz
320 x 240 70Hz
640 x 480 72Hz
640 x 480 75Hz
800 x 600 56Hz
800 x 600 60Hz
800 x 600 70Hz
400 x 300 70Hz
800 x 600 72Hz
800 x 600 75Hz
1024 x 768 60Hz
1024 x 768 70Hz
512 x 384 70Hz
1024 x 768 75Hz
1152 x 864 60Hz
1152 x 864 70Hz
1152 x 864 72Hz
1152 x 864 75Hz
1280 x 600 60Hz
1280 x 720 60Hz
1280 x 720 75Hz
1280 x 768 60Hz
1280 x 768 75Hz
1280 x 960 60Hz
1280 x 960 75Hz
1280 x 1024 60Hz
1400 x 1050 60Hz
1600 x 900 60Hz
1920 x 1080 60Hz
400 x 640 70Hz
640 x 400 70Hz
400 x 640 70Hz
480 x 640 60Hz
640 x 480 60Hz
480 x 640 60Hz
480 x 640 70Hz
640 x 480 70Hz
480 x 640 70Hz
480 x 640 72Hz
640 x 480 72Hz
480 x 640 72Hz
480 x 640 75Hz
640 x 480 75Hz
480 x 640 75Hz
600 x 800 56Hz
800 x 600 56Hz
600 x 800 56Hz
600 x 800 60Hz
800 x 600 60Hz
600 x 800 60Hz
600 x 800 70Hz
800 x 600 70Hz
600 x 800 70Hz
600 x 800 72Hz
800 x 600 72Hz
600 x 800 72Hz
600 x 800 75Hz
800 x 600 75Hz
600 x 800 75Hz
768 x 1024 60Hz
1024 x 768 60Hz
768 x 1024 60Hz
768 x 1024 70Hz
1024 x 768 70Hz
768 x 1024 70Hz
384 x 512 70Hz
512 x 384 70Hz
384 x 512 70Hz
768 x 1024 75Hz
1024 x 768 75Hz
768 x 1024 75Hz
864 x 1152 60Hz
1152 x 864 60Hz
864 x 1152 60Hz
864 x 1152 70Hz
1152 x 864 70Hz
864 x 1152 70Hz
864 x 1152 72Hz
1152 x 864 72Hz
864 x 1152 72Hz
1152 x 864 75Hz
600 x 1280 60Hz
1280 x 600 60Hz
600 x 1280 60Hz
720 x 1280 60Hz
1280 x 720 60Hz
720 x 1280 60Hz
1280 x 720 75Hz
768 x 1280 60Hz
1280 x 768 60Hz
768 x 1280 60Hz
1280 x 768 75Hz
960 x 1280 60Hz
1280 x 960 60Hz
960 x 1280 60Hz
1280 x 960 75Hz
1024 x 1280 60Hz
1280 x 1024 60Hz
1024 x 1280 60Hz
1050 x 1400 60Hz
1400 x 1050 60Hz
1050 x 1400 60Hz
900 x 1600 60Hz
1600 x 900 60Hz
900 x 1600 60Hz
1080 x 1920 60Hz
1920 x 1080 60Hz
1080 x 1920 60Hz
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Le debut de la fin du bug du Point()

Message par Backup »

j'obtiens
320 x 200 60Hz
320 x 240 60Hz
400 x 300 60Hz
512 x 384 60Hz
640 x 400 60Hz
640 x 480 60Hz
800 x 600 60Hz
1024 x 600 60Hz ;<--------- ceci est la résolution standard de mon bureau
384 x 512 60Hz
512 x 384 60Hz
384 x 512 60Hz
400 x 640 60Hz
640 x 400 60Hz
400 x 640 60Hz
480 x 640 60Hz
640 x 480 60Hz
480 x 640 60Hz
600 x 800 60Hz
800 x 600 60Hz
600 x 800 60Hz
600 x 1024 60Hz
1024 x 600 60Hz
600 x 1024 60Hz
;)
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Le debut de la fin du bug du Point()

Message par SPH »

kernadec a écrit :bonsoir LSI

Oui.. ma résolution se trouve dans la liste: 1920 x 1080 60Hz
Sauf que mon code d'envolé de pixels ne fonctionne pas en 1920/1080, c'est ca?

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Le debut de la fin du bug du Point()

Message par kernadec »

bonjour SPH
le dernier code exe de ton dernier MP ne fonctionne pas chez moi.

ton précédent fichier.exe fonctionnait très bien,
Afin d'éviter toutes confusions,
je me permet de rééditer ton code source qui fonctionne en 1920/1080 avec SPH3.bmp (Mode sans débogueur)


cordialement

Code : Tout sélectionner

InitSprite() 
InitMouse() 
InitKeyboard() 

;SetPriorityClass_ ( GetCurrentProcess_ (), #IDLE_PRIORITY_CLASS ) 
Global dw.w,dh.w,SPH_Z,SPH_NOMBRE

If ExamineDesktops()
dw=DesktopWidth(0) 
dh=DesktopHeight(0) 
If OpenScreen(dw,dh,32,"King Pixels") 
Else
  Goto autre
EndIf
Else 
  autre:
dw=1280
dh=1024
If OpenScreen(dw,dh,32,"King Pixels") 
Else
dw=1280
dh=960
If OpenScreen(dw,dh,32,"King Pixels") 
Else
dw=1280
dh=800
If OpenScreen(dw,dh,32,"King Pixels") 
Else
dw=1280
dh=768
If OpenScreen(dw,dh,32,"King Pixels") 
Else
dw=1280
dh=720
If OpenScreen(dw,dh,32,"King Pixels") 
Else
dw=1024
dh=768
If OpenScreen(dw,dh,32,"King Pixels") 
Else
dw=1024
dh=600
If OpenScreen(dw,dh,32,"King Pixels") 
Else
MessageRequester("Erreur", "OpenScreen impossible")
End
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf 

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

;LoadSprite(0,"d:\PureBasic\PB\SPH.bmp")
LoadSprite(0,"d:\SPH3.bmp")
;LoadSprite(0,"SPH.bmp")
DisplaySprite(0,0,0)
SPH_x=SpriteWidth(0)
SPH_y=SpriteHeight(0)
;;;;;;;;;;;
;;;;;;;;;;;
cmb=0
StartDrawing(ScreenOutput()) 
For u=0 To SPH_y-1
	For i=0 To SPH_x-1
		x=Point(i,u)
		If x>0
			cmb+1
		EndIf
	Next
Next
StopDrawing() 

xx1=Random(dw-1-SPH_x)
yy1=Random(dh-1-SPH_y)
xx2=Random(dw-1-SPH_x)
yy2=Random(dh-1-SPH_y)

nb=cmb
nb2=0
cmb=0
;;;;;;;;;;;

nombre=9
Dim x.f(nombre)
Dim y.f(nombre)


Dim oux.w(40)
Dim ouy.w(40)
For i=0 To 40
	oux(i)=Random(dw-1-SPH_x)
	ouy(i)=Random(dh-1-SPH_y)
Next

;;;;;;;;;;;

Global Dim p.w(nb,2500)
	Procedure bspline(x0,y0,x1,y1,x2,y2,x3,y3,n,cmb) 
For z = 0 To SPH_Z-1;149
		
		t1.f = z/SPH_Z;150
		t2.f = t1*t1
		t3.f = t1*t1*t1

			k1.f = 1 - 3*t1 + 3*t2 - t3
		k2.f = 4 - 6*t2 + 3*t3
			k3.f = 1 + 3*t1 + 3*t2 - 3*t3

		xfinal.f = (x0 * k1 + x1 * k2 + x2 * k3 + x3 * t3) / 6
				yfinal.f = (y0 * k1 + y1 * k2 + y2 * k3 + y3 * t3) / 6

		;Plot (xfinal,yfinal,RGB(0,255,0))   
		;Debug 9+z*2+n*140
		
			If xfinal<0
				xfinal=0
			EndIf
			If yfinal<0
				yfinal=0
			EndIf
			
			If xfinal>dw-1-p(cmb,0)
				xfinal=dw-1
			EndIf
			If yfinal>dh-1-p(cmb,1)
				yfinal=dh-1
			EndIf
;     
		;Plot(p(i,9+p(i,5)*2)+p(i,0),p(i,10+p(i,5)*2)+p(i,1),RGB(p(i,2),p(i,3),p(i,4)))
			
		p(cmb,9+z*2+n*SPH_Z*2)=xfinal
		p(cmb,10+z*2+n*SPH_Z*2)=yfinal
		
;     If z=SPH_Z-1
;     p(cmb,8)=(SPH_NOMBRE+1)*SPH_Z;900
;     EndIf
	
	Next z
EndProcedure 


StartDrawing(ScreenOutput()) 
For u=0 To SPH_y-1
	For i=0 To SPH_x-1
		x=Point(i,u)
		If x>0
			cmb+1
			p(cmb,0)=i
			p(cmb,1)=u
			p(cmb,2)=Red(x)
			p(cmb,3)=Green(x)
			p(cmb,4)=Blue(x)
			x=Random(Random(2000))
			p(cmb,5)=-Random(Random(Random(1000)))-x+Random(Random(x))
			p(cmb,6)=xx1
			p(cmb,7)=yy1
			
			SPH_Z=120+Random(80)
			SPH_NOMBRE=nombre-4-Random(2)
;       SPH_Z=200
;       SPH_NOMBRE=nombre-4
			p(cmb,8)=(SPH_NOMBRE+1)*SPH_Z;900
			
For n=0 To nombre
	x(n)=Random(dw-1-SPH_x)
	y(n)=Random(dh-1-SPH_y)
	x=Random(Random(Random(40)))
	;x=Random(Random(40))
	x(n)=oux(x)
	y(n)=ouy(x)
	;x(n)=oux(Random(Random(Random(20))))
	;y(n)=ouy(Random(Random(Random(20))))
Next

	x(0)=xx1 : y(0)=yy1
	x(1)=xx1 : y(1)=yy1
	x(2)=xx1 : y(2)=yy1
	
	x(SPH_NOMBRE+1)=xx2 : y(SPH_NOMBRE+1)=yy2
	x(SPH_NOMBRE+2)=xx2 : y(SPH_NOMBRE+2)=yy2
	x(SPH_NOMBRE+3)=xx2 : y(SPH_NOMBRE+3)=yy2
	
		
	For n=0 To SPH_NOMBRE;nombre-4   ; On trace la bspline
		bspline(x(n),y(n),x(n+1),y(n+1),x(n+2),y(n+2),x(n+3),y(n+3),n,cmb)
	Next
	;End
	
;*********************************************
			
		
			p(cmb,9+p(cmb,8)*2)=xx2
			p(cmb,10+p(cmb,8)*2)=yy2
		EndIf
	Next
Next
StopDrawing() 
; If cmb<>nb
;   End
; EndIf

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

debut:

Repeat 
	ClearScreen(0)

;ExamineMouse() 
;*****


StartDrawing(ScreenOutput()) 
;;;;;;;;;;;

For i=1 To nb
	
	If p(i,5)<>32700
		p(i,5)+1
		If p(i,5)=p(i,8)
			p(i,5)=32700
			nb2+1
		EndIf
	EndIf
	
	If p(i,5)<0
Plot(p(i,6)+p(i,0),p(i,7)+p(i,1),RGB(p(i,2),p(i,3),p(i,4)))
Else
; Plot(p(i,9+p(i,8))+p(i,0),p(i,10+p(i,8))+p(i,1),RGB(p(i,2),p(i,3),p(i,4)))
	If p(i,5)<>32700
	Plot(p(i,9+p(i,5)*2)+p(i,0),p(i,10+p(i,5)*2)+p(i,1),RGB(p(i,2),p(i,3),p(i,4)))
	Else
	Plot(p(i,9+p(i,8)*2)+p(i,0),p(i,10+p(i,8)*2)+p(i,1),RGB(p(i,2),p(i,3),p(i,4)))
	EndIf
EndIf
Next


;zz+1 : zz%(dw) : Plot(zz,0,RGB(0,255,0))
;;;;;;;;;;;
StopDrawing() 
;*****
FlipBuffers() 

If nb2=nb
		Gosub dta
		Goto debut
EndIf


ExamineKeyboard() 
Until KeyboardPushed(#PB_Key_Escape)
End 

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

dta:

nb2=0

xx1=xx2
yy1=yy2
xx2=Random(dw-1-SPH_x)
yy2=Random(dh-1-SPH_y)

Dim oux.w(40)
Dim ouy.w(40)
For i=0 To 40
	oux(i)=Random(dw-1-SPH_x)
	ouy(i)=Random(dh-1-SPH_y)
Next

For ii=1 To nb
			x=Random(Random(2000))
			p(ii,5)=-Random(Random(Random(1000)))-x+Random(Random(x))
			p(ii,6)=xx1
			p(ii,7)=yy1
			
			SPH_Z=120+Random(80)
			SPH_NOMBRE=nombre-4-Random(2)
			p(ii,8)=(SPH_NOMBRE+1)*SPH_Z;900
			
For n=0 To nombre
	x(n)=Random(dw-1-SPH_x)
	y(n)=Random(dh-1-SPH_y)
	x=Random(Random(Random(40)))
	;x=Random(Random(40))
	x(n)=oux(x)
	y(n)=ouy(x)
	;x(n)=oux(Random(Random(Random(20))))
	;y(n)=ouy(Random(Random(Random(20))))
Next

	x(0)=xx1 : y(0)=yy1
	x(1)=xx1 : y(1)=yy1
	x(2)=xx1 : y(2)=yy1
	
	x(SPH_NOMBRE+1)=xx2 : y(SPH_NOMBRE+1)=yy2
	x(SPH_NOMBRE+2)=xx2 : y(SPH_NOMBRE+2)=yy2
	x(SPH_NOMBRE+3)=xx2 : y(SPH_NOMBRE+3)=yy2
	
	For n=0 To SPH_NOMBRE;nombre-4   ; On trace la bspline
		bspline(x(n),y(n),x(n+1),y(n+1),x(n+2),y(n+2),x(n+3),y(n+3),n,ii)
	Next
		
	p(ii,9+p(ii,8)*2)=xx2
	p(ii,10+p(ii,8)*2)=yy2
	
Next

Return


Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Le debut de la fin du bug du Point()

Message par SPH »

kernadec a écrit :bonjour SPH
le dernier code exe de ton dernier MP ne fonctionne pas chez moi.

ton précédent fichier.exe fonctionnait très bien,
Afin d'éviter toutes confusions,
je me permet de rééditer ton code source qui fonctionne en 1920/1080 avec SPH3.bmp (Mode sans débogueur)


cordialement

Code : Tout sélectionner

InitSprite() 
InitMouse() 
InitKeyboard() 

;SetPriorityClass_ ( GetCurrentProcess_ (), #IDLE_PRIORITY_CLASS ) 
Global dw.w,dh.w,SPH_Z,SPH_NOMBRE

If ExamineDesktops()
dw=DesktopWidth(0) 
dh=DesktopHeight(0) 
If OpenScreen(dw,dh,32,"King Pixels") 
Else
  Goto autre
EndIf
Else 
  autre:
dw=1280
dh=1024
If OpenScreen(dw,dh,32,"King Pixels") 
Else
dw=1280
dh=960
If OpenScreen(dw,dh,32,"King Pixels") 
Else
dw=1280
dh=800
If OpenScreen(dw,dh,32,"King Pixels") 
Else
dw=1280
dh=768
If OpenScreen(dw,dh,32,"King Pixels") 
Else
dw=1280
dh=720
If OpenScreen(dw,dh,32,"King Pixels") 
Else
dw=1024
dh=768
If OpenScreen(dw,dh,32,"King Pixels") 
Else
dw=1024
dh=600
If OpenScreen(dw,dh,32,"King Pixels") 
Else
MessageRequester("Erreur", "OpenScreen impossible")
End
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf 
Donc, pour resumer a LSI, mon code avec ton ouverture d'ecran ne fonctionne pas mais mon code avec mon entete (ci dessus) fonctionne.
Code qui marche : http://xmas.free.fr/pb/king_pixels.exe
Celui qui ne marche pas chez kernadec : http://xmas.free.fr/pb/king_pixels2.exe

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Le debut de la fin du bug du Point()

Message par kernadec »

@Donc, pour résumer a LSI, mon code avec ton ouverture d'écran ne fonctionne pas mais mon code avec mon entête (ci dessus) fonctionne.
c'est exact! apparemment cela semble être ça.
cordialement
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Le debut de la fin du bug du Point()

Message par SPH »

zaphod a écrit :Salut tous,

Je me pose des questions sur le bug point.
J'ai fait un equivalent du test de SPH en Blitzmax.
L'exe fait 1313 ko
Il est dispo ici : http://landzone.free.fr/bugpointsph.zip
J'ai testé sur xp et seven 32 bits : j'obtiens 8290 (avec le logo de SPH).
Dobro, as tu testé ?

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Le debut de la fin du bug du Point()

Message par SPH »

Reponse de Freak (Fred ?) sur le forum anglais a propos du bug du point venant d'un sprite :
I do not get this error either.

Point() is a very, very simple command. It is doubtful that there is anything wrong with it.

The most likely explanation is that the change is caused when displaying the sprite. Since the graphic card does that, it is not a PB bug. (It is most likely not even a bug in the graphic driver. Displayed colors are not always 100% accurate for performance reasons. You can't see the difference between black and almost black anyway.)
Si je ne m'abuse, la traduction est que quand on affiche un sprite, il peut etre modifié legerement par la carte graphique; d'ou les changements noté par le Point(). Ce n'est donc pas un bug PB.

Je vais donc pondre un code n'utilisant pas un sprite pour voir...

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Le debut de la fin du bug du Point()

Message par djes »

Ou comment Microsoft nous fait revenir à l'analogique en partant du numérique! :lol:
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Le debut de la fin du bug du Point()

Message par kernadec »

bonjour
@LSI quand je lance ton test sans directX la résolution n'est pas acceptée et la boite d'avertissement n'a pas le focus et reste derrière la première fenêtre, il y à aussi le Sprite souris qui disparait pour cliqué OK pas facile.
@SPH dans ton programme avec le code de LSI, Compile tu avec l'option sous système directX
Cordialement
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Le debut de la fin du bug du Point()

Message par SPH »

kernadec a écrit :@SPH dans ton programme avec le code de LSI, Compile tu avec l'option sous système directX
Je compile toujours comme ca :
Image

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Le debut de la fin du bug du Point()

Message par kernadec »

bonjour SPH
pour avoir une meilleur prise en charge des cartes graphiques avec Windows,
dans le cas de ton code avec la routine de LSI;
il te faut indiquer en option de compilation dans case sous système: directX7 ou 9

Cordialement
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Le debut de la fin du bug du Point()

Message par SPH »

kernadec a écrit :bonjour SPH
pour avoir une meilleur prise en charge des cartes graphiques avec Windows,
dans le cas de ton code avec la routine de LSI;
il te faut indiquer en option de compilation dans case sous système: directX7 ou 9

Cordialement
Tiens, prend king_pixels2.pb ici et compile le comme tu l'entends et essaye : http://xmas.free.fr/pb/

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Le debut de la fin du bug du Point()

Message par kernadec »

bonjour
parfait, compiler avec l'option DirectX7 en ficher.exe,
Cela fonctionne très bien et avec ma résolution 1920/1080
pour la question suivante: "Est-ce que cette phrase ou les pixels clignotent ??" et non chez moi les pixels ne clignotent pas.

Cordialement
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Le debut de la fin du bug du Point()

Message par SPH »

kernadec a écrit :bonjour
parfait, compiler avec l'option DirectX7 en ficher.exe,
Cela fonctionne très bien et avec ma résolution 1920/1080
pour la question suivante: "Est-ce que cette phrase ou les pixels clignotent ??" et non chez moi les pixels ne clignotent pas.

Cordialement
Ok, je posais cette question car un ami sous seven avec mon systeme d'ouverture de screen me dis que les pixels en bas de l'ecran clignotent. Et LSI a suggeré que ce serait dut a une frequence trop basse (si j'ai bien compris). Donc, j'ai fais la demo avec l'entete de LSI pour l'ouverture du screen et je ferais tester differentes frequences quand je le verrais.

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Répondre