5292b19dd6
clean-up and finalise time::Mutation
2012-12-02 01:54:02 +01:00
5dfe5e099f
refactor namespaces for query and defaults manager
2012-12-01 08:44:07 +01:00
dd8a88d095
adjustments and stubbing to get it past the compiler
2012-11-26 01:22:01 +01:00
b5a7055f29
move Query interface to Lib
2012-11-25 02:29:52 +01:00
62bfccd67b
cleanup: remove the old factory template
...
This template was a leftover from the early days
of Lumiera development and doesn't provide any
substantial value as an abstraction.
For the more intricate cases, we're using the
lib::MultiFact template, which allows to install
several "fabrication" functions at runtime
2012-10-14 01:30:08 +02:00
44435fd1db
clarify and settle the relation between Dispatcher and PlanningStepGenerator
...
the solution is to introduce a superinterface
and let Dispatcher augment that with the specific parts.
This way, the Job planning only has to rely on the
rather generic stuff (TimeAnchor, FrameCoord)
NOTE: this commit makes the whole JobPlanning machinery
compilable for the first time!
2012-10-10 05:20:23 +02:00
88f433f433
successfully implemented another combinator strategy
...
DOH!
this thime hopefully I've actually succeedd to
created what is actually required in the Dispatcher
2012-10-10 05:20:20 +02:00
016a739a5c
WIP back to the original problem: how to dispatch jobs...
...
brainstorming how to implement the job planning stage
the idea is to built on top of the IterExplorer,
but have the "stack" of re-evaluation integrated
into a custom type, which exploits the static
node network structure to avoid heap allocations
solution idea: again use a builder function?
2012-10-10 05:20:20 +02:00
e76b85fcfa
fix test broken by #410
2012-10-10 05:20:19 +02:00
e6a105fbc1
iterator exploring monad finished, passes unit test
2012-10-10 05:20:19 +02:00
3d0d599158
get the depth-first exploration test to work
...
...using the IterQueue for intermediary results
2012-10-10 05:20:18 +02:00
2c33000346
complement IterStack by a similar wrapper for queue-like access
2012-10-10 05:20:18 +02:00
8ced6758fb
initial draft for recursive evaluating iterator monad
...
tricky design problem, because nothing is known about
the source and result sequences to be built.
2012-10-10 05:20:18 +02:00
41180eb99c
rework to allow for recursive evaluation
...
this enables expansion of a (functional) data structure
until exhaustion -- which is what we need to
build job functors by traversing and expanding
an arbitrarily nested job definition structure
2012-10-10 05:20:17 +02:00
75df583607
raw version of ChainedIter passes unit test
2012-10-10 05:20:17 +02:00
8db5413199
implemented chained-iterators
...
...using the IterExplorer building blocks
2012-10-10 05:20:17 +02:00
d14b37a71d
utility class factored out and covered by test
...
...a stack which can be Lumiera-iterated
2012-10-10 05:20:16 +02:00
da4a343e9e
refactor IterExplorer to allow for more flexible strategy definition
2012-10-10 05:20:16 +02:00
dc3ebd4a8f
first working concept for an "iterator monad"
...
the intention is to use this to simplify
generating render jobs based on the elaborated
dependency network of the render nodes. The key
challenge is to overcome the necessity to
store partially done evaluations as
continuation
2012-10-10 05:20:16 +02:00
3a7db1603e
add test for the base case
2012-10-10 05:20:16 +02:00
eedcd69941
draft the IterExplorer design
...
the tricky part seems to be how to combine the
source iterators into a new monad instance, while
keeping this "Combinator" Strategy configurable
...just passes the compiler, while still lacking
even the generic implementation of joining
together the source iterators
2012-10-10 05:20:16 +02:00
45f4c96c6f
change LinkedElements to us a more space efficient iterator
...
Actually we don't need any backreference to the
container for iterating a singly linked list
2012-10-10 05:20:15 +02:00
378ebe21f0
Fix naming of Iteration control API functions ( closes #410 )
...
comes in handy now, since IterStateWrapper uses a similar API
2012-10-10 05:20:15 +02:00
83a0f4b41f
Implementation (I) : IterStateWrapper as foundation (passing test)
2012-10-10 05:20:15 +02:00
ab2a6b2fce
WIP brainstorming about a monadic iterator
...
The idea is to avoid building a data structure
for intermediary results, while still being able
to process a variably sized and arbitrary shaped
set of source data
2012-10-10 05:20:15 +02:00
3ef1fb7697
linked list helper template finished and passes test
2012-10-10 05:20:14 +02:00
c33fcf9797
WIP draft a linked list helper template
2012-10-10 05:20:14 +02:00
ddff8b654b
WIP investigating the relation of Jobs, JobTicket and Closure in detail
2012-10-10 05:20:14 +02:00
0320bc4b2c
considering the relation of Job and JobClosure
2012-10-10 05:20:13 +02:00
bb43c03ef9
stub all the job generating functions required for the dispatcher interface
2012-10-10 05:20:13 +02:00
0ab773ab7c
helper to pull all elements from an iterator, yielding the last one
2012-10-10 05:20:13 +02:00
79bd8b71e3
better treat the building of a continuation job separately
2012-10-10 05:20:13 +02:00
08d266819d
re-read my own code and pick up the design work
...
..next question is: how to shape the dispatcher interface,
in order to support ongoing chunk wise planning
of new jobs, including a continuation
2012-10-10 05:20:13 +02:00
9aec2a9806
allow for fractional scaling of time durations
...
implemented as extension to the linear combinations.
I decided to use the same "always floor" rule
as employed for time quantisation. Moreover,
we don't support floating point, only rationals
2012-10-10 05:20:12 +02:00
22322dfec4
refactor the division/quantisation helpers
...
...no need to keep them in util.hpp, as they
are used rather occasionally, while util.hpp
is used pervasively.
2012-10-10 05:20:12 +02:00
ee1450a81a
rectify frame dispatch invocation
2012-10-10 05:20:12 +02:00
f8f011bb44
rework Job representation
...
make class Job a real subclass of the
job definition struct and turn the
JobClosure into a trampoline
2012-10-10 05:20:12 +02:00
0b25c2e08d
Fix: missing sanity check in ScopedCollection
...
funny enough this possible memory corruption
didn't happen in the unit test, because my
compiler optimised the additional int field
of class SubDummy, making it the same size
of the baseclass. Now matters should be safe.
2012-10-10 05:20:12 +02:00
1e54b5d3e6
stubbing some job functions
2012-10-10 05:20:11 +02:00
db68577b4a
clarify relation of Job, JobTicket and channel number
2012-10-10 05:20:11 +02:00
e9dbb3bdb1
stubs for some important components of play/engine (JobTicket...)
...
also touches the question how to represent the job
descriptor datastructure. @Cehteh: I've just pasted
in your preliminary data struct definitinons
from the relevant mailing list discussions.
2012-10-10 05:20:11 +02:00
568fadd526
draft some steps of the dispatch operation
2012-10-10 05:20:10 +02:00
6772e94994
implement simple constant frame timings descriptor
2012-10-10 05:20:10 +02:00
157e3b6867
test-driven brainstorming: define default timings...
2012-10-10 05:20:10 +02:00
2cb254365c
some musing about timing constraints and quantisation
2012-10-10 05:20:10 +02:00
a4e3383367
turn Dispatcher into an interface
2012-10-10 05:20:09 +02:00
3768791c76
considerations how to connect exit nodes to external outputs
2012-10-10 05:18:58 +02:00
288b737718
dummy playback: stub the required operations
2012-10-10 05:18:58 +02:00
2eb39704fc
test-driven brainstorming: how to use the dummy playback?
...
this is an idea how to test a test setup :)
2012-10-10 05:18:58 +02:00
7e7ecc5d51
draft: integrating an engine mock implementation
2012-10-10 05:18:58 +02:00
a2bcedc31e
some unrelated unit test tweaks
2012-10-10 05:18:57 +02:00
d2f83523ca
join recent player subsystem work, SCons overhaul and documentation
2012-01-11 07:54:43 +01:00
98717915b2
clean up top level SConstruct
2012-01-11 07:05:01 +01:00
f84da63e11
use import/export instead of passing an artefacts map
2012-01-11 07:05:00 +01:00
f5290a99a3
OutputSlot : simulated usage protocol passes unit test
...
OutputSlotProtocol_test
Some parts are still missing
- timings
_ initialisation
2012-01-08 03:06:32 +01:00
24a1060ae9
fix inconsistency in OutputSlot protocol test
...
need to distinguish between nominal frame number
and the sequence number in the output frame stream
2012-01-08 01:32:45 +01:00
d732e7e211
Lumiera Forward Iterators: remove support for post-increment
2012-01-08 01:14:36 +01:00
8de4ecc8ac
add diagnostic messages showing each connection access
...
currently the problem seems to be we're
accessing the wrong connection...
2012-01-07 21:22:35 +01:00
73cfef69c8
fix some problems with OutputSlotProtocol_test
...
still WIP...
- there is a logical contradiction with the frame numbers
- somehow, in diagnostics, we access the wrong sequence instance
2012-01-07 06:40:21 +01:00
5cc034d26b
refactor ScopedCollection to use an init() function
2012-01-07 04:44:48 +01:00
e6888f7b83
supplement direct support for populating by member function
...
this turns out to be the typical usage scenario
for ScopedCollection: a manager object owning
the collection will populate it with specially
crafted components and invoke a member function
for creating the individual components.
This shortcut avoids using tr1::bind alltogether
2012-01-07 04:11:39 +01:00
feff7537ef
reduce memory requirements for this test
...
...it caused out of memory frequently.
2012-01-07 03:27:31 +01:00
b64dff1ad8
spelling and comments
2012-01-07 00:02:03 +01:00
e41065101a
switch OutputSlot to use the ScopedCollection
...
..hehe, makes the code way more sane
2012-01-06 03:16:22 +01:00
e5c42e05e6
finish ScopedCollection ( closes #877 )
2012-01-05 23:17:16 +01:00
72e8d22454
implement the RAII-style collection ctor. test pass
2012-01-05 03:40:04 +01:00
434a371c33
take ctor args by value; test attaching sub-types passes
2012-01-04 04:28:14 +01:00
690304f9bc
get the simple and iteration unit tests to pass
2012-01-04 04:05:03 +01:00
57741a94d9
fix random init error (division by zero possible)
2012-01-04 03:30:34 +01:00
fa5e7db2d3
WIP rewrite iteration-control logic...
2012-01-03 02:50:22 +01:00
6c01579a26
WIP draft implementation of ScopedCollection
2012-01-02 06:11:27 +01:00
e63fa6d646
Test-driven brainstorming: draft a ScopedCollection #877
2012-01-01 06:20:42 +01:00
06c7c27252
merge diagnostic facilities
2011-12-31 06:49:31 +01:00
37384f1b68
formatting wrapper/frontend: unit test pass.
...
Closes #166
2011-12-31 06:48:26 +01:00
e1b9b5b135
rewrite type selection logic to handle ptrs in the front-end
...
whew, quite a heavy rewrite, but greatly
simplifies the code and removes the necessity
to declare explicit specialisations of pointers
2011-12-31 06:48:11 +01:00
c8f46f47c9
handling of ptrs, first attempt
2011-12-31 06:47:58 +01:00
35ed2dcf5c
add more robust error handling
...
...incl handling of secondary errors
2011-12-31 06:47:38 +01:00
e838fb9799
document and cover various formatting special cases
2011-12-31 06:47:30 +01:00
0d136e2703
define explicit specialisations for primitive types
2011-12-31 06:47:03 +01:00
e054c272b6
research: detecting the possibility of a string conversion
...
find out about the corner cases of this
simplistic implementation
2011-12-31 06:46:50 +01:00
7efff377d0
use separate test group for metaprogramming tests
2011-12-31 06:46:43 +01:00
6c95c1b0e4
format-frontend: fill in missing bits of the implementation
2011-12-28 06:42:30 +01:00
545d9ea82b
WIP draft frontend for diagnostic output ( #166 )
2011-12-27 07:45:07 +01:00
89928bc447
refactor format-util: simplify picking the right specialisation
2011-12-27 07:44:59 +01:00
50885a065b
move asside lib/format.hpp
...
...to make room for a new more specialised header
2011-12-27 07:44:49 +01:00
a3b7305b2b
reduce number of threads for some tests
...
they tend to fail when running under builddrone
2011-12-27 07:44:36 +01:00
24a8d6a926
generalised diagnostic context passes unit test
2011-12-24 05:57:28 +01:00
5498ace9fc
WIP define a unit-test for diagnostic context stack
2011-12-24 05:57:11 +01:00
87f7a8f6e8
unit test to cover thread-local helper
2011-12-24 05:55:31 +01:00
451b0abec5
spelling and typos
2011-12-24 05:48:31 +01:00
d27e3b15a9
clarify the handling of specific output operation modes (e.g. number of channels)
2011-12-23 02:22:38 +01:00
7fc8473337
fix some size_t printf specs (32/64bit problem)
2011-12-19 03:02:48 +01:00
6852a6feff
WIP refactor building of the active render feeds
...
RenderConfigurator becomes an internal strategy
controlled by the PlayService
2011-12-17 04:45:42 +01:00
477b443191
implement diagnostic OutputSlot simple frame tracking
...
...should be enough to run tests against the OutputSlot interface
2011-12-09 01:03:02 +01:00
aef3d50ffd
implement basics of the diagnostic OutputSlot
...
...specific diagnostic facilities still lacking
2011-12-08 23:02:19 +01:00
08d330310f
cleanup unnecessary builder function and flags in SCons build
2011-12-03 05:46:36 +01:00
77548e74c6
document a weakness of boost::hash for strings
2011-12-03 03:18:03 +01:00
7fd28e23eb
cleanup configflags to use uint instead of char
...
using char for those flag template parameters
was never a good idea. It won't save us any space
and makes debugging harder
2011-12-03 03:16:08 +01:00
d9f84a9bfd
clean up lib/meta namespaces
2011-12-03 03:15:59 +01:00
b2d6074097
cleanup test includes
2011-12-02 21:34:29 +01:00
b9d1899486
cleanup: rectify Proc-Layer namespaces (II)
2011-12-02 17:50:44 +01:00
eb79a00cf4
cleanup: rectify Proc-Layer namespaces (I)
2011-12-02 16:10:03 +01:00
89a9202c6c
cleanup: remove precompiled headers
...
we don't need them and they even tend to
increase build times due to unnecessary
compound-includes at some core headers
2011-12-01 23:32:34 +01:00
c7d4412cec
integrate recent GUI / timeline and work done on the player subsystem
2011-11-27 02:15:11 +01:00
7ba8ff432f
BufferProvider interface finished thus far.
...
simulated lifecycle passes unit test
2011-11-26 00:09:59 +01:00
2fce2b1c8d
make ctor-tracking test::Dummy more widely usable
2011-11-25 22:05:12 +01:00
55a77bdd73
factor out and treat the attaching of objects separately
...
this is an advanced feature not required
in the standard buffer usage cycle
2011-11-25 20:23:31 +01:00
eed6d8cd1e
split out obsolete ChannelDescriptor for later refactoring
...
Meanwhile, BuffHanle became way more concrete,
making the separation of any kind of buffer or channel
type management concievable.
Thus: extract the obsolete ChannelDescriptor
and use switch at any location where the old
(superseeded) buffer handle is still referred
2011-11-25 17:16:33 +01:00
74702ebecd
address the next test...
2011-11-24 03:33:23 +01:00
2ae1e3c8f9
test/dummy buffer provider finished and passes test
2011-11-21 03:26:08 +01:00
0a1256f4e3
cover and verify detaching from ScopedPtrVect
2011-11-19 21:41:50 +01:00
ca689ae5e0
WIP some musing about building an option monad
2011-11-18 01:24:43 +01:00
27449c1438
implementation details of a test/dummy provider
2011-11-18 01:23:50 +01:00
623bb401af
clarify implementation extension points of BufferProvider
...
decide especially how to pass on the implementation
defined data like e.g. pointers to storage extents
2011-11-15 04:47:31 +01:00
fd94367b9e
stubs and changes to make the test compile
2011-11-11 23:33:59 +01:00
fe1ae51b49
WIP draft test for internal test buffer provider
...
a test to cover a helper for writing tests ;-)
2011-11-11 01:44:01 +01:00
f75e55a060
nail down a lot of OutputSlot implementation details
2011-11-08 02:59:56 +01:00
59dfb7c660
start drafting a (dummy) output slot implementation
...
this implicates a first attempt to build a
dummy buffer provider implementation.
Mostly just defining stubs here....
2011-11-07 01:57:33 +01:00
7ab7c8073d
remold OutputSlot implementation structure
...
Better solution where to place the extension points
to be implemented by concrete output systems
2011-11-06 02:37:22 +01:00
63dbc89b6f
draft implementation setup for OutputSlot baseclass
2011-11-05 16:51:24 +01:00
d6e88c85e0
finish buffer metadata; cover state transitions
...
BufferMetadata complete and working for now
2011-11-02 01:34:05 +01:00
0cd7bd2b4c
add test coverage for the test frame table
2011-11-01 03:36:35 +01:00
db3ea6638d
use boost::random to ensure distinct test frame contents
2011-11-01 03:11:43 +01:00
20777cca8a
implemented testframe, not passing all tests yet
2011-10-31 02:20:32 +01:00
a14e4f7ccd
define a facility to generate test frames
2011-10-31 00:13:35 +01:00
931dc3f883
draft: automatically invoke an attached ctor/dtor functor
2011-10-30 05:35:36 +01:00
ccd130966b
finish and pass the first round of tests
...
still missing:
- implementation of a Mock frame
- automatical invocation of the TypeHandler
2011-10-30 02:19:10 +02:00
c91e703682
rename the core type BufferMetadata
...
makes the purpose more clear, and moreover
it matches the header filename
2011-10-28 01:18:22 +02:00
c4ff87c3a8
decide about the basic way to implement concrete buffer metadata
2011-10-24 01:03:56 +02:00
f7a3fdb7a5
fix further test glitches (due to using real random numbers now)
2011-10-23 22:06:32 +02:00
b39edad306
clean-up some additional mentions of boost::ref
2011-10-22 21:45:59 +02:00
2730fa8d7a
a bit of stylistic cleanup
...
- using std::tr1::shared_ptr in namespace gui
- thus removing a lot of std::tr1 qualifications
- fix some includes. Should be relative to 'src'
- interface classes should declare a virtual dtor!
2011-10-22 02:49:30 +02:00
d48dc3b025
fix glitch in test definition
...
uncovered since rand() is now properly seeded
prior to each testsuite run
2011-10-21 02:41:20 +02:00
65b309e5cb
Testsuite: automatically seed the random number generator
2011-10-21 01:09:12 +02:00
f1a4489470
Fix minor problems after merge
2011-10-21 00:58:15 +02:00
ca0ae9c120
stubbed relevant parts of BufferProvider and OutputSlot
2011-10-19 02:47:11 +02:00
991eec8185
draft test to simulate a complete buffer metadata usage cycle
2011-10-17 02:00:48 +02:00
1772659a00
start implementing buffer metadata records
2011-10-16 00:06:57 +02:00
3d859c8b53
buffer metadata hash keys implemented and tested thus far
2011-10-15 22:46:08 +02:00
3ae35b2df9
define more extensive testing of derived metadata keys
2011-10-15 17:47:50 +02:00
28c555aac7
define a type handler for attach an object to a buffer
2011-10-15 05:05:30 +02:00
2c380b5f99
draft a dedicated test for buffer metadata keys
2011-10-15 04:12:51 +02:00
1627698911
implement hash function for functor obejects. Unit-test pass
2011-10-14 14:49:55 +02:00
6baadbaef0
draft a workaround for hashing functor objects
2011-10-14 03:54:22 +02:00
7ea9afd1bb
first attempt to implement buffer metadata...
...
...leading to refactoring
2011-10-09 04:20:56 +02:00
3acf804988
flesh out the buffer metadata API
...
functionality just stubbed still
2011-10-08 02:21:29 +02:00
4df45c44e9
BufferMetadata: some musing about how to access the Allocator
2011-10-06 21:55:00 +02:00
f505c46d1d
finish simple allocator frontend. Unit-test pass
2011-09-25 19:26:12 +02:00
5350ef6dbe
split off and test-cover simple typelist utils
...
these simple utils (length of typelist, maximum size
containment test) are mostly not used in conjunction
with the more elaborate typelist manipulatino utils.
Moreover, we lacked a dedicated unit test
2011-09-25 19:26:11 +02:00
057f32e15b
rename the typelist-manipulation header
2011-09-25 19:26:09 +02:00