ShaderProgram.cpp 850 B

12345678910111213141516171819202122232425262728293031
  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/ShaderProgram.h>
  6. #include <AnKi/Gr/Vulkan/ShaderProgramImpl.h>
  7. #include <AnKi/Gr/Shader.h>
  8. #include <AnKi/Gr/GrManager.h>
  9. namespace anki
  10. {
  11. ShaderProgram* ShaderProgram::newInstance(GrManager* manager, const ShaderProgramInitInfo& init)
  12. {
  13. ShaderProgramImpl* impl = manager->getAllocator().newInstance<ShaderProgramImpl>(manager, init.getName());
  14. const Error err = impl->init(init);
  15. if(err)
  16. {
  17. manager->getAllocator().deleteInstance(impl);
  18. impl = nullptr;
  19. }
  20. return impl;
  21. }
  22. ConstWeakArray<U8> ShaderProgram::getShaderGroupHandles() const
  23. {
  24. return static_cast<const ShaderProgramImpl&>(*this).getShaderGroupHandles();
  25. }
  26. } // end namespace anki