]> git.mxchange.org Git - simgear.git/log
simgear.git
12 years agoFix compiler error with disabled sound support.
ThorstenB [Wed, 21 Nov 2012 19:17:58 +0000 (20:17 +0100)]
Fix compiler error with disabled sound support.
("source" is undefined in SGSampleGroup::stop).
Also fixes two related compiler warnings (unused var "sample").

12 years agoAllow canvas::Placements to have own properties
Thomas Geymayer [Wed, 21 Nov 2012 12:05:19 +0000 (13:05 +0100)]
Allow canvas::Placements to have own properties

12 years agoSGPropertyNode::fireCreatedRecursive: don't fire for node itself by default
Thomas Geymayer [Wed, 21 Nov 2012 10:57:53 +0000 (11:57 +0100)]
SGPropertyNode::fireCreatedRecursive: don't fire for node itself by default

12 years agoModernise the mat lib header, remove 'using std'
James Turner [Tue, 20 Nov 2012 17:10:13 +0000 (17:10 +0000)]
Modernise the mat lib header, remove 'using std'

12 years agoWork on ENABLE_SOUND.
James Turner [Tue, 20 Nov 2012 12:20:21 +0000 (12:20 +0000)]
Work on ENABLE_SOUND.

Restructure SGSampleGroup, to make #ifdef-ing the OpenAL calls easier. No functionality change.

12 years agoKeep (deprecated) SGTime::update method for a while
ThorstenB [Mon, 19 Nov 2012 22:42:51 +0000 (23:42 +0100)]
Keep (deprecated) SGTime::update method for a while
allowing dependent projects to adapt.

12 years agoRemove duplicate members in SGSampleQueue.
James Turner [Mon, 19 Nov 2012 15:33:53 +0000 (15:33 +0000)]
Remove duplicate members in SGSampleQueue.

Remove duplicate members shared by SGSoundSample and SGSampleQueue (which inherits from it). Change SGSoundSample to expose some members as protected data for access by the sample-queue, and hence share nearly all the methods. Also remove 'inline' keyword from virtual methods.

12 years agoGet Canvas/PropertyBasedElement by name
Thomas Geymayer [Sun, 18 Nov 2012 15:26:50 +0000 (16:26 +0100)]
Get Canvas/PropertyBasedElement by name

12 years agoFix HTTP test for revised POST semantics.
James Turner [Sat, 17 Nov 2012 19:51:57 +0000 (19:51 +0000)]
Fix HTTP test for revised POST semantics.

12 years agoTweak HTTP handling for POST requests.
James Turner [Sat, 17 Nov 2012 18:08:38 +0000 (18:08 +0000)]
Tweak HTTP handling for POST requests.

Tolerate slightly malformed request URLs (no slash following the host specified), and use a better check when POST-ing to decide the request-body data source.

12 years agoFix for old gcc which got broken by fix for VS
Thomas Geymayer [Fri, 16 Nov 2012 15:49:35 +0000 (16:49 +0100)]
Fix for old gcc which got broken by fix for VS

12 years agoFix for VS bug
Thomas Geymayer [Fri, 16 Nov 2012 14:49:43 +0000 (15:49 +0100)]
Fix for VS bug

12 years agoNasal bindings: Always pass object by reference
Thomas Geymayer [Fri, 16 Nov 2012 11:24:47 +0000 (12:24 +0100)]
Nasal bindings: Always pass object by reference

12 years agoOne more fix for old gcc
Thomas Geymayer [Thu, 15 Nov 2012 22:31:18 +0000 (23:31 +0100)]
One more fix for old gcc

12 years agoFix compile errors for old gcc
Thomas Geymayer [Thu, 15 Nov 2012 21:17:43 +0000 (22:17 +0100)]
Fix compile errors for old gcc

12 years agoCanvas/C++ bindings: automatically detect dynamic type of polymorphic exposed classes
Thomas Geymayer [Thu, 15 Nov 2012 20:17:33 +0000 (21:17 +0100)]
Canvas/C++ bindings: automatically detect dynamic type of polymorphic exposed classes

12 years agoWork around Visual Studio bug
Thomas Geymayer [Tue, 13 Nov 2012 11:35:12 +0000 (12:35 +0100)]
Work around Visual Studio bug

