diff --git a/Documentation/source/guide/faq.rst b/Documentation/source/guide/faq.rst
index 0f7edb1d49..6b853342ca 100644
--- a/Documentation/source/guide/faq.rst
+++ b/Documentation/source/guide/faq.rst
@@ -1,24 +1,29 @@
FAQ
-=====
+===
.. toctree::
:maxdepth: 2
-
-Can I use Natron for commercial work ?
-**************************************
+
+
+Can I use Natron for commercial work?
+*************************************
+
Yes. Anything you create with Natron is yours and you’re free to do anything you want with it.
-What operating systems are supported by Natron ?
-************************************************
-We officially support:
+What operating systems are supported by Natron?
+***********************************************
+
+Natron officially supports:
* Windows 7, 8 and 10 with latest service packs.
* MacOSX 10.6 or greater
* Linux 2.6.18 or greater (Glibc 2.12+/libgcc 4.4+)
-Why did you make Natron free of charge ?
-****************************************
+
+Why did you make Natron free of charge?
+***************************************
+
Our original motives were to create a tool for people who needed it and that may felt left-aside by the software editors pricing plans, that is:
* Students who want to learn compositing at home
@@ -30,8 +35,10 @@ One great mission of a free open-source software is to aim to create common prac
On the other hand, being free of charge, Natron can be installed on large-scale render farms without wondering about licensing issues.
-What is OpenFX ?
-****************
+
+What is OpenFX?
+***************
+
`OpenFX `_ is a standard for creating visual effects plug-ins for compositing and editor applications.
As of today several applications are compatible with this plug-in format: (meaning you can use the same plug-ins in all of them)
@@ -51,16 +58,18 @@ As of today several applications are compatible with this plug-in format: (meani
* ButtleOFX
* TuttleOFX
-Can I use commercial and proprietary plug-ins within Natron ?
-*************************************************************
+Can I use commercial and proprietary plug-ins within Natron?
+************************************************************
+
Yes. Natron doesn’t limit you to open-source plug-ins.
-Is my graphics card supported ?
-*******************************
-Depends. A OpenGL 2.0 compatible graphics card is needed to run Natron (2.1+).
+Is my graphics card supported?
+******************************
+
+An OpenGL 2.0 compatible graphics card is needed to run Natron (2.1+) with hardware-accelerated rendering. Other graphics cards work with software-only rendering (see below).
-The following graphics cards are supported.
+The following graphics cards are supported for hardware-accelerated rendering:
* Intel GMA 3150 (Linux-only)
* Intel GMA X3xxx (Linux-only)
@@ -74,5 +83,6 @@ The following graphics cards are supported.
* ATI/AMD Radeon R300 and greater
* ATI/AMD FireGL T2-64 and greater (FirePro)
-Cards not listed here will probably not work. On Windows and Linux you can enable software rendering. On Linux enable the environment variable LIBGL_ALWAYS_SOFTWARE=1 before running Natron. On Windows enable the legacy hardware package in the installer.
+Cards not listed here will probably not support hardware-accelerated rendering.
+On Windows and Linux you can enable software rendering. On Linux, enable the environment variable LIBGL_ALWAYS_SOFTWARE=1 before running Natron. On Windows, enable the legacy hardware package in the installer.
diff --git a/Project-xcode.xcodeproj/project.pbxproj b/Project-xcode.xcodeproj/project.pbxproj
index 5fbbdda870..0e89c7fbe5 100644
--- a/Project-xcode.xcodeproj/project.pbxproj
+++ b/Project-xcode.xcodeproj/project.pbxproj
@@ -81,7 +81,7 @@
isa = PBXContainerItemProxy;
containerPortal = 1E12F4B41CC6593300105A34 /* qhttpserver.xcodeproj */;
proxyType = 1;
- remoteGlobalIDString = F82F89455E05F43CE051A79D;
+ remoteGlobalIDString = 6682956B584A08D012F38264;
remoteInfo = qhttpserver;
};
1E15250D1CA9CCA70056C506 /* PBXContainerItemProxy */ = {
@@ -123,35 +123,35 @@
isa = PBXContainerItemProxy;
containerPortal = 1E1524F31CA9CCA60056C506 /* ceres.xcodeproj */;
proxyType = 1;
- remoteGlobalIDString = 50E22BF77EADB308C87E78CC;
+ remoteGlobalIDString = E8822B4657F5BC3F3EFEE899;
remoteInfo = ceres;
};
1E1525391CA9CD8D0056C506 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 1E1524F81CA9CCA60056C506 /* gflags.xcodeproj */;
proxyType = 1;
- remoteGlobalIDString = DC3A22537506A6669865251C;
+ remoteGlobalIDString = EE7FDEF3A40BF538F54757F1;
remoteInfo = gflags;
};
1E15253B1CA9CD8D0056C506 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 1E1524FD1CA9CCA60056C506 /* glog.xcodeproj */;
proxyType = 1;
- remoteGlobalIDString = 03DDCD43C74EEE647AD61A75;
+ remoteGlobalIDString = EAC2EB0DD16854B0D7E51A95;
remoteInfo = glog;
};
1E15253D1CA9CD8D0056C506 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 1E1525021CA9CCA60056C506 /* LibMV.xcodeproj */;
proxyType = 1;
- remoteGlobalIDString = CEC193B6F4ECB62235821F2B;
+ remoteGlobalIDString = F9D23D4B05F71C9113580514;
remoteInfo = LibMV;
};
1E15253F1CA9CD8D0056C506 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 1E1525071CA9CCA60056C506 /* openMVG.xcodeproj */;
proxyType = 1;
- remoteGlobalIDString = 6D7288D8764B97DD1E027858;
+ remoteGlobalIDString = E10B5B4F926A4E0FB02FC453;
remoteInfo = openMVG;
};
1E189EC31C49475E00F1FD20 /* PBXContainerItemProxy */ = {
@@ -172,7 +172,7 @@
isa = PBXContainerItemProxy;
containerPortal = 1EADE5C718AA403700EF3180 /* Tests.xcodeproj */;
proxyType = 1;
- remoteGlobalIDString = AFEF7D68642F83E3811BB9B9;
+ remoteGlobalIDString = 860C94EC01D74FF8407F7E3C;
remoteInfo = Tests;
};
1E306DFE1C4949BA00BAC6E3 /* PBXContainerItemProxy */ = {
@@ -193,28 +193,28 @@
isa = PBXContainerItemProxy;
containerPortal = 1E306DED1C49497200BAC6E3 /* NatronRenderer.xcodeproj */;
proxyType = 1;
- remoteGlobalIDString = 3B61C2EC40908C23E2918B71;
+ remoteGlobalIDString = 11C11E222843FEA03B5C7784;
remoteInfo = NatronRenderer;
};
1E306E041C4949D700BAC6E3 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 1E189EBF1C49475E00F1FD20 /* Natron.xcodeproj */;
proxyType = 1;
- remoteGlobalIDString = 91455CC2BC21CB91737B3DC6;
+ remoteGlobalIDString = 046BB370AFAA83C312FA1925;
remoteInfo = Natron;
};
1E5F8F5718AA913D0045A477 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 1EADE5C118AA403700EF3180 /* Engine.xcodeproj */;
proxyType = 1;
- remoteGlobalIDString = 30EC256330269B7CAA1FCB17;
+ remoteGlobalIDString = B23464DD0C0E11149267CE56;
remoteInfo = Engine;
};
1E5F8F5918AA913D0045A477 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 1EADE5C418AA403700EF3180 /* Gui.xcodeproj */;
proxyType = 1;
- remoteGlobalIDString = 4AE2754265AC5F6E557A903C;
+ remoteGlobalIDString = 669C8608B42E53D311778440;
remoteInfo = Gui;
};
1E5F8F5B18AA91430045A477 /* PBXContainerItemProxy */ = {
@@ -270,7 +270,7 @@
isa = PBXContainerItemProxy;
containerPortal = AC77629C1D1ACE460006A58E /* tess.xcodeproj */;
proxyType = 1;
- remoteGlobalIDString = DCE44EEBD5943F419495A13F;
+ remoteGlobalIDString = 4C64B61CEEEA70ABBC6500AF;
remoteInfo = tess;
};
ACD67BFD1CEC9D0900DD2CFE /* PBXContainerItemProxy */ = {
@@ -284,7 +284,7 @@
isa = PBXContainerItemProxy;
containerPortal = ACD67BF71CEC9D0900DD2CFE /* hoedown.xcodeproj */;
proxyType = 1;
- remoteGlobalIDString = 68FEEA655C477C409D21050B;
+ remoteGlobalIDString = 18425C89ADAE2B6936B826C9;
remoteInfo = hoedown;
};
D7A1964518B2242500F412DA /* PBXContainerItemProxy */ = {
@@ -298,7 +298,7 @@
isa = PBXContainerItemProxy;
containerPortal = D7A1963F18B2242500F412DA /* HostSupport.xcodeproj */;
proxyType = 1;
- remoteGlobalIDString = EA73569A7C740BC02AA20FE9;
+ remoteGlobalIDString = D82C3C4E894F0ABA3741C69E;
remoteInfo = HostSupport;
};
/* End PBXContainerItemProxy section */
@@ -334,6 +334,33 @@
1EADE5C118AA403700EF3180 /* Engine.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Engine.xcodeproj; path = Engine/Engine.xcodeproj; sourceTree = ""; };
1EADE5C418AA403700EF3180 /* Gui.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Gui.xcodeproj; path = Gui/Gui.xcodeproj; sourceTree = ""; };
1EADE5C718AA403700EF3180 /* Tests.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Tests.xcodeproj; path = Tests/Tests.xcodeproj; sourceTree = ""; };
+ 1EB1215C1D87F6B5009646F7 /* ofx_plugin_programming_guide.html */ = {isa = PBXFileReference; lastKnownFileType = text.html.documentation; name = ofx_plugin_programming_guide.html; path = Documentation/ofx_plugin_programming_guide.html; sourceTree = ""; };
+ 1EB1215D1D87F6B5009646F7 /* ofxActionsSupported.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = ofxActionsSupported.rtf; path = Documentation/ofxActionsSupported.rtf; sourceTree = ""; };
+ 1EB1215E1D87F6B5009646F7 /* ofxPropSupported.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = ofxPropSupported.rtf; path = Documentation/ofxPropSupported.rtf; sourceTree = ""; };
+ 1EB1215F1D87F6B5009646F7 /* Presentation.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; name = Presentation.md; path = Documentation/Presentation.md; sourceTree = ""; };
+ 1EB121601D87F6B5009646F7 /* TuttleOFX-README.txt */ = {isa = PBXFileReference; lastKnownFileType = text; name = "TuttleOFX-README.txt"; path = "Documentation/TuttleOFX-README.txt"; sourceTree = ""; };
+ 1EB121621D87F6EE009646F7 /* _group.rst */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = _group.rst; sourceTree = ""; };
+ 1EB121631D87F6EE009646F7 /* _groupChannel.rst */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = _groupChannel.rst; sourceTree = ""; };
+ 1EB121641D87F6EE009646F7 /* _groupColor.rst */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = _groupColor.rst; sourceTree = ""; };
+ 1EB121651D87F6EE009646F7 /* _groupDraw.rst */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = _groupDraw.rst; sourceTree = ""; };
+ 1EB121661D87F6EE009646F7 /* _groupExtra.rst */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = _groupExtra.rst; sourceTree = ""; };
+ 1EB121671D87F6EE009646F7 /* _groupFilter.rst */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = _groupFilter.rst; sourceTree = ""; };
+ 1EB121681D87F6EE009646F7 /* _groupImage.rst */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = _groupImage.rst; sourceTree = ""; };
+ 1EB121691D87F6EE009646F7 /* _groupKeyer.rst */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = _groupKeyer.rst; sourceTree = ""; };
+ 1EB1216A1D87F6EE009646F7 /* _groupMerge.rst */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = _groupMerge.rst; sourceTree = ""; };
+ 1EB1216B1D87F6EE009646F7 /* _groupOther.rst */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = _groupOther.rst; sourceTree = ""; };
+ 1EB1216C1D87F6EE009646F7 /* _groupTime.rst */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = _groupTime.rst; sourceTree = ""; };
+ 1EB1216D1D87F6EE009646F7 /* _groupTransform.rst */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = _groupTransform.rst; sourceTree = ""; };
+ 1EB1216E1D87F6EE009646F7 /* _groupViews.rst */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = _groupViews.rst; sourceTree = ""; };
+ 1EB1216F1D87F6EE009646F7 /* _prefs.rst */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = _prefs.rst; sourceTree = ""; };
+ 1EB121701D87F6EE009646F7 /* _static */ = {isa = PBXFileReference; lastKnownFileType = folder; path = _static; sourceTree = ""; };
+ 1EB121711D87F6EE009646F7 /* _templates */ = {isa = PBXFileReference; lastKnownFileType = folder; path = _templates; sourceTree = ""; };
+ 1EB121721D87F6EE009646F7 /* conf.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = conf.py; sourceTree = ""; };
+ 1EB121731D87F6EE009646F7 /* devel */ = {isa = PBXFileReference; lastKnownFileType = folder; path = devel; sourceTree = ""; };
+ 1EB121741D87F6EE009646F7 /* guide */ = {isa = PBXFileReference; lastKnownFileType = folder; path = guide; sourceTree = ""; };
+ 1EB121751D87F6EE009646F7 /* index.rst */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = index.rst; sourceTree = ""; };
+ 1EB121761D87F6EE009646F7 /* plugins */ = {isa = PBXFileReference; lastKnownFileType = folder; path = plugins; sourceTree = ""; };
+ 1EB121771D87F6EE009646F7 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; };
1EEB0B5B1D1ADF4D00F0D43D /* LICENSE-AGPL-3.0.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "LICENSE-AGPL-3.0.txt"; sourceTree = ""; };
1EEB0B5C1D1ADF4D00F0D43D /* LICENSE-Apache-2.0.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "LICENSE-Apache-2.0.txt"; sourceTree = ""; };
1EEB0B5D1D1ADF4D00F0D43D /* LICENSE-Boost.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "LICENSE-Boost.txt"; sourceTree = ""; };
@@ -391,7 +418,7 @@
1EEB0B911D1ADF4D00F0D43D /* LICENSE-webp.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "LICENSE-webp.txt"; sourceTree = ""; };
1EEB0B921D1ADF4D00F0D43D /* LICENSE-zlib.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "LICENSE-zlib.txt"; sourceTree = ""; };
1EEB0B931D1ADF4D00F0D43D /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; };
- AC77629C1D1ACE460006A58E /* tess.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = tess.xcodeproj; path = libs/libtess/tess.xcodeproj; sourceTree = ""; };
+ AC77629C1D1ACE460006A58E /* tess.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = tess.xcodeproj; path = libs/libtess/tess.xcodeproj; sourceTree = ""; };
ACD67BF71CEC9D0900DD2CFE /* hoedown.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = hoedown.xcodeproj; path = libs/hoedown/hoedown.xcodeproj; sourceTree = ""; };
D7A1963F18B2242500F412DA /* HostSupport.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = HostSupport.xcodeproj; path = HostSupport/HostSupport.xcodeproj; sourceTree = ""; };
/* End PBXFileReference section */
@@ -490,6 +517,12 @@
1E70D15D1CF33A0C000D2932 /* Natron.rc */,
1E70D15E1CF33A0C000D2932 /* OpenColorIO-Configs-README.md */,
1E70D1611CF33A0C000D2932 /* README.md */,
+ 1EB1215C1D87F6B5009646F7 /* ofx_plugin_programming_guide.html */,
+ 1EB1215D1D87F6B5009646F7 /* ofxActionsSupported.rtf */,
+ 1EB1215E1D87F6B5009646F7 /* ofxPropSupported.rtf */,
+ 1EB1215F1D87F6B5009646F7 /* Presentation.md */,
+ 1EB121601D87F6B5009646F7 /* TuttleOFX-README.txt */,
+ 1EB121611D87F6BF009646F7 /* source */,
1EEB0B211D1ADC9A00F0D43D /* components */,
);
name = Documentation;
@@ -541,6 +574,36 @@
name = Products;
sourceTree = "";
};
+ 1EB121611D87F6BF009646F7 /* source */ = {
+ isa = PBXGroup;
+ children = (
+ 1EB121621D87F6EE009646F7 /* _group.rst */,
+ 1EB121631D87F6EE009646F7 /* _groupChannel.rst */,
+ 1EB121641D87F6EE009646F7 /* _groupColor.rst */,
+ 1EB121651D87F6EE009646F7 /* _groupDraw.rst */,
+ 1EB121661D87F6EE009646F7 /* _groupExtra.rst */,
+ 1EB121671D87F6EE009646F7 /* _groupFilter.rst */,
+ 1EB121681D87F6EE009646F7 /* _groupImage.rst */,
+ 1EB121691D87F6EE009646F7 /* _groupKeyer.rst */,
+ 1EB1216A1D87F6EE009646F7 /* _groupMerge.rst */,
+ 1EB1216B1D87F6EE009646F7 /* _groupOther.rst */,
+ 1EB1216C1D87F6EE009646F7 /* _groupTime.rst */,
+ 1EB1216D1D87F6EE009646F7 /* _groupTransform.rst */,
+ 1EB1216E1D87F6EE009646F7 /* _groupViews.rst */,
+ 1EB1216F1D87F6EE009646F7 /* _prefs.rst */,
+ 1EB121701D87F6EE009646F7 /* _static */,
+ 1EB121711D87F6EE009646F7 /* _templates */,
+ 1EB121721D87F6EE009646F7 /* conf.py */,
+ 1EB121731D87F6EE009646F7 /* devel */,
+ 1EB121741D87F6EE009646F7 /* guide */,
+ 1EB121751D87F6EE009646F7 /* index.rst */,
+ 1EB121761D87F6EE009646F7 /* plugins */,
+ 1EB121771D87F6EE009646F7 /* README.md */,
+ );
+ name = source;
+ path = Documentation/source;
+ sourceTree = "";
+ };
1EEB0B211D1ADC9A00F0D43D /* components */ = {
isa = PBXGroup;
children = (
@@ -606,14 +669,14 @@
path = tools/license/components;
sourceTree = "";
};
- AC77629D1D1ACE460006A58E /* Products */ = {
- isa = PBXGroup;
- children = (
- AC7762A31D1ACE460006A58E /* libtess.a */,
- );
- name = Products;
- sourceTree = "";
- };
+ AC77629D1D1ACE460006A58E /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ AC7762A31D1ACE460006A58E /* libtess.a */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
ACD67BF81CEC9D0900DD2CFE /* Products */ = {
isa = PBXGroup;
children = (
diff --git a/README.md b/README.md
index 0196b79a8e..6a2adeff88 100644
--- a/README.md
+++ b/README.md
@@ -94,15 +94,23 @@ Requirements
A machine running one of the supported operating systems (GNU/Linux, OS X,
Microsoft Windows), and a 32-bits x86 or 64-bits x86-64 processor.
-If your OpenGL version is not supported or does not implement the
-required extensions, you will get an error when launching Natron for
-the first time.
-
-The system must support one of these OpenGL configurations:
-- OpenGL 2.0
-- OpenGL 1.5 with the extensions `GL_ARB_texture_non_power_of_two`
- `GL_ARB_shader_objects` `GL_ARB_vertex_buffer_object`
- `GL_ARB_pixel_buffer_object`
+An OpenGL 2.0 compatible graphics card is needed to run Natron (2.1+) with hardware-accelerated rendering. Other graphics cards work with software-only rendering (see below).
+
+The following graphics cards are supported for hardware-accelerated rendering:
+
+* Intel GMA 3150 (Linux-only)
+* Intel GMA X3xxx (Linux-only)
+* Intel GMA X4xxx (Windows 7 & Linux)
+* Intel HD (Ironlake) (Windows 7 & Linux)
+* Intel HD 2000/3000 (Sandy Bridge) (Windows 7/Linux/Mac)
+* Intel HD 4000 and greater (All platforms)
+* Nvidia GeForce 6 series and greater
+* Nvidia Quadro FX and greater
+* Nvidia Quadro NVS 285 and greater
+* ATI/AMD Radeon R300 and greater
+* ATI/AMD FireGL T2-64 and greater (FirePro)
+
+On Windows and Linux you can enable software rendering. On Linux, enable the environment variable LIBGL_ALWAYS_SOFTWARE=1 before running Natron. On Windows, enable the legacy hardware package in the installer.
Installing