From 570666ab1ac950450051e66b0b6acbe1c0365280 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Sat, 28 May 2016 22:25:43 -0400 Subject: [PATCH] Give shaders in Effects files a unique main function name. This lets you generate Metal shaders that won't conflict in the same library. --- mojoshader_effects.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mojoshader_effects.c b/mojoshader_effects.c index 4dfdef8e..b81c4171 100644 --- a/mojoshader_effects.c +++ b/mojoshader_effects.c @@ -622,9 +622,11 @@ static void readsmallobjects(const uint32 numsmallobjects, else if (object->type == MOJOSHADER_SYMTYPE_PIXELSHADER || object->type == MOJOSHADER_SYMTYPE_VERTEXSHADER) { + char mainfn[32]; + snprintf(mainfn, sizeof (mainfn), "ShaderFunction%u", (unsigned int) index); object->shader.technique = -1; object->shader.pass = -1; - object->shader.shader = MOJOSHADER_parse(profile, NULL, *ptr, length, + object->shader.shader = MOJOSHADER_parse(profile, mainfn, *ptr, length, swiz, swizcount, smap, smapcount, m, f, d); // !!! FIXME: check for errors. @@ -745,7 +747,9 @@ static void readlargeobjects(const uint32 numlargeobjects, } // if else { - object->shader.shader = MOJOSHADER_parse(emitter, NULL, *ptr, length, + char mainfn[32]; + snprintf(mainfn, sizeof (mainfn), "ShaderFunction%u", (unsigned int) objectIndex); + object->shader.shader = MOJOSHADER_parse(emitter, mainfn, *ptr, length, swiz, swizcount, smap, smapcount, m, f, d); // !!! FIXME: check for errors.