Salut,
J'ai un petit soucis, cette fois-ci pas de résultat, mais de méthode.
Je souhaite avoir accès aux données de textures chargées/créées en mémoire vidéo, d'une part pour les lire, d'autre part pour les modifier.
J'utilise pour cela le LockRect de l'interface IDirect3DTexture9 qui me permet de récupérer un pointeur (void* pBits) vers les données de la texture.
Une fois ce pointeur récupéré, je parviens sans bug à effectuer toute sorte d'opérations sur la texture ou à partir de celle-ci, lecture, édition, enregistrement dans un fichier, etc...
Là ou je me pose une question, c'est que avec ou sans le LockRect, une fois que j'ai récupéré le pointeur, je peux effectuer des opérations sur la texture sans que ce soit plus lent ou que ça plante. Histoire de m'embrouiller un peu plus, j'ai essayé le LockRect en ReadOnly ou sans aucun flag de mode de vérouillage, et je peux toujours effectuer toute sorte d'opérations.
Donc, quelle est la méthode "conventionnelle" pour pouvoir lire et écrire des données dans une texture ? La méthode que j'utilise est-elle correcte ou non ?
Tant qu'à faire, je souhaiterais avoir une méthode aussi bonne que le résultat...
Partager