Browse Source

Add option in settings for full-canvas repaints

When activated, fixes noise and lefovers in background canvas area

Signed-off-by: falkTX <falktx@falktx.com>
tags/v2.1-rc1
falkTX 6 years ago
parent
commit
1ae01df08d
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
4 changed files with 20 additions and 3 deletions
  1. +9
    -2
      resources/ui/carla_settings.ui
  2. +6
    -1
      source/frontend/carla_host.py
  3. +3
    -0
      source/frontend/carla_settings.py
  4. +2
    -0
      source/frontend/carla_shared.py

+ 9
- 2
resources/ui/carla_settings.ui View File

@@ -723,13 +723,20 @@
<item>
<widget class="QCheckBox" name="cb_canvas_render_aa">
<property name="text">
<string>Antialiasing</string>
<string>Anti-Aliasing</string>
</property>
<property name="tristate">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cb_canvas_full_repaints">
<property name="text">
<string>Full canvas repaints (slower, but prevents drawing issues)</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
@@ -2459,7 +2466,7 @@
<bool>false</bool>
</property>
<property name="text">
<string>High Quality Antiliasing (OpenGL only)</string>
<string>High Quality Anti-Aliasing (OpenGL only)</string>
</property>
</widget>
</item>


+ 6
- 1
source/frontend/carla_host.py View File

@@ -401,7 +401,6 @@ class HostWindow(QMainWindow):
if withCanvas:
self.scene = patchcanvas.PatchScene(self, self.ui.graphicsView)
self.ui.graphicsView.setScene(self.scene)
#self.ui.graphicsView.setViewportUpdateMode(QGraphicsView.FullViewportUpdate)

if self.fSavedSettings[CARLA_KEY_CANVAS_USE_OPENGL] and hasGL:
self.ui.glView = QGLWidget(self)
@@ -1378,6 +1377,11 @@ class HostWindow(QMainWindow):
else:
self.ui.graphicsView.setRenderHint(QPainter.Antialiasing, False)

if self.fSavedSettings[CARLA_KEY_CANVAS_FULL_REPAINTS]:
self.ui.graphicsView.setViewportUpdateMode(QGraphicsView.FullViewportUpdate)
else:
self.ui.graphicsView.setViewportUpdateMode(QGraphicsView.MinimalViewportUpdate)

def updateCanvasInitialPos(self):
x = self.ui.graphicsView.horizontalScrollBar().value() + self.width()/4
y = self.ui.graphicsView.verticalScrollBar().value() + self.height()/4
@@ -1708,6 +1712,7 @@ class HostWindow(QMainWindow):
CARLA_KEY_CANVAS_USE_OPENGL: settings.value(CARLA_KEY_CANVAS_USE_OPENGL, CARLA_DEFAULT_CANVAS_USE_OPENGL, type=bool),
CARLA_KEY_CANVAS_ANTIALIASING: settings.value(CARLA_KEY_CANVAS_ANTIALIASING, CARLA_DEFAULT_CANVAS_ANTIALIASING, type=int),
CARLA_KEY_CANVAS_HQ_ANTIALIASING: settings.value(CARLA_KEY_CANVAS_HQ_ANTIALIASING, CARLA_DEFAULT_CANVAS_HQ_ANTIALIASING, type=bool),
CARLA_KEY_CANVAS_FULL_REPAINTS: settings.value(CARLA_KEY_CANVAS_FULL_REPAINTS, CARLA_DEFAULT_CANVAS_FULL_REPAINTS, type=bool),
CARLA_KEY_CANVAS_INLINE_DISPLAYS: settings.value(CARLA_KEY_CANVAS_INLINE_DISPLAYS, CARLA_DEFAULT_CANVAS_INLINE_DISPLAYS, type=bool),
CARLA_KEY_CUSTOM_PAINTING: (settings.value(CARLA_KEY_MAIN_USE_PRO_THEME, True, type=bool) and
settings.value(CARLA_KEY_MAIN_PRO_THEME_COLOR, "Black", type=str).lower() == "black"),


+ 3
- 0
source/frontend/carla_settings.py View File

