Skip to content

Commit a58a8e6

Browse files
committed
Merge branch 'master' into autobuild/alpha_v380
2 parents 83822b4 + 7bcbea7 commit a58a8e6

File tree

9 files changed

+271
-125
lines changed

9 files changed

+271
-125
lines changed

changes.txt

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,15 @@ Changed Behaviour
4343
- Any new behaviour formerly activated by `#version 3.71` now requires
4444
`#version 3.8` (or higher); specifying `#version 3.71` will trigger a
4545
corresponding warning.
46-
- Some defaults have been changed (requires `#version 3.8` as the _very first_
47-
statement of the scene, or a corresponding command line / INI setting):
46+
- Some defaults have been changed (requires `#version 3.8` or a corresponding
47+
command line / INI setting):
4848
- The pigment now defaults to plain white.
4949
- `ambient` now defaults to 0.0 instead of 0.1.
5050
- The camera `right` vector length now defaults to the output image aspect
5151
ratio (presuming square pixels) instead of 1.33.
52+
Switching back and forth between defaults via `#version` is possible until
53+
the first `default` statement is encountered; after that, `#version` will
54+
cause a warning instead of changing defaults.
5255
- Minor changes have been made to the benchmark scene. New benchmark version
5356
is 2.03.
5457
- Token counting in conditional blocks (e.g. in `#if ... #end`) has changed.
@@ -58,6 +61,11 @@ Changed Behaviour
5861
for now, due to their orientation being poorly defined.
5962
- An age-old bug in the inbuilt `f_enneper` isosurface function has been
6063
fixed; the function now results in the originally intended shape.
64+
- Contrary to earlier claims and intentions, v3.7.1-beta.1 failed to lift the
65+
requirement that array elements must be of the same type. It has been
66+
decided to not fix the change to work as originally intended, and instead
67+
only allow type mixing if the array has explicitly been declared as
68+
`mixed`. See the documentation for details.
6169

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

7587
Performance Improvements
7688
------------------------

source/base/version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@
100100
/// where `N` is a serial number starting at 1 in each phase, `TIME` is the number of minutes
101101
/// since 2000-01-01 00:00, and `FEATURE` is an arbitrary alphanumeric moniker for a particular
102102
/// experimental feature.
103-
#define POV_RAY_PRERELEASE "alpha.9844500"
103+
#define POV_RAY_PRERELEASE "alpha.9850723"
104104

105105
#if defined(DOXYGEN) && !defined(POV_RAY_PRERELEASE)
106106
// Work around doxygen being unable to document undefined macros.

source/core/support/simplevector.h

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -616,6 +616,12 @@ class FixedSimpleVector
616616

617617
/// Helper class for @ref PooledSimpleVector
618618
///
619+
/// @attention
620+
/// During thread cleanup, vectors handed out by one instance of this class
621+
/// (via the @ref alloc() method) may happen to be returned to a different
622+
/// instance (via the @ref release() method). The implementation must handle
623+
/// such cases gracefully.
624+
///
619625
template<class VECTOR_T>
620626
class VectorPool
621627
{
@@ -627,23 +633,12 @@ class VectorPool
627633
{
628634
if (initialPoolSize != 0)
629635
mPool.reserve(initialPoolSize);
630-
#ifdef POV_CORE_DEBUG
631-
mAllocCount = 0;
632-
#endif
633636
}
634637

635638
~VectorPool()
636639
{
637640
for (auto&& p : mPool)
638-
{
639641
delete p;
640-
#ifdef POV_CORE_DEBUG
641-
--mAllocCount;
642-
#endif
643-
}
644-
#ifdef POV_CORE_DEBUG
645-
POV_CORE_ASSERT(mAllocCount == 0);
646-
#endif
647642
}
648643

649644
VectorPool(const VectorPool&) = delete;
@@ -655,9 +650,6 @@ class VectorPool
655650
if (mPool.empty())
656651
{
657652
p = new VECTOR_T();
658-
#ifdef POV_CORE_DEBUG
659-
++mAllocCount;
660-
#endif
661653
}
662654
else
663655
{
@@ -680,9 +672,6 @@ class VectorPool
680672

681673
vector<VECTOR_T*> mPool;
682674
size_t mSizeHint;
683-
#ifdef POV_CORE_DEBUG
684-
size_t mAllocCount;
685-
#endif
686675
};
687676

688677
//******************************************************************************

0 commit comments

Comments
 (0)