1. 10 Feb, 2016 1 commit
  2. 20 Jul, 2015 1 commit
  3. 16 Jul, 2015 1 commit
  4. 29 Jun, 2015 1 commit
  5. 13 Apr, 2015 1 commit
  6. 10 Apr, 2015 1 commit
    • Christian Schulte zu Berge's avatar
      Major fix for AMD GPUs. · 083a730a
      Christian Schulte zu Berge authored
      Apparently, glBindAttribLocation() does not work as planned with AMD GPUs. Therefore, all Shaders yielded black images. Replaced all attribute locations with hard-coded ones in the vertex shader and removed corresponding convenience function from cgt::Shader.
      
      refs #382
      083a730a
  7. 18 Feb, 2015 1 commit
  8. 12 Feb, 2015 1 commit
  9. 06 Feb, 2015 6 commits
  10. 16 Jan, 2015 1 commit
  11. 05 Dec, 2014 1 commit
    • Christian Schulte zu Berge's avatar
      Completely refactored and cleaned up cgt::Texture interface: · 3df24932
      Christian Schulte zu Berge authored
      * cleaned up cgt::Texture's constructors: only two left - to create an empty texture or a non-empty one
      * cgt::Texture will no longer hold a copy of the image data in local memory
      * removed a lot of redundant/confusing methods
      * no longer needed to call uploadTexture() even though you don't want to upload sth.
      * Adapted all known code to the new interface
      * Removed cgt::TextureReaderDevil
      
      refs #613
      3df24932
  12. 23 Oct, 2014 3 commits
  13. 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
  14. 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
  15. 13 Aug, 2014 1 commit
  16. 12 Aug, 2014 1 commit
    • Christian Schulte zu Berge's avatar
      Hotfix for DevilImageReader from recent merge: · 0794b27f
      Christian Schulte zu Berge authored
      * AbstractImageReader is now again an AbstractProcessor, so that we can get rid of the dynamic_casts in GenericImageReader
      * DevilImageReader is no longer a VisualizationProcessor but gets the OpenGL context through OpenGLJobProcessor::ScopedSynchronousGlJobExecution
      * Fixed alglib's CMakeLists.txt
      0794b27f
  17. 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
  18. 08 Aug, 2014 1 commit
  19. 07 Aug, 2014 2 commits
  20. 27 Jul, 2014 5 commits
    • 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
    • Christian Schulte zu Berge's avatar
      Started working on Issue implementing asynchroneous signals with signalslot: · 30e14065
      Christian Schulte zu Berge authored
      * Moved campvis::Runnable interface to tgt namespace (since it's needed by sigslot, which only depends on tgt)
      * Introduced sigslot::signal_manager singleton class that will manage the dispatching of signals in its own thread
      * Started proof-of-concept implementation of asynchroneous signals for signal0<> and signal1<>. Both classes define their own signal_handleN deriving from _signal_handle_base, which defines the signal to dispatch.
      
      Proof-of-concept implementation seems to work so far.
      
      refs #384
      
      Conflicts:
      	core/tools/opengljobprocessor.h
      	ext/tgt/runnable.h
      
      Conflicts:
      	application/CMakeLists.txt
      	core/tools/opengljobprocessor.h
      30e14065
    • Christian Schulte zu Berge's avatar
      Introducing C++11 support switch for <thread> and <condition_variable>. · c488b267
      Christian Schulte zu Berge authored
      If you need one of these two C++11 headers, include <ext/threading.h> instead, which will use C++11 headers if present or TBB's compatibility layer otherwise.
      
      closes #567
      c488b267
    • Christian Schulte zu Berge's avatar
    • Christian Schulte zu Berge's avatar
  21. 15 Jul, 2014 3 commits
  22. 14 Jul, 2014 1 commit
  23. 23 Jun, 2014 2 commits
  24. 16 Jun, 2014 1 commit