GUI2: removed framebuffer code from draw impl functions
This commit is contained in:
parent
c926ce76e0
commit
eb671aec48
31 changed files with 70 additions and 167 deletions
|
@ -194,14 +194,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()
|
||||
|
|
|
@ -107,9 +107,7 @@ public:
|
|||
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. */
|
||||
|
|
|
@ -279,9 +279,7 @@ public:
|
|||
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,
|
||||
|
|
|
@ -826,7 +826,7 @@ public:
|
|||
}
|
||||
|
||||
/** 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);
|
||||
|
||||
|
@ -836,7 +836,7 @@ public:
|
|||
child* item = items_[index].get();
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -975,7 +975,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.
|
||||
|
@ -1003,9 +1003,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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -559,9 +559,7 @@ private:
|
|||
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;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -112,9 +112,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()
|
||||
|
|
|
@ -121,9 +121,7 @@ public:
|
|||
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;
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
@ -228,9 +229,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;
|
||||
|
@ -248,7 +247,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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -101,9 +101,7 @@ private:
|
|||
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;
|
||||
|
||||
/** Inherited from styled_widget, implemented by REGISTER_WIDGET. */
|
||||
virtual const std::string& get_control_type() const override;
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
|
|
|
@ -201,9 +201,7 @@ private:
|
|||
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;
|
||||
|
||||
/** Inherited from styled_widget, implemented by REGISTER_WIDGET. */
|
||||
virtual const std::string& get_control_type() const override;
|
||||
|
|
|
@ -186,14 +186,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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -74,9 +74,7 @@ public:
|
|||
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;
|
||||
|
|
|
@ -64,14 +64,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";
|
||||
|
||||
|
|
|
@ -53,14 +53,10 @@ public:
|
|||
|
||||
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;
|
||||
|
||||
/** Inherited from styled_widget, implemented by REGISTER_WIDGET. */
|
||||
virtual const std::string& get_control_type() const override;
|
||||
|
|
|
@ -785,14 +785,14 @@ void scrollbar_container::set_horizontal_scrollbar_mode(const scrollbar_mode scr
|
|||
}
|
||||
}
|
||||
|
||||
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()
|
||||
|
|
|
@ -506,7 +506,7 @@ private:
|
|||
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.
|
||||
|
|
|
@ -96,11 +96,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 */
|
||||
}
|
||||
|
|
|
@ -79,9 +79,7 @@ private:
|
|||
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;
|
||||
|
||||
/** Inherited from styled_widget, implemented by REGISTER_WIDGET. */
|
||||
virtual const std::string& get_control_type() const override;
|
||||
|
|
|
@ -408,9 +408,7 @@ 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";
|
||||
|
@ -418,11 +416,7 @@ void styled_widget::impl_draw_background(surface& /*frame_buffer*/,
|
|||
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 */
|
||||
}
|
||||
|
|
|
@ -412,14 +412,10 @@ public:
|
|||
|
||||
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 point & position, const char * delimiters = " \n\r\t") const;
|
||||
|
|
|
@ -191,22 +191,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);
|
||||
}
|
||||
|
||||
void toggle_panel::signal_handler_mouse_enter(const event::ui_event event,
|
||||
|
|
|
@ -148,14 +148,10 @@ private:
|
|||
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;
|
||||
|
||||
/** Inherited from styled_widget, implemented by REGISTER_WIDGET. */
|
||||
virtual const std::string& get_control_type() const override;
|
||||
|
|
|
@ -549,18 +549,16 @@ void tree_view_node::set_visible_rectangle(const SDL_Rect& rectangle)
|
|||
}
|
||||
}
|
||||
|
||||
void tree_view_node::impl_draw_children(surface& frame_buffer,
|
||||
int x_offset,
|
||||
int y_offset)
|
||||
void tree_view_node::impl_draw_children(int x_offset, int y_offset)
|
||||
{
|
||||
grid_.draw_children(frame_buffer, x_offset, y_offset);
|
||||
grid_.draw_children(x_offset, y_offset);
|
||||
|
||||
if(is_folded()) {
|
||||
return;
|
||||
}
|
||||
|
||||
for(auto & node : children_) {
|
||||
node->impl_draw_children(frame_buffer, x_offset, y_offset);
|
||||
node->impl_draw_children(x_offset, y_offset);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -275,9 +275,7 @@ private:
|
|||
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;
|
||||
|
||||
// FIXME rename to icon
|
||||
void signal_handler_left_button_click(const event::ui_event event);
|
||||
|
|
|
@ -121,15 +121,15 @@ void viewport::layout_initialize(const bool full_initialization)
|
|||
}
|
||||
|
||||
void
|
||||
viewport::impl_draw_children(surface& frame_buffer, int x_offset, int y_offset)
|
||||
viewport::impl_draw_children(int x_offset, int y_offset)
|
||||
{
|
||||
x_offset += get_x();
|
||||
y_offset += get_y();
|
||||
|
||||
if(widget_.get_visible() != widget::visibility::invisible) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -54,9 +54,7 @@ public:
|
|||
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;
|
||||
|
|
|
@ -358,51 +358,26 @@ SDL_Rect widget::calculate_clipping_rectangle(const int x_offset,
|
|||
return result;
|
||||
}
|
||||
|
||||
void widget::draw_background(surface& frame_buffer, int x_offset, int y_offset)
|
||||
void widget::draw_background(int x_offset, int y_offset)
|
||||
{
|
||||
assert(visible_ == visibility::visible);
|
||||
|
||||
if(redraw_action_ == redraw_action::partly) {
|
||||
const SDL_Rect clipping_rectangle
|
||||
= calculate_clipping_rectangle(x_offset, y_offset);
|
||||
|
||||
clip_rect_setter clip(frame_buffer, &clipping_rectangle);
|
||||
draw_debug_border(x_offset, y_offset);
|
||||
impl_draw_background(frame_buffer, x_offset, y_offset);
|
||||
} else {
|
||||
draw_debug_border(x_offset, y_offset);
|
||||
impl_draw_background(frame_buffer, x_offset, y_offset);
|
||||
}
|
||||
draw_debug_border(x_offset, y_offset);
|
||||
impl_draw_background(x_offset, y_offset);
|
||||
}
|
||||
|
||||
void widget::draw_children(surface& frame_buffer, int x_offset, int y_offset)
|
||||
void widget::draw_children(int x_offset, int y_offset)
|
||||
{
|
||||
assert(visible_ == visibility::visible);
|
||||
|
||||
if(redraw_action_ == redraw_action::partly) {
|
||||
const SDL_Rect clipping_rectangle
|
||||
= calculate_clipping_rectangle(x_offset, y_offset);
|
||||
|
||||
clip_rect_setter clip(frame_buffer, &clipping_rectangle);
|
||||
impl_draw_children(frame_buffer, x_offset, y_offset);
|
||||
} else {
|
||||
impl_draw_children(frame_buffer, x_offset, y_offset);
|
||||
}
|
||||
impl_draw_children(x_offset, y_offset);
|
||||
}
|
||||
|
||||
void widget::draw_foreground(surface& frame_buffer, int x_offset, int y_offset)
|
||||
void widget::draw_foreground(int x_offset, int y_offset)
|
||||
{
|
||||
assert(visible_ == visibility::visible);
|
||||
|
||||
if(redraw_action_ == redraw_action::partly) {
|
||||
const SDL_Rect clipping_rectangle
|
||||
= calculate_clipping_rectangle(x_offset, y_offset);
|
||||
|
||||
clip_rect_setter clip(frame_buffer, &clipping_rectangle);
|
||||
impl_draw_foreground(frame_buffer, x_offset, y_offset);
|
||||
} else {
|
||||
impl_draw_foreground(frame_buffer, x_offset, y_offset);
|
||||
}
|
||||
impl_draw_foreground(x_offset, y_offset);
|
||||
}
|
||||
|
||||
SDL_Rect widget::get_dirty_rectangle() const
|
||||
|
|
|
@ -537,13 +537,12 @@ public:
|
|||
* Derived should override @ref impl_draw_background instead of changing
|
||||
* this function.
|
||||
*
|
||||
* @param frame_buffer The surface to draw upon.
|
||||
* @param x_offset The offset in the x-direction in the
|
||||
* @p frame_buffer to draw.
|
||||
* @param y_offset The offset in the y-direction in the
|
||||
* @p frame_buffer to draw.
|
||||
*/
|
||||
void draw_background(surface& frame_buffer, int x_offset, int y_offset);
|
||||
void draw_background(int x_offset, int y_offset);
|
||||
|
||||
/**
|
||||
* Draws the children of a widget.
|
||||
|
@ -553,13 +552,12 @@ public:
|
|||
* Derived should override @ref impl_draw_children instead of changing
|
||||
* this function.
|
||||
*
|
||||
* @param frame_buffer The surface to draw upon.
|
||||
* @param x_offset The offset in the x-direction in the
|
||||
* @p frame_buffer to draw.
|
||||
* @param y_offset The offset in the y-direction in the
|
||||
* @p frame_buffer to draw.
|
||||
*/
|
||||
void draw_children(surface& frame_buffer, int x_offset, int y_offset);
|
||||
void draw_children(int x_offset, int y_offset);
|
||||
|
||||
/**
|
||||
* Draws the foreground of the widget.
|
||||
|
@ -570,42 +568,30 @@ public:
|
|||
* Derived should override @ref impl_draw_foreground instead of changing
|
||||
* this function.
|
||||
*
|
||||
* @param frame_buffer The surface to draw upon.
|
||||
* @param x_offset The offset in the x-direction in the
|
||||
* @p frame_buffer to draw.
|
||||
* @param y_offset The offset in the y-direction in the
|
||||
* @p frame_buffer to draw.
|
||||
*/
|
||||
void draw_foreground(surface& frame_buffer, int x_offset, int y_offset);
|
||||
void draw_foreground(int x_offset, int y_offset);
|
||||
|
||||
private:
|
||||
/** See @ref draw_background. */
|
||||
virtual void impl_draw_background(surface& /*frame_buffer*/)
|
||||
virtual void impl_draw_background()
|
||||
{
|
||||
}
|
||||
virtual void impl_draw_background(surface& /*frame_buffer*/
|
||||
,
|
||||
int /*x_offset*/
|
||||
,
|
||||
int /*y_offset*/)
|
||||
|
||||
virtual void impl_draw_background(int /*x_offset*/, int /*y_offset*/)
|
||||
{
|
||||
}
|
||||
|
||||
/** See @ref draw_children. */
|
||||
virtual void impl_draw_children(surface& /*frame_buffer*/
|
||||
,
|
||||
int /*x_offset*/
|
||||
,
|
||||
int /*y_offset*/)
|
||||
virtual void impl_draw_children(int /*x_offset*/, int /*y_offset*/)
|
||||
{
|
||||
}
|
||||
|
||||
/** See @ref draw_foreground. */
|
||||
virtual void impl_draw_foreground(surface& /*frame_buffer*/
|
||||
,
|
||||
int /*x_offset*/
|
||||
,
|
||||
int /*y_offset*/)
|
||||
virtual void impl_draw_foreground(int /*x_offset*/, int /*y_offset*/)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
@ -610,9 +610,6 @@ void window::draw()
|
|||
return;
|
||||
}
|
||||
|
||||
// TODO: remove
|
||||
surface& frame_buffer = video_.getSurface();
|
||||
|
||||
/***** ***** Layout ***** *****/
|
||||
if(need_layout_) {
|
||||
layout();
|
||||
|
@ -623,13 +620,13 @@ void window::draw()
|
|||
}
|
||||
|
||||
// Draw background.
|
||||
this->draw_background(frame_buffer, 0, 0);
|
||||
this->draw_background(0, 0);
|
||||
|
||||
// Draw children.
|
||||
this->draw_children(frame_buffer, 0, 0);
|
||||
this->draw_children(0, 0);
|
||||
|
||||
// Draw foreground.
|
||||
this->draw_foreground(frame_buffer, 0, 0);
|
||||
this->draw_foreground(0, 0);
|
||||
|
||||
|
||||
if(callback_next_draw_ != nullptr) {
|
||||
|
|
Loading…
Add table
Reference in a new issue