summaryrefslogtreecommitdiffstats
path: root/source/slang/reflection.h
diff options
context:
space:
mode:
authorTim Foley <tfoley@nvidia.com>2017-06-09 11:34:21 -0700
committerTim Foley <tfoley@nvidia.com>2017-06-09 13:44:59 -0700
commitfcf83dbf9effab3bd98bad2b83b2468b7eb05cfd (patch)
tree41047c94883b86ec085a81597391ce3ef557cd43 /source/slang/reflection.h
parent52e8d4b9a27ab0060f874c3a63ab531847be35c0 (diff)
Initial import of code.
Diffstat (limited to 'source/slang/reflection.h')
-rw-r--r--source/slang/reflection.h39
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