Re: X-plane Arduino et utilisation de led
Concernant le dernier point (affichage des messages en mode plein écran), l'idée est la suivante:
Le plugin actuel affiche les messages d'erreur éventuels au moyen d'un appel à une fonction Windows (qui s'appelle "MessageBox").
Cette fonction ouvre une nouvelle fenêtre Windows, ce qui pose problème en mode plein écran.
L'idée est d'afficher le message, non plus dans une fenêtre séparée, mais en dessinant un rectangle translucide dans la fenêtre/plein écran de X-Plane et en écrivant sur ce rectangle.
Pour ce faire, j'ai pensé à l'exemple de base du XSDK, appelé "HelloWorld".
Il faut donc ajouter au plugin les routines (avec les paramètres qui vont bien
):
MyDrawWindowCallback() - pour dessiner une zone rectangulaire translucide et y écrire le message d'erreur
(MyHandleKeyCallback() - pour gérer les frappes éventuelles - pas utilisé dans notre cas)
MyHandleMouseClickCallback() - pour détecter une action de la souris dans la zone (après avoir lu le message, par exemple) puis effacer la zone rectangulaire (dans l'exemple du SDK, Sandy change le message affiché)
Dans le plugin, il "suffit" de remplacer les appels à la fonction "MessageBox" par l'appel de MyDrawWindowCallBack puis de détecter un clic de souris dans la zone rectangulaire pour confirmer la lecture du message.
Il ne reste ainsi qu'une seule fenêtre (celle de X-Plane) active, et X-Plane peut fonctionner en plein écran.
Si tu veux, j'essayerai chez moi puis je te proposerai une modification du plugin (demain soir ou samedi matin).
Dominique
Concernant le dernier point (affichage des messages en mode plein écran), l'idée est la suivante:
Le plugin actuel affiche les messages d'erreur éventuels au moyen d'un appel à une fonction Windows (qui s'appelle "MessageBox").
Cette fonction ouvre une nouvelle fenêtre Windows, ce qui pose problème en mode plein écran.
L'idée est d'afficher le message, non plus dans une fenêtre séparée, mais en dessinant un rectangle translucide dans la fenêtre/plein écran de X-Plane et en écrivant sur ce rectangle.
Pour ce faire, j'ai pensé à l'exemple de base du XSDK, appelé "HelloWorld".
Il faut donc ajouter au plugin les routines (avec les paramètres qui vont bien
): MyDrawWindowCallback() - pour dessiner une zone rectangulaire translucide et y écrire le message d'erreur
(MyHandleKeyCallback() - pour gérer les frappes éventuelles - pas utilisé dans notre cas)
MyHandleMouseClickCallback() - pour détecter une action de la souris dans la zone (après avoir lu le message, par exemple) puis effacer la zone rectangulaire (dans l'exemple du SDK, Sandy change le message affiché)
Dans le plugin, il "suffit" de remplacer les appels à la fonction "MessageBox" par l'appel de MyDrawWindowCallBack puis de détecter un clic de souris dans la zone rectangulaire pour confirmer la lecture du message.
Il ne reste ainsi qu'une seule fenêtre (celle de X-Plane) active, et X-Plane peut fonctionner en plein écran.
Si tu veux, j'essayerai chez moi puis je te proposerai une modification du plugin (demain soir ou samedi matin).
Dominique
Commentaire