IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

C++, SDL, gestion retour de force du joystick


Sujet :

SDL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 43
    Points : 27
    Points
    27
    Par défaut C++, SDL, gestion retour de force du joystick
    Bonjour,

    Je pose cette question car je n'ai pas trouvé grand chose sur le net.

    Je souhaiterais savoir s'il existe de la documentation sur la gestion du retour de force des joysticks ? Il existe bien les évènements SDL_JOYBUTTONDOWN, SDL_JOYHATMOTION entres autres pour récupérer les actions du joystick, mais comment faire pour contrôler les moteurs gérant le retour de force ? Il doit bien exister quelque chose puisqu'on arrive à les faire fonctionner dans les jeux.

    Merci pour vos réponses.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 43
    Points : 27
    Points
    27
    Par défaut
    Savez-vous s'il existe une autre API que DirectX pour gérer le retour de force ?

    Il m'a semblé lire sur le net qu'une version prochaine de Glut pourrait s'appuyer sur DirectInput ?

  3. #3
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 375
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 375
    Points : 20 435
    Points
    20 435
    Par défaut
    Hello Guilbert69 je doute que cela soit possible sous SDL; c'est un technologie spécifique Microsoft et en voulant contourner Direct X et DInput cela me parait très difficile.
    SDL se veut générique multiplateforme..

  4. #4
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    En effet, SDL ne gère pas le retour de force, cette fonctionnalité a été ignorée car elle est très pauvre et assez anarchique sous Linux.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 43
    Points : 27
    Points
    27
    Par défaut
    Merci pour vos réponses. Vous confirmez ce que je craignais.

    Cependant, si je me permets d'insister, la porte est-elle vraiment complètement fermée ?

    Je souhaiterais en fait faire vibrer les moteurs d'un joypad, et non gérer de manière complète un vrai retour de force à l'aide d'un joystick ou d'un volant par exemple.

    Cela parait difficile à imaginer qu'en informatique, on ne puisse pas activer les moteurs d'un joypad relié à un ordinateur uniquement parce qu'une librairie ne le permet pas.

    Lorsqu'on connecte un périphérique sur une plateforme windows par exemple, on installe en même temps le driver nécessaire pour piloter le périphérique.
    A partir de cette base, n'y aurait-il pas une solution, même compliquée, avec de la programmation en C/C++, sur la plateforme windows pour commencer, pour commander la vibration des moteurs, et combler ainsi le manque de la SDL ?

    Merci pour votre aide.

  6. #6
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    Tu peux en effet le faire en dehors de SDL (par exemple directement avec l'API windows) mais tu perdras la compatibilité multi-plateforme.

  7. #7
    Membre actif Avatar de ironzorg
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 288
    Points : 245
    Points
    245
    Par défaut
    En effet utiliser DirectX ne te permettras pas de faire profiter tous les internautes de ton programme, meme s'il est vrai qu'utiliser le retour de force sous linux doit etre "anarchique" ( deja que la portabilité de certaines fonctions n'est assurée que par des 'trucs et astuces'/'bricolages' ).

    Bonne chance.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour,
    Je me permets de remonter ce sujet car je ne trouve rien à ce sujet sur internet
    Personne n'en parle, alors un code c'est inespéré...
    Vous auriez trouvé des infos ?

  9. #9
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    Peut être que lire ce qu'il y a marqué ici plutôt que de poster directement à la suite te permettra de savoir pourquoi tu ne trouves rien

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    J'ai lu, et justement, j'aurais voulu un moyen de pouvoir le faire, pas juste qu'on me dise que c'est pas possible avec SDL
    Mais j'avais pas vu qu'on était dans le forum SDL, je pensais que c'était le forum C++

    1er message, 1ère boulette, promi je me rattraperais

  11. #11
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    Pour la gestion du retour de force en dehors de SDl, tu peux utiliser Direct Input par exemple.

    Un petit aperçu :
    http://raptor.developpez.com/tutoria...ct_input/base/

    Pour rechercher de la doc en anglais sur le retour de force, c'est "force feedback".

    Voici la doc officiel sur msdn à propos de la gestion du retour de force avec Direct Input :
    http://msdn.microsoft.com/en-us/libr...09(VS.85).aspx

  12. #12
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 375
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 375
    Points : 20 435
    Points
    20 435
    Par défaut
    eh oui mais si on utilise DInput alors le code ne sera plus portable
    autant programmer tout sous DX carrément

  13. #13
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    eh oui mais si on utilise DInput alors le code ne sera plus portable
    autant programmer tout sous DX carrément
    Effectivement

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 43
    Points : 27
    Points
    27
    Par défaut
    Pour résumer : la gestion du retour de force pour windows, c'est possible, mais uniquement avec DirectX (DirectInput). Mais dans ce cas, la compatibilité multi-plateforme est perdu. Il ne semble donc pas exister, à priori, de bibliothèque portable pour la gestion du retour de force.

    1/ Pour contourner le problème avec SDL, pensez-vous qu'il soit possible de gérer le retour de force du joypad, sous windows pour commencer, sans tenir compte de la compatibilité multiplateforme ? C'est à dire, pensez-vous qu'il soit possible d'ajouter du code spécifique Windows (appels à DirectX, DirectInput par exemple, ou autre) à un programme en SDL portable, pour gérer le retour de force ? Le programme obtenu ne sera plus portable bien sûr, mais la partie retour de force fonctionnerait alors pour Windows.

    2/ Ou alors, savez-vous si le problème pourrait être résolu en écrivant sa propre API de communication entre le programme SDL et le système, pour windows dans un premier temps et donc non portable, pour remplacer l'API windows DirectX ? Existe-t-il de la documentation pour l'écriture d'une telle API ?

    Merci pour vos réponses à ces questions.

  15. #15
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    Citation Envoyé par Guilbert69 Voir le message
    Pour résumer : la gestion du retour de force pour windows, c'est possible, mais uniquement avec DirectX (DirectInput).
    Non pas uniquement, c'étais juste un exemple. De plus, il existe sans doute une possibilité de gérer le retour de force en multi plateforme, mais pas avec SDL, c'est la seule chose à retenir : SDL ne gére pas le retour de force.

    1/ Pour contourner le problème avec SDL, pensez-vous qu'il soit possible de gérer le retour de force du joypad, sous windows pour commencer, sans tenir compte de la compatibilité multiplateforme ? C'est à dire, pensez-vous qu'il soit possible d'ajouter du code spécifique Windows (appels à DirectX, DirectInput par exemple, ou autre) à un programme en SDL portable, pour gérer le retour de force ? Le programme obtenu ne sera plus portable bien sûr, mais la partie retour de force fonctionnerait alors pour Windows.
    Oui c'est possible mais comme tu dis tu perds la portabilité.

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 43
    Points : 27
    Points
    27
    Par défaut
    Merci pour ta réponse Loka.

    Citation Envoyé par loka Voir le message
    Non pas uniquement, c'étais juste un exemple. De plus, il existe sans doute une possibilité de gérer le retour de force en multi plateforme, mais pas avec SDL, c'est la seule chose à retenir : SDL ne gére pas le retour de force.
    Pourrais-tu être plus précis lorsque tu indiques une autre possibilité de gérer le retour de force en multi-plateforme ?

    Citation Envoyé par loka Voir le message
    Oui c'est possible mais comme tu dis tu perds la portabilité.
    Pourrais-tu là encore être plus précis lorsque tu dis qu'il est également possible d'ajouter du code spécifique Windows (appels à DirectX, DirectInput par exemple, ou autre), à un programme en SDL portable, pour gérer le retour de force ?

    Merci pour ton aide.

  17. #17
    Membre averti
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2006
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Février 2006
    Messages : 262
    Points : 329
    Points
    329
    Par défaut
    Bonjour,

    Je me permets de remonter le post car j'ai lu récemment (Nov 2009) qu'il existe un driver pour le retour de force des joysticks basé sur la SDL 1.3 en Java.

    Je suppose donc que quand la SDL 1.3 sera en version stable, la gestion du retour de force sera présente et c'est vrai que ce pourra être très sympathique de pouvoir faire de la simulation gérant cet évènement et ce quelque soit la plateforme !

    @ bientôt...

    PS : j'ai retrouvé le lien si ça vous intéresse : http://www.libsdl.org/libraries.php?match_id=2025

Discussions similaires

  1. [SDL] Gestion des sauts
    Par Splinter_7 dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 02/05/2007, 19h29
  2. Gestion des axes d'un joystick et du clavier
    Par Yoann45 dans le forum SDL
    Réponses: 3
    Dernier message: 23/01/2007, 22h26
  3. [SDL] Gestion des touches claviers problématique
    Par Invité4 dans le forum SDL
    Réponses: 3
    Dernier message: 13/10/2006, 21h15
  4. Gérer un volant a retour de force ...
    Par olive-sjs dans le forum OpenGL
    Réponses: 2
    Dernier message: 26/02/2004, 08h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo