Ignore:
Timestamp:
May 16, 2011, 2:37:27 AM (11 years ago)
Author:
Sam Hocevar
Message:

imlib: started refactoring the dirty rectangle system.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • abuse/trunk/src/imlib/jwindow.cpp

    r669 r670  
    7272        {
    7373            p->hide();
    74             m_surf->AddDirty(p->m_pos.x, p->m_pos.y, p->m_pos.x + p->l, p->m_pos.y + p->h);
     74            m_surf->AddDirty(p->m_pos, p->m_pos + vec2i(p->l, p->h));
    7575        }
    7676    }
     
    9393        Jwindow *k;
    9494        for (k = m_first; k->next != j; k = k->next)
    95             k->m_surf->AddDirty(j->m_pos.x - k->m_pos.x, j->m_pos.y - k->m_pos.y,
    96                                   j->m_pos.x + j->l - k->m_pos.x, j->m_pos.y + j->h - k->m_pos.y);
    97         k->m_surf->AddDirty(j->m_pos.x - k->m_pos.x, j->m_pos.y - k->m_pos.y,
    98                               j->m_pos.x + j->l - k->m_pos.x, j->m_pos.y + j->h - k->m_pos.y);
     95            k->m_surf->AddDirty(j->m_pos - k->m_pos,
     96                                j->m_pos + vec2i(j->l, j->h) - k->m_pos);
     97        k->m_surf->AddDirty(j->m_pos - k->m_pos,
     98                            j->m_pos + vec2i(j->l, j->h) - k->m_pos);
    9999        k->next = j->next;
    100100    }
    101     m_surf->AddDirty(j->m_pos.x, j->m_pos.y, j->m_pos.x + j->l, j->m_pos.y + j->h);
     101    m_surf->AddDirty(j->m_pos, j->m_pos + vec2i(j->l, j->h));
    102102    j->hide();
    103103}
     
    108108    {
    109109        j->show();
    110         j->m_surf->AddDirty(0, 0, j->l, j->h);
     110        j->m_surf->AddDirty(vec2i(0), vec2i(j->l, j->h));
    111111    }
    112112}
     
    183183      for (p=m_first; p!=j; p=p->next)
    184184        p->m_surf->AddDirty(j->x-p->x,j->y-p->y,j->x+j->l-p->x,j->y+j->h-p->y); */
    185       j->m_surf->AddDirty(0, 0, j->l, j->h);
     185      j->m_surf->AddDirty(vec2i(0), vec2i(j->l, j->h));
    186186      flush_screen();
    187187    }
     
    214214  {
    215215    for (Jwindow *j = m_first; j; j = j->next)
    216        j->m_surf->AddDirty(ev.redraw.x1 - j->m_pos.x, ev.redraw.y1 - j->m_pos.y,
    217                              ev.redraw.x2 + 1 - j->m_pos.x, ev.redraw.y2 + 1 - j->m_pos.y);
    218     m_surf->AddDirty(ev.redraw.x1, ev.redraw.y1, ev.redraw.x2 + 1, ev.redraw.y2 + 1);
     216       j->m_surf->AddDirty(vec2i(ev.redraw.x1, ev.redraw.y1) - j->m_pos,
     217                           vec2i(ev.redraw.x2 + 1, ev.redraw.y2 + 1) - j->m_pos.x);
     218    m_surf->AddDirty(vec2i(ev.redraw.x1, ev.redraw.y1),
     219                     vec2i(ev.redraw.x2 + 1, ev.redraw.y2 + 1));
    219220    flush_screen();
    220221    ev.type=EV_SPURIOUS;   // we took care of this one by ourselves.
     
    231232{
    232233  Jwindow *p;
    233   m_surf->AddDirty(j->m_pos.x, j->m_pos.y, j->m_pos.x + j->l, j->m_pos.y + j->h);
     234  m_surf->AddDirty(j->m_pos, j->m_pos + vec2i(j->l, j->h));
    234235  for (p=m_first; p!=j; p=p->next)
    235     p->m_surf->AddDirty(j->m_pos.x - p->m_pos.x, j->m_pos.y - p->m_pos.y, j->m_pos.x + j->l - p->m_pos.x, j->m_pos.y + j->h - p->m_pos.y);
     236    p->m_surf->AddDirty(j->m_pos - p->m_pos,
     237                        j->m_pos - p->m_pos + vec2i(j->l, j->h));
    236238  j->resize(l,h);
    237239  if (!frame_suppress)
     
    241243void WindowManager::move_window(Jwindow *j, int x, int y)
    242244{
    243     m_surf->AddDirty(j->m_pos.x, j->m_pos.y, j->m_pos.x + j->l, j->m_pos.y + j->h);
     245    m_surf->AddDirty(j->m_pos, j->m_pos + vec2i(j->l, j->h));
    244246    for(Jwindow *p = m_first; p != j; p = p->next)
    245         p->m_surf->AddDirty(j->m_pos.x - p->m_pos.x, j->m_pos.y - p->m_pos.y,
    246                               j->m_pos.x + j->l - p->m_pos.x, j->m_pos.y + j->h - p->m_pos.y);
     247        p->m_surf->AddDirty(j->m_pos - p->m_pos,
     248                            j->m_pos - p->m_pos + vec2i(j->l, j->h));
    247249    j->m_pos.x = x;
    248250    j->m_pos.y = y;
    249     j->m_surf->AddDirty(0, 0, j->l, j->h);
     251    j->m_surf->AddDirty(vec2i(0), vec2i(j->l, j->h));
    250252}
    251253
     
    299301        Jwindow * search;
    300302        for(search = m_first; search->next != win; search = search->next)
    301             search->m_surf->AddDirty(win->m_pos.x - search->m_pos.x,
    302                                      win->m_pos.y - search->m_pos.y,
    303                                      win->m_pos.x + win->l - search->m_pos.x,
    304                                      win->m_pos.y + win->h - search->m_pos.y);
    305         search->m_surf->AddDirty(win->m_pos.x - search->m_pos.x,
    306                                  win->m_pos.y - search->m_pos.y,
    307                                  win->m_pos.x + win->l - search->m_pos.x,
    308                                  win->m_pos.y + win->h - search->m_pos.y);
     303            search->m_surf->AddDirty(win->m_pos - search->m_pos,
     304                                     win->m_pos - search->m_pos
     305                                                + vec2i(win->l, win->h));
     306        search->m_surf->AddDirty(win->m_pos - search->m_pos,
     307                                 win->m_pos - search->m_pos
     308                                            + vec2i(win->l, win->h));
    309309        search->next = win->next;
    310310    }
    311311
    312     m_surf->AddDirty(win->m_pos.x, win->m_pos.y, win->m_pos.x + win->l, win->m_pos.y + win->h);
     312    m_surf->AddDirty(win->m_pos, win->m_pos + vec2i(win->l, win->h));
    313313}
    314314
     
    342342    for (Jwindow *p = m_first; p; p = p->next)
    343343        if (!p->is_hidden())
    344             m_surf->delete_dirty(p->m_pos.x, p->m_pos.y, p->m_pos.x + p->l, p->m_pos.y + p->h);
     344            m_surf->DeleteDirty(p->m_pos, p->m_pos + vec2i(p->l, p->h));
    345345    update_dirty(m_surf);
    346346
     
    360360        }
    361361
    362 //          m_surf->delete_dirty(p->m_pos.x, p->m_pos.y, p->m_pos.x+p->l, p->m_pos.y+p->h);
     362//      m_surf->DeleteDirty(p->m_pos, p->m_pos + vec2i(p->l, p->h));
    363363        for (Jwindow *q = p->next; q; q = q->next)
    364364            if (!q->is_hidden())
    365                 p->m_surf->delete_dirty(q->m_pos.x - p->m_pos.x, q->m_pos.y - p->m_pos.y,
    366                                         q->m_pos.x + q->l - p->m_pos.x,
    367                                         q->m_pos.y + q->h - p->m_pos.y);
     365                p->m_surf->DeleteDirty(q->m_pos - p->m_pos,
     366                                       q->m_pos - p->m_pos + vec2i(q->l, q->h));
    368367        update_dirty(p->m_surf, p->m_pos.x, p->m_pos.y);
    369368        if (has_mouse())
Note: See TracChangeset for help on using the changeset viewer.