- Timestamp:
- May 16, 2011, 2:37:27 AM (12 years ago)
- Location:
- abuse/trunk
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
abuse/trunk/TODO
r669 r670 57 57 -------- 58 58 - move to vec2i: 59 - AddDirty !!60 - update_dirty61 59 - scale_put, scale_put_trans 62 60 - tint_area, darken_area … … 77 75 refactor image::Line to merge loops 78 76 77 event::redraw::x1,y1... 78 view::cx1,cx2... 79 -
abuse/trunk/src/automap.cpp
r668 r670 26 26 27 27 long sx,ex,sy,ey,x,y,window_xstart,window_ystart, 28 window_xend,window_yend, centerx,centery,28 window_xend,window_yend, 29 29 draw_xstart,draw_ystart, 30 30 i,j; … … 38 38 window_xend=automap_window->x2(); 39 39 window_yend=automap_window->y2(); 40 centerx=(window_xstart+window_xend)/2; 41 centery=(window_ystart+window_yend)/2; 40 vec2i center((window_xstart+window_xend)/2, (window_ystart+window_yend)/2); 42 41 43 42 sx=x/f_wid-w/2; // start drawing with this foretile … … 48 47 if (sx<0) // does the map scroll past the left side ? 49 48 { sx=0; // yes, start drawing at 0 50 draw_xstart=center x-(x*AUTOTILE_WIDTH/f_wid);49 draw_xstart=center.x-(x*AUTOTILE_WIDTH/f_wid); 51 50 } 52 51 else 53 draw_xstart=center x-(x*AUTOTILE_WIDTH/f_wid-sx*AUTOTILE_WIDTH);52 draw_xstart=center.x-(x*AUTOTILE_WIDTH/f_wid-sx*AUTOTILE_WIDTH); 54 53 55 54 if (sy<0) 56 55 { 57 56 sy=0; 58 draw_ystart=center y-(y*AUTOTILE_HEIGHT/f_hi);57 draw_ystart=center.y-(y*AUTOTILE_HEIGHT/f_hi); 59 58 } 60 59 else 61 draw_ystart=center y-(y*AUTOTILE_HEIGHT/f_hi-sy*AUTOTILE_HEIGHT);60 draw_ystart=center.y-(y*AUTOTILE_HEIGHT/f_hi-sy*AUTOTILE_HEIGHT); 62 61 63 62 // if view position hasn't changed, only update the blinking dot and return … … 65 64 { 66 65 automap_window->m_surf->Lock(); 67 automap_window->m_surf->AddDirty(center x,centery,centerx + 1,centery + 1);66 automap_window->m_surf->AddDirty(center, center + vec2i(1)); 68 67 if ((tick++)&4) 69 automap_window->m_surf->PutPixel( vec2i(centerx,centery),255);68 automap_window->m_surf->PutPixel(center, 255); 70 69 else 71 automap_window->m_surf->PutPixel( vec2i(centerx,centery),27);70 automap_window->m_surf->PutPixel(center, 27); 72 71 automap_window->m_surf->Unlock(); 73 72 return ; … … 95 94 ex=foreground_width()-1; */ 96 95 97 98 99 100 // we are going to redraw the whole map, so make the dirty rect work easier by marking 101 // everything dirty 102 screen->AddDirty(window_xstart,window_ystart,window_xend+1,window_yend+1); 103 104 105 96 // we are going to redraw the whole map, so make the dirty rect work 97 // easier by marking everything dirty 98 screen->AddDirty(vec2i(window_xstart, window_ystart), 99 vec2i(window_xend + 1, window_yend + 1)); 106 100 107 101 // draw the tiles that will be around the border of the automap with PutImage … … 149 143 automap_window->m_surf->Lock(); 150 144 if ((tick++)&4) 151 automap_window->m_surf->PutPixel( vec2i(centerx,centery),255);145 automap_window->m_surf->PutPixel(center, 255); 152 146 else 153 automap_window->m_surf->PutPixel( vec2i(centerx,centery),27);147 automap_window->m_surf->PutPixel(center, 27); 154 148 automap_window->m_surf->Unlock(); 155 149 -
abuse/trunk/src/dev.cpp
r668 r670 371 371 int32_t xstep=(im->Size().x<<16)/new_width, 372 372 ystep=(im->Size().y<<16)/new_height,iy,ix,sx,ix_start,iy_start; 373 screen->AddDirty( x, y, x + new_width, y + new_height);373 screen->AddDirty(vec2i(x, y), vec2i(x + new_width, y + new_height)); 374 374 375 375 vec2i caa, cbb; … … 412 412 int32_t xstep=(im->Size().x<<16)/new_width, 413 413 ystep=(im->Size().y<<16)/new_height,iy,ix,sx,ix_start,iy_start; 414 screen->AddDirty( x, y, x + new_width, y + new_height);414 screen->AddDirty(vec2i(x, y), vec2i(x + new_width, y + new_height)); 415 415 416 416 vec2i caa, cbb; -
abuse/trunk/src/endgame.cpp
r668 r670 129 129 130 130 } 131 screen->AddDirty( x1, sy, x2 + 1, sy + mask_height);131 screen->AddDirty(vec2i(x1, sy), vec2i(x2 + 1, sy + mask_height)); 132 132 } 133 133 -
abuse/trunk/src/game.cpp
r668 r670 667 667 668 668 if(small_render) 669 main_screen->AddDirty(v ->cx1, v->cy1, (v->cx2 - v->cx1 + 1)*2 + v->cx1 + 1, v->cy1+(v->cy2 - v->cy1 + 1)*2 + 1);669 main_screen->AddDirty(vec2i(v->cx1, v->cy1), vec2i((v->cx2 - v->cx1 + 1)*2 + v->cx1 + 1, v->cy1+(v->cy2 - v->cy1 + 1)*2 + 1)); 670 670 else 671 main_screen->AddDirty(v ->cx1, v->cy1, v->cx2 + 1, v->cy2 + 1);671 main_screen->AddDirty(vec2i(v->cx1, v->cy1), vec2i(v->cx2 + 1, v->cy2 + 1)); 672 672 673 673 if(v->draw_solid != -1) // fill the screen and exit.. … … 1786 1786 case EV_REDRAW: 1787 1787 { 1788 main_screen->AddDirty( ev.redraw.x1, ev.redraw.y1,1789 ev.redraw.x2 + 1, ev.redraw.y2 + 1);1788 main_screen->AddDirty(vec2i(ev.redraw.x1, ev.redraw.y1), 1789 vec2i(ev.redraw.x2 + 1, ev.redraw.y2 + 1)); 1790 1790 } break; 1791 1791 case EV_MESSAGE: … … 2045 2045 void Game::draw(int scene_mode) 2046 2046 { 2047 main_screen->AddDirty( 0, 0, xres + 1, yres + 1);2047 main_screen->AddDirty(vec2i(0), vec2i(xres, yres)); 2048 2048 2049 2049 main_screen->clear(); -
abuse/trunk/src/imlib/filter.cpp
r665 r670 97 97 vec2i span = bb - aa; 98 98 99 screen->AddDirty(pos .x, pos.y, pos.x + span.x, pos.y + span.y);99 screen->AddDirty(pos, pos + span); 100 100 101 101 screen->Lock(); -
abuse/trunk/src/imlib/image.cpp
r667 r670 160 160 for(int j = 0; j < m_size.y; j++) 161 161 memset(scan_line(j), color, m_size.x); 162 AddDirty( 0, 0, m_size.x, m_size.y);162 AddDirty(vec2i(0), m_size); 163 163 Unlock(); 164 164 } … … 272 272 yi = p2.y; yc = p1.y; 273 273 274 AddDirty( xc, yc, xi + 1, yi + 1);274 AddDirty(vec2i(xc, yc), vec2i(xi + 1, yi + 1)); 275 275 dcx = p1.x; dcy = p1.y; 276 276 xc = (p2.x - p1.x); … … 351 351 vec2i span = bb - aa; 352 352 353 AddDirty(pos .x, pos.y, pos.x + span.x, pos.y + span.y);353 AddDirty(pos, pos + span); 354 354 355 355 Lock(); … … 457 457 void image_descriptor::ReduceDirties() 458 458 { 459 dirty_rect *p = (dirty_rect *)dirties.first(); 460 int x1 = 6000, y1 = 6000, x2 = -1, y2 = -1; 461 462 for (int i = dirties.Count(); i--; ) 463 { 464 x1 = Min(x1, p->dx1); y1 = Min(y1, p->dy1); 465 x2 = Max(x1, p->dx1); y2 = Max(y1, p->dy1); 459 vec2i aa(6000), bb(-1); 460 461 for (dirty_rect *p = (dirty_rect *)dirties.first(); p; ) 462 { 463 aa = Min(aa, p->m_aa); 464 bb = Max(bb, p->m_bb); 466 465 dirty_rect *tmp = (dirty_rect *)p->Next(); 467 466 dirties.unlink(p); … … 469 468 p = tmp; 470 469 } 471 dirties.add_front(new dirty_rect( x1, y1, x2, y2));472 } 473 474 void image_descriptor:: delete_dirty(int x1, int y1, int x2, int y2)470 dirties.add_front(new dirty_rect(aa, bb)); 471 } 472 473 void image_descriptor::DeleteDirty(vec2i aa, vec2i bb) 475 474 { 476 475 int ax1, ay1, ax2, ay2; … … 480 479 return; 481 480 482 x1 = Max(0, x1); x2 = Min(m_size.x, x2);483 y1 = Max(0, y1); y2 = Min(m_size.y, y2);484 485 if ( x1 >= x2 || y1 >= y2)481 aa = Max(aa, vec2i(0)); 482 bb = Min(bb, m_size); 483 484 if (!(aa < bb)) 486 485 return; 487 486 … … 495 494 496 495 // are the two touching? 497 if ( x2 <= p->dx1 || y2 <= p->dy1 || x1 > p->dx2 || y1 > p->dy2)496 if (!(bb > p->m_aa && aa <= p->m_bb)) 498 497 continue; 499 498 500 499 // does it take a x slice off? (across) 501 if ( x2 >= p->dx2 + 1 && x1 <= p->dx1)502 { 503 if ( y2 >= p->dy2 + 1 && y1 <= p->dy1)500 if (bb.x >= p->m_bb.x + 1 && aa.x <= p->m_aa.x) 501 { 502 if (bb.y >= p->m_bb.y + 1 && aa.y <= p->m_aa.y) 504 503 { 505 504 dirties.unlink(p); 506 505 delete p; 507 506 } 508 else if ( y2 >= p->dy2+ 1)509 p-> dy2 = y1- 1;510 else if ( y1 <= p->dy1)511 p-> dy1 = y2;507 else if (bb.y >= p->m_bb.y + 1) 508 p->m_bb.y = aa.y - 1; 509 else if (aa.y <= p->m_aa.y) 510 p->m_aa.y = bb.y; 512 511 else 513 512 { 514 dirties.add_front(new dirty_rect(p-> dx1, p->dy1, p->dx2, y1-1));515 p-> dy1 = y2;513 dirties.add_front(new dirty_rect(p->m_aa, vec2i(p->m_bb.x, aa.y - 1))); 514 p->m_aa.y = bb.y; 516 515 } 517 516 } 518 517 // does it take a y slice off (down) 519 else if ( y2 - 1>=p->dy2 && y1<=p->dy1)520 { 521 if ( x2 - 1>=p->dx2)522 p-> dx2=x1-1;523 else if ( x1<=p->dx1)524 p-> dx1=x2;518 else if (bb.y - 1 >= p->m_bb.y && aa.y <= p->m_aa.y) 519 { 520 if (bb.x - 1 >= p->m_bb.x) 521 p->m_bb.x = aa.x - 1; 522 else if (aa.x <= p->m_aa.x) 523 p->m_aa.x = bb.x; 525 524 else 526 525 { 527 dirties.add_front(new dirty_rect(p-> dx1, p->dy1, x1-1, p->dy2));528 p-> dx1=x2;526 dirties.add_front(new dirty_rect(p->m_aa, vec2i(aa.x - 1, p->m_bb.y))); 527 p->m_aa.x = bb.x; 529 528 } 530 529 } … … 532 531 else 533 532 { 534 if (x2 - 1>=p->dx2) { ax1=p->dx1; ax2=x1; } 535 else if (x1<=p->dx1) { ax1=x2; ax2=p->dx2+1; } 536 else { ax1=p->dx1; ax2=x1; } 537 if (y2 - 1>=p->dy2) { ay1=y1; ay2=p->dy2+1; } 538 else if (y1<=p->dy1) { ay1=p->dy1; ay2=y2; } 539 else { ay1=y1; ay2=y2; } 540 dirties.add_front(new dirty_rect(ax1, ay1, ax2-1, ay2-1)); 541 542 if (x2 - 1>=p->dx2 || x1<=p->dx1) { ax1=p->dx1; ax2=p->dx2+1; } 543 else { ax1=x2; ax2=p->dx2+1; } 544 545 if (y2 - 1>=p->dy2) 546 { if (ax1==p->dx1) { ay1=p->dy1; ay2=y1; } 547 else { ay1=y1; ay2=p->dy2+1; } } 548 else if (y1<=p->dy1) { if (ax1==p->dx1) { ay1=y2; ay2=p->dy2+1; } 549 else { ay1=p->dy1; ay2=y2; } } 550 else { if (ax1==p->dx1) { ay1=p->dy1; ay2=y1; } 551 else { ay1=y1; ay2=y2; } } 552 dirties.add_front(new dirty_rect(ax1, ay1, ax2 - 1, ay2 - 1)); 553 554 if (x1>p->dx1 && x2 - 1<p->dx2) 533 if (bb.x - 1 >= p->m_bb.x) { ax1=p->m_aa.x; ax2 = aa.x; } 534 else if (aa.x<=p->m_aa.x) { ax1=bb.x; ax2=p->m_bb.x+1; } 535 else { ax1=p->m_aa.x; ax2=aa.x; } 536 537 if (bb.y - 1>=p->m_bb.y) { ay1=aa.y; ay2=p->m_bb.y+1; } 538 else if (aa.y<=p->m_aa.y) { ay1=p->m_aa.y; ay2=bb.y; } 539 else { ay1=aa.y; ay2=bb.y; } 540 541 dirties.add_front(new dirty_rect(vec2i(ax1, ay1), vec2i(ax2 - 1, ay2 - 1))); 542 543 if (bb.x - 1>=p->m_bb.x || aa.x<=p->m_aa.x) { ax1=p->m_aa.x; ax2=p->m_bb.x+1; } 544 else { ax1=bb.x; ax2=p->m_bb.x+1; } 545 546 if (bb.y - 1>=p->m_bb.y) 547 { if (ax1==p->m_aa.x) { ay1=p->m_aa.y; ay2=aa.y; } 548 else { ay1=aa.y; ay2=p->m_bb.y+1; } } 549 else if (aa.y<=p->m_aa.y) { if (ax1==p->m_aa.x) { ay1=bb.y; ay2=p->m_bb.y+1; } 550 else { ay1=p->m_aa.y; ay2=bb.y; } } 551 else { if (ax1==p->m_aa.x) { ay1=p->m_aa.y; ay2=aa.y; } 552 else { ay1=aa.y; ay2=bb.y; } } 553 dirties.add_front(new dirty_rect(vec2i(ax1, ay1), vec2i(ax2 - 1, ay2 - 1))); 554 555 if (aa.x > p->m_aa.x && bb.x - 1 < p->m_bb.x) 555 556 { 556 if ( y1>p->dy1 && y2 - 1<p->dy2)557 if (aa.y > p->m_aa.y && bb.y - 1 < p->m_bb.y) 557 558 { 558 dirties.add_front(new dirty_rect(p-> dx1, p->dy1, p->dx2, y1-1));559 dirties.add_front(new dirty_rect( p->dx1, y2, p->dx2, p->dy2));559 dirties.add_front(new dirty_rect(p->m_aa, vec2i(p->m_bb.x, aa.y - 1))); 560 dirties.add_front(new dirty_rect(vec2i(p->m_aa.x, bb.y), p->m_bb)); 560 561 } 561 else if ( y1<=p->dy1)562 dirties.add_front(new dirty_rect( p->dx1, y2, p->dx2, p->dy2));562 else if (aa.y <= p->m_aa.y) 563 dirties.add_front(new dirty_rect(vec2i(p->m_aa.x, bb.y), p->m_bb)); 563 564 else 564 dirties.add_front(new dirty_rect(p-> dx1, p->dy1, p->dx2, y1-1));565 dirties.add_front(new dirty_rect(p->m_aa, vec2i(p->m_bb.x, aa.y - 1))); 565 566 } 566 else if ( y1>p->dy1 && y2 - 1<p->dy2)567 dirties.add_front(new dirty_rect( p->dx1, y2, p->dx2, p->dy2));567 else if (aa.y > p->m_aa.y && bb.y - 1 < p->m_bb.y) 568 dirties.add_front(new dirty_rect(vec2i(p->m_aa.x, bb.y), p->m_bb)); 568 569 dirties.unlink(p); 569 570 delete p; … … 573 574 574 575 // specifies that an area is a dirty 575 void image_descriptor::AddDirty( int x1, int y1, int x2, int y2)576 void image_descriptor::AddDirty(vec2i aa, vec2i bb) 576 577 { 577 578 dirty_rect *p; … … 579 580 return; 580 581 581 x1 = Max(0, x1); x2 = Min(m_size.x, x2);582 y1 = Max(0, y1); y2 = Min(m_size.y, y2);583 584 if ( x1 >= x2 || y1 >= y2)582 aa = Max(aa, vec2i(0)); 583 bb = Min(bb, m_size); 584 585 if (!(aa < bb)) 585 586 return; 586 587 587 588 int i = dirties.Count(); 588 589 if (!i) 589 dirties.add_front(new dirty_rect( x1, y1, x2 - 1, y2 - 1));590 dirties.add_front(new dirty_rect(aa, bb - vec2i(1))); 590 591 else if (i >= MAX_DIRTY) 591 592 { 592 dirties.add_front(new dirty_rect( x1, y1, x2 - 1, y2 - 1));593 dirties.add_front(new dirty_rect(aa, bb - vec2i(1))); 593 594 ReduceDirties(); // reduce to one dirty rectangle, we have to many 594 595 } … … 599 600 600 601 // check to see if this new rectangle completly encloses the check rectangle 601 if ( x1<=p->dx1 && y1<=p->dy1 && x2>=p->dx2+1 && y2>=p->dy2+1)602 if (aa.x<=p->m_aa.x && aa.y<=p->m_aa.y && bb.x>=p->m_bb.x+1 && bb.y>=p->m_bb.y+1) 602 603 { 603 604 dirty_rect *tmp=(dirty_rect*) p->Next(); … … 608 609 else p=tmp; 609 610 } 610 else if (!( x2 - 1 <p->dx1 || y2 - 1 <p->dy1 || x1>p->dx2 || y1>p->dy2))611 { 612 613 614 615 /* if (x1<=p-> dx1) { a+=p->dx1-x1; ax1=x1; } else ax1=p->dx1;616 if (y1<=p-> dy1) { a+=p->dy1-y1; ay1=y1; } else ay1=p->dy1;617 if (x2 - 1 >=p-> dx2) { a+=x2 - 1 -p->dx2; ax2=x2 - 1; } else ax2=p->dx2;618 if (y2 - 1 >=p-> dy2) { a+=y2 - 1 -p->dy2; ay2=y2 - 1; } else ay2=p->dy2;611 else if (!(bb.x - 1 <p->m_aa.x || bb.y - 1 <p->m_aa.y || aa.x>p->m_bb.x || aa.y>p->m_bb.y)) 612 { 613 614 615 616 /* if (x1<=p->m_aa.x) { a+=p->m_aa.x-x1; ax1=x1; } else ax1=p->m_aa.x; 617 if (y1<=p->m_aa.y) { a+=p->m_aa.y-y1; ay1=y1; } else ay1=p->m_aa.y; 618 if (x2 - 1 >=p->m_bb.x) { a+=x2 - 1 -p->m_bb.x; ax2=x2 - 1; } else ax2=p->m_bb.x; 619 if (y2 - 1 >=p->m_bb.y) { a+=y2 - 1 -p->m_bb.y; ay2=y2 - 1; } else ay2=p->m_bb.y; 619 620 620 621 if (a<50) 621 { p-> dx1=ax1; // then expand the dirty622 p-> dy1=ay1;623 p-> dx2=ax2;624 p-> dy2=ay2;622 { p->m_aa.x=ax1; // then expand the dirty 623 p->m_aa.y=ay1; 624 p->m_bb.x=ax2; 625 p->m_bb.y=ay2; 625 626 return ; 626 627 } 627 628 else */ 628 629 { 629 if (x1<p->dx1) 630 AddDirty(x1, Max(y1, p->dy1), p->dx1, Min(y2, p->dy2 + 1)); 631 if (x2>p->dx2+1) 632 AddDirty(p->dx2+1, Max(y1, p->dy1), x2, Min(y2, p->dy2 + 1)); 633 if (y1<p->dy1) 634 AddDirty(x1, y1, x2, p->dy1); 635 if (y2 - 1>p->dy2) 636 AddDirty(x1, p->dy2+1, x2, y2); 630 if (aa.x < p->m_aa.x) 631 AddDirty(vec2i(aa.x, Max(aa.y, p->m_aa.y)), 632 vec2i(p->m_aa.x, Min(bb.y, p->m_bb.y + 1))); 633 if (bb.x > p->m_bb.x + 1) 634 AddDirty(vec2i(p->m_bb.x + 1, Max(aa.y, p->m_aa.y)), 635 vec2i(bb.x, Min(bb.y, p->m_bb.y + 1))); 636 if (aa.y < p->m_aa.y) 637 AddDirty(aa, vec2i(bb.x, p->m_aa.y)); 638 if (bb.y - 1 > p->m_bb.y) 639 AddDirty(vec2i(aa.x, p->m_bb.y + 1), bb); 637 640 return ; 638 641 } 639 p =(dirty_rect *)p->Next();640 } else p =(dirty_rect *)p->Next();642 p = (dirty_rect *)p->Next(); 643 } else p = (dirty_rect *)p->Next(); 641 644 642 645 } 643 CHECK( x1 < x2 && y1 < y2);644 dirties.add_end(new dirty_rect( x1, y1, x2 - 1, y2 - 1));646 CHECK(aa < bb); 647 dirties.add_end(new dirty_rect(aa, bb - vec2i(1))); 645 648 } 646 649 } … … 672 675 memset(scan_line(y) + p1.x, color, (p2.x - p1.x + 1)); 673 676 Unlock(); 674 AddDirty(p1 .x, p1.y, p2.x + 1, p2.y + 1);677 AddDirty(p1, p2 + vec2i(1)); 675 678 } 676 679 … … 705 708 Unlock(); 706 709 707 AddDirty( x1, y1, x2 + 1, y2 + 1);710 AddDirty(vec2i(x1, y1), vec2i(x2 + 1, y2 + 1)); 708 711 } 709 712 … … 816 819 if (yd<0) { ysrc++; ydst++; } else { ysrc--; ydst--; } 817 820 } 818 AddDirty( x1, y1, x2 + 1, y2 + 1);821 AddDirty(vec2i(x1, y1), vec2i(x2 + 1, y2 + 1)); 819 822 } 820 823 -
abuse/trunk/src/imlib/image.h
r667 r670 25 25 { 26 26 public : 27 int16_t dx1, dy1, dx2, dy2; 28 dirty_rect(int16_t x1, int16_t y1, int16_t x2, int16_t y2) 27 dirty_rect(vec2i aa, vec2i bb) 29 28 { 30 dx1 = x1; dy1 = y1; dx2 = x2; dy2 = y2; 31 if (x2 < x1 || y2 < y1) 29 m_aa = aa; 30 m_bb = bb; 31 if (!(bb >= aa)) 32 32 printf("add incorrect dirty\n"); 33 33 } 34 virtual int compare(void *n1) { return ((dirty_rect *)n1)->dy1 > dy1; } 34 virtual int compare(void *n1) 35 { 36 return ((dirty_rect *)n1)->m_aa.y > m_aa.y; 37 } 38 39 vec2i m_aa, m_bb; 35 40 }; 36 41 37 42 class image_descriptor 38 43 { 39 private:40 vec2i m_size, m_aa, m_bb;41 42 44 public: 43 45 uint8_t keep_dirt, … … 78 80 } 79 81 void ReduceDirties(); 80 void AddDirty( int x1, int y1, int x2, int y2);81 void delete_dirty(int x1, int y1, int x2, int y2);82 void AddDirty(vec2i aa, vec2i bb); 83 void DeleteDirty(vec2i aa, vec2i bb); 82 84 void Resize(vec2i size) 83 85 { … … 86 88 m_bb = size; 87 89 } 90 91 private: 92 vec2i m_size, m_aa, m_bb; 88 93 }; 89 94 … … 150 155 } 151 156 152 void AddDirty( int x1, int y1, int x2, int y2)157 void AddDirty(vec2i aa, vec2i bb) 153 158 { 154 if (m_special) m_special->AddDirty( x1, y1, x2, y2);159 if (m_special) m_special->AddDirty(aa, bb); 155 160 } 156 void delete_dirty(int x1, int y1, int x2, int y2)161 void DeleteDirty(vec2i aa, vec2i bb) 157 162 { 158 if(m_special) m_special-> delete_dirty(x1, y1, x2, y2);163 if(m_special) m_special->DeleteDirty(aa, bb); 159 164 } 160 165 void ClearDirties() -
abuse/trunk/src/imlib/jwindow.cpp
r669 r670 72 72 { 73 73 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)); 75 75 } 76 76 } … … 93 93 Jwindow *k; 94 94 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); 99 99 k->next = j->next; 100 100 } 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)); 102 102 j->hide(); 103 103 } … … 108 108 { 109 109 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)); 111 111 } 112 112 } … … 183 183 for (p=m_first; p!=j; p=p->next) 184 184 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)); 186 186 flush_screen(); 187 187 } … … 214 214 { 215 215 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)); 219 220 flush_screen(); 220 221 ev.type=EV_SPURIOUS; // we took care of this one by ourselves. … … 231 232 { 232 233 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)); 234 235 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)); 236 238 j->resize(l,h); 237 239 if (!frame_suppress) … … 241 243 void WindowManager::move_window(Jwindow *j, int x, int y) 242 244 { 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)); 244 246 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)); 247 249 j->m_pos.x = x; 248 250 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)); 250 252 } 251 253 … … 299 301 Jwindow * search; 300 302 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)); 309 309 search->next = win->next; 310 310 } 311 311 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)); 313 313 } 314 314 … … 342 342 for (Jwindow *p = m_first; p; p = p->next) 343 343 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)); 345 345 update_dirty(m_surf); 346 346 … … 360 360 } 361 361 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)); 363 363 for (Jwindow *q = p->next; q; q = q->next) 364 364 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)); 368 367 update_dirty(p->m_surf, p->m_pos.x, p->m_pos.y); 369 368 if (has_mouse()) -
abuse/trunk/src/imlib/scroller.cpp
r668 r670 78 78 } 79 79 } 80 screen->AddDirty( x, y, x + icw, y + ich);80 screen->AddDirty(vec2i(x, y), vec2i(x + icw, y + ich)); 81 81 screen->Unlock(); 82 82 } -
abuse/trunk/src/imlib/supmorph.cpp
r665 r670 268 268 vec2i caa, cbb; 269 269 screen->GetClip(caa, cbb); 270 screen->AddDirty( x, y, x + w, y + h);270 screen->AddDirty(vec2i(x, y), vec2i(x + w, y + h)); 271 271 stepper *ss; 272 272 memset(hole,0,w*h); -
abuse/trunk/src/imlib/transimage.cpp
r665 r670 140 140 } 141 141 142 screen->AddDirty( Max(pos.x, pos1.x), pos.y,143 Min(pos.x + m_size.x, pos2.x), pos.y + m_size.y);142 screen->AddDirty(vec2i(Max(pos.x, pos1.x), pos.y), 143 vec2i(Min(pos.x + m_size.x, pos2.x), pos.y + m_size.y)); 144 144 return parser; 145 145 } -
abuse/trunk/src/imlib/video.cpp
r555 r670 25 25 CHECK(im->m_special); 26 26 27 if (im->m_special->keep_dirt == 0)27 if (im->m_special->keep_dirt == 0) 28 28 { 29 29 put_image(im, xoff, yoff); … … 33 33 int count = im->m_special->dirties.Count(); 34 34 dirty_rect *dr = (dirty_rect *)(im->m_special->dirties.first()); 35 while (count > 0)35 while (count > 0) 36 36 { 37 put_part_image(im, xoff + dr->dx1, yoff + dr->dy1, 38 dr->dx1, dr->dy1, dr->dx2 + 1, dr->dy2 + 1); 37 put_part_image(im, xoff + dr->m_aa.x, yoff + dr->m_aa.y, 38 dr->m_aa.x, dr->m_aa.y, 39 dr->m_bb.x + 1, dr->m_bb.y + 1); 39 40 dirty_rect *tmp = dr; 40 41 dr = (dirty_rect *)(dr->Next()); -
abuse/trunk/src/menu.cpp
r668 r670 70 70 } 71 71 } 72 main_screen->AddDirty( x1, y1, x2 + 1, y2 + 1);72 main_screen->AddDirty(vec2i(x1, y1), vec2i(x2 + 1, y2 + 1)); 73 73 main_screen->Unlock(); 74 74 } … … 97 97 } 98 98 } 99 main_screen->AddDirty( x1, y1, x2 + 1, y2 + 1);99 main_screen->AddDirty(vec2i(x1, y1), vec2i(x2 + 1, y2 + 1)); 100 100 main_screen->Unlock(); 101 101 } … … 103 103 void dark_widget(int x1, int y1, int x2, int y2, int br, int dr, int amount) 104 104 { 105 main_screen->AddDirty( x1, y1, x2 + 1, y2 + 1);105 main_screen->AddDirty(vec2i(x1, y1), vec2i(x2 + 1, y2 + 1)); 106 106 main_screen->Line(vec2i(x1, y1), vec2i(x1, y2), br); 107 107 main_screen->Line(vec2i(x1 + 1, y1), vec2i(x2, y1), br); … … 153 153 154 154 155 main_screen->AddDirty( mx, my, mx + mw, my + mh);155 main_screen->AddDirty(vec2i(mx, my), vec2i(mx + mw, my + mh)); 156 156 157 157 if (title) … … 660 660 inm->clear_current(); 661 661 662 main_screen->AddDirty( 0, 0, 320, 200);662 main_screen->AddDirty(vec2i(0), vec2i(320, 200)); 663 663 664 664 Event ev; -
abuse/trunk/src/transp.cpp
r665 r670 33 33 if (!(bb >= vec2i(0))) 34 34 return; 35 screen->AddDirty(pos .x, pos.y, pos.x + bb.x, pos.y + bb.y);35 screen->AddDirty(pos, pos + bb); 36 36 37 37 int ye=aa.y+bb.y;
Note: See TracChangeset
for help on using the changeset viewer.