Pass canvas to gr_clear_canvas

This commit is contained in:
Kp 2017-01-01 00:45:45 +00:00
parent 0905aefa0a
commit 22e364e030
18 changed files with 31 additions and 32 deletions

View file

@ -90,9 +90,9 @@ void _gr_set_current_canvas(grs_canvas *canv)
_gr_set_current_canvas_inline(canv);
}
void gr_clear_canvas(color_t color)
void gr_clear_canvas(grs_canvas &canvas, color_t color)
{
gr_rect(*grd_curcanv, 0, 0, GWIDTH-1, GHEIGHT-1, color);
gr_rect(canvas, 0, 0, canvas.cv_bitmap.bm_w - 1, canvas.cv_bitmap.bm_h - 1, color);
}
void gr_settransblend(grs_canvas &canvas, const int fade_level, const uint8_t blend_func)

View file

@ -137,7 +137,7 @@ void gr_init_canvas(grs_canvas &canv,unsigned char *pixdata, bm_mode pixtype, ui
void gr_init_sub_canvas(grs_canvas &n, grs_canvas &src, uint16_t x, uint16_t y, uint16_t w, uint16_t h);
// Clear the current canvas to the specified color
void gr_clear_canvas(color_t color);
void gr_clear_canvas(grs_canvas &, color_t color);
//=========================================================================
// Bitmap functions:

View file

@ -348,11 +348,11 @@ static window_event_result hostage_dialog_handler(UI_DIALOG *dlg,const d_event &
if (CurrentHostageIndex > -1 ) {
gr_set_current_canvas( h->hostageViewBox->canvas );
gr_clear_canvas( CGREY );
gr_clear_canvas(*grd_curcanv, CGREY);
} else {
// no hostage, so just blank out
gr_set_current_canvas( h->hostageViewBox->canvas );
gr_clear_canvas( CGREY );
gr_clear_canvas(*grd_curcanv, CGREY);
}
}

View file

@ -445,7 +445,7 @@ window_event_result trigger_dialog_handler(UI_DIALOG *dlg,const d_event &event,
gr_set_current_canvas( t->wallViewBox->canvas );
if (Markedsegp->sides[Markedside].wall_num == wall_none || vcwallptr(Markedsegp->sides[Markedside].wall_num)->trigger == trigger_none)
gr_clear_canvas( CBLACK );
gr_clear_canvas(*grd_curcanv, CBLACK);
else {
if (Markedsegp->sides[Markedside].tmap_num2 > 0) {
gr_ubitmap(*grd_curcanv, texmerge_get_cached_bitmap( Markedsegp->sides[Markedside].tmap_num, Markedsegp->sides[Markedside].tmap_num2));
@ -454,7 +454,7 @@ window_event_result trigger_dialog_handler(UI_DIALOG *dlg,const d_event &event,
PIGGY_PAGE_IN(Textures[Markedsegp->sides[Markedside].tmap_num]);
gr_ubitmap(*grd_curcanv, GameBitmaps[Textures[Markedsegp->sides[Markedside].tmap_num].index]);
} else
gr_clear_canvas( CGREY );
gr_clear_canvas(*grd_curcanv, CGREY);
}
}
}

View file

@ -293,7 +293,7 @@ static void info_display_default(int show_all)
// ------------------------------------------------------------------------------------
static void clear_pad_display(void)
{
gr_clear_canvas(CWHITE);
gr_clear_canvas(*grd_curcanv, CWHITE);
gr_set_fontcolor( CBLACK, CWHITE );
}

View file

@ -767,7 +767,7 @@ void draw_world(grs_canvas *screen_canvas,editor_view *v,const vsegptridx_t mine
vm_vec_add2(viewer_position,Ed_view_target);
gr_clear_canvas(0);
gr_clear_canvas(*grd_curcanv, 0);
g3_start_frame();
g3_set_view_matrix(viewer_position,v->ev_matrix,v->ev_zoom);

View file

@ -635,7 +635,7 @@ window_event_result robot_dialog_handler(UI_DIALOG *dlg,const d_event &event, ro
} else {
// no object, so just blank out
gr_set_current_canvas( r->robotViewBox->canvas );
gr_clear_canvas( CGREY );
gr_clear_canvas(*grd_curcanv, CGREY);
// LocalObjectSelectNextInMine();
}
@ -648,12 +648,12 @@ window_event_result robot_dialog_handler(UI_DIALOG *dlg,const d_event &event, ro
if ( Cur_goody_id > -1 )
draw_object_picture(Cur_goody_id, &r->goody_angles, Cur_goody_type);
else
gr_clear_canvas( CGREY );
gr_clear_canvas(*grd_curcanv, CGREY);
r->goody_angles.h += fixmul(0x1000, DeltaTime );
} else {
// no object, so just blank out
gr_set_current_canvas( r->containsViewBox->canvas );
gr_clear_canvas( CGREY );
gr_clear_canvas(*grd_curcanv, CGREY);
// LocalObjectSelectNextInMine();
}

View file

@ -513,7 +513,7 @@ window_event_result wall_dialog_handler(UI_DIALOG *dlg,const d_event &event, wal
gr_ubitmap(*grd_curcanv, GameBitmaps[Textures[WallAnims[w->clip_num].frames[wd->framenum]].index]);
} else {
if (type == WALL_OPEN)
gr_clear_canvas( CBLACK );
gr_clear_canvas(*grd_curcanv, CBLACK);
else {
if (Cursegp->sides[Curside].tmap_num2 > 0)
gr_ubitmap(*grd_curcanv, texmerge_get_cached_bitmap( Cursegp->sides[Curside].tmap_num, Cursegp->sides[Curside].tmap_num2));
@ -524,7 +524,7 @@ window_event_result wall_dialog_handler(UI_DIALOG *dlg,const d_event &event, wal
}
}
} else
gr_clear_canvas( CGREY );
gr_clear_canvas(*grd_curcanv, CGREY);
}
//------------------------------------------------------------

View file

@ -128,8 +128,7 @@ static int redraw_current_object()
static void gr_label_box( int i)
{
gr_clear_canvas(BM_XRGB(0,0,0));
gr_clear_canvas(*grd_curcanv, BM_XRGB(0,0,0));
draw_object_picture(i, &objpage_view_orient, Cur_object_type);
// char s[20];
@ -148,7 +147,7 @@ int objpage_goto_first()
//gr_ubitmap(0,0, robot_bms[robot_bm_nums[ i+ObjectPage*OBJS_PER_PAGE ] ] );
gr_label_box(i+ObjectPage*OBJS_PER_PAGE );
} else
gr_clear_canvas( CGREY );
gr_clear_canvas(*grd_curcanv, CGREY);
}
return 1;
@ -165,7 +164,7 @@ static int objpage_goto_last()
//gr_ubitmap(0,0, robot_bms[robot_bm_nums[ i+ObjectPage*OBJS_PER_PAGE ] ] );
gr_label_box(i+ObjectPage*OBJS_PER_PAGE );
} else {
gr_clear_canvas( CGREY );
gr_clear_canvas(*grd_curcanv, CGREY);
}
}
return 1;
@ -183,7 +182,7 @@ static int objpage_goto_prev()
//gr_ubitmap(0,0, robot_bms[robot_bm_nums[ i+ObjectPage*OBJS_PER_PAGE ] ] );
gr_label_box(i+ObjectPage*OBJS_PER_PAGE );
} else {
gr_clear_canvas( CGREY );
gr_clear_canvas(*grd_curcanv, CGREY);
}
}
}
@ -202,7 +201,7 @@ static int objpage_goto_next()
//gr_ubitmap(0,0, robot_bms[robot_bm_nums[ i+ObjectPage*OBJS_PER_PAGE ] ] );
gr_label_box(i+ObjectPage*OBJS_PER_PAGE );
} else {
gr_clear_canvas( CGREY );
gr_clear_canvas(*grd_curcanv, CGREY);
}
}
}
@ -224,7 +223,7 @@ int objpage_grab_current(int n)
//gr_ubitmap(0,0, robot_bms[robot_bm_nums[ i+ObjectPage*OBJS_PER_PAGE ] ] );
gr_label_box(i+ObjectPage*OBJS_PER_PAGE );
} else {
gr_clear_canvas( CGREY );
gr_clear_canvas(*grd_curcanv, CGREY);
}
}
}
@ -374,7 +373,7 @@ int objpage_do(const d_event &event)
//gr_ubitmap(0,0, robot_bms[robot_bm_nums[ i+ObjectPage*OBJS_PER_PAGE ] ] );
gr_label_box(i+ObjectPage*OBJS_PER_PAGE );
} else {
gr_clear_canvas( CGREY );
gr_clear_canvas(*grd_curcanv, CGREY);
}
}