12 years agoC++/Nasal bindings: allow registering free function as member
Thomas Geymayer [Mon, 12 Nov 2012 22:28:00 +0000 (23:28 +0100)]
C++/Nasal bindings: allow registering free function as member

12 years agoMissing include and more doxygen improvements
Thomas Geymayer [Mon, 12 Nov 2012 12:57:10 +0000 (13:57 +0100)]
Missing include and more doxygen improvements

12 years agoFix file headers
Thomas Geymayer [Mon, 12 Nov 2012 11:25:08 +0000 (12:25 +0100)]
Fix file headers

12 years agoAdd nasal::Ghost class for exposing C++ classes to Nasal
Thomas Geymayer [Mon, 12 Nov 2012 11:11:27 +0000 (12:11 +0100)]
Add nasal::Ghost class for exposing C++ classes to Nasal

12 years agohla: Remove HLADataElement::Path based attribute handling.
Mathias Froehlich [Sun, 11 Nov 2012 15:56:22 +0000 (16:56 +0100)]
hla: Remove HLADataElement::Path based attribute handling.

12 years agoGeoff McLane: realpath for Windows using _fullpath.
ThorstenB [Sun, 11 Nov 2012 18:26:51 +0000 (19:26 +0100)]
Geoff McLane: realpath for Windows using _fullpath.
Also switch cygwin to use POSIX call.

12 years agohla: Use HLADataElementIndices for HLAInteractionClass.
Mathias Froehlich [Sun, 11 Nov 2012 15:54:43 +0000 (16:54 +0100)]
hla: Use HLADataElementIndices for HLAInteractionClass.

12 years agohla: Use HLADataElementIndices for HLALocation.
Mathias Froehlich [Sun, 11 Nov 2012 13:26:14 +0000 (14:26 +0100)]
hla: Use HLADataElementIndices for HLALocation.

12 years agohla: Fixes for the data element index implementation.
Mathias Froehlich [Sun, 11 Nov 2012 09:47:09 +0000 (10:47 +0100)]
hla: Fixes for the data element index implementation.

12 years agoAdd from_nasal helper and fix to_nasal for std::vector.
Thomas Geymayer [Sat, 10 Nov 2012 13:18:27 +0000 (14:18 +0100)]
Add from_nasal helper and fix to_nasal for std::vector.

12 years agogz wrapper to write and read "container files".
ThorstenB [Sat, 10 Nov 2012 09:44:19 +0000 (10:44 +0100)]
gz wrapper to write and read "container files".
Packs arbitrary data (strings, property trees, binary blobs, ...) into a
single file.
Use this for storing/loading user-data only, not for distribution files
(scenery, aircraft etc).

12 years agoProper fix for gzfilebuf choking on some files.
ThorstenB [Sat, 10 Nov 2012 09:12:01 +0000 (10:12 +0100)]
Proper fix for gzfilebuf choking on some files.
When reading a new block of data, and the first byte of the new block is
0xff (_signed_ char -1), then this must be converted to _integer_ 0xff
(+255), not -1 - which would indicate an error condition (EOF==-1). All
valid _data_ character must be returned as non-negative, see
streambuf::underflow spec, or compare with
http://www.opensource.apple.com/source/zlib/zlib-12/zlib/contrib/iostream/zfstream.cpp
or
http://www.raspberryginger.com/jbailey/minix/html/zfstream_8cpp-source.html

12 years agogzfilebuf choked when reading large, heavily compressed files.
ThorstenB [Fri, 9 Nov 2012 21:02:34 +0000 (22:02 +0100)]
gzfilebuf choked when reading large, heavily compressed files.
Apparently a 4K buf isn't enough. 64K seem much better ;-).
Real solution may be an adaptive buffer size in gzfilebuf.

12 years agoFor clouds, use a RNG seed that only changes every 10 minutes.
Stuart Buchanan [Fri, 9 Nov 2012 20:25:53 +0000 (20:25 +0000)]
For clouds, use a RNG seed that only changes every 10 minutes.

This allows multi-process deploymentes to keep their clouds in sync.

12 years agoSome basic C++/Nasal binding helpers
Thomas Geymayer [Fri, 9 Nov 2012 18:28:27 +0000 (19:28 +0100)]
Some basic C++/Nasal binding helpers

 - Add nasal::to_nasal for converting different C++ types
   to the according Nasal types.
 - Add nasal::Hash, an OOP wrapper around Nasal hashes.

