|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre actif
![]() ![]() Inscription : avril 2010 Messages : 328 ![]() |
Bonjour a tous, je de passer de SDL a SFML aujourd'hui et j'ai plusieurs questions :
-Lorsqu'on passe de mode fenêtré a plein écran, est on obligé de détruire la fenêtre ? (Il me semble que la méthode create détruit ma fenêtre puis la reconstruit). Ceci à le défaut de faire un flash pas très agréable. -Y a t-il l'équivalent d'un Blit en SDL ? J'ai cherché, et il me semble que l'on est obligé de Draw sur la RenderWindow. (Cette question est juste pour mes projets futurs) -En dernier, peut-on désactiver le "auto zoom" lors d'un évènement resize ? (sans se fatiguer avec les vues OpenGL) cad : Lors d'un resize, les objets ne sont pas automatiquement étirés. Merci de répondre à mes questions. Cette Bibliothèque surpasse toutes celles que j'ai essayées mis a part sur la gestion des event ou je la trouve on peu légère. |
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() ![]() Alexandre LaurentIngénieur développement logiciels Inscription : mai 2008 Messages : 10 367 ![]() |
Bonjour,
Moi je ne suis pas encore passer à la SFML, mais il me semblait possible de répondre à quelques points. Citation:
Citation:
Note: L'auteur de la SFML surveille quelque fois ce forum
__________________
Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi ![]() La rubrique a aussi un blog ! Ma page sur DVP Mon Portfolio Qui connaît l'erreur, connaît la solution. |
||
|
00
|
|
|
#3 | |
|
Membre actif
![]() ![]() Inscription : avril 2010 Messages : 328 ![]() |
Quand je disais blit je voulais dire blit Image/Image ou Sprite/Sprite et non Sprite/Ecran. Merci pour cette précision au niveau du "flash".
[EDIT] Citation:
|
|
|
|
00
|
|
|
#4 |
![]() ![]() ![]() ![]() Alexandre LaurentIngénieur développement logiciels Inscription : mai 2008 Messages : 10 367 ![]() |
Ce que vous dites pour firefox, c'est juste qu'il enlève certaine spécificité de la fenêtre ( la barre des titres, et des menus ... ) après, y a pas de changement de résolution ( je veux dire, que d'un point de vue technique il est toujours en windowed, sauf qu'il occupe tout l'écran ( ou presque )
__________________
Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi ![]() La rubrique a aussi un blog ! Ma page sur DVP Mon Portfolio Qui connaît l'erreur, connaît la solution. |
|
00
|
|
|
#5 | ||
![]() ![]() Développeur informatique Inscription : avril 2003 Messages : 10 651 ![]() |
En effet, le vrai mode plein écran n'a rien à voir avec certaines applications qui ne font que retirer les bordures et maximiser leur fenêtre. Ce qui flashe, c'est le changement de résolution : si tu utilises la même résolution que ton bureau normalement ça devrait être plus "smooth".
Citation:
Dans SFML 2, tu peux faire du vrai rendu sur image avec la classe RenderImage. Citation:
__________________
Mieux que SDL : découvrez SFML |
||
|
|
00
|
|
|
#6 | ||
|
Membre actif
![]() ![]() Inscription : avril 2010 Messages : 328 ![]() |
Merci pour ces réponses, mais peut-on avec la SFML supprimer les bordures et imiter Firefox pour le mode pleine écran (cad ne pas faire un plein écran).
Toutefois, quand je regarde la méthode de redimensionnement de mon IDE, je remarque qu'elle est progressive : Aujourd'hui, avec la SFML, lorsqu'on Resize la fenêtre, l'évènement n'est émit que lorsque l'utilisateur relâche la souri. Avec mon IDE (CodeBlocks), le redimensionnement est progressif : l'évènement resize doit être émit alors qu'on n'a pas encore relâcher la souri car on voit le redimensionnement de la fenetre avant même d'avoir relacher la souri. Est-ce possible avec la SFML ? [EDIT] J'ai remarquer que l'évènement resize apparaissais de nombreuses fois une fois avoir redimensionner la fenetre : Par exemple, si je prend 5 secondes pour redimensionner ma fenêtre, une fois l'avoir redimensionner (donc pas durant le redimensionnement), j'obtiens X >5 évènement resize. Si je prend 10 secondes, j'aurais env 2X evenement resize. Pourquoi ces évènements ne sont-ils pas émis durant le redimensionnement ? Quelle est l'utilité d'avoir une pile d'évènement identiques en même temps? Je vous montre le code qui créer ce phénomène : Code :
|
||
|
|
00
|
|
|
#7 | ||||
![]() ![]() Développeur informatique Inscription : avril 2003 Messages : 10 651 ![]() |
Citation:
Citation:
Citation:
Citation:
__________________
Mieux que SDL : découvrez SFML |
||||
|
|
00
|
|
|
#8 |
|
Membre actif
![]() ![]() Inscription : avril 2010 Messages : 328 ![]() |
Merci pour ces éclaircissements, je pense que le sujet est résolut. Me reste à voir comment faire du "fake" plein écran... (je m'y attaque tout de suite).
Ce problème au niveau de l'évènement resize est gênant. Toutefois, je continuerais sur la SFML... (Cette bibliothèque est vraiment bien faite). Quelqu'un saurait-il comment wxwidgets, QT et autres framework réussisent a interagir avec le systeme d'exploitation pour obtenir un resize progressif ? En tout cas, la SFML, c'est du bon boulot ! ![]() Manque juste quelques amélioration au niveau des évènements, et quelques docs (les docs du site officiel sont très bien mais plutôt superficielle ce qui m'oblige à aller fouiller dans les headers). Bon courage. |
|
|
00
|
|
|
#9 | ||||
|
Membre actif
![]() ![]() Inscription : avril 2010 Messages : 328 ![]() |
J'ai tout de même cherché une solution (du moins pour windows) pour l'agrandissement de la fenêtre. J'ai trouvé ceci.
Toutefois, je n'ai pas compris si cette evenement était émit tous les T secondes ou s'il était émit au début du resize et grace a WM_SIZE on récupère la fin du redimensionnement. Suite a cette découverte, ayant vu que l'on pouvait modifier les sources SFML (tant que ne proclame pas que se sont les originaux), j'ai modifié 2 fichiers : WindowImplWin32.cpp Code :
Event.hpp Code :
Merci a tous. |
||||
|
|
00
|
|
|
#10 | |||||
![]() ![]() Développeur informatique Inscription : avril 2003 Messages : 10 651 ![]() |
Citation:
Citation:
Citation:
Citation:
Citation:
A cause de ce que j'ai expliqué plus haut, ça ne va faire qu'empiler plein de Resize dans la pile d'évènements, et l'utilisateur ne pourra les consulter que lorsque le redimensionnement aura pris fin. Il n'y a pas à chercher, c'est techniquement impossible sans système de callback.
__________________
Mieux que SDL : découvrez SFML |
|||||
|
|
00
|
|
|
#11 | ||||
|
Membre actif
![]() ![]() Inscription : avril 2010 Messages : 328 ![]() |
Citation:
Il est vrai que la plupart de ces choses sont possibles facilement, cependant, il est toujours agréable de voir que les choses sont déjà faites. Citation:
Citation:
Citation:
En tout cas, merci d'avoir pris le temps de me répondre ; c'est toujours agréable de pouvoir avoir des réponses claires rapidement. La SFML à un brillant avenir... |
||||
|
|
00
|
|
|
#12 | |||||
![]() ![]() Développeur informatique Inscription : avril 2003 Messages : 10 651 ![]() |
Citation:
Citation:
Citation:
Citation:
Citation:
__________________
Mieux que SDL : découvrez SFML |
|||||
|
|
00
|
|
|
#13 | |
|
Membre actif
![]() ![]() Inscription : avril 2010 Messages : 328 ![]() |
Citation:
De plus, peut-on utiliser la fonction sendevt (qui permettrais de simuler des évènements) en SFML ou est-ce réservé à l'implémentation. Lorsque la fenetre est redimensionnée, windows bloque le processus ? Si oui comment les autres bibliothèques le font-elle ? lance-t-elle un autre processus ? |
|
|
|
00
|
|
|
#14 | |||
![]() ![]() Développeur informatique Inscription : avril 2003 Messages : 10 651 ![]() |
Citation:
Ce qui me conforte dans l'idée qu'il ne faut pas les implémenter De toute façon, quelqu'un qui aurait réellement besoin d'une gestion d'évènements persos implémenterait son propre système par dessus les évènements SFML liés à la fenêtre ; dans tous les cas ce n'est pas une bonne solution d'utiliser le même mécanisme. Citation:
Citation:
Note qu'utiliser un thread peut être une solution tout à fait envisageable dans certaines situations, pour contourner ce problème.
__________________
Mieux que SDL : découvrez SFML |
|||
|
|
00
|
|
|
#15 | |
|
Membre actif
![]() ![]() Inscription : avril 2010 Messages : 328 ![]() |
Citation:
Il me semble que je suis obligé de rappeler la méthode Create pour changer les window settings. Je vois donc sur mon écran une fenêtre en train de disparaitre et remplacée tout de suite. Est-il possible d'éviter la visualisation de la disparition de la fenêtre ? (par exemple faire pour que l'écran ne soit pas rafraichit avant que la nouvelle fenêtre soit créée ?) |
|
|
|
00
|
|
|
#16 |
![]() ![]() Développeur informatique Inscription : avril 2003 Messages : 10 651 ![]() |
Non ce n'est pas possible avec SFML. Tu peux redimensionner la fenêtre sans la recréer, mais pas changer son style. Ceci-dit ça pourrait être ajouté dans SFML 2, je ne vois pas d'inconvénient à ce genre de fonction.
__________________
Mieux que SDL : découvrez SFML |
|
|
00
|
|
|
#17 |
|
Membre actif
![]() ![]() Inscription : avril 2010 Messages : 328 ![]() |
Je crois que j'ai fini sur les questions de bases, merci pour tes réponses. Sujet Résolut.
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com