1. 20 Jan, 2016 1 commit
    • Christian Schulte zu Berge's avatar
      Fixed various issues: · 3f6158f3
      Christian Schulte zu Berge authored
      * Fixed deadlock in VolumeRenderer when changing the RaycastingProcessor
      * Fixed compile error in ITK module
      * Fixed some gcc warnings
      * Fixed usage of deprecated ScopedSynchronousGlJobExecution in mainwindow.cpp
      3f6158f3
  2. 15 Jan, 2016 1 commit
    • Christian Schulte zu Berge's avatar
      Moved Qt dependency to Qt5: · 5b20d90c
      Christian Schulte zu Berge authored
      * Updated all CMake scripts to use Qt5
      * CampvisApplication takes care of moving the QGLContext thread affinity to the threads that do the rendering.
      * QtCanvas:resize() is called through Qt signalling to ensure being in GUI thread.
      * Added init and deinit functions to the Runnable interface.
      * minimum required CMake version is now 3.0
      
      refs #249
      5b20d90c
  3. 20 Jul, 2015 1 commit
  4. 10 Apr, 2015 1 commit
  5. 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
  6. 23 Oct, 2014 3 commits
  7. 17 Oct, 2014 1 commit
  8. 16 Oct, 2014 1 commit
  9. 15 Oct, 2014 2 commits
    • 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
  10. 13 Aug, 2014 1 commit
  11. 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
  12. 08 Aug, 2014 1 commit
  13. 07 Aug, 2014 1 commit
  14. 27 Jul, 2014 1 commit
  15. 05 May, 2014 1 commit
  16. 24 Apr, 2014 1 commit
    • Christian Schulte zu Berge's avatar
      Started refactoring the ImageData conversion API: · 0ac65c4f
      Christian Schulte zu Berge authored
      Conversions between image representations are now managed at one central place: The ImageRepresentationConverter singleton uses the proven and established registration through static template instantiation idiom to register conversion functors during static initialization. Therefore, the ConversionFunctionRegistrar registers a conversion functor to a target representation type.
      
      As proof-of-concept implementation, the former conversion API through T::tryConvertFrom, where T is a specific image representation, has been converted to the new API and merged into imagerepresentationconversioncore.h providing a conversion functor for each campvis-core representation.
      
      Furthermore, implemented conversion from ImageRepresentationGL to GenericImageRepresentationLocal<>.
      
      refs #553
      refs #474
      0ac65c4f
  17. 18 Dec, 2013 1 commit
    • Christian Schulte zu Berge's avatar
      *IMPORTANT FIX* Fixes possible crashes/segfaults when converting OpenGL image... · f2102103
      Christian Schulte zu Berge authored
      *IMPORTANT FIX* Fixes possible crashes/segfaults when converting OpenGL image representations to local image representations:
       * ImageRepresentationLocal::tryConvert() does not deadlock anymore when called from OpenGL context and converting from GL representation
       * Fixed possible double deletion after converting from OpenGL to local representation due to ambiguous pointer ownership
       * fixed possible out of bounds array write in tgt::Texture::downloadTextureToBuffer()
      f2102103
  18. 13 Dec, 2013 1 commit
  19. 16 Oct, 2013 1 commit
  20. 15 Oct, 2013 1 commit
  21. 11 Oct, 2013 2 commits
  22. 27 May, 2013 1 commit
  23. 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
  24. 14 Apr, 2013 1 commit
  25. 08 Feb, 2013 1 commit
  26. 02 Nov, 2012 1 commit
  27. 31 Oct, 2012 1 commit
  28. 26 Oct, 2012 1 commit
  29. 27 Sep, 2012 1 commit
  30. 15 Sep, 2012 1 commit
  31. 07 Sep, 2012 1 commit
  32. 06 Sep, 2012 2 commits
  33. 24 Aug, 2012 2 commits
  34. 23 Aug, 2012 1 commit