def render_image(self, rgbobj, dst_x, dst_y):
        """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.
        """
        self.logger.debug("redraw surface")
        if self.figure is None:
            return

        # Grab the RGB array for the current image and place it in the
        # Bokeh image
        data = self.getwin_array(order=self._rgb_order)
        ht, wd = data.shape[:2]

        # Bokeh expects a 32-bit uint array type
        view = data.view(dtype=numpy.uint32).reshape((ht, wd))

        dst_x = dst_y = 0

        # Create an Image_RGBA object in the plot
        if self.bkimage is None:
            self.bkimage = self.figure.image_rgba(image=[view],
                                                  x=[dst_x], y=[dst_y],
                                                  dw=[wd], dh=[ht])
            d_src = self.bkimage.data_source
            self._setup_handlers(d_src)

        else:
            # note: get the data source (a ColumnDataSource) and update
            # the values
            d_src = self.bkimage.data_source
            d_src.data["image"] = [view]
            d_src.data["x"] = [dst_x]
            d_src.data["y"] = [dst_y]
            d_src.data["dw"] = [wd]
            d_src.data["dh"] = [ht]


        # Draw a cross in the center of the window in debug mode
        if self.t_['show_pan_position']:
            # size of cross is 4% of max window dimensions
            size = int(max(ht, wd) * 0.04)

            ctr_x, ctr_y = self.get_center()
            self.figure.cross(x=[ctr_x], y=[ctr_y],
                              size=size, color='red', line_width=1)

        # render message if there is one currently
        if self.message:
            y = (ht // 3) * 2
            x = (wd // 2)
            self.figure.text(x=[x], y=[y], text=[self.message],
                             text_font_size='24', text_baseline='middle',
                             text_color='white',
                             text_align='center')

        if self._push_server:
            # force an update of the figure
            try:
                cursession().store_objects(d_src)
                # TODO: if and when to use this?
                #self.bkimage.data_source.push_notebook()
                #push_notebook()

            except Exception as e:
                self.logger.warning("Can't update bokeh plot: %s" % (str(e)))
dataset/ETHPy150Open ejeschke/ginga/ginga/web/bokehw/ImageViewBokeh.py/ImageViewBokeh.render_image/original