Browse Source

Move LightShading and LightShadingApplyFog to the new format

Panagiotis Christopoulos Charitos 5 years ago
parent
commit
3ca7c58ff9

+ 5 - 5
shaders/LightShading.glslp → shaders/LightShading.ankiprog

@@ -3,11 +3,11 @@
 // Code licensed under the BSD License.
 // http://www.anki3d.org/LICENSE
 
-#pragma anki input const U32 CLUSTER_COUNT_X
-#pragma anki input const U32 CLUSTER_COUNT_Y
-#pragma anki input const U32 CLUSTER_COUNT_Z
-#pragma anki input const U32 CLUSTER_COUNT
-#pragma anki input const U32 IR_MIPMAP_COUNT
+ANKI_SPECIALIZATION_CONSTANT_U32(CLUSTER_COUNT_X, 0, 1u);
+ANKI_SPECIALIZATION_CONSTANT_U32(CLUSTER_COUNT_Y, 1, 1u);
+ANKI_SPECIALIZATION_CONSTANT_U32(CLUSTER_COUNT_Z, 2, 1u);
+ANKI_SPECIALIZATION_CONSTANT_U32(CLUSTER_COUNT, 3, 1u);
+ANKI_SPECIALIZATION_CONSTANT_U32(IR_MIPMAP_COUNT, 4, 1u);
 
 #pragma anki start vert
 #include <shaders/Common.glsl>

+ 2 - 2
shaders/LightShadingApplyFog.glslp → shaders/LightShadingApplyFog.ankiprog

@@ -3,7 +3,7 @@
 // Code licensed under the BSD License.
 // http://www.anki3d.org/LICENSE
 
-#pragma anki input const U32 FOG_LAST_CLASTER
+ANKI_SPECIALIZATION_CONSTANT_U32(FOG_LAST_CLASTER, 0, 1u);
 
 #pragma anki start vert
 #include <shaders/QuadVert.glsl>
@@ -46,4 +46,4 @@ void main()
 	out_color = Vec4(inScattering, transmittance);
 }
 
-#pragma anki end
+#pragma anki end

+ 14 - 14
src/anki/renderer/LightShading.cpp

@@ -51,17 +51,17 @@ Error LightShading::init(const ConfigSet& config)
 Error LightShading::initLightShading(const ConfigSet& config)
 {
 	// Load shaders and programs
-	ANKI_CHECK(getResourceManager().loadResource("shaders/LightShading.glslp", m_lightShading.m_prog));
+	ANKI_CHECK(getResourceManager().loadResource("shaders/LightShading.ankiprog", m_lightShading.m_prog));
 
-	ShaderProgramResourceConstantValueInitList<5> consts(m_lightShading.m_prog);
-	consts.add("CLUSTER_COUNT_X", U32(m_r->getClusterCount()[0]))
-		.add("CLUSTER_COUNT_Y", U32(m_r->getClusterCount()[1]))
-		.add("CLUSTER_COUNT_Z", U32(m_r->getClusterCount()[2]))
-		.add("CLUSTER_COUNT", U32(m_r->getClusterCount()[3]))
-		.add("IR_MIPMAP_COUNT", U32(m_r->getProbeReflections().getReflectionTextureMipmapCount()));
+	ShaderProgramResourceVariantInitInfo2 variantInitInfo(m_lightShading.m_prog);
+	variantInitInfo.addConstant("CLUSTER_COUNT_X", U32(m_r->getClusterCount()[0]));
+	variantInitInfo.addConstant("CLUSTER_COUNT_Y", U32(m_r->getClusterCount()[1]));
+	variantInitInfo.addConstant("CLUSTER_COUNT_Z", U32(m_r->getClusterCount()[2]));
+	variantInitInfo.addConstant("CLUSTER_COUNT", U32(m_r->getClusterCount()[3]));
+	variantInitInfo.addConstant("IR_MIPMAP_COUNT", U32(m_r->getProbeReflections().getReflectionTextureMipmapCount()));
 
-	const ShaderProgramResourceVariant* variant;
-	m_lightShading.m_prog->getOrCreateVariant(consts.get(), variant);
+	const ShaderProgramResourceVariant2* variant;
+	m_lightShading.m_prog->getOrCreateVariant(variantInitInfo, variant);
 	m_lightShading.m_grProg = variant->getProgram();
 
 	// Create RT descr
@@ -82,13 +82,13 @@ Error LightShading::initLightShading(const ConfigSet& config)
 Error LightShading::initApplyFog(const ConfigSet& config)
 {
 	// Load shaders and programs
-	ANKI_CHECK(getResourceManager().loadResource("shaders/LightShadingApplyFog.glslp", m_applyFog.m_prog));
+	ANKI_CHECK(getResourceManager().loadResource("shaders/LightShadingApplyFog.ankiprog", m_applyFog.m_prog));
 
-	ShaderProgramResourceConstantValueInitList<1> consts(m_applyFog.m_prog);
-	consts.add("FOG_LAST_CLASTER", m_r->getVolumetricFog().getFinalClusterInZ());
+	ShaderProgramResourceVariantInitInfo2 variantInitInfo(m_applyFog.m_prog);
+	variantInitInfo.addConstant("FOG_LAST_CLASTER", m_r->getVolumetricFog().getFinalClusterInZ());
 
-	const ShaderProgramResourceVariant* variant;
-	m_applyFog.m_prog->getOrCreateVariant(consts.get(), variant);
+	const ShaderProgramResourceVariant2* variant;
+	m_applyFog.m_prog->getOrCreateVariant(variantInitInfo, variant);
 	m_applyFog.m_grProg = variant->getProgram();
 
 	return Error::NONE;

+ 2 - 2
src/anki/renderer/LightShading.h

@@ -40,14 +40,14 @@ private:
 		FramebufferDescription m_fbDescr;
 
 		// Light shaders
-		ShaderProgramResourcePtr m_prog;
+		ShaderProgramResource2Ptr m_prog;
 		ShaderProgramPtr m_grProg;
 	} m_lightShading;
 
 	class
 	{
 	public:
-		ShaderProgramResourcePtr m_prog;
+		ShaderProgramResource2Ptr m_prog;
 		ShaderProgramPtr m_grProg;
 	} m_applyFog;