15.09.2023
    Release 1.6.0

09.09.2023
    Changed: Favor ARB_texture_non_power_of_two over (ARB_)texture_rectangle

02.09.2023
    Changed: For OpenGL extension checking, replaces GLEW by glad.
        This should improve portability on Linux, because this
        also means that there is no dependency on GLX anymore.

30.08.2023
    Removed StencilManager (which was always deactivated before)

28.08.2023
    Removed PBuffer support (always use FBOs instead)

20.04.2022
    Release 1.5.1

13.04.2022
    GCC 11/12 compile fixes

10.04.2022
    Release 1.5.0 (license changed from GPLv2 to GPLv2 or newer)

30.03.2022
    Resolved a couple of 64-bit warnings while testing Visual Studio 2019

29.09.2016
    Release 1.4.2

22.09.2016
    Fixed: For frame buffer objects, switch back to the correct prior
        FBO, instead of the FBO that was active when the OpenCSG FBO
        was initialized. This fixes issues with using OpenCSG with the
        QOpenGLWidget from Qt.

11.09.2016
    Release 1.4.1

05.09.2016:
    Fixed: 32-bit Id-buffer for SCS algorithm on Intel hardware,
        by using ARB_vertex_program instead of the fixed function
        pipeline to setup texture coordinate generation. The latter
        apperently triggered a driver bug in the Intel OpenGL driver.

15.09.2014
    Release 1.4.0

13.09.2014
    Changed: On Linux and Mac, ignore the OpenCSG-provided GLEW and
        build link with the system provided GLEW instead.

11.09.2014
    Fixed: Do not write into the color buffer during primitive visibility
        transfer. This bug made it impossible to use alpha blending
        on the final CSG geometry, because the geometry was already
        shaded by OpenCSG.

21.08.2014
    Fixed: In the layered Goldfeather algorithms, do not hang forever
        if the maximum stencil width has been reached, i.e., if the
        depth complexity is larger than 255

17.08.2014
    Added: 32-bit Id-buffer for SCS algorithm, which requires the
        ARB_fragment_program extension. This allows the SCS algorithm
        to process more than 255 primitives

11.05.2014
    Release 1.3.3

02.04.2014
    Fixed: Linux XVisualInfo * code path to create a PBuffer context,
        that would always crash.
        (thanks to David Binderman)

03.11.2013
    Fixed: potential security issue in format string of fprintf,
        which caused errors when building with -Werror=format-security
        (thanks to Christian M. Amsüss)

02.10.2012
    Fixed: in opencsgexample, fixed glut.h / stdlib.h conflict in declaration
        of exit()

18.01.2012
    Changed: Use vertex arrays instead of glBegin/glEnd for rendering quads

02.12.2011
    Release 1.3.2

29.11.2011
    Changed: Favor EXT frame buffer object extension over pbuffers (due
        to feedback from openscad users)

28.11.2011
    Added: Version number to opencsg.h

27.11.2011
    Added: MacOSX portibility fixes (thanks to Marius Kintel)

26.11.2011
    Fixed: rendering artifacts at the border of primitives under Linux / ATI /
        Gallium3D that were caused by linear filtering of the FBO texture.
        Nearest filtering is required.

25.11.2011
    Fixed: Quering width and heigth of a pbuffer under Linux / ATI / Gallium3D
        driver always returned 0. The query should not be required, anyway.

14.11.2011
    Added: Support ARB_texture_rectangle extension for FBO path. This extension
        is used preferably instead of the former solution, that implicitely
        required the ARB_texture_non_power_of_two extension without checking
        for it.
    Fixed: In case ARB_texture_rectangle is not available and also not
        ARB_texture_non_power_of_two, the FBO is blown up to power-of-two,
        as in the pbuffer case.

11.11.2011
    Fixed: Perform 0-ptr checks if no occlusion query object can be created.

10.11.2011
    Added: Support for ARB_occlusion_query2 extension in the Goldfeather /
        occlusion query case.

05.09.2011
    Fixed: For frame buffer objects, switch back to prior FBO instead of
        disabling FBO (thanks to Marius Kintel for the bug report).

09.06.2010
    Release 1.3.1

