1. 10 May, 2014 15 commits
    • Artur Grunau's avatar
      Disable BUILD_SHARED_LIBS before processing liblua · 32780169
      Artur Grunau authored
      When Lua is included in the build, its CMakeLists.txt enables
      BUILD_SHARED_LIBS if it isn't explicitly disabled. This breaks the build
      as CMake tries and fails to build all of CAMPVis' libraries as shared
      libraries.
      
      Disable BUILD_SHARED_LIBS before including `ext/lua` to prevent that.
      Please note that this is a temporary fix; we'd like to eventually build
      Lua and at least some of CAMPVis' libraries as shared libraries.
      
      References #1
      32780169
    • Artur Grunau's avatar
      Clean up how CAMPVis' Lua modules are built · 2be90976
      Artur Grunau authored
      There were several problems with how CAMPVis' Lua modules were built:
      - modules were placed in the same directory as all other CAMPVis'
        libraries, which polluted Lua's module path and could lead to name
        clashes
      - SWIG interface files included instead of importing one another; this
        resulted in duplicated bindings being generated
      
      To fix these probles place all of CAMPVis' Lua modules in one
      sub-directory and let the code know what that sub-directory is so that
      it can instruct Lua to search it. Moreover, use %import instead of
      %include when one SWIG interface file needs to have access to
      definitions from another one.
      
      References #1
      2be90976
    • Artur Grunau's avatar
      Make a sample Lua pipeline available to the app · 36d964b1
      Artur Grunau authored
      This commit marks the start of work on making Lua pipelines as easy to
      register and instantiate as regular ones. A sample Lua pipeline has been
      made available to the application so that problems with integrating Lua
      pipelines can be discovered and fixed.
      
      References #1
      36d964b1
    • Artur Grunau's avatar
      Modify processor properties in the test Lua pipeline · 32a7ae10
      Artur Grunau authored
      To check if existing bindings for property classes work, the test Lua
      pipeline has been updated to modify processor properties in its init
      method.
      
      References #1
      32a7ae10
    • Artur Grunau's avatar
      Wrap several TransferFunction-related classes · e53c9f06
      Artur Grunau authored
      To make it possible to interact with TransferFunctionProperties from
      Lua, several TransferFunction-related classes have been wrapped.
      
      References #1
      e53c9f06
    • Artur Grunau's avatar
      Fix how the SWIG run-time header is generated · e117d555
      Artur Grunau authored
      The header with SWIG run-time functions was generated in the PRE_BUILD
      phase which is only fully supported by Visual Studio builds. Add an
      explicit dependency on swigluarun.h to the campvis-scripting target to
      make sure that the former exists before the latter is built.
      
      References #1
      e117d555
    • Artur Grunau's avatar
      Lua bindings: wrap and instantiate tgt::Vector4 · 44611576
      Artur Grunau authored
      TGT-related glue code has been moved to a new interface file: tgt.i. It
      wraps and instantiates tgt::Vector2 and (starting with this commit)
      tgt::Vector4.
      
      Many methods of those classes and a lot of typedefs haven't been wrapped
      yet. This will be fixed when necessary in future commits.
      
      References #1
      44611576
    • Artur Grunau's avatar
      Fix out-of-tree and Visual Studio builds · 8079c98c
      Artur Grunau authored
      Out-of-tree builds were broken due to Lua and Swig header files not
      being correcly included. The state of Visual Studio builds was even
      worse: they failed because Lua modules, scripts and libraries were
      misplaced.
      
      The issues mentioned above have been fixed by making the build system
      properly deal with out-of-tree builds and multi-config generators.
      
      References #1
      8079c98c
    • Artur Grunau's avatar
      Lua and C++ parts of a pipeline can now interact · 31df41df
      Artur Grunau authored
      Lua functions invoked by LuaPipeline had no access to the pipeline
      instance and, as a result, couldn't configure or modify it in any way.
      
      In order to make it possible to actually define pipelines in Lua, each
      script can now access the C++ pipeline object it's supposed to augment
      via a global variable named instance. This variable is injected into the
      script by LuaPipeline and can be used to call standard pipeline methods
      (e.g. addProcessor).
      
      The functionality described has been tested by implementing a pipeline
      constructor that creates and registers several processors.
      
      References #1
      31df41df
    • Artur Grunau's avatar
      Make LuaPipeline responsible for creating states · 473dba97
      Artur Grunau authored
      Lua states used to be created externally and passed to LuaPipeline
      objects on instantiation. Because they shouldn't be shared anyway, and
      due to high state-pipeline coupling, states are now created by Lua
      pipelines directly.
      
      References #1
      473dba97
    • Artur Grunau's avatar
      Initial support for pipelines implemented in Lua · b3dba5f4
      Artur Grunau authored
      A new class, LuaPipeline, has been added to the scripting module. It
      provides a way of interfacing with pipelines implemented in Lua.
      
      For the time being only the most basic operations (i.e. init and deinit)
      are supported, but work on making it possible to implement
      fully-functional pipelines in Lua is underway.
      
      References #1
      b3dba5f4
    • Artur Grunau's avatar
      PipelineFactory: accept pipelines registered using functors and lambdas · d15ba3ca
      Artur Grunau authored
      Previously, it was only possible to register a pipeline by providing
      a static function that would create it. To make the registration more
      flexible, PipelineFactory has been updated to also accept pipelines
      registered using functors and lambdas.
      
      References #1
      d15ba3ca
    • Artur Grunau's avatar
      Wrap several CAMPVis classes with SWIG · 4f6b4ba6
      Artur Grunau authored
      To test the feasibility of using SWIG to generate Lua bindings for
      CAMPVis several classes have been wrapped with SWIG interface files.
      
      If version 2.0.11 of SWIG is used to generate bindings, it must be
      patched to fix wrapper compilation errors:
      https://github.com/badshah400/swig/commit/ea4a4e435f721380555fea039bd5dc758eda43ae
      
      References #1
      4f6b4ba6
    • Artur Grunau's avatar
      CMake skeleton of the scripting feature · 82a6d86c
      Artur Grunau authored
      An option to enable CAMPVis scripting has been added to the top level
      CMakeLists.txt. Moreover, a minimal sub-project for the scripting
      feature has been created. There's also a new CMake macro, FindLua, that
      locates Lua's include and library files.
      82a6d86c
    • Artur Grunau's avatar
      Add Lua to external libraries · 564215a7
      Artur Grunau authored
      Lua has been selected to be the scripting language embedded in
      CAMPVis. This commit adds its CMake-enabled version as a submodule to
      the repository.
      
      To build Lua, set the CAMPVIS_BUILD_LIB_LUA option in CMake and
      initialise the Lua submodule using the following Git command:
      git submodule update --init
      
      References #1
      564215a7
  2. 06 May, 2014 4 commits
  3. 05 May, 2014 5 commits
  4. 02 May, 2014 2 commits
  5. 30 Apr, 2014 7 commits
  6. 29 Apr, 2014 3 commits
  7. 28 Apr, 2014 3 commits
  8. 27 Apr, 2014 1 commit