How i should do this properly as IDirect3DTexture9 is a COM objets witch inherits from IUnknown witch does some reference counting?
class MyTexture
{
private:
IDirect3DTexture9* tex;
MyTexture(const MyTexture& o) {} // no copies allowed
MyTexture& operator = (const MyTexture& o) { return *this; }// no copies allowed
public:
MyTexture()
{
D3DXCreateTextureFromFile(... &tex);
}
~MyTexture()
{
tex->Relase();
tex = nullptr;
}
MyTexture(MyTexture&& o) : tex(o.tex) { o.tex = nullptr; }
MyTexture& operator = (MyTexture&& o)
{
if(this != &o)
{
tex->Release();// Should release here???
tex = o.tex;
o.tex = nullptr;
}
return *this;
}
};
Thanks for your time.


















