This patch duplicates GLEditor::Render() with all the non-GL-state code
stripped out, so that when the editor is hidden, things are in the same
condition as when it's not. It's horrible, awful, wrong, don't guess I
mean otherwise-- but it gets my blur & blend to work right. For now. I'm
going to keep studying, as it's probably something simple like one too
many glPopMatrix(), not sure. Also I'm not sure if this breaks anything,
but at least the scratchpad effects still work...
I wish I'd stuck with this 8 years ago... ><
--Rob
diff -u src-orig/FluxusMain.cpp src/FluxusMain.cpp
--- src-orig/FluxusMain.cpp 2010-11-08 16:12:31.000000000 -0500
+++ src/FluxusMain.cpp 2010-11-08 15:52:04.000000000 -0500
@@ -278,7 +278,11 @@
void FluxusMain::Render()
{
if (m_ShowFileDialog) m_FileDialog->Render();
- else if (!m_HideScript) m_Editor[m_CurrentEditor]->Render();
+ else
+ {
+ if (!m_HideScript) m_Editor[m_CurrentEditor]->Render();
+ else m_Editor[m_CurrentEditor]->RenderBlank();
+ }
}
void FluxusMain::LoadScript(const wstring &Filename)
diff -u src-orig/GLEditor.cpp src/GLEditor.cpp
--- src-orig/GLEditor.cpp 2010-11-08 16:12:31.000000000 -0500
+++ src/GLEditor.cpp 2010-11-08 16:10:51.000000000 -0500
@@ -632,6 +632,40 @@
if (m_Delta>100.0f) m_Delta=0.000001f;
}
+void GLEditor::RenderBlank()
+{
+ glViewport(0,0,m_Width,m_Height);
+ glMatrixMode(GL_PROJECTION);
+
+ glPushMatrix();
+ glLoadIdentity();
+ glOrtho(-50,50,-37.5,37.5,0,10);
+
+ glMatrixMode(GL_MODELVIEW);
+ glDisable(GL_TEXTURE_2D);
+
+
+/**
+**/
+ glPushMatrix();
+ glDisable(GL_LIGHTING);
+ glDisable(GL_DEPTH_TEST);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glPolygonMode(GL_FRONT,GL_FILL);
+
+
+ glPopMatrix();
+
+ glPopMatrix();
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_DEPTH_TEST);
+
+ glMatrixMode(GL_PROJECTION);
+ glPopMatrix();
+ glMatrixMode(GL_MODELVIEW);
+}
+
void GLEditor::Handle(int button, int key, int special, int state, int x, int
y, int mod)
{
// build a two byte character - todo: what happens if it's 3 or 4 bytes?
diff -u src-orig/GLEditor.h src/GLEditor.h
--- src-orig/GLEditor.h 2010-11-08 16:12:31.000000000 -0500
+++ src/GLEditor.h 2010-11-08 15:52:20.000000000 -0500
@@ -48,6 +48,7 @@
virtual ~GLEditor();
virtual void Render();
+ virtual void RenderBlank();
virtual void Handle(int button, int key, int special, int state, int x,
int y, int mod);
void Reshape(unsigned int w,unsigned int h);
void BlowupCursor();