Skip to content

Commit

Permalink
Merge branch 'master' into autobuild/alpha_v380
Browse files Browse the repository at this point in the history
  • Loading branch information
c-lipka committed Sep 23, 2018
2 parents 83822b4 + 7bcbea7 commit a58a8e6
Show file tree
Hide file tree
Showing 9 changed files with 271 additions and 125 deletions.
16 changes: 14 additions & 2 deletions changes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,15 @@ Changed Behaviour
- Any new behaviour formerly activated by `#version 3.71` now requires
`#version 3.8` (or higher); specifying `#version 3.71` will trigger a
corresponding warning.
- Some defaults have been changed (requires `#version 3.8` as the _very first_
statement of the scene, or a corresponding command line / INI setting):
- Some defaults have been changed (requires `#version 3.8` or a corresponding
command line / INI setting):
- The pigment now defaults to plain white.
- `ambient` now defaults to 0.0 instead of 0.1.
- The camera `right` vector length now defaults to the output image aspect
ratio (presuming square pixels) instead of 1.33.
Switching back and forth between defaults via `#version` is possible until
the first `default` statement is encountered; after that, `#version` will
cause a warning instead of changing defaults.
- Minor changes have been made to the benchmark scene. New benchmark version
is 2.03.
- Token counting in conditional blocks (e.g. in `#if ... #end`) has changed.
Expand All @@ -58,6 +61,11 @@ Changed Behaviour
for now, due to their orientation being poorly defined.
- An age-old bug in the inbuilt `f_enneper` isosurface function has been
fixed; the function now results in the originally intended shape.
- Contrary to earlier claims and intentions, v3.7.1-beta.1 failed to lift the
requirement that array elements must be of the same type. It has been
decided to not fix the change to work as originally intended, and instead
only allow type mixing if the array has explicitly been declared as
`mixed`. See the documentation for details.

New Features
------------
Expand All @@ -71,6 +79,10 @@ New Features
reduce image noise from stochastic mechanisms (e.g. jittered area lights,
subsurface light transport or micronormals). The mathematical background
and parameterization is similar to that of adaptive focal blur.
- The `bicubic_patch` primitive now allows for a trailing comma at the end of
the list of control points.
- The `matrix` syntax now allows allows for a trailing comma at the end of
the list of coefficients.

Performance Improvements
------------------------
Expand Down
2 changes: 1 addition & 1 deletion source/base/version.h
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@
/// where `N` is a serial number starting at 1 in each phase, `TIME` is the number of minutes
/// since 2000-01-01 00:00, and `FEATURE` is an arbitrary alphanumeric moniker for a particular
/// experimental feature.
#define POV_RAY_PRERELEASE "alpha.9844500"
#define POV_RAY_PRERELEASE "alpha.9850723"

#if defined(DOXYGEN) && !defined(POV_RAY_PRERELEASE)
// Work around doxygen being unable to document undefined macros.
Expand Down
23 changes: 6 additions & 17 deletions source/core/support/simplevector.h
Original file line number Diff line number Diff line change
Expand Up @@ -616,6 +616,12 @@ class FixedSimpleVector

/// Helper class for @ref PooledSimpleVector
///
/// @attention
/// During thread cleanup, vectors handed out by one instance of this class
/// (via the @ref alloc() method) may happen to be returned to a different
/// instance (via the @ref release() method). The implementation must handle
/// such cases gracefully.
///
template<class VECTOR_T>
class VectorPool
{
Expand All @@ -627,23 +633,12 @@ class VectorPool
{
if (initialPoolSize != 0)
mPool.reserve(initialPoolSize);
#ifdef POV_CORE_DEBUG
mAllocCount = 0;
#endif
}

~VectorPool()
{
for (auto&& p : mPool)
{
delete p;
#ifdef POV_CORE_DEBUG
--mAllocCount;
#endif
}
#ifdef POV_CORE_DEBUG
POV_CORE_ASSERT(mAllocCount == 0);
#endif
}

VectorPool(const VectorPool&) = delete;
Expand All @@ -655,9 +650,6 @@ class VectorPool
if (mPool.empty())
{
p = new VECTOR_T();
#ifdef POV_CORE_DEBUG
++mAllocCount;
#endif
}
else
{
Expand All @@ -680,9 +672,6 @@ class VectorPool

vector<VECTOR_T*> mPool;
size_t mSizeHint;
#ifdef POV_CORE_DEBUG
size_t mAllocCount;
#endif
};

//******************************************************************************
Expand Down
Loading

0 comments on commit a58a8e6

Please sign in to comment.