ShaderProgram.cpp 850 B

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