12 years agoWorkaround for VS10 Bug/Remove superfluous class qualification
Thomas Geymayer [Fri, 9 Nov 2012 09:36:42 +0000 (10:36 +0100)]
Workaround for VS10 Bug/Remove superfluous class qualification

12 years agoCanvas cleanup and restructuring
Thomas Geymayer [Thu, 8 Nov 2012 23:04:50 +0000 (00:04 +0100)]
Canvas cleanup and restructuring

 - Add some methods for easier using the Canvas from C++
 - Add some documentation to Nasal

12 years agohla: Introduce HLADataElementIndex.
Mathias Froehlich [Thu, 8 Nov 2012 20:31:16 +0000 (21:31 +0100)]
hla: Introduce HLADataElementIndex.

12 years agohla: catch exceptions in processMessages()
Mathias Froehlich [Thu, 8 Nov 2012 20:31:16 +0000 (21:31 +0100)]
hla: catch exceptions in processMessages()

12 years agohla: Use raw pointers for HLAFederate::_insert methods.
Mathias Froehlich [Thu, 8 Nov 2012 20:31:16 +0000 (21:31 +0100)]
hla: Use raw pointers for HLAFederate::_insert methods.

12 years agohla: Warn about creating an object class or interactions classes twice.
Mathias Froehlich [Thu, 8 Nov 2012 20:31:16 +0000 (21:31 +0100)]
hla: Warn about creating an object class or interactions classes twice.

12 years agoRemove osg header from non simgearscene file.
Mathias Froehlich [Thu, 8 Nov 2012 20:31:16 +0000 (21:31 +0100)]
Remove osg header from non simgearscene file.

12 years agoDisable build options unsupported for Windows.
ThorstenB [Thu, 8 Nov 2012 19:01:38 +0000 (20:01 +0100)]
Disable build options unsupported for Windows.

12 years agozfstream: use the correct buffer size
ThorstenB [Wed, 7 Nov 2012 23:04:48 +0000 (00:04 +0100)]
zfstream: use the correct buffer size

12 years agosgstream: implement gzipped output file stream (gzofstream)
ThorstenB [Wed, 7 Nov 2012 22:44:44 +0000 (23:44 +0100)]
sgstream: implement gzipped output file stream (gzofstream)
Add missing output implementation for gzfilebuf.

12 years agozfstream: fixed mixed white spaces
ThorstenB [Wed, 7 Nov 2012 22:37:35 +0000 (23:37 +0100)]
zfstream: fixed mixed white spaces
otherwise unchanged

12 years agoTest for, and fix, materials handling in BTG code.
James Turner [Wed, 7 Nov 2012 21:10:00 +0000 (21:10 +0000)]
Test for, and fix, materials handling in BTG code.

It's possible (and happens!) to have less than 2^16 vertices or tex-coords, but more than 2^15 objects (tris) with the same materials. This was breaking our version 7 vs version 10 detection logic. Pete found the issue, I'm simply committing a version of his fix.

12 years agoFix SGPropertyNode tests
Thomas Geymayer [Wed, 7 Nov 2012 08:31:56 +0000 (09:31 +0100)]
Fix SGPropertyNode tests

