def __init__(self, mipmap_level=0, mipmap_surfaces=None, looped=False, looped_size=(0, 0)): super(MyPaintSurface, self).__init__() # TODO: pass just what it needs access to, not all of self self._backend = mypaintlib.TiledSurface(self) self.tiledict = {} self.observers = [] # Used to implement repeating surfaces, like Background if looped_size[0] % N or looped_size[1] % N: raise ValueError('Looped size must be multiples of tile size') self.looped = looped self.looped_size = looped_size self.mipmap_level = mipmap_level if mipmap_level == 0: assert mipmap_surfaces is None self._mipmaps = self._create_mipmap_surfaces() else: assert mipmap_surfaces is not None self._mipmaps = mipmap_surfaces # Forwarding API self.set_symmetry_state = self._backend.set_symmetry_state self.begin_atomic = self._backend.begin_atomic self.get_color = self._backend.get_color self.get_alpha = self._backend.get_alpha self.draw_dab = self._backend.draw_dab
def __init__(self, mipmap_level=0, mipmap_surfaces=None, looped=False, looped_size=(0, 0)): object.__init__(self) # TODO: pass just what it needs access to, not all of self self._backend = mypaintlib.TiledSurface(self) self.tiledict = {} self.observers = [] # Used to implement repeating surfaces, like Background if looped_size[0] % N or looped_size[1] % N: raise ValueError, 'Looped size must be multiples of tile size' self.looped = looped self.looped_size = looped_size self.mipmap_level = mipmap_level self.mipmaps = mipmap_surfaces if mipmap_level == 0: mipmaps = [self] for level in range(1, MAX_MIPMAP_LEVEL + 1): s = MyPaintSurface(mipmap_level=level, mipmap_surfaces=mipmaps) mipmaps.append(s) self.mipmaps = mipmaps # for quick lookup for level, s in enumerate(mipmaps): try: s.parent = mipmaps[level - 1] except IndexError: s.parent = None try: s.mipmap = mipmaps[level + 1] except IndexError: s.mipmap = None # Forwarding API self.set_symmetry_state = self._backend.set_symmetry_state self.begin_atomic = self._backend.begin_atomic self.get_color = self._backend.get_color self.get_alpha = self._backend.get_alpha self.draw_dab = self._backend.draw_dab