Added width and height arguments to ji_set_screen() function.

This commit is contained in:
David Capello 2010-07-26 00:20:17 -03:00
parent 74962ece67
commit 017dca6425
5 changed files with 25 additions and 15 deletions

View File

@ -157,7 +157,7 @@ JWidget jmanager_new()
if (!default_manager) {
if (!ji_screen)
ji_set_screen(screen);
ji_set_screen(screen, SCREEN_W, SCREEN_H);
/* hook the window close message */
want_close_stage = STAGE_NORMAL;

View File

@ -49,6 +49,8 @@
BITMAP *ji_screen = NULL;
JRegion ji_dirty_region = NULL;
int ji_screen_w = 0;
int ji_screen_h = 0;
/* Global timer. */
@ -108,7 +110,7 @@ static void set_cursor(BITMAP *bmp, int x, int y)
int _ji_system_init()
{
/* Update screen pointer. */
ji_set_screen(screen);
ji_set_screen(screen, SCREEN_W, SCREEN_H);
/* Install timer related stuff. */
LOCK_VARIABLE(ji_clock);
@ -129,17 +131,19 @@ int _ji_system_init()
void _ji_system_exit()
{
ji_set_screen(NULL);
ji_set_screen(NULL, 0, 0);
remove_int(clock_inc);
}
void ji_set_screen(BITMAP *bmp)
void ji_set_screen(BITMAP *bmp, int width, int height)
{
int cursor = jmouse_get_cursor(); /* get mouse cursor */
jmouse_set_cursor(JI_CURSOR_NULL);
ji_screen = bmp;
ji_screen_w = width;
ji_screen_h = height;
if (ji_screen != NULL) {
JWidget manager = ji_get_default_manager();

View File

@ -39,13 +39,15 @@ struct BITMAP;
/***********************************************************************/
/* screen related */
#define JI_SCREEN_W ((ji_screen == screen) ? SCREEN_W: ji_screen->w)
#define JI_SCREEN_H ((ji_screen == screen) ? SCREEN_H: ji_screen->h)
#define JI_SCREEN_W ji_screen_w
#define JI_SCREEN_H ji_screen_h
extern struct BITMAP *ji_screen;
extern JRegion ji_dirty_region;
extern int ji_screen_w;
extern int ji_screen_h;
void ji_set_screen(struct BITMAP *bmp);
void ji_set_screen(BITMAP *bmp, int width, int height);
void ji_add_dirty_rect(JRect rect);
void ji_add_dirty_region(JRegion region);

View File

@ -359,7 +359,7 @@ void exit_module_gui()
if (double_buffering) {
BITMAP *old_bmp = ji_screen;
ji_set_screen(screen);
ji_set_screen(screen, SCREEN_W, SCREEN_H);
if (ji_screen_created)
destroy_bitmap(old_bmp);
@ -526,7 +526,7 @@ void gui_flip_screen()
}
else {
stretch_blit(ji_screen, screen,
0, 0, ji_screen->w, ji_screen->h,
0, 0, JI_SCREEN_W, JI_SCREEN_H,
0, 0, SCREEN_W, SCREEN_H);
}
}
@ -566,15 +566,19 @@ void gui_setup_screen(bool reload_font)
// Is double buffering active?
if (double_buffering) {
BITMAP *old_bmp = ji_screen;
ji_set_screen(create_bitmap(SCREEN_W / screen_scaling,
SCREEN_H / screen_scaling));
int new_w = SCREEN_W / screen_scaling;
int new_h = SCREEN_H / screen_scaling;
BITMAP *new_bmp = create_bitmap(new_w, new_h);
ji_set_screen(new_bmp, new_w, new_h);
if (ji_screen_created)
destroy_bitmap(old_bmp);
ji_screen_created = true;
}
else {
ji_set_screen(screen);
ji_set_screen(screen, SCREEN_W, SCREEN_H);
ji_screen_created = false;
}

View File

@ -211,7 +211,7 @@ void play_game()
bmp2 = create_bitmap(SCREEN_W, SCREEN_H);
/* set Jinete output screen bitmap */
ji_set_screen(bmp);
ji_set_screen(bmp, bmp->w, bmp->h);
show_mouse(NULL);
/* init game state */
@ -236,7 +236,7 @@ void play_game()
if (jwidget_pick(manager, mouse_x, mouse_y) == manager) {
if (!trans_mode) {
trans_mode = true;
ji_set_screen(bmp2);
ji_set_screen(bmp2, bmp2->w, bmp2->h);
show_mouse(NULL);
}
}
@ -264,7 +264,7 @@ void play_game()
show_mouse(NULL);
}
ji_set_screen(screen);
ji_set_screen(screen, SCREEN_W, SCREEN_H);
destroy_bitmap(bmp);
destroy_bitmap(bmp2);
}