X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=frontend%2Fplugin_lib.c;h=5017a1bbede866ef5dcdbf183644d6d068649bf4;hp=bf213dd43ee06e3796228065809441ae48993220;hb=a1b44e3650691750cff4bf1c5bc04a36c3e8066d;hpb=fa56d36096cd4ab2b227ce2aa61c8404b8874689 diff --git a/frontend/plugin_lib.c b/frontend/plugin_lib.c index bf213dd4..5017a1bb 100644 --- a/frontend/plugin_lib.c +++ b/frontend/plugin_lib.c @@ -17,18 +17,17 @@ #include #include +#include "libpicofe/fonts.h" +#include "libpicofe/input.h" +#include "libpicofe/plat.h" +#include "libpicofe/arm/neon_scale2x.h" +#include "libpicofe/arm/neon_eagle2x.h" #include "plugin_lib.h" -#include "linux/fbdev.h" -#include "common/fonts.h" -#include "common/input.h" -#include "common/plat.h" #include "menu.h" #include "main.h" #include "plat.h" #include "pcnt.h" #include "pl_gun_ts.h" -#include "libpicofe/arm/neon_scale2x.h" -#include "libpicofe/arm/neon_eagle2x.h" #include "../libpcsxcore/new_dynarec/new_dynarec.h" #include "../libpcsxcore/psemu_plugin_defs.h" #include "../plugins/gpulib/cspace.h" @@ -249,6 +248,8 @@ static void pl_vout_flip(const void *vram, int stride, int bgr24, int w, int h) int dstride = pl_vout_w, h1 = h; int doffs; + pcnt_start(PCNT_BLIT); + if (dest == NULL) goto out; @@ -312,6 +313,8 @@ static void pl_vout_flip(const void *vram, int stride, int bgr24, int w, int h) pl_print_hud(w * pl_vout_scale, h * pl_vout_scale, 0); out: + pcnt_end(PCNT_BLIT); + // let's flip now pl_vout_buf = plat_gvideo_flip(); pl_rearmed_cbs.flip_cnt++; @@ -471,11 +474,6 @@ static void update_input(void) emu_set_action(emu_act); in_keystate = actions[IN_BINDTYPE_PLAYER12]; -#ifdef X11 - extern int x11_update_keys(unsigned int *action); - in_keystate |= x11_update_keys(&emu_act); - emu_set_action(emu_act); -#endif } #else /* MAEMO */ static void update_input(void) @@ -606,16 +604,31 @@ void pl_timing_prepare(int is_pal_) static void pl_text_out16_(int x, int y, const char *text) { - int i, l, len = strlen(text), w = pl_vout_w; - unsigned short *screen = (unsigned short *)pl_vout_buf + x + y * w; + int i, l, w = pl_vout_w; + unsigned short *screen; unsigned short val = 0xffff; - for (i = 0; i < len; i++, screen += 8) + 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[text[i] * 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;