Skip to content

Commit

Permalink
GUI2: removed framebuffer code from draw impl functions
Browse files Browse the repository at this point in the history
  • Loading branch information
Vultraz committed Jul 26, 2017
1 parent 9398e5f commit 3e6f8b6
Show file tree
Hide file tree
Showing 31 changed files with 70 additions and 173 deletions.
6 changes: 2 additions & 4 deletions src/gui/widgets/container_base.cpp
Expand Up @@ -193,14 +193,12 @@ void container_base::set_visible_rectangle(const SDL_Rect& rectangle)
grid_.set_visible_rectangle(rectangle);
}

void container_base::impl_draw_children(surface& frame_buffer,
int x_offset,
int y_offset)
void container_base::impl_draw_children(int x_offset, int y_offset)
{
assert(get_visible() == widget::visibility::visible
&& grid_.get_visible() == widget::visibility::visible);

grid_.draw_children(frame_buffer, x_offset, y_offset);
grid_.draw_children(x_offset, y_offset);
}

void container_base::layout_children()
Expand Down
4 changes: 1 addition & 3 deletions src/gui/widgets/container_base.hpp
Expand Up @@ -103,9 +103,7 @@ class container_base : public styled_widget
virtual void set_visible_rectangle(const SDL_Rect& rectangle) override;

/** See @ref widget::impl_draw_children. */
virtual void impl_draw_children(surface& frame_buffer,
int x_offset,
int y_offset) override;
virtual void impl_draw_children(int x_offset, int y_offset) override;

protected:
/** See @ref widget::layout_children. */
Expand Down
4 changes: 1 addition & 3 deletions src/gui/widgets/generator.hpp
Expand Up @@ -282,9 +282,7 @@ class generator_base : public widget
virtual void set_visible_rectangle(const SDL_Rect& rectangle) override = 0;

/** See @ref widget::impl_draw_children. */
virtual void impl_draw_children(surface& frame_buffer,
int x_offset,
int y_offset) override = 0;
virtual void impl_draw_children(int x_offset, int y_offset) override = 0;

/** See @ref widget::find_at. */
virtual widget* find_at(const point& coordinate,
Expand Down
6 changes: 2 additions & 4 deletions src/gui/widgets/generator_private.hpp
Expand Up @@ -842,9 +842,7 @@ class generator : public minimum_selection,
}

/** See @ref widget::impl_draw_children. */
virtual void impl_draw_children(surface& frame_buffer,
int x_offset,
int y_offset) override
virtual void impl_draw_children(int x_offset, int y_offset) override
{
assert(this->get_visible() == widget::visibility::visible);
calculate_order();
Expand All @@ -854,7 +852,7 @@ class generator : public minimum_selection,
if(item->child_grid.get_visible() == widget::visibility::visible
&& item->shown) {

item->child_grid.draw_children(frame_buffer, x_offset, y_offset);
item->child_grid.draw_children(x_offset, y_offset);
}
}
}
Expand Down
8 changes: 4 additions & 4 deletions src/gui/widgets/grid.cpp
Expand Up @@ -987,7 +987,7 @@ void grid::layout(const point& origin)
}
}

void grid::impl_draw_children(surface& frame_buffer, int x_offset, int y_offset)
void grid::impl_draw_children(int x_offset, int y_offset)
{
/*
* The call to SDL_PumpEvents seems a bit like black magic.
Expand Down Expand Up @@ -1015,9 +1015,9 @@ void grid::impl_draw_children(surface& frame_buffer, int x_offset, int y_offset)
continue;
}

widget->draw_background(frame_buffer, x_offset, y_offset);
widget->draw_children(frame_buffer, x_offset, y_offset);
widget->draw_foreground(frame_buffer, x_offset, y_offset);
widget->draw_background(x_offset, y_offset);
widget->draw_children(x_offset, y_offset);
widget->draw_foreground(x_offset, y_offset);
}
}

Expand Down
4 changes: 1 addition & 3 deletions src/gui/widgets/grid.hpp
Expand Up @@ -519,9 +519,7 @@ class grid : public widget
void layout(const point& origin);

/** See @ref widget::impl_draw_children. */
virtual void impl_draw_children(surface& frame_buffer,
int x_offset,
int y_offset) override;
virtual void impl_draw_children(int x_offset, int y_offset) override;
};

