mirror of https://github.com/snes9xgit/snes9x.git
GTK+: Patch into S9xCustomDisplayString.
Fix issue with overlay on overscanned height.
This commit is contained in:
parent
95c6baebd3
commit
7bb5b00504
7
gfx.cpp
7
gfx.cpp
|
@ -22,6 +22,7 @@ extern struct SLineMatrixData LineMatrixData[240];
|
||||||
void S9xComputeClipWindows (void);
|
void S9xComputeClipWindows (void);
|
||||||
|
|
||||||
static int font_width = 8, font_height = 9;
|
static int font_width = 8, font_height = 9;
|
||||||
|
void (*S9xCustomDisplayString) (const char *, int, int, bool) = NULL;
|
||||||
|
|
||||||
static void SetupOBJ (void);
|
static void SetupOBJ (void);
|
||||||
static void DrawOBJS (int);
|
static void DrawOBJS (int);
|
||||||
|
@ -1824,6 +1825,12 @@ void S9xDisplayChar (uint16 *s, uint8 c)
|
||||||
|
|
||||||
static void DisplayStringFromBottom (const char *string, int linesFromBottom, int pixelsFromLeft, bool allowWrap)
|
static void DisplayStringFromBottom (const char *string, int linesFromBottom, int pixelsFromLeft, bool allowWrap)
|
||||||
{
|
{
|
||||||
|
if (S9xCustomDisplayString)
|
||||||
|
{
|
||||||
|
S9xCustomDisplayString (string, linesFromBottom, pixelsFromLeft, allowWrap);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (linesFromBottom <= 0)
|
if (linesFromBottom <= 0)
|
||||||
linesFromBottom = 1;
|
linesFromBottom = 1;
|
||||||
|
|
||||||
|
|
|
@ -1709,20 +1709,6 @@ S9xDisplayGetDriver ()
|
||||||
return driver;
|
return driver;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
S9xInitDisplay (int argc, char **argv)
|
|
||||||
{
|
|
||||||
Settings.SupportHiRes = TRUE;
|
|
||||||
S9xBlit2xSaIFilterInit ();
|
|
||||||
#ifdef USE_HQ2X
|
|
||||||
S9xBlitHQ2xFilterInit ();
|
|
||||||
#endif /* USE_HQ2SX */
|
|
||||||
S9xQueryDrivers ();
|
|
||||||
S9xInitDriver ();
|
|
||||||
S9xGraphicsInit ();
|
|
||||||
S9xDisplayReconfigure ();
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
S9xDisplayClearBuffers ()
|
S9xDisplayClearBuffers ()
|
||||||
{
|
{
|
||||||
|
@ -1850,7 +1836,7 @@ static void GTKDisplayChar (int x, int y, uint8 c, bool overlap = false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GTKDisplayStringFromBottom (const char *string, int linesFromBottom,
|
static void S9xGTKDisplayString (const char *string, int linesFromBottom,
|
||||||
int pixelsFromLeft, bool allowWrap)
|
int pixelsFromLeft, bool allowWrap)
|
||||||
{
|
{
|
||||||
if (linesFromBottom <= 0)
|
if (linesFromBottom <= 0)
|
||||||
|
@ -1867,6 +1853,11 @@ void GTKDisplayStringFromBottom (const char *string, int linesFromBottom,
|
||||||
int len = strlen(string);
|
int len = strlen(string);
|
||||||
bool overlap = false;
|
bool overlap = false;
|
||||||
|
|
||||||
|
if (IPPU.RenderedScreenHeight % 224 && !gui_config->overscan)
|
||||||
|
dst_y -= 8;
|
||||||
|
else if (gui_config->overscan)
|
||||||
|
dst_y += 8;
|
||||||
|
|
||||||
for (int i = 0 ; i < len ; i++)
|
for (int i = 0 ; i < len ; i++)
|
||||||
{
|
{
|
||||||
int cindex = string[i] - 32;
|
int cindex = string[i] - 32;
|
||||||
|
@ -1894,3 +1885,18 @@ void GTKDisplayStringFromBottom (const char *string, int linesFromBottom,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
S9xInitDisplay (int argc, char **argv)
|
||||||
|
{
|
||||||
|
Settings.SupportHiRes = TRUE;
|
||||||
|
S9xBlit2xSaIFilterInit ();
|
||||||
|
#ifdef USE_HQ2X
|
||||||
|
S9xBlitHQ2xFilterInit ();
|
||||||
|
#endif /* USE_HQ2SX */
|
||||||
|
S9xQueryDrivers ();
|
||||||
|
S9xInitDriver ();
|
||||||
|
S9xGraphicsInit ();
|
||||||
|
S9xDisplayReconfigure ();
|
||||||
|
S9xCustomDisplayString = S9xGTKDisplayString;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
5
port.h
5
port.h
|
@ -133,12 +133,7 @@ typedef size_t pint;
|
||||||
#ifndef __WIN32__
|
#ifndef __WIN32__
|
||||||
void _splitpath (const char *, char *, char *, char *, char *);
|
void _splitpath (const char *, char *, char *, char *, char *);
|
||||||
void _makepath (char *, const char *, const char *, const char *, const char *);
|
void _makepath (char *, const char *, const char *, const char *, const char *);
|
||||||
#ifdef SNES9X_GTK
|
|
||||||
void GTKDisplayStringFromBottom(const char *, int, int, bool);
|
|
||||||
#define S9xDisplayString GTKDisplayStringFromBottom
|
|
||||||
#else
|
|
||||||
#define S9xDisplayString DisplayStringFromBottom
|
#define S9xDisplayString DisplayStringFromBottom
|
||||||
#endif
|
|
||||||
#else // __WIN32__
|
#else // __WIN32__
|
||||||
#define snprintf _snprintf
|
#define snprintf _snprintf
|
||||||
#define strcasecmp stricmp
|
#define strcasecmp stricmp
|
||||||
|
|
Loading…
Reference in New Issue