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

Développement 2D, 3D et Jeux Discussion :

Superposer une fenetre sur un jeux 3D


Sujet :

Développement 2D, 3D et Jeux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 106
    Par défaut Superposer une fenetre sur un jeux 3D
    Bonjour,
    j'aurais aimé savoir s'il était possible d'afficher un texte ou une petite fenetre sur un jeux 3d plein ecran utilisant direct3d?

    J'ai essayé de créer une fenetre windows avec comme attribut "StayOnTop" afin qu'elle reste toujours en premier plan, mais lorsque je lance une jeu 3d, la fnetre disparait.

    Merci d'avance pour vos conseils.
    Michael

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Je crois qu'il y a une option pour permettre ça au niveau du device, jette un oeil à IDirect3DDevice9::SetDialogBoxMode.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 106
    Par défaut
    Salut,
    merci pour ta réponse.
    Je n'ai pas réussi a utiliser SetDialogBoxMode. Par conter j'ai tenter çà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    HDC hdc = GetDC(hCounterStrike);
    GetClientRect (hCounterStrike, &rct);
    char truc[25] = "BlablaBlablaBlablaBlabla";
    DrawText(hdc,truc,strlen(truc),&rct,DT_CENTER);
    Ca permet d'afficher "Blablabla" sur un jeu plein ecran, mais il s'efface aussitot.
    Meme en l'affichant 100 fois par seconde, on voit le 'Blablabla" qui clignote.

    Quelqu'un aurait une idée?
    Merci d'avance
    Michael

  4. #4
    Membre éclairé
    Homme Profil pro
    Game Graphics Programmer
    Inscrit en
    Août 2006
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Game Graphics Programmer
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 408
    Par défaut
    Pourquoi veux-tu superposer une fenêtre à ton screen 3d?
    Si tu veux utiliser une GUI/HUD dans ton jeu, le plus simple d'utiliser une lib qui te crée ca, non pas dans l'environnement windows, mais dans l'environnement DX10 de ton jeu.

  5. #5
    Membre Expert

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Par défaut
    La lib de GUI qui trace les fenetres en utilisant D3D est généralement ce qui est utilisé dans les jeux commerciaux.

    Pour ce qui est de ton projet si la performance est secondaire, il est tout à fait possible d'afficher une application d3d en mode "fenetré sur tout l'écran". Il ne faut pas selectionner "full screen" à la création du device, parce que le mode full screen est un mode "exclusif" : dans ce mode tout essai de tracé avec GDI (drawtext ou autre fenetre/menu) va interferer avec le device d3d qui pense (à juste titre) qu'il a accès à l'écran directement.

    Demander la création du device en mode window, va forcer l'OS et le driver, à collaborer (ce qui va couter un peu de performance) mais en contrepartie de ne pas provoquer de bugs d'affichage et de superposition.

    De nombreuses applications développées pour Windows et qui ne sont pas des jeux sont capables d'utiliser les capacités 3d de Direct3D tout en permettant l'affichage des fenetres d'autres applications en meme temps (ou leurs propres menus tracés en mode GDI). Lorsqu'elles sont redimensionnées sur tout l'écran, elles gardent leur caractère de "fenetre Windows" mais en n'affichant pas les bords.

    LeGreg

    Mon site web | Mon blog | Mes photos | Groupe USA
    > BONJOUR, JE SUIS NOUVEAU SUR CE FORUM
    > presse la touche caps lock, stp
    > OH.. MERCI C EST BEAUCOUP PLUS FACILE COMME CA

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/12/2006, 15h17
  2. Ouvrir une fenêtre sur un clic
    Par Johns dans le forum wxWidgets
    Réponses: 2
    Dernier message: 27/08/2006, 15h57
  3. [Problème]Centrer une fenetre sur l'écran
    Par joker.benj dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 14/05/2006, 22h49
  4. Réponses: 3
    Dernier message: 05/10/2005, 18h02

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