mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
Use gobject.timeout_add to schedule redraw
This commit is contained in:
parent
3ee3716842
commit
16a69c7b08
@ -148,25 +148,20 @@ class OMVGtk:
|
|||||||
# read drawingarea
|
# read drawingarea
|
||||||
fb = openmv.fb_dump()
|
fb = openmv.fb_dump()
|
||||||
|
|
||||||
# reschedule callback
|
if fb:
|
||||||
gobject.idle_add(omvgtk.update_drawing);
|
# convert to RGB888 and blit
|
||||||
|
self.pixbuf = gtk.gdk.pixbuf_new_from_array(fb[2].reshape((fb[1], fb[0], 3)), gtk.gdk.COLORSPACE_RGB, 8)
|
||||||
|
self.pixbuf = self.pixbuf.scale_simple(fb[0]*SCALE, fb[1]*SCALE, gtk.gdk.INTERP_BILINEAR)
|
||||||
|
|
||||||
if fb == None:
|
self.drawingarea.realize();
|
||||||
return
|
cm = self.drawingarea.window.get_colormap()
|
||||||
|
gc = self.drawingarea.window.new_gc(foreground=cm.alloc_color('#FFFFFF',True,False))
|
||||||
# convert to RGB888 and blit
|
|
||||||
self.pixbuf = gtk.gdk.pixbuf_new_from_array(fb[2].reshape((fb[1], fb[0], 3)), gtk.gdk.COLORSPACE_RGB, 8)
|
|
||||||
self.pixbuf = self.pixbuf.scale_simple(fb[0]*SCALE, fb[1]*SCALE, gtk.gdk.INTERP_BILINEAR)
|
|
||||||
|
|
||||||
self.drawingarea.realize();
|
|
||||||
cm = self.drawingarea.window.get_colormap()
|
|
||||||
gc = self.drawingarea.window.new_gc(foreground=cm.alloc_color('#FFFFFF',True,False))
|
|
||||||
|
|
||||||
self.drawingarea.set_size_request(fb[0]*SCALE, fb[1]*SCALE)
|
|
||||||
self.drawingarea.window.draw_pixbuf(gc, self.pixbuf, 0, 0, 0, 0)
|
|
||||||
if self.selection_started or self.da_menu.flags() & gtk.MAPPED:
|
|
||||||
self.drawingarea.window.draw_rectangle(gc, False, self.x1, self.y1, self.x2-self.x1, self.y2-self.y1)
|
|
||||||
|
|
||||||
|
self.drawingarea.set_size_request(fb[0]*SCALE, fb[1]*SCALE)
|
||||||
|
self.drawingarea.window.draw_pixbuf(gc, self.pixbuf, 0, 0, 0, 0)
|
||||||
|
if self.selection_started or self.da_menu.flags() & gtk.MAPPED:
|
||||||
|
self.drawingarea.window.draw_rectangle(gc, False, self.x1, self.y1, self.x2-self.x1, self.y2-self.y1)
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
def on_ctrl_scale_value_changed(self, adjust):
|
def on_ctrl_scale_value_changed(self, adjust):
|
||||||
@ -249,5 +244,5 @@ class OMVGtk:
|
|||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
omvgtk = OMVGtk()
|
omvgtk = OMVGtk()
|
||||||
omvgtk.window.show_all()
|
omvgtk.window.show_all()
|
||||||
gobject.idle_add(omvgtk.update_drawing);
|
gobject.gobject.timeout_add(10, omvgtk.update_drawing);
|
||||||
gtk.main()
|
gtk.main()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user