40 lines
726 B
C++
40 lines
726 B
C++
#include <basic_widgets/w/base/widget_impl.hpp>
|
|
|
|
using namespace bwidgets;
|
|
|
|
void WidgetImpl::render()
|
|
{
|
|
if (_renderer == nullptr) return;
|
|
|
|
#ifdef BWIDGETS_DEBUG
|
|
_renderer
|
|
->draw_color({
|
|
// NOLINTNEXTLINE(readability-magic-numbers)
|
|
{0, 255, 0, SDL_ALPHA_OPAQUE}
|
|
})
|
|
->draw_rect(nullptr);
|
|
#endif
|
|
|
|
_renderer->viewport(_viewport);
|
|
_handle_rendering();
|
|
}
|
|
|
|
void WidgetImpl::renderer(std::shared_ptr<Renderer> r)
|
|
{
|
|
if (r != _renderer) {
|
|
_handle_renderer_change(r);
|
|
_renderer = r;
|
|
}
|
|
}
|
|
|
|
void WidgetImpl::viewport(const SDL_Rect& vp)
|
|
{
|
|
_handle_geometry_change(vp);
|
|
_viewport = vp;
|
|
}
|
|
|
|
auto WidgetImpl::viewport() const -> const SDL_Rect&
|
|
{
|
|
return _viewport;
|
|
}
|