diff options
author | fieldOfView <aldo@fieldofview.com> | 2020-03-31 12:39:05 +0300 |
---|---|---|
committer | fieldOfView <aldo@fieldofview.com> | 2020-03-31 12:39:05 +0300 |
commit | b7898b5a97b674ccb4babd70975df26a1177d786 (patch) | |
tree | e9e4ac57efbcd0a60ceae40430559dd4e1dd46e9 /plugins/SolidView | |
parent | a2f9eac23babaa630a4a8a78e406d9dbeda27aa4 (diff) |
Change preference to only hide the xray message, not the visualization
Diffstat (limited to 'plugins/SolidView')
-rw-r--r-- | plugins/SolidView/SolidView.py | 87 |
1 files changed, 38 insertions, 49 deletions
diff --git a/plugins/SolidView/SolidView.py b/plugins/SolidView/SolidView.py index 0785ae91d6..a5739d19e7 100644 --- a/plugins/SolidView/SolidView.py +++ b/plugins/SolidView/SolidView.py @@ -133,55 +133,44 @@ class SolidView(View): self._support_mesh_shader.setUniformValue("u_vertical_stripes", True) self._support_mesh_shader.setUniformValue("u_width", 5.0) - if not Application.getInstance().getPreferences().getValue(self._show_xray_warning_preference): - self._xray_error_image = None - self._xray_shader = None - self._xray_composite_shader = None - if self._composite_pass and 'xray' in self._composite_pass.getLayerBindings(): - self._composite_pass.setLayerBindings(self._old_layer_bindings) - self._composite_pass.setCompositeShader(self._old_composite_shader) - self._old_layer_bindings = None - self._old_composite_shader = None - self._xray_warning_message.hide() - else: - if not self._xray_error_image: - self._xray_error_image = OpenGL.getInstance().createTexture() - texture_file = "xray_error.png" - try: - texture_image = QImage(Resources.getPath(Resources.Images, texture_file)).mirrored() - self._xray_error_image.setImage(texture_image) - self._xray_error_image_size = texture_image.size() - except FileNotFoundError: - Logger.log("w", "Unable to find xray error texture image [%s]", texture_file) - - if not self._xray_shader: - self._xray_shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "xray.shader")) - - if not self._xray_composite_shader: - self._xray_composite_shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "xray_composite.shader")) - theme = Application.getInstance().getTheme() - self._xray_composite_shader.setUniformValue("u_background_color", Color(*theme.getColor("viewport_background").getRgb())) - self._xray_composite_shader.setUniformValue("u_outline_color", Color(*theme.getColor("model_selection_outline").getRgb())) - self._xray_composite_shader.setTexture(3, self._xray_error_image) - - renderer = self.getRenderer() - if not self._composite_pass or not 'xray' in self._composite_pass.getLayerBindings(): - # Currently the RenderPass constructor requires a size > 0 - # This should be fixed in RenderPass's constructor. - self._xray_pass = XRayPass.XRayPass(1, 1) - - renderer.addRenderPass(self._xray_pass) - - if not self._composite_pass: - self._composite_pass = self.getRenderer().getRenderPass("composite") - - self._old_layer_bindings = self._composite_pass.getLayerBindings() - self._composite_pass.setLayerBindings(["default", "selection", "xray"]) - self._old_composite_shader = self._composite_pass.getCompositeShader() - self._composite_pass.setCompositeShader(self._xray_composite_shader) - - error_image_scale = [renderer.getViewportWidth() / self._xray_error_image_size.width(), renderer.getViewportHeight() / self._xray_error_image_size.height()] - self._xray_composite_shader.setUniformValue("u_xray_error_scale", error_image_scale) + if not self._xray_error_image: + self._xray_error_image = OpenGL.getInstance().createTexture() + texture_file = "xray_error.png" + try: + texture_image = QImage(Resources.getPath(Resources.Images, texture_file)).mirrored() + self._xray_error_image.setImage(texture_image) + self._xray_error_image_size = texture_image.size() + except FileNotFoundError: + Logger.log("w", "Unable to find xray error texture image [%s]", texture_file) + + if not self._xray_shader: + self._xray_shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "xray.shader")) + + if not self._xray_composite_shader: + self._xray_composite_shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "xray_composite.shader")) + theme = Application.getInstance().getTheme() + self._xray_composite_shader.setUniformValue("u_background_color", Color(*theme.getColor("viewport_background").getRgb())) + self._xray_composite_shader.setUniformValue("u_outline_color", Color(*theme.getColor("model_selection_outline").getRgb())) + self._xray_composite_shader.setTexture(3, self._xray_error_image) + + renderer = self.getRenderer() + if not self._composite_pass or not 'xray' in self._composite_pass.getLayerBindings(): + # Currently the RenderPass constructor requires a size > 0 + # This should be fixed in RenderPass's constructor. + self._xray_pass = XRayPass.XRayPass(1, 1) + + renderer.addRenderPass(self._xray_pass) + + if not self._composite_pass: + self._composite_pass = self.getRenderer().getRenderPass("composite") + + self._old_layer_bindings = self._composite_pass.getLayerBindings() + self._composite_pass.setLayerBindings(["default", "selection", "xray"]) + self._old_composite_shader = self._composite_pass.getCompositeShader() + self._composite_pass.setCompositeShader(self._xray_composite_shader) + + error_image_scale = [renderer.getViewportWidth() / self._xray_error_image_size.width(), renderer.getViewportHeight() / self._xray_error_image_size.height()] + self._xray_composite_shader.setUniformValue("u_xray_error_scale", error_image_scale) def beginRendering(self): scene = self.getController().getScene() |