Changeset 1234

Show
Ignore:
Timestamp:
04/17/07 23:10:13 (2 years ago)
Author:
arj..@yirdis.nl
Message:

more improvements on canvas performance

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • gaphas/trunk/gaphas/painter.py

    r1231 r1234  
    2020# The tolerance for Cairo. Bigger values increase speed and reduce accuracy 
    2121# (default: 0.1) 
    22 TOLERANCE = 0.5 
     22TOLERANCE = 0.8 
    2323 
    2424class Painter(object): 
     
    108108                                  draw_all=self.draw_all)) 
    109109 
    110             if DEBUG_DRAW_BOUNDING_BOX: 
    111                 try: 
    112                     b = view.get_item_bounding_box(item) 
    113                 except KeyError: 
    114                     pass # No bounding box right now.. 
    115                 else: 
    116                     cairo.save() 
    117                     cairo.identity_matrix() 
    118                     cairo.set_source_rgb(.8, 0, 0) 
    119                     cairo.set_line_width(1.0) 
    120                     cairo.rectangle(b[0], b[1], b[2] - b[0], b[3] - b[1]) 
    121                     cairo.stroke() 
    122                     cairo.restore() 
    123110        finally: 
    124111            cairo.restore() 
     
    132119            if not area or view.get_item_bounding_box(item) - area: 
    133120                self._draw_item(item, view, cairo, area=area) 
     121                if DEBUG_DRAW_BOUNDING_BOX: 
     122                    self._draw_bounds(item, view, cairo) 
     123 
     124    def _draw_bounds(self, item, view, cairo): 
     125        try: 
     126            b = view.get_item_bounding_box(item) 
     127        except KeyError: 
     128            pass # No bounding box right now.. 
     129        else: 
     130            cairo.save() 
     131            cairo.identity_matrix() 
     132            cairo.set_source_rgb(.8, 0, 0) 
     133            cairo.set_line_width(1.0) 
     134            cairo.rectangle(b.x0, b.y0, b.width, b.height) 
     135            cairo.stroke() 
     136            cairo.restore() 
    134137 
    135138    def paint(self, context): 
     
    158161        for item in items: 
    159162            context = view.wrap_cairo_context(cairo) 
    160             try: 
    161                 del view._item_bounds[item] 
    162             except KeyError: 
    163                 pass 
     163            #try: 
     164            #    del view._item_bounds[item] 
     165            #except KeyError: 
     166            #    pass 
    164167            self._draw_item(item, view, context) 
    165168            view.set_item_bounding_box(item, context.get_bounds()) 
  • gaphas/trunk/gaphas/tool.py

    r1215 r1234  
    317317                b = view.get_item_bounding_box(i) 
    318318                view.queue_draw_item(i, handles=True) 
    319                 view.queue_draw_area(b[0] + dx-1, b[1] + dy-1, 
    320                                      b[2] - b[0]+2, b[3] - b[1]+2) 
     319                view.queue_draw_area(b.x0 + dx - 1, b.y0 + dy - 1, 
     320                                     b.width + 2, b.height + 2) 
    321321            self.last_x, self.last_y = event.x, event.y 
    322322            return True 
  • gaphas/trunk/gaphas/view.py

    r1230 r1234  
    290290        """ 
    291291        self._item_bounds[item] = bounds 
    292         if bounds: 
    293             bounds.x1 += 1 
    294             bounds.y1 += 1 
    295             # Also update the view's overall bounding box. 
    296             self._bounds += bounds 
    297292 
    298293    def get_item_bounding_box(self, item): 
     
    550545                pass # No bounds calculated yet? bummer. 
    551546            else: 
    552                 self.queue_draw_area(b[0]-1, b[1]-1, b[2]-b[0]+2, b[3]-b[1]+2) 
     547                self.queue_draw_area(b.x0 - 1, b.y0 - 1, b.width + 2, b.height + 2) 
    553548                if handles: 
    554549                    for h in item.handles():