2.2.2.5 The #version Directive
As POV-Ray has evolved from version 1.0 through 3.6 we have made every effort to maintain some amount of backwards
compatibility with earlier versions. Some old or obsolete features can be handled directly without any special
consideration by the user. Some old or obsolete features can no longer be handled at all. However some old
features can still be used if you warn POV-Ray that this is an older scene. The #version directive can
be used to switch version compatibility to different setting several times throughout a scene file. The syntax is:
VERSION_DIRECTIVE:
#version FLOAT;
Note: there should be a semi-colon after the float expression in a #version
directive. This semi-colon is introduced in POV-Ray version 3.1. If omitted, it generates a warning and some macros
may not work properly.
Additionally you may use the Version= n.n option or the +MV n.n switch
to establish the initial setting. See "Language Version"
for details. For example one feature introduced in 2.0 that was incompatible with any 1.0 scene files is the parsing
of float expressions. Using #version 1.0 turns off expression parsing as well as many warning messages so
that nearly all 1.0 files will still work. Naturally the default setting for this option is #version 3.5 .
Note: Some obsolete or re-designed features are totally unavailable in the
current version of POV-Ray REGARDLES OF THE VERSION SETTING. Details on these features are noted throughout this
documentation.
The built-in float identifier version contains the current setting of the version compatibility
option. See "Float Expressions: Built-in Variables". Together
with the built-in version identifier the #version directive allows you to save and restore
the previous values of this compatibility setting. The new #local identifier option is especially useful
here. For example suppose mystuff.inc is in version 1 format. At the top of the file you could put:
#local Temp_Vers = version; // Save previous value
#version 1.0; // Change to 1.0 mode
... // Version 1.0 stuff goes here...
#version Temp_Vers; // Restore previous version
Future versions of POV-Ray may not continue to maintain full backward compatibility even with the #version
directive. We strongly encourage you to phase in current version syntax as much as possible.
|