Pixar's Devkit
Cutter's Devkit Authoring Environment


return to main index



Overview of the Features

Cutter supports many of the RenderMan's API's and RIS API for writing and compiling/building plugins and executibles. The API's enable the development of a variety of plugins and executables that extend the capabilities of the RenderMan system. Cutter incorporates a number of features intended to ease the task of writing, developing, compiling and linking devkit DSOs and executables. In effect, Cutter implements a simple and easy to use devkit authoring environment. Cutter can assist users to develop the following devkit plugins and executables.

    RixPatterns,
    RixIntegrator, 
    RixLightFilter, 
    RixDisplayFilter,
    Ri filters,
    Procedural Primitives,
    Implicit Surfaces,
    PointClouds,
    BrickMaps,
    Deep textures.
Compiling and Linking

Cutter's most important feature is that devkit ".c" and ".cpp" files can be compiled and linked without the need for the user to write and maintain their own Makefiles (OSX and Linux) or Windows "make" .bat files. Refer to the tutorial "Cutter - Compiling and Building Plugins"


Finding Items Defined in a Header File

Right-mouse clicking on an item will raise the following popup.




Figure 1


Choosing the Find in "XXXX" will open the header file. Cutter will automatically search for the first instance of the "item". It will also open the Find/Replace Tool. Clicking Find Next will step through the header file.



Figure 2

Opening Header Files

Header files can be conveniently opened by right-mouse clicking in the name of the #include file. Cutter automatically "expands" the selection to the boundaries of the file name - there is no need for the user to manually select the full name of the header file. Using the keyboard shortcut contol+O, alt+O or Apple+O will open the header file.


Preferences

The path to the installation of "RenderManProServer-XX.0" must be specified for RPS Root. If the reader is also using RenderMan for Maya the path to the installation directory of "RenderManForMaya-XX.0-maya20XX" should be also specified for RfM Root.

The preference setting for Pixar's documentation is also shown in figure 3. The path should be "https://renderman.pixar.com/resources/current/RenderMan/home.html" - although this may change as Pixar introduces more documentation.



Figure 3


The preferences for the "Pixar Devkit" are shown in figure 4. In most cases the prefs will not require editing.



Figure 4


Depending on whether the reader is using Windows or Linux/MacOSX Cutter will display the panel of the Cpp as shown in figure 5 and figure 6. For Windows the Microsoft Visual Studio path must point to the location of a file named "vcvars64.bat". For example, if the user has Visual Studio version 14 installed the path would be,


C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\vcvars64.bat

For Linux/OSX the default compiler is "gcc". However, in practice the compiler specified by a makefile that is automatically generated by Cutter will vary from "gcc" to "g++" depending the type of plugin the user is compiling/building. However, the user's "extra flags" will always be used by Cutter's makefiles.



Figure 5 - Cpp for Windows


Figure 6 - Cpp for Linux/MacOSX


The next section explains how the compilation and linking of DSOs and executables can customized.


Custom Compilation & Linking

Upon receiving the keyboard shortcut control+e or alt+e, Cutter attempts to compile and link the DSO or executable for the source code file that is open on it's desktop. It does so by running a Makefile (Linux and OSX) or a Windows VS .bat file. The makefile or .bat file can originate from templates found in one of two locations.
    - Cutter_Help/templates/
    - custom_templates/

A template looks like an ordinary Makefile or VS .bat file except that it includes placeholders that are replaced by text after it has been copied to the directory in which the source code is located. For example, depending on the version of RenderManProServer installed on the users computer, the placeholder "_DEVKIT_PATH_"
would be substituted on Linux by,
    /opt/pixar/RenderManProServer-21.0
Cutter automatically selects a template based on the users operating system and the type of DSO or executable that should be built. The "library" of templates used by Cutter can be accessed via the main menu bar - figure 7.



Figure 7


Linux and MacOSX

Once Cutter has generated and saved the appropriate Makefile in the same director as the C or C++ source code file it is automatically run using the command,
    make -f Makefile.name_of_users_source_file


Windows

Cutter copies the text from the "vcvarsamd64_x86.bat" file and appends the text from the appripriate VS .bat file, and like linux/OSX, it automatically runs the composite script using the command,
    cmd /Q /C Build.name_of_users_source_file.bat


Custom Compilation & Linking

Users can copy and modify the default makesfiles and VS .bat and save them to a directory called "custom_tempates" that can be found in the same directory as cutter.jar. Cutter always tries to use a customized template makefile or VS .bat file before resorting to its own templates. A table of "placeholders" and their values are shown next.


Placeholder

Substitution derived from

  _DEVKIT_PATH_
  _XXXX_EXE_NAME_
  _OTHER_INCLUDE_DIRS_
  _OTHER_LIB_DIRS_
  _OTHER_LIBS_
  _OTHER_OBJS_
  Prefs->Rman->RPS Root
  Name of the source file
  Prefs->"include" dirs
  Prefs->"include" dirs
  Prefs->.lib
  Prefs->.o (see below)




© 2002- Malcolm Kesson. All rights reserved.