/**
Expand Down
4 changes: 2 additions & 2 deletions src/gui/widgets/matrix.cpp
Expand Up @@ -114,9 +114,9 @@ void matrix::layout_initialize(const bool full_initialization)
}

void
matrix::impl_draw_children(surface& frame_buffer, int x_offset, int y_offset)
matrix::impl_draw_children(int x_offset, int y_offset)
{
content_.draw_children(frame_buffer, x_offset, y_offset);
content_.draw_children(x_offset, y_offset);
}

void matrix::layout_children()
Expand Down
4 changes: 1 addition & 3 deletions src/gui/widgets/matrix.hpp
Expand Up @@ -121,9 +121,7 @@ class matrix : public tbase
virtual void layout_initialize(const bool full_initialization) override;

/** See @ref widget::impl_draw_children. */
virtual void impl_draw_children(surface& frame_buffer,
int x_offset,
int y_offset) override;
virtual void impl_draw_children(int x_offset, int y_offset) override;

/** See @ref widget::layout_children. */
virtual void layout_children() override;
Expand Down
7 changes: 3 additions & 4 deletions src/gui/widgets/minimap.cpp
Expand Up @@ -26,6 +26,7 @@
#include "sdl/rect.hpp"
#include "terrain/type_data.hpp"
#include "../../minimap.hpp" // We want the file in src/
#include "video.hpp"

#include "utils/functional.hpp"

Expand Down Expand Up @@ -224,9 +225,7 @@ const surface minimap::get_image(const int w, const int h) const
return nullptr;
}

void minimap::impl_draw_background(surface& frame_buffer,
int x_offset,
int y_offset)
void minimap::impl_draw_background(int x_offset, int y_offset)
{
if(!terrain_)
return;
Expand All @@ -244,7 +243,7 @@ void minimap::impl_draw_background(surface& frame_buffer,

const ::surface surf = get_image(rect.w, rect.h);
if(surf) {
sdl_blit(surf, nullptr, frame_buffer, &rect);
sdl_blit(surf, nullptr, CVideo::get_singleton().getSurface(), &rect);
}
}

Expand Down
4 changes: 1 addition & 3 deletions src/gui/widgets/minimap.hpp
Expand Up @@ -99,9 +99,7 @@ class minimap : public styled_widget
const surface get_image(const int w, const int h) const;

/** See @ref widget::impl_draw_background. */
virtual void impl_draw_background(surface& frame_buffer,
int x_offset,
int y_offset) override;
virtual void impl_draw_background(int x_offset, int y_offset) override;

/** See @ref styled_widget::get_control_type. */
virtual const std::string& get_control_type() const override;
Expand Down
6 changes: 1 addition & 5 deletions src/gui/widgets/multi_page.cpp
Expand Up @@ -144,11 +144,7 @@ void multi_page::finalize(const std::vector<string_map>& page_data)
swap_grid(nullptr, &get_grid(), generator_, "_content_grid");
}

void multi_page::impl_draw_background(surface& /*frame_buffer*/
,
int /*x_offset*/
,
int /*y_offset*/)
void multi_page::impl_draw_background(int /*x_offset*/, int /*y_offset*/)
{
/* DO NOTHING */
}
Expand Down
4 changes: 1 addition & 3 deletions src/gui/widgets/multi_page.hpp
Expand Up @@ -201,9 +201,7 @@ class multi_page : public container_base
std::map<std::string, builder_grid_const_ptr> page_builders_;

/** See @ref widget::impl_draw_background. */
virtual void impl_draw_background(surface& frame_buffer,
int x_offset,
int y_offset) override;
virtual void impl_draw_background(int x_offset, int y_offset) override;

/** See @ref styled_widget::get_control_type. */
virtual const std::string& get_control_type() const override;
Expand Down
4 changes: 2 additions & 2 deletions src/gui/widgets/pane.cpp
Expand Up @@ -189,14 +189,14 @@ void pane::layout_initialize(const bool full_initialization)
}

