As POV-Ray as evolved from version 1.0 through 3.1 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
FLOAT;
Note that there should be a semi-colon after the float expression in a #version
directive. This semi-colon is new with 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.1
.
NOTE: Some obsolete or re-designed features are totally unavailable in POV-Ray 3.1 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 "Built-in Float Identifiers". 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 3.1 syntax as much as possible.