HLSL: Add namespace grammar and some basic semantics.
Unknown how extensive the semantics need to be yet. Need real feedback from workloads. This is just done as part of unifying it with the class/struct namespaces and grammar productions.
This commit is contained in:
parent
e434ad923e
commit
8f9fdc986a
8 changed files with 307 additions and 48 deletions
23
Test/hlsl.namespace.frag
Executable file
23
Test/hlsl.namespace.frag
Executable file
|
|
@ -0,0 +1,23 @@
|
|||
static float4 v1;
|
||||
static float4 v2;
|
||||
|
||||
namespace N1 {
|
||||
float4 getVec() { return v1; }
|
||||
}
|
||||
|
||||
namespace N2 {
|
||||
static float gf;
|
||||
float4 getVec() { return v2; }
|
||||
namespace N3 {
|
||||
float4 getVec() { return v2; }
|
||||
|
||||
class C1 {
|
||||
float4 getVec() { return v2; }
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
float4 main() : SV_Target0
|
||||
{
|
||||
return N1::getVec() + N2::getVec() + N2::N3::getVec() + N2::N3::C1::getVec() * N2::gf;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue