google issue 42 - palette corruption
This commit is contained in:
parent
914dac6540
commit
7f7b80b8a8
|
@ -97,19 +97,24 @@ void FCEUD_GetPalette(unsigned char i, unsigned char *r, unsigned char *g, unsig
|
||||||
*b=color_palette[i].peBlue;
|
*b=color_palette[i].peBlue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool firstInitialize = true;
|
||||||
static int InitializeDDraw(int fs)
|
static int InitializeDDraw(int fs)
|
||||||
{
|
{
|
||||||
#ifdef _USE_SHARED_MEMORY_
|
//only init the palette the first time through
|
||||||
mapColorPalette = CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE, 0, 256 * sizeof(PALETTEENTRY),"fceu.ColorPalette");
|
if(firstInitialize) {
|
||||||
if(mapColorPalette == NULL || GetLastError() == ERROR_ALREADY_EXISTS)
|
firstInitialize = false;
|
||||||
{
|
#ifdef _USE_SHARED_MEMORY_
|
||||||
CloseHandle(mapColorPalette);
|
mapColorPalette = CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE, 0, 256 * sizeof(PALETTEENTRY),"fceu.ColorPalette");
|
||||||
mapColorPalette = NULL;
|
if(mapColorPalette == NULL || GetLastError() == ERROR_ALREADY_EXISTS)
|
||||||
color_palette = (PALETTEENTRY*)malloc(256 * sizeof(PALETTEENTRY)); //mbg merge 7/18/06 added cast
|
{
|
||||||
|
CloseHandle(mapColorPalette);
|
||||||
|
mapColorPalette = NULL;
|
||||||
|
color_palette = (PALETTEENTRY*)malloc(256 * sizeof(PALETTEENTRY)); //mbg merge 7/18/06 added cast
|
||||||
|
}
|
||||||
|
else
|
||||||
|
color_palette = (PALETTEENTRY *)MapViewOfFile(mapColorPalette, FILE_MAP_WRITE, 0, 0, 0);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else
|
|
||||||
color_palette = (PALETTEENTRY *)MapViewOfFile(mapColorPalette, FILE_MAP_WRITE, 0, 0, 0);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//(disvaccel&(1<<(fs?1:0)))?(GUID FAR *)DDCREATE_EMULATIONONLY:
|
//(disvaccel&(1<<(fs?1:0)))?(GUID FAR *)DDCREATE_EMULATIONONLY:
|
||||||
ddrval = DirectDrawCreate((disvaccel&(1<<(fs?1:0)))?(GUID FAR *)DDCREATE_EMULATIONONLY:NULL, &lpDD, NULL);
|
ddrval = DirectDrawCreate((disvaccel&(1<<(fs?1:0)))?(GUID FAR *)DDCREATE_EMULATIONONLY:NULL, &lpDD, NULL);
|
||||||
|
@ -1081,8 +1086,8 @@ void SetFSVideoMode()
|
||||||
|
|
||||||
void DoVideoConfigFix(void)
|
void DoVideoConfigFix(void)
|
||||||
{
|
{
|
||||||
FCEUI_DisableSpriteLimitation(eoptions&EO_NOSPRLIM);
|
FCEUI_DisableSpriteLimitation(eoptions&EO_NOSPRLIM);
|
||||||
UpdateRendBounds();
|
UpdateRendBounds();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1103,6 +1108,6 @@ void ConfigVideo(void)
|
||||||
SetVideoMode(0);
|
SetVideoMode(0);
|
||||||
changerecursive = 0;
|
changerecursive = 0;
|
||||||
}
|
}
|
||||||
//SetMainWindowStuff();
|
SetMainWindowStuff();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue