[v4] Gros bug ecran et changer d'utilisateur

Archive.
Gratteur
Messages : 147
Inscription : ven. 22/avr./2005 23:02

[v4] Gros bug ecran et changer d'utilisateur

Message par Gratteur »

Lorsqu’on utilise un écran dans une fenêtre et que l’on change d’utilisateur sans fermer la session (« Démarrer », « Fermer la session … », « Changer d’utilisateur »), ou alors plus grave lorsque l’écran de veille est protégé par un mot de passe (ce qui peut avoir pour effet de revenir au choix de l’utilisateur), l’écran disparaît, c’est horrible et je ne vois pas comment le faire revenir car je ne trouve pas de fonction IsScreen ou équivalent. De plus les sprites restent chargé et lorsque le programme est plus complexe que l’exemple ça se finit en plantage dès le « Ré-ouverture de la session » (si vous voyez ce que je veux dire).
Voici le code, essayez de "changer d’utilisateur" puis revenez lorsqu’il est lancé, vous verrez tout de suite ou se situe le problème :

Code : Tout sélectionner

If OpenWindow(0,0,0,900,700,#PB_Window_SystemMenu|#PB_Window_WindowCentered,"Test") = 0
  MessageRequester("Erreur", "L'ouverture de la fenetre a échouée, installez DirectX 7 (ou +)", 0)
EndIf
WindowID = WindowID(0)
If InitSprite() = 0
  MessageRequester("Erreur", "Initialisation des sprits impossible, installez DirectX 7 (ou +)", 0)
EndIf
If OpenWindowedScreen(WindowID, 50, 50, 800, 600, 0, 0, 0) = 0
  MessageRequester("Erreur", "L'ouverture de l'écran dans la fenetre a échoué, installez DirectX 7 (ou +)", 0)
EndIf
sprite = CreateSprite(#PB_Any,50,50) 
StartDrawing(SpriteOutput(sprite))
Box(0,0,32,32,RGB(255,255,255))
StopDrawing()

Repeat
  Delay(1)
  FlipBuffers()
  ClearScreen(0,0,0)
  DisplayTransparentSprite(sprite,375,275)
Until WindowEvent() = #PB_Event_CloseWindow
Quelqu’un a-t-il une solution alternative ? Est-il possible par exemple de savoir quand on change d’utilisateur sans fermer la session et quand le pc entre en veille ? Ce problème n'existe pas sous d'autres languages.
Dernière modification par Gratteur le lun. 22/mai/2006 17:12, modifié 16 fois.
Gratteur
Messages : 147
Inscription : ven. 22/avr./2005 23:02

Message par Gratteur »

Dans l'espoir d'une réponse, je remonte ce sujet datant d'un mois et demi.
Fred
Site Admin
Messages : 2648
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

La j'avoue que je suis perplexe. Je vais voir ce qu'il est possible de faire.
Gratteur
Messages : 147
Inscription : ven. 22/avr./2005 23:02

Message par Gratteur »

Merci Fred, une fois ce gros bug résolu, Purebasic n’aura plus grand-chose à envier aux autres Basics pour toutes les applications qui utilisent un écran.
Fred
Site Admin
Messages : 2648
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

Ca devrait etre bon, peux tu faire les tests avec ton programme plus complexe ? www.purebasic.com/beta/Sprite . Merci !
Gratteur
Messages : 147
Inscription : ven. 22/avr./2005 23:02

Message par Gratteur »

C'est moi qui te remercie de ne pas te démonter devant ce genre de bugs :wink:
Malgrès moultes tests, ce message apparait à chaque fois lors de la compilation. :

Image[/url]
Fred
Site Admin
Messages : 2648
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

IL va falloir que tu isntalles la derniere beta (3.94 beta 4)
Gratteur
Messages : 147
Inscription : ven. 22/avr./2005 23:02

Message par Gratteur »

Je suis toujours à la traîne…

Bon j’ai testé ce correctif sur plusieurs petits programmes :
- l’exemple du dessus : en revenant dans la session le blanc au centre se détériore (en plusieurs couleurs)
- une application utilisant un écran et peu de sprites et un jeu (plus gourmand) : en revenant dans la session l’écran est effacé comme avant et plante parfois.
Fred
Site Admin
Messages : 2648
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

C'est bizarre, ici j'ai testé avec beaucoup de programme, et ca a l'air de fonctionner normalement. tu as bien redemarrer pb entre temps etc.. ? Quelle est ta version d'XP/DirectX ?
Gratteur
Messages : 147
Inscription : ven. 22/avr./2005 23:02

Message par Gratteur »

J'ai redémarré le pc, pb et essayé sur plusieurs programmes, rien n'y fait.
Je tourne sous XP SP2 et DirectX 9c.

Je ferai un test sur une autre machine demain si ca peut aider.
Fred
Site Admin
Messages : 2648
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

Va falloir que je trouve autre chose pour preserver les sprites, j'ai plus d'idees pour l'instant.
Gratteur
Messages : 147
Inscription : ven. 22/avr./2005 23:02

Message par Gratteur »

Etant donné que ce sale bug de m**** est toujours présent dans la [v4 beta 11] de purebasic, qu’il est toujours aussi destructeur, que je n’ai pas trouvé d’alternative satisfaisante, que ce topic est mort depuis un an et que je n’ose pas sortir un projet à cause de ça depuis autant de temps, je fais un petit remontage de topic en règle avec mise à jours du code par ailleurs.
Plz save my poor soul Fred !

Code : Tout sélectionner

OpenWindow(0, 0, 0, 640, 480, "", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
InitSprite()
OpenWindowedScreen(WindowID(0), 0, 0, 640, 480, 0, 0, 0)

CreateSprite(0,10,10)
StartDrawing(SpriteOutput(0))
Box(0,0,9,9,RGB(255,255,255))
StopDrawing()

Repeat
  Delay(1)
  FlipBuffers()
  DisplayTransparentSprite(sprite,Random(640),Random(480))
Until WindowEvent() = #PB_Event_CloseWindow
Edit : Tiens, un bug similaire se produit si l'utilisateur change la résolution de son bureau pendant qu'un écran est actif, il a sans doute la même origine.
Ce n'est pas possible d'avoir petite fonction qui véfifierait l'intégrité des sprites ou de l'écran en attendant une solution ?
Dernière modification par Gratteur le lun. 22/mai/2006 17:05, modifié 1 fois.
Gratteur
Messages : 147
Inscription : ven. 22/avr./2005 23:02

Message par Gratteur »

Je confirme le bug, testé et approuvé sur une autre machine (win xp sp2 elle aussi), je m'étonne du peu de réactions des autres utilisateurs à ce sujet, vous ne voulez pas que PB soit moins buggé que les tous autres basics (je sais je provoque c'est déja le cas) et meilleurs que la plupart des languages professionnels ou quoi... ?! :x

Edit: Je suis énervé parceque que ça fait plus d'un an que ce bug me prend la tête, je sais que trouver une solution doit être laborieux, mais les plantages pur et simples occasionnés sont vraiment bloquants pour l'utilisateur (il ne touche pas à son pc 5 minutes, la session passe en attente et il perd tout son travail sur le logiciel codé en PureBasic) :mad:
Avatar de l’utilisateur
Thyphoon
Messages : 2697
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Gratteur a écrit :Je confirme le bug, testé et approuvé sur une autre machine (win xp sp2 elle aussi), je m'étonne du peu de réactions des autres utilisateurs à ce sujet, vous ne voulez pas que PB soit moins buggé que les tous autres basics (je sais je provoque c'est déja le cas) et meilleurs que la plupart des languages professionnels ou quoi... ?! :x

Edit: Je suis énervé parceque que ça fait plus d'un an que ce bug me prend la tête, je sais que trouver une solution doit être laborieux, mais les plantages pur et simples occasionnés sont vraiment bloquants pour l'utilisateur (il ne touche pas à son pc 5 minutes, la session passe en attente et il perd tout son travail sur le logiciel codé en PureBasic) :mad:
Je suis aussi confronté a ce bug depuis longtemps...Il suffit parfois d'un simple alt-tab avec un programme en plein ecran ...et les graphics sont corrompu ... J'ai fabriqué un frontend pour Mame et ma borne en purebasic. Resultat je ferme et libère tout les sprites/images et je ferme l'ecran. Pour réouvrir et tout recharger.c'est la seul solution que j'ai trouvé.
sylvain38
Messages : 4
Inscription : dim. 28/mai/2006 18:48
Localisation : Grenoble

Plantage application au changement d'utilisateur

Message par sylvain38 »

J'ai la version 4 et j'ai le même genre de probléme.
Au changement d'utilisateur ou ecran de veille, l'application plante au retour !!!!
Répondre