06.06.2010
    License: Added special linking exception for CGAL.

07.02.2010
    Release 1.3.0

27.01.2010
    Added: Allow to chose explicitely between ARB and EXT frame buffer objects
    Changed: In the automatic setting, ARB frame buffer objects have precedence
        over pbuffers over EXT frame buffer objects now.

21.01.2010
    Changed: made offscreen buffer methods Initialize() / Resize()
        more intuitive. Initialize needs to be called only once after
        offscreen buffer construction; after Resize() calling Initialize()
        is not required anymore.

20.01.2010
    Added: context management to allow MDI applications to use OpenCSG
        in each OpenGL window even without shared OpenGL contexts.
        This just maps a integer context identifier to a set of different
        internal offscreen buffer objects for each context.

16.01.2010
    Fixed: rendering error in SCS algorithm due to imprecise
        float value provided to alpha test.

03.01.2010
    Release 1.2.0

05.11.2009
    Changed: frame buffer objects are now used by default
        (instead of pbuffers)

03.08.2009
    Added: support for ARB frame buffer objects (in addition
        to EXT frame buffer objects)

22.07.2009
    Fixed: uninitialized variable in framebuffer object path.
        Might have caused the visibility transfer to fail.

19.07.2009
    Release 1.1.1

19.07.2009
    Fixed: bad performance behaviour of Batcher when called with 
        many primitives with standard bounding boxes. 

07.02.2009
    Fixed: removed -athlon-xp optimization in makefile, which was 
        not portable obviously, in particular for x64 platforms.

30.09.2007
    Changed: made a default and a legacy render() function for
        interface cleanup and more logical documentation in the
        header file. 

23.09.2007
    Added: made depth bounds optimization configurable, default off. 

15.08.2007
    Fixed: stencil mask was not reset after doing the parity test.
        Then, the stencil buffer was not fully reset in the next
        glClear(GL_STENCIL_BUFFER_BIT). Bug only manifested in layered
        Goldfeather algorithms with FBO.

08.08.2007
    Added: Support for depth bounds extension for performance improvements.
        Currently, standard Goldfeather and all SCS algorithms use this
        functionality. 

03.12.2006
    Release 1.1.0

02.12.2006
    Fixed: Free for mode string failed in debug mode in VC6, commented
        out.

30.11.2006
    Changed: Renamed setOptioni -> setOption, getOptioni -> getOption.
    Changed: Refined offscreen buffer resizing.

29.11.2006
    Fixed: Offscreen buffer resizing issue with alternating buffers
        of the resolution (x1, y1) / (x2, y2) where x1>x2 but y1<y2.
        In that case the offscreen buffer was permanently recreated.
        The new implementation is clearer and for normal use should
        have no performance overhead.

