Deffered texture upding in viewer widget
This commit is contained in:
@ -19,6 +19,7 @@ class StageViewerWidget(BaseWidget):
|
|||||||
self.current = None
|
self.current = None
|
||||||
self.texture_tag = dpg.generate_uuid()
|
self.texture_tag = dpg.generate_uuid()
|
||||||
self.img = None
|
self.img = None
|
||||||
|
self.needs_update = False
|
||||||
|
|
||||||
# Subscribe only to stage list updates
|
# Subscribe only to stage list updates
|
||||||
self.manager.bus.subscribe(
|
self.manager.bus.subscribe(
|
||||||
@ -44,7 +45,8 @@ class StageViewerWidget(BaseWidget):
|
|||||||
|
|
||||||
def on_resize(self, app_data):
|
def on_resize(self, app_data):
|
||||||
if self.img is not None:
|
if self.img is not None:
|
||||||
self.update_texture(self.img)
|
self.needs_update = True
|
||||||
|
# self.update_texture(self.img)
|
||||||
|
|
||||||
def on_stage_list(self, stages):
|
def on_stage_list(self, stages):
|
||||||
# Update dropdown items
|
# Update dropdown items
|
||||||
@ -56,7 +58,8 @@ class StageViewerWidget(BaseWidget):
|
|||||||
if name == self.current:
|
if name == self.current:
|
||||||
if img is not None:
|
if img is not None:
|
||||||
self.img = img
|
self.img = img
|
||||||
self.update_texture(img)
|
self.needs_update = True
|
||||||
|
# self.update_texture(img)
|
||||||
|
|
||||||
def on_select(self, sender, selected_stage):
|
def on_select(self, sender, selected_stage):
|
||||||
# User-picked stage: fetch and render
|
# User-picked stage: fetch and render
|
||||||
@ -64,7 +67,8 @@ class StageViewerWidget(BaseWidget):
|
|||||||
img = self.manager.pipeline.get_stage(selected_stage)
|
img = self.manager.pipeline.get_stage(selected_stage)
|
||||||
if img is not None:
|
if img is not None:
|
||||||
self.img = img
|
self.img = img
|
||||||
self.update_texture(img)
|
self.needs_update = True
|
||||||
|
# self.update_texture(img)
|
||||||
|
|
||||||
def update_texture(self, img: np.ndarray):
|
def update_texture(self, img: np.ndarray):
|
||||||
# img is a NumPy array with shape (h, w, 4)
|
# img is a NumPy array with shape (h, w, 4)
|
||||||
@ -105,3 +109,8 @@ class StageViewerWidget(BaseWidget):
|
|||||||
width=disp_w,
|
width=disp_w,
|
||||||
height=disp_h
|
height=disp_h
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def update(self):
|
||||||
|
if self.needs_update:
|
||||||
|
self.needs_update = False
|
||||||
|
self.update_texture(self.img)
|
||||||
|
@ -1,62 +1,27 @@
|
|||||||
[Window][WindowOverViewport_11111111]
|
[Window][WindowOverViewport_11111111]
|
||||||
Pos=0,19
|
Pos=0,19
|
||||||
Size=810,581
|
Size=800,581
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
|
|
||||||
|
[Window][###22]
|
||||||
|
Pos=0,19
|
||||||
|
Size=299,581
|
||||||
|
Collapsed=0
|
||||||
|
DockId=0x00000001,0
|
||||||
|
|
||||||
|
[Window][###27]
|
||||||
|
Pos=301,19
|
||||||
|
Size=499,581
|
||||||
|
Collapsed=0
|
||||||
|
DockId=0x00000002,0
|
||||||
|
|
||||||
[Window][Debug##Default]
|
[Window][Debug##Default]
|
||||||
Pos=60,60
|
Pos=60,60
|
||||||
Size=400,400
|
Size=400,400
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
|
|
||||||
[Window][###28]
|
|
||||||
Pos=143,94
|
|
||||||
Size=400,400
|
|
||||||
Collapsed=0
|
|
||||||
|
|
||||||
[Window][###33]
|
|
||||||
Pos=-2,48
|
|
||||||
Size=300,150
|
|
||||||
Collapsed=0
|
|
||||||
|
|
||||||
[Window][###37]
|
|
||||||
Pos=580,56
|
|
||||||
Size=400,400
|
|
||||||
Collapsed=0
|
|
||||||
|
|
||||||
[Window][###22]
|
|
||||||
Pos=0,19
|
|
||||||
Size=278,581
|
|
||||||
Collapsed=0
|
|
||||||
DockId=0x00000005,0
|
|
||||||
|
|
||||||
[Window][###27]
|
|
||||||
Pos=280,19
|
|
||||||
Size=530,581
|
|
||||||
Collapsed=0
|
|
||||||
DockId=0x00000001,0
|
|
||||||
|
|
||||||
[Window][###31]
|
|
||||||
Pos=516,19
|
|
||||||
Size=444,381
|
|
||||||
Collapsed=0
|
|
||||||
DockId=0x00000002,0
|
|
||||||
|
|
||||||
[Window][###41]
|
|
||||||
Pos=185,19
|
|
||||||
Size=821,577
|
|
||||||
Collapsed=0
|
|
||||||
DockId=0x00000001,0
|
|
||||||
|
|
||||||
[Window][###38]
|
|
||||||
Pos=209,19
|
|
||||||
Size=751,574
|
|
||||||
Collapsed=0
|
|
||||||
DockId=0x00000001,0
|
|
||||||
|
|
||||||
[Docking][Data]
|
[Docking][Data]
|
||||||
DockSpace ID=0x7C6B3D9B Window=0xA87D555D Pos=0,19 Size=810,581 Split=X
|
DockSpace ID=0x7C6B3D9B Window=0xA87D555D Pos=0,19 Size=800,581 Split=X Selected=0x26E8F608
|
||||||
DockNode ID=0x00000005 Parent=0x7C6B3D9B SizeRef=278,381 Selected=0xEE087978
|
DockNode ID=0x00000001 Parent=0x7C6B3D9B SizeRef=299,581 Selected=0xEE087978
|
||||||
DockNode ID=0x00000006 Parent=0x7C6B3D9B SizeRef=680,381 Split=X
|
DockNode ID=0x00000002 Parent=0x7C6B3D9B SizeRef=499,581 CentralNode=1 Selected=0x26E8F608
|
||||||
DockNode ID=0x00000001 Parent=0x00000006 SizeRef=514,381 CentralNode=1 Selected=0x26E8F608
|
|
||||||
DockNode ID=0x00000002 Parent=0x00000006 SizeRef=444,381 Selected=0x62F4D00D
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user