WrapShaderEnd.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. // Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
  2. // SPDX-FileCopyrightText: 2026 Jorrit Rouwe
  3. // SPDX-License-Identifier: MIT
  4. /// @cond INTERNAL
  5. // WrapShaderBindings.h should have been included followed by the shader bindings
  6. default:
  7. JPH_ASSERT(false, "Buffer cannot be bound to this shader");
  8. break;
  9. }
  10. }
  11. /// Factory function to create a shader wrapper for this shader
  12. static ShaderWrapper * sCreate()
  13. {
  14. return new JPH_SHADER_CLASS_NAME(JPH_SHADER_NAME)();
  15. }
  16. };
  17. } // ShaderWrappers
  18. /// @endcond
  19. // Stop clang from complaining that the register function is missing a prototype
  20. JPH_SHADER_WRAPPER_FUNCTION(, JPH_SHADER_NAME);
  21. /// Register this wrapper
  22. JPH_SHADER_WRAPPER_FUNCTION(inComputeSystem, JPH_SHADER_NAME)
  23. {
  24. inComputeSystem->RegisterShader(JPH_TO_STRING(JPH_SHADER_NAME), ShaderWrappers::JPH_SHADER_CLASS_NAME(JPH_SHADER_NAME)::sCreate);
  25. }
  26. #undef JPH_SHADER_OVERRIDE_MACROS
  27. #undef JPH_SHADER_GENERATE_WRAPPER
  28. #undef JPH_SHADER_CONSTANT
  29. #undef JPH_SHADER_CONSTANTS_BEGIN
  30. #undef JPH_SHADER_CONSTANTS_MEMBER
  31. #undef JPH_SHADER_CONSTANTS_END
  32. #undef JPH_SHADER_BUFFER
  33. #undef JPH_SHADER_RW_BUFFER
  34. #undef JPH_SHADER_BIND_BEGIN
  35. #undef JPH_SHADER_BIND_END
  36. #undef JPH_SHADER_BIND_BUFFER
  37. #undef JPH_SHADER_BIND_RW_BUFFER
  38. #undef JPH_SHADER_FUNCTION_BEGIN
  39. #undef JPH_SHADER_PARAM_THREAD_ID
  40. #undef JPH_SHADER_FUNCTION_END
  41. #undef JPH_SHADER_STRUCT_BEGIN
  42. #undef JPH_SHADER_STRUCT_MEMBER
  43. #undef JPH_SHADER_STRUCT_END
  44. #undef JPH_TO_STRING
  45. #undef JPH_TO_STRING2
  46. #undef JPH_SHADER_CLASS_NAME
  47. #undef JPH_SHADER_CLASS_NAME2
  48. #undef JPH_OUT
  49. #undef JPH_IN_OUT
  50. #undef JPH_SHADER_NAME
  51. JPH_NAMESPACE_END