- 23 Oct, 2014 1 commit
-
-
Christian Schulte zu Berge authored
refs #386
-
- 15 Oct, 2014 2 commits
-
-
Christian Schulte zu Berge authored
Moved AbstractJob and OpenGLJobProcessor from campvis-core to tgt and adapted and cleaned up all necessary includes/references.
-
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.
-
- 30 Sep, 2014 1 commit
-
-
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)
-
- 13 Aug, 2014 1 commit
-
-
Christian Schulte zu Berge authored
Registered testing thread and OpenGL context with OpenGLJobProcessor.
-
- 12 Aug, 2014 1 commit
-
-
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
-
- 11 Aug, 2014 1 commit
-
-
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).
-
- 08 Aug, 2014 1 commit
-
-
Christian Schulte zu Berge authored
-
- 07 Aug, 2014 2 commits
-
-
Christian Schulte zu Berge authored
According to Visual Leak Detector, CAMPVis is now memory leak free. :)
-
Christian Schulte zu Berge authored
* Fixed includes in sigslot.cpp * Implemented memory pools also for AbstractJob using the pool of OpenGLJobProcessor
-
- 27 Jul, 2014 5 commits
-
-
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
-
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
-
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
-
Christian Schulte zu Berge authored
-
Christian Schulte zu Berge authored
-
- 15 Jul, 2014 3 commits
-
-
Christian Schulte zu Berge authored
* CMake build files now support unix builds * SWIG interface files and Lua wrappers are now fully C++ compliant to comfort GCC * Hacked shared/static builds of the campvis-modules module even more, but now it works on both MSVC and GCC
-
Christian Schulte zu Berge authored
-
Christian Schulte zu Berge authored
-
- 14 Jul, 2014 1 commit
-
-
Christian Schulte zu Berge authored
-
- 23 Jun, 2014 2 commits
-
-
Oliver Zettinig authored
-
Jakob Weiss authored
fixed bug in core api: desctructor of Runnable does not account for a missing call to start() before destruction
-
- 16 Jun, 2014 2 commits
-
-
Oliver Zettinig authored
-
Jakob Weiss authored
fixed bug in core api: desctructor of Runnable does not account for a missing call to start() before destruction
-
- 05 May, 2014 1 commit
-
-
Christian Schulte zu Berge authored
-
- 27 Apr, 2014 1 commit
-
-
Hossain Mahmud authored
google test merge request feedback reviewed. addressed all necessary major and minor issues that were pointed out; and hopefully fixed my stupidity in LinearMapping::operator==
-
- 24 Apr, 2014 2 commits
-
-
Christian Schulte zu Berge authored
Removed all code fragments in core code that was ITK specific (conversion from/to GenericImageRepresentationItk). The functionality was replaced by the new conversion functors in imagerepresentationconversionitk.h and imagerepresentationconversionitk.cpp. refs #553 refs #474
-
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
-
- 23 Apr, 2014 4 commits
-
-
Hossain Mahmud authored
-
Hossain Mahmud authored
-
Hossain Mahmud authored
-
Hossain Mahmud authored
added the documentation (brief). added test class for StringUtils. trimmed out the redundant code segments.
-
- 25 Mar, 2014 1 commit
-
-
Christian Schulte zu Berge authored
Removed AbstractImage::getSubImage() interface since it's implementation in all subclasses is far from trivial and therefore was not done thoroughly. Since the functionality was not used anywhere so far, it was removed to avoid unexperienced users trying to use it and getting confused if it does not work as intended. Could be reimplemented in extra processors for special cases. closes #339
-
- 02 Mar, 2014 1 commit
-
-
Christian Schulte zu Berge authored
* Fixed duplicate symbols of template specialized TextFileParser::readAndParseItems<TextFileParser::ItemSeparatorLines> due to forced inline
-
- 01 Mar, 2014 1 commit
-
-
Christian Schulte zu Berge authored
Builds and runs fine so far, but no elaborate testing done yet. Compiler throws a bunch of C4275 warning, since sigslot:has_slots<> is used in exported classes but is itself not exported. While this is no direct problem for campvis-internal builds, it should still be fixed some time. refs #377
-
- 24 Jan, 2014 1 commit
-
-
Christian Schulte zu Berge authored
-
- 13 Jan, 2014 2 commits
-
-
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
-
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!
-
- 12 Jan, 2014 1 commit
-
-
Christian Schulte zu Berge authored
Fixed GlReduction, now working reliably for 2D and for 3D images. Added test pipeline GlReduction test.
-
- 11 Jan, 2014 1 commit
-
-
Christian Schulte zu Berge authored
* Introducing MultiIndexedGeometry data type * Introducing GeometryDataFactory::createTeapot()
-
- 02 Jan, 2014 1 commit
-
-
Christian Schulte zu Berge authored
-