void
pane::impl_draw_children(surface& frame_buffer, int x_offset, int y_offset)
pane::impl_draw_children(int x_offset, int y_offset)
{
DBG_GUI_D << LOG_HEADER << '\n';

for(auto & item : items_)
{
if(item.item_grid->get_visible() != widget::visibility::invisible) {
item.item_grid->draw_children(frame_buffer, x_offset, y_offset);
item.item_grid->draw_children(x_offset, y_offset);
}
}
}
Expand Down
4 changes: 1 addition & 3 deletions src/gui/widgets/pane.hpp
Expand Up @@ -76,9 +76,7 @@ class pane : public widget
virtual void layout_initialize(const bool full_initialization) override;

/** See @ref widget::impl_draw_children. */
virtual void impl_draw_children(surface& frame_buffer,
int x_offset,
int y_offset) override;
virtual void impl_draw_children(int x_offset, int y_offset) override;

/** See @ref widget::request_reduce_width. */
virtual void request_reduce_width(const unsigned maximum_width) override;
Expand Down
4 changes: 2 additions & 2 deletions src/gui/widgets/panel.cpp
Expand Up @@ -61,14 +61,14 @@ unsigned panel::get_state() const
return 0;
}

void panel::impl_draw_background(surface& /*frame_buffer*/, int x_offset, int y_offset)
void panel::impl_draw_background(int x_offset, int y_offset)
{
DBG_GUI_D << LOG_HEADER << " size " << get_rectangle() << ".\n";

get_canvas(0).render(calculate_blitting_rectangle(x_offset, y_offset));
}

void panel::impl_draw_foreground(surface& /*frame_buffer*/, int x_offset, int y_offset)
void panel::impl_draw_foreground(int x_offset, int y_offset)
{
DBG_GUI_D << LOG_HEADER << " size " << get_rectangle() << ".\n";

Expand Down
8 changes: 2 additions & 6 deletions src/gui/widgets/panel.hpp
Expand Up @@ -52,14 +52,10 @@ class panel : public container_base

private:
/** See @ref widget::impl_draw_background. */
virtual void impl_draw_background(surface& frame_buffer,
int x_offset,
int y_offset) override;
virtual void impl_draw_background(int x_offset, int y_offset) override;

/** See @ref widget::impl_draw_foreground. */
virtual void impl_draw_foreground(surface& frame_buffer,
int x_offset,
int y_offset) override;
virtual void impl_draw_foreground(int x_offset, int y_offset) override;

/** See @ref styled_widget::get_control_type. */
virtual const std::string& get_control_type() const override;
Expand Down
8 changes: 3 additions & 5 deletions src/gui/widgets/scrollbar_container.cpp
Expand Up @@ -854,17 +854,15 @@ void scrollbar_container::set_horizontal_scrollbar_mode(
}
}

void scrollbar_container::impl_draw_children(surface& frame_buffer,
int x_offset,
int y_offset)
void scrollbar_container::impl_draw_children(int x_offset, int y_offset)
{
assert(get_visible() == widget::visibility::visible
&& content_grid_->get_visible() == widget::visibility::visible);

// Inherited.
container_base::impl_draw_children(frame_buffer, x_offset, y_offset);
container_base::impl_draw_children(x_offset, y_offset);

content_grid_->draw_children(frame_buffer, x_offset, y_offset);
content_grid_->draw_children(x_offset, y_offset);
}

void scrollbar_container::layout_children()
Expand Down
4 changes: 1 addition & 3 deletions src/gui/widgets/scrollbar_container.hpp
Expand Up @@ -508,9 +508,7 @@ class scrollbar_container : public container_base
virtual void layout_children() override;

/** See @ref widget::impl_draw_children. */
virtual void impl_draw_children(surface& frame_buffer,
int x_offset,
int y_offset) override;
virtual void impl_draw_children(int x_offset, int y_offset) override;
/**
* Sets the size of the content grid.
*
Expand Down
6 changes: 1 addition & 5 deletions src/gui/widgets/spacer.cpp
Expand Up @@ -89,11 +89,7 @@ bool spacer::disable_click_dismiss() const
return false;
}

void spacer::impl_draw_background(surface& /*frame_buffer*/
,
int /*x_offset*/
,
int /*y_offset*/)
void spacer::impl_draw_background(int /*x_offset*/, int /*y_offset*/)
{
/* DO NOTHING */
}
Expand Down
4 changes: 1 addition & 3 deletions src/gui/widgets/spacer.hpp
Expand Up @@ -80,9 +80,7 @@ class spacer : public styled_widget
bool fills_available_space();

