Xors3d Engine
Engine Settings

Engine Settings

Originally 'Engine Settings' were added to Xors3d to avoid additional functions and/or function arguments in such functions as xLoadMesh.
We faced the problem of wrong exporting of 3d models when the exported model contains an absolute path to the textures instead of the relative one. First thought was to add an extra boolean argument to xLoadMesh() / xLoadAnimMesh() to enable / disable the use of relative path (if absolute one is found). Another thought was to add functions kind of xEnableRelativePath() / xDisableRelativePath().
Both solutions tangle the engine. That's why we added 'Engine Settings'. Maybe it's not the perfect solution, but now we haven't a lot of ugly functions with billions of arguments with default values.
There are only two functions to control Engine Settings: xSetEngineSetting() and xGetEngineSetting().
Parameter name and parameter value are both strings. That was done to avoid xGetEngineSettingAsBool(), xGetEngineSettingAsInt(), xGetEngineSettingAsFloat() etc.
There are a number of settings which are reserved and used by Xors3d. See the list of these settings below.
At the same time you can set your own parameters and use them as you like.
Note: parameter names and 'true', 'false' parameter values are stored in lower case. I.e. 'myAwesomePaRaMeTeR' is equal to 'myawesomeparameter'.

LoadMesh::RelativePaths

If enabled, the engine tries to load all the textures found during mesh loading using relative paths instead of absolute ones. It's useful if the model was exported with wrong paths and you cannot reexport this model.
Values: 'true', 'false'.
By default this setting is enabled. If you experience some problems with textures while loading the meshes, try to set this parameter to 'false'.

LoadMesh::IgnoreTextures

If enabled, the engine ignores all the textures while loading any model thereby they won't be loaded.
Values: 'true', 'false'.
By default this setting is disabled.

Physics::LegacyVB

This parameter was added to support those users who still use PhysX Wrapper for Xors3d. In some cases the size of trimesh doesn't fit the size of the entity. Playing with this parameter may help to solve the problem.
Values: 'true', 'false'.
By default this setting is disabled.

Physics::DebugDraw

Deprecated:
If enabled, engine starts drawing debug information about physics simulation.
Values: 'true', 'false'.
By default this setting is disabled.

Engine::Multithreaded

If enabled, engine loads and unloads chunks of streaming terrain in separate threads.
Note:
This parameter should be enabled before calling xGraphics3d().
Values: 'true', 'false'.
By default this setting is disabled.

Terrain::HWGeneration

If enabled, the generation of terrain mesh is done on GPU instead of CPU.
Values: 'true', 'false'.
By default this setting is disabled.

Shadows::IgnoreCastingFullBrightSurfaces

If enabled, the full bright surfaces won't cast shadows.
Values: 'true', 'false'.
By default this setting is disabled.

Shadows::IgnoreReceivingFullBrightSurfaces

If enabled, the full bright surfaces won't receive shadows.
Values: 'true', 'false'.
By default this setting is disabled.

Input::ListenControllerConnection

If enabled, the engine will handle the connection of the game controllers during the runtime.
Values: 'true', 'false'.
By default this setting is disabled.