- 07 Aug, 2014 1 commit
-
-
Christian Schulte zu Berge authored
* Fixed includes in sigslot.cpp * Implemented memory pools also for AbstractJob using the pool of OpenGLJobProcessor
-
- 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
-
- 01 Aug, 2014 1 commit
-
-
Christian Schulte zu Berge authored
refs #384
-
- 28 Jul, 2014 1 commit
-
-
Christian Schulte zu Berge authored
* Fixed crash (due to nullptr) in DataContainerInspectorWidget if DevIL module not present.
-
- 27 Jul, 2014 9 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
-
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
-
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
-
Christian Schulte zu Berge authored
INVALID_RESULT, INVALID_PROPERTIES, INVALID_SHADER is validated automatically by AbstractProcessor::process(). Hence, there is finally no need anymore to validate these three different levels in each processor.
-
- 15 Jul, 2014 4 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
* AbstractData now stores a weak_ptr to its shared_ptr owning group if existant. This avoids unintentional creation of multiple owning groups where each eventually tries to delete the AbstractData on its own (which will certainly not work) * Updated DataContainer implementation to use a hash map instead of an unordered map.
-
Christian Schulte zu Berge authored
-
Christian Schulte zu Berge authored
-
- 14 Jul, 2014 2 commits
-
-
Christian Schulte zu Berge authored
-
Christian Schulte zu Berge authored
-
- 23 Jun, 2014 3 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
-
Jakob Weiss authored
-
- 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
-
- 13 Jun, 2014 1 commit
-
-
Jakob Weiss authored
-
- 10 Jun, 2014 1 commit
-
-
Christian Schulte zu Berge authored
* undo changes to .gitignore (regarding SWIG temporary files) * moved implementation of PositionData and TransformData from header to source file
-
- 08 Jun, 2014 1 commit
-
-
Jakob Weiss authored
-
- 31 May, 2014 1 commit
-
-
Christian Schulte zu Berge authored
-
- 10 May, 2014 9 commits
-
-
Artur Grunau authored
Commit 293d43dd introduced breaking changes to the way invalidation levels are handled. As a result, property and processor-related bindings failed to compile. Update all SWIG bindings affected by the above problem to make them compatible with the current property and processor-related APIs. References #1
-
Artur Grunau authored
SWIG wrappers for siglot only supported unary signals until now. This commit adds support for all remaining signal arities to make it possible to connect to arbitrary signals from Lua. The implementation makes heavy use of templates but, due to the limitations of VS 2010 (no variadic templates), still contains lots of duplicated boilerplate code. `sigslot.i` has been moved from `scripting/` to `ext/sigslot/` to keep it close to the code it's wrapping. References #1
-
Artur Grunau authored
Certain types of pipelines need to react to changes in their constituent processors. CAMPVis uses a signal-slot mechanism (based on the sigslot library) for this purpose. Up until now, however, there was no way to connect to a signal from a pipeline defined in Lua. This commit adds initial support for connecting Lua functions to sigslot's signals. The current implementation only works with unary signals, and should be considered a proof of concept. To test it, AbstractProcessor's s_validated signal has been wrapped using SWIG. References #1
-
Artur Grunau authored
Lua pipelines need to access certain protected properties of AbstractPipeline but can't reference them directly as they don't actually inherit from any class. ExtendedAutoEvaluationPipeline was added to generated bindings to expose public getters for the properties in question. LuaPipeline instances could then be cast to ExtendedAutoEvaluationPipeline to give Lua code access to these new methods. However, now that HasPropertyCollection has been wrapped, the protected properties can be accessed via its getProperty method. This approach is preferred as it's much cleaner and simplifies our interface files. As a result, ExtendedAutoEvaluationPipeline has been removed. References #1
-
Artur Grunau authored
Several classes from campvis-core that are needed to reimplement VolumeRendererDemo in Lua have been wrapped using SWIG. Among the classes are: ImageData, CameraProperty, TrackballNavigationEventListener, and their respective super-classes. References #1
-
Artur Grunau authored
As there's currently only one Lua pipeline, we could so far get away with storing it in the `scripting` directory, giving it a generic name and registering it manually. However, this approach won't work anymore once additional Lua pipelines start to be implemented. To support multiple Lua pipelines, implement a registration mechanism for scripted pipelines based on PipelineFactory and similar to PipelineRegistrar. It scans each active module's `pipelines` directory for Lua pipelines, parses them and generates a registration header that, when included, registers them with PipelineFactory. As a result of the above, the test Lua pipeline had to be moved to `modules/preprocessing/pipelines/` and could be renamed ResamplingDemoLua. References #1
-
Christian Schulte zu Berge authored
To make it possible to access GlImageResampler's p_resampleScale property from Lua, FloatProperty and the classes it depends on have been wrapped using SWIG. References #1
-
Artur Grunau authored
Now that TGT and campvis-core can be built as shared libraries, the few remaining issues with the first Lua pipeline could be tracked and fixed. As a result, the pipeline can be executed without any issues, and its functionality exactly corresponds to that of ResamplingDemo. To achieve this, several additional classes, methods and constants had to be wrapped. References #1
-
Artur Grunau authored
All interface files used to live under `scripting/`. However, that separated them from the code they were binding and clustered them unnecessarily. Make each interface file part of the CAMPVis component whose code it's binding. This fixes the issues mentioned above and makes it possible to build Lua modules conditionally, depending on what components of CAMPVis are enabled. References #1
-
- 06 May, 2014 1 commit
-
-
Christian Schulte zu Berge authored
* Allow execution of RenderTargetCompositor also if only a single input image is available and the compositing mode is set accordingly. * Introducing allproperties.h
-
- 05 May, 2014 2 commits
-
-
Christian Schulte zu Berge authored
Introducing nifty error texture in case that there is nothing to render. Updated copyimage.frag to use texture coordinates instead of viewport pixels.
-
Christian Schulte zu Berge authored
-