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 :

[C# DX9] - Problemes de textures


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7
    Par défaut [C# DX9] - Problemes de textures
    Bonjour,

    J'essai desesperement de créer des textures à partir de fichier sVTF (Valve Texture File)...

    1ere question, existe il un moyen simple qui permet de créer une texture non pas a partir d'un fichier mais juste a partir de données brute en memoire (un byte[] contenant les données RGBA par exemple...)??
    J'ai cherché partout je ne vois pas pourtant avec TextureLoader.FromStream on arrive à créer des textures avec des fichiers .bmp, .dds, .jpg, etc...Faire une texture à partir d'un bete tableau d'octets devrait etre faisable non ? :S

    2eme question...comme j'ai pas trouvé ma fonction magique, j'ai essayé de "locker" la texture...mais pas moyen, j'ai toujours une erreur qui se produit sur la fonction "lockRectangle":

    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
     
    try
    {
      Texture tex = new Texture(dev, 16, 16, 0, Usage.None, Format.A8R8G8B8, Pool.Default);  
     
      GraphicsStream stream = tex.LockRectangle(0, LockFlags.None );
      // ou 
      int[,] naTextureColors = null;
      naTextureColors = (int[,])tex.LockRectangle(typeof(int), 0,   LockFlags.Discard, new int[] { 16, 16 });
     
       //...
     
      tex.UnlockRectangle(0);
    catch (Exception E)
    {
      MessageBox.Show(E.Message + E.StackTrace);
    }
    Le message d'erreur est tres parlant : "Erreur de l'application"

    Si quelqu'un pouvait me filler un indice la...ca fait 2 jours que je galere alors que j'ai l'impression de vouloir faire un truc ultra simple :S

  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

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7
    Par défaut
    J'aurais du preciser que j'avais déjà essayé.

    Testez le retour de vos fonctions :
    Dans mon cas je vois pas...le device est ok j'affiche dejà plein de choses, le 'new Texture' est ok, du moins il ne me retourne pas null. Et le LockRectangle...ba il plante donc pas de retour...


    Utilisez la version debug :
    Déjà fait...mais la aussi je vois pas comment cela pourrais m'aider dans ce cas...
    Edit : Dans la sortie du debug j'ai ca : "Une exception de première chance de type 'Microsoft.DirectX.Direct3D.InvalidCallException' s'est produite dans Microsoft.DirectX.Direct3D.dll"...

    Testez le reference rasterizer :
    J'avais déjà eu ce probleme a cause de formats non gerés (Format.R8G8B8G8 par exemple). En créant le device de type 'DeviceType.Reference' ca fonctionnait alors qu'avec un device de type 'DeviceType.Hardware' ca plantait (meme message d'erreur justement...). Mais pour le LockRectangle, j'ai beau tester avec le reference rasterizer ca ne marche quand meme pas...

    Cherchez sur le net !
    J'arreeettee passss

  4. #4
    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
    On aurait dû ajouter "lire la doc"

    Textures created with Pool.Default are not lockable
    For this method, the valid flags are Discard, NoDirtyUpdate, NoSystemLock, and ReadOnly.

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 267
    Par défaut
    Les textures créées avec D3DPOOL_DEFAULT ne sont pas lockables si elles ne sont pas dynamiques.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7
    Par défaut
    Erf oui...honte a moi ca marche mieux maintenant merci (bien qu'avec un pool.default...mais un usage.dynamic^^)

    Sinon pour ma question 1 vous avez une idée ?
    Edit : peut etre que la facon de faire en lockant la texture est la meilleur ou il y a t'il plus simple / performant pour répondre a ma question 1 ??

Discussions similaires

  1. [C#][DX9] Render to texture
    Par funkydata dans le forum DirectX
    Réponses: 12
    Dernier message: 23/06/2006, 19h11
  2. Problème de Texture !
    Par darkein dans le forum 2D
    Réponses: 5
    Dernier message: 21/01/2006, 23h42
  3. Probleme de texture et depth test..
    Par bibije dans le forum OpenGL
    Réponses: 6
    Dernier message: 29/12/2005, 13h34
  4. Probleme de texture
    Par Dmnbp7ip dans le forum DirectX
    Réponses: 1
    Dernier message: 13/05/2005, 12h51
  5. probleme de texture sur une sphère
    Par sebpp dans le forum OpenGL
    Réponses: 2
    Dernier message: 12/04/2005, 19h46

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