NativeWindowHeadless.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // Copyright (C) 2009-2022, 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/Core/NativeWindowHeadless.h>
  6. namespace anki {
  7. Error NativeWindow::newInstance(const NativeWindowInitInfo& initInfo, NativeWindow*& nativeWindow)
  8. {
  9. NativeWindowHeadless* hwin = static_cast<NativeWindowHeadless*>(initInfo.m_allocCallback(
  10. initInfo.m_allocCallbackUserData, nullptr, sizeof(NativeWindowHeadless), alignof(NativeWindowHeadless)));
  11. callConstructor(*hwin);
  12. hwin->m_pool.init(initInfo.m_allocCallback, initInfo.m_allocCallbackUserData);
  13. hwin->m_width = initInfo.m_width;
  14. hwin->m_height = initInfo.m_height;
  15. nativeWindow = hwin;
  16. return Error::kNone;
  17. }
  18. void NativeWindow::deleteInstance(NativeWindow* window)
  19. {
  20. if(window)
  21. {
  22. NativeWindowHeadless* self = static_cast<NativeWindowHeadless*>(window);
  23. AllocAlignedCallback callback = self->m_pool.getAllocationCallback();
  24. void* userData = self->m_pool.getAllocationCallbackUserData();
  25. callDestructor(*self);
  26. callback(userData, self, 0, 0);
  27. }
  28. }
  29. void NativeWindow::setWindowTitle([[maybe_unused]] CString title)
  30. {
  31. // Nothing
  32. }
  33. } // end namespace anki