Graphics: Make use of new auto_binding
This commit is contained in:
parent
6b8be23fa0
commit
ab154819a7
|
|
@ -33,7 +33,8 @@ namespace Nz
|
|||
const std::shared_ptr<RenderDevice>& renderDevice = graphics->GetRenderDevice();
|
||||
|
||||
nzsl::Ast::SanitizeVisitor::Options options;
|
||||
options.allowPartialSanitization = true;
|
||||
options.forceAutoBindingResolve = true;
|
||||
options.partialSanitization = true;
|
||||
options.moduleResolver = graphics->GetShaderModuleResolver();
|
||||
options.optionValues[CRC32("MaxLightCount")] = SafeCast<UInt32>(PredefinedLightData::MaxLightCount);
|
||||
options.optionValues[CRC32("MaxJointCount")] = SafeCast<UInt32>(PredefinedSkeletalData::MaxMatricesCount);
|
||||
|
|
|
|||
|
|
@ -43,20 +43,22 @@ struct MaterialSettings
|
|||
}
|
||||
|
||||
[tag("Material")]
|
||||
[auto_binding]
|
||||
external
|
||||
{
|
||||
[tag("Settings"), binding(0)] settings: uniform[MaterialSettings],
|
||||
[tag("BaseColorMap"), binding(1)] MaterialBaseColorMap: sampler2D[f32],
|
||||
[tag("AlphaMap"), binding(2)] MaterialAlphaMap: sampler2D[f32],
|
||||
[tag("Settings")] settings: uniform[MaterialSettings],
|
||||
[tag("BaseColorMap")] MaterialBaseColorMap: sampler2D[f32],
|
||||
[tag("AlphaMap")] MaterialAlphaMap: sampler2D[f32],
|
||||
}
|
||||
|
||||
[tag("Engine")]
|
||||
[auto_binding]
|
||||
external
|
||||
{
|
||||
[tag("TextureOverlay"), binding(3)] TextureOverlay: sampler2D[f32],
|
||||
[tag("InstanceData"), binding(4)] instanceData: uniform[InstanceData],
|
||||
[tag("ViewerData"), binding(5)] viewerData: uniform[ViewerData],
|
||||
[tag("SkeletalData"), binding(6)] skeletalData: uniform[SkeletalData]
|
||||
[tag("TextureOverlay")] TextureOverlay: sampler2D[f32],
|
||||
[tag("InstanceData")] instanceData: uniform[InstanceData],
|
||||
[tag("ViewerData")] viewerData: uniform[ViewerData],
|
||||
[tag("SkeletalData")] skeletalData: uniform[SkeletalData]
|
||||
}
|
||||
|
||||
// Fragment stage
|
||||
|
|
|
|||
|
|
@ -68,25 +68,27 @@ const PointLight = 1;
|
|||
const SpotLight = 2;
|
||||
|
||||
[tag("Material")]
|
||||
[auto_binding]
|
||||
external
|
||||
{
|
||||
[tag("Settings"), binding(0)] settings: uniform[MaterialSettings],
|
||||
[tag("BaseColorMap"), binding(1)] MaterialBaseColorMap: sampler2D[f32],
|
||||
[tag("AlphaMap"), binding(2)] MaterialAlphaMap: sampler2D[f32],
|
||||
[tag("EmissiveMap"), binding(3)] MaterialEmissiveMap: sampler2D[f32],
|
||||
[tag("HeightMap"), binding(4)] MaterialHeightMap: sampler2D[f32],
|
||||
[tag("NormalMap"), binding(5)] MaterialNormalMap: sampler2D[f32],
|
||||
[tag("SpecularMap"), binding(6)] MaterialSpecularMap: sampler2D[f32],
|
||||
[tag("Settings")] settings: uniform[MaterialSettings],
|
||||
[tag("BaseColorMap")] MaterialBaseColorMap: sampler2D[f32],
|
||||
[tag("AlphaMap")] MaterialAlphaMap: sampler2D[f32],
|
||||
[tag("EmissiveMap")] MaterialEmissiveMap: sampler2D[f32],
|
||||
[tag("HeightMap")] MaterialHeightMap: sampler2D[f32],
|
||||
[tag("NormalMap")] MaterialNormalMap: sampler2D[f32],
|
||||
[tag("SpecularMap")] MaterialSpecularMap: sampler2D[f32],
|
||||
}
|
||||
|
||||
[tag("Engine")]
|
||||
[auto_binding]
|
||||
external
|
||||
{
|
||||
[tag("TextureOverlay"), binding(7)] TextureOverlay: sampler2D[f32],
|
||||
[tag("InstanceData"), binding(8)] instanceData: uniform[InstanceData],
|
||||
[tag("ViewerData"), binding(9)] viewerData: uniform[ViewerData],
|
||||
[tag("SkeletalData"), binding(10)] skeletalData: uniform[SkeletalData],
|
||||
[tag("LightData"), binding(11)] lightData: uniform[LightData]
|
||||
[tag("TextureOverlay")] TextureOverlay: sampler2D[f32],
|
||||
[tag("InstanceData")] instanceData: uniform[InstanceData],
|
||||
[tag("ViewerData")] viewerData: uniform[ViewerData],
|
||||
[tag("SkeletalData")] skeletalData: uniform[SkeletalData],
|
||||
[tag("LightData")] lightData: uniform[LightData]
|
||||
}
|
||||
|
||||
struct VertToFrag
|
||||
|
|
|
|||
|
|
@ -59,27 +59,29 @@ const PointLight = 1;
|
|||
const SpotLight = 2;
|
||||
|
||||
[tag("Material")]
|
||||
[auto_binding]
|
||||
external
|
||||
{
|
||||
[tag("Settings"), binding(0)] settings: uniform[MaterialSettings],
|
||||
[tag("BaseColorMap"), binding(1)] MaterialBaseColorMap: sampler2D[f32],
|
||||
[tag("AlphaMap"), binding(2)] MaterialAlphaMap: sampler2D[f32],
|
||||
[tag("EmissiveMap"), binding(3)] MaterialEmissiveMap: sampler2D[f32],
|
||||
[tag("HeightMap"), binding(4)] MaterialHeightMap: sampler2D[f32],
|
||||
[tag("MetallicMap"), binding(5)] MaterialMetallicMap: sampler2D[f32],
|
||||
[tag("NormalMap"), binding(6)] MaterialNormalMap: sampler2D[f32],
|
||||
[tag("RoughnessMap"), binding(7)] MaterialRoughnessMap: sampler2D[f32],
|
||||
[tag("SpecularMap"), binding(8)] MaterialSpecularMap: sampler2D[f32],
|
||||
[tag("Settings")] settings: uniform[MaterialSettings],
|
||||
[tag("BaseColorMap")] MaterialBaseColorMap: sampler2D[f32],
|
||||
[tag("AlphaMap")] MaterialAlphaMap: sampler2D[f32],
|
||||
[tag("EmissiveMap")] MaterialEmissiveMap: sampler2D[f32],
|
||||
[tag("HeightMap")] MaterialHeightMap: sampler2D[f32],
|
||||
[tag("MetallicMap")] MaterialMetallicMap: sampler2D[f32],
|
||||
[tag("NormalMap")] MaterialNormalMap: sampler2D[f32],
|
||||
[tag("RoughnessMap")] MaterialRoughnessMap: sampler2D[f32],
|
||||
[tag("SpecularMap")] MaterialSpecularMap: sampler2D[f32],
|
||||
}
|
||||
|
||||
[tag("Engine")]
|
||||
[auto_binding]
|
||||
external
|
||||
{
|
||||
[tag("TextureOverlay"), binding(9)] TextureOverlay: sampler2D[f32],
|
||||
[tag("InstanceData"), binding(10)] instanceData: uniform[InstanceData],
|
||||
[tag("ViewerData"), binding(11)] viewerData: uniform[ViewerData],
|
||||
[tag("SkeletalData"), binding(12)] skeletalData: uniform[SkeletalData],
|
||||
[tag("LightData"), binding(13)] lightData: uniform[LightData]
|
||||
[tag("TextureOverlay")] TextureOverlay: sampler2D[f32],
|
||||
[tag("InstanceData")] instanceData: uniform[InstanceData],
|
||||
[tag("ViewerData")] viewerData: uniform[ViewerData],
|
||||
[tag("SkeletalData")] skeletalData: uniform[SkeletalData],
|
||||
[tag("LightData")] lightData: uniform[LightData]
|
||||
}
|
||||
|
||||
struct VertToFrag
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ namespace Nz
|
|||
// Try to partially sanitize shader
|
||||
|
||||
nzsl::Ast::SanitizeVisitor::Options sanitizeOptions;
|
||||
sanitizeOptions.allowPartialSanitization = true;
|
||||
sanitizeOptions.partialSanitization = true;
|
||||
sanitizeOptions.moduleResolver = Graphics::Instance()->GetShaderModuleResolver();
|
||||
|
||||
nzsl::Ast::ModulePtr sanitizedModule = nzsl::Ast::Sanitize(module, sanitizeOptions);
|
||||
|
|
|
|||
Loading…
Reference in New Issue