Le concept de 'ScreenGadget'
Le concept de 'ScreenGadget'
Bonjour, je fais suite à une remarque de Patrick88
Il y évoque le concept de 'ScreenGadget'.
Je pense qu'il est possible de faire quelquechose, mais, à la condition de comprendre ce que c'est. Et ça commence par des mots. Alors, qu'est-ce que l'expression 'ScreenGadget' vous inspire, en quelques mots?
Il y évoque le concept de 'ScreenGadget'.
Je pense qu'il est possible de faire quelquechose, mais, à la condition de comprendre ce que c'est. Et ça commence par des mots. Alors, qu'est-ce que l'expression 'ScreenGadget' vous inspire, en quelques mots?
Re: Le concept de 'ScreenGadget'
Moi ScreenGadget me fais penser à un écran comme un Sreen quoi sauf que la tu peu en mètre ou tu veux, 1, 10, 100...
C'est un Gadget écran quoi en gros, l'utilité ?
Aucune idée !
C'est un Gadget écran quoi en gros, l'utilité ?
Aucune idée !
Re: Le concept de 'ScreenGadget'
Avant d'imaginer quelque chose où l'on veut, autant voir grand quand on le veut, et, notamment, sous toute contrainte inopinée de l'OS, et cela sur n'importe quel OS.
Deux procédures pour se simplifier grandement la vie avec le plein écran:
Deux procédures pour se simplifier grandement la vie avec le plein écran:
Code : Tout sélectionner
;______________________________________________________
; Plein ecran : Gerer le changement de tache
;______________________________________________________
Declare OnFullScreen(ScreenTitle.S,
ScreenFlipMode.I = #PB_Screen_WaitSynchronization)
;______________________________________________________
Declare FullScreenResume(ScreenTitle.S,
ScreenFlipMode.I = #PB_Screen_WaitSynchronization,
*StandBy = 0,
DelayDuration.I = 16)
;______________________________________________________
;______________________________________________________
; TEST
InitSprite()
OnFullScreen("test") ; <<<< ICI
InitKeyboard()
Repeat
ClearScreen(0)
Delay(16)
FlipBuffers()
If IsScreenActive() = 0
FullScreenResume("TEST") ; <<<< ICI
EndIf
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
End
;______________________________________________________
;______________________________________________________
Procedure OnFullScreen(ScreenTitle.S,
ScreenFlipMode.I = #PB_Screen_WaitSynchronization)
ExamineDesktops()
OpenScreen(DesktopWidth(0),
DesktopHeight(0),
DesktopDepth(0),
ScreenTitle,
ScreenFlipMode,
DesktopFrequency(0) )
EndProcedure
;______________________________________________________
Procedure FullScreenResume(ScreenTitle.S,
ScreenFlipMode.I = #PB_Screen_WaitSynchronization,
*StandBy = 0,
DelayDuration.I = 16)
Protected BackgroundWindow.I
CloseScreen()
BackgroundWindow = OpenWindow(#PB_Any,
0,
0,
0,
0,
ScreenTitle,
#PB_Window_BorderLess |
#PB_Window_NoActivate)
Repeat
Delay(DelayDuration)
If *StandBy
CallFunctionFast(*StandBy)
EndIf
Until WindowEvent() = #PB_Event_ActivateWindow
CloseWindow(BackgroundWindow)
OnFullScreen(ScreenTitle, ScreenFlipMode)
EndProcedure
;______________________________________________________
- Kwai chang caine
- Messages : 6962
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Re: Le concept de 'ScreenGadget'
Moi j'ai un ecran noir en 5.23 et 5.31 X86
J'appellerais ça un "BlackGadget" si je peux me permettre d'émmetre un nom qui lui colle bien
J'appellerais ça un "BlackGadget" si je peux me permettre d'émmetre un nom qui lui colle bien
Re: Le concept de 'ScreenGadget'
Je ne sais pas si un screengadget est possible, même si ce serait une chouette idée.
ça permettrait d'avoir des eventtype() comme le canvasgadget(), sans passer par initmouse() ou initkeyboard() ?
Et on pourrait afficher des sprites avec (comme le screen), ce serait ça l'idée ?
ça permettrait d'avoir des eventtype() comme le canvasgadget(), sans passer par initmouse() ou initkeyboard() ?
Et on pourrait afficher des sprites avec (comme le screen), ce serait ça l'idée ?
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
- microdevweb
- Messages : 1798
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: Le concept de 'ScreenGadget'
Vous pouvez gérer un screen comme un gadget, comme suit.
Windows only (pas testé sur d'autre os)
Tous les événements du canvas peuvent être traités, par contre les événements mouse ne sont plus actif, mais ils sont facilement remplacé par GetGadgetAttribute(#Canvas,#PB_Canvas_MouseX) etc...
Windows only (pas testé sur d'autre os)
Code : Tout sélectionner
CanvasGadget(#Canvas,X,Y,W,H,#PB_Canvas_Keyboard)
OpenWindowedScreen(GadgetID(#Canvas),0,0,W,H)
Dernière modification par microdevweb le mer. 02/sept./2015 9:49, modifié 1 fois.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Work at Centre Spatial de Liège
- microdevweb
- Messages : 1798
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: Le concept de 'ScreenGadget'
@Kwai chang caine,
Tu peux changer la couleur comme tu le désire
Tu peux changer la couleur comme tu le désire
Code : Tout sélectionner
clearscreeen(Rgb(50,60,80))
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Work at Centre Spatial de Liège
- TazNormand
- Messages : 1294
- Inscription : ven. 27/oct./2006 12:19
- Localisation : Calvados (14)
Re: Le concept de 'ScreenGadget'
Salut
Ce qui serait pratique, ce serait d'avoir plusieurs "WindowedScreen" côte à côte, je verrai bien ça pour le "screenGadget".
Ce qui serait pratique, ce serait d'avoir plusieurs "WindowedScreen" côte à côte, je verrai bien ça pour le "screenGadget".
Re: Le concept de 'ScreenGadget'
Ce que je cherche à savoir, en tout 1er lieu, c'est si ce code plante. Et sous quel OS?
Ne pas hésiter à éprouver les changements de tâche, les ouvertures du gestionnaire de tâche, les démarrages automatiques qui vous ouvrent une fenêtre, etc...
Sous Windows XP, Vista, 2000, 7, 8, 8.1 et 10.
Sous Linux et MacOSX aussi, ce serait bien de connaître la stabilité de ces procédures.
Tant que vous arrivez toujours à atteindre cet écran noir (ça représente votre jeu!) de manière conventionnelle et conviviale, c'est déjà une belle marche d'escalier à ne pas zaper...
Code copié ici:
Tip n' Tick - Forum EN
Ne pas hésiter à éprouver les changements de tâche, les ouvertures du gestionnaire de tâche, les démarrages automatiques qui vous ouvrent une fenêtre, etc...
Sous Windows XP, Vista, 2000, 7, 8, 8.1 et 10.
Sous Linux et MacOSX aussi, ce serait bien de connaître la stabilité de ces procédures.
Tant que vous arrivez toujours à atteindre cet écran noir (ça représente votre jeu!) de manière conventionnelle et conviviale, c'est déjà une belle marche d'escalier à ne pas zaper...
Code copié ici:
Tip n' Tick - Forum EN
Re: Le concept de 'ScreenGadget'
peut on également utiliser cette combine pour Ogre ?microdevweb a écrit :Vous pouvez gérer un screen comme un gadget, comme suit.
Windows only (pas testé sur d'autre os)Tous les événements du canvas peuvent être traités, par contre les événements mouse ne sont plus actif, mais ils sont facilement remplacé par GetGadgetAttribute(#Canvas,#PB_Canvas_MouseX) etc...Code : Tout sélectionner
CanvasGadget(#Canvas,X,Y,W,H,#PB_Canvas_Keyboard) OpenWindowedScreen(GadgetID(#Canvas),0,0,W,H)
Pat
- microdevweb
- Messages : 1798
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: Le concept de 'ScreenGadget'
@Patrick88,
Je ne peux pas le confirmer, mais à mon sens le moteur 3d doit également fonctionné.
Je ne peux pas le confirmer, mais à mon sens le moteur 3d doit également fonctionné.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Work at Centre Spatial de Liège
Re: Le concept de 'ScreenGadget'
Par rapport au titre du sujet effectivement, c'est légitime de demander ça, mais, d'une part, c'est actuellement impossible: la solution est avec OpenGLGadget().TazNormand a écrit :Salut
Ce qui serait pratique, ce serait d'avoir plusieurs "WindowedScreen" côte à côte, je verrai bien ça pour le "screenGadget".
Là, on a un plein écran, c'est fait pour décoiffer avant tout. Donc, il faut être prudent sur ses souhaits pour ne pas entraver la 'mise en pli' du joueur!
C'est un mode à part! J'attends des retours de bugs, au cas où, et après, je poste une version 'windowed' en rappelant pourquoi l'on n'a besoin du mode graphique fenêtré aussi.
On se rend compte que le ScreenGadget existe déjà, mais que le matériel impose ses conditions. J'insiste vraiment sur ce fait: si vous souhaitez plusieurs rectangles graphiques avec accélération matérielle fonctionnant sur tous les OS, seul OpenGL assure ça actuellement.
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Le concept de 'ScreenGadget'
J'ai tellement eu peur de se noir intense qu'effectivement ça décoiffe. Black Panthers, Septembre noir. Nous reste-t-il un peu d'espoir ?Ollivier a écrit :Là, on a un plein écran, c'est fait pour décoiffer avant tout.
Je reviens sur ton code
(/me enfile ses gants blanc.) Sans nullement chercher à vous offenser mon cher Ollivier, en quoi ces deux procédures simplifient grandement la vie avec le plein écran ?Ollivier a écrit :Deux procédures pour se simplifier grandement la vie avec le plein écran:
J'ai failli oublier de répondre à la question
Windows 10 Pro - PB5.31 (x86) - pas de plantage.Ollivier a écrit :Ce que je cherche à savoir, en tout 1er lieu, c'est si ce code plante. Et sous quel OS?
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Le concept de 'ScreenGadget'
Même si je n'en décèle ni les tenants, ni les aboutissants, je suis surpris par une telle minutie...Falsam a écrit :(/me enfile ses gants blanc.)
Merci pour ta précision concernant W10.
Autant y aller direct, as-tu plus simple? (nouvelle fonctionnalité présente sur une version ultérieure à la 5.22)?
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Le concept de 'ScreenGadget'
Je n'ai pas plus simple. Je cherche à comprendre ou tu veux en venir avec ton code.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%