(self)
| 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: |
no test coverage detected