mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 07:17:45 -04:00
add a pitch variable
32x is still broken
This commit is contained in:
parent
88f6038d05
commit
9cdfc191b6
11 changed files with 59 additions and 46 deletions
|
@ -42,6 +42,7 @@ void *g_screen_ptr;
|
||||||
|
|
||||||
int g_screen_width = 320;
|
int g_screen_width = 320;
|
||||||
int g_screen_height = 240;
|
int g_screen_height = 240;
|
||||||
|
int g_screen_ppitch = 320; // pitch in pixels
|
||||||
|
|
||||||
const char *PicoConfigFile = "config2.cfg";
|
const char *PicoConfigFile = "config2.cfg";
|
||||||
currentConfig_t currentConfig, defaultConfig;
|
currentConfig_t currentConfig, defaultConfig;
|
||||||
|
@ -730,12 +731,12 @@ void name(int x, int y, const char *text) \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
mk_text_out(emu_text_out8, unsigned char, 0xf0, g_screen_ptr, 1, g_screen_width)
|
mk_text_out(emu_text_out8, unsigned char, 0xf0, g_screen_ptr, 1, g_screen_ppitch)
|
||||||
mk_text_out(emu_text_out16, unsigned short, 0xffff, g_screen_ptr, 1, g_screen_width)
|
mk_text_out(emu_text_out16, unsigned short, 0xffff, g_screen_ptr, 1, g_screen_ppitch)
|
||||||
mk_text_out(emu_text_out8_rot, unsigned char, 0xf0,
|
mk_text_out(emu_text_out8_rot, unsigned char, 0xf0,
|
||||||
(char *)g_screen_ptr + (g_screen_width - 1) * g_screen_height, -g_screen_height, 1)
|
(char *)g_screen_ptr + (g_screen_ppitch - 1) * g_screen_height, -g_screen_height, 1)
|
||||||
mk_text_out(emu_text_out16_rot, unsigned short, 0xffff,
|
mk_text_out(emu_text_out16_rot, unsigned short, 0xffff,
|
||||||
(short *)g_screen_ptr + (g_screen_width - 1) * g_screen_height, -g_screen_height, 1)
|
(short *)g_screen_ptr + (g_screen_ppitch - 1) * g_screen_height, -g_screen_height, 1)
|
||||||
|
|
||||||
#undef mk_text_out
|
#undef mk_text_out
|
||||||
|
|
||||||
|
@ -751,7 +752,7 @@ void emu_osd_text16(int x, int y, const char *text)
|
||||||
for (h = 0; h < 8; h++) {
|
for (h = 0; h < 8; h++) {
|
||||||
unsigned short *p;
|
unsigned short *p;
|
||||||
p = (unsigned short *)g_screen_ptr
|
p = (unsigned short *)g_screen_ptr
|
||||||
+ x + g_screen_width * (y + h);
|
+ x + g_screen_ppitch * (y + h);
|
||||||
for (i = len; i > 0; i--, p++)
|
for (i = len; i > 0; i--, p++)
|
||||||
*p = (*p >> 2) & 0x39e7;
|
*p = (*p >> 2) & 0x39e7;
|
||||||
}
|
}
|
||||||
|
@ -1204,8 +1205,11 @@ static void mkdir_path(char *path_with_reserve, int pos, const char *name)
|
||||||
void emu_cmn_forced_frame(int no_scale, int do_emu)
|
void emu_cmn_forced_frame(int no_scale, int do_emu)
|
||||||
{
|
{
|
||||||
int po_old = PicoIn.opt;
|
int po_old = PicoIn.opt;
|
||||||
|
int y;
|
||||||
|
|
||||||
memset32(g_screen_ptr, 0, g_screen_width * g_screen_height * 2 / 4);
|
for (y = 0; y < g_screen_height; y++)
|
||||||
|
memset32((short *)g_screen_ptr + g_screen_ppitch * y, 0,
|
||||||
|
g_screen_width * 2 / 4);
|
||||||
|
|
||||||
PicoIn.opt &= ~POPT_ALT_RENDERER;
|
PicoIn.opt &= ~POPT_ALT_RENDERER;
|
||||||
PicoIn.opt |= POPT_ACC_SPRITES;
|
PicoIn.opt |= POPT_ACC_SPRITES;
|
||||||
|
|
|
@ -16,6 +16,7 @@ extern void *g_screen_ptr;
|
||||||
|
|
||||||
extern int g_screen_width;
|
extern int g_screen_width;
|
||||||
extern int g_screen_height;
|
extern int g_screen_height;
|
||||||
|
extern int g_screen_ppitch; // pitch in pixels
|
||||||
|
|
||||||
#define EOPT_EN_SRAM (1<<0)
|
#define EOPT_EN_SRAM (1<<0)
|
||||||
#define EOPT_SHOW_FPS (1<<1)
|
#define EOPT_SHOW_FPS (1<<1)
|
||||||
|
|
|
@ -107,7 +107,7 @@ static void make_bg(int no_scale)
|
||||||
(g_menuscreen_w / 2 - w / 2);
|
(g_menuscreen_w / 2 - w / 2);
|
||||||
|
|
||||||
// darken the active framebuffer
|
// darken the active framebuffer
|
||||||
for (; h > 0; dst += g_menuscreen_w, src += g_screen_width, h--)
|
for (; h > 0; dst += g_menuscreen_w, src += g_screen_ppitch, h--)
|
||||||
menu_darken_bg(dst, src, w, 1);
|
menu_darken_bg(dst, src, w, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -167,8 +167,8 @@ static void load_progress_cb(int percent)
|
||||||
len = g_menuscreen_w;
|
len = g_menuscreen_w;
|
||||||
|
|
||||||
menu_draw_begin(0, 1);
|
menu_draw_begin(0, 1);
|
||||||
dst = (unsigned short *)g_menuscreen_ptr + g_menuscreen_w * me_sfont_h * 2;
|
dst = (unsigned short *)g_menuscreen_ptr + g_menuscreen_pp * me_sfont_h * 2;
|
||||||
for (ln = me_sfont_h - 2; ln > 0; ln--, dst += g_menuscreen_w)
|
for (ln = me_sfont_h - 2; ln > 0; ln--, dst += g_menuscreen_pp)
|
||||||
memset(dst, 0xff, len * 2);
|
memset(dst, 0xff, len * 2);
|
||||||
menu_draw_end();
|
menu_draw_end();
|
||||||
}
|
}
|
||||||
|
@ -179,17 +179,18 @@ static void cdload_progress_cb(const char *fname, int percent)
|
||||||
unsigned short *dst;
|
unsigned short *dst;
|
||||||
|
|
||||||
menu_draw_begin(0, 1);
|
menu_draw_begin(0, 1);
|
||||||
dst = (unsigned short *)g_menuscreen_ptr + g_menuscreen_w * me_sfont_h * 2;
|
dst = (unsigned short *)g_menuscreen_ptr + g_menuscreen_pp * me_sfont_h * 2;
|
||||||
memset(dst, 0xff, g_menuscreen_w * (me_sfont_h - 2) * 2);
|
|
||||||
|
menuscreen_memset_lines(dst, 0xff, me_sfont_h - 2);
|
||||||
|
|
||||||
smalltext_out16(1, 3 * me_sfont_h, "Processing CD image / MP3s", 0xffff);
|
smalltext_out16(1, 3 * me_sfont_h, "Processing CD image / MP3s", 0xffff);
|
||||||
smalltext_out16(1, 4 * me_sfont_h, fname, 0xffff);
|
smalltext_out16(1, 4 * me_sfont_h, fname, 0xffff);
|
||||||
dst += g_menuscreen_w * me_sfont_h * 3;
|
dst += g_menuscreen_pp * me_sfont_h * 3;
|
||||||
|
|
||||||
if (len > g_menuscreen_w)
|
if (len > g_menuscreen_w)
|
||||||
len = g_menuscreen_w;
|
len = g_menuscreen_w;
|
||||||
|
|
||||||
for (ln = (me_sfont_h - 2); ln > 0; ln--, dst += g_menuscreen_w)
|
for (ln = (me_sfont_h - 2); ln > 0; ln--, dst += g_menuscreen_pp)
|
||||||
memset(dst, 0xff, len * 2);
|
memset(dst, 0xff, len * 2);
|
||||||
menu_draw_end();
|
menu_draw_end();
|
||||||
|
|
||||||
|
@ -848,13 +849,15 @@ static void debug_menu_loop(void)
|
||||||
break;
|
break;
|
||||||
case 2: pemu_forced_frame(1, 0);
|
case 2: pemu_forced_frame(1, 0);
|
||||||
make_bg(1);
|
make_bg(1);
|
||||||
PDebugShowSpriteStats((unsigned short *)g_menuscreen_ptr + (g_menuscreen_h/2 - 240/2)*g_menuscreen_w +
|
PDebugShowSpriteStats((unsigned short *)g_menuscreen_ptr
|
||||||
g_menuscreen_w/2 - 320/2, g_menuscreen_w);
|
+ (g_menuscreen_h/2 - 240/2) * g_menuscreen_pp
|
||||||
|
+ g_menuscreen_w/2 - 320/2, g_menuscreen_pp);
|
||||||
break;
|
break;
|
||||||
case 3: memset(g_menuscreen_ptr, 0, g_menuscreen_w * g_menuscreen_h * 2);
|
case 3: menuscreen_memset_lines(g_menuscreen_ptr, 0, g_menuscreen_h);
|
||||||
PDebugShowPalette(g_menuscreen_ptr, g_menuscreen_w);
|
PDebugShowPalette(g_menuscreen_ptr, g_menuscreen_pp);
|
||||||
PDebugShowSprite((unsigned short *)g_menuscreen_ptr + g_menuscreen_w*120 + g_menuscreen_w/2 + 16,
|
PDebugShowSprite((unsigned short *)g_menuscreen_ptr
|
||||||
g_menuscreen_w, spr_offs);
|
+ g_menuscreen_pp * 120 + g_menuscreen_w / 2 + 16,
|
||||||
|
g_menuscreen_pp, spr_offs);
|
||||||
draw_text_debug(PDebugSpriteList(), spr_offs, 6);
|
draw_text_debug(PDebugSpriteList(), spr_offs, 6);
|
||||||
break;
|
break;
|
||||||
case 4: tmp = PDebug32x();
|
case 4: tmp = PDebug32x();
|
||||||
|
@ -974,23 +977,23 @@ static void menu_main_draw_status(void)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* battery info */
|
/* battery info */
|
||||||
bp += (me_mfont_h * 2 + 2) * g_screen_width + g_screen_width - me_mfont_w * 3 - 3;
|
bp += (me_mfont_h * 2 + 2) * g_screen_ppitch + g_screen_width - me_mfont_w * 3 - 3;
|
||||||
for (i = 0; i < me_mfont_w * 2; i++)
|
for (i = 0; i < me_mfont_w * 2; i++)
|
||||||
bp[i] = menu_text_color;
|
bp[i] = menu_text_color;
|
||||||
for (i = 0; i < me_mfont_w * 2; i++)
|
for (i = 0; i < me_mfont_w * 2; i++)
|
||||||
bp[i + g_screen_width * bat_h] = menu_text_color;
|
bp[i + g_screen_ppitch * bat_h] = menu_text_color;
|
||||||
for (i = 0; i <= bat_h; i++)
|
for (i = 0; i <= bat_h; i++)
|
||||||
bp[i * g_screen_width] =
|
bp[i * g_screen_ppitch] =
|
||||||
bp[i * g_screen_width + me_mfont_w * 2] = menu_text_color;
|
bp[i * g_screen_ppitch + me_mfont_w * 2] = menu_text_color;
|
||||||
for (i = 2; i < bat_h - 1; i++)
|
for (i = 2; i < bat_h - 1; i++)
|
||||||
bp[i * g_screen_width - 1] =
|
bp[i * g_screen_ppitch - 1] =
|
||||||
bp[i * g_screen_width - 2] = menu_text_color;
|
bp[i * g_screen_ppitch - 2] = menu_text_color;
|
||||||
|
|
||||||
w = me_mfont_w * 2 - 1;
|
w = me_mfont_w * 2 - 1;
|
||||||
wfill = batt_val * w / 100;
|
wfill = batt_val * w / 100;
|
||||||
for (u = 1; u < bat_h; u++)
|
for (u = 1; u < bat_h; u++)
|
||||||
for (i = 0; i < wfill; i++)
|
for (i = 0; i < wfill; i++)
|
||||||
bp[(w - i) + g_screen_width * u] = menu_text_color;
|
bp[(w - i) + g_screen_ppitch * u] = menu_text_color;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int main_menu_handler(int id, int keys)
|
static int main_menu_handler(int id, int keys)
|
||||||
|
|
|
@ -158,19 +158,19 @@ void plat_video_flip(void)
|
||||||
|
|
||||||
SDL_LockYUVOverlay(plat_sdl_overlay);
|
SDL_LockYUVOverlay(plat_sdl_overlay);
|
||||||
rgb565_to_uyvy(plat_sdl_overlay->pixels[0], shadow_fb,
|
rgb565_to_uyvy(plat_sdl_overlay->pixels[0], shadow_fb,
|
||||||
g_screen_width * g_screen_height);
|
g_screen_ppitch * g_screen_height);
|
||||||
SDL_UnlockYUVOverlay(plat_sdl_overlay);
|
SDL_UnlockYUVOverlay(plat_sdl_overlay);
|
||||||
SDL_DisplayYUVOverlay(plat_sdl_overlay, &dstrect);
|
SDL_DisplayYUVOverlay(plat_sdl_overlay, &dstrect);
|
||||||
}
|
}
|
||||||
else if (plat_sdl_gl_active) {
|
else if (plat_sdl_gl_active) {
|
||||||
gl_flip(shadow_fb, g_screen_width, g_screen_height);
|
gl_flip(shadow_fb, g_screen_ppitch, g_screen_height);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (SDL_MUSTLOCK(plat_sdl_screen))
|
if (SDL_MUSTLOCK(plat_sdl_screen))
|
||||||
SDL_UnlockSurface(plat_sdl_screen);
|
SDL_UnlockSurface(plat_sdl_screen);
|
||||||
SDL_Flip(plat_sdl_screen);
|
SDL_Flip(plat_sdl_screen);
|
||||||
g_screen_ptr = plat_sdl_screen->pixels;
|
g_screen_ptr = plat_sdl_screen->pixels;
|
||||||
PicoDrawSetOutBuf(g_screen_ptr, g_screen_width * 2);
|
PicoDrawSetOutBuf(g_screen_ptr, g_screen_ppitch * 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -204,13 +204,13 @@ void plat_video_menu_end(void)
|
||||||
|
|
||||||
SDL_LockYUVOverlay(plat_sdl_overlay);
|
SDL_LockYUVOverlay(plat_sdl_overlay);
|
||||||
rgb565_to_uyvy(plat_sdl_overlay->pixels[0], shadow_fb,
|
rgb565_to_uyvy(plat_sdl_overlay->pixels[0], shadow_fb,
|
||||||
g_menuscreen_w * g_menuscreen_h);
|
g_menuscreen_pp * g_menuscreen_h);
|
||||||
SDL_UnlockYUVOverlay(plat_sdl_overlay);
|
SDL_UnlockYUVOverlay(plat_sdl_overlay);
|
||||||
|
|
||||||
SDL_DisplayYUVOverlay(plat_sdl_overlay, &dstrect);
|
SDL_DisplayYUVOverlay(plat_sdl_overlay, &dstrect);
|
||||||
}
|
}
|
||||||
else if (plat_sdl_gl_active) {
|
else if (plat_sdl_gl_active) {
|
||||||
gl_flip(g_menuscreen_ptr, g_menuscreen_w, g_menuscreen_h);
|
gl_flip(g_menuscreen_ptr, g_menuscreen_pp, g_menuscreen_h);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (SDL_MUSTLOCK(plat_sdl_screen))
|
if (SDL_MUSTLOCK(plat_sdl_screen))
|
||||||
|
@ -237,7 +237,7 @@ void plat_video_loop_prepare(void)
|
||||||
SDL_LockSurface(plat_sdl_screen);
|
SDL_LockSurface(plat_sdl_screen);
|
||||||
g_screen_ptr = plat_sdl_screen->pixels;
|
g_screen_ptr = plat_sdl_screen->pixels;
|
||||||
}
|
}
|
||||||
PicoDrawSetOutBuf(g_screen_ptr, g_screen_width * 2);
|
PicoDrawSetOutBuf(g_screen_ptr, g_screen_ppitch * 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void plat_early_init(void)
|
void plat_early_init(void)
|
||||||
|
@ -265,6 +265,7 @@ void plat_init(void)
|
||||||
|
|
||||||
g_menuscreen_w = plat_sdl_screen->w;
|
g_menuscreen_w = plat_sdl_screen->w;
|
||||||
g_menuscreen_h = plat_sdl_screen->h;
|
g_menuscreen_h = plat_sdl_screen->h;
|
||||||
|
g_menuscreen_pp = g_menuscreen_w;
|
||||||
g_menuscreen_ptr = NULL;
|
g_menuscreen_ptr = NULL;
|
||||||
|
|
||||||
shadow_size = g_menuscreen_w * g_menuscreen_h * 2;
|
shadow_size = g_menuscreen_w * g_menuscreen_h * 2;
|
||||||
|
@ -280,6 +281,7 @@ void plat_init(void)
|
||||||
|
|
||||||
g_screen_width = 320;
|
g_screen_width = 320;
|
||||||
g_screen_height = 240;
|
g_screen_height = 240;
|
||||||
|
g_screen_ppitch = 320;
|
||||||
g_screen_ptr = shadow_fb;
|
g_screen_ptr = shadow_fb;
|
||||||
|
|
||||||
in_sdl_init(&in_sdl_platform_data, plat_sdl_event_handler);
|
in_sdl_init(&in_sdl_platform_data, plat_sdl_event_handler);
|
||||||
|
|
|
@ -208,6 +208,7 @@ void plat_init(void)
|
||||||
|
|
||||||
g_menuscreen_w = 320;
|
g_menuscreen_w = 320;
|
||||||
g_menuscreen_h = 240;
|
g_menuscreen_h = 240;
|
||||||
|
g_menuscreen_pp = g_menuscreen_w;
|
||||||
gp2x_memset_all_buffers(0, 0, 320*240*2);
|
gp2x_memset_all_buffers(0, 0, 320*240*2);
|
||||||
|
|
||||||
gp2x_make_fb_bufferable(1);
|
gp2x_make_fb_bufferable(1);
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 21082d0b2b9910727770674cef9b68b9e97a3155
|
Subproject commit 2b27288eb44ef9247d2a948a207d3ac9b835421a
|
|
@ -67,7 +67,7 @@ static void draw_cd_leds(void)
|
||||||
void pemu_finalize_frame(const char *fps, const char *notice)
|
void pemu_finalize_frame(const char *fps, const char *notice)
|
||||||
{
|
{
|
||||||
if (currentConfig.renderer != RT_16BIT && !(PicoIn.AHW & PAHW_32X)) {
|
if (currentConfig.renderer != RT_16BIT && !(PicoIn.AHW & PAHW_32X)) {
|
||||||
unsigned short *pd = (unsigned short *)g_screen_ptr + 8 * g_screen_width;
|
unsigned short *pd = (unsigned short *)g_screen_ptr + 8 * g_screen_ppitch;
|
||||||
unsigned char *ps = Pico.est.Draw2FB + 328*8 + 8;
|
unsigned char *ps = Pico.est.Draw2FB + 328*8 + 8;
|
||||||
unsigned short *pal = Pico.est.HighPal;
|
unsigned short *pal = Pico.est.HighPal;
|
||||||
int i, x;
|
int i, x;
|
||||||
|
@ -94,7 +94,7 @@ static void apply_renderer(void)
|
||||||
case RT_16BIT:
|
case RT_16BIT:
|
||||||
PicoIn.opt &= ~POPT_ALT_RENDERER;
|
PicoIn.opt &= ~POPT_ALT_RENDERER;
|
||||||
PicoDrawSetOutFormat(PDF_RGB555, 0);
|
PicoDrawSetOutFormat(PDF_RGB555, 0);
|
||||||
PicoDrawSetOutBuf(g_screen_ptr, g_screen_width * 2);
|
PicoDrawSetOutBuf(g_screen_ptr, g_screen_ppitch * 2);
|
||||||
break;
|
break;
|
||||||
case RT_8BIT_ACC:
|
case RT_8BIT_ACC:
|
||||||
PicoIn.opt &= ~POPT_ALT_RENDERER;
|
PicoIn.opt &= ~POPT_ALT_RENDERER;
|
||||||
|
@ -108,7 +108,7 @@ static void apply_renderer(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PicoIn.AHW & PAHW_32X)
|
if (PicoIn.AHW & PAHW_32X)
|
||||||
PicoDrawSetOutBuf(g_screen_ptr, g_screen_width * 2);
|
PicoDrawSetOutBuf(g_screen_ptr, g_screen_ppitch * 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void plat_video_toggle_renderer(int change, int is_menu)
|
void plat_video_toggle_renderer(int change, int is_menu)
|
||||||
|
@ -127,8 +127,8 @@ void plat_video_toggle_renderer(int change, int is_menu)
|
||||||
|
|
||||||
void plat_status_msg_clear(void)
|
void plat_status_msg_clear(void)
|
||||||
{
|
{
|
||||||
unsigned short *d = (unsigned short *)g_screen_ptr + g_screen_width * g_screen_height;
|
unsigned short *d = (unsigned short *)g_screen_ptr + g_screen_ppitch * g_screen_height;
|
||||||
int l = g_screen_width * 8;
|
int l = g_screen_ppitch * 8;
|
||||||
memset32((int *)(d - l), 0, l * 2 / 4);
|
memset32((int *)(d - l), 0, l * 2 / 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,7 +143,7 @@ void plat_status_msg_busy_next(const char *msg)
|
||||||
|
|
||||||
void plat_status_msg_busy_first(const char *msg)
|
void plat_status_msg_busy_first(const char *msg)
|
||||||
{
|
{
|
||||||
// memset32(g_screen_ptr, 0, g_screen_width * g_screen_height * 2 / 4);
|
// memset32(g_screen_ptr, 0, g_screen_ppitch * g_screen_height * 2 / 4);
|
||||||
plat_status_msg_busy_next(msg);
|
plat_status_msg_busy_next(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,7 +153,7 @@ void plat_update_volume(int has_changed, int is_up)
|
||||||
|
|
||||||
void pemu_forced_frame(int no_scale, int do_emu)
|
void pemu_forced_frame(int no_scale, int do_emu)
|
||||||
{
|
{
|
||||||
PicoDrawSetOutBuf(g_screen_ptr, g_screen_width * 2);
|
PicoDrawSetOutBuf(g_screen_ptr, g_screen_ppitch * 2);
|
||||||
PicoDrawSetCallbacks(NULL, NULL);
|
PicoDrawSetCallbacks(NULL, NULL);
|
||||||
Pico.m.dirtyPal = 1;
|
Pico.m.dirtyPal = 1;
|
||||||
|
|
||||||
|
@ -174,7 +174,7 @@ void plat_debug_cat(char *str)
|
||||||
void emu_video_mode_change(int start_line, int line_count, int is_32cols)
|
void emu_video_mode_change(int start_line, int line_count, int is_32cols)
|
||||||
{
|
{
|
||||||
// clear whole screen in all buffers
|
// clear whole screen in all buffers
|
||||||
memset32(g_screen_ptr, 0, g_screen_width * g_screen_height * 2 / 4);
|
memset32(g_screen_ptr, 0, g_screen_ppitch * g_screen_height * 2 / 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void pemu_loop_prep(void)
|
void pemu_loop_prep(void)
|
||||||
|
|
|
@ -134,7 +134,7 @@ static void xlib_update(void)
|
||||||
XLockDisplay(xlib_display);
|
XLockDisplay(xlib_display);
|
||||||
|
|
||||||
xstatus = XPutImage(xlib_display, xlib_window, DefaultGC(xlib_display, 0), ximage,
|
xstatus = XPutImage(xlib_display, xlib_window, DefaultGC(xlib_display, 0), ximage,
|
||||||
0, 0, 0, 0, g_screen_width, g_screen_height);
|
0, 0, 0, 0, g_screen_ppitch, g_screen_height);
|
||||||
if (xstatus != 0)
|
if (xstatus != 0)
|
||||||
fprintf(stderr, "XPutImage %d\n", xstatus);
|
fprintf(stderr, "XPutImage %d\n", xstatus);
|
||||||
|
|
||||||
|
@ -260,6 +260,7 @@ static void realloc_screen(void)
|
||||||
int size = scr_w * scr_h * 2;
|
int size = scr_w * scr_h * 2;
|
||||||
g_screen_width = g_menuscreen_w = scr_w;
|
g_screen_width = g_menuscreen_w = scr_w;
|
||||||
g_screen_height = g_menuscreen_h = scr_h;
|
g_screen_height = g_menuscreen_h = scr_h;
|
||||||
|
g_screen_ppitch = g_menuscreen_pp = scr_w;
|
||||||
g_screen_ptr = realloc(g_screen_ptr, size);
|
g_screen_ptr = realloc(g_screen_ptr, size);
|
||||||
g_menubg_ptr = realloc(g_menubg_ptr, size);
|
g_menubg_ptr = realloc(g_menubg_ptr, size);
|
||||||
memset(g_screen_ptr, 0, size);
|
memset(g_screen_ptr, 0, size);
|
||||||
|
@ -275,7 +276,7 @@ void plat_video_flip(void)
|
||||||
if (ximage == NULL)
|
if (ximage == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pixel_count = g_screen_width * g_screen_height;
|
pixel_count = g_screen_ppitch * g_screen_height;
|
||||||
image = (void *)ximage->data;
|
image = (void *)ximage->data;
|
||||||
|
|
||||||
if (current_bpp == 8)
|
if (current_bpp == 8)
|
||||||
|
@ -332,6 +333,7 @@ void plat_init(void)
|
||||||
exit(1);
|
exit(1);
|
||||||
g_screen_width = g_menuscreen_w = w;
|
g_screen_width = g_menuscreen_w = w;
|
||||||
g_screen_height = g_menuscreen_h = h;
|
g_screen_height = g_menuscreen_h = h;
|
||||||
|
g_screen_ppitch = g_menuscreen_pp = w;
|
||||||
g_menubg_ptr = realloc(g_menubg_ptr, w * g_screen_height * 2);
|
g_menubg_ptr = realloc(g_menubg_ptr, w * g_screen_height * 2);
|
||||||
#else
|
#else
|
||||||
realloc_screen();
|
realloc_screen();
|
||||||
|
|
|
@ -18,7 +18,7 @@ static int menu_loop_cscaler(int id, int keys)
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
menu_draw_begin(0, 1);
|
menu_draw_begin(0, 1);
|
||||||
memset(g_menuscreen_ptr, 0, g_menuscreen_w * g_menuscreen_h * 2);
|
menuscreen_memset_lines(g_menuscreen_ptr, 0, g_menuscreen_h);
|
||||||
text_out16(2, 480 - 18, "%dx%d | d-pad to resize, R+d-pad to move", g_layer_cw, g_layer_ch);
|
text_out16(2, 480 - 18, "%dx%d | d-pad to resize, R+d-pad to move", g_layer_cw, g_layer_ch);
|
||||||
menu_draw_end();
|
menu_draw_end();
|
||||||
|
|
||||||
|
|
|
@ -488,7 +488,7 @@ void plat_init(void)
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_menuscreen_w = w;
|
g_menuscreen_w = g_menuscreen_pp = w;
|
||||||
g_menuscreen_h = h;
|
g_menuscreen_h = h;
|
||||||
g_menuscreen_ptr = vout_fbdev_flip(main_fb);
|
g_menuscreen_ptr = vout_fbdev_flip(main_fb);
|
||||||
|
|
||||||
|
|
|
@ -75,7 +75,7 @@ void pemu_validate_config(void)
|
||||||
void pemu_loop_prep(void)
|
void pemu_loop_prep(void)
|
||||||
{
|
{
|
||||||
PicoDrawSetOutFormat(PDF_RGB555, 1);
|
PicoDrawSetOutFormat(PDF_RGB555, 1);
|
||||||
PicoDrawSetOutBuf(g_screen_ptr, g_screen_width * 2);
|
PicoDrawSetOutBuf(g_screen_ptr, g_screen_ppitch * 2);
|
||||||
pemu_sound_start();
|
pemu_sound_start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue