1. 17 Oct, 2014 2 commits
    • Christian Schulte zu Berge's avatar
      * Tied tgt::OpenGLJobProcessor and tgt::OpenGLGarbageCollector closer together... · a1f23eb3
      Christian Schulte zu Berge authored
      * Tied tgt::OpenGLJobProcessor and tgt::OpenGLGarbageCollector closer together regarding OpenGL garbage collection
      * AutoEvaluationPipeline checks for valid OpenGL state after each processor call (only in debug)
      a1f23eb3
    • Christian Schulte zu Berge's avatar
      Various fixes/improvements · 25e14d19
      Christian Schulte zu Berge authored
      * Fixed AutoEvaluationPipeline missing some updates
      * Fixed AutoEvaluationPipeline::executePipeline() to execute processors too often
      * Fixed ParticleFlowRenderer overwriting bound FBO
      * Added Debug checks to tgt::FramebufferObject and tgt::Shader to print warnings when FBO/Shader activation would overwrite an already active FBO/Shader
      25e14d19
  2. 16 Oct, 2014 1 commit
  3. 15 Oct, 2014 3 commits
    • Christian Schulte zu Berge's avatar
      Let tgt::OpenGLGarbageCollector issue its garbage collection request to... · afa7bd28
      Christian Schulte zu Berge authored
      Let tgt::OpenGLGarbageCollector issue its garbage collection request to tgt::OpenGLJobProcessor to get this done in a background thread.
      afa7bd28
    • Christian Schulte zu Berge's avatar
      Moved AbstractJob and OpenGLJobProcessor from campvis-core to tgt and adapted... · fb8b1880
      Christian Schulte zu Berge authored
      Moved AbstractJob and OpenGLJobProcessor from campvis-core to tgt and adapted and cleaned up all necessary includes/references.
      fb8b1880
    • Christian Schulte zu Berge's avatar
      Started refactoring the CAMPVis OpenGL Wrapping API: · 58512d30
      Christian Schulte zu Berge authored
      The new OpenGL wrapping API allows for full multi-threaded access to OpenGL contexts. Instead of one single thread scheduling all OpenGL jobs for all contexts, the new GlContextManager allows for OpenGL access from multiple threads while ensuring that each OpenGL context is acquired by only one thread at a time.
      
      Detailed list of changes:
      * tgt::GlContextManager keeping track of which threads acquire which OpenGL contexts and which threads currently have a context acquired.
      * OpenGLJobProcessor does no longer schedules and execute the OpenGL calls for all existing contexts, but only for one single context that can be used for background tasks or other jobs that explicitly need a valid OpenGL context.
      * AbstractPipeline now implements the Runnable interface and thus runs in it's own thread. This thread also owns the pipeline's OpenGL context.
      * AbstractPipeline has a new pure virtual method executePipeline() that has to perform all computations done by the pipeline.
      * AbstractPipeline now takes directly care of calling Painter::paint() of the pipeline's canvas (instead of signalling the Painter). However, the Painter interface needs further cleanup.
      * AutoEvaluationPipeline was adapted to the new AbstractPipeline API, hence executing processors is no longer delegated to the OpenGLJobProcessor or the SimpleJobProcessor but entirely done in AutoEvaluationPipeline::executePipeline() and thus in the pipeline's thread.
      * Adjusted CampVisApplication, DataContainerInspectorWidget, and GeometryTransferFunctionEditor to the new API.
      58512d30
  4. 07 Oct, 2014 1 commit
  5. 30 Sep, 2014 1 commit
  6. 11 Aug, 2014 1 commit
    • Christian Schulte zu Berge's avatar
      Fixed assertion in campvis-test: · 2a2ff2b5
      Christian Schulte zu Berge authored
      campvis-test does not use OpenGLJobProcessor and only initializes it halfway. However, some CAMPVis functionality relies on that. Therefore, I introduced a hack/workaround to set the OpenGL thread manually if you need to.
      
      Furthermore, added exit(EXIT_FAILURE) to recursive assertions to avoid possible endless assertion loops in campvis-test (and thus amok running jobs in Jenkins).
      2a2ff2b5
  7. 07 Aug, 2014 3 commits
  8. 03 Aug, 2014 1 commit
  9. 02 Aug, 2014 2 commits
    • Christian Schulte zu Berge's avatar
      Introducing cool debug functionality to sigslot library. · d07ebc73
      Christian Schulte zu Berge authored
      When compiled with CAMPVIS_DEBUG, all signals carry additional information on the calling function, file and line. This is realized transparently through some macro magic when client code emits signals through the new emitSignal() method. Unfortunately, there is no way to debug-overload the operator(), hence, while this way of emitting signals remains valid, it cannot write the debug information into the signal handle.
      
      To avoid symbol conflicts, _connection_base::emitSignal() and has_slots::emitSignal() had to be renamed to ::processSignal().
      
      refs #384
      d07ebc73
    • Christian Schulte zu Berge's avatar
      Adjusting the testing framework to the new sigslot API. · bcbb5fdb
      Christian Schulte zu Berge authored
      Introducing SignalHandlingMode to signal_manager to allow forcing all signals being handled directly (needed for test-campvis) or queued.
      
      refs #384
      bcbb5fdb
  10. 01 Aug, 2014 1 commit
  11. 27 Jul, 2014 11 commits
  12. 15 Jul, 2014 1 commit
    • Christian Schulte zu Berge's avatar
      Fixed GCC compatability of scripting module: · 92c3bdef
      Christian Schulte zu Berge authored
      * CMake build files now support unix builds
      * SWIG interface files and Lua wrappers are now fully C++ compliant to comfort GCC
      * Hacked shared/static builds of the campvis-modules module even more, but now it works on both MSVC and GCC
      92c3bdef
  13. 10 Jul, 2014 1 commit
  14. 31 May, 2014 1 commit
    • Christian Schulte zu Berge's avatar
      Started implementation of a Lua console in campvis-application. · a33ee468
      Christian Schulte zu Berge authored
      With scripting enabled, the main window now has an additional scripting widget that allows to interact with a Lua VM. The current proof-of-concept implementation creates a Lua VM for every instantiated CAMPVis pipeline while the console just interacts with the first pipeline's one.
      However, the Lua VM concept has to be reiterated later anyway. It may make more sense to have just a single central Lua VM for the entire application, which is shared by each pipeline.
      a33ee468
  15. 11 May, 2014 1 commit
    • Artur Grunau's avatar
      Update the Lua submodule to the newest version · 2a838d8f
      Artur Grunau authored
      The CMake-enabled version of Lua that CAMPVis' scripting layer uses
      hasn't been updated in a while. Synchronise it with upstream now that
      we're getting ready to merge the `swig` branch in.
      
      References #1
      2a838d8f
  16. 10 May, 2014 5 commits
    • Artur Grunau's avatar
      Add support for all signal arities to SWIG wrappers for siglot · 9ee1138f
      Artur Grunau authored
      SWIG wrappers for siglot only supported unary signals until now. This
      commit adds support for all remaining signal arities to make it possible
      to connect to arbitrary signals from Lua.
      
      The implementation makes heavy use of templates but, due to the
      limitations of VS 2010 (no variadic templates), still contains lots of
      duplicated boilerplate code.
      
      `sigslot.i` has been moved from `scripting/` to `ext/sigslot/` to keep
      it close to the code it's wrapping.
      
      References #1
      9ee1138f
    • Artur Grunau's avatar
      Lua bindings: wrap tgt::Vector3 and tgt::Camera · 1fc1219c
      Artur Grunau authored
      As a prerequisite to wrapping campvis::CameraProperty, bindings for two
      new classes from TGT have been added: tgt::Vector3 and tgt::Camera.
      
      References #1
      1fc1219c
    • Artur Grunau's avatar
      Finalise the implementation of the first Lua pipeline · 818c79cc
      Artur Grunau authored
      Now that TGT and campvis-core can be built as shared libraries, the few
      remaining issues with the first Lua pipeline could be tracked and fixed.
      As a result, the pipeline can be executed without any issues, and its
      functionality exactly corresponds to that of ResamplingDemo. To achieve
      this, several additional classes, methods and constants had to be
      wrapped.
      
      References #1
      818c79cc
    • Artur Grunau's avatar
      Lua scripting: rearrange interface files · 382d1c52
      Artur Grunau authored
      All interface files used to live under `scripting/`. However, that
      separated them from the code they were binding and clustered them
      unnecessarily.
      
      Make each interface file part of the CAMPVis component whose code it's
      binding. This fixes the issues mentioned above and makes it possible to
      build Lua modules conditionally, depending on what components of CAMPVis
      are enabled.
      
      References #1
      382d1c52
    • 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
  17. 30 Apr, 2014 1 commit
  18. 28 Apr, 2014 1 commit
  19. 27 Apr, 2014 1 commit
  20. 23 Apr, 2014 1 commit