Moniteur parasité + carré noir venu de nul part !

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

Moniteur parasité + carré noir venu de nul part !

Message par SPH »

PS : je met mon post ici car il s'agit d'un bug; meme s'il y a peu de chance que ce soit un bug de PB

Salut,

parfois, quand j'etais sur le bureau de windows avec mon image en fond, le haut de l'ecran (1 tiers de la hauteur) etait parasité. Je me disais que c'était probablement un faux contact dans mon ordi mais j'ai enfin trouvé ce qui se passe.

En fait, sur mon ecran plat, on peux regler automatiquement la meilleure position de l'image selon la resolution. Et je me suis appercu que quand je faisais ce reglage sur un screen open de PB et que je repassais sur le bureau de windows, des parasites apparaissaient (ainsi que des fontes degoulinantes).

Apparement, le screenopen doit etre de la meme resolution que le bureau. Moi, j'ai le bureau en 1280*1024.
Donc, si votre bureau est aussi en 1280/1024, essayez ce code puis autoréglez votre moniteur puis quittez ce code et allez matter le bureau de windows. Regardez particulierement le premier tiers de l'ecran. Est il parasité ????

Ma premiere impression est que le 1280/1024 d'un screenopen de PB soit tres tres tres legerement decallé par rapport a un 1280/1024 de windows (faute a ma CG, a mon moniteur ou a PB, je n'en sais rien pour le moment)

Code : Tout sélectionner

InitSprite() 
InitKeyboard() 

dw=1280
dh=1024
dc=32

If OpenScreen(dw,dh,dc,"SPH_Snake")=0 
End 
EndIf 
StartDrawing(ScreenOutput()) 
MemVideo = DrawingBuffer() 
dbp=DrawingBufferPitch()
dbpf=DrawingBufferPixelFormat()
;1=  #PB_PixelFormat_8Bits       ; 1 bytes per pixel, palletized
;2=  #PB_PixelFormat_15Bits      ; 2 bytes per pixel 
;3=  #PB_PixelFormat_16Bits      ; 2 bytes per pixel
;4=  #PB_PixelFormat_24Bits_RGB  ; 3 bytes per pixel (RRGGBB)
;5=  #PB_PixelFormat_24Bits_BGR  ; 3 bytes per pixel (BBGGRR)
;6=  #PB_PixelFormat_32Bits_RGB  ; 4 bytes per pixel (RRGGBB)
;7=  #PB_PixelFormat_32Bits_BGR  ; 4 bytes per pixel (BBGGRR)
StopDrawing() 
Debug dbp
;End

;Dim p(dh-1,dw-1) 
Dim p(dh-1,dbp/4-1) 

;Points blancs aux 4 coins
p(0,0)=RGB(255,255,255)
p(0,dw-1)=RGB(255,255,255)
p(dh-1,dw-1)=RGB(255,255,255)
p(dh-1,0)=RGB(255,255,255)
;Points de couleur en retrait
p(5,5)=RGB(255,0,255)
p(5,dw-6)=RGB(255,0,255)
p(dh-6,dw-6)=RGB(255,0,255)
p(dh-6,5)=RGB(255,0,255)

; d'autre points pour bien signaler l'angle haut gauche
; car un bug apparait en resolution 1280/1024 !!
p(15,15)=RGB(0,255,255)
p(25,25)=RGB(0,255,255)
p(35,35)=RGB(0,255,255)
p(45,45)=RGB(0,255,255)
p(55,55)=RGB(0,255,255)
p(65,65)=RGB(0,255,255)
p(75,75)=RGB(0,255,255)
p(85,85)=RGB(0,255,255)
p(95,95)=RGB(0,255,255)

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

Repeat 
StartDrawing(ScreenOutput()) 

MemVideo = DrawingBuffer() 
If Random(1)>5 ;je force l'execution de ELSE
For u=0 To dh-1 
CopyMemory(@p(u,0), MemVideo+DrawingBufferPitch()*u,dw*4) 
Next 
Else
MemVideo = DrawingBuffer() 
CopyMemory(@p(), MemVideo, dh*dbp) 
EndIf

