2 #include "display_effect.hpp"
5 #include "video/drawing_context.hpp"
8 DisplayEffect::DisplayEffect()
9 : type(NO_FADE), fadetime(0), fading(0), black(false)
12 borders_fading = false;
13 borders_active = false;
16 DisplayEffect::~DisplayEffect()
21 DisplayEffect::update(float elapsed_time)
24 if (border_size < 75) border_size += 1.5;
25 else borders_active = true;
27 else if (borders_active) {
28 if (border_size > 0) border_size -= 1.5;
29 else borders_active = false;
35 fading -= elapsed_time;
41 fading -= elapsed_time;
53 DisplayEffect::draw(DrawingContext& context)
55 context.push_transform();
56 context.set_translation(Vector(0, 0));
58 if(black || type != NO_FADE) {
65 alpha = fading / fadetime;
68 alpha = (fadetime-fading) / fadetime;
75 context.draw_filled_rect(Vector(0, 0), Vector(SCREEN_WIDTH, SCREEN_HEIGHT),
76 Color(0, 0, 0, alpha), LAYER_GUI-10);
79 if (borders_fading || borders_active) {
80 context.draw_filled_rect(Vector(0, 0), Vector(SCREEN_WIDTH, border_size),
81 Color(0, 0, 0, 1.0f), LAYER_GUI-10);
82 context.draw_filled_rect(Vector(0, SCREEN_HEIGHT - border_size), Vector(SCREEN_WIDTH, border_size),
83 Color(0, 0, 0, 1.0f), LAYER_GUI-10);
86 context.pop_transform();
90 DisplayEffect::fade_out(float fadetime)
93 this->fadetime = fadetime;
99 DisplayEffect::fade_in(float fadetime)
102 this->fadetime = fadetime;
108 DisplayEffect::set_black(bool enabled)
114 DisplayEffect::is_black()
120 DisplayEffect::sixteen_to_nine()
122 borders_fading = true;
126 DisplayEffect::four_to_three()
128 borders_fading = false;