Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Directx Release

Iniciado por McBain, 24 de Mayo de 2006, 08:40:34 PM

« anterior - próximo »

McBain

 Llevo unos días peleandome con Direct3D y he decidido empezar aislar toda esa cacharrería en clases (me refiero a la inicialización y la posterior liberación de memoria). Me preguntaba si todo lo que se libera con el método Release, se puede poner en el destructor de la clase? O no, eso lo he de hacer manualmente?

McBain

 Por favor que alguien me conteste.

Astat

 A ver si he entendido bien tu pregunta. Dices que tienes una clase que encapsula cosas de DX y preguntas que lo que liberas en Release si lo puedes poner en el destructor?

osea que si esto:


void cVideoDX9::Release()
{
 RELEASENULL(m_pD3D9);
 delete this;
}


y esto:


void cVideoDX9::Release()
{
 delete this;
}


void cVideoDX9::~cVideoDX9()
{
 RELEASENULL(m_pD3D9);
}


es correcto?

Si es eso lo que preguntas, ambas formulas son validas. En la primera liberas el interface y luego llamas al destructor, y en la segunda al reves.

A mi personalmente me gusta mas la segunda (suelo poner el Release en el .h)

McBain

 Era eso justo lo que quería saber gracias.