diff options
Diffstat (limited to 'source/slang/reflection.h')
| -rw-r--r-- | source/slang/reflection.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/source/slang/reflection.h b/source/slang/reflection.h new file mode 100644 index 000000000..4d2c53084 --- /dev/null +++ b/source/slang/reflection.h @@ -0,0 +1,39 @@ +#ifndef SLANG_REFLECTION_H +#define SLANG_REFLECTION_H + +#include "../core/basic.h" +#include "syntax.h" + +#include "../../slang.h" + +namespace Slang { + +// TODO(tfoley): Need to move these somewhere universal + +typedef intptr_t Int; +typedef int64_t Int64; + +typedef uintptr_t UInt; +typedef uint64_t UInt64; + +namespace Compiler { + +class ProgramLayout; +class TypeLayout; + +String emitReflectionJSON( + ProgramLayout* programLayout); + +// + +SlangTypeKind getReflectionTypeKind(ExpressionType* type); + +SlangTypeKind getReflectionParameterCategory(TypeLayout* typeLayout); + +UInt getReflectionFieldCount(ExpressionType* type); +UInt getReflectionFieldByIndex(ExpressionType* type, UInt index); +UInt getReflectionFieldByIndex(TypeLayout* typeLayout, UInt index); + +}} + +#endif // SLANG_REFLECTION_H |