/** See @ref widget::impl_draw_background. */
virtual void impl_draw_background(surface& frame_buffer,
int x_offset,
int y_offset) override;
virtual void impl_draw_background(int x_offset, int y_offset) override;

/** See @ref styled_widget::get_control_type. */
virtual const std::string& get_control_type() const override;
Expand Down
10 changes: 2 additions & 8 deletions src/gui/widgets/styled_widget.cpp
Expand Up @@ -431,21 +431,15 @@ int styled_widget::get_text_maximum_height() const
return get_height() - config_->text_extra_height;
}

void styled_widget::impl_draw_background(surface& /*frame_buffer*/,
int x_offset,
int y_offset)
void styled_widget::impl_draw_background(int x_offset, int y_offset)
{
DBG_GUI_D << LOG_HEADER << " label '" << debug_truncate(label_) << "' size "
<< get_rectangle() << ".\n";

get_canvas(get_state()).render(calculate_blitting_rectangle(x_offset, y_offset));
}

void styled_widget::impl_draw_foreground(surface& /*frame_buffer*/
,
int /*x_offset*/
,
int /*y_offset*/)
void styled_widget::impl_draw_foreground(int /*x_offset*/, int /*y_offset*/)
{
/* DO NOTHING */
}
Expand Down
8 changes: 2 additions & 6 deletions src/gui/widgets/styled_widget.hpp
Expand Up @@ -446,14 +446,10 @@ class styled_widget : public widget

protected:
/** See @ref widget::impl_draw_background. */
virtual void impl_draw_background(surface& frame_buffer,
int x_offset,
int y_offset) override;
virtual void impl_draw_background(int x_offset, int y_offset) override;

/** See @ref widget::impl_draw_foreground. */
virtual void impl_draw_foreground(surface& frame_buffer,
int x_offset,
int y_offset) override;
virtual void impl_draw_foreground(int x_offset, int y_offset) override;

/** Exposes font::pango_text::get_token, for the text label of this styled_widget */
std::string get_label_token(const gui2::point & position, const char * delimiters = " \n\r\t") const;
Expand Down
12 changes: 4 additions & 8 deletions src/gui/widgets/toggle_panel.cpp
Expand Up @@ -192,22 +192,18 @@ void toggle_panel::set_state(const state_t state)
assert(conf);
}

void toggle_panel::impl_draw_background(surface& frame_buffer,
int x_offset,
int y_offset)
void toggle_panel::impl_draw_background(int x_offset, int y_offset)
{
// We don't have a fore and background and need to draw depending on
// our state, like a styled_widget. So we use the styled_widget's drawing method.
styled_widget::impl_draw_background(frame_buffer, x_offset, y_offset);
styled_widget::impl_draw_background(x_offset, y_offset);
}

void toggle_panel::impl_draw_foreground(surface& frame_buffer,
int x_offset,
int y_offset)
void toggle_panel::impl_draw_foreground(int x_offset, int y_offset)
{
// We don't have a fore and background and need to draw depending on
// our state, like a styled_widget. So we use the styled_widget's drawing method.
styled_widget::impl_draw_foreground(frame_buffer, x_offset, y_offset);
styled_widget::impl_draw_foreground(x_offset, y_offset);
}

const std::string& toggle_panel::get_control_type() const
Expand Down
8 changes: 2 additions & 6 deletions src/gui/widgets/toggle_panel.hpp
Expand Up @@ -158,14 +158,10 @@ class toggle_panel : public panel, public selectable_item
std::function<void(widget&)> callback_mouse_left_double_click_;

/** See @ref widget::impl_draw_background. */
virtual void impl_draw_background(surface& frame_buffer,
int x_offset,
int y_offset) override;
virtual void impl_draw_background(int x_offset, int y_offset) override;

/** See @ref widget::impl_draw_foreground. */
virtual void impl_draw_foreground(surface& frame_buffer,
int x_offset,
int y_offset) override;
virtual void impl_draw_foreground(int x_offset, int y_offset) override;

/** See @ref styled_widget::get_control_type. */
virtual const std::string& get_control_type() const override;
Expand Down

0 comments on commit 3e6f8b6

Please sign in to comment.