Rectf EditorToolboxWidget::selection_draw_rect() const { Rectf select = normalize_selection(); select.set_p2(select.p2() + Vector(1, 1)); select.set_p1((select.p1() * 32.0f) + Vector(static_cast<float>(m_Xpos), static_cast<float>(m_Ypos))); select.set_p2((select.p2() * 32.0f) + Vector(static_cast<float>(m_Xpos), static_cast<float>(m_Ypos))); return select; }
void Canvas::draw_filled_rect(const Rectf& rect, const Color& color, float radius, int layer) { auto request = new(m_obst) FillRectRequest; request->type = FILLRECT; request->layer = layer; request->flip = m_context.transform().flip; request->alpha = m_context.transform().alpha; request->rect = Rectf(apply_translate(rect.p1()), rect.get_size()); request->color = color; request->color.alpha = color.alpha * m_context.transform().alpha; request->radius = radius; m_requests.push_back(request); }
void Canvas::draw_gradient(const Color& top, const Color& bottom, int layer, const GradientDirection& direction, const Rectf& region, const Blend& blend) { auto request = new(m_obst) GradientRequest(); request->type = GRADIENT; request->layer = layer; request->flip = m_context.transform().flip; request->alpha = m_context.transform().alpha; request->blend = blend; request->top = top; request->bottom = bottom; request->direction = direction; request->region = Rectf(apply_translate(region.p1()), apply_translate(region.p2())); m_requests.push_back(request); }
void Canvas::draw_surface_part(const SurfacePtr& surface, const Rectf& srcrect, const Rectf& dstrect, int layer, const PaintStyle& style) { if (!surface) return; auto request = new(m_obst) TextureRequest(); request->type = TEXTURE; request->layer = layer; request->flip = m_context.transform().flip ^ surface->get_flip(); request->alpha = m_context.transform().alpha * style.get_alpha(); request->blend = style.get_blend(); request->srcrects.emplace_back(srcrect); request->dstrects.emplace_back(apply_translate(dstrect.p1()), dstrect.get_size()); request->angles.emplace_back(0.0f); request->texture = surface->get_texture().get(); request->displacement_texture = surface->get_displacement_texture().get(); request->color = style.get_color(); m_requests.push_back(request); }