GrObject.cpp 855 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. // Copyright (C) 2009-2021, Panagiotis Christopoulos Charitos and contributors.
  2. // All rights reserved.
  3. // Code licensed under the BSD License.
  4. // http://www.anki3d.org/LICENSE
  5. #include <AnKi/Gr/GrObject.h>
  6. #include <AnKi/Gr/GrManager.h>
  7. namespace anki {
  8. GrObject::GrObject(GrManager* manager, GrObjectType type, CString name)
  9. : m_manager(manager)
  10. , m_uuid(m_manager->getNewUuid())
  11. , m_refcount(0)
  12. , m_type(type)
  13. {
  14. if(name.getLength() == 0)
  15. {
  16. name = "N/A";
  17. }
  18. m_name = static_cast<Char*>(manager->getAllocator().getMemoryPool().allocate(name.getLength() + 1, alignof(Char)));
  19. memcpy(m_name, &name[0], name.getLength() + 1);
  20. }
  21. GrObject::~GrObject()
  22. {
  23. if(m_name)
  24. {
  25. m_manager->getAllocator().getMemoryPool().free(m_name);
  26. }
  27. }
  28. GrAllocator<U8> GrObject::getAllocator() const
  29. {
  30. return m_manager->getAllocator();
  31. }
  32. } // end namespace anki