# HG changeset patch # User Ethan Lee # Date 1593095729 14400 # Node ID fb28ba997299a00a2a75488d3d84e51e434efdc8 # Parent 5ed167069622a762c02659380104a874453e44aa Add getError to effectShaderContext diff -r 5ed167069622 -r fb28ba997299 mojoshader_effects.c --- a/mojoshader_effects.c Thu Jun 25 10:10:52 2020 -0400 +++ b/mojoshader_effects.c Thu Jun 25 10:35:29 2020 -0400 @@ -686,6 +686,12 @@ object->shader.shader = effect->ctx.compileShader(mainfn, *ptr, length, swiz, swizcount, smap, smapcount); + if (object->shader.shader == NULL) + { + // Bail ASAP, so we can get the error to the application + errorlist_add(errors, NULL, 0, effect->ctx.getError()); + return; + } // if pd = effect->ctx.getParseData(object->shader.shader); if (pd->error_count > 0) { @@ -816,6 +822,12 @@ object->shader.shader = effect->ctx.compileShader(mainfn, *ptr, length, swiz, swizcount, smap, smapcount); + if (object->shader.shader == NULL) + { + // Bail ASAP, so we can get the error to the application + errorlist_add(errors, NULL, 0, effect->ctx.getError()); + return; + } // if pd = effect->ctx.getParseData(object->shader.shader); if (pd->error_count > 0) { diff -r 5ed167069622 -r fb28ba997299 mojoshader_effects.h --- a/mojoshader_effects.h Thu Jun 25 10:10:52 2020 -0400 +++ b/mojoshader_effects.h Thu Jun 25 10:35:29 2020 -0400 @@ -506,6 +506,7 @@ float **psf, int **psi, unsigned char **psb ); typedef void (MOJOSHADERCALL * MOJOSHADER_unmapUniformBufferMemoryFunc)(); +typedef const char* (MOJOSHADERCALL * MOJOSHADER_getErrorFunc)(); typedef struct MOJOSHADER_effectShaderContext { @@ -518,6 +519,7 @@ MOJOSHADER_getBoundShadersFunc getBoundShaders; MOJOSHADER_mapUniformBufferMemoryFunc mapUniformBufferMemory; MOJOSHADER_unmapUniformBufferMemoryFunc unmapUniformBufferMemory; + MOJOSHADER_getErrorFunc getError; /* Allocator */ MOJOSHADER_malloc m;