code: def render_image1(self, rgbobj, dst_x, dst_y):
          
          self.logger.debug("redraw surface")
          if self.figure is None:
              return
          ## left, bottom, width, height = self.ax_img.bbox.bounds
          ## self._imgwin_wd, self._imgwin_ht = width, height
  
          # Grab the RGB array for the current image and place it in the
          # matplotlib figure axis
          data = self.getwin_array(order=self.rgb_order, dtype=np.uint8)
  
          dst_x = dst_y = 0
  
          # fill background color
          ## rect = self.figure.patch
          ## rect.set_facecolor(self.img_bg)
  
          # attempt 1: using a FigureImage (non-scaled)
          if self.mpimage is None:
              self.mpimage = self.figure.figimage(data, xo=dst_x, yo=dst_y,
                                                  origin='upper')
  
          else:
              # note: this is not a typo--these offsets have a different
              # attribute name than in the constructor ('ox' vs. 'xo')
              self.mpimage.ox = dst_x
              self.mpimage.oy = dst_y
              self.mpimage.set_data(data)
docs: Render the image represented by (rgbobj) at dst_x, dst_y
          in the pixel space.
  
          NOTE: this version uses a Figure.FigImage to render the image.