- 29 Oct, 2014 1 commit
-
-
Christian Schulte zu Berge authored
Introducing AbstractPipeline::s_init and AbstractPipeline::s_deinit signals (including Lua bindings) as first step to simplify writing entire pipelines as Lua scripts. The signals are emitted as blocking calls (via triggerSignal()) and can be used by Lua scripts to run (de)initialization code in callback functions. This was tested with the volumerendererdemo.lua pipeline.
-
- 28 Oct, 2014 1 commit
-
-
Christian Schulte zu Berge authored
* Added automatic copy of inspect.lua to binary directory to CMake build scripts * Added AbstractPipeline::getProcessor(std::string&) * Added ScopedSynchronousGlJobExecution guard to Lua command execution to ensure having an OpenGL context present * Fixed ordering in CampvisApplication::deinit()
-
- 24 Oct, 2014 1 commit
-
-
Christian Schulte zu Berge authored
signal::connect() now checks whether there exists already a connection to the same slot. In this context, removed some redundant signal-slot connections.
-
- 23 Oct, 2014 3 commits
-
-
Christian Schulte zu Berge authored
refs #386
-
Christian Schulte zu Berge authored
refs #386
-
Christian Schulte zu Berge authored
refs #386
-
- 17 Oct, 2014 2 commits
-
-
Christian Schulte zu Berge authored
* Tied tgt::OpenGLJobProcessor and tgt::OpenGLGarbageCollector closer together regarding OpenGL garbage collection * AutoEvaluationPipeline checks for valid OpenGL state after each processor call (only in debug)
-
Christian Schulte zu Berge authored
* Fixed AutoEvaluationPipeline missing some updates * Fixed AutoEvaluationPipeline::executePipeline() to execute processors too often * Fixed ParticleFlowRenderer overwriting bound FBO * Added Debug checks to tgt::FramebufferObject and tgt::Shader to print warnings when FBO/Shader activation would overwrite an already active FBO/Shader
-
- 15 Oct, 2014 3 commits
-
-
Christian Schulte zu Berge authored
-
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.
-
- 11 Aug, 2014 1 commit
-
-
Christian Schulte zu Berge authored
* Fixed possible endless loop in event evaluation of AbstractPipeline. * Fixed 4-channel image rendering in datacontainerinspector.frag.
-
- 08 Aug, 2014 2 commits
-
-
Christian Schulte zu Berge authored
Replaced DataContainer::s_dataAdded<const std::string&, DataHandle> with DataContainer::s_dataAdded<std::string, DataHandle>.
-
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. :)
-
- 03 Aug, 2014 1 commit
-
-
Christian Schulte zu Berge authored
* Slight changes to the API: renamed signal::trigger() to signal::triggerSignal() and signal::queue() to signal::queueSignal() * Replaced all sigslot signal emits through operator() with emits through emitSignal() to enable debug feature. * Fixed a possible race condition when deleting a GeometryTransferFunction and its editor window at the same time (as this will happen from different threads). refs #384
-
- 27 Jul, 2014 2 commits
-
-
Christian Schulte zu Berge authored
Removed all occasions where references to DataHandles were used, since especially their use in signals may lead to segfaults or other undesired behavior.
-
Christian Schulte zu Berge authored
Removed unlockInExtraThread flag from AbstractProcessor::process() - this is no longer needed as signal handling is done asynchroneously now anyway. #ref 384 Conflicts: core/pipeline/abstractprocessor.cpp Conflicts: core/pipeline/abstractprocessor.cpp core/pipeline/abstractprocessor.h
-
- 05 May, 2014 1 commit
-
-
Christian Schulte zu Berge authored
-
- 07 Apr, 2014 1 commit
-
-
Christian Schulte zu Berge authored
To now, each property hat an _invalidationLevel field that was evaluated by processors when the property had changed in order to determine what has to be done. However, since properties could also be owned by other classes, this design was semantically misleading. Therefore, it was removed with this commit and replaced by the invalidation map of each processor. Now, this per-processor mapping of property -> invalidation level is managed by the processor itself. Furthermore, the invalidation level is no longer setup during property creation but during AbstractProcessor::addProperty(), which also makes much more sense. ATTENTION: Due to these intrusive API changes, the code of all processors and other classes handling properties needs to be changed. As a reminder, the implementation of addProperty() also now takes a reference instead of a pointer, so that old code does no longer compile. refs #542
-
- 08 Jan, 2014 1 commit
-
-
Christian Schulte zu Berge authored
Refactoring AbstractProcessor::process() for clearer semantics and better and more uniform handling of invalidation levels: * AbstractProcessor::process() now calls updateShader(), updateProperties() and/or updateResult() with respect to the current invalidation level * each processor shall no longer override process() but the updateXYZ() methods, at minimum updateResult() * AbstractProcessor::process() takes care of (un)locking the processor itself (no need to do this from the outside anymore) Further implicit changes: * Removed redundant HasPropertyCollection::updateProperties()
-
- 13 Dec, 2013 1 commit
-
-
Christian Schulte zu Berge authored
* Moving to Apache 2.0 license * Updated AUTHORS.txt
-
- 15 Oct, 2013 1 commit
-
-
Sebastian Pölsterl authored
-
- 11 Oct, 2013 1 commit
-
-
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.
-
- 09 Oct, 2013 1 commit
-
-
Christian Schulte zu Berge authored
-
- 08 Oct, 2013 2 commits
-
-
Christian Schulte zu Berge authored
-
Christian Schulte zu Berge authored
Refactoring pipeline concept #2: Got rid of distinguishing between AbstractPipeline and VisualizationPipeline. Every AbstractPipeline is also a VisualizationPipeline. However, AbstractPipeline does not care about evaluating its components - this has to be implemented in its subclasses. AutoEvaluationPipeline subclasses AbstractPipeline and automatically evaluates the pipeline by listening to the signals of its components and calling the corresponding process() methods.
-
- 27 Sep, 2013 1 commit
-
-
Christian Schulte zu Berge authored
introducing AbstractProcessor::updateProperties(DataContainer&) which is automatically called by AbstractPipeline when a processor invalidates its INVALID_PROPERTIES flag
-
- 24 May, 2013 1 commit
-
-
schultezub authored
* fixed transfer function shader * let processor unlock call after execution be handled by seperate thread git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@494 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 14 May, 2013 1 commit
-
-
schultezub authored
further step to OpenGL 3.3 core compatibility in core and modules: Got rid of glPush/PopAttrib in processors, added asserts for correct OpenGL state after processor execution git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@493 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
-
- 23 Feb, 2013 1 commit
-
-
schultezub authored
git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@477 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 10 Feb, 2013 1 commit
-
-
schultezub authored
Revised InvalidationLevel concept: InvalidationLevels now directly belong to an AbstractProcessor and are considered to be thread-safe. Furthermore the different levels now really act as single flags that are set (invalid) or unset (valid) individually. git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@464 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 08 Feb, 2013 1 commit
-
-
schultezub authored
* Pipelines evaluate themselves * removed the PipelineEvaluator * adapted all demo pipelines except OpenCLPipeline git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@462 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 05 Feb, 2013 2 commits
-
-
schultezub authored
git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@446 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
schultezub authored
* Introducing SimpleJobProcessor for dispatching non-OpenGL-related jobs git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@445 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 28 Jan, 2013 1 commit
-
-
schultezub authored
* added InvalidationLevel::INVALID_PROPERTIES level * added HasPropertyCollection::updateProperties() method being triggerd upon INVALID_PROPERTIES invalidation git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@423 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 08 Jan, 2013 1 commit
-
-
schultezub authored
* implemented automatic connection of AbstractProcessor::s_invalidated signal git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@382 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 08 Nov, 2012 1 commit
-
-
schultezub authored
git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@346 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-
- 04 Nov, 2012 1 commit
-
-
schultezub authored
* added AbstractPipeline::addProcessor() and VisualizationPipeline::addEventHandler() convenience methods * some refactoring of property names git-svn-id: https://camplinux.in.tum.de/svn/campvis/trunk@344 bb408c1c-ae56-11e1-83d9-df6b3e0c105e
-