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

DirectX Discussion :

DirectDrawCreateEx IDirectDraw -> 9


Sujet :

DirectX

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2004
    Messages : 574
    Points : 109
    Points
    109
    Par défaut DirectDrawCreateEx IDirectDraw -> 9
    Bonjour,

    J'avais créé une petite fonction générique qui permettait grace à deux paramètres d'obtenir des informations sur la version directX intallée.

    Les paramètres étaient :
    - REFIID * (par exemple, IDirectDraw7 ou IDirectDraw2).
    - un identifiant de l'interface (IID_IDirectDraw7 ou IID_IDirectDraw2).

    Cependant, à présent, je voudrais pouvoir réaliser la même chose avec DirectX 9 !

    Alors, je voulais savoir où je pouvais trouver les sources me permettant d'avoir les meme paramètres version DirectX 9 puis que je ne trouve pas de IDirectDraw9 ou de IID_IDirectDraw9).
    De même, ma fonction utilisait la fonction DirectDrawCreateEx (), celle-ci ne marchera plus pour créer un object COM DirectX 9?

  2. #2
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    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 361
    Points : 20 384
    Points
    20 384
    Par défaut
    Citation Envoyé par zuzuu Voir le message
    Alors, je voulais savoir où je pouvais trouver les sources me permettant d'avoir les meme paramètres version DirectX 9 puis que je ne trouve pas de IDirectDraw9 ou de IID_IDirectDraw9).
    ?


    1-Regarde dans ddraw.h du SDK de Direct X ver 9 mais il n'y a pas de IDirectDraw9
    2-DirectDraw n'est plus supporté depuis Direct X 8 ! Ou alors ce sont des fonctionnalités non documentées par Microsoft.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2004
    Messages : 574
    Points : 109
    Points
    109
    Par défaut
    Oui, je viens de comprendre qu'ils sont ensuite passé à Direct3D...

    J'ai réussi à comprendre la différence qu'il fallait que je fasse par rapport aux autres versions, cependant, il y a quelque chose qui ne fonctionne pas comme je le voudrais...

    Par exemple, je voudrais récupérer les tailles de résolution possible et les fourCC supportés.

    Voici ce que j'ai utilisé pour obtenir les résolutions selon les formats :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    UINT adapter = D3DADAPTER_DEFAULT;
    D3DFORMAT format = D3DFMT_X8B8G8R8;
    D3DDISPLAYMODE* pMode;
    UINT countMode = pD3D9->GetAdapterModeCount(adapter, format);
    for ( mode = 0; mode < countMode; mode++)
    {
    	if (!FAILED(pD3D9->EnumAdapterModes(adapter, format, mode, pMode))
    	{	
    // bla bla bla
    	}
    }
    Cependant, je ne rentre jamais dans le for car countMode est toujours à 0. Et cela est pareil pour les autres format possibles...
    Je n'arrive pas bien à comprendre ce qu'il faut véritablement mettre dans adapter??? Apparement cela est différent selon le format, mais je n'ai pas d'information suplémentaire dans la documentation msdn, (ou alors je lis mal...?)

  4. #4
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    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 361
    Points : 20 384
    Points
    20 384
    Par défaut
    Pour les résolutions on peut prendre DirectDraw::EnumModesCallback

  5. #5
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    C'est assez logique...
    Je ne crois pas qu'une carte accepte de faire un rendu en X8B8G8R8 sous windows ! Du coup, la carte renvoit "0" pas de mode possible avec ce format.

    Tu dois confondre avec X8R8G8B8 (ou A8R8G8B8 qui, d'après la documentation, doit renvoyer exactement la même chose).

    D'après la doc, la liste des formats "possibles" pour le mode est assez limitée:

    These formats are the only valid formats for a back buffer or a display.
    Format Back buffer Display
    A2R10G10B10 x x (full-screen mode only)
    A8R8G8B8 x
    X8R8G8B8 x x
    A1R5G5B5 x
    X1R5G5B5 x x
    R5G6B5 x x
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

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