From b39c99661b3ad482bbd419c24991ed325b5738a9 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Thu, 2 Jun 2022 14:13:35 -0400 Subject: COM interfaces with host callable (#2258) * #include an absolute path didn't work - because paths were taken to always be relative. * Use TerminatedUnownedStringSlice for literals in output C++. * Remove Escape/Unescape functions used in slang-token-reader.cpp Add target type of 'host-cpp' etc to map to the target types. * Fix some corner cases around string encoding. * Added unit test for string escaping. Fixed some assorted escaping bugs. * Updated test output. * Added decode test. * Stop using hex output, to get around 'greedy' aspect. Use octal instead. * Added HostHostCallable Small changes to use ArtifactDesc/Info instead of large switches. * Fix C++ emit to handle arbitrary function export. * Add options handling for callable without an output being specified. * Can compile with COM interface. Added example using com interface. * Use the IR Ptr type instead of hack in C++ emit for interfaces. * Fix issue with outputting the COM call when ptr is used. * Fix crash issue on compilation failure. --- examples/cpu-com-example/shader.slang | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 examples/cpu-com-example/shader.slang (limited to 'examples/cpu-com-example/shader.slang') diff --git a/examples/cpu-com-example/shader.slang b/examples/cpu-com-example/shader.slang new file mode 100644 index 000000000..b0fe259be --- /dev/null +++ b/examples/cpu-com-example/shader.slang @@ -0,0 +1,21 @@ +// shader.slang + +// Example of using 'NativeString' + +public __extern_cpp NativeString getString(NativeString in) +{ + return in; +} + +[COM] +interface IDoThings +{ + int doThing(int a, int b); + int calcHash(NativeString in); +} + +public __extern_cpp int calcHash(NativeString text, IDoThings doThings) +{ + return doThings.calcHash(text); +} + -- cgit v1.2.3