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.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.