From 42f49937ffa69c82e333e886952eed027e12340e Mon Sep 17 00:00:00 2001 From: Yong He Date: Tue, 16 Aug 2022 17:11:54 -0700 Subject: Add gfx interface definition in Slang. (#2364) * Add gfx interface definition in Slang. - add gfx interface definitons in Slang. - fix slang compiler to correctly type-check `out` interface argument. - modify gfx interface to be fully COM compatible - add convenient ShaderProgram creation methods to gfx. * Fix compile errors and warnings. * Update project files * Fix cuda. * Properly implement queryInterface in command encoder impls. Co-authored-by: Yong He --- tests/bugs/interface-lvalue.slang | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 tests/bugs/interface-lvalue.slang (limited to 'tests/bugs/interface-lvalue.slang') diff --git a/tests/bugs/interface-lvalue.slang b/tests/bugs/interface-lvalue.slang new file mode 100644 index 000000000..87cfa54ed --- /dev/null +++ b/tests/bugs/interface-lvalue.slang @@ -0,0 +1,36 @@ +//TEST:EXECUTABLE: +__target_intrinsic(cpp, "printf(\"%s\\n\", ($0).getBuffer())") +void writeln(String text); + +[COM("BE18F5D2-4522-4AB0-A6EE-1D157FA2B083")] +interface IFoo +{ + int method(); +}; + +class Impl : IFoo +{ + __init() { } + int method() + { + return 0; + } +} + +void createFoo(out IFoo val) +{ + Impl resuult = new Impl(); + val = resuult; +} + +public __extern_cpp int main() +{ + IFoo v; + createFoo(v); + + if (v.method() == 0) + writeln("succ"); + else + writeln("fail"); + return 0; +} -- cgit v1.2.3