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. 27 Jul, 2014 1 commit
  3. 30 May, 2014 1 commit
  4. 05 May, 2014 2 commits
  5. 11 Mar, 2014 1 commit
  6. 13 Jan, 2014 1 commit
    • 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
  7. 13 Dec, 2013 1 commit
  8. 15 Oct, 2013 1 commit
  9. 11 Oct, 2013 1 commit
  10. 08 Oct, 2013 3 commits
  11. 27 Sep, 2013 1 commit
  12. 24 Sep, 2013 1 commit
  13. 21 Sep, 2013 1 commit
    • Artur Grunau's avatar
      Fix the redrawing of threaded GL canvases · 5fbb429e
      Artur Grunau authored
      QtThreadedCanvas used to ignore all repaint events send to it by Qt in
      order to avoid problems with threading. As a result, however, it would
      become blank when docked/undocked, and display garbage in those of its
      regions that some other widgets have moved over.
      
      To fix this, the API of TGT's Painter class had to be slightly modified
      and now mirrors that of Canvas with regard to painting-related
      operations. The paint method has been made protected; it's supposed to
      implement the painting logic and shouldn't be called directly. A public
      repaint method has been introduced to let canvases notify their
      associated painters that they need to be redrawn. The default
      implementation simply calls paint() immediately; threaded painters,
      however, override it to schedule render jobs that run in separate
      threads.
      
      All existing threaded painters have been updated to reduce the
      visibility of their paint methods and provide public repaint functions.
      Consequently, QtThreadedCanvas can now properly handle repaint events by
      delegating to its associated painter's repaint method.
      5fbb429e
  14. 04 Sep, 2013 1 commit
  15. 10 Feb, 2013 1 commit
  16. 05 Feb, 2013 2 commits
  17. 18 Jan, 2013 1 commit
  18. 02 Nov, 2012 1 commit
  19. 31 Oct, 2012 1 commit
  20. 26 Oct, 2012 1 commit
  21. 29 Aug, 2012 1 commit
  22. 23 Aug, 2012 1 commit
  23. 22 Aug, 2012 1 commit
  24. 13 Aug, 2012 1 commit
  25. 10 Aug, 2012 2 commits
  26. 08 Aug, 2012 1 commit
    • schultezub's avatar
      Tidied up GLSL includes: · 030250bf
      schultezub authored
       * samplerXd.frag is now textureXd.frag
       * TextureParameters is now TextureXd and contains also the handle to the GLSL texture2d.frag
       * simplified getElementXd footprint: now only one texture parameter
       * adapted bind() methods of textures
      
      git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@220 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
      030250bf
  27. 06 Aug, 2012 1 commit
  28. 26 Jul, 2012 1 commit
  29. 25 Jul, 2012 2 commits
  30. 24 Jul, 2012 2 commits
  31. 23 Jul, 2012 1 commit
    • schultezub's avatar
      It took quite some time, but this commit introduces thread-safe management and... · 1302ca97
      schultezub authored
      It took quite some time, but this commit introduces thread-safe management and access to multiple OpenGL contexts.
       * added tgt::QtContextManager for managing multiple OpenGL contexts
       * adapted tgt::GLContext and tgt::QtGLContext, tgt::QtThreadedPainter
       * added PipelineEvaluator for evaluating pipelines in separate threads
       * added various lock/sync features to processors, pipelines, and processors
      
      However, there's still plenty of clean-up work to do: some parts of the tgt library are quite messed up and the core library interfaces need some polishing...
      
      
      git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@195 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
      1302ca97
  32. 20 Jul, 2012 1 commit
  33. 19 Jul, 2012 1 commit