Bonjour,
Je travaille sur un éditeur de cartes en C/C++ affichant plusieurs éléments rendus à l'aide de DirectX dans différentes fenêtres.
Ces éléments ne sont rendus que si nécessaire (le chipset lorsque l'on change de fichier, la carte lorsqu'elle est éditée) et sont conservés dans des surfaces.
Pour éviter les rendus superflus, je procède (enfin...j'essaie) comme suit :
Rendu du chipset ou de la carte chacun dans une surface -> Copie de cette surface dans le backbuffer -> Ajout du curseur si nécessaire -> Affichage dans une fenêtre.
Mon problème tient dans la copie de la surface que je créé à celle du backbuffer.
J'ai essayé à l'aide de UpdateSurface, GetRenderTargetData, avec des surfaces créé à l'aide de D3DXCreateTexture, CreateOffscreenSurface et CreateRenderTarget, le tout sans résultat (D3DERR_INVALIDCALL...). Et voulant éviter de rendre à chaque frame, j'exclus l'utilisation d'un quad texturé pour l'affichage...
Comment pourrais-je procéder pour réaliser cette *simple* copie ?
Partager