docs: def upd_textures(self, *args):
          """Create one :class:`SwatchButton` for each texture"""
          if self.canvas is None:
              Clock.schedule_once(self.upd_textures, 0)
              return
          for name in list(self.swatches.keys()):
              if name not in self.atlas.textures:
                  self.remove_widget(self.swatches[name])
                  del self.swatches[name]
          for (name, tex) in self.atlas.textures.items():
              if name in self.swatches and self.swatches[name] != tex:
                  self.remove_widget(self.swatches[name])
              if name not in self.swatches or self.swatches[name] != tex:
                  self.swatches[name] = SwatchButton(
                      name=name,
                      tex=tex,
                      size_hint=(None, None),
                      size=self.swatch_size
                  )
                  self.add_widget(self.swatches[name])