ShaderBinaryExtra.h 936 B

12345678910111213141516171819202122232425262728293031323334353637
  1. // Copyright (C) 2009-present, 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/ShaderCompiler/Common.h>
  6. #include <AnKi/Util/Serializer.h>
  7. namespace anki {
  8. /// Serialize ShaderReflection
  9. template<>
  10. class SerializeFunctor<ShaderReflection>
  11. {
  12. public:
  13. template<typename TSerializer>
  14. void operator()(const ShaderReflection& x, TSerializer& serializer)
  15. {
  16. const U8* arr = reinterpret_cast<const U8*>(&x);
  17. serializer.doArray("binblob", 0, arr, sizeof(ShaderReflection));
  18. }
  19. };
  20. /// Deserialize ShaderReflection
  21. template<>
  22. class DeserializeFunctor<ShaderReflection>
  23. {
  24. public:
  25. template<typename TDeserializer>
  26. void operator()(ShaderReflection& x, TDeserializer& deserializer)
  27. {
  28. U8* arr = reinterpret_cast<U8*>(&x);
  29. deserializer.doArray("binblob", 0, arr, sizeof(ShaderReflection));
  30. }
  31. };
  32. } // end namespace anki