void window_magnifier::draw(const graphics_context& grx) { switch (mode) { case 0: // Zoom mode grx.draw_frame(0,0,w(),h(), ft_bevel_out); grx.stretch_blit(get_sub_buffer(), (w()-3) / 4, (h()-3) / 4, (w()-3) / 2, (h()-3) / 2, 0+2, 0+2, w()-3, h()-3); break; case 1: // Reverse mode grx.draw_frame(0,0,w(),h(), ft_bevel_out); reversed_blit(get_sub_buffer(), grx, 2, 2, 2+grx.get_ox(), 2+grx.get_oy(), w()-3, h()-3); break; case 2: // Distort mode grx.draw_frame(0,0,w(),h(), ft_bevel_out); distort_blit(get_sub_buffer(), grx, 2, 2, 2+grx.get_ox(), 2+grx.get_oy(), w()-3, h()-3); break; case 3: // Plain mode grx.rect(0, 0, w(), h(), theme().black); grx.blit(get_sub_buffer(), 1, 1, 1, 1, w()-1, h()-1); break; case 4: // Debug mode grx.rectfill(0, 0, w(), h(), RANDOM_COLOR()); break; } }
void masked_image::draw(const graphics_context& grx) { grx.blit(get_sub_buffer(), 0, 0, 0, 0, w()+1, h()+1); }