Browse Source

Move TraditionalDeferredShading to the new format

Panagiotis Christopoulos Charitos 5 years ago
parent
commit
4c89ecb969

+ 0 - 0
shaders/TraditionalDeferredShading.glslp → shaders/TraditionalDeferredShading.ankiprog


+ 10 - 10
src/anki/renderer/TraditionalDeferredShading.cpp

@@ -26,24 +26,24 @@ Error TraditionalDeferredLightShading::init()
 {
 	// Init progs
 	{
-		ANKI_CHECK(getResourceManager().loadResource("shaders/TraditionalDeferredShading.glslp", m_lightProg));
+		ANKI_CHECK(getResourceManager().loadResource("shaders/TraditionalDeferredShading.ankiprog", m_lightProg));
 
 		for(U32 specular = 0; specular <= 1; ++specular)
 		{
-			ShaderProgramResourceMutationInitList<2> mutators(m_lightProg);
-			mutators.add("LIGHT_TYPE", 0);
-			mutators.add("SPECULAR", specular);
+			ShaderProgramResourceVariantInitInfo2 variantInitInfo(m_lightProg);
+			variantInitInfo.addMutation("LIGHT_TYPE", 0);
+			variantInitInfo.addMutation("SPECULAR", specular);
 
-			const ShaderProgramResourceVariant* variant;
-			m_lightProg->getOrCreateVariant(mutators.get(), variant);
+			const ShaderProgramResourceVariant2* variant;
+			m_lightProg->getOrCreateVariant(variantInitInfo, variant);
 			m_plightGrProg[specular] = variant->getProgram();
 
-			mutators[0].m_value = 1;
-			m_lightProg->getOrCreateVariant(mutators.get(), variant);
+			variantInitInfo.addMutation("LIGHT_TYPE", 1);
+			m_lightProg->getOrCreateVariant(variantInitInfo, variant);
 			m_slightGrProg[specular] = variant->getProgram();
 
-			mutators[0].m_value = 2;
-			m_lightProg->getOrCreateVariant(mutators.get(), variant);
+			variantInitInfo.addMutation("LIGHT_TYPE", 2);
+			m_lightProg->getOrCreateVariant(variantInitInfo, variant);
 			m_dirLightGrProg[specular] = variant->getProgram();
 		}
 	}

+ 1 - 1
src/anki/renderer/TraditionalDeferredShading.h

@@ -49,7 +49,7 @@ public:
 	void drawLights(TraditionalDeferredLightShadingDrawInfo& info);
 
 private:
-	ShaderProgramResourcePtr m_lightProg;
+	ShaderProgramResource2Ptr m_lightProg;
 	Array<ShaderProgramPtr, 2> m_plightGrProg;
 	Array<ShaderProgramPtr, 2> m_slightGrProg;
 	Array<ShaderProgramPtr, 2> m_dirLightGrProg;