Previous 199869 Revisions Next

r18171 Thursday 27th September, 2012 at 09:38:40 UTC by hap
fix problem with marking dirty region
[src/mame/video]sega16sp.c

trunk/src/mame/video/sega16sp.c
r18170r18171
209209
210210      // loop from top to bottom
211211      int minx = xpos;
212      int maxx = xpos;
213      int miny = -1;
214      int maxy = -1;
212      int maxx = cliprect.min_x - 1;
213      int miny = cliprect.max_y + 1;
214      int maxy = cliprect.min_y - 1;
215215      for (int y = top; y < bottom; y++)
216216      {
217217         // advance a row
r18170r18171
278278
279279            // update bounds
280280            if (x > maxx) maxx = x;
281            if (miny == -1) miny = y;
281            if (y < miny) miny = y;
282282            maxy = y;
283283         }
284284      }
285285
286286      // mark dirty
287      if (miny != -1)
287      if (minx <= maxx && miny <= maxy)
288288         mark_dirty(minx, maxx, miny, maxy);
289289   }
290290}
r18170r18171
388388
389389      // loop from top to bottom
390390      int minx = xpos;
391      int maxx = xpos;
392      int miny = -1;
393      int maxy = -1;
391      int maxx = cliprect.min_x - 1;
392      int miny = cliprect.max_y + 1;
393      int maxy = cliprect.min_y - 1;
394394      for (int y = top; y < bottom; y++)
395395      {
396396         // advance a row
r18170r18171
465465
466466            // update bounds
467467            if (x > maxx) maxx = x;
468            if (miny == -1) miny = y;
468            if (y < miny) miny = y;
469469            maxy = y;
470470         }
471471      }
472472
473473      // mark dirty
474      if (miny != -1)
474      if (minx <= maxx && miny <= maxy)
475475         mark_dirty(minx, maxx, miny, maxy);
476476   }
477477}
r18170r18171
576576      // loop from top to bottom
577577      int minx = xpos;
578578      int maxx = xpos;
579      int miny = -1;
580      int maxy = -1;
579      int miny = cliprect.max_y + 1;
580      int maxy = cliprect.min_y - 1;
581581      for (int y = top; y < bottom; y++)
582582      {
583583         // advance a row
r18170r18171
640640            // update bounds
641641            if (x > maxx) maxx = x;
642642            if (x < minx) minx = x;
643            if (miny == -1) miny = y;
643            if (y < miny) miny = y;
644644            maxy = y;
645645         }
646646      }
647647
648648      // mark dirty
649      if (miny != -1)
649      if (minx <= maxx && miny <= maxy)
650650         mark_dirty(minx, maxx, miny, maxy);
651651   }
652652}
r18170r18171
758758      // loop from top to bottom
759759      int minx = xpos;
760760      int maxx = xpos;
761      int miny = -1;
762      int maxy = -1;
761      int miny = cliprect.max_y + 1;
762      int maxy = cliprect.min_y - 1;
763763      for (int y = top; y < bottom; y++)
764764      {
765765         // skip drawing if not within the cliprect
r18170r18171
819819            // update bounds
820820            if (x > maxx) maxx = x;
821821            if (x < minx) minx = x;
822            if (miny == -1) miny = y;
822            if (y < miny) miny = y;
823823            maxy = y;
824824         }
825825
r18170r18171
828828      }
829829
830830      // mark dirty
831      if (miny != -1)
831      if (minx <= maxx && miny <= maxy)
832832         mark_dirty(minx, maxx, miny, maxy);
833833   }
834834}
r18170r18171
941941      // loop from top to bottom
942942      int minx = xpos;
943943      int maxx = xpos;
944      int miny = -1;
945      int maxy = -1;
944      int miny = cliprect.max_y + 1;
945      int maxy = cliprect.min_y - 1;
946946      for (int y = top; y < bottom; y++)
947947      {
948948         // advance a row
r18170r18171
10121012            // update bounds
10131013            if (x > maxx) maxx = x;
10141014            if (x < minx) minx = x;
1015            if (miny == -1) miny = y;
1015            if (y < miny) miny = y;
10161016            maxy = y;
10171017         }
10181018      }
10191019
10201020      // mark dirty
1021      if (miny != -1)
1021      if (minx <= maxx && miny <= maxy)
10221022         mark_dirty(minx, maxx, miny, maxy);
10231023   }
10241024}
r18170r18171
11501150      // loop from top to bottom
11511151      int minx = xpos;
11521152      int maxx = xpos;
1153      int miny = -1;
1154      int maxy = -1;
1153      int miny = cliprect.max_y + 1;
1154      int maxy = cliprect.min_y - 1;
11551155      int yacc = 0;
11561156      int ytarget = top + ydelta * height;
11571157      for (int y = top; y != ytarget; y += ydelta)
r18170r18171
12181218            // update bounds
12191219            if (x > maxx) maxx = x;
12201220            if (x < minx) minx = x;
1221            if (miny == -1) miny = y;
1222            maxy = y;
1221            if (y < miny) miny = y;
1222            if (y > maxy) maxy = y;
12231223         }
12241224
12251225         // accumulate zoom factors; if we carry into the high bit, skip an extra row
r18170r18171
12291229      }
12301230
12311231      // mark dirty
1232      if (miny != -1)
1232      if (minx <= maxx && miny <= maxy)
12331233         mark_dirty(minx, maxx, miny, maxy);
12341234   }
12351235}
r18170r18171
13401340      // loop from top to bottom
13411341      int dminx = xpos;
13421342      int dmaxx = xpos;
1343      int dminy = -1;
1344      int dmaxy = -1;
1343      int dminy = cliprect.max_y + 1;
1344      int dmaxy = cliprect.min_y - 1;
13451345      int ytarget = top + ydelta * height;
13461346      int yacc = 0;
13471347      for (int y = top; y != ytarget; y += ydelta)
r18170r18171
14431443               // update bounds
14441444               if (x > dmaxx) dmaxx = x;
14451445               if (x < dminx) dminx = x;
1446               if (dminy == -1) dminy = y;
1447               dmaxy = y;
1446               if (y < dminy) dminy = y;
1447               if (y > dmaxy) dmaxy = y;
14481448            }
14491449         }
14501450
r18170r18171
14551455      }
14561456
14571457      // mark dirty
1458      if (dminy != -1)
1458      if (dminx <= dmaxx && dminy <= dmaxy)
14591459         mark_dirty(dminx, dmaxx, dminy, dmaxy);
14601460   }
14611461}

Previous 199869 Revisions Next


© 1997-2024 The MAME Team