Forum de la communauté SFML

Aide => Général => Discussion démarrée par: Cpl.Bator le Décembre 21, 2014, 04:49:51 pm

Titre: [SFML 2.2 ANDROID] Application en arrière plan
Posté par: Cpl.Bator le Décembre 21, 2014, 04:49:51 pm
Je ne trouve pas de solution idéale pour gérer une application en arrière plan.
Admettons que le joueur sans faire exprès appuis sur "retour au bureau" sans fermer l'application ,
comment peut on faire pour gérer correctement le retour dans l'application

si je ne ferme pas la sf::RenderWindow dans l'event lostFocus j'obtiens ce message :
Citer
<DequeueBuffer:606>: dequeue native buffer fail: No such device, buffer=0x0, handle=0x0
<qeglDrvAPI_eglSwapBuffers:3688>: EGL_BAD_SURFACE

si je la ferme , je n'obtiens pas de message d'erreur , mais impossible de recréer la fenêtre dans gainedFocus
sans que l'application plante, j'ai l'impression de cet event n'est pas pris en compte.


J'ai aussi plein d'erreur de ce type lors du déroulement normale de l'application:
Citer
sfml-error Failed to activate the window's context
Titre: Re : [SFML 2.2 ANDROID] Application en arrière plan
Posté par: Laurent le Décembre 21, 2014, 06:31:52 pm
La première erreur, est-elle "grave" ? Il me semble que j'ai sans cesse la même avec Qt, et ça n'empêche pas l'application de s'exécuter correctement.

Pour le problème de contexte, il faudrait isoler les circonstances dans lesquelles ça arrive, de même qu'un code minimal.
Titre: Re : [SFML 2.2 ANDROID] Application en arrière plan
Posté par: Cpl.Bator le Décembre 21, 2014, 06:45:49 pm
Citer
Pour le problème de contexte, il faudrait isoler les circonstances dans lesquelles ça arrive, de même qu'un code minimal.

L'exemple fournis avec la 2.2 génère cette erreur sous eclipse/logcat par exemple.

Citer
La première erreur, est-elle "grave" ? Il me semble que j'ai sans cesse la même avec Qt, et ça n'empêche pas l'application de s'exécuter correctement.

C'est sûr, mais je ne trouve pas cela "propre" , je pense qu'il y a un soucis avec gainedFocus. 
de même que j'ai l'erreur sur la libc :  Fatal signal 11 (SIGSEGV) dès lors que je quitte le programme , c'est aléatoire , dès fois je l'ai , des fois non...
Titre: Re : [SFML 2.2 ANDROID] Application en arrière plan
Posté par: Laurent le Décembre 21, 2014, 08:51:13 pm
Si tu ne dessines rien (ni clear(), ni draw(), ni display()) entre un LostFocus et un GainedFocus, tu as toujours la première erreur ?
Titre: Re : [SFML 2.2 ANDROID] Application en arrière plan
Posté par: Cpl.Bator le Décembre 21, 2014, 08:56:17 pm
non, en revanche ceci :
Citer
Fatal signal 11 (SIGSEGV) at 0x00000054 (code=1), thread 29342 (om.example.sfml)
Titre: Re : [SFML 2.2 ANDROID] Application en arrière plan
Posté par: Laurent le Décembre 21, 2014, 09:22:22 pm
Je jette l'éponge :P

Le spécialiste Android ce n'est pas malheureusement pas moi.
Titre: Re : [SFML 2.2 ANDROID] Application en arrière plan
Posté par: Cpl.Bator le Décembre 22, 2014, 02:02:16 pm
je te laisse remonté le bug à la personne concernée ?
Titre: Re : [SFML 2.2 ANDROID] Application en arrière plan
Posté par: Laurent le Décembre 22, 2014, 02:16:38 pm
Il vaut mieux ouvrir un ticket sur le tracker. Maintenant il y a même des guides sur  le site web qui expliquent comment faire ça bien ;)

Par contre avant de parler de rapport, commence par reproduire ces problèmes avec un code complet minimal.
Titre: Re : [SFML 2.2 ANDROID] Application en arrière plan
Posté par: Cpl.Bator le Décembre 22, 2014, 04:28:19 pm
C'est un bug, même avec un code mini , même problème.
je me penche donc vers le tracker avec mon petit code.
Titre: Re : [SFML 2.2 ANDROID] Application en arrière plan
Posté par: Cpl.Bator le Décembre 22, 2014, 05:00:42 pm
J'ai rien compris au wiki du github, ni même réussi a mettre un label...
j'ai quand même posté ici :
https://github.com/SFML/SFML/issues/755 (https://github.com/SFML/SFML/issues/755)
Titre: Re : [SFML 2.2 ANDROID] Application en arrière plan
Posté par: Laurent le Décembre 22, 2014, 05:56:38 pm
Merci :)

Les labels et tout le reste c'est nous qui nous en occupons, toi tout ce que tu as à faire c'est créer le ticket avec une description appropriée.