View file

@ -97,7 +97,7 @@ static void texpage_redraw()
PIGGY_PAGE_IN(Textures[i + TexturePage*TMAPS_PER_PAGE]);
gr_ubitmap(*grd_curcanv, GameBitmaps[Textures[i + TexturePage*TMAPS_PER_PAGE].index]);
} else
gr_clear_canvas( CGREY );
gr_clear_canvas(*grd_curcanv, CGREY);
}
}

View file

@ -675,7 +675,7 @@ static void draw_automap(automap *am)
gr_set_current_canvas(&am->automap_view);
gr_clear_canvas(BM_XRGB(0,0,0));
gr_clear_canvas(*grd_curcanv, BM_XRGB(0,0,0));
g3_start_frame();
render_start_frame();

View file

@ -250,7 +250,7 @@ void do_countdown_frame()
if (PaletteBlueAdd > 64 ) {
gr_set_current_canvas( NULL );
gr_clear_canvas(BM_XRGB(31,31,31)); //make screen all white to match palette effect
gr_clear_canvas(*grd_curcanv, BM_XRGB(31,31,31)); //make screen all white to match palette effect
reset_palette_add(); //restore palette for death message
//controlcen->MaxCapacity = Fuelcen_max_amount;
//gauge_message( "Control Center Reset" );

View file

@ -967,7 +967,7 @@ static void render_external_scene(fix eye_offset)
g3_set_view_matrix(Viewer->pos,Viewer->orient,Render_zoom);
//g3_draw_horizon(BM_XRGB(0,0,0),BM_XRGB(16,16,16)); //,-1);
gr_clear_canvas(BM_XRGB(0,0,0));
gr_clear_canvas(*grd_curcanv, BM_XRGB(0,0,0));
g3_start_instance_matrix(vmd_zero_vector,&surface_orient);
draw_stars();

View file

@ -271,7 +271,7 @@ void reset_cockpit()
void game_init_render_sub_buffers( int x, int y, int w, int h )
{
gr_clear_canvas(0);
gr_clear_canvas(*grd_curcanv, 0);
gr_init_sub_canvas(Screen_3d_window, grd_curscreen->sc_canvas, x, y, w, h);
}

View file

@ -754,7 +754,7 @@ void LoadLevel(int level_num,int page_in_textures)
gr_use_palette_table( "palette.256" );
#elif defined(DXX_BUILD_DESCENT_II)
gr_set_current_canvas(NULL);
gr_clear_canvas(BM_XRGB(0, 0, 0)); //so palette switching is less obvious
gr_clear_canvas(*grd_curcanv, BM_XRGB(0, 0, 0)); //so palette switching is less obvious
int load_ret = load_level(level_name); //actually load the data from disk!
@ -1361,7 +1361,7 @@ static void DoEndGame(void)
if (PLAYING_BUILTIN_MISSION && !((Game_mode & GM_MULTI) && !(Game_mode & GM_MULTI_COOP))) {
gr_set_current_canvas( NULL );
gr_clear_canvas(BM_XRGB(0,0,0));
gr_clear_canvas(*grd_curcanv, BM_XRGB(0,0,0));
#if defined(DXX_BUILD_DESCENT_II)
load_palette(D2_DEFAULT_PALETTE,0,1);
#endif

View file

@ -2454,7 +2454,7 @@ static window_event_result gamebitmaps_viewer_handler(window *, const d_event &e
bm = &GameBitmaps[view_idx];
timer_delay(F1_0/60);
PIGGY_PAGE_IN(bi);
gr_clear_canvas( BM_XRGB(0,0,0) );
gr_clear_canvas(*grd_curcanv, BM_XRGB(0,0,0));
#if DXX_USE_OGL
scale = (bm->bm_w > bm->bm_h)?(SHEIGHT/bm->bm_w)*0.8:(SHEIGHT/bm->bm_h)*0.8;
ogl_ubitmapm_cs(*grd_curcanv, (SWIDTH / 2) - (bm->bm_w * scale / 2), (SHEIGHT / 2) - (bm->bm_h * scale / 2), bm->bm_w * scale, bm->bm_h * scale, *bm, ogl_colors::white, F1_0);

View file

@ -709,7 +709,7 @@ void draw_model_picture(uint_fast32_t mn,vms_angvec *orient_angles)
Assert(mn<N_polygon_models);
gr_clear_canvas( BM_XRGB(0,0,0) );
gr_clear_canvas(*grd_curcanv, BM_XRGB(0,0,0));
g3_start_frame();
vms_vector temp_pos{};
g3_set_view_matrix(temp_pos,vmd_identity_matrix,0x9000);

View file

@ -1238,7 +1238,7 @@ void render_frame(fix eye_offset, window_rendered_data &window)
if (Clear_window == 1) {
if (Clear_window_color == -1)
Clear_window_color = BM_XRGB(0, 0, 0); //BM_XRGB(31, 15, 7);
gr_clear_canvas(Clear_window_color);
gr_clear_canvas(*grd_curcanv, Clear_window_color);
}
render_mine(start_seg_num, eye_offset, window);