StopDrawing() 
FlipBuffers() 
Delay(1) 
ExamineKeyboard() 

Until KeyboardPushed(#PB_Key_Escape) 
Dernière modification par SPH le dim. 17/août/2008 19:08, modifié 3 fois.
Anonyme

Message par Anonyme »

Est il parasité ????
Non , pas de soucis.


Ta beaucoup de soucis avec tes écrans , ils sifflent , se parasitent , fait gaffe ,il va finir par te sauter à la gueule :D
Avatar de l’utilisateur
SPH
Messages : 4722
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

Cpl.Bator a écrit :
Est il parasité ????
Non , pas de soucis.


Ta beaucoup de soucis avec tes écrans , ils sifflent , se parasitent , fait gaffe ,il va finir par te sauter à la gueule :D
Le pire, c'est que tout deconne : ma CG a une micro coupure, mon alim est de tres mauvaise qualité et j'ai un port USB mort a force d'avoir trop tiré sur le cordon...



EDIT :

bon, je veux en finir avec un incroyable mystere. J'ai edité mon code; car outre les "parasites" presents sur mon moniteur, il y a un autre bug :

Essayez le code en resolution 1280/1024 et en 1024/768
NORMALEMENT, le screenopen est encadré de 4 points blancs. Mais au cas ou vous ne les verriez pas (si ils etaient hors ecran a cause du reglage de votre moniteur), j'ai encadré l'ecran de 4 points rouges qui ne sont pas pile poil sur le bord.
De plus, pour bien signaler le coin haut gauche, j'ai fait une ligne pointillé :
p(15,15)=RGB(0,255,255)
p(25,25)=RGB(0,255,255)
p(35,35)=RGB(0,255,255)
p(45,45)=RGB(0,255,255)
p(55,55)=RGB(0,255,255)
p(65,65)=RGB(0,255,255)
p(75,75)=RGB(0,255,255)
p(85,85)=RGB(0,255,255)
p(95,95)=RGB(0,255,255)

Pourquoi cette ligne ?
CAR : un carré noir apparut de nul part apparait uniquement en resolution 1280/1024 et viens masquer le bord haut gauche de l'ecran; ce qui efface le point blanc et le point rouge en haut a gauche !!!!!!!

j'espere que vous comprenez et que vous testerez. MERCIII
Avatar de l’utilisateur
SPH
Messages : 4722
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

Le bobor !!

Ce n'est meme pas un carré noir mais une bande de 512/64 qui refuse d'apparaitre a l'ecran !!!

mattez ligne 50 ceci:

Code : Tout sélectionner

;ici, je tartine des points rouges sur la zone 0,0 to 700,100 
For i=1 To 12000 
p(Random(100),Random(700))=RGB(0,0,255) 
Next 
Le code :

Code : Tout sélectionner

InitSprite() 
InitKeyboard() 

dw=1280
dh=1024
dc=32

If OpenScreen(dw,dh,dc,"SPH_Snake")=0 
End 
EndIf 
StartDrawing(ScreenOutput()) 
MemVideo = DrawingBuffer() 
dbp=DrawingBufferPitch()
dbpf=DrawingBufferPixelFormat()
;1=  #PB_PixelFormat_8Bits       ; 1 bytes per pixel, palletized
;2=  #PB_PixelFormat_15Bits      ; 2 bytes per pixel 
;3=  #PB_PixelFormat_16Bits      ; 2 bytes per pixel
;4=  #PB_PixelFormat_24Bits_RGB  ; 3 bytes per pixel (RRGGBB)
;5=  #PB_PixelFormat_24Bits_BGR  ; 3 bytes per pixel (BBGGRR)
;6=  #PB_PixelFormat_32Bits_RGB  ; 4 bytes per pixel (RRGGBB)
;7=  #PB_PixelFormat_32Bits_BGR  ; 4 bytes per pixel (BBGGRR)
StopDrawing() 
;End

;Dim p(dh-1,dw-1) 
Dim p(dh-1,dbp/4-1) 

For i=0 To dh-1
For u=0 To dbp/4-1
If Random(2)
p(i,u)=RGB(30,30,30)
EndIf
Next
Next

;Points blancs aux 4 coins
p(0,0)=RGB(255,255,255)
p(0,dw-1)=RGB(255,255,255)
p(dh-1,dw-1)=RGB(255,255,255)
p(dh-1,0)=RGB(255,255,255)
;Points de couleur en retrait
p(5,5)=RGB(255,0,255)
p(5,dw-6)=RGB(255,0,255)
p(dh-6,dw-6)=RGB(255,0,255)
p(dh-6,5)=RGB(255,0,255)

; d'autre points pour bien signaler l'angle haut gauche
; car un bug apparait en resolution 1280/1024 !!

;ici, je tartine des points rouges sur la zone 0,0 to 700,100
For i=1 To 12000
p(Random(100),Random(700))=RGB(0,0,255)
Next

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

Repeat 
StartDrawing(ScreenOutput()) 

MemVideo = DrawingBuffer() 
If Random(1)>5
For u=0 To dh-1 
CopyMemory(@p(u,0), MemVideo+DrawingBufferPitch()*u,dw*4) 
Next 
Else
MemVideo = DrawingBuffer() 
CopyMemory(@p(), MemVideo, dh*dbp) 
EndIf

StopDrawing() 
FlipBuffers() 
;Delay(1) 
ExamineKeyboard() 

Until KeyboardPushed(#PB_Key_Escape) 
Chez moi, ca donne exactement ca :

Image
Anonyme

Message par Anonyme »

chez moi , nickel :?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

pareil , avec mon 19 pouce CRT, ça marche niquel !! :)
j'ai une bande bien reguliere... :)

Image
Mytic
Messages : 466
Inscription : mer. 25/juil./2007 0:13

Message par Mytic »

Si c’est un écran à tube cathodique, et que t’as des troubles à l’écran, vibrations, couleurs bizarres (mauves) etc…
C’est un problème de magnétisation, il suffit d’utiliser un dé-magnétiseur en le passant 2 à 3 fois sur l’écran pour supprimer toute interférence magnétique !
Ou bricoler un, en utilisant une bobine de 20 cm de diamètre, et de la passer rapidement devant l’écran ! (opération risquée)

Mais si la capture d’écran manifeste les mêmes symptômes, ça veut dire que le problème ne vient pas de ton écran, mais peut être de ta carte graphique, ou un driver défrayant !
:idea:
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

@SPH

Aussi on ne sait pas ce qui tourne en même temps que ton appli.

Un code compatible avec la plupart des config ne serait-il pas le mieux ?

Code : Tout sélectionner

  InitEngine3D() 
  InitSprite() 
  InitKeyboard() 
  InitMouse() 
  ExamineDesktops() 
  OpenWindow(0, 0, 0, DesktopWidth(0), DesktopHeight(0), "Ogre3D", $80000000) 
  OpenWindowedScreen(WindowID(0), 0, 0, WindowWidth(0), WindowHeight(0), 0, 0, 0) 
  CreateCamera(0, 0, 0, 100, 100)
Avatar de l’utilisateur
SPH
Messages : 4722
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

Ollivier a écrit :@SPH

Aussi on ne sait pas ce qui tourne en même temps que ton appli.

Un code compatible avec la plupart des config ne serait-il pas le mieux ?

Code : Tout sélectionner

  InitEngine3D() 
  InitSprite() 
  InitKeyboard() 
  InitMouse() 
  ExamineDesktops() 
  OpenWindow(0, 0, 0, DesktopWidth(0), DesktopHeight(0), "Ogre3D", $80000000) 
  OpenWindowedScreen(WindowID(0), 0, 0, WindowWidth(0), WindowHeight(0), 0, 0, 0) 
  CreateCamera(0, 0, 0, 100, 100)
Heuuuuu....... en l'etat, ton code ne fait rien. De plus, ogre, j'y connais rien du tout.
Pourrais tu donner un code complet ??

ps : je ne vois meme pas l'idée :(
Répondre