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 :

GetRenderTargetData vide ?


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 434
    Par défaut GetRenderTargetData vide ?
    Bonjour j'essaye de récupérer le backbuffer pour l'afficher, voila ce que je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    //creation de la texture:
    		m_pd3dDevice->CreateTexture( 800, 600, 1, 0, D3DFMT_X8R8G8B8, D3DPOOL_SYSTEMMEM, &texecran,NULL);
    		texecran->GetSurfaceLevel( 0, &surfecran);
    ...
    //récupération données bb
    	LPDIRECT3DSURFACE9 BackBuffer;
    	if( SUCCEEDED(m_pd3dDevice->GetRenderTarget( 0,&BackBuffer)))
    	{
    		if( SUCCEEDED(m_pd3dDevice->GetRenderTargetData(BackBuffer,surfecran)))
    			int erreur=1;
    	}
    ...
    //et ensuite j'affiche texecran dans un sprite
    Mais le sprite est toujours blanc. J'ai essayé de mettre la deuxieme partie apres present() mais ça ne change rien, je dois faire un truc pas comme il faut mais je ne trouve pas, j'ai essayé d'autres trucs trouvé sur internet mais je n'y arrive pas.
    J'arrive par contre à rendre la scene dans une texture et à l'afficher dans une autre scene mais ça m'oblige à rendre deux scenes.

    Une idée ?

    Merci

  2. #2
    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
    getrendertargetdata c'est fait pour rapatrier la surface en mémoire système (pour y accéder par le CPU).

    Pour rapatrier une surface dans une texture il faut soit :
    - utiliser une texture avec le flag RENDERTARGET à la création et utiliser la surface principale comme surface de rendu (la méthode la plus rapide)
    - utiliser une texture avec le flag RENDERTARGET à la création et faire une copie du backbuffer après rendu avec StretchRect() (cette méthode nécessite une copie supplémentaire). à noter que comme la création de texture ne permet pas de spécifier de flag MULTISAMPLE, pour l'antialiasing tu es obligé de rendre dans une rendertarget (non texture, c'est à dire back buffer ou une autre surface ad hoc) avant de faire une copie dans la texture avec stretchrect() (ce qui garantira, si la surface source et dest ont la meme dimension, que la texture contiendra la copie "antialiasée" ou "résolue" du rendu original). à noter aussi que le fait de spécifier le flag RENDERTARGET à la création est obligatoire pour XP, mais a été relaché pour Vista (uniquement pour les devices D3D9ex).

    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

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 434
    Par défaut
    Merci pour la réponse je vais voir ça.

Discussions similaires

  1. Fonction vide
    Par vagabon dans le forum Autres éditeurs
    Réponses: 9
    Dernier message: 29/07/2003, 18h23
  2. [CR9] Bug avec les champs à valeur vide ?
    Par Djob dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 15/07/2003, 21h21
  3. [DOM] Balise vide...
    Par carlierd dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 02/05/2003, 18h28
  4. [] Datagrid vide après modification des propriétés
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/09/2002, 16h37
  5. [CR] Avoir seulement une page blanche qd la base est vide???
    Par littleChick dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 13/08/2002, 18h26

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