Videocommon: setlocale for shader compilation, should fix problem with runaway , in certain locales.
Please test issues 1533 and 1496 git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4418 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
fb60b10c7b
commit
9f8a2986a2
|
@ -18,6 +18,7 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include <locale.h>
|
||||||
|
|
||||||
#include "Profiler.h"
|
#include "Profiler.h"
|
||||||
#include "PixelShaderGen.h"
|
#include "PixelShaderGen.h"
|
||||||
|
@ -382,6 +383,7 @@ static void BuildSwapModeTable()
|
||||||
|
|
||||||
const char *GeneratePixelShader(u32 texture_mask, bool dstAlphaEnable, bool HLSL)
|
const char *GeneratePixelShader(u32 texture_mask, bool dstAlphaEnable, bool HLSL)
|
||||||
{
|
{
|
||||||
|
setlocale(LC_NUMERIC, "C"); // Reset locale for compilation
|
||||||
text[sizeof(text) - 1] = 0x7C; // canary
|
text[sizeof(text) - 1] = 0x7C; // canary
|
||||||
DVSTARTPROFILE();
|
DVSTARTPROFILE();
|
||||||
|
|
||||||
|
@ -551,6 +553,7 @@ const char *GeneratePixelShader(u32 texture_mask, bool dstAlphaEnable, bool HLSL
|
||||||
if (text[sizeof(text) - 1] != 0x7C)
|
if (text[sizeof(text) - 1] != 0x7C)
|
||||||
PanicAlert("PixelShader generator - buffer too small, canary has been eaten!");
|
PanicAlert("PixelShader generator - buffer too small, canary has been eaten!");
|
||||||
|
|
||||||
|
setlocale(LC_NUMERIC, ""); // restore locale
|
||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
#include <locale.h>
|
||||||
#include "Common.h"
|
#include "Common.h"
|
||||||
|
|
||||||
#include "TextureConversionShader.h"
|
#include "TextureConversionShader.h"
|
||||||
|
@ -642,6 +643,7 @@ void WriteZ24Encoder(char* p)
|
||||||
|
|
||||||
const char *GenerateEncodingShader(u32 format)
|
const char *GenerateEncodingShader(u32 format)
|
||||||
{
|
{
|
||||||
|
setlocale(LC_NUMERIC, "C"); // Reset locale for compilation
|
||||||
text[sizeof(text) - 1] = 0x7C; // canary
|
text[sizeof(text) - 1] = 0x7C; // canary
|
||||||
|
|
||||||
char *p = text;
|
char *p = text;
|
||||||
|
@ -725,6 +727,7 @@ const char *GenerateEncodingShader(u32 format)
|
||||||
if (text[sizeof(text) - 1] != 0x7C)
|
if (text[sizeof(text) - 1] != 0x7C)
|
||||||
PanicAlert("TextureConversionShader generator - buffer too small, canary has been eaten!");
|
PanicAlert("TextureConversionShader generator - buffer too small, canary has been eaten!");
|
||||||
|
|
||||||
|
setlocale(LC_NUMERIC, ""); // restore locale
|
||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
// http://code.google.com/p/dolphin-emu/
|
// http://code.google.com/p/dolphin-emu/
|
||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
#include <locale.h>
|
||||||
|
|
||||||
#include "Profiler.h"
|
#include "Profiler.h"
|
||||||
#include "NativeVertexFormat.h"
|
#include "NativeVertexFormat.h"
|
||||||
|
@ -80,6 +81,7 @@ char *GenerateLightShader(char* p, int index, const LitChannel& chan, const char
|
||||||
|
|
||||||
const char *GenerateVertexShader(u32 components, bool D3D)
|
const char *GenerateVertexShader(u32 components, bool D3D)
|
||||||
{
|
{
|
||||||
|
setlocale(LC_NUMERIC, "C"); // Reset locale for compilation
|
||||||
text[sizeof(text) - 1] = 0x7C; // canary
|
text[sizeof(text) - 1] = 0x7C; // canary
|
||||||
DVSTARTPROFILE();
|
DVSTARTPROFILE();
|
||||||
|
|
||||||
|
@ -496,5 +498,6 @@ char* GenerateLightShader(char* p, int index, const LitChannel& chan, const char
|
||||||
}
|
}
|
||||||
WRITE(p, "\n");
|
WRITE(p, "\n");
|
||||||
|
|
||||||
|
setlocale(LC_NUMERIC, ""); // restore locale
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue