MCPcopy
hub / github.com/XingangPan/DragGAN / draw_frame

Method draw_frame

visualizer_drag.py:133–249  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

131 return seed, points, targets, mask, w
132
133 def draw_frame(self):
134 self.begin_frame()
135 self.args = dnnlib.EasyDict()
136 self.pane_w = self.font_size * 18
137 self.button_w = self.font_size * 5
138 self.label_w = round(self.font_size * 4.5)
139
140 # Detect mouse dragging in the result area.
141 if self._image_area is not None:
142 if not hasattr(self.drag_widget, 'width'):
143 self.drag_widget.init_mask(self.image_w, self.image_h)
144 clicked, down, img_x, img_y = imgui_utils.click_hidden_window(
145 '##image_area', self._image_area[0], self._image_area[1], self._image_area[2], self._image_area[3], self.image_w, self.image_h)
146 self.drag_widget.action(clicked, down, img_x, img_y)
147
148 # Begin control pane.
149 imgui.set_next_window_position(0, 0)
150 imgui.set_next_window_size(self.pane_w, self.content_height)
151 imgui.begin('##control_pane', closable=False, flags=(imgui.WINDOW_NO_TITLE_BAR | imgui.WINDOW_NO_RESIZE | imgui.WINDOW_NO_MOVE))
152
153 # Widgets.
154 expanded, _visible = imgui_utils.collapsing_header('Network & latent', default=True)
155 self.pickle_widget(expanded)
156 self.latent_widget(expanded)
157 expanded, _visible = imgui_utils.collapsing_header('Drag', default=True)
158 self.drag_widget(expanded)
159 expanded, _visible = imgui_utils.collapsing_header('Capture', default=True)
160 self.capture_widget(expanded)
161
162 # Render.
163 if self.is_skipping_frames():
164 pass
165 elif self._defer_rendering > 0:
166 self._defer_rendering -= 1
167 elif self.args.pkl is not None:
168 self._async_renderer.set_args(**self.args)
169 result = self._async_renderer.get_result()
170 if result is not None:
171 self.result = result
172 if 'stop' in self.result and self.result.stop:
173 self.drag_widget.stop_drag()
174 if 'points' in self.result:
175 self.drag_widget.set_points(self.result.points)
176 if 'init_net' in self.result:
177 if self.result.init_net:
178 self.drag_widget.reset_point()
179
180 # Display.
181 max_w = self.content_width - self.pane_w
182 max_h = self.content_height
183 pos = np.array([self.pane_w + max_w / 2, max_h / 2])
184 if 'image' in self.result:
185 # Reset mask after loading a new pickle or changing seed.
186 if self.check_update_mask(**self.args):
187 h, w, _ = self.result.image.shape
188 self.drag_widget.init_mask(w, h)
189
190 if self._tex_img is not self.result.image:

Callers 1

mainFunction · 0.95

Calls 15

check_update_maskMethod · 0.95
print_errorMethod · 0.95
_adjust_font_sizeMethod · 0.95
init_maskMethod · 0.80
actionMethod · 0.80
is_skipping_framesMethod · 0.80
set_argsMethod · 0.80
get_resultMethod · 0.80
stop_dragMethod · 0.80
set_pointsMethod · 0.80
reset_pointMethod · 0.80
is_compatibleMethod · 0.80

Tested by

no test coverage detected