|
Publicité ' | ||||||||||||||||||||||||
|
|
#21 |
|
Membre du Club
![]() Inscription : janvier 2011 Messages : 373 ![]() |
Ah ok!
J'ai pensé à cette solution mais je ne sais pas comment récupérer la taille de l'écran automatiquement. |
|
|
00
|
|
|
#22 | ||
|
Membre éclairé
![]() Développeur informatique Inscription : mai 2011 Messages : 203 ![]() |
En supposant que tu n'aies pas changé le nom des variables, ecran->w te donne la largeur actuelle de ta fenêtre, ecran->h sa hauteur.
Si tu parles de la taille maximale de la fenêtre que peut contenir ton écran, Code :
|
||
|
|
10
|
|
|
#23 | ||||
|
Membre du Club
![]() Inscription : janvier 2011 Messages : 373 ![]() |
ah D'accord ! Je vous remercie.
J'ai remarqué cependant que j'avais un autre problème. Lorsque je veux diviser la taille de la fenêtre par deux en utilisant la touche 2 du clavier, l'image diminue mais la fenêtre reste à la même taille (ce qui est bizarre). J'ai aussi des fuites de mémoires dû à la SDL. Pouvez vous m'aidez svp ? Voici le code un peu modifié que j'utilise : Code :
Code :
|
||||
|
|
00
|
|
|
#24 | ||
|
Membre éclairé
![]() Développeur informatique Inscription : mai 2011 Messages : 203 ![]() |
Hello,
Je suppose que tu fais appel à la fonction affiche() à chaque fois l'utilisateur demande une modification de la taille de l'image. Et là, tu fais un SDL_GetVideoInfo(). Mais comme tu as déjà utilisé SDL_SetVideoMode(), les tailles renvoyées sont celles du dernier SDL_SetVideoMode(). Refaire à chaque fois un SDL_Init() n'a pas de sens (pour ce que j'en sais), car cette fonction initialise ceraines "choses" (structures, espace mémoire, etc... je n'ai jamais lu les sources) nécessaires à la SDL, mais ne réinitialise pas la SDL. Il faut faire le SDL_Init() une seule fois, et immédiatement derrière le SDL_GetVideoInfo(). Là, tu as les tailles maximales de la fenêtre que ton écran peut contenir. Exemple: Code :
|
||
|
|
00
|
|
|
#25 |
|
Membre du Club
![]() Inscription : janvier 2011 Messages : 373 ![]() |
Hi,
Je n'y avais pas pensé, je vais faire l'initiation de la SDL dans le main. Cependant je ne pense pas que le problème vienne de là car j'appelle affiche une seule fois pour le moment. Le redimensionnement s'effectue dans la fonction treatEvent, j'ai peut être aussi un souci dans la fonction displayImage ou treatEvent. |
|
|
00
|
|
|
#26 |
|
Membre éclairé
![]() Développeur informatique Inscription : mai 2011 Messages : 203 ![]() |
Peux-tu poster tout ton code, qu'on voie l'ensemble?
|
|
|
00
|
|
|
#27 |
|
Membre du Club
![]() Inscription : janvier 2011 Messages : 373 ![]() |
D'accord,
Pour que se soit plus simple j'ai réécrit mon code pour ne prendre en considération que l'affichage. Le problème se situe au niveau de la gestion des événements lorsque j'appuie sur la touche 2 de mon clavier l'image diminue mais la fenêtre reste à la même taille. |
|
|
00
|
|
|
#28 | ||
|
Membre éclairé
![]() Développeur informatique Inscription : mai 2011 Messages : 203 ![]() |
Je viens de compiler ton application et de l'exécuter, pas de soucis, l'affichage est normal; quand j'appuie sur la touche 2 ma fenêtre se réduit bien de moitié, ctrl+2 l'agrandit bien du double et 1 la ramène à la proportion 1:1
Par contre, j'ai noté un petit soucis dans ton code (qui ne l'empêche pas de fonctionner, mais qui empêche d'avoir ce que voudrait) Code :
if(largeur_max<ncol || hauteur_max<nrow)nrow=hauteur_max;ncol=largeur_max;} Par contre, je ne comprends pas ceci: Code :
|
||
|
|
00
|
|
|
#29 | |||
|
Membre du Club
![]() Inscription : janvier 2011 Messages : 373 ![]() |
Citation:
Par contre j'ai constaté que si j'appuyais sur l'onglet de redimensionnement de la fenêtre avant d'appuyer sur 2 la ça marche. Code :
voici une image de ce que j'obtiens en appuyant sur la touche 2: |
|||
|
|
00
|
|
|
#30 | |
|
Membre éclairé
![]() Développeur informatique Inscription : mai 2011 Messages : 203 ![]() |
Citation:
Sous quel système es-tu? Perso, sous win7, et que j'exécute l'application à partir d'une fenêtre DOS (qui elle ne change pas de taille évidemment) ou d'un raccourci sur le bureau, tout est ok. Je ne l'exécute pas à partir d'un EDI. Essaie en mettant un raccourci vers ton application, ça aidera peut-être. |
|
|
|
00
|
|
|
#31 |
|
Membre du Club
![]() Inscription : janvier 2011 Messages : 373 ![]() |
Je suis sur Linux Ubuntu. J'execute mon programme dans un terminal à l'aide d'un makefiles. Je n'utilise pas de IDE mais gedit.
Par contre je ne comprends pas pourquoi dès que je lance mon exécutable la fenêtre est automatiquement redimensionner, elle n’apparaît pas à sa taille réelle. |
|
|
00
|
|
|
#32 |
|
Membre éclairé
![]() Développeur informatique Inscription : mai 2011 Messages : 203 ![]() |
Hélas, à partir d'ici, je vais plus pouvoir t'aider, je ne connais pas l'environnement dans lequel tu travailles.
Pour ce qui est de l'application, pour moi, elle fonctionne. J'espère que quelqu'un qui connait ton environnement viendra jeter un oeil à cette discussion. [EDIT] Peut-être que gedit réagit 'un peu' comme mon dos, et ne redimensionne pas sa fenêtre en fonction de celle qu'elle contient? [/EDIT] Edgar. |
|
|
00
|
|
|
#33 |
|
Membre du Club
![]() Inscription : janvier 2011 Messages : 373 ![]() |
D'accord pas de soucis, je vous remercie.
|
|
|
00
|
|
|
#34 |
![]() ![]() ![]() ![]() Alexandre LaurentIngénieur développement logiciels Inscription : mai 2008 Messages : 10 423 ![]() |
J'ai testé (sous Linux et tout).
Le problème, me semble t-il, est que la fenêtre est créer en Maximize. Du coup, le redimensionnement n'est pas possible. Après, c'est peut être à cause de l'implémentation de la SDL, sous Linux, je ne sais pas trop. Car il ne me semble pas qu'il y ai de flag pour dire que ce n'est pas maximisé. @edgarjacobs : gedit est juste un éditeur de texte, tout simple. Le seul truc que je vois, c'est que sous Windows, la fenêtre n'est pas nécessairement maximisé dans ces conditions. Peut être qu'il faut d'abord créer la fenêtre en une moitié de l'écran et ensuite, la faire grandir.
__________________
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
|
|
|
#35 |
|
Membre du Club
![]() Inscription : janvier 2011 Messages : 373 ![]() |
ah ok d'accord, c'est bizarre.
|
|
|
00
|
|
|
#36 | ||
|
Membre éclairé
![]() Développeur informatique Inscription : mai 2011 Messages : 203 ![]() |
@littlewhite
Citation:
Citation:
La fenêtre (noire) montrée dans la maniature, par qui (quoi?) est-elle créée? |
||
|
|
00
|
|
|
#37 |
![]() ![]() ![]() ![]() Alexandre LaurentIngénieur développement logiciels Inscription : mai 2008 Messages : 10 423 ![]() |
Sauf que, la première apparition de la fenêtre est en maximise (oui, je sais, il n'y a pas de flags par rapport à ça). On ne peut pas la redimensionner. Il faut d'abord cliquer sur le bouton pour la rendre redimensionnable (celui qui est a coté de la croix). Je pense que c'est parce que la SDL, lorsque la fenêtre est identique à la taille de l'écran, se met directement en maximise. C'est pour cela que je propose de créer d'abord une fenêtre réduite.
Sinon, je ne comprend pas plus l'erreur que ça.
__________________
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
|
|
|
#38 |
|
Membre du Club
![]() Inscription : janvier 2011 Messages : 373 ![]() |
J'ai fais la même constatation tant qu'on ne clic pas sur l'onglet de redimensionnement de la fenêtre ça ne fonctionne pas. Et la fenêtre apparaît dès le début à la même résolution de l'écran. Il y a un petit souci des gestions d’évidemment on aurait dit sur Linux.
|
|
|
00
|
|
|
#39 |
![]() ![]() ![]() ![]() Alexandre LaurentIngénieur développement logiciels Inscription : mai 2008 Messages : 10 423 ![]() |
Donc, le principe que je pense pouvant être une solution au problème, c'est de créer la fenêtre, mais réduite (comme lorsque l'on appuie sur la touche 2 (ou 1, je ne sais plus
))
__________________
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
|
|
|
#40 |
|
Membre du Club
![]() Inscription : janvier 2011 Messages : 373 ![]() |
Re bonjour,
J'aurais une autre question à vous poser. J'ai affiché une image avec la SDL, j'ai remarqué que sous certaine résolution je perdais la qualité de mon image. Par exemple sur cette image de contour de coquillage, on constate en faisant un zoom que le contour est fermé mais qu'en dé-zoomant certain pixels disparaissaient c'est normal ? |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com