Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package opencsg for openSUSE:Factory checked in at 2026-04-21 12:44:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/opencsg (Old) and /work/SRC/openSUSE:Factory/.opencsg.new.11940 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "opencsg" Tue Apr 21 12:44:27 2026 rev:9 rq:1348358 version:1.8.2 Changes: -------- --- /work/SRC/openSUSE:Factory/opencsg/opencsg.changes 2025-05-26 18:39:38.105751069 +0200 +++ /work/SRC/openSUSE:Factory/.opencsg.new.11940/opencsg.changes 2026-04-21 12:47:10.000263031 +0200 @@ -1,0 +2,7 @@ +Mon Apr 20 17:26:34 UTC 2026 - Torsten Gruner <[email protected]> + +- Update to version 1.8.2: + * This release fixes a z-fighting bug in the SCS algorithm, that was + known for a long time, under Linux with Nouveau graphics driver. + +------------------------------------------------------------------- Old: ---- OpenCSG-1.8.1.tar.gz New: ---- OpenCSG-1.8.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ opencsg.spec ++++++ --- /var/tmp/diff_new_pack.pbU6c2/_old 2026-04-21 12:47:10.692291737 +0200 +++ /var/tmp/diff_new_pack.pbU6c2/_new 2026-04-21 12:47:10.696291903 +0200 @@ -1,7 +1,7 @@ # # spec file for package opencsg # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: opencsg -Version: 1.8.1 +Version: 1.8.2 Release: 0 Summary: Constructive Solid Geometry rendering library License: GPL-2.0-or-later ++++++ OpenCSG-1.8.1.tar.gz -> OpenCSG-1.8.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/CMakeLists.txt new/OpenCSG-1.8.2/CMakeLists.txt --- old/OpenCSG-1.8.1/CMakeLists.txt 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/CMakeLists.txt 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.11) -project(OpenCSG LANGUAGES CXX VERSION 1.8.1) +project(OpenCSG LANGUAGES CXX VERSION 1.8.2) option(BUILD_EXAMPLE "Build example program" ON) option(BUILD_SHARED_LIBS "Build using shared libraries" ON) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/changelog.txt new/OpenCSG-1.8.2/changelog.txt --- old/OpenCSG-1.8.1/changelog.txt 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/changelog.txt 2026-02-08 18:41:29.000000000 +0100 @@ -1,10 +1,20 @@ +08.02.2026: + Release 1.8.2 + +03.01.2026 + Fixed: For SCS, when merging the color channel in the ARB shader path, + probe for Intel hardware/drivers and use the ARB vertex program + for vertex setup then. Otherwise, setup the vertices with the fixed + function code path again. This change fixes the z-artifacts + that happen with the Nouveau drivers on Linux. + 09.03.2025: Release 1.8.1 08.03.2025: Reverted: For SCS, when merging the color channel, prefer the ARB shader program code path again. The fixed-function implementation fixed the - z-artifacts, but traded in a different kind of rendering error + z-artifacts, but traded in a different kind of rendering error with software OpenGL rendering on MacOS X. 06.03.2025: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/doc/index.html new/OpenCSG-1.8.2/doc/index.html --- old/OpenCSG-1.8.1/doc/index.html 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/doc/index.html 2026-02-07 18:49:03.000000000 +0100 @@ -41,7 +41,7 @@ <hr> -<h3> <a href="news.html">Latest release: OpenCSG 1.8.1 (09-Mar-2025)</a></h3> +<h3> <a href="news.html">Latest release: OpenCSG 1.8.2 (08-Feb-2026)</a></h3> <hr> @@ -51,7 +51,7 @@ OpenCSG is a library that does image-based CSG rendering using OpenGL. It is written in C++ and supports most modern graphics hardware using Microsoft Windows or the Linux operating system. -The current version is <a href="https://www.opencsg.org/OpenCSG-1.8.1.tar.gz">OpenCSG-1.8.1</a>. +The current version is <a href="https://www.opencsg.org/OpenCSG-1.8.2.tar.gz">OpenCSG-1.8.2</a>. </p> <p> @@ -442,7 +442,7 @@ <h3> <a name="download">Download</a> </h3> <p> -Download <a href="https://www.opencsg.org/OpenCSG-1.8.1.tar.gz">OpenCSG-1.8.1.tar.gz</a>. +Download <a href="https://www.opencsg.org/OpenCSG-1.8.2.tar.gz">OpenCSG-1.8.2.tar.gz</a>. The archive has no dependencies that must be provided externally. The only library that OpenCSG depends on, and which it comes with, is <a href="https://gen.glad.sh">Glad</a>. Glad is used to load OpenGL function pointers and for OpenGL extension checking. @@ -454,6 +454,7 @@ <p> Older versions are still available for download:<br> + <a href="https://www.opencsg.org/OpenCSG-1.8.1.tar.gz">OpenCSG-1.8.1</a> <br> <a href="https://www.opencsg.org/OpenCSG-1.8.0.tar.gz">OpenCSG-1.8.0</a> <br> <a href="https://www.opencsg.org/OpenCSG-1.7.0.tar.gz">OpenCSG-1.7.0</a> <br> <a href="https://www.opencsg.org/OpenCSG-1.6.0.tar.gz">OpenCSG-1.6.0</a> <br> @@ -633,6 +634,10 @@ <a href="http://www.xmission.com/~nate/glut.html">GLUT for Windows</a>. Dev-C++ users can install the <a href="https://www.transmissionzero.co.uk/software/freeglut-devel">precompiled GLUT for Mingw32</a>. </p> </li> + <li> + <p><b>Is there any relationship between this OpenCSG and the AI company OpenCSG?</b> </p> + <p>No. The CSG rendering library OpenCSG is an independent project and has no affiliation with the Beijing-based AI company of the same name. </p> + </li> </ol> <center><a href="https://www.opencsg.org/img/columns.jpg"><img src="img/columns.gif" border="0" alt="CSG columns"></a></center> @@ -668,9 +673,9 @@ <hr> <center><p> -© 2002-2025, Florian Kirsch, e-mail: <b>mail at opencsg dot org</b>, <br> +© 2002-2026, Florian Kirsch, e-mail: <b>mail at opencsg dot org</b>, <br> 2002-2005 Hasso-Plattner-Institute Potsdam.<br> -Last change: 09-Mar-2025 +Last change: 08-Feb-2026 </p></center> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/doc/news.html new/OpenCSG-1.8.2/doc/news.html --- old/OpenCSG-1.8.1/doc/news.html 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/doc/news.html 2026-02-07 18:49:03.000000000 +0100 @@ -29,6 +29,14 @@ <hr> +<h3>08-Feb-2026: OpenCSG 1.8.2 release with rendering fixes for Linux with Nouveau driver</h3> + +<p> +The new release fixes a z-fighting bug in the SCS algorithm, +that was known for a long time, under Linux with Nouveau graphics driver. +You can get the new release <a href="https://www.opencsg.org/OpenCSG-1.8.2.tar.gz">here</a> +</p> + <h3>09-Mar-2025: OpenCSG 1.8.1 bugfix release</h3> <p> @@ -425,9 +433,9 @@ <hr> <center><p> -© 2002-2025, Florian Kirsch, e-mail: <b>mail at opencsg dot org</b>, <br> +© 2002-2026, Florian Kirsch, e-mail: <b>mail at opencsg dot org</b>, <br> 2002-2005 Hasso-Plattner-Institute Potsdam.<br> -Last change: 09-Mar-2025 +Last change: 08-Feb-2026 </p></center> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/doc/publications.html new/OpenCSG-1.8.2/doc/publications.html --- old/OpenCSG-1.8.1/doc/publications.html 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/doc/publications.html 2026-02-07 18:49:03.000000000 +0100 @@ -164,8 +164,8 @@ <hr> <center><p> -© 2006-2025, Florian Kirsch, e-mail: <b>mail at opencsg dot org</b>, <br> -Last change: 06-Mar-2025 +© 2006-2026, Florian Kirsch, e-mail: <b>mail at opencsg dot org</b>, <br> +Last change: 03-Jan-2026 </p></center> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/example/CMakeLists.txt new/OpenCSG-1.8.2/example/CMakeLists.txt --- old/OpenCSG-1.8.1/example/CMakeLists.txt 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/example/CMakeLists.txt 2026-02-07 18:49:03.000000000 +0100 @@ -18,5 +18,6 @@ ) install(TARGETS opencsgexample + BUNDLE DESTINATION ${CMAKE_INSTALL_PREFIX}/Applications RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/example/displaylistPrimitive.cpp new/OpenCSG-1.8.2/example/displaylistPrimitive.cpp --- old/OpenCSG-1.8.1/example/displaylistPrimitive.cpp 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/example/displaylistPrimitive.cpp 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, +// Copyright (C) 2002-2026, Florian Kirsch, // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/example/displaylistPrimitive.h new/OpenCSG-1.8.2/example/displaylistPrimitive.h --- old/OpenCSG-1.8.1/example/displaylistPrimitive.h 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/example/displaylistPrimitive.h 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, +// Copyright (C) 2002-2026, Florian Kirsch, // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/example/includeGl.h new/OpenCSG-1.8.2/example/includeGl.h --- old/OpenCSG-1.8.1/example/includeGl.h 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/example/includeGl.h 2026-02-07 18:49:03.000000000 +0100 @@ -1,6 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, -// Hasso-Plattner-Institute at the University of Potsdam, Germany +// Copyright (C) 2023-2026, Florian Kirsch // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/example/main.cpp new/OpenCSG-1.8.2/example/main.cpp --- old/OpenCSG-1.8.1/example/main.cpp 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/example/main.cpp 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, +// Copyright (C) 2002-2026, Florian Kirsch, // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify @@ -59,6 +59,7 @@ bool benchmode = false; bool benchSettingFrameOne = false; +bool skipCubeRack = false; int benchShape = BENCH_START; int benchAlgorithm = GF_STANDARD; int benchPerfOption = CAM_OUTSIDE_DEFAULT; @@ -622,6 +623,8 @@ benchAlgorithm = GF_STANDARD; ++benchShape; + if (skipCubeRack && (benchShape == CSG_CUBERACK)) + ++benchShape; if (benchShape <= CSG_CONCAVE) { printNewBenchLine(); @@ -674,6 +677,9 @@ { float correctedFps = static_cast<float>(numFramesRendered) * 1000.0f / static_cast<float>(msec - ancient); fprintf(stdout, "% 11.2f", correctedFps); + // On a configuration that already chokes on the smaller models, do not bench the cube rack (it is far slower) + if (correctedFps < 60.0f) + skipCubeRack = true; nextBenchSetting(); rot = 0.0f; @@ -706,6 +712,7 @@ spin = !spin; break; case 'b': + skipCubeRack = false; benchmode = true; benchShape = BENCH_START; nextBenchSetting(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/include/opencsg.h new/OpenCSG-1.8.2/include/opencsg.h --- old/OpenCSG-1.8.1/include/opencsg.h 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/include/opencsg.h 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, +// Copyright (C) 2002-2026, Florian Kirsch, // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify @@ -30,8 +30,8 @@ /// OpenCSG version. The version number has been introduced with version 1.3.2. /// Format is Major|Minor|Patch, each of them being 4-bit wide. -#define OPENCSG_VERSION 0x0181 -#define OPENCSG_VERSION_STRING "OpenCSG 1.8.1" +#define OPENCSG_VERSION 0x0182 +#define OPENCSG_VERSION_STRING "OpenCSG 1.8.2" namespace OpenCSG { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/area.cpp new/OpenCSG-1.8.2/src/area.cpp --- old/OpenCSG-1.8.1/src/area.cpp 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/area.cpp 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, +// Copyright (C) 2004-2026, Florian Kirsch, // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/area.h new/OpenCSG-1.8.2/src/area.h --- old/OpenCSG-1.8.1/src/area.h 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/area.h 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, +// Copyright (C) 2004-2026, Florian Kirsch, // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/batch.cpp new/OpenCSG-1.8.2/src/batch.cpp --- old/OpenCSG-1.8.1/src/batch.cpp 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/batch.cpp 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch +// Copyright (C) 2002-2026, Florian Kirsch // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/batch.h new/OpenCSG-1.8.2/src/batch.h --- old/OpenCSG-1.8.1/src/batch.h 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/batch.h 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, +// Copyright (C) 2002-2026, Florian Kirsch, // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/channelManager.cpp new/OpenCSG-1.8.2/src/channelManager.cpp --- old/OpenCSG-1.8.1/src/channelManager.cpp 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/channelManager.cpp 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, +// Copyright (C) 2002-2026, Florian Kirsch, // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify @@ -27,6 +27,8 @@ #include "offscreenBuffer.h" #include "openglHelper.h" #include "settings.h" + +#include <algorithm> #include <cassert> namespace OpenCSG { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/channelManager.h new/OpenCSG-1.8.2/src/channelManager.h --- old/OpenCSG-1.8.1/src/channelManager.h 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/channelManager.h 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, +// Copyright (C) 2002-2026, Florian Kirsch, // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify @@ -129,6 +129,9 @@ void clear(); private: + ChannelManagerForBatches(const ChannelManagerForBatches&); + ChannelManagerForBatches& operator=(const ChannelManagerForBatches&); + std::vector<std::pair<std::vector<Primitive*>, int> > mPrimitives; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/context.cpp new/OpenCSG-1.8.2/src/context.cpp --- old/OpenCSG-1.8.1/src/context.cpp 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/context.cpp 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2006-2025, Florian Kirsch +// Copyright (C) 2010-2026, Florian Kirsch // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -91,7 +91,7 @@ return 0; } - GLuint getARBProgram(GLenum target, const char* prog, int len) + static GLuint getARBProgram(GLenum target, const char* prog, int len) { int context = getContext(); ContextData& contextData = gContextDataMap[context]; @@ -125,7 +125,7 @@ return getARBProgram(GL_FRAGMENT_PROGRAM_ARB, prog, len); } - GLuint getGLSLShader(GLenum target, const char* prog) + static GLuint getGLSLShader(GLenum target, const char* prog) { GLuint id = glCreateShader(target); glShaderSource(id, 1, &prog, 0); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/context.h new/OpenCSG-1.8.2/src/context.h --- old/OpenCSG-1.8.1/src/context.h 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/context.h 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2006-2025, Florian Kirsch +// Copyright (C) 2010-2026, Florian Kirsch // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/frameBufferObject.cpp new/OpenCSG-1.8.2/src/frameBufferObject.cpp --- old/OpenCSG-1.8.1/src/frameBufferObject.cpp 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/frameBufferObject.cpp 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2006-2025, Florian Kirsch +// Copyright (C) 2006-2026, Florian Kirsch // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/frameBufferObject.h new/OpenCSG-1.8.2/src/frameBufferObject.h --- old/OpenCSG-1.8.1/src/frameBufferObject.h 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/frameBufferObject.h 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2006-2025, Florian Kirsch +// Copyright (C) 2006-2026, Florian Kirsch // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -48,8 +48,6 @@ /// checks whether Initialize has been called before or not virtual bool IsInitialized() const { return initialized; } - /// Removes the frame buffer object OpenGL resources. - virtual bool Reset(); /// Change the size of the frame buffer object. virtual bool Resize(Dimensions dims); @@ -73,7 +71,10 @@ /// Returns the width of the frame buffer object. virtual int GetHeight() const { return dimensions.height; } - protected: + private: + FrameBufferObject(const FrameBufferObject&); + FrameBufferObject& operator=(const FrameBufferObject&); + // Width and height of the frame buffer object Dimensions dimensions; @@ -87,9 +88,8 @@ bool initialized; - private: - FrameBufferObject(const FrameBufferObject&); - FrameBufferObject& operator=(const FrameBufferObject&); + /// Removes the frame buffer object OpenGL resources. + bool Reset(); }; } // namespace OpenGL diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/frameBufferObjectExt.cpp new/OpenCSG-1.8.2/src/frameBufferObjectExt.cpp --- old/OpenCSG-1.8.1/src/frameBufferObjectExt.cpp 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/frameBufferObjectExt.cpp 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2010-2025, Florian Kirsch +// Copyright (C) 2010-2026, Florian Kirsch // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/frameBufferObjectExt.h new/OpenCSG-1.8.2/src/frameBufferObjectExt.h --- old/OpenCSG-1.8.1/src/frameBufferObjectExt.h 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/frameBufferObjectExt.h 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2010-2025, Florian Kirsch +// Copyright (C) 2010-2026, Florian Kirsch // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -48,8 +48,6 @@ /// checks whether Initialize has been called before or not virtual bool IsInitialized() const { return initialized; } - /// Removes the frame buffer object OpenGL resources. - virtual bool Reset(); /// Change the size of the frame buffer object. virtual bool Resize(Dimensions dims); @@ -73,7 +71,10 @@ /// Returns the width of the frame buffer object. virtual int GetHeight() const { return dimensions.height; } - protected: + private: + FrameBufferObjectExt(const FrameBufferObjectExt&); + FrameBufferObjectExt& operator=(const FrameBufferObjectExt&); + // Width and height of the frame buffer object Dimensions dimensions; @@ -87,9 +88,8 @@ bool initialized; - private: - FrameBufferObjectExt(const FrameBufferObjectExt&); - FrameBufferObjectExt& operator=(const FrameBufferObjectExt&); + /// Removes the frame buffer object OpenGL resources. + bool Reset(); }; } // namespace OpenGL diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/occlusionQuery.cpp new/OpenCSG-1.8.2/src/occlusionQuery.cpp --- old/OpenCSG-1.8.1/src/occlusionQuery.cpp 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/occlusionQuery.cpp 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, +// Copyright (C) 2004-2026, Florian Kirsch, // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/occlusionQuery.h new/OpenCSG-1.8.2/src/occlusionQuery.h --- old/OpenCSG-1.8.1/src/occlusionQuery.h 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/occlusionQuery.h 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, +// Copyright (C) 2004-2026, Florian Kirsch, // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify @@ -33,6 +33,7 @@ class OcclusionQuery { public: // abstract base class + OcclusionQuery() {}; virtual ~OcclusionQuery() {}; /// begins an occlusion query @@ -46,8 +47,9 @@ /// whether any fragment has been rendered or not. virtual unsigned int getQueryResult() = 0; - protected: - OcclusionQuery() {}; + private: + OcclusionQuery(const OcclusionQuery&); + OcclusionQuery& operator=(const OcclusionQuery&); }; /// checks for OpenGL-extensions and returns a matching occlusion diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/offscreenBuffer.h new/OpenCSG-1.8.2/src/offscreenBuffer.h --- old/OpenCSG-1.8.1/src/offscreenBuffer.h 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/offscreenBuffer.h 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2006-2025, Florian Kirsch +// Copyright (C) 2006-2026, Florian Kirsch // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -39,9 +39,9 @@ : width(w), height(h) { } - bool operator==(const Dimensions& other) + friend bool operator==(const Dimensions& me, const Dimensions& other) { - return (width == other.width) && (height == other.height); + return (me.width == other.width) && (me.height == other.height); } int width; int height; @@ -52,7 +52,7 @@ class OffscreenBuffer { public: // abstract base class - + OffscreenBuffer() {}; virtual ~OffscreenBuffer() {}; /// Reads the current settings, such as the currently bound FBO. @@ -67,8 +67,6 @@ /// checks whether Initialize has been called before or not virtual bool IsInitialized() const = 0; - /// Change the render texture format. - virtual bool Reset() = 0; /// Change the size of the render texture. After this, Initialize /// must be called again. virtual bool Resize(Dimensions dims) = 0; @@ -92,6 +90,10 @@ virtual int GetWidth() const = 0; /// Returns the width of the offscreen buffer. virtual int GetHeight() const = 0; + + private: + OffscreenBuffer(const OffscreenBuffer&); + OffscreenBuffer& operator=(const OffscreenBuffer&); }; } // namespace OpenGL diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/opencsgConfig.h new/OpenCSG-1.8.2/src/opencsgConfig.h --- old/OpenCSG-1.8.1/src/opencsgConfig.h 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/opencsgConfig.h 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, +// Copyright (C) 2002-2026, Florian Kirsch, // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/opencsgRender.cpp new/OpenCSG-1.8.2/src/opencsgRender.cpp --- old/OpenCSG-1.8.1/src/opencsgRender.cpp 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/opencsgRender.cpp 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, +// Copyright (C) 2002-2026, Florian Kirsch, // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify @@ -58,9 +58,9 @@ } // unnamed namespace - void renderDispatch(const std::vector<Primitive*>& primitives, - Algorithm algorithm, - DepthComplexityAlgorithm depthComplexityAlgorithm) + static void renderDispatch(const std::vector<Primitive*>& primitives, + Algorithm algorithm, + DepthComplexityAlgorithm depthComplexityAlgorithm) { if (primitives.empty()) { return; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/opencsgRender.h new/OpenCSG-1.8.2/src/opencsgRender.h --- old/OpenCSG-1.8.1/src/opencsgRender.h 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/opencsgRender.h 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, +// Copyright (C) 2002-2026, Florian Kirsch, // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/openglExt.h new/OpenCSG-1.8.2/src/openglExt.h --- old/OpenCSG-1.8.1/src/openglExt.h 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/openglExt.h 2026-02-07 18:49:03.000000000 +0100 @@ -1,6 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, -// Hasso-Plattner-Institute at the University of Potsdam, Germany +// Copyright (C) 2023-2026, Florian Kirsch // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/openglHelper.cpp new/OpenCSG-1.8.2/src/openglHelper.cpp --- old/OpenCSG-1.8.1/src/openglHelper.cpp 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/openglHelper.cpp 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, +// Copyright (C) 2002-2026, Florian Kirsch, // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/openglHelper.h new/OpenCSG-1.8.2/src/openglHelper.h --- old/OpenCSG-1.8.1/src/openglHelper.h 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/openglHelper.h 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, +// Copyright (C) 2002-2026, Florian Kirsch, // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/primitive.cpp new/OpenCSG-1.8.2/src/primitive.cpp --- old/OpenCSG-1.8.1/src/primitive.cpp 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/primitive.cpp 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, +// Copyright (C) 2002-2026, Florian Kirsch, // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/primitiveHelper.cpp new/OpenCSG-1.8.2/src/primitiveHelper.cpp --- old/OpenCSG-1.8.1/src/primitiveHelper.cpp 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/primitiveHelper.cpp 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, +// Copyright (C) 2002-2026, Florian Kirsch, // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify @@ -101,8 +101,8 @@ int dx = area.maxx - area.minx; int dy = area.maxy - area.miny; - unsigned int size = dx*dy; - GLubyte* buf = new GLubyte[dx*dy]; + std::size_t size = static_cast<std::size_t>(dx) * dy; + GLubyte * buf = new GLubyte[size]; glPixelStorei(GL_PACK_SWAP_BYTES, GL_FALSE); glPixelStorei(GL_PACK_ALIGNMENT, 1); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/primitiveHelper.h new/OpenCSG-1.8.2/src/primitiveHelper.h --- old/OpenCSG-1.8.1/src/primitiveHelper.h 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/primitiveHelper.h 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, +// Copyright (C) 2002-2026, Florian Kirsch, // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/renderGoldfeather.cpp new/OpenCSG-1.8.2/src/renderGoldfeather.cpp --- old/OpenCSG-1.8.1/src/renderGoldfeather.cpp 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/renderGoldfeather.cpp 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, +// Copyright (C) 2002-2026, Florian Kirsch, // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify @@ -184,7 +184,7 @@ default: // should not happen! assert(0); - }; + } glUniform4fv(col, 1, refColor); @@ -416,7 +416,7 @@ } // unnamed namespace - void renderGoldfeather(const std::vector<Primitive*>& primitives) + static void renderGoldfeather(const std::vector<Primitive*>& primitives) { scissor = new ScissorMemo; @@ -485,7 +485,7 @@ delete scissor; } - bool renderOcclusionQueryGoldfeather(const std::vector<Primitive*>& primitives) + static bool renderOcclusionQueryGoldfeather(const std::vector<Primitive*>& primitives) { scissor = new ScissorMemo; @@ -563,7 +563,7 @@ return retVal; } - void renderDepthComplexitySamplingGoldfeather(const std::vector<Primitive*>& primitives) + static void renderDepthComplexitySamplingGoldfeather(const std::vector<Primitive*>& primitives) { scissor = new ScissorMemo; @@ -608,7 +608,7 @@ delete scissor; } - ChannelManagerForBatches* getChannelManager() { + static ChannelManagerForBatches* getChannelManager() { if (GLAD_GL_VERSION_2_0) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/renderSCS.cpp new/OpenCSG-1.8.2/src/renderSCS.cpp --- old/OpenCSG-1.8.1/src/renderSCS.cpp 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/renderSCS.cpp 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, +// Copyright (C) 2002-2026, Florian Kirsch, // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify @@ -37,6 +37,7 @@ #include <algorithm> #include <map> +#include <string> namespace OpenCSG { @@ -142,10 +143,19 @@ // ARB variant class SCSChannelManagerARBProgram : public ChannelManagerForBatches { public: + SCSChannelManagerARBProgram(ProjTextureSetup); virtual Channel request(); virtual void merge(); + + private: + ProjTextureSetup mProjTextureSetup; }; + SCSChannelManagerARBProgram::SCSChannelManagerARBProgram(ProjTextureSetup setup) + : mProjTextureSetup(setup) + { + } + Channel SCSChannelManagerARBProgram::request() { ChannelManagerForBatches::request(); mCurrentChannel = AllChannels; @@ -217,9 +227,12 @@ void SCSChannelManagerARBProgram::merge() { - GLuint vId = OpenGL::getARBVertexProgram(mergeARBVertexProgram, (sizeof(mergeARBVertexProgram) / sizeof(mergeARBVertexProgram[0])) - 1); - glBindProgramARB(GL_VERTEX_PROGRAM_ARB, vId); - glEnable(GL_VERTEX_PROGRAM_ARB); + if (mProjTextureSetup == ARBShader) + { + GLuint vId = OpenGL::getARBVertexProgram(mergeARBVertexProgram, (sizeof(mergeARBVertexProgram) / sizeof(mergeARBVertexProgram[0])) - 1); + glBindProgramARB(GL_VERTEX_PROGRAM_ARB, vId); + glEnable(GL_VERTEX_PROGRAM_ARB); + } GLuint fId = isRectangularTexture() @@ -228,8 +241,7 @@ glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, fId); glEnable(GL_FRAGMENT_PROGRAM_ARB); - ProjTextureSetup setup = ARBShader; - setupProjectiveTexture(setup); + setupProjectiveTexture(mProjTextureSetup); glEnable(GL_ALPHA_TEST); glEnable(GL_CULL_FACE); @@ -263,9 +275,13 @@ glDisable(GL_CULL_FACE); glDepthFunc(GL_LEQUAL); glDisable(GL_FRAGMENT_PROGRAM_ARB); - glDisable(GL_VERTEX_PROGRAM_ARB); - resetProjectiveTexture(setup); + if (mProjTextureSetup == ARBShader) + { + glDisable(GL_VERTEX_PROGRAM_ARB); + } + + resetProjectiveTexture(mProjTextureSetup); clear(); } @@ -389,10 +405,18 @@ // The ARB vertex program path has the following problem: // With Nouveau drivers on Linux and an NVidia GTX 710, the ARB_position_invariant // option appears to be buggy sometimes, and this causes z-buffer artifacts. + // On the other hand, historical Intel drives failed to work for + // fixed-function vertex setup together with ARB vertex programs. if ( OPENCSG_HAS_EXT(ARB_vertex_program) && OPENCSG_HAS_EXT(ARB_fragment_program) ) { - return new SCSChannelManagerARBProgram; + std::string vendor; + if (const char * v = (const char*)glGetString(GL_VENDOR)) + vendor = v; + bool isIntel = vendor.find("Intel") == 0; + + ProjTextureSetup setup = isIntel ? ARBShader : FixedFunction; + return new SCSChannelManagerARBProgram(setup); } // The fallback path, using fixed function OpenGL, has its own problems: @@ -406,7 +430,7 @@ class IDGenerator { public: - IDGenerator() : counter(0) {}; + IDGenerator() : counter(0) {} IdBufferId newID() { ++counter; IdBufferId newId; @@ -415,7 +439,7 @@ newId.b = (counter >> 8) & 0xff; newId.a = (counter >> 0) & 0xff; return newId; - }; + } private: unsigned int counter; @@ -575,7 +599,7 @@ (*j)->render(); } } - }; + } glDisable(GL_STENCIL_TEST); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/scissorMemo.cpp new/OpenCSG-1.8.2/src/scissorMemo.cpp --- old/OpenCSG-1.8.1/src/scissorMemo.cpp 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/scissorMemo.cpp 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, +// Copyright (C) 2002-2026, Florian Kirsch, // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/scissorMemo.h new/OpenCSG-1.8.2/src/scissorMemo.h --- old/OpenCSG-1.8.1/src/scissorMemo.h 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/scissorMemo.h 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, +// Copyright (C) 2002-2026, Florian Kirsch, // Hasso-Plattner-Institute at the University of Potsdam, Germany // // This library is free software; you can redistribute it and/or modify @@ -77,6 +77,9 @@ void calculateArea(); private: + ScissorMemo(const ScissorMemo&); + ScissorMemo& operator=(const ScissorMemo&); + NDCVolume mIntersection; NDCVolume mCurrent; NDCVolume mArea; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/sequencer.h new/OpenCSG-1.8.2/src/sequencer.h --- old/OpenCSG-1.8.1/src/sequencer.h 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/sequencer.h 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2025, Florian Kirsch +// Copyright (C) 2025-2026, Florian Kirsch // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -28,6 +28,8 @@ #include "opencsgConfig.h" +#include <algorithm> + namespace OpenCSG { class Sequencer diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/settings.cpp new/OpenCSG-1.8.2/src/settings.cpp --- old/OpenCSG-1.8.1/src/settings.cpp 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/settings.cpp 2026-02-07 18:49:03.000000000 +0100 @@ -1,5 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2006-2025, Florian Kirsch +// Copyright (C) 2006-2026, Florian Kirsch // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -70,7 +70,7 @@ static int* gSetting = 0; - void initIntOptions() { + static void initIntOptions() { if (!gSetting) { gSetting = new int[OptionTypeUnused]; for (int i=0; i<OptionTypeUnused; ++i) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/src/settings.h new/OpenCSG-1.8.2/src/settings.h --- old/OpenCSG-1.8.1/src/settings.h 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/src/settings.h 2026-02-07 18:49:03.000000000 +0100 @@ -1,6 +1,5 @@ // OpenCSG - library for image-based CSG rendering for OpenGL -// Copyright (C) 2002-2025, Florian Kirsch, -// Hasso-Plattner-Institute at the University of Potsdam, Germany +// Copyright (C) 2006-2026, Florian Kirsch // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OpenCSG-1.8.1/version.txt new/OpenCSG-1.8.2/version.txt --- old/OpenCSG-1.8.1/version.txt 2025-03-09 11:19:40.000000000 +0100 +++ new/OpenCSG-1.8.2/version.txt 2026-02-07 18:49:03.000000000 +0100 @@ -1 +1 @@ -OpenCSG-1.8.1 +OpenCSG-1.8.2
