From 344993ed6ca7ec8eacaed80441e0c1ad320bc84b Mon Sep 17 00:00:00 2001
From: Paul McCarthy <pauld.mccarthy@gmail.com>
Date: Fri, 18 Mar 2016 12:24:36 +0000
Subject: [PATCH] Bugfix in vectoropts - refreshAuxImage was clobbering all
 settings with modulateImage. More robust management of volume vs vector
 shader in glvector_funcs.

---
 fsl/fsleyes/displaycontext/vectoropts.py | 2 +-
 fsl/fsleyes/gl/gl21/glvector_funcs.py    | 5 +++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/fsl/fsleyes/displaycontext/vectoropts.py b/fsl/fsleyes/displaycontext/vectoropts.py
index dcfb79f46..4326dbe28 100644
--- a/fsl/fsleyes/displaycontext/vectoropts.py
+++ b/fsl/fsleyes/displaycontext/vectoropts.py
@@ -181,7 +181,7 @@ class VectorOpts(volumeopts.Nifti1Opts):
         """
         
         prop     = self.getProp(imageName)
-        val      = self.modulateImage
+        val      = getattr(self, imageName)
         overlays = self.displayCtx.getOrderedOverlays()
 
         options = [None]
diff --git a/fsl/fsleyes/gl/gl21/glvector_funcs.py b/fsl/fsleyes/gl/gl21/glvector_funcs.py
index 3a95d81e7..2e4b59320 100644
--- a/fsl/fsleyes/gl/gl21/glvector_funcs.py
+++ b/fsl/fsleyes/gl/gl21/glvector_funcs.py
@@ -31,6 +31,8 @@ def compileShaders(self, vertShader, indexed=False):
     opts                = self.displayOpts
     useVolumeFragShader = opts.colourImage is not None
 
+    self.useVolumeFragShader = useVolumeFragShader
+
     if useVolumeFragShader: fragShader = 'glvolume'
     else:                   fragShader = 'glvector'
 
@@ -48,7 +50,6 @@ def updateFragmentShaderState(self, useSpline=False):
     changed             = False
     opts                = self.displayOpts
     shader              = self.shader
-    useVolumeFragShader = opts.colourImage is not None
 
     invClipValXform = self.clipTexture.invVoxValXform
     clippingRange   = opts.clippingRange
@@ -67,7 +68,7 @@ def updateFragmentShaderState(self, useSpline=False):
         clipLow  = -0.1
         clipHigh =  1.1
 
-    if useVolumeFragShader:
+    if self.useVolumeFragShader:
 
         voxValXform     = self.colourTexture.voxValXform
         invVoxValXform  = self.colourTexture.invVoxValXform
-- 
GitLab