From 65208e739bbc8ee7f08413c313b624a447fbba98 Mon Sep 17 00:00:00 2001 From: Paolo Cignoni cignoni Date: Thu, 27 Sep 2007 16:28:43 +0000 Subject: [PATCH] Fix around multiple application of single pass rfx shaders. --- src/meshlabplugins/render_rm/glstateholder.h | 1 + src/meshlabplugins/render_rm/rmmeshrender.cpp | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/meshlabplugins/render_rm/glstateholder.h b/src/meshlabplugins/render_rm/glstateholder.h index cf55f46f1..5bd977ec3 100644 --- a/src/meshlabplugins/render_rm/glstateholder.h +++ b/src/meshlabplugins/render_rm/glstateholder.h @@ -125,6 +125,7 @@ class GLStateHolder : public QObject void VarDump(); int passNumber() { return passes.size(); } + inline void reset(){ needUpdateInGLMemory = true; }; void usePassProgram( int i ) { passes[i] -> useProgram(); } }; diff --git a/src/meshlabplugins/render_rm/rmmeshrender.cpp b/src/meshlabplugins/render_rm/rmmeshrender.cpp index 4a9633f31..9fe131f1f 100644 --- a/src/meshlabplugins/render_rm/rmmeshrender.cpp +++ b/src/meshlabplugins/render_rm/rmmeshrender.cpp @@ -73,6 +73,7 @@ void RmMeshShaderRenderPlugin::Init(QAction *a, MeshModel &m, RenderMode &rm, QG if (GLEW_OK == err) { if (GLEW_ARB_vertex_program && GLEW_ARB_fragment_program) { + holder.reset(); dialog = new RmShaderDialog(&holder, parser, gla, rm); dialog->move(10,100); dialog->show(); @@ -90,7 +91,7 @@ void RmMeshShaderRenderPlugin::Render(QAction *a, MeshModel &m, RenderMode &rm, if( holder.isSupported() ) { qDebug() << "Render: " << a; - //holder.usePassProgram(0); + holder.usePassProgram(0); }