1. 19 Jul, 2017 1 commit
  2. 29 Sep, 2016 1 commit
    • Jakob Weiss's avatar
      Fullscreen and Thread Names on Windows · 03041535
      Jakob Weiss authored
      * Debug Feature: Thread names for pipelines and some important active threads show in debugger
      * fullscreen can be toggled per pipeline via the pipeline property and via ALT+Return key combination
      03041535
  3. 23 Jul, 2015 1 commit
    • Christian Schulte zu Berge's avatar
      Added a field _pipelineName to AutoEvaluationPipeline. This allows to... · 12f36262
      Christian Schulte zu Berge authored
      Added a field _pipelineName to AutoEvaluationPipeline. This allows to implement AutoEvaluationPipeline::getName() so that AutoEvaluationPipeline is no longer abstract. Consequently, the LuaPipeline is no longer needed.
      
      This change was also used to change the AbstractPipeline constructor signature to pass-by-reference instead of pass-by-pointer for the pipeline's DataContainer. This presents the semantics more clearly since the DataContainer must not be 0.
      12f36262
  4. 21 Jul, 2015 1 commit
  5. 20 Jul, 2015 1 commit
  6. 16 Jul, 2015 1 commit
  7. 02 Jul, 2015 1 commit
  8. 12 Jun, 2015 1 commit
  9. 09 Apr, 2015 2 commits
  10. 23 Mar, 2015 2 commits
  11. 11 Dec, 2014 1 commit
    • Christian Schulte zu Berge's avatar
      Improved implementation of the Runnable interface: · 0314b02a
      Christian Schulte zu Berge authored
      * Added new common base class RunnableWithConditionalWait that directly includes the std::condition_variable
      * RunnableWithConditionalWait::stop() notifies the condition variable repeatedly as long until the thread has stopped. This avoids program hangs at shutdown due to race conditions.
      0314b02a
  12. 29 Oct, 2014 2 commits
  13. 28 Oct, 2014 1 commit
  14. 23 Oct, 2014 2 commits
  15. 16 Oct, 2014 1 commit
  16. 15 Oct, 2014 1 commit
    • 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
  17. 30 Sep, 2014 1 commit
    • Jakob Weiss's avatar
      some improvements to the core api · ddfa21e1
      Jakob Weiss authored
      * AbstractPipeline offers getter for the canvas to execute jobs in the pipeline's OpenGL context
      * PropertyCollectionWidget adds a spacer element at the end to prevent element stretching when there is too much free space
      * job.h offers new CallFunctionObjectJob to create jobs on the fly using lambda functions (the respective makeJob and makeJobOnHeap are inlined to prevent linker errors)
      ddfa21e1
  18. 08 Aug, 2014 1 commit
  19. 27 Jul, 2014 3 commits
    • Christian Schulte zu Berge's avatar
      Removed all occasions where references to DataHandles were used, since... · 0249b136
      Christian Schulte zu Berge authored
      Removed all occasions where references to DataHandles were used, since especially their use in signals may lead to segfaults or other undesired behavior.
      0249b136
    • Christian Schulte zu Berge's avatar
      Removed unlockInExtraThread flag from AbstractProcessor::process() - this is... · 4700bbba
      Christian Schulte zu Berge authored
      Removed unlockInExtraThread flag from AbstractProcessor::process() - this is no longer needed as signal handling is done asynchroneously now anyway.
      
      #ref 384
      
      Conflicts:
      	core/pipeline/abstractprocessor.cpp
      
      Conflicts:
      	core/pipeline/abstractprocessor.cpp
      	core/pipeline/abstractprocessor.h
      4700bbba
    • Christian Schulte zu Berge's avatar
      Introducing sigslot::concurrent_pointer_list<T> a list-like container allowing... · 8671e65c
      Christian Schulte zu Berge authored
      Introducing sigslot::concurrent_pointer_list<T> a list-like container allowing thread-safe bidirectional iteration, insertion and removal of elements. Single constraint is that the element type must be a pointer type (or at least have pointer semantics) and never be 0. This is neat, as this class offers exactly what we need for a lock-free sigslot implementation.
      
      Updated sigslot implementation to use concurrent_pointer_list for connection storage. Hence, we can get rid of the locking mechanisms, which got completely removed.
      
      Since this simplified template definitions for sigslot, many campvis files needed to be adapted (i.e. removing the <> from has_slots<> and signal0<>).
      
      refs #384
      
      Conflicts:
      	core/classification/genericgeometrytransferfunction.h
      	core/eventhandlers/trackballnavigationeventlistener.h
      	core/pipeline/processordecoratormasking.h
      	core/properties/propertycollection.h
      	core/properties/transferfunctionproperty.h
      	core/tools/opengljobprocessor.h
      8671e65c
  20. 05 May, 2014 1 commit
  21. 01 Mar, 2014 1 commit
  22. 08 Jan, 2014 1 commit
    • Christian Schulte zu Berge's avatar
      Refactoring AbstractProcessor::process() for clearer semantics and better and... · cd9d3feb
      Christian Schulte zu Berge authored
      Refactoring AbstractProcessor::process() for clearer semantics and better and more uniform handling of invalidation levels:
       * AbstractProcessor::process() now calls updateShader(), updateProperties() and/or updateResult() with respect to the current invalidation level
       * each processor shall no longer override process() but the updateXYZ() methods, at minimum updateResult()
       * AbstractProcessor::process() takes care of (un)locking the processor itself (no need to do this from the outside anymore)
      
      Further implicit changes:
       * Removed redundant HasPropertyCollection::updateProperties()
      cd9d3feb
  23. 13 Dec, 2013 1 commit
  24. 15 Oct, 2013 2 commits
  25. 08 Oct, 2013 4 commits
  26. 27 Sep, 2013 1 commit
  27. 24 May, 2013 1 commit
  28. 23 Feb, 2013 1 commit
  29. 11 Feb, 2013 1 commit
  30. 08 Feb, 2013 1 commit