summaryrefslogtreecommitdiff
path: root/patches
diff options
context:
space:
mode:
Diffstat (limited to 'patches')
-rw-r--r--patches/OpenCSG-1.1.0-Reset-Hack.patch82
-rw-r--r--patches/OpenCSG-1.2.0-Reset-Hack.patch89
2 files changed, 0 insertions, 171 deletions
diff --git a/patches/OpenCSG-1.1.0-Reset-Hack.patch b/patches/OpenCSG-1.1.0-Reset-Hack.patch
deleted file mode 100644
index 493a11b..0000000
--- a/patches/OpenCSG-1.1.0-Reset-Hack.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-diff --git a/include/opencsg.h b/include/opencsg.h
-index daecacc..ffde239 100644
---- a/include/opencsg.h
-+++ b/include/opencsg.h
-@@ -188,6 +188,9 @@ namespace OpenCSG {
- Algorithm = AlgorithmUnused,
- DepthComplexityAlgorithm = NoDepthComplexitySampling);
-
-+ // call this function whenever switching the OpenGL context
-+ void reset();
-+
- } // namespace OpenCSG
-
- #endif // __OpenCSG__opencsg_h__
-diff --git a/src/channelManager.h b/src/channelManager.h
-index ecd5a1d..0e1458a 100644
---- a/src/channelManager.h
-+++ b/src/channelManager.h
-@@ -79,9 +79,9 @@ namespace OpenCSG {
- /// moved into alpha, to allow alpha testing of the channel.
- static void setupTexEnv(Channel channel);
-
-- private:
--
- static OpenGL::OffscreenBuffer* gOffscreenBuffer;
-+
-+ private:
- static int gOffscreenType;
- static bool gInUse;
-
-diff --git a/src/offscreenBuffer.cpp b/src/offscreenBuffer.cpp
-index e02dd83..4f978d5 100644
---- a/src/offscreenBuffer.cpp
-+++ b/src/offscreenBuffer.cpp
-@@ -22,19 +22,41 @@
- #include "offscreenBuffer.h"
- #include "frameBufferObject.h"
- #include "pBufferTexture.h"
-+#include "channelManager.h"
-+
-+static bool reset_f = false;
-+static bool reset_p = false;
-
- namespace OpenCSG {
-
-+ void reset()
-+ {
-+ reset_f = true;
-+ reset_p = true;
-+ OpenCSG::ChannelManager::gOffscreenBuffer = NULL;
-+ }
-+
- namespace OpenGL {
-
- OffscreenBuffer* getOffscreenBuffer(bool fbo) {
-- static FrameBufferObject* f = new FrameBufferObject;
-- static PBufferTexture* p = new PBufferTexture;
--
-- if (fbo)
-- return f;
-- else
-+ static FrameBufferObject* f = NULL;
-+ static PBufferTexture* p = NULL;
-+
-+ if (fbo) {
-+ if (reset_f || f == NULL) {
-+ delete f;
-+ f = new FrameBufferObject;
-+ reset_f = false;
-+ }
-+ return f;
-+ } else {
-+ if (reset_p || p == NULL) {
-+ delete p;
-+ p = new PBufferTexture;
-+ reset_p = false;
-+ }
- return p;
-+ }
- }
-
- } // namespace OpenGL
diff --git a/patches/OpenCSG-1.2.0-Reset-Hack.patch b/patches/OpenCSG-1.2.0-Reset-Hack.patch
deleted file mode 100644
index 7254ce7..0000000
--- a/patches/OpenCSG-1.2.0-Reset-Hack.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-diff -ru OpenCSG-1.2.0/include/opencsg.h OpenCSG-1.2.0-reset/include/opencsg.h
---- OpenCSG-1.2.0/include/opencsg.h 2010-01-02 21:04:10.000000000 +0100
-+++ OpenCSG-1.2.0-reset/include/opencsg.h 2010-01-03 00:41:30.000000000 +0100
-@@ -229,6 +229,9 @@
- Algorithm,
- DepthComplexityAlgorithm = NoDepthComplexitySampling);
-
-+ // call this function whenever switching the OpenGL context
-+ void reset();
-+
- } // namespace OpenCSG
-
- #endif // __OpenCSG__opencsg_h__
-Only in OpenCSG-1.2.0-reset/include: opencsg.h~
-diff -ru OpenCSG-1.2.0/src/channelManager.h OpenCSG-1.2.0-reset/src/channelManager.h
---- OpenCSG-1.2.0/src/channelManager.h 2010-01-02 21:03:01.000000000 +0100
-+++ OpenCSG-1.2.0-reset/src/channelManager.h 2010-01-03 00:40:53.000000000 +0100
-@@ -79,9 +79,9 @@
- /// moved into alpha, to allow alpha testing of the channel.
- static void setupTexEnv(Channel channel);
-
-- private:
--
- static OpenGL::OffscreenBuffer* gOffscreenBuffer;
-+
-+ private:
- static int gOffscreenType;
- static bool gInUse;
-
-Only in OpenCSG-1.2.0-reset/src: channelManager.h~
-diff -ru OpenCSG-1.2.0/src/offscreenBuffer.cpp OpenCSG-1.2.0-reset/src/offscreenBuffer.cpp
---- OpenCSG-1.2.0/src/offscreenBuffer.cpp 2010-01-02 21:03:04.000000000 +0100
-+++ OpenCSG-1.2.0-reset/src/offscreenBuffer.cpp 2010-01-03 00:41:28.000000000 +0100
-@@ -24,9 +24,22 @@
- #include "frameBufferObjectExt.h"
- #include "pBufferTexture.h"
- #include <GL/glew.h>
-+#include "channelManager.h"
-+
-+static bool reset_fARB = false;
-+static bool reset_fEXT = false;
-+static bool reset_p = false;
-
- namespace OpenCSG {
-
-+ void reset()
-+ {
-+ reset_fARB = true;
-+ reset_fEXT = true;
-+ reset_p = true;
-+ OpenCSG::ChannelManager::gOffscreenBuffer = NULL;
-+ }
-+
- namespace OpenGL {
-
- OffscreenBuffer* getOffscreenBuffer(bool fbo) {
-@@ -36,19 +49,28 @@
-
- if (fbo) {
- if (GLEW_ARB_framebuffer_object) {
-- if (!fARB)
-+ if (reset_fARB || !fARB) {
-+ delete fARB;
- fARB = new FrameBufferObject;
-+ reset_fARB = false;
-+ }
- return fARB;
- }
- else {
-- if (!fEXT)
-+ if (reset_fEXT || !fEXT) {
-+ delete fEXT;
- fEXT = new FrameBufferObjectExt;
-+ reset_fEXT = false;
-+ }
- return fEXT;
- }
- }
- else {
-- if (!p)
-+ if (reset_p || !p) {
-+ delete p;
- p = new PBufferTexture;
-+ reset_p = false;
-+ }
- return p;
- }
- }
-Only in OpenCSG-1.2.0-reset/src: offscreenBuffer.cpp~
contact: Jan Huwald // Impressum