Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/xs
diff options
context:
space:
mode:
authorEnrico Turri <enricoturri@seznam.cz>2018-06-22 17:06:37 +0300
committerEnrico Turri <enricoturri@seznam.cz>2018-06-22 17:06:37 +0300
commit2a03b90d2b8d772309409382f84f8b23947640e4 (patch)
treef57d5c75ae4751e2d4ed4e0f3fd030cd68e15fd1 /xs
parente622401599f715b741ffc2ce4eeaa00fc1f222ec (diff)
Forced render of 3D scene when changing tab in plater's notebook
Diffstat (limited to 'xs')
-rw-r--r--xs/src/slic3r/GUI/3DScene.cpp5
-rw-r--r--xs/src/slic3r/GUI/3DScene.hpp1
-rw-r--r--xs/src/slic3r/GUI/GLCanvas3D.cpp5
-rw-r--r--xs/src/slic3r/GUI/GLCanvas3D.hpp1
-rw-r--r--xs/src/slic3r/GUI/GLCanvas3DManager.cpp7
-rw-r--r--xs/src/slic3r/GUI/GLCanvas3DManager.hpp1
-rw-r--r--xs/xsp/GUI_3DScene.xsp6
7 files changed, 26 insertions, 0 deletions
diff --git a/xs/src/slic3r/GUI/3DScene.cpp b/xs/src/slic3r/GUI/3DScene.cpp
index 1879b3082..a2a310f3c 100644
--- a/xs/src/slic3r/GUI/3DScene.cpp
+++ b/xs/src/slic3r/GUI/3DScene.cpp
@@ -1758,6 +1758,11 @@ void _3DScene::set_active(wxGLCanvas* canvas, bool active)
s_canvas_mgr.set_active(canvas, active);
}
+void _3DScene::set_as_dirty(wxGLCanvas* canvas)
+{
+ s_canvas_mgr.set_as_dirty(canvas);
+}
+
unsigned int _3DScene::get_volumes_count(wxGLCanvas* canvas)
{
return s_canvas_mgr.get_volumes_count(canvas);
diff --git a/xs/src/slic3r/GUI/3DScene.hpp b/xs/src/slic3r/GUI/3DScene.hpp
index c6a166397..c317dba24 100644
--- a/xs/src/slic3r/GUI/3DScene.hpp
+++ b/xs/src/slic3r/GUI/3DScene.hpp
@@ -517,6 +517,7 @@ public:
static bool init(wxGLCanvas* canvas);
static void set_active(wxGLCanvas* canvas, bool active);
+ static void set_as_dirty(wxGLCanvas* canvas);
static unsigned int get_volumes_count(wxGLCanvas* canvas);
static void reset_volumes(wxGLCanvas* canvas);
diff --git a/xs/src/slic3r/GUI/GLCanvas3D.cpp b/xs/src/slic3r/GUI/GLCanvas3D.cpp
index d3153bdb4..6f23af5a3 100644
--- a/xs/src/slic3r/GUI/GLCanvas3D.cpp
+++ b/xs/src/slic3r/GUI/GLCanvas3D.cpp
@@ -1536,6 +1536,11 @@ void GLCanvas3D::set_active(bool active)
m_active = active;
}
+void GLCanvas3D::set_as_dirty()
+{
+ m_dirty = true;
+}
+
unsigned int GLCanvas3D::get_volumes_count() const
{
return (unsigned int)m_volumes.volumes.size();
diff --git a/xs/src/slic3r/GUI/GLCanvas3D.hpp b/xs/src/slic3r/GUI/GLCanvas3D.hpp
index c503d1845..18011f497 100644
--- a/xs/src/slic3r/GUI/GLCanvas3D.hpp
+++ b/xs/src/slic3r/GUI/GLCanvas3D.hpp
@@ -452,6 +452,7 @@ public:
bool set_current();
void set_active(bool active);
+ void set_as_dirty();
unsigned int get_volumes_count() const;
void reset_volumes();
diff --git a/xs/src/slic3r/GUI/GLCanvas3DManager.cpp b/xs/src/slic3r/GUI/GLCanvas3DManager.cpp
index bdca73854..81efe4408 100644
--- a/xs/src/slic3r/GUI/GLCanvas3DManager.cpp
+++ b/xs/src/slic3r/GUI/GLCanvas3DManager.cpp
@@ -219,6 +219,13 @@ void GLCanvas3DManager::set_active(wxGLCanvas* canvas, bool active)
it->second->set_active(active);
}
+void GLCanvas3DManager::set_as_dirty(wxGLCanvas* canvas)
+{
+ CanvasesMap::iterator it = _get_canvas(canvas);
+ if (it != m_canvases.end())
+ it->second->set_as_dirty();
+}
+
unsigned int GLCanvas3DManager::get_volumes_count(wxGLCanvas* canvas) const
{
CanvasesMap::const_iterator it = _get_canvas(canvas);
diff --git a/xs/src/slic3r/GUI/GLCanvas3DManager.hpp b/xs/src/slic3r/GUI/GLCanvas3DManager.hpp
index 3092925d3..8726eb0b1 100644
--- a/xs/src/slic3r/GUI/GLCanvas3DManager.hpp
+++ b/xs/src/slic3r/GUI/GLCanvas3DManager.hpp
@@ -70,6 +70,7 @@ public:
bool init(wxGLCanvas* canvas);
void set_active(wxGLCanvas* canvas, bool active);
+ void set_as_dirty(wxGLCanvas* canvas);
unsigned int get_volumes_count(wxGLCanvas* canvas) const;
void reset_volumes(wxGLCanvas* canvas);
diff --git a/xs/xsp/GUI_3DScene.xsp b/xs/xsp/GUI_3DScene.xsp
index 29f35293b..d46c06120 100644
--- a/xs/xsp/GUI_3DScene.xsp
+++ b/xs/xsp/GUI_3DScene.xsp
@@ -197,6 +197,12 @@ set_active(canvas, active)
CODE:
_3DScene::set_active((wxGLCanvas*)wxPli_sv_2_object(aTHX_ canvas, "Wx::GLCanvas"), active);
+void
+set_as_dirty(canvas)
+ SV *canvas;
+ CODE:
+ _3DScene::set_as_dirty((wxGLCanvas*)wxPli_sv_2_object(aTHX_ canvas, "Wx::GLCanvas"));
+
unsigned int
get_volumes_count(canvas)
SV *canvas;