Affichage plein écran
Affichage plein écran
Bonjour à tous et meilleurs voeux 2012.
Je suis sous Windows Vista SP2.
J'ai créé une application avec un graphique qui s'affiche en plein écran.
J'ai utilisé pour cela la commande bien connue OpenScreen(...) et pas de problème de ce côté là, le graphique s'est étalé sur tout l'écran.
Ma résolution était de 800 X 600 X 32.
Surprise ! Quand j'ai fait fonctionné cette application sous Windows 7 le graphique était centré à l'écran avec des bordures noires à gauche et à droite et donc le graphique ne prenait pas tout l'écran.
J'ai bien regardé que l'ordinateur sous Windows 7 avait bien la résolution ci-dessus et c'était bien le cas.
Pourquoi une telle différence entre ces deux OS.
Comment faire pour que mon graphique soit en plein écran sous Windows 7.
Merci à ceux savent et qui voudront m'éclaicir et me donner des solutions (si c'est possible) sur ce point.
Je suis sous Windows Vista SP2.
J'ai créé une application avec un graphique qui s'affiche en plein écran.
J'ai utilisé pour cela la commande bien connue OpenScreen(...) et pas de problème de ce côté là, le graphique s'est étalé sur tout l'écran.
Ma résolution était de 800 X 600 X 32.
Surprise ! Quand j'ai fait fonctionné cette application sous Windows 7 le graphique était centré à l'écran avec des bordures noires à gauche et à droite et donc le graphique ne prenait pas tout l'écran.
J'ai bien regardé que l'ordinateur sous Windows 7 avait bien la résolution ci-dessus et c'était bien le cas.
Pourquoi une telle différence entre ces deux OS.
Comment faire pour que mon graphique soit en plein écran sous Windows 7.
Merci à ceux savent et qui voudront m'éclaicir et me donner des solutions (si c'est possible) sur ce point.
Re: Affichage plein écran
voir la lib Desktop() dans la Doc Purebasic
exemple (regarde bienExamineDesktop() )
exemple (regarde bienExamineDesktop() )
Code : Tout sélectionner
; code by Dobro http://michel.dobro.free.fr/
#dobro=1
#Police=1
#sprite=1
; ***********************************
Resultat = InitSprite()
FontID = LoadFont(#Police, "arial", 50, #PB_Font_Bold )
ExamineDesktops()
EcranX = DesktopWidth(0)
;=largeur de l'ecran
EcranY = DesktopHeight(0)
;=hauteur de l'ecran
;WindowID = OpenWindow(1, 0, 0, EcranX, EcranY, "hello", #PB_Window_SystemMenu|#PB_Window_BorderLess |#PB_Window_ScreenCentered )
;WindowID = WindowID(1)
;Result = OpenWindowedScreen(WindowID,0,0, EcranX, EcranY, 1, 0,0)
OpenScreen( EcranX,EcranY,32,"cercle")
Resultat = InitMouse()
taille_du_cercle=200
nombre_de_point=360 ; ceci determine la resolution (nombre de points)
; on fabrique un sprite :D
CreateSprite(#sprite,32,32) ; de 32 par 32
StartDrawing( SpriteOutput(#sprite) ) ; on va dessiner dans notre sprite (qui est au depart une cellule vide)
Circle(16, 16, 16 , RGB(255,0,0)) ; je decide de dessiner un cercle rouge dedans
StopDrawing()
; voila notre sprte est dessiné !! :D
Repeat
ExamineMouse()
;Event=WaitWindowEvent()
StartDrawing( ScreenOutput())
compt+1
If compt=nombre_de_point
compt=0
EndIf ; on a fait le tour ??
x=taille_du_cercle* Cos( compt*(2*3.1415926/nombre_de_point)) + (EcranX / 2) ; la formule du cercle /360 = 360 points
Y=taille_du_cercle * Sin( compt*(2*3.1415926/nombre_de_point)) + (EcranY / 2) ; la formule du cercle
Box(x, Y,2, 2 ,RGB(255,255,255)) ; on peux laisser une trace du dessin
StopDrawing()
; on affiche notre rond rouge :D
DisplaySprite(#sprite,x,Y)
; *****************************
StartDrawing( ScreenOutput())
DrawText(20, 200," a la fin du dessin ")
DrawText(20, 250," click avec le bouton droit !! ")
StopDrawing()
FlipBuffers()
; affiche l'ecran *****<------- si tu Rem ceci le sprite laisse une trace
;ClearScreen(RGB(0,0,0))
;Event=WindowEvent()
If MouseButton(2)
End
EndIf
Until MouseButton(2)
;
; EPb
Re: Affichage plein écran
Pour centrer une image quelconque dans un screen, il faut afficher l'image a (LARGEUR DE L'ECRAN/2 - LARGEUR DE L'IMAGE/2 , HAUTEUR DE L'ECRAN/2 - HAUTEUR DE L'IMAGE/2)
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Re: Affichage plein écran
Merci à tous les deux pour vos réponses.
Pour Dobro :
Merci pour tes explications. Ton programme utilise une fenêtre alors que mon application utilise le mode plein écran (pas de fenêtre, et utilise OpenScreen(...) pas OpenWindowedScreen(....)).
Je pense que tu es sur XP. Mon ordi est sous Vista SP2 et cela fonctionne parfaitement bien car les graphiques s'étalent bien sur tout l'écran, comme je le voulais, mais le problème vient du fait d'être sous Windows 7 et là en plein écran il y a une bordure noire à gauche et à droite et mon graphique est centré, ce qui n'est pas le cas sous Vista et je me demande comment faire pour que mon graphique, SOUS WINDOWS 7, s'étale sur TOUT L'ECRAN.
Pour SPH :
Je ne souhaite pas centrer mon graphique mais l'étaler sur tout l'écran en mode plein écran et cela fonctionne parfaitement bien sous Vista SP2 mais pas en Windows 7 qui centre mon graphique et n'étale pas le graphique sur tout l'écran (j'ai une bordure noire à gauche et à droite du graphique).
Il doit bien y avoir un moyen de créer un graphique plein écran en Windows 7.
Et comment faire ?
Mais merci quand même pour vos explications.
Pour Dobro :
Merci pour tes explications. Ton programme utilise une fenêtre alors que mon application utilise le mode plein écran (pas de fenêtre, et utilise OpenScreen(...) pas OpenWindowedScreen(....)).
Je pense que tu es sur XP. Mon ordi est sous Vista SP2 et cela fonctionne parfaitement bien car les graphiques s'étalent bien sur tout l'écran, comme je le voulais, mais le problème vient du fait d'être sous Windows 7 et là en plein écran il y a une bordure noire à gauche et à droite et mon graphique est centré, ce qui n'est pas le cas sous Vista et je me demande comment faire pour que mon graphique, SOUS WINDOWS 7, s'étale sur TOUT L'ECRAN.
Pour SPH :
Je ne souhaite pas centrer mon graphique mais l'étaler sur tout l'écran en mode plein écran et cela fonctionne parfaitement bien sous Vista SP2 mais pas en Windows 7 qui centre mon graphique et n'étale pas le graphique sur tout l'écran (j'ai une bordure noire à gauche et à droite du graphique).
Il doit bien y avoir un moyen de créer un graphique plein écran en Windows 7.
Et comment faire ?
Mais merci quand même pour vos explications.
Re: Affichage plein écran
Je me mefie de windows 7. Il fait tourner les .PB n'importe commentpat a écrit :Il doit bien y avoir un moyen de créer un graphique plein écran en Windows 7.

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Re: Affichage plein écran
Moué.. faut pas trop voir le mal ou il n'est pas..
J'ai 7 x64 et je n'ai pas de soucis... Il a bon dos 7
J'ai 7 x64 et je n'ai pas de soucis... Il a bon dos 7

Code : Tout sélectionner
InitSprite()
ExamineDesktops()
L = DesktopWidth(0)
H = DesktopHeight(0)
If OpenScreen(L, H, 32, "test")
Debug "OK"
Delay(5000)
Else
Debug "CHIAGE"
Delay(2000)
EndIf
End
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Affichage plein écran
pat a écrit :Merci à tous les deux pour vos réponses.
Pour Dobro :
Merci pour tes explications. Ton programme utilise une fenêtre alors que mon application utilise le mode plein écran (pas de fenêtre, et utilise OpenScreen(...) pas OpenWindowedScreen(....)).
Je pense que tu es sur XP. Mon ordi est sous Vista SP2 et cela fonctionne parfaitement bien car les graphiques s'étalent bien sur tout l'écran, comme je le voulais, mais le problème vient du fait d'être sous Windows 7 et là en plein écran il y a une bordure noire à gauche et à droite et mon graphique est centré, ce qui n'est pas le cas sous Vista et je me demande comment faire pour que mon graphique, SOUS WINDOWS 7, s'étale sur TOUT L'ECRAN..

Re: Affichage plein écran
Histoire d'en être sûr ^^
Code : Tout sélectionner
; Effet boite de nuit disco
; par Ar-S / 07-1-2012 - PB 4.60
InitSprite() : ExamineDesktops() : InitKeyboard()
L = DesktopWidth(0)
H = DesktopHeight(0)
Screen = OpenScreen(L, H, 32, "test")
If Screen
Repeat
ExamineKeyboard()
If StartDrawing(ScreenOutput())
i = 0 : j = 0
For i = 0 To L Step 20
For j = 0 To H Step 50
DrawText(i,j," ",$FF,RGB(Random(255),Random(255),Random(255)))
i+1 : j+1
If i = L
i = 0
ElseIf j = H
j = 0
EndIf
Next
Next
StopDrawing()
EndIf
Delay(2)
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
Else
Debug "CHIAGE"
Delay(2000)
EndIf
End
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Affichage plein écran
Bonsoir,
ça marche bien comme tu le souhaites sur mon Seven 64.
ça marche bien comme tu le souhaites sur mon Seven 64.
Re: Affichage plein écran
Merci à tous pour vos réponses.
Je récapitule parce que j'ai l'impression que personne n'a compris ce que je voulais dire.
Je suis sous Vista SP2. J'ai créé un programme que j'ai compilé en x86 sous Vista SP2 (donc en 32 bits).
Dans ce programme il y a du graphique créé avec OpenScreen(....).
Pour information la résolution est de 800 X 600 X 32.
En exécutant mon programme le graphisme tient dans TOUTE LA SURFACE DE L'ECRAN, comme je le souhaite, et donc il n'y pas de problème.
J'ai voulu essayer mon programme sous un autre ordinateur.
Cet autre ordinateur est sous Windows 7 (donc en 64 bits).
La surprise est que le graphisme ne PREND PAS TOUTE LA SURFACE DE L'ECRAN, mais centre le graphisme (avec une bordure noire à gauche et à droite) alors qu'en Vista SP2 il prend tout l'écran.
Je souhaite donc savoir comment faire pour que mon graphique, créé sous Vista SP2 et qui fonctionne comme je le souhaite en plein écran, fonctionne également en plein écran sous Windows 7.
Evidemment ceux qui sont sous Windows 7 ne peuvent voir cela, ni ceux d'ailleurs qui sont sous XP.
Je tiens à préciser que l'ordinateur auquel j'ai essayé mon programme et qui était sous Windows 7 avait bien une résolution 800 X 600 X 32 existante.
Je me demande donc comment faire que mon programme fonctionne EN PLEIN ECRAN sous tous les OS.
Ce n'est pas un problème de savoir-faire du graphisme car cela fonctionne bien sous Vista SP2.
Il doit y avoir une explication et ceux qui pourront m'éclairer me seront d'une grande aide.
Je récapitule parce que j'ai l'impression que personne n'a compris ce que je voulais dire.
Je suis sous Vista SP2. J'ai créé un programme que j'ai compilé en x86 sous Vista SP2 (donc en 32 bits).
Dans ce programme il y a du graphique créé avec OpenScreen(....).
Pour information la résolution est de 800 X 600 X 32.
En exécutant mon programme le graphisme tient dans TOUTE LA SURFACE DE L'ECRAN, comme je le souhaite, et donc il n'y pas de problème.
J'ai voulu essayer mon programme sous un autre ordinateur.
Cet autre ordinateur est sous Windows 7 (donc en 64 bits).
La surprise est que le graphisme ne PREND PAS TOUTE LA SURFACE DE L'ECRAN, mais centre le graphisme (avec une bordure noire à gauche et à droite) alors qu'en Vista SP2 il prend tout l'écran.
Je souhaite donc savoir comment faire pour que mon graphique, créé sous Vista SP2 et qui fonctionne comme je le souhaite en plein écran, fonctionne également en plein écran sous Windows 7.
Evidemment ceux qui sont sous Windows 7 ne peuvent voir cela, ni ceux d'ailleurs qui sont sous XP.
Je tiens à préciser que l'ordinateur auquel j'ai essayé mon programme et qui était sous Windows 7 avait bien une résolution 800 X 600 X 32 existante.
Je me demande donc comment faire que mon programme fonctionne EN PLEIN ECRAN sous tous les OS.
Ce n'est pas un problème de savoir-faire du graphisme car cela fonctionne bien sous Vista SP2.
Il doit y avoir une explication et ceux qui pourront m'éclairer me seront d'une grande aide.
Re: Affichage plein écran
Il faudrait y aller par étape.
C'est peut-être un problème de pilote de carte graphique : mets le à jour.
Suivant la marque de la carte, il faudra aller sur http://www.nvidia.fr/page/home.html ou sur http://support.amd.com/fr/Pages/AMDSupportHub.aspx pour les carte ATI.
Il faut absolument faire cette étape pour être sûr que ce n'est pas un problème de pilote.
1) Les bordures noires apparaissent-elles sur plusieurs ordinateurs W7 différents ?
2) La résolution 800x600 et W7 ne font pas bon ménage.
Fais plusieurs essais sans changer ton code source mais en mettant la résolution du PC à 1024x768 puis à une très haute définition, au moins 1440 ou plus, ça donne quoi ?
3) Enfin modifie ton code source pour essayer d'autres résolutions comme le 1024x768, 1280x960, 1920x1080 si l'ecran est fullHD, etc.
4) Change la vitesse de rafraichissement de la carte graphique (quelque part dans le panneau de configuration), essaies plusieurs taux dont le 60 Hz.
5) Si tu sais démarrer en mode sans echec, vas-y et refais tous les test 2) 3) et 4)
Comment se comportent les bandes noires avec tous ces tests ?
Mesa.
C'est peut-être un problème de pilote de carte graphique : mets le à jour.
Suivant la marque de la carte, il faudra aller sur http://www.nvidia.fr/page/home.html ou sur http://support.amd.com/fr/Pages/AMDSupportHub.aspx pour les carte ATI.
Il faut absolument faire cette étape pour être sûr que ce n'est pas un problème de pilote.
1) Les bordures noires apparaissent-elles sur plusieurs ordinateurs W7 différents ?
2) La résolution 800x600 et W7 ne font pas bon ménage.
Fais plusieurs essais sans changer ton code source mais en mettant la résolution du PC à 1024x768 puis à une très haute définition, au moins 1440 ou plus, ça donne quoi ?
3) Enfin modifie ton code source pour essayer d'autres résolutions comme le 1024x768, 1280x960, 1920x1080 si l'ecran est fullHD, etc.
4) Change la vitesse de rafraichissement de la carte graphique (quelque part dans le panneau de configuration), essaies plusieurs taux dont le 60 Hz.
5) Si tu sais démarrer en mode sans echec, vas-y et refais tous les test 2) 3) et 4)
Comment se comportent les bandes noires avec tous ces tests ?
Mesa.
Re: Affichage plein écran
pour intervenir dans le post :
j'ai win7 64bit, et le même pb que toi, donc je vois parfaitement de quoi tu parles.
je ne pense pas que ce soit lié à 7, mais plutôt au pilote de NVIDIA pour 7, puisque c'est le pilote qui prend en charge l'écran graphique, à moins que ce soit DirectX qqchose, dans ce cas là ce serais windows le fautif.
Ca me fait ce pb avec la dernière version de la maj des pilotes.
@Ar-S : ton prog ne souligne pas le problème que pat rencontre. En effet la résolution du bureau à le même RATIO que l'écran.
Le pb surviens si la définition demandé avec le openscreen n'a pas le même ratio que l'écran (sur un windows 7, cartes graphiques NVIDIA, faut que qqun test sur ATI)
Exemple avec le code de Ar-S :
mon écran à une def de 1920x1200 --> ratio = 16/10
je demande une def de 800x600 --> ratio = 4/3
du coup il me rajoute des bandes noires à droite et à gauche pour conserver une isométrie dans l'affichage (pas d'étirement de l'écran)
Voila, moi je n'ai pas de solution pour le moment. faut peut-être regarder en détail les options graphiques. ou alors ya un truc à corriger avec la manière dont PB lance un écran graphique
j'ai win7 64bit, et le même pb que toi, donc je vois parfaitement de quoi tu parles.
je ne pense pas que ce soit lié à 7, mais plutôt au pilote de NVIDIA pour 7, puisque c'est le pilote qui prend en charge l'écran graphique, à moins que ce soit DirectX qqchose, dans ce cas là ce serais windows le fautif.
Ca me fait ce pb avec la dernière version de la maj des pilotes.
@Ar-S : ton prog ne souligne pas le problème que pat rencontre. En effet la résolution du bureau à le même RATIO que l'écran.
Le pb surviens si la définition demandé avec le openscreen n'a pas le même ratio que l'écran (sur un windows 7, cartes graphiques NVIDIA, faut que qqun test sur ATI)
Exemple avec le code de Ar-S :
Code : Tout sélectionner
; Effet boite de nuit disco
; par Ar-S / 07-1-2012 - PB 4.60
InitSprite() : ExamineDesktops() : InitKeyboard()
; L = DesktopWidth(0)
; H = DesktopHeight(0)
L = 800
H = 600
Screen = OpenScreen(L, H, 32, "test")
If Screen
Repeat
ExamineKeyboard()
If StartDrawing(ScreenOutput())
i = 0 : j = 0
For i = 0 To L Step 20
For j = 0 To H Step 50
DrawText(i,j," ",$FF,RGB(Random(255),Random(255),Random(255)))
i+1 : j+1
If i = L
i = 0
ElseIf j = H
j = 0
EndIf
Next
Next
StopDrawing()
EndIf
Delay(2)
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
Else
Debug "CHIAGE"
Delay(2000)
EndIf
End
je demande une def de 800x600 --> ratio = 4/3
du coup il me rajoute des bandes noires à droite et à gauche pour conserver une isométrie dans l'affichage (pas d'étirement de l'écran)
Voila, moi je n'ai pas de solution pour le moment. faut peut-être regarder en détail les options graphiques. ou alors ya un truc à corriger avec la manière dont PB lance un écran graphique
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel
)
Mon site : CeriseCode (Attention Chantier perpétuel

Re: Affichage plein écran
au pire la soluce est de forcer la résolution en 800x600 et basta ! 

Re: Affichage plein écran
Sur une ATI ça marche (plein ecran) en 800x600 alors que je suis en 16:10 (1680x1050). Y'a donc surement une couille avec les Nvidia. Faudrait regarder dans les options avancées si y'a pas un truc à activer/désactiver..
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Affichage plein écran
en fait, le problème viens à mon avis du lancement part PB de l'écran graphique. Car pour des jeux je n'ai jamais ce soucis même en 800x600
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel
)
Mon site : CeriseCode (Attention Chantier perpétuel
