- 15 Oct, 2014 1 commit
-
-
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.
-
- 13 Aug, 2014 1 commit
-
-
Christian Schulte zu Berge authored
Registered testing thread and OpenGL context with OpenGLJobProcessor.
-
- 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 1 commit
-
-
Christian Schulte zu Berge authored
According to Visual Leak Detector, CAMPVis is now memory leak free. :)
-
- 27 Jul, 2014 1 commit
-
-
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
-
- 05 May, 2014 1 commit
-
-
Christian Schulte zu Berge authored
-
- 24 Apr, 2014 1 commit
-
-
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
-
- 18 Dec, 2013 1 commit
-
-
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()
-
- 13 Dec, 2013 1 commit
-
-
Christian Schulte zu Berge authored
* Moving to Apache 2.0 license * Updated AUTHORS.txt
-
- 16 Oct, 2013 1 commit
-
-
Christian Schulte zu Berge authored
Fixed missing/wrong deregistration of GeometryXdTransferFcuntionEditors when their widgets are closed (and hence the GL contexts destroyed)
-
- 15 Oct, 2013 1 commit
-
-
Sebastian Pölsterl authored
-
- 11 Oct, 2013 2 commits
-
-
Christian Schulte zu Berge authored
-
Christian Schulte zu Berge authored
Work on Issue #44: Removed GLContext interface and merged functionality into GlCanvas. Introducing abstract (Qt-free) tgt::GlContextManager interface, being implemented by tgt::QtContextManager. Further clean up of related code.
-
- 27 May, 2013 1 commit
-
-
schultezub authored
git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@495 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 12 May, 2013 1 commit
-
-
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
-
- 14 Apr, 2013 1 commit
-
-
schultezub authored
fixed further 64bit warnings git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@479 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 08 Feb, 2013 1 commit
-
-
schultezub authored
git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@461 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 02 Nov, 2012 1 commit
-
-
schultezub authored
git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@338 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 31 Oct, 2012 1 commit
-
-
schultezub authored
git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@335 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 26 Oct, 2012 1 commit
-
-
schultezub authored
git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@326 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 27 Sep, 2012 1 commit
-
-
schultezub authored
* added OpenGLJobProcessor::deregisterContext() git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@309 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 15 Sep, 2012 1 commit
-
-
schultezub authored
git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@304 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 07 Sep, 2012 1 commit
-
-
schultezub authored
some minor tweaks git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@291 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 06 Sep, 2012 2 commits
-
-
schultezub authored
git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@288 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
schultezub authored
git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@286 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 24 Aug, 2012 2 commits
-
-
schultezub authored
* added CameraProperty::setWindowRatio() * improved OpenCL error reporting git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@257 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
schultezub authored
* fixed kisscl::CommandQueue destructor * documented OpenGLJobProcessor scheduling strategy git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@254 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 23 Aug, 2012 2 commits
-
-
schultezub authored
git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@253 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
schultezub authored
* started converting old multi-threaded OpenGL code to new job-concept * painter and evaluator of a VisualizationPipeline now share the same OpenGL context git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@252 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 22 Aug, 2012 1 commit
-
-
schultezub authored
* introducing OpenGLJobProcessor (the name somehow sucks...) * renamed JobPool to PriorityPool (still needs some work) * AbstractPipeline::executeProcessor() now takes a pointer as argument (necessary for job pattern) git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@251 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 10 Aug, 2012 1 commit
-
-
schultezub authored
* added update_legal_header.py script for updating the legal header in all code files of the project * ran the file => all TUMVis source files now contain the legal header git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@231 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 06 Aug, 2012 1 commit
-
-
schultezub authored
* added DataHandle::removeData * include/forward declaration clean-up git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@208 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 24 Jul, 2012 3 commits
-
-
schultezub authored
* QtContextManager uses QtThreadedCanvas * cleaned up tgt git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@198 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
schultezub authored
git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@197 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
schultezub authored
* added Runnable interface * started letting PipelineEvaluator manage its thread itself * documentation git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@196 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 23 Jul, 2012 1 commit
-
-
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
-