コード例 #1
0
    def __init__(self, brushinfo=None, painting_only=False):
        """Initialize

        :param brushinfo: the lib.brush.BrushInfo instance to use
        :param painting_only: only use painting layers

        If painting_only is true, then no tempdir will be created by the
        document when it is initialized or cleared.
        """
        object.__init__(self)
        if not brushinfo:
            brushinfo = brush.BrushInfo()
            brushinfo.load_defaults()
        self._layers = layer.RootLayerStack(self)
        self._layers.layer_content_changed += self._canvas_modified_cb
        self.brush = brush.Brush(brushinfo)
        self.brush.brushinfo.observers.append(self.brushsettings_changed_cb)
        self.stroke = None
        self.command_stack = command.CommandStack()
        self._painting_only = painting_only
        self._tempdir = None

        # Optional page area and resolution information
        self._frame = [0, 0, 0, 0]
        self._frame_enabled = False
        self._xres = None
        self._yres = None

        # Backgrounds for rendering
        blank_arr = numpy.zeros((N, N, 4), dtype='uint16')
        self._blank_bg_surface = tiledsurface.Background(blank_arr)

        self.clear()
コード例 #2
0
    def __init__(self, brushinfo=None):
        if not brushinfo:
            brushinfo = brush.BrushInfo()
            brushinfo.load_defaults()
        self.layers = []
        self.brush = brush.Brush(brushinfo)
        self.ani = animation.Animation(self)

        self.brush.brushinfo.observers.append(self.brushsettings_changed_cb)
        self.stroke = None
        self.canvas_observers = []  #: See `layer_modified_cb()`
        self.stroke_observers = []  #: See `split_stroke()`
        self.doc_observers = []  #: See `call_doc_observers()`
        self.frame_observers = []
        self.command_stack_observers = []
        self.symmetry_observers = []  #: See `set_symmetry_axis()`
        self.__symmetry_axis = None
        self.default_background = (255, 255, 255)
        self.clear(True)

        self._frame = [0, 0, 0, 0]
        self._frame_enabled = False

        # Used by move_frame() to accumulate values
        self._frame_dx = 0.0
        self._frame_dy = 0.0
コード例 #3
0
ファイル: main.py プロジェクト: 5nake/Python-2
 def __init__(self):
     self.screen = pygame.display.set_mode((800, 600))
     pygame.display.set_caption("Painter")
     self.clock = pygame.time.Clock()
     self.brush = brush.Brush(self.screen)
     self.menu = menu.Menu(self.screen)
     self.menu.set_brush(self.brush)
コード例 #4
0
    def __init__(self, brushinfo=None):
        if not brushinfo:
            brushinfo = brush.BrushInfo()
            brushinfo.load_defaults()
        self.brush = brush.Brush(brushinfo)
        self.stroke = None
        self.canvas_observers = []
        self.stroke_observers = [] # callback arguments: stroke, brush (brush is a temporary read-only convenience object)
        self.doc_observers = []
        self.frame_observers = []
        self.command_stack_observers = []
        self.clear(True)

        self._frame = [0, 0, 0, 0]
        self._frame_enabled = False
        # Used by move_frame() to accumulate values
        self._frame_dx = 0.0
        self._frame_dy = 0.0
コード例 #5
0
    def render(self, surface):
        assert self.finished

        # OPTIMIZE: check if parsing of settings is a performance bottleneck
        b = brush.Brush(brush.BrushInfo(self.brush_settings))

        states = numpy.fromstring(self.brush_state, dtype='float32')
        b.set_state(states)

        #b.set_print_inputs(1)
        #print 'replaying', len(self.stroke_data), 'bytes'

        version, data = self.stroke_data[0], self.stroke_data[1:]
        assert version == '2'
        data = numpy.fromstring(data, dtype='float64')
        data.shape = (len(data) / 6, 6)

        surface.begin_atomic()
        for dtime, x, y, pressure, xtilt, ytilt in data:
            b.stroke_to(surface, x, y, pressure, xtilt, ytilt, dtime)
        surface.end_atomic()
コード例 #6
0
 def load_effects(self, section):
     self.effects_brushes={}
     for brush in section:
         self.effects_brushes[brush['name']] = b.Brush(brush)
コード例 #7
0
 def load_ingredients(self, section):
     self.ingr_brushes={}
     for brush in section:
         self.ingr_brushes[brush['name']] = b.Brush(brush)