Deffered texture upding in viewer widget
This commit is contained in:
@ -19,6 +19,7 @@ class StageViewerWidget(BaseWidget):
|
||||
self.current = None
|
||||
self.texture_tag = dpg.generate_uuid()
|
||||
self.img = None
|
||||
self.needs_update = False
|
||||
|
||||
# Subscribe only to stage list updates
|
||||
self.manager.bus.subscribe(
|
||||
@ -44,7 +45,8 @@ class StageViewerWidget(BaseWidget):
|
||||
|
||||
def on_resize(self, app_data):
|
||||
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):
|
||||
# Update dropdown items
|
||||
@ -56,7 +58,8 @@ class StageViewerWidget(BaseWidget):
|
||||
if name == self.current:
|
||||
if img is not None:
|
||||
self.img = img
|
||||
self.update_texture(img)
|
||||
self.needs_update = True
|
||||
# self.update_texture(img)
|
||||
|
||||
def on_select(self, sender, selected_stage):
|
||||
# User-picked stage: fetch and render
|
||||
@ -64,7 +67,8 @@ class StageViewerWidget(BaseWidget):
|
||||
img = self.manager.pipeline.get_stage(selected_stage)
|
||||
if img is not None:
|
||||
self.img = img
|
||||
self.update_texture(img)
|
||||
self.needs_update = True
|
||||
# self.update_texture(img)
|
||||
|
||||
def update_texture(self, img: np.ndarray):
|
||||
# img is a NumPy array with shape (h, w, 4)
|
||||
@ -105,3 +109,8 @@ class StageViewerWidget(BaseWidget):
|
||||
width=disp_w,
|
||||
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]
|
||||
Pos=0,19
|
||||
Size=810,581
|
||||
Size=800,581
|
||||
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]
|
||||
Pos=60,60
|
||||
Size=400,400
|
||||
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]
|
||||
DockSpace ID=0x7C6B3D9B Window=0xA87D555D Pos=0,19 Size=810,581 Split=X
|
||||
DockNode ID=0x00000005 Parent=0x7C6B3D9B SizeRef=278,381 Selected=0xEE087978
|
||||
DockNode ID=0x00000006 Parent=0x7C6B3D9B SizeRef=680,381 Split=X
|
||||
DockNode ID=0x00000001 Parent=0x00000006 SizeRef=514,381 CentralNode=1 Selected=0x26E8F608
|
||||
DockNode ID=0x00000002 Parent=0x00000006 SizeRef=444,381 Selected=0x62F4D00D
|
||||
DockSpace ID=0x7C6B3D9B Window=0xA87D555D Pos=0,19 Size=800,581 Split=X Selected=0x26E8F608
|
||||
DockNode ID=0x00000001 Parent=0x7C6B3D9B SizeRef=299,581 Selected=0xEE087978
|
||||
DockNode ID=0x00000002 Parent=0x7C6B3D9B SizeRef=499,581 CentralNode=1 Selected=0x26E8F608
|
||||
|
||||
|
Reference in New Issue
Block a user