@@ -376,6 +376,7 @@ class CarlaSettingsW(QDialog):
self.ui.cb_canvas_use_opengl.setChecked(settings.value(CARLA_KEY_CANVAS_USE_OPENGL, CARLA_DEFAULT_CANVAS_USE_OPENGL, type=bool) and self.ui.cb_canvas_use_opengl.isEnabled())
self.ui.cb_canvas_render_aa.setCheckState(settings.value(CARLA_KEY_CANVAS_ANTIALIASING, CARLA_DEFAULT_CANVAS_ANTIALIASING, type=int))
self.ui.cb_canvas_render_hq_aa.setChecked(settings.value(CARLA_KEY_CANVAS_HQ_ANTIALIASING, CARLA_DEFAULT_CANVAS_HQ_ANTIALIASING, type=bool) and self.ui.cb_canvas_render_hq_aa.isEnabled())
self.ui.cb_canvas_full_repaints.setChecked(settings.value(CARLA_KEY_CANVAS_FULL_REPAINTS, CARLA_DEFAULT_CANVAS_FULL_REPAINTS, type=bool))
self.ui.cb_canvas_inline_displays.setChecked(settings.value(CARLA_KEY_CANVAS_INLINE_DISPLAYS, CARLA_DEFAULT_CANVAS_INLINE_DISPLAYS, type=bool))

# ----------------------------------------------------------------------------------------------------
@@ -600,6 +601,7 @@ class CarlaSettingsW(QDialog):
settings.setValue(CARLA_KEY_CANVAS_USE_OPENGL, self.ui.cb_canvas_use_opengl.isChecked())
settings.setValue(CARLA_KEY_CANVAS_HQ_ANTIALIASING, self.ui.cb_canvas_render_hq_aa.isChecked())
settings.setValue(CARLA_KEY_CANVAS_ANTIALIASING, self.ui.cb_canvas_render_aa.checkState()) # 0, 1, 2 match their enum variants
settings.setValue(CARLA_KEY_CANVAS_FULL_REPAINTS, self.ui.cb_canvas_full_repaints.isChecked())
settings.setValue(CARLA_KEY_CANVAS_INLINE_DISPLAYS, self.ui.cb_canvas_inline_displays.isChecked())

# ----------------------------------------------------------------------------------------------------
@@ -758,6 +760,7 @@ class CarlaSettingsW(QDialog):
self.ui.cb_canvas_auto_select.setChecked(CARLA_DEFAULT_CANVAS_AUTO_SELECT_ITEMS)
self.ui.cb_canvas_eyecandy.setChecked(CARLA_DEFAULT_CANVAS_EYE_CANDY)
self.ui.cb_canvas_render_aa.setCheckState(Qt.PartiallyChecked) # CARLA_DEFAULT_CANVAS_ANTIALIASING
self.ui.cb_canvas_full_repaints.setChecked(CARLA_DEFAULT_CANVAS_FULL_REPAINTS)

# ----------------------------------------------------------------------------------------------------
# Engine


+ 2
- 0
source/frontend/carla_shared.py View File

@@ -199,6 +199,7 @@ CARLA_KEY_CANVAS_USE_OPENGL = "Canvas/UseOpenGL" # bool
CARLA_KEY_CANVAS_ANTIALIASING = "Canvas/Antialiasing" # enum
CARLA_KEY_CANVAS_HQ_ANTIALIASING = "Canvas/HQAntialiasing" # bool
CARLA_KEY_CANVAS_INLINE_DISPLAYS = "Canvas/InlineDisplays" # bool
CARLA_KEY_CANVAS_FULL_REPAINTS = "Canvas/FullRepaints" # bool

CARLA_KEY_ENGINE_DRIVER_PREFIX = "Engine/Driver-"
CARLA_KEY_ENGINE_AUDIO_DRIVER = "Engine/AudioDriver" # str
@@ -272,6 +273,7 @@ CARLA_DEFAULT_CANVAS_USE_OPENGL = False
CARLA_DEFAULT_CANVAS_ANTIALIASING = CANVAS_ANTIALIASING_SMALL
CARLA_DEFAULT_CANVAS_HQ_ANTIALIASING = False
CARLA_DEFAULT_CANVAS_INLINE_DISPLAYS = False
CARLA_DEFAULT_CANVAS_FULL_REPAINTS = False

# Engine
CARLA_DEFAULT_FORCE_STEREO = False


Loading…
Cancel
Save