2.12.2021, 9:00 - 11:00: Due to updates GitLab may be unavailable for some minutes between 09:00 and 11:00.

  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. 15 Oct, 2014 3 commits
    • Christian Schulte zu Berge's avatar
    • 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
  3. 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
  4. 08 Aug, 2014 2 commits
  5. 07 Aug, 2014 1 commit
  6. 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
  7. 27 Jul, 2014 2 commits
  8. 05 May, 2014 1 commit
  9. 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
  10. 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
  11. 13 Dec, 2013 1 commit
  12. 15 Oct, 2013 1 commit
  13. 11 Oct, 2013 1 commit
  14. 09 Oct, 2013 1 commit
  15. 08 Oct, 2013 2 commits
  16. 27 Sep, 2013 1 commit
  17. 24 May, 2013 1 commit
  18. 14 May, 2013 1 commit
  19. 12 May, 2013 1 commit
    • schultezub's avatar
      Various changes to improve threading behaviour and coding conveniene: · 694a519e
      schultezub authored
       * Moved destruction of ReferenceCounted object to seperate thread (thus unloading rendering thread)
       * integration of OpenGL garbage collector into OpenGLJobProcessor (finally, you don't need to care anymore whether your code might call a GL object destructor and hence needs an OpenGL context)
       * changed DataContainer implementation from mutex/lock to concurrent container
       * fixing improper order of GL object deinitilization on program exit
      
      git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@492 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
      694a519e
  20. 23 Feb, 2013 1 commit
  21. 10 Feb, 2013 1 commit
  22. 08 Feb, 2013 1 commit
  23. 05 Feb, 2013 2 commits
  24. 28 Jan, 2013 1 commit
  25. 08 Jan, 2013 1 commit
  26. 08 Nov, 2012 1 commit
  27. 04 Nov, 2012 1 commit
  28. 02 Nov, 2012 1 commit
  29. 31 Oct, 2012 1 commit
  30. 26 Oct, 2012 1 commit
  31. 21 Sep, 2012 1 commit
  32. 10 Sep, 2012 1 commit
  33. 27 Aug, 2012 1 commit