Go to the documentation of this file. 29 #ifndef NVBLASTTKCOMMON_H 30 #define NVBLASTTKCOMMON_H 38 #define NVBLASTTK_IMPL_DECLARE(_name) \ 39 class Tk##_name##Type : public Tk##_name \ 45 memset(&m_ID, 0, sizeof(NvBlastID)); \ 46 setID(TkGenerateGUID(this)); \ 47 TkFrameworkImpl::get()->onCreate(*this); \ 51 Tk##_name##Type(const NvBlastID& id) \ 53 memset(&m_ID, 0, sizeof(NvBlastID)); \ 55 TkFrameworkImpl::get()->onCreate(*this); \ 59 ~Tk##_name##Type() { TkFrameworkImpl::get()->onDestroy(*this); } \ 62 virtual void setID(const NvBlastID& id) override \ 65 TkFrameworkImpl::get()->onIDChange(*this, m_ID, id); \ 68 virtual const NvBlastID& getID() const override { return getIDInternal(); } \ 69 virtual const TkType& getType() const override { return s_type; } \ 75 const NvBlastID& getIDInternal() const { return m_ID; } \ 80 static TkTypeImpl s_type; \ 87 class Tk##_name##Impl final : public Tk##_name##Type 91 #define NVBLASTTK_IMPL_DEFINE_IDENTIFIABLE(_id0, _id1, _id2, _id3) \ 93 virtual void release() override; \ 99 enum { ClassID = NVBLAST_FOURCC(_id0, _id1, _id2, _id3) } 103 #define NVBLASTTK_DEFINE_TYPE_IDENTIFIABLE(_name) \ 104 TkTypeImpl Tk##_name##Type::s_type("Tk" #_name, Tk##_name##Impl::ClassID, 0) 107 #endif // ifndef NVBLASTTKCOMMON_H