def OnViewBackground(self, event): from PYME.LMVis.layers import image_layer img = self.dsviewer.image glCanvas = self.dsviewer.glCanvas glCanvas.SetCurrent( glCanvas.gl_context ) #make sure that the context we want to add the shaders to is current for name, i in zip(img.names, xrange(img.data.shape[3])): l_i = image_layer.ImageRenderLayer( {'im': img}, dsname='im', display_opts=self.dsviewer. do, #slave the display scaling to the image viewer scaling channel=i, context=glCanvas.gl_context) glCanvas.layers.insert( 0, l_i) #prepend layers so they are drawn before points # FIXME - this is gross - just add to glCanvas and have it issue a signal which can be caught higher up glCanvas.GetParent().GetParent().GetParent().layer_added.send(None) glCanvas.Refresh()
def _add_layers(self): from PYME.LMVis.layers import image_layer for name, i in zip(self._image.names, xrange(self._image.data.shape[3])): l_i = image_layer.ImageRenderLayer({'im': self._image}, dsname='im', display_opts=self._do, channel=i, context=self.gl_context) self.layers.append(l_i) self._sync_display_opts()