03.08.2006
    Fixed: Memory leak in RenderTexture reported a year ago to me.
    Fixed: Several issues on found on TNT2 (creepy, isn't it?):
        RenderTexture actually did not support copy-to-texture only,
        because ARB_render_texture was checked in error
        copy-to-texture was not requested anyway.
        most interesting: TNT2 generates different depth values
        for shade model GL_FLAT vs. GL_POLYGON. The shade model
        now is not set anymore, which solves the problem and should
        neither cause regressions or performance loss. I wonder whether
        in previous OpenCSG versions this was no problem for me. Maybe
        a driver issue.

30.07.2006
    Fixed: Linux stuff
        Assertion when frame buffer object extension is not available

28.07.2006
    Changed: Lots of cosmetical and documentation updates

27.07.2006
    Changed: made pbuffer path default again (no real performance gain
        width FBO, less tested)

25.07.2006
    Changed: some more or less trivial STL performance improvements
        do not glPushAttrib / glPopAttrib when enabling / disabling
        frame buffer object anymore

23.07.2006
    Fixed: Explicitely disable 1D/2D texturing and blending when creating
        channel manager to fix rendering problems in frame buffer object
        path if those settings are enabled

21.07.2006
    Fixed: automatic offscreen option is now considered in some way (in
        doubt, frame buffer object is used).
        Correctly check also for packed_depth_stencil extension before 
        using frame objects

21.07.2006    
    Fixed: two stack overflows in pbuffer path
        
        
20.07.2006
    Added: getOptioni / setOptioni interface
        OffscreenType setting to switch between framebuffer objects and pbuffer
        offscreenBuffer abstract base class to support this and corresponding
        implementations frameBufferObject and pBufferTexture
        Added such options in example program

12.07.2006
    Fixed: SCS / depth-complexity sampling / FBO: After depth-complexity
        sampling, stencil test was enabled resulting in rendering errors

03.07.2006
    Fixed: Infinite recursion when resizing viewer in framebuffer
        object code

11.01.2006
    Added: Framebuffer object support

16.12.2004
    Changed: Moved opencsgConfig.h to src directory. It is not
        anymore included by opencsg.h

16.12.2004
    Fixed: std::min and std::max should now work with VC 7.0.
        It is really braindead that such a trivial thing is 
        not trivial in practice.

04.12.2004
    Release 1.0.2

26.11.2004
    Added: Workspace for dev-cpp 4.9.9.0

26.11.2004
    Changed: queries for the p-buffer facilities in RenderTexture

28.09.2004
    Fixed: refactored heuristic for depth complexity sampling
        thereby fixing an odd performance bug

27.09.2004
    Release 1.0.1

25.09.2004
    Fixed: stupid bug in respect scissoring change

24.09.2004
    Added: respect scissoring setting of OpenGL; calculate CSG
        z-values only in the given scissor area.

23.09.2004
    Added: StencilManager, that, in future will possibly save and 
        restore the stencil buffer of the main frame buffer. The
        StencilManager is currently deactivated, though.

06.08.2004
    Fixed: RenderTexture did not report the correct stencil size
        of the pbuffer under linux. The expected values are now
        written there by hand.

20.07.2004
    Changed: Updated RenderTexture to version 2.0.3. This requires 
        further testing on all possible platforms because I have 
        removed some private hacks due to this change.

02.05.2004
    Release 1.0.0

22.04.2004
    Changed: Makefiles on Linux are now derived from qmake. However,
        the provided Makefiles should work directly without using
        qmake, it is best to stick with them.

22.04.2004 
    Changed: Compile a shared library on Linux now

08.04.2004
    Changed: When possible use GL_TEXTURE_RECTANGLE_NV texture format
        even if GL_TEXTURE_2D would work also. The former appears to be
        faster. 

29.03.2004
    Changed: Scissoring area was chosen too big, because I had 
        confused width/height with right/top margin. This is fixed
        now, resulting in better performance for some models

25.03.2004
    Added: Area structs for pixel and normalized device coordinates. 
        Used to speed up depth complexity sampling by restricting 
        readback to smaller Area
    Added: Check whether primitive vector is empty

24.03.2004
    Changed: Hided occlusion query implementations in cpp
        Renamed OcclusionQueryAdapter to OcclusionQuery

02.03.2004
    Release 0.9.2

17.02.2004
    Added: Support for ARB_occlusion_query extension

21.11.2003
    Release 0.9.1

21.11.2003
    Fixed: std::max() std::min() issue with .net

18.11.2003
    Fixed: Bug with heuristic for resizing the pbuffer-resizing
        that occured for request for sizes of the form 512x1024
        -> 1024x512 -> 512x1024 -> ... (and similar series)

06.11.2003 
    Added: Detection of GL_FRONT_FACE OpenGL setting. This means that
        CSG rendering is now also correct if this setting is the
        non-default clockwise setting.

04.11.2003 
    Fixed: Stenciling was not disabled in SCS algorithm when 
        subtracting no shapes. This could lead to obscure rendering 
        errors when rendering the next CSG shape. 

02.11.2003 
    Added: Heuristic that makes the pbuffer smaller 
        if the size of the pbuffer has been bigger than necessary in 
        x- or y- direction for a certain number of render-calles. 
        This permits to use OpenCSG for CSG rendering in different
        canvases with different sizes without constant expensive
        resizing of the pbuffer for every frame.

01.10.2003 
    Fixed: linux: removed accidental linking against tcl/tk  

23.09.2003 
    Release 0.9

