https://github.com/shader-slang/slang
Raw File
Tip revision: 34acec2258ef1586564fe51126b25910b3202541 authored by Yong He on 23 March 2023, 06:59:22 UTC
Fix generic lowering regression due to IR deduplication. (#2723)
Tip revision: 34acec2
struct.slang
//TEST:SIMPLE:
// test that `struct` decls work

// Note(tfoley): disabled during syntax transition
// #include "pipeline-simple.slang.h"

// struct declaration
struct Foo
{
	float3 a;
	float3 b;
};

// function on a struct
Foo makeFoo(float x, float y)
{
	// local of struct type
	Foo foo;
	foo.a = float3(x);
	foo.b = float3(y);
	return foo;
}

/* Note(tfoley): disabled during syntax transition

template shader Test()
//    targets StandardPipeline
{
	// Uniform of struct type
	param Foo foo1;

    @MeshVertex float3 position;
    @MeshVertex float3 color;

    param mat4 modelViewProjection;

    public vec4 projCoord = modelViewProjection * vec4(position, 1.0);

    // Component of struct type
    // Note(tfoley): use of `public` here required to work around parser limitations
    public Foo foo2 = makeFoo(color.x, color.y);

    //
    float3 result = foo1.a + foo2.b;

    out @Fragment vec4 colorTarget = vec4(result,1);
}

*/
back to top