12 years agoFix property find_last_child/addChild.
ThorstenB [Tue, 6 Nov 2012 23:53:32 +0000 (00:53 +0100)]
Fix property find_last_child/addChild.
Initial "addChild" should have index #0 (not #1).
Also extend test cases.
(Test case shows addChild(append=false) isn't working as expected!?)

12 years agoJenkins has some problems with bind and lambdas. Let's try it with ordinary function...
Thomas Geymayer [Tue, 6 Nov 2012 18:34:23 +0000 (19:34 +0100)]
Jenkins has some problems with bind and lambdas. Let's try it with ordinary function pointers...

12 years agoClean up Canvas element creation
Thomas Geymayer [Tue, 6 Nov 2012 17:48:00 +0000 (18:48 +0100)]
Clean up Canvas element creation

12 years agoSIMGEAR_HEADLESS define is not needed anymore
Thomas Geymayer [Mon, 5 Nov 2012 17:05:24 +0000 (18:05 +0100)]
SIMGEAR_HEADLESS define is not needed anymore

12 years agoMove parseColor to scene/util
Thomas Geymayer [Mon, 5 Nov 2012 16:58:24 +0000 (17:58 +0100)]
Move parseColor to scene/util

parseColor is used to parse a CSS color string into an osg::Vec4
which is only available in SimGearScene. If someone needs the
function also in SimGear headless mode we have to think about
where to better place this function.

12 years agoProper headless build fix
Thomas Geymayer [Mon, 5 Nov 2012 12:35:06 +0000 (13:35 +0100)]
Proper headless build fix

12 years agoFix windows and headless build
Thomas Geymayer [Mon, 5 Nov 2012 11:58:21 +0000 (12:58 +0100)]
Fix windows and headless build

12 years agoNo need to link to ShivaVG anymore
Thomas Geymayer [Sun, 4 Nov 2012 22:48:51 +0000 (23:48 +0100)]
No need to link to ShivaVG anymore

12 years agoInclude ShivaVG into libSimGearScene
Thomas Geymayer [Sun, 4 Nov 2012 19:00:53 +0000 (20:00 +0100)]
Include ShivaVG into libSimGearScene

12 years agoCommited too fast...
Thomas Geymayer [Sun, 4 Nov 2012 18:22:37 +0000 (19:22 +0100)]
Commited too fast...

12 years agoRemove OpenVG dependency from header file
Thomas Geymayer [Sun, 4 Nov 2012 18:21:33 +0000 (19:21 +0100)]
Remove OpenVG dependency from header file

12 years agoFix adding ShivaVG include directory
Thomas Geymayer [Sun, 4 Nov 2012 15:51:07 +0000 (16:51 +0100)]
Fix adding ShivaVG include directory

12 years agoFix signed/unsigned comparison warning
Thomas Geymayer [Sun, 4 Nov 2012 14:26:41 +0000 (15:26 +0100)]
Fix signed/unsigned comparison warning

12 years agoRefactor Canvas and add some helpers.
Thomas Geymayer [Sun, 4 Nov 2012 13:12:05 +0000 (14:12 +0100)]
Refactor Canvas and add some helpers.

 - Refactor Canvas from FlightGear and fix lazy rendering with
   recursive canvases.
 - New classes PropertyBasedElement and PropertyBasedManager for
   creating subsystems controlled by the property tree.
 - New method parseColor to parse CSS 3 conformant color strings
   (only basic color schemes supported)
 - New Rect class representing a rectangle.

12 years agoscenery: put stg loaded models under a common lod node.
Mathias Froehlich [Sat, 27 Oct 2012 06:22:45 +0000 (08:22 +0200)]
scenery: put stg loaded models under a common lod node.

12 years agoAdd VGInitOperation for initializing OpenVG
Thomas Geymayer [Wed, 31 Oct 2012 00:38:59 +0000 (01:38 +0100)]
Add VGInitOperation for initializing OpenVG

12 years agoHelper for property controlled subsystems
Thomas Geymayer [Mon, 29 Oct 2012 15:10:10 +0000 (16:10 +0100)]
Helper for property controlled subsystems

 - Subsystem which manages a list of elements which
   are controlled through the property tree.
 - Fix a ShivaVG compiler warning.
 - Add some helper functions to trigger property removed/add
   events for a whole property tree.

12 years agoNo bzero in MSVC
Frederic Bouvier [Mon, 29 Oct 2012 07:48:55 +0000 (08:48 +0100)]
No bzero in MSVC

12 years agoHTTP enhancements.
James Turner [Wed, 15 Aug 2012 10:42:12 +0000 (11:42 +0100)]
HTTP enhancements.

Support content-encoding and improve pipelining support.

12 years agoLink with ShivaVG
Thomas Geymayer [Wed, 24 Oct 2012 23:00:37 +0000 (01:00 +0200)]
Link with ShivaVG

12 years agoShivaVG: Support for pseudo non-zero fillrule
Thomas Geymayer [Fri, 21 Sep 2012 20:03:44 +0000 (22:03 +0200)]
ShivaVG: Support for pseudo non-zero fillrule

12 years agoFix a Clang warning in Shiva.
James Turner [Wed, 19 Sep 2012 14:55:49 +0000 (15:55 +0100)]
Fix a Clang warning in Shiva.

12 years agoAdd missing glx.h include and fix some warnings.
Thomas Geymayer [Tue, 3 Jul 2012 13:48:11 +0000 (15:48 +0200)]
Add missing glx.h include and fix some warnings.

12 years agoFix OS-X compilation.
James Turner [Sun, 17 Jun 2012 20:12:47 +0000 (21:12 +0100)]
Fix OS-X compilation.

12 years agoAllow filling paths and do some clean up/fixing.
Thomas Geymayer [Wed, 6 Jun 2012 22:11:10 +0000 (00:11 +0200)]
Allow filling paths and do some clean up/fixing.

12 years agoAdd ShivaVG sources
Thomas Geymayer [Wed, 6 Jun 2012 09:32:02 +0000 (11:32 +0200)]
Add ShivaVG sources

12 years agopt_lights: 9 seconds+ break for the ODALS flash sequence is a bit too much. Set it...
Christian Schmitt [Tue, 23 Oct 2012 16:55:46 +0000 (18:55 +0200)]
pt_lights: 9 seconds+ break for the ODALS flash sequence is a bit too much. Set it to 2 seconds.

12 years agoAdd SGGeod read and write to gzFile
Peter Sadrozinski [Fri, 19 Oct 2012 02:46:35 +0000 (22:46 -0400)]
Add SGGeod read and write to gzFile

12 years agoMove FGODGauge from FlightGear to SimGear.
Thomas Geymayer [Fri, 19 Oct 2012 09:48:39 +0000 (11:48 +0200)]
Move FGODGauge from FlightGear to SimGear.

This is a first step for moving the Canvas system to SimGear to
make it accessible to other applications (eg.FGRadar is going to
use it)

12 years agoAdd method SGPropertyNode::addChildren to create multiple children at once
Thomas Geymayer [Sun, 14 Oct 2012 15:26:52 +0000 (17:26 +0200)]
Add method SGPropertyNode::addChildren to create multiple children at once

12 years agoAvoid randomness when processing directories.
ThorstenB [Sat, 13 Oct 2012 10:29:04 +0000 (12:29 +0200)]
Avoid randomness when processing directories.
Order of files in file system order is random (maybe different for every
user). Determinsm is good, i.e. when loading Nasal scripts in a fixed,
known sequence, or config files, where the later may overrule settings of
the earlier.

12 years agoExtend addChild to allow using first unused index
Thomas Geymayer [Sat, 13 Oct 2012 13:07:18 +0000 (15:07 +0200)]
Extend addChild to allow using first unused index

12 years agoMove uppercase function to strutils.
ThorstenB [Wed, 10 Oct 2012 19:31:57 +0000 (21:31 +0200)]
Move uppercase function to strutils.

12 years agoChange default tree-max-density-angle-deg to 30 and tree-zero-density-angle-deg to...
Stuart Buchanan [Wed, 10 Oct 2012 18:57:16 +0000 (19:57 +0100)]
Change default tree-max-density-angle-deg to 30 and tree-zero-density-angle-deg to 45, as redommended by Thorsten Renk to account for our scenery generally rendering slopes shallower than they are IRL.

12 years agoReduce tree and object cover on steep slopes, configurable through materials.xml
Stuart Buchanan [Fri, 5 Oct 2012 20:59:13 +0000 (21:59 +0100)]
Reduce tree and object cover on steep slopes, configurable through materials.xml

12 years agoFix Linux compile: "free" needs stdlib.h.
ThorstenB [Thu, 4 Oct 2012 19:11:35 +0000 (21:11 +0200)]
Fix Linux compile: "free" needs stdlib.h.
Also move to .cxx file to avoid another include dependency in the header.

12 years agoInitial work on making OpenAL private to the sound code.
James Turner [Sun, 30 Sep 2012 18:41:51 +0000 (19:41 +0100)]
Initial work on making OpenAL private to the sound code.

12 years agoscenery: remove default zero reader writer options argument.
Mathias Froehlich [Wed, 3 Oct 2012 20:04:47 +0000 (22:04 +0200)]
scenery: remove default zero reader writer options argument.

12 years agoscenery: Make sure makeEffects has reader writer options.
Mathias Froehlich [Wed, 3 Oct 2012 18:23:05 +0000 (20:23 +0200)]
scenery: Make sure makeEffects has reader writer options.

12 years agoImprove decode_bin output slightly.
James Turner [Sun, 30 Sep 2012 15:44:22 +0000 (16:44 +0100)]
Improve decode_bin output slightly.

12 years agoHandle isnan at a more central place.
Mathias Froehlich [Thu, 27 Sep 2012 16:39:18 +0000 (18:39 +0200)]
Handle isnan at a more central place.

Do not distribute architecture specific
code across a lot of places.

12 years agoFix line segment plane intersect.
Mathias Froehlich [Wed, 26 Sep 2012 20:45:12 +0000 (22:45 +0200)]
Fix line segment plane intersect.

12 years agobvh: Build bigger leaf nodes for paged bvh nodes.
Mathias Froehlich [Tue, 25 Sep 2012 21:42:14 +0000 (23:42 +0200)]
bvh: Build bigger leaf nodes for paged bvh nodes.

Flatten the leaf nodes in the paged bounding volume tree
as good as possible. The implementation still assumes a
whole world database which actually holds for our usual
scenery.

12 years agoscene: Factor out a common primitive functor.
Mathias Froehlich [Tue, 25 Sep 2012 21:42:14 +0000 (23:42 +0200)]
scene: Factor out a common primitive functor.

This kind of work is done two times for different
flavours of bounding volume generation. Factor
out and use this in BVHPageNodeOSG.cxx and
BoundingVolumeBuildVisitor.hxx.

12 years agobvh: Make BVHPageNode::_Request fields private.
Mathias Froehlich [Tue, 25 Sep 2012 18:03:04 +0000 (20:03 +0200)]
bvh: Make BVHPageNode::_Request fields private.

12 years agoProvide a definition for GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
Frederic Bouvier [Wed, 26 Sep 2012 06:38:04 +0000 (08:38 +0200)]
Provide a definition for GL_SAMPLE_ALPHA_TO_COVERAGE_ARB

12 years agoMSVC has no std::isnan
Frederic Bouvier [Wed, 26 Sep 2012 06:36:56 +0000 (08:36 +0200)]
MSVC has no std::isnan

12 years agoAdd alpha-to-coverage GL parameter to effects code.
Stuart Buchanan [Tue, 25 Sep 2012 21:51:37 +0000 (22:51 +0100)]
Add alpha-to-coverage GL parameter to effects code.

12 years agoMacro to disable the copy-constructor.
James Turner [Mon, 24 Sep 2012 22:18:57 +0000 (23:18 +0100)]
Macro to disable the copy-constructor.

Another toolkit I use has an explicit macro for this, which is nice for readability, so I've borrowed it here.

12 years agoSGTime: use SGGeod, quieter init.
James Turner [Sun, 23 Sep 2012 23:02:11 +0000 (00:02 +0100)]
SGTime: use SGGeod, quieter init.

It's common to use SGTime to calculate the the Julian Date, without providing time-zone information. Don't warn in these cases, since the behaviour is fine.

12 years agoAdd another overload of SGGeodesy::direct
James Turner [Sun, 23 Sep 2012 20:43:42 +0000 (21:43 +0100)]
Add another overload of SGGeodesy::direct

12 years agoSound Manager: support subsystem reinit,
ThorstenB [Fri, 21 Sep 2012 13:06:58 +0000 (15:06 +0200)]
Sound Manager: support subsystem reinit,
move initialization stuff to standard init phase.
Prevent AL calls when sound was never initialized.

12 years agoAvoid signed/unsigned compiler warning.
ThorstenB [Fri, 21 Sep 2012 10:55:40 +0000 (12:55 +0200)]
Avoid signed/unsigned compiler warning.
We don't really need a signed int here.

12 years agomat.cxx: fix an error reported by Valgrind
Christian Schmitt [Wed, 19 Sep 2012 08:10:14 +0000 (10:10 +0200)]
mat.cxx: fix an error reported by Valgrind

12 years agoSupport for incremental init of subsystems.
James Turner [Tue, 18 Sep 2012 19:26:28 +0000 (20:26 +0100)]
Support for incremental init of subsystems.

Allow subsystem init to be incremental, i.e requiring repeated init calls until a 'done' code is returned. Use this to support incremental init in groups and the manager. (It would also be possible to support it in an individual subsystem).

Note that if you use the existing init() calls, behaviour is unchanged.