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

API graphiques Discussion :

Programmation sortie externe carte graphique


Sujet :

API graphiques

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Programmation sortie externe carte graphique
    Bonjour,

    Je développe une application pour laquelle j'ai besoin de pouvoir gérer la sortie vidéo de ma carte graphique (ATI Radeon). Plus précisement je souhaite générer des images sur l'ordinateur et les transmettre à un vidéoprojecteur branché par la sortie VGA tout en conservant la main sur l'affichage de l'écran principal du PC.

    Comment s'y prendre ? Quels SDK faciliteraient le développement d'une telle application ? Avez vous des conseils de carte vidéo pour lesquelles le développement serait "simplifié" ou pour lesquelles vous auriez une expérience de programmation de ce genre ?

    Cerise sur le gateau je souhaiterai que mon appli fonctionne sous windows et linux le tout en C++.

    Merci de votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Sous linux tu dois pouvoir gérer ça simplement en utilisant le système d'écrans du serveur X
    Va falloir faire du code spécifique en fonction de la plateforme de toutes façons.
    Boost ftw

  3. #3
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par bludo31
    Bonjour,

    Je développe une application pour laquelle j'ai besoin de pouvoir gérer la sortie vidéo de ma carte graphique (ATI Radeon). Plus précisement je souhaite générer des images sur l'ordinateur et les transmettre à un vidéoprojecteur branché par la sortie VGA tout en conservant la main sur l'affichage de l'écran principal du PC.

    Comment s'y prendre ? Quels SDK faciliteraient le développement d'une telle application ? Avez vous des conseils de carte vidéo pour lesquelles le développement serait "simplifié" ou pour lesquelles vous auriez une expérience de programmation de ce genre ?

    Cerise sur le gateau je souhaiterai que mon appli fonctionne sous windows et linux le tout en C++.

    Merci de votre aide
    Si tu peux vivre avec la même image que tu auras sur ton écran alors il n'y a rien à faire, c'est généralement intégré dans les pilotes de la cartes et il faut juste configurer le système.

    Si tu veux un affichage différent, alors.... ca risque d'être plus compliqué...

    Jc

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par fearyourself
    Si tu peux vivre avec la même image que tu auras sur ton écran alors il n'y a rien à faire, c'est généralement intégré dans les pilotes de la cartes et il faut juste configurer le système.

    Si tu veux un affichage différent, alors.... ca risque d'être plus compliqué...

    Jc
    C'est la raison de ma question... l'idée c'est de pouvoir projeter une image vers le projecteur tout en gardant l'application à l'écran pour observer certaines infos et permettre un paramétrage pendant la projection. En quelque sorte ce que je veux se rapproche de la gestion du bureau étendu puisque je voudrais pouvoir laisser l'écran principal actif pendant que j'affiche autre chose sur le deuxième bureau qui serait alors mon projecteur. Ce que je ne sais pas, c'est comment programmer la carte vidéo pour activer la sortie externe et y écrire les images que je souhaite projeter. Il existe bien des SDK chez ATI et nVidia mais je n'ai pas encore trouvé comment arriver à résoudre mon problème.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    J'ai peut être une solution pour ceux qui développent avec Qt mais ça reste à vérifier, c'est juste une idée pour le moment. Il faut tout d'abbord activer la gestion double écran de la carte graphique en notifiant que le 2ème écran est indépendant, ensuite on peut gérer le double affichage avec QDesktopWidget qui est prévu pour d'après la doc : "The QDesktopWidget class provides access to screen information on multi-head systems"

    Si vous avez d'autres idées ou expériences à ce sujet n'hésitez pas. Quant à moi, Je vous tiens au courant du résultat de mes essais.

    @+

  6. #6
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Salut.

    La gestion des écrans sous windows est simple. Du moins en mode bureau étendue. Tu dois voir ce mode comme un seul écran. Si tu définis les deux écrans en 1024*768, par exemple, alors tu as en fait un seul écran de 2048*768.

    L'écran 1 correspond aux coordonnées 0/1024 et l'écran 2 1024/2048. Les numéros d'écran correspondent à l'identification sur les propriétés du bureau. Le grand chiffre 1 en blanc ou le chiffre deux. Ce qui siginifie que tu peux inverser l'écran un et deux, mais les coordonnées elles ne changent pas.

    Pour positionner ton application sur un écran, tu donnes les coordonnées correspondantes. Pour un plein écran sur le moniteur 2 ce sera 1024/0-2048/768.

    Le problème du bureau étendu, c'est que l'utilisation des ressources par le processeur est supérieur à la normale, et sûrement même qu'un mode clône (enfin j'ai pas trop testé).

    La gestion du double écran en mode bureau étendu passe donc par window.

    Pour gérer ce mode directement dans la carte graphique, il va falloir connaître les spécifications des chipsets graphiques des fabricants habituels et écrire un driver spécifique. Je ne sais pas dans quelle mesure ceci est possible.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par moldavi
    Salut.

    La gestion des écrans sous windows est simple. Du moins en mode bureau étendue. Tu dois voir ce mode comme un seul écran. Si tu définis les deux écrans en 1024*768, par exemple, alors tu as en fait un seul écran de 2048*768.

    L'écran 1 correspond aux coordonnées 0/1024 et l'écran 2 1024/2048. Les numéros d'écran correspondent à l'identification sur les propriétés du bureau. Le grand chiffre 1 en blanc ou le chiffre deux. Ce qui siginifie que tu peux inverser l'écran un et deux, mais les coordonnées elles ne changent pas.

    Pour positionner ton application sur un écran, tu donnes les coordonnées correspondantes. Pour un plein écran sur le moniteur 2 ce sera 1024/0-2048/768.

    Le problème du bureau étendu, c'est que l'utilisation des ressources par le processeur est supérieur à la normale, et sûrement même qu'un mode clône (enfin j'ai pas trop testé).

    La gestion du double écran en mode bureau étendu passe donc par window.

    Pour gérer ce mode directement dans la carte graphique, il va falloir connaître les spécifications des chipsets graphiques des fabricants habituels et écrire un driver spécifique. Je ne sais pas dans quelle mesure ceci est possible.
    Merci de ta réponse, j'ai effectivement vu ce fonctionnement en faisant quelques tests et on peut effectivement exploiter le bureau étendu en déplaçant les fênetres aux bonnes coordonnées. Une fois qu'on a réussi a étendre le bureau sous linux c'est aussi faisable mais pour mes besoins je souhaiterai vraiment pouvoir écrire mon propre driver et "attaquer" directement la carte video du système afin de pouvoir maitriser à la fois l'affichage externe mais aussi l'affichage principal. Etre capable d'activer ou de desactiver la sortie externe, pouvoir choisir les résolutions des 2 écrans ...

    J'ai cherché chez ATI et NVidia mais je ne trouve pas de SDK adapté à mon besoin, si quelqu'un a une idée ou une info pour m'aider je suis prenneur

    Merci

  8. #8
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Re.

    Pour windows, le point de départ, c'est ici:

    http://www.microsoft.com/whdc/archive/wdm.mspx

    2 choses:

    - le driver doit être compatible avec le système sur lequel il opère.

    - va falloir décortiquer les spécifications des chipsets de chaque fabricant de carte et voir dans quelle mesure ils ouvrent les spécifications.

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par moldavi
    Re.

    Pour windows, le point de départ, c'est ici:

    http://www.microsoft.com/whdc/archive/wdm.mspx

    2 choses:

    - le driver doit être compatible avec le système sur lequel il opère.

    - va falloir décortiquer les spécifications des chipsets de chaque fabricant de carte et voir dans quelle mesure ils ouvrent les spécifications.
    Merci du conseil je vais voir si je trouve mon bonheur.

  10. #10
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Re.

    Avant-hier, je suis tombé sur cet article:


    http://www.tomshardware.fr/le_jeu_en...art-557-1.html

    Il y a quelques infos intéressantes sur la gestion multi-écran et les fabricants de chipset.

    J'en ai profité pour tester le mode extension horizontal de nvidia et il y a pas photo. J'ai une application qui consomme 30% de cpu (ce qui est normal) en mode horizontal. En mode bureau étendu, impossible encore de faire descendre la consommation de ressource, elle s'élève à 70% !!!

    ATI ne propose pas ce mode d'affichage, et les jeux vidéos qui utilisent le dual screen, ne fonctionnent que sur les cartes nvidia.
    Seul microsoft propose "flight simulator9" en mode bureau étendu (ATI et NVIDIA).

    Tout ceci me laisse à penser que tu te lances dans une entreprise très compliquée.

  11. #11
    Membre confirmé Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Points : 496
    Points
    496
    Par défaut
    Juste une petite idée pour toi les derniers driver Nvidia sous Windows permet d'afficher sur la deusieme sortie (ecran) seulement le rendu DirectX.
    Si tu prend un lecteur sur ton ecran tu as ton bureau, ton lecteur fenetré et sur la télé l'affichage de la vidéo en plein ecran.
    ________________________________________________
    http://bliquid.fr : Blog sur Android et l'Acer Liquid

  12. #12
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Citation Envoyé par themadmax
    Juste une petite idée pour toi les derniers driver Nvidia sous Windows permet d'afficher sur la deusieme sortie (ecran) seulement le rendu DirectX.
    Si tu prend un lecteur sur ton ecran tu as ton bureau, ton lecteur fenetré et sur la télé l'affichage de la vidéo en plein ecran.
    Si je comprends bien la question tu voudrais voir la vidéo en pleine écran sur le moniteur 2, alors que cette vidéo se trouve dans le lecteur sur le bureau (moniteur 1). Ceci est possible avec tous les modes de bureau (étendue ou extension horizontale et quelque que soit le driver ATI ou NVIVIA). La seule contrainte, c'est que le lecteur prenne en charge ce mode.

    Quoique j'ai vu des ordinateurs portables prenant en charge ce mode, mais seulement avec la sortie s-vidéo ou composite, donc avec des chipsets graphiques intégrés.

    Sinon ce n'est pas seulement le rendu DirectX qui peut être affiché sur la deuxième sortie.

Discussions similaires

  1. Carte graphique avec sortie TV sans cable ?
    Par muad'dib dans le forum Périphériques
    Réponses: 3
    Dernier message: 14/07/2008, 11h45
  2. carte graphique et programmation jeux 3D
    Par elmcherqui dans le forum Développement 2D, 3D et Jeux
    Réponses: 14
    Dernier message: 05/04/2008, 14h18
  3. [deux sorties -> dvi -hdmi] choix de carte graphique
    Par crakocrako dans le forum Composants
    Réponses: 1
    Dernier message: 06/03/2008, 07h34
  4. [Carte Graphique] NVIDIA GeForce FX 5200SE / sortie TV
    Par devlopassion dans le forum Composants
    Réponses: 2
    Dernier message: 09/10/2006, 16h43
  5. probleme sortie tv carte graphique
    Par Terminator dans le forum Composants
    Réponses: 8
    Dernier message: 12/10/2005, 14h01

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