1. 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
  2. 13 Oct, 2014 1 commit
  3. 09 Oct, 2014 1 commit
  4. 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
  5. 23 Sep, 2014 1 commit
  6. 11 Aug, 2014 1 commit
    • Christian Schulte zu Berge's avatar
      Two fixes: · 59646d0f
      Christian Schulte zu Berge authored
      * Fixed possible endless loop in event evaluation of AbstractPipeline.
      * Fixed 4-channel image rendering in datacontainerinspector.frag.
      59646d0f
  7. 08 Aug, 2014 4 commits
  8. 07 Aug, 2014 1 commit
  9. 05 Aug, 2014 1 commit
    • Hossain Mahmud's avatar
      Squashed various commits: · dd8e9771
      Hossain Mahmud authored
      relocated mscopysegmentation module
      
      relocated alglib library. Compiler warning level raised to w1 to get rid of float-double conversions.
      
      save results into csv
      akima spline interpolation using alglib, deleting nearest point
      
      alglib library. extensive trimming required
      
      ctrl+wheel zooming, arrow movement, ctrl+z, atl+click_nearest+click to edit _nearest point
      
      multi object, multi location, multi slide contour point/line painting
      
      draft code for addobject deleteobject
      
      added ContourObject class linked with add and delete button.
      
      added a proxy class of Vec4Property/Widget as colorproperty/widget to control drawing color
      
      Conflicts:
      	modules/vis/processors/sliceextractor.cpp
      
      edited DevilImageReader to read multiple files having same name pattern: somePrefix_[number].[extension] given the 1st file name
      
      Worked on DevilImageReader to load single 2d image for 3d rendering
      
      exp_01 commit
      dd8e9771
  10. 03 Aug, 2014 1 commit
    • Christian Schulte zu Berge's avatar
      Finished work on implementing asynchroneous signals: · bc11fde2
      Christian Schulte zu Berge authored
      * Slight changes to the API: renamed signal::trigger() to signal::triggerSignal() and signal::queue() to signal::queueSignal()
      * Replaced all sigslot signal emits through operator() with emits through emitSignal() to enable debug feature.
      * Fixed a possible race condition when deleting a GeometryTransferFunction and its editor window at the same time (as this will happen from different threads).
      
      refs #384
      bc11fde2
  11. 27 Jul, 2014 6 commits
  12. 05 May, 2014 1 commit
  13. 23 Apr, 2014 1 commit
  14. 22 Apr, 2014 1 commit
  15. 07 Apr, 2014 1 commit
    • Christian Schulte zu Berge's avatar
      Moved invalidation level from AbstractProperty to AbstractProcessor: · 293d43dd
      Christian Schulte zu Berge authored
      To now, each property hat an _invalidationLevel field that was evaluated by processors when the property had changed in order to determine what has to be done. However, since properties could also be owned by other classes, this design was semantically misleading.
      Therefore, it was removed with this commit and replaced by the invalidation map of each processor. Now, this per-processor mapping of property -> invalidation level is managed by the processor itself. Furthermore, the invalidation level is no longer setup during property creation but during AbstractProcessor::addProperty(), which also makes much more sense.
      
      ATTENTION: Due to these intrusive API changes, the code of all processors and other classes handling properties needs to be changed. As a reminder, the implementation of addProperty() also now takes a reference instead of a pointer, so that old code does no longer compile.
      
      refs #542
      293d43dd
  16. 04 Apr, 2014 1 commit
  17. 01 Mar, 2014 1 commit
  18. 14 Jan, 2014 1 commit
  19. 13 Jan, 2014 2 commits
    • Christian Schulte zu Berge's avatar
      * Updated VolumeRenderer and VolumeExplorer to use user-defined RaycastingProcessor · 8d26da04
      Christian Schulte zu Berge authored
      * RaycastingProcessor now has the p_targetImageID property and optionally uses a custom GLSL version for the shader
      * Introducing PropertyCollection::getNestedProperty allowing to get nested properties with a single method call
      * Fixed StringUtils::split() methods being broken with multi-character delimiters
      8d26da04
    • Christian Schulte zu Berge's avatar
      Fixing commit 5f72759e: · 56724724
      Christian Schulte zu Berge authored
      C++ implicit conversion rules made ShaderManager::loadSeparate() ambiguous in some cases. So I decided to cut loose ends and completely refactored loading with standard version into ShaderManager::load() and loading with custom version into ShaderManager::loadWithCustomGlslVersion().
      ShaderManager::loadSeparate() is no longer available!
      56724724
  20. 12 Jan, 2014 1 commit
  21. 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
  22. 05 Jan, 2014 1 commit
  23. 04 Jan, 2014 1 commit
  24. 13 Dec, 2013 1 commit
  25. 12 Dec, 2013 1 commit
  26. 06 Dec, 2013 1 commit
  27. 05 Dec, 2013 1 commit
  28. 28 Nov, 2013 2 commits
  29. 30 Oct, 2013 1 commit
  30. 28 Oct, 2013 1 commit