PureBasic

Forums PureBasic
Nous sommes le Mer 17/Juil/2019 3:50

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 9 messages ] 
Auteur Message
 Sujet du message: Moniteur parasité + carré noir venu de nul part !
MessagePosté: Dim 17/Aoû/2008 15:50 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 3980
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:
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 édition par SPH le Dim 17/Aoû/2008 19:08, édité 3 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: Dim 17/Aoû/2008 17:24 
Citation:
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


Haut
  
Répondre en citant le message  
 Sujet du message:
MessagePosté: Dim 17/Aoû/2008 18:34 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 3980
Cpl.Bator a écrit:
Citation:
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


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: Dim 17/Aoû/2008 20:09 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 3980
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:
;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:
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


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: Dim 17/Aoû/2008 22:44 
chez moi , nickel :?


Haut
  
Répondre en citant le message  
 Sujet du message:
MessagePosté: Dim 17/Aoû/2008 22:55 
Hors ligne

Inscription: Lun 26/Avr/2004 0:40
Messages: 14535
pareil , avec mon 19 pouce CRT, ça marche niquel !! :)
j'ai une bande bien reguliere... :)

Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: Dim 17/Aoû/2008 23:38 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 25/Juil/2007 0:13
Messages: 466
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:


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: Lun 18/Aoû/2008 3:02 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3461
@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:
  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)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: Lun 18/Aoû/2008 8:00 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 3980
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:
  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 :(


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

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


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 à:  
cron

 


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