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 :

copier une petite texture sur une grosse texture


Sujet :

DirectX

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 140
    Points : 76
    Points
    76
    Par défaut copier une petite texture sur une grosse texture
    j'utilise direct graphics et j'essaye de copier une texture dans une autre et ensuite d'enregistre cette autre texture dans un fichier, j'utilise mes trois fonctions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    void CreateBitmap( int BitmapWidth, int BitmapHeight )
    {
    	D3DSURFACE_DESC Infos;
    	D3DXCreateTextureFromFileEx(	PD3DDevice, "Textures\\blanc.bmp",
    												BitmapWidth, BitmapHeight, 1, 0,
    												D3DFMT_A1R5G5B5, D3DPOOL_SYSTEMMEM, D3DX_FILTER_NONE, D3DX_DEFAULT,
    												0xFF000000, NULL, NULL, &PTextureTemp );
     
     
     
    	PTextureTemp -> GetLevelDesc( 0, &Infos );
    	PTextureTemp -> GetSurfaceLevel( 0, &PSurfaceTemp );
    	PD3DDevice -> CreateTexture( BitmapWidth, BitmapHeight, 1, D3DUSAGE_RENDERTARGET, D3DFMT_A1R5G5B5, D3DPOOL_DEFAULT, &PTextureBitmap );
    	WidthBitmap = BitmapWidth;
    	HeightBitmap = BitmapHeight;
    }
    void PasteImageToBitmap( int ImageNumber, int BitmapX, int BitmapY )
    {
    	POINT PositionBitmap;
    	PositionBitmap.x = BitmapX;
    	PositionBitmap.y = BitmapY;
    	PD3DDevice -> CopyRects( Pointeurs_Textures[ ImageNumber ] -> PSurface, NULL, 4, PSurfaceTemp, &PositionBitmap );
    	PD3DDevice -> UpdateTexture( PTextureTemp, PTextureBitmap );
     
    }
    void SaveBitmap( char FileName[ 255 ] )
    {
    	D3DXSaveTextureToFile( FileName, D3DXIFF_BMP, PTextureBitmap, NULL );
    }
    le compilo ne detecte aucune erreur et le programme tourne très bien sauf que le fichier crée apres enregistrement n'est pas celui de l'image, c'est celui de l'image charger au debut(dans la fonction CreateBitmap),
    donc ca doit etre ma fonction PasteImageToBitmap qui doit avoir un probleme...

    je ne vois toujours pas d'ou vient le probleme....
    merci d'avance pour vos reponses.

  2. #2
    Membre expérimenté

    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
    Points : 1 679
    Points
    1 679
    Par défaut
    ça m'a l'air terriblement compliqué juste pour copier une texture dans une autre ? Au final tu utilises beaucoup de ressources inutiles pour une opération toute simple.

    De plus à partir de DirectX 9 copyrects n'existe plus (et pas forcément bien supporté pour les vieilles versions).

    Quelques trucs à essayer de ton coté: debug runtime, faire la meme opération sur le refrast, indiquer la version des drivers utilisés et la carte graphique, afficher les messages d'erreur etc..

    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 régulier
    Inscrit en
    Juillet 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 140
    Points : 76
    Points
    76
    Par défaut
    j'utilise directx 8, et j'ai pas envie de devoir refaire mon moteur graphique avec le 9....

    ce code me servira pour un editeur de map 2D.... donc j'ai pas forcement besoin que le code soit ultra rapide

    il n'y a aucune erreur signalé.....

    comment puis je recuperer les versions de mes drivers?

  4. #4
    Membre expérimenté

    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
    Points : 1 679
    Points
    1 679
    Par défaut
    tu peux aussi poster un executable. Les gens du forum pourront tester chez eux et dire si ça marche sur leur carte graphique et si ça a une chance que ça vienne de la tienne.

    Pour la version des drivers.. normalement tu dois le savoir si tu les as installé (et si tu ne les as pas installé, le problème vient peut-etre de là).
    Pour ta carte graphique pareil, tu dois le savoir si tu l'as achetée . En général le nom en clair est affiché dans les display properties de windows.

    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

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 140
    Points : 76
    Points
    76
    Par défaut
    j'ai jamais eu le moindre probleme avec ma carte graphique donc je sais tres bien que ca vient pas de la....

    ca vient de monc code, il y a quelques choses qui est faux dedans, mais je ne vois pas quoi....

  6. #6
    Membre expérimenté

    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
    Points : 1 679
    Points
    1 679
    Par défaut
    poste le code et/ou un executable entier alors.

    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. [AC-2010] Simuler un clic sur une page web sur une image javascript
    Par alex en droit dans le forum VBA Access
    Réponses: 2
    Dernier message: 02/04/2012, 13h22
  2. Imprimer sur une page web sur une imprimante spécifique
    Par bleuerouge dans le forum Windows Forms
    Réponses: 0
    Dernier message: 07/12/2009, 09h51
  3. Pb sur une requête DELETE sur une chaine
    Par astrolane dans le forum Sybase
    Réponses: 4
    Dernier message: 16/02/2009, 09h11
  4. Réponses: 3
    Dernier message: 25/10/2007, 11h47
  5. [SQL Server] Une petite aide sur une requete
    Par irenee dans le forum Langage SQL
    Réponses: 9
    Dernier message: 24/04/2006, 16h08

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