summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnathan Corgan <johnathan@corganlabs.com>2013-06-22 09:54:30 -0700
committerJohnathan Corgan <johnathan@corganlabs.com>2013-06-22 09:54:30 -0700
commit48e5bff6fe99b5d4654fcb03a6f8da8a206eb7d7 (patch)
tree7aa3dd13ca88ef1aa22729a879107c8d3c3638db
parent5b507f3831afcffc1ee147fe22c31af95b9a7596 (diff)
parent23737315ad6f2670bd5d54a6c07c36c9124bd372 (diff)
Merge branch 'fix-wxgui-gl' into maint
-rw-r--r--gr-wxgui/src/python/const_window.py1
-rw-r--r--gr-wxgui/src/python/fft_window.py1
-rw-r--r--gr-wxgui/src/python/histo_window.py1
-rw-r--r--gr-wxgui/src/python/plotter/plotter_base.py11
-rw-r--r--gr-wxgui/src/python/scope_window.py1
-rw-r--r--gr-wxgui/src/python/waterfall_window.py1
6 files changed, 13 insertions, 3 deletions
diff --git a/gr-wxgui/src/python/const_window.py b/gr-wxgui/src/python/const_window.py
index 2ad89b2a38..a7ff2e5f3f 100644
--- a/gr-wxgui/src/python/const_window.py
+++ b/gr-wxgui/src/python/const_window.py
@@ -150,6 +150,7 @@ class const_window(wx.Panel, pubsub.pubsub):
wx.Panel.__init__(self, parent, style=wx.SIMPLE_BORDER)
self.plotter = plotter.channel_plotter(self)
self.plotter.SetSize(wx.Size(*size))
+ self.plotter.SetSizeHints(*size)
self.plotter.set_title(title)
self.plotter.set_x_label('Inphase')
self.plotter.set_y_label('Quadrature')
diff --git a/gr-wxgui/src/python/fft_window.py b/gr-wxgui/src/python/fft_window.py
index fac83a4a34..cf21b893a8 100644
--- a/gr-wxgui/src/python/fft_window.py
+++ b/gr-wxgui/src/python/fft_window.py
@@ -274,6 +274,7 @@ class fft_window(wx.Panel, pubsub.pubsub):
wx.Panel.__init__(self, parent, style=wx.SIMPLE_BORDER)
self.plotter = plotter.channel_plotter(self)
self.plotter.SetSize(wx.Size(*size))
+ self.plotter.SetSizeHints(*size)
self.plotter.set_title(title)
self.plotter.enable_legend(True)
self.plotter.enable_point_label(True)
diff --git a/gr-wxgui/src/python/histo_window.py b/gr-wxgui/src/python/histo_window.py
index a1b520f9c1..e87e978252 100644
--- a/gr-wxgui/src/python/histo_window.py
+++ b/gr-wxgui/src/python/histo_window.py
@@ -117,6 +117,7 @@ class histo_window(wx.Panel, pubsub.pubsub):
wx.Panel.__init__(self, parent, style=wx.SIMPLE_BORDER)
self.plotter = plotter.bar_plotter(self)
self.plotter.SetSize(wx.Size(*size))
+ self.plotter.SetSizeHints(*size)
self.plotter.set_title(title)
self.plotter.enable_point_label(True)
self.plotter.enable_grid_lines(False)
diff --git a/gr-wxgui/src/python/plotter/plotter_base.py b/gr-wxgui/src/python/plotter/plotter_base.py
index b8a2ce709e..40c157347a 100644
--- a/gr-wxgui/src/python/plotter/plotter_base.py
+++ b/gr-wxgui/src/python/plotter/plotter_base.py
@@ -87,7 +87,8 @@ class plotter_base(wx.glcanvas.GLCanvas, common.mutex):
@param parent the parent widgit
"""
attribList = (wx.glcanvas.WX_GL_DOUBLEBUFFER, wx.glcanvas.WX_GL_RGBA)
- wx.glcanvas.GLCanvas.__init__(self, parent, attribList=attribList);
+ wx.glcanvas.GLCanvas.__init__(self, parent, wx.ID_ANY, attribList=attribList); # Specifically use the CTOR which does NOT create an implicit GL context
+ self._gl_ctx = wx.glcanvas.GLContext(self) # Create the explicit GL context
self.use_persistence=False
self.persist_alpha=2.0/15
self.clear_accum=True
@@ -151,10 +152,14 @@ class plotter_base(wx.glcanvas.GLCanvas, common.mutex):
Resize the view port if the width or height changed.
Redraw the screen, calling the draw functions.
"""
+ if not self.IsShownOnScreen(): # Cannot realise a GL context on OS X if window is not yet shown
+ return
# create device context (needed on Windows, noop on X)
- dc = wx.PaintDC(self)
+ dc = None
+ if event.GetEventObject(): # Only create DC if paint triggered by WM message (for OS X)
+ dc = wx.PaintDC(self)
self.lock()
- self.SetCurrent()
+ self.SetCurrent(self._gl_ctx) # Real the explicit GL context
# check if gl was initialized
if not self._gl_init_flag:
diff --git a/gr-wxgui/src/python/scope_window.py b/gr-wxgui/src/python/scope_window.py
index dc90a60459..fa79a986e9 100644
--- a/gr-wxgui/src/python/scope_window.py
+++ b/gr-wxgui/src/python/scope_window.py
@@ -492,6 +492,7 @@ class scope_window(wx.Panel, pubsub.pubsub):
wx.Panel.__init__(self, parent, style=wx.SIMPLE_BORDER)
self.plotter = plotter.channel_plotter(self)
self.plotter.SetSize(wx.Size(*size))
+ self.plotter.SetSizeHints(*size)
self.plotter.set_title(title)
self.plotter.enable_legend(True)
self.plotter.enable_point_label(True)
diff --git a/gr-wxgui/src/python/waterfall_window.py b/gr-wxgui/src/python/waterfall_window.py
index cd60104d7a..a190899c3a 100644
--- a/gr-wxgui/src/python/waterfall_window.py
+++ b/gr-wxgui/src/python/waterfall_window.py
@@ -207,6 +207,7 @@ class waterfall_window(wx.Panel, pubsub.pubsub):
wx.Panel.__init__(self, parent, style=wx.SIMPLE_BORDER)
self.plotter = plotter.waterfall_plotter(self)
self.plotter.SetSize(wx.Size(*size))
+ self.plotter.SetSizeHints(*size)
self.plotter.set_title(title)
self.plotter.enable_point_label(True)
self.plotter.enable_grid_lines(False)