Bug fix #143: GLSL shader error on European locales
Set LC_NUMERIC=C when generating GLSL shader strings to avoid decimal point issues on European locales. Thanks to hiciu for reporting.
This commit is contained in:
parent
5da802634a
commit
926ae379ba
|
@ -225,6 +225,11 @@ glx_init_blur(session_t *ps) {
|
||||||
|
|
||||||
#ifdef CONFIG_VSYNC_OPENGL_GLSL
|
#ifdef CONFIG_VSYNC_OPENGL_GLSL
|
||||||
{
|
{
|
||||||
|
char *lc_numeric_old = mstrcpy(setlocale(LC_NUMERIC, NULL));
|
||||||
|
// Enforce LC_NUMERIC locale "C" here to make sure decimal point is sane
|
||||||
|
// Thanks to hiciu for reporting.
|
||||||
|
setlocale(LC_NUMERIC, "C");
|
||||||
|
|
||||||
static const char *FRAG_SHADER_BLUR_PREFIX =
|
static const char *FRAG_SHADER_BLUR_PREFIX =
|
||||||
"#version 110\n"
|
"#version 110\n"
|
||||||
"%s"
|
"%s"
|
||||||
|
@ -331,6 +336,10 @@ glx_init_blur(session_t *ps) {
|
||||||
#undef P_GET_UNIFM_LOC
|
#undef P_GET_UNIFM_LOC
|
||||||
}
|
}
|
||||||
free(extension);
|
free(extension);
|
||||||
|
|
||||||
|
// Restore LC_NUMERIC
|
||||||
|
setlocale(LC_NUMERIC, lc_numeric_old);
|
||||||
|
free(lc_numeric_old);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
#include <locale.h>
|
||||||
|
|
||||||
#ifdef DEBUG_GLX_ERR
|
#ifdef DEBUG_GLX_ERR
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue