diff options
| author | Tim Foley <tfoleyNV@users.noreply.github.com> | 2017-07-11 13:04:58 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-07-11 13:04:58 -0700 |
| commit | fa48d2d59abb7e2e5f92ab1477e0700cb8a76680 (patch) | |
| tree | 19b3ceca7f7f83c1fd32351679521cf348bd1d0d /source/slang/slang-stdlib.cpp | |
| parent | a60dd57e5ac0d3cc43fddf62dbf72677d377121f (diff) | |
| parent | 0cd5602383d1ae85276eacec69d51a15a9e975f4 (diff) | |
Merge pull request #73 from tfoleyNV/image-type-reflection
Improve reporting of GLSL `image*` types
Diffstat (limited to 'source/slang/slang-stdlib.cpp')
| -rw-r--r-- | source/slang/slang-stdlib.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/source/slang/slang-stdlib.cpp b/source/slang/slang-stdlib.cpp index b3a48adea..09958ddab 100644 --- a/source/slang/slang-stdlib.cpp +++ b/source/slang/slang-stdlib.cpp @@ -1940,7 +1940,8 @@ namespace Slang for (int isMultisample = 0; isMultisample < 2; ++isMultisample) { - auto access = SLANG_RESOURCE_ACCESS_READ; + auto readAccess = SLANG_RESOURCE_ACCESS_READ; + auto readWriteAccess = SLANG_RESOURCE_ACCESS_READ_WRITE; // TODO: any constraints to enforce on what gets to be multisampled? @@ -1950,7 +1951,10 @@ namespace Slang if (isMultisample) flavor |= TextureType::MultisampleFlag; // if (isShadow) flavor |= TextureType::ShadowFlag; - flavor |= (access << 8); + + + unsigned readFlavor = flavor | (readAccess << 8); + unsigned readWriteFlavor = flavor | (readWriteAccess << 8); StringBuilder nameBuilder; nameBuilder << shapeName; @@ -1959,17 +1963,17 @@ namespace Slang auto name = nameBuilder.ProduceString(); sb << "__generic<T> "; - sb << "__magic_type(TextureSampler," << int(flavor) << ") struct "; + sb << "__magic_type(TextureSampler," << int(readFlavor) << ") struct "; sb << "__sampler" << name; sb << " {};\n"; sb << "__generic<T> "; - sb << "__magic_type(Texture," << int(flavor) << ") struct "; + sb << "__magic_type(Texture," << int(readFlavor) << ") struct "; sb << "__texture" << name; sb << " {};\n"; sb << "__generic<T> "; - sb << "__magic_type(GLSLImageType," << int(flavor) << ") struct "; + sb << "__magic_type(GLSLImageType," << int(readWriteFlavor) << ") struct "; sb << "__image" << name; sb << " {};\n"; |
