Hi
As for the DeleteYourself() methods. Yeah, I used to think the same too (putting the code in the destructor.)
But it will trigger crashes in certain cases because of the render request processed after the object deletion.
As far as I understood this mechanism, the dev who created this method did it to make sure the object deletion append at the end of the render request processing queue.
If you see things that proves it wrong or see a better way of doing this, please tell me though.
But using bare pointers is kind of deprecated from good coding practices.
Eh eh. AFAIK, this statement has got roots in the c/c++/c++11 coding evolution never-ending debate, mixed with some javaism.
Be sure I don't want to fight anybody in this subject as it is a waste of time. We both have our opinion on this and I respect that.
What I can't let go is that one should keep in mind that making changes to the code should be done for the better, not just because it is kinda what's done by others.
This weird sentence o' mine means that I have nothing against smart pointers themselves (they're just yet another tool), but I'm not fond you claiming we should use them because it might fix something.
Let's debug the object life-cycle first. If it happens to be useful to use smart pointers to do something, we'll talk about it at that time, right?.
Regards,