void LargeTexture::draw_rect_region(RID p_canvas_item,const Rect2& p_rect, const Rect2& p_src_rect,const Color& p_modulate, bool p_transpose) const { //tiling not supported for this if (p_src_rect.size.x==0 || p_src_rect.size.y==0) return; Size2 scale = p_rect.size/p_src_rect.size; for(int i=0;i<pieces.size();i++) { // TODO Rect2 rect( pieces[i].offset, pieces[i].texture->get_size()); if (!p_src_rect.intersects(rect)) continue; Rect2 local = p_src_rect.clip(rect); Rect2 target = local; target.size*=scale; target.pos=p_rect.pos+(p_src_rect.pos+rect.pos)*scale; local.pos-=rect.pos; pieces[i].texture->draw_rect_region(p_canvas_item,target,local,p_modulate,p_transpose); } }