aboutsummaryrefslogtreecommitdiff
path: root/frontend/plugin_lib.c
diff options
context:
space:
mode:
authornotaz2012-11-11 21:01:43 +0200
committernotaz2012-11-11 22:09:19 +0200
commit841ba5ee5bfeb32bb1194c423a047f98825d26fd (patch)
tree3b37d91923f4738cabb215801c5cd57bab39dcef /frontend/plugin_lib.c
parente7b8bfadd42d9963d35057075408f34f6282e42c (diff)
downloadpcsx_rearmed-841ba5ee5bfeb32bb1194c423a047f98825d26fd.tar.gz
pcsx_rearmed-841ba5ee5bfeb32bb1194c423a047f98825d26fd.tar.bz2
pcsx_rearmed-841ba5ee5bfeb32bb1194c423a047f98825d26fd.zip
frontend: move text drawing to libpicofe
+ some minor fixes
Diffstat (limited to 'frontend/plugin_lib.c')
-rw-r--r--frontend/plugin_lib.c63
1 files changed, 9 insertions, 54 deletions
diff --git a/frontend/plugin_lib.c b/frontend/plugin_lib.c
index 8546c92..6cce912 100644
--- a/frontend/plugin_lib.c
+++ b/frontend/plugin_lib.c
@@ -72,20 +72,24 @@ static __attribute__((noinline)) int get_cpu_ticks(void)
static void print_msg(int h, int border)
{
if (pl_vout_bpp == 16)
- pl_text_out16(border + 2, h - 10, "%s", hud_msg);
+ basic_text_out16_nf(pl_vout_buf, pl_vout_w,
+ border + 2, h - 10, hud_msg);
}
static void print_fps(int h, int border)
{
if (pl_vout_bpp == 16)
- pl_text_out16(border + 2, h - 10, "%2d %4.1f",
+ basic_text_out16(pl_vout_buf, pl_vout_w,
+ border + 2, h - 10, "%2d %4.1f",
pl_rearmed_cbs.flips_per_sec, pl_rearmed_cbs.vsps_cur);
}
static void print_cpu_usage(int w, int h, int border)
{
if (pl_vout_bpp == 16)
- pl_text_out16(w - border - 28, h - 10, "%3d", pl_rearmed_cbs.cpu_usage);
+ basic_text_out16(pl_vout_buf, pl_vout_w,
+ pl_vout_w - border - 28, h - 10,
+ "%3d", pl_rearmed_cbs.cpu_usage);
}
// draw 192x8 status of 24 sound channels
@@ -123,6 +127,8 @@ void pl_print_hud(int w, int h, int xborder)
if (h < 16)
return;
+ xborder += (pl_vout_w - w) / 2;
+
if (g_opts & OPT_SHOWSPU)
draw_active_chans(w, h);
@@ -641,57 +647,6 @@ void pl_timing_prepare(int is_pal_)
(100000*100 / (unsigned long)(pl_rearmed_cbs.gpu_peops.fFrameRateHz*100));
}
-static void pl_text_out16_(int x, int y, const char *text)
-{
- int i, l, w = pl_vout_w;
- unsigned short *screen;
- unsigned short val = 0xffff;
-
- x &= ~1;
- screen = (unsigned short *)pl_vout_buf + x + y * w;
- for (i = 0; ; i++, screen += 8)
- {
- char c = text[i];
- if (c == 0)
- break;
- if (c == ' ')
- continue;
-
- for (l = 0; l < 8; l++)
- {
- unsigned char fd = fontdata8x8[c * 8 + l];
- unsigned short *s = screen + l * w;
- unsigned int *s32 = (void *)s;
-
- s32[0] = (s32[0] >> 1) & 0x7bef7bef;
- s32[1] = (s32[1] >> 1) & 0x7bef7bef;
- s32[2] = (s32[2] >> 1) & 0x7bef7bef;
- s32[3] = (s32[3] >> 1) & 0x7bef7bef;
-
- if (fd&0x80) s[0] = val;
- if (fd&0x40) s[1] = val;
- if (fd&0x20) s[2] = val;
- if (fd&0x10) s[3] = val;
- if (fd&0x08) s[4] = val;
- if (fd&0x04) s[5] = val;
- if (fd&0x02) s[6] = val;
- if (fd&0x01) s[7] = val;
- }
- }
-}
-
-void pl_text_out16(int x, int y, const char *texto, ...)
-{
- va_list args;
- char buffer[256];
-
- va_start(args, texto);
- vsnprintf(buffer, sizeof(buffer), texto, args);
- va_end(args);
-
- pl_text_out16_(x, y, buffer);
-}
-
static void pl_get_layer_pos(int *x, int *y, int *w, int *h)
{
*x = g_layer_x;