From 5f39f843c381157752fdf5038ef86a56045f03a5 Mon Sep 17 00:00:00 2001 From: Ichthyostega Date: Sun, 29 Jun 2008 18:45:35 +0200 Subject: [PATCH] WIP considering how to compose the actual StateProxy --- doc/devel/uml/class131717.html | 4 +- doc/devel/uml/class131973.html | 3 +- doc/devel/uml/class132101.html | 23 --- doc/devel/uml/class132613.html | 23 --- doc/devel/uml/class132741.html | 2 +- doc/devel/uml/class132869.html | 23 --- doc/devel/uml/class132997.html | 23 --- doc/devel/uml/class133125.html | 23 --- doc/devel/uml/class142469.html | 5 +- doc/devel/uml/class142725.html | 7 +- doc/devel/uml/classdiagrams.html | 1 + doc/devel/uml/classes.html | 14 +- doc/devel/uml/classes_list.html | 14 +- doc/devel/uml/fig128389.png | Bin 31223 -> 33051 bytes doc/devel/uml/fig129157.png | Bin 34995 -> 35457 bytes doc/devel/uml/fig131973.png | Bin 19757 -> 24696 bytes doc/devel/uml/fig132357.png | Bin 0 -> 18575 bytes doc/devel/uml/index.html | 44 +++-- doc/devel/uml/index_60.html | 4 +- doc/devel/uml/index_65.html | 3 +- doc/devel/uml/index_66.html | 1 + doc/devel/uml/index_67.html | 49 ++--- doc/devel/uml/index_69.html | 2 +- doc/devel/uml/index_70.html | 2 +- doc/devel/uml/index_71.html | 2 - doc/devel/uml/index_72.html | 1 - doc/devel/uml/index_73.html | 5 +- doc/devel/uml/index_78.html | 1 + doc/devel/uml/index_79.html | 2 +- doc/devel/uml/index_80.html | 1 + doc/devel/uml/index_82.html | 2 +- doc/devel/uml/index_83.html | 1 + doc/devel/uml/index_84.html | 8 +- doc/devel/uml/index_86.html | 18 +- doc/devel/uml/index_87.html | 3 + uml/lumiera/128389 | 297 ++++++++++++++++++++----------- uml/lumiera/128389.diagram | 74 ++------ uml/lumiera/129029.diagram | 40 ++--- uml/lumiera/129157.diagram | 84 ++++----- uml/lumiera/129285 | 48 ++--- uml/lumiera/130309 | 7 +- uml/lumiera/131973.diagram | 42 +++-- uml/lumiera/5.session | 9 +- uml/lumiera/lumiera.prj | 2 +- wiki/renderengine.html | 14 +- 45 files changed, 429 insertions(+), 502 deletions(-) delete mode 100644 doc/devel/uml/class132101.html delete mode 100644 doc/devel/uml/class132613.html delete mode 100644 doc/devel/uml/class132869.html delete mode 100644 doc/devel/uml/class132997.html delete mode 100644 doc/devel/uml/class133125.html create mode 100644 doc/devel/uml/fig132357.png diff --git a/doc/devel/uml/class131717.html b/doc/devel/uml/class131717.html index 93a92a0b1..2a2783381 100644 --- a/doc/devel/uml/class131717.html +++ b/doc/devel/uml/class131717.html @@ -16,12 +16,12 @@ -

Declaration :

Directly inherited by : ExitNode Hub Link Source Trafo

+

Declaration :

Directly inherited by : ExitNode Link Source Trafo

Key abstraction of the Render Engine: A Data processing Node

Artifact : procnode

Relation datasrc (<unidirectional association>)

Declaration :

The predecessor in a processing pipeline, i.e. a source to get data to be processed

Relation params (<directional aggregation by value>)

Declaration :

-
Relation predecessors (<directional aggregation by value>)

Declaration :

+
Relation predecessors (<directional aggregation by value>)

Declaration :

Operation pull

Declaration :

Operation process

Declaration :

All public operations : process , pull

diff --git a/doc/devel/uml/class131973.html b/doc/devel/uml/class131973.html index 0ed7acaef..5e99f1b3d 100644 --- a/doc/devel/uml/class131973.html +++ b/doc/devel/uml/class131973.html @@ -16,8 +16,7 @@ -

Declaration :

Directly inherited by : GLPipe

-

Artifact : link

+

Declaration :

Artifact : link

All public operations : process , pull

diff --git a/doc/devel/uml/class132101.html b/doc/devel/uml/class132101.html deleted file mode 100644 index f385d98c0..000000000 --- a/doc/devel/uml/class132101.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - -Class Hub - - - - - -
Class Hub
-

- - - - -

Declaration :

Artifact : hub

-
-

All public operations : process , pull

- - diff --git a/doc/devel/uml/class132613.html b/doc/devel/uml/class132613.html deleted file mode 100644 index 90fc0acbb..000000000 --- a/doc/devel/uml/class132613.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - -Class GLPipe - - - - - -
Class GLPipe
-

- - - - -

Declaration :

specialized connection node used to handle the transfer of OpenGL data from a image bitmap into texture form

Artifact : glpipe

-
-

All public operations : process , pull

- - diff --git a/doc/devel/uml/class132741.html b/doc/devel/uml/class132741.html index 1efbe8fa1..a9dd11ca8 100644 --- a/doc/devel/uml/class132741.html +++ b/doc/devel/uml/class132741.html @@ -16,7 +16,7 @@ -

Declaration :

Directly inherited by : ARender GLRender StateAdapter StateProxy VRender

+

Declaration :

Directly inherited by : InvocationStateBase StateAdapter StateProxy

Artifact : stateproxy, Component(s) : Builder

Relation currFrame (<unidirectional association>)

Declaration :

  • Uml : # currFrame : Frame
  • C++ : protected: Frame * currFrame
diff --git a/doc/devel/uml/class132869.html b/doc/devel/uml/class132869.html deleted file mode 100644 index a9d6b46c3..000000000 --- a/doc/devel/uml/class132869.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - -Class ARender - - - - - -
Class ARender
-

- - - - -

Declaration :

  • C++ : class ARender : public State

Representation of a Audio render process

Artifact : arender

-
-

All public operations : allocateBuffer , fetch , isCalculated , releaseBuffer

- - diff --git a/doc/devel/uml/class132997.html b/doc/devel/uml/class132997.html deleted file mode 100644 index e59220a95..000000000 --- a/doc/devel/uml/class132997.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - -Class VRender - - - - - -
Class VRender
-

- - - - -

Declaration :

  • C++ : class VRender : public State

Representation of a Video render process. (Encapsulates the video buffers for the actual calculations)

Artifact : vrender

-
-

All public operations : allocateBuffer , fetch , isCalculated , releaseBuffer

- - diff --git a/doc/devel/uml/class133125.html b/doc/devel/uml/class133125.html deleted file mode 100644 index 8c1acac1f..000000000 --- a/doc/devel/uml/class133125.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - -Class GLRender - - - - - -
Class GLRender
-

- - - - -

Declaration :

  • C++ : class GLRender : public State

Representation of a OpenGL accelerated Video render process

Artifact : glrender

-
-

All public operations : allocateBuffer , fetch , isCalculated , releaseBuffer

- - diff --git a/doc/devel/uml/class142469.html b/doc/devel/uml/class142469.html index 58c82f008..31b631174 100644 --- a/doc/devel/uml/class142469.html +++ b/doc/devel/uml/class142469.html @@ -16,8 +16,9 @@ -

Declaration :

  • C++ : class StateProxy : public State
-
+

Declaration :

  • C++ : template<class WIRING, class POLICY> class StateProxy : public State, public InPlace
+ +
Relation wiring (<unidirectional association>)

Declaration :

All public operations : allocateBuffer , fetch , isCalculated , releaseBuffer

diff --git a/doc/devel/uml/class142725.html b/doc/devel/uml/class142725.html index 2118cb163..13bdadf5b 100644 --- a/doc/devel/uml/class142725.html +++ b/doc/devel/uml/class142725.html @@ -4,17 +4,18 @@ -Class InputDescriptor +Class WiringDescriptor -
Class InputDescriptor
+
Class WiringDescriptor

-

Declaration :

  • C++ : class InputDescriptor
+

Declaration :

  • C++ : class WiringDescriptor

Directly inherited by : NodeWiring

+ diff --git a/doc/devel/uml/classdiagrams.html b/doc/devel/uml/classdiagrams.html index 1df0fcd1d..e1289d57d 100644 --- a/doc/devel/uml/classdiagrams.html +++ b/doc/devel/uml/classdiagrams.html @@ -30,6 +30,7 @@ Render Mechanics Rules access Session structure +StateAdapter composition Struct-Asset Relations diff --git a/doc/devel/uml/classes.html b/doc/devel/uml/classes.html index 9375f3648..7992c89cf 100644 --- a/doc/devel/uml/classes.html +++ b/doc/devel/uml/classes.html @@ -21,16 +21,17 @@ Allocationa directive to place a MObject in a specific way AppconfigsingletonSingleton to hold inevitable global flags and constants and for performing erarly (static) global initialization tasks. Applicable -ARenderRepresentation of a Audio render process AssemblerThis is the actual building facility: provided the correct tools and associations, it serves to build and connect the individual ProcNode objects AssetinterfaceSuperinterface describing especially the bookeeping properties of Assets AssetManagerboundaryFacade for the Asset subsystem AutoAutomation data for some parameter (i.e. a time varying function) BackendCache +BuffHandle Buildableinterface BuilderFacadeboundaryProvides unified access to the builder functionality. While individual components of the builder subsystem may be called if necessary or suitable, it is usually better to do all extern invocations via the high level methods of this Facade BuilderToolinterfaceUsed according to the visitor pattern: each Tool contains the concrete implementation for one task to be done to the various MObject classes BuildInstruct(Interface) building instructions to be executed by the Builder on the render node network under construction. +Caching Caller Categorytree like classification of Assets Clipbookkeeping (asset) view of a media clip. @@ -73,12 +74,10 @@ FrameDescriptorinterfaceA FrameDescriptor implements the higher level interfaces for frames. Further refinements are made by subclassing and policy classes FrameReference GLBuf -GLPipespecialized connection node used to handle the transfer of OpenGL data from a image bitmap into texture form -GLRenderRepresentation of a OpenGL accelerated Video render process -Hub -InputDescriptor +InPlace InterpolatorProvides the implementation for getting the acutal value of a time varying or automated effect/plugin parameter Invalid +InvocationStateBase Label Link LocatingPinAn element with value semantics, which actually implements the placement of some MObject by positioning it in some way. @@ -94,6 +93,7 @@ MObjectinterface MutexI provided a reworked Mutex class in my Cinelerra2 repository NodeCreatorToolThis Tool implementation plays the central role in the buld process: given a MObject from Session, it is able to attach ProcNodes to the render engine under construction such as to reflect the properties of the MObject in the actual render. +NodeWiring ParameterDescriptor and access object for a plugin parameter. Parameters may be provided with values from the session, and this values may be automated. ParamProviderinterfaceA facility to get the actual value of a plugin/effect parameter PathManagerWhile building a render engine, this Strategy class decides on the actual render strategy in accordance to the current controller settings (system state) @@ -105,6 +105,7 @@ Previewalternative version of the media data, probably with lower resolution Prockey abstraction: data processing asset ProcDispatcher +Process Processor ProcNodeinterfaceKey abstraction of the Render Engine: A Data processing Node ProcPattspecial type of structural Asset representing information how to build some part of the render engine's processing nodes network. @@ -145,7 +146,8 @@ Useractor VFrame Visitable -VRenderRepresentation of a Video render process. (Encapsulates the video buffers for the actual calculations) +WiringDescriptor +WiringTable Wish WriteBuffer WriteBufferPool diff --git a/doc/devel/uml/classes_list.html b/doc/devel/uml/classes_list.html index 38b7af7d1..f89fb300a 100644 --- a/doc/devel/uml/classes_list.html +++ b/doc/devel/uml/classes_list.html @@ -22,16 +22,17 @@ Allocation
Appconfig
Applicable
-ARender
Assembler
Asset
AssetManager
Auto
BackendCache
+BuffHandle
Buildable
BuilderFacade
BuilderTool
BuildInstruct
+Caching
Caller
Category
Clip
@@ -74,12 +75,10 @@ FrameDescriptor
FrameReference
GLBuf
-GLPipe
-GLRender
-Hub
-InputDescriptor
+InPlace
Interpolator
Invalid
+InvocationStateBase
Label
Link
LocatingPin
@@ -95,6 +94,7 @@ MObject
Mutex
NodeCreatorTool
+NodeWiring
Parameter
ParamProvider
PathManager
@@ -106,6 +106,7 @@ Preview
Proc
ProcDispatcher
+Process
Processor
ProcNode
ProcPatt
@@ -146,7 +147,8 @@ User
VFrame
Visitable
-VRender
+WiringDescriptor
+WiringTable
Wish
WriteBuffer
WriteBufferPool
diff --git a/doc/devel/uml/fig128389.png b/doc/devel/uml/fig128389.png index adc3952e4ac393a8b720975eb6ea80813e91c328..fa8dcdc956afe8eb24d2de7d8219adc18572c478 100644 GIT binary patch literal 33051 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 z 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 literal 31223 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 R(AF!&11W`j1xSPE{{vQ1H~jzr literal 34995 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 rhmsc2#V7f4Q|x< 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 literal 19757 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 OkMs+9XyLQBKK~0|cLhZN diff --git a/doc/devel/uml/fig132357.png b/doc/devel/uml/fig132357.png new file mode 100644 index 0000000000000000000000000000000000000000..e454c31e9260ad9bb2f9189843f9759158a0cf96 GIT binary patch literal 18575 zcma*P1z1$=x;MT+2^FMUL|_C#>23*uk?xW%>Fy4tTaZS&yBiTfTDn2HOS-?ucb~n_ zyZ3j__y5nOUR=YtW@fGDx$j@yD@aya4E-VTLkNP<;o>6l5QN|d{+6R6f@d(Qq?RG* z83Y#*RCG?>opX67xlIBctV_D(*&CY0(yL*=rFbr<{(|1{rHWfOarba@a0d2N2~2~c z;+-2U%#h|`{Y2bqgW({)%3BsYPp>CVo_5ALiiup6ybBQ#g9&HJE`x3Z$*C@%S@y}r zqwo7;X5jhlAwKiR6s7QwBy1B0PmqBhF>e^L$^AD1qEN|21VTkn$uD(bLa0L+lvqN6 zp1G#~v;k*o;kKaXu%bouccAD=$)(W%X{=gnak4V~IE|14C|jLyqzE-{_URK8r2 zqtgYi!B#hp;x`ihk;iS~$7C=#KEVP`d`89+1l`vqAx+6C=JOmcI)NBWHNbz}h- zc`ozGC-?jw7#SgOSn__Em%ywkR56Z^cUDMJQ~QvWW8|>QttK=0txZQrZwUc%KHWJv zSWItd*rTGFS1FlAfNqO=dT0v@_-#H13m}mPeT>>DOiX0paZDy=d}cjU6LXR+i;TwD zVryt8KP(6R_@Vj``tSkHVpJ3shVFjNsoxcD?RBS=9Jals`uw>DXHv0-)B6kCwBNsP z2tt$tV{p_ayhLzB$4%_9{nVcotjw_78;rrcj!q0t0|MdPeimH9Ub1; ziA=9~$%1Epu24rqOM774Zd6%VSP5s2=;v3Fv+<6R{y-kiq#u`+n>I8wlqleZ7~8H_ zP83?2CggI_dsz|v`Lmrcf zJlvO{*E-7Izn|qug*e!0Fq@8kN#dw|Bq=CvtGm5(r`6=#XfhJ@h~V}|ztoD%V%0z$ zi6Qi}G)-Ho|8oqrKDCV2?eXUJK+4SS6ppSzR(~_PF&Dq*erH%fbrtIqQab6>CSG&Z zRxZ0)KEBMm%kBD{oaxiu#kI9LGCtSNn6WszE}7I<$vhJt8?p+fmN>VcE+dFFjKvXk zU`yW(DppokiKVg1_i3<2DPUM-4xJ%)49WA1urjEM;6ZxahyQUO5(Z%k9e?}(wPgu| zS|l7C`is=IXKKkPsf~@zcO1^G5ukVVwq1i(W6f@Ohzr99>iz~eq8aeSj>ipZT0kq_ZGZN&5LU7 z*4q*8g>Ldc^WX4s$k-ol^{QPTT-exjadsAohH*KSxV?M#CHcv>ZWA5#>F9g~m6i3+ zRMdkrwfhs`b=RjeSbNoKYAQL>noPRBny#)LyE75O!d{tI?=dsb$AemW>+OQTItU52 zG&aH~<&1Q?v_JGkicx)4lcISio#H7DPe_Y($SylzKY3R9)z3{yxn;d5`>Ah@xf*RO z*ajI#;-FNDW~_yTNqL=YX$lFIWoCY#t>4?)qA%4}SzVojyaoMS!I3#!e%q3ftq*0Q zw7Q)gE`1jueS&N~j`&(`h?KAS@zj*|dY_7dLiV95W(EN`UT=T1ee$<$n8aCR-wx-9nMe3_<7W)LL`yG&PlpL93~MK>FvnrPvt)xd@4SO~9vb z#%|AoydD16<{(qEM@@mM(GcQ|iT%2UBFa2`X+-nBe+#;X@xS+v|6I2QX1HVlRan?E z6?j1ho)rEaI5h+R@0Hzc4f1oCA2)%dsvGs~lemYbhK zNS_G(tG--`^w3X*iHz!R78ePn^5#EbHxKvudY`4zn}p-3wXz!MD{iN*=LfQynoc-4 zR$Ei2pML&a;C6b-VYkM;wHi*Eo18+IZ%9DUo5E8m;=yQ7nT<3@E$`TE3G4Y^`onCY zkkB|c4@OZQCngCAr`sv=fE!pipFWwx-*Ufg=5^f32n(aBHn*5tpDYi_;3vEkpCV&) zcr|P<5-n8Yxl8_YbL6>Lgl8D3t!?OC3GIBf856|GgYks9!#~E-ctS=_&gZ+H0)vDE z88MNGLa(Ukbapnz8#&8AO_oBZa%yaBik9{*4Bp~=80Ur;^4*BBr8DRE@6S|JA4e-d zH#svR6HqS9dm-0bte)?FE=zYUPYF{psCDSn{kJ;&9d2AXRa4`kATJHQw%l_dORKxI z{W(0GS8y4i?s>MSe|1VMM9(ZVj7*6Id)_}+yI)iSHuvnj!?uxpkjEAA$rhW%(V9!Z zpx+f%Zw4Gb-Q9R?6hVa(CY0b*<34}>p{y(j^nP-dXQC^IPY8}z>7y3|;v zYLnc;|Aa$?L9#KrBWTr}|A~{pFGh5zv9OW<>lc?8rr}%rF1~i(aCFSx*S&vVS7ow% zyd0q*okELUM`Y}{i<~pHMxIppp3=lOD(?duBSKAsYvI|xOpBM-?{5KpyEEVXe8*8| zLs=Rf?~Rz-eN(H7!i}60|CE?GR=sV&$ABxEs$T zjE(IJXWs7!QkCdUMPL85W~8JVFB0vNojudn-)N_7!{gz~W_*Q=ztwBH+T%SvJpxNG z2CMq=q*&1v-W``NELD$z15w0gMB>?&nui+7CU@-c@S3Cq zxVSz>L>&2{$Z*kUw~UUd3|v;2j=fD#$DDdKJ;^HEPT3f>(U%aN_ri)g*T>LM#(V!O zv$Qlm6O)M|6dW#XXH&kCHqy}YWYXNx!%pAs`qs@ejsGLmro)&j;AOWr8+O@q(O+bZ zZvjIB8www9)xz>=UUv54#(Q1UX*Sm5+KvvQ9-GW*3$-4 zQ->ZrxMF1+tFgi;Wk4}S-1!GuX>oNBT_4yz-3j{gyQttYD}50WGH1`vo#3aW#D)+N zMH3Q`&M)dmRR*%M>aW#oGL43Eh(jw_LfE63nH3kPP<>lxR3Gk4$KGrV9sT%W0$~!> zkNgmy85v2fjC*EINlBT%nl16!b1>W>%YlkAfW{Jhaw;|vaDZD6iuCBY@r2Q~Kg+XC z9ENUS0lu0?nZw7w$i=b6B;4O0bOrIczet1>m7rlNt8HAtCA!2Z{mnpC?j0 z{b>UNP7b1?mJv@CPEM!^iKVAo_!NFM*1`8+;|meb%)`Q(Man1zT9vS{W)f>hIIQ@c z-MSn%7?q_5q$PSSey^;`q$>VinL2oSf#pxPo>ozD6Nr_LLB?<99%bMoDMkV173#-+ zGEZRAw=g&VwcJI-wtd z>~<#KEGAPwsI-{r_CqeA(1SP=p_L5FxO$IFOo}Y7bj^_urK|w6R!O>tFovh}R%m=IMFxzohB%0|CWipLy zPN*;zOu`a!bH=xpyA(!kmB!%cVdK|blRHEw8Y{nl@$W)En;Yq?zmzWMf@Agc1Rov> z!V)+vlcgFRw<6dQ9@5o z4;5Nny~<}U)!<;^p8m`;`0-3tGi7&oceJ7UZ4!HdrzibrUu*I`k8@({hghPYHD(D_}AeIW6xVxpZW)zHV=-YPsBy&Uc7v1yB6$ux`Sy<=XIGU=LbF? z3(N9TzUf|@%}0G!nDPtgLclU)~%Y zS+Pfwph)YXLmxk;81)n9=1!y+Y~et4b*eR%#kOE)B`514Azd)(e|*C0{1mFO)cm!= z%J}>_8ua)nuS^)1sMu9Qz1r$}X&TSO&1`)&cfsBZW5QCRFc0(5RM zQAKr80rX}a>VND zu0w;FgQrSLu?ysay2(+ad9@xo6#Eceo2If;PZ!CD}nh2 zHZ-U+j70sN`{06CET||eEBer{J2<~zk8nN@kT)uIX9{5V!=jT6j#H zfQLE}?g}j<$0p@Sl=wr*c%Ai~Cj)xr2!Ko^g%EIT8HpbnSXtcy;+w`lR@b18@LF}U z14uwKH7Nj=>wzvCM|YIKVI^d-`+1_YaCl@8s7hQs8l7DzYin9*{CrF=-b;!9AXHLX zrIw+6`EtR{g$sxv4=`kM8q&6UrF58-OH=8oyEuW;0;pV#g@#NbtNU1i4)kk<2#cxO zhi`B0YCDC;3*|nHkq}K=`!j&2iZu+{Et#SMN{XL6FT1Ju`8Q^{=A*498O<(!Yg$@L zw7Bb@ZW%^KVwxLIXzN%Gi+$Yt5<70}W?-l(r(*RcdL;m3?0Vz}`_IYxxs=jeYb>MWu#?L7+V0xU6|LEBNl=6Tac-SsY0dt+y5A&B!r1BIK@{K}$KpMXE zD2Vlg^FKTG4GQSk>ObsZreAE6;^Oqpcd|?NGK%^5>FJwW1O_@)BDQCSM_6*;Rs>r` zW2i%Kawvz^2e}YOB1jwKBO`4<(<>;5xwzPN+U?3 z#>i+9=otQrwEiNJIh0Ys!T0W7jY61Ytxmmh7jq4ph_5F~QevXlqO-h-if9H?o1gOY zDymG(b#z?y#PTRo4Bj8Zy?v5*Q9wuMcd=gRd9>yiAZBoNs&DTw2LR*S)n_|uh2sK?;Fk)V3>rxzQW%(f96GZ$F zO^vJ7t+5q}&$p6rE*l`pHE>fI?{1EKZ*-(XhK$#JMtKEK@)=MdPLGC_jiFNA4~cc# z9YMW#cvpCMc#sa*<|ORbk0C(m!a}R^`@tpxM9*_!C?t>-ot=_A>O{QC%gaDb?fdr- zug>qg#l<(aOCqnJJ=E#iF5%GgX_Y)F}8N{W|W& z>T#c2v)1%;-7n<3noEI*huVh#0W|C2P!k-C4UYzD0TNWwjda&~eW=f7Jl>*QtO&NR zWmL>Fb7z65NO6V0&nM$Ve=bs)&Q};fP_>qP$lhWRsm1T=yLx+lypYXI^?|qn_BZql zkhKVzC$TTAeYY-c0X4loQUao0XyD}Ossw3FcX06A>>6CKasZ5c58HO2xK+zT_?4Sx z4n*4e2KtgB_tKJi)6URxg`7|z=dul=jRPD4=>SssceI>qi^(a-cK2iw{POaYZEMVI zx;v(v_ejZVnsow{s+v=0uwy~P%&?7|RV&0YjYso9fBSXCr_s?+!1b7y*_Id*5#3{D z9zH#;vO1>=OBZ4GM-?N@IUg*YBV*g6gd8W@XXO4>LG2?6e0|v zBG{sYV8Mv+{Dp{3%7`930IJ|@4w2JIRIKWlt%F!Y6Pia73pnKH$J z|I_OqA`d8|e%h2+HC231Xd}k-G@$T{60hsHHp3@*_6d2wug=3@_#uM`dBOfAep;*7 zAoB%0&TV-WCzBcwnMam|gK*-I!7r7A-eC%8E1NQem?f(D@C3{6Not$V1>qp^k(H z67ohO>5s;P45C;au*o;Q|4j&$U;VwRAsjHEtXyL?Hw~J=BB+uax6Su;&CGYk;zdT6 z%DU9o#BHdD(!6dBjX6}bv@8dnoQ)SNd0y?7RiE@#RLmtNn)VN{Jbx~!*{t*kANzs7 z0|ksvxpW{e{~|gX8=r&(6KgRx^;TkkUej{U^_{%DkqJ>zk$GvBft3+{WSX|R!qIb1 z=dhf$_jq_HDihyJwVE?+^NNe@?9mkDYyu+|B(m=#6^Dn;J^&7dnGU0FN1!YoUVu{J zDZ*=@$etgz($Y-H#A6y7uoCU-Uq2-biaf4!+~tQtiP-{OxqznJ)Z_pZsh>*y{*jO70iuT8%?1P@YGCzu0Gya4};gmRR0ME-VQ>RzM*vEYTWc&a> zWF4e`LG_@{cULWm|Hh3abSLz?i`sndXHM`$fI~MTijX5QfHj{+U7%JiGKE^E@Nqzn#Ya%dPA}jqJdgx$-!O zC_EJ5R!E%GVp_UaI=6=PEr4N3GFpmai;Lv@K`<7X^Dafghnqj=bdh%)^}!=!tz95) z3~OK?f`Zoct2)Hs-z9071+dyKyL8aD=iH`Oduuo7u`bzNDWWp<f`(k4Bk9SO7&mm70Ct1oy zZr9nc&jwvyl77V4FD)t}BqIYlVj90;7>RLaUf!=orXsV6fn-vI*JpbTqrWeXwxPC> zk(LJTnVFe<2eVjUY1~}DD=4g#kf@!Sj0eb@7I0bh)4oCNy9+yM*+?@W4t$Em6N`9y z{d;v0`Jukf&!KLUFTTFl8$*5z%{;n)w1HZn4FGLJ@l$Pyr5kWyfXV;}8BiZ&lob#2 zI(~Qs{kDs;PmV}h7iM5sC@mUhXnA zUbp6`eLgnEhJ?hCZ&i12u!2KPPfhjlU1MB(n$Qe_1i$Mao2nfciJqSMA4Sa`g*?57 za;jQqEup(;0kjm7Bz|5J1p-XJuLoy$UVaNd%SMXSmf0?~EPqYLN{`3i?<$mzKg zf@*3}ZxvOnzH`mY3iucRt$@8dCa<7iw7GFFijrwm0uS%Gre-ndS6o~wfJ|p)C2x%6 zZl7$^@X};wPjXF4R?SUqY`iabIbw2gsrU9C%E=Lxq^%wuel7xp z);S>&&~0F&C0}^1+3ZRHxt_6u^RUdpz)XvCo3``t721dCcm>$45-xkvO@Gl(CwX~! zM)q->I@8&@bYQn%->6(%MZA^fM~3$HYJgL!+3G3q%Dgf&^FyiC^9W}z*27+krv+Uo?0Evhdg^RTpp1|X4EVEHaI{rHH+v{=tdGTG=O*wx-X1Dsz7o}Hgq?D#GpCdkN?9~;*sHhPN%3PaLB_*Z#7Cv|2 z{_b_0Y#ZBL#zSAUTge_hWIr$f*^@-EES7An`{Y?_f_nNRz}sJ3Ue3zTH!|HS%+9_& zxB1BE*a5m-qtisT=)G2f!XH1xO^Ljm#+}<6OIlDo6QwAg-{2}MHv??U<7_RyKR+TV z)o5fOGOS7AFN-7IZFN}uPiO-$P;|7o2qlv_!84dmRu=FKqTm04j!-W2**+s&#QFO( zUCeLn%vxJgzJsTjl>gnj|CUht8#bAj@y|kd%=4DJDGe2VkEx00KEnys*Q=loRINsF zBVB<%fu_H`{BPN(GaPag?{DGJkN2sCup_Q6SONKBjl0j5Bu+42FS|eft=kuH0 z4f=_Pu)N%Z!BkePbDCwbSHzS0b1!)DC}@#Ndc2WdT51IxOOGo@D4tOl5rnJMhh14wgYbhArGL4A)g~zjkujd~>a;-xVox+sj@yqITseam^i*Hr`yEzSYXAbM zr`K-B_JWPlXMOvh7nky5Yw%#1elroZc` ze{*Gp)pq3vm)%-2pPS=i`v;X$Em8qb_s{g2diweZI$wQ}fD&_cw!hvKqP{Uzxjt2C z%;T`7sH|*cX?eT&4aF4C>78(xAf|sj?*vdq4hIYJ57e!gl7NY1zY!T8J}_Hv7ZV+w z_o?;vQbPOBqctPL_w7nKIJBT2G7%wRT|z~2JiKziyOh)F)<0=j)!)CYFS#@>Ipmi>^3fKa33(z%v zJ;#t!?<~xDnNdA)ccHjCX4V~6v+=qx5)9CZ{bQW>wU7iS5xqZ(f);6PGd!50k(8hY zP}LkTzYyBGBF2E#jPTmNsx(o(&~k2kV$>a|y(8fHfq}(Q4Ujhp{%xK0C%AP3yfEPE zUgutz>-;<%&38uj`#G}xrRe%@0fvHH0!l0kZI2tsR4JnARkq$rM^=Uv6vzYgDi+=$ z%K)TY5o_FGV2si|a0`J2{-xn-)mk>p>Y_q#-|iuJM@2b0o+?4l;Dk)=Xi$4QI~kX) z?vKcX)*HtTpnwB|x>UQ>3&@yuN8WRdcJI0FoA?5w^p=uBZwrW$f`Vp3LY;X9v>+8p zgw1?W?Y@+ksBBM9ap1f=Z`Qu-C5T3&Qbu9I7xo1@uB|(aantrF#Gn3` zjx1g$@>2sg5R2*BP3=D(a-6p?Ry1}-8d4{~Yx=Kz?4vOgenVMq8UK)G7 z-$OdD&5?J?<2)@bL2RQJq~<{NA)tS!T5tROY#Mx6SyDJ30N6&#Ad2v({9iV^omqYl z#sjG_-O4F&td03*p0nwTqxFcVe4vsK+2di51FszS+=#(eU0vPUx-2dZ-|s6U6B8&} z7-t~+$DWs;|NZ-S8+p!56VxCyQHssn($chqgzlIh4>+VutrsVWu(AJnnU-{)Bf$~O zQ_`t0kMaV*R|TofXzW=zX5iL$Mt?B^Z`JW_p@`y-pumP8$_ImSzL;TMI{G5_*tZO? zpM}6hK8tX^=$Wf?XObuy<&aam81>PY_P^RBPyz3{9=xs^w4ycxz3>=Mh7Z**>cyW{ z|0T7B9DFjrDAe?i4S7t2LCEt{fd-^_?};CCO#0B7>#0yvz$@zN;su_wv4Klo;_B*( zjEo!<6f{cf`%Jl1%K~(Q=Dya|L4mvE)YQiy9-*P4a<(~=YiMW)0MV@5qKqK3?}~yp z1@=>>U=cPpHXg?vLPnjo8jG28h4EsITK9|J;PHrn-ajC~ZeB@6MMYlz&mpr53%9#t zs1bhk#J&V?IXyiMuB#s?N-V|$-vTi5&wl4V^A{0)rEU!B_;eKro>Gc+h7#F9(s3jPd%gYEk#W+f`|ab##>VLAD0okK zl(sa`+uxItl7i2!udgpGEL<=-TkJGY(MFe&k^)xQ#`d<`?e)b#3Xh$mCTQ5$*tSP& z{f$oh5>~w`A>;;}=(g&$PC(VqjpPs;X-Kj}CrKV?2-?6dVk;QpQu= z={7NXYY7#ViTL>VKSykrwXrz_Uw?LX7FZ$+4C0i61|H9RD2KMh6&tN=%F}TR)`J8%NjsnIVnc zV)}asL9TR4L0;aEG++H%)Syt#aq0v~s==eXbA`m50#;*hUlkm(e*)lF;SB#@ zDmC6<<9#Z2oetE>PoEf}gEQ^1bm5te_W}?g2@B^>Fr(3~ovgbntWsY<&$@Y|`x@Oi z&>?ngCP$e4#1xuDYr>v>Bww(z1 zn_4R>^xWMs;cFh3pV%yu!vG!$=qfAG1WQ5W=AJj`$@!~GOLTxe%gW2kDk^R)w9Wt( zCJ!Ch>@!m*DzcGIc9pJox3G0hkS+w;X|YCOl}YB-`ntSkN`H*qO6vyS#Zsn=7s2_& zF<(cy!|6?+7u$(unD$I@QaE5TK!1MM>^d>2Y6ZS6pfy02$SVowvduz*%2dtqL*7_i zA1sapV59-TdqukFzfl7^1b7MtX-^vW*jK>czXc2uzvu>G`rzQbj*j!)>FSN?>I#=5 z_M4=|muB1iz$gL3p;62}q?!_}p{*^yw2G{=Blhd|CPCwMgVFCJ2?5U{&|RGDG~_ik6=c0RUOX$OT#d?upM2|F>AV>p8d^HtZ5>Q$wA9r# zH#O}rsE}8vG&h$7sQ{PxJP^J4`ipPO))o!YVQdlQpo;nK0xvF*(fMTxw36W9-y!%? zi`u<+ZqiCh+2FG7&rZF$nW;8AUD_(&TV7tiJ5vh+p5T)%i@CU5 ztPiG{y?4KN-~>*`q7tb&EPDX}iBGMkC^O|R8?8gD@Y2$-OBul_g%$J@q=@7%3c zejrHE(HZ{0#DRb=aJ%|>7ub~+I=#`+Zjg>aR!WKo9>lrodbqUvd$np^J## z4Gouo1ORZMt)%2|d2Hgt(es>&N?BRiHuqhVv(4$w6b%gxkmFvwdezt69TX8^^@VrV zO|8|_Lss@D=u)5!;Naqd2+_q_e^Oal89au{rf1e0l)>jP7|3=N6#)1q;5AXA31H7u zm5G9_?QhWUp)XBM?%zJ5gEMYEjKQD9g3YGkkt?a=x;;({%p)*SSh_u28uNlZ)(V4EZgjNllH-vSyM z8uIe;lnRx@NI0Yg1qHRV=D&Y`PD2x<5MlP(-TgX_P6J5e$dG2Eqtx5Cpv!}9*?RrE zcW0^+9*u^9f$`|k_Hed@e$O}ZYA0)t!G05757F5R)ct|Z|Ivpb4<$Xsyh#a@cR%7j z%N_=o;pXbB)%^kxh&e!F!QJE}_~^*a$!X%}Pv^T^zJrvoOfe9CZ9s(1kO9wK zTU!H{_8v0Y7y6xWQXYQy^D?Ev&Uvi%W&&EL*f_?4My*wm6<4D)yo2pI#P0#Vv$eJcW%v$&jrnFb6-C7=w==I!`g}(msBCHn zER>HQKFCD{CN(u(gEMF}knFNKob7e?{MXtHa*5J_7U#JzoU*marAD`073?~Ir2)VJ z)H~bL@H@^&*vV5fo1aaoIs3X6bGcatk75!u6zndCvloyb?~qq$QtE!8kdu}UZ*J!E z`&w36Ia8+VS5i^}pmEzS5!%OqfG$52M9VKI-s!>tj+?^(m&LkH0m?Ev`_420)?I5w zvZadqV|e&?M-a{|&D7KsIHwEl`h%%_j~+eZVgOeIATU+adaH#Ni|MNJiV9OxU5HZd zURL#7u)qJhFA=-Bs-q*j-`Ahx{x%CR%o-Ze5gPfE$C~9|C`>hjWW96zveSLjxZEc3VaUMrukMLg| z933?}Y~w?`05+}m#A<2L9fVK-Bn-nP<#8MZ)vLBPR|~*$jHbxzV(XgYBm{-Q0;{lj|ftp8s|ej!2a<=#%iq= zj*so79df|tahpu#sZH~|%r7YD0R^$50`vh7P%IR3Q0tQXHS}9X%exwgrq-&RYgjX~ zyVQFI7F##|w@_;hrBX0j(ujPj`M z?6kC73%K(FR);bsgrXT#-*m0~)t~(N;g23+1ENCz?~y{W!z8qTW-L=1!l1;DR|9eb z=%oMy`v1+=E3RC_`Fee{#KOkh3@}!{K!r)C2JyEM79&9L(Mz$1OR`DEgE|Pve^c zhMRjDKflv{oI()D{XQmP?`qTWO;BqC!UCtp!@jJRFz{|w)m?*$)lVTR$v{L%%h6M)%yAcu{c5%+7UA*ZdwIAZ zG}_({i|%_#H)muypHi9KCb>1k`O<7Gh8m^b2{>?|Bi0$q+=s6Lr%zTka$V~UT_~9V z(D*V-_Fly#kPvSz?pgMx&1{ZiUBS>Tsv6F?!Cqsf)|{DjXnNPUz_g;?18NPbJWx47P|?oX8Wk1w*TULpz5?j`!1XF(kcL+w zw}&YrXNHE_!Qo;G3It(KxV(cOgOAKfb5gBJgywtn-i19$Q!}MFBSR#5C4|6=WB{xd zARwNfF&p(^lakT_oDOmfV92w*6=5*9L$4fZjf#O`eb3SiBoAN)7CJiZz)ZcSLBvqF z3{(-2v$j3}HGgd&g77}~9Epvce z>c0(HzB_BQ_5BhP^F~sV_^)A_p&=9Cmm*fu(zkF}s22g(0|>HnP4${O!9`zko4PY`)Pw!S$&(t^0w0L@i3e>Kw zxB!QAeW2K|a!_vbnx5c>+9*cGje#m4 zVY0S(EKm91Z}X&ZILx$9lO5ZM`tdCye)r?Ut#V8D-x_CRA&b_|%e{VIQQ>?vK_WkO z7_q-Gj>7t1x=TrgRaDr1qp50Z3qFU#w?l;`+WFT2NIRxlmvP%kB;>E?qd}iaXAm`(aDDbI$e7-Jy4`C90)*!9~Lu}E3 z)$8U(iH1K(`1~1+OCDWc9083Uu?@6tpjOn^<`)*eq@h`qCIWg)>`RsC=x9i1yhv>% zN6PK`ygWQS{Dnj~CWlFgNE=>g7C#z-cV?zOfRST`Dga`E;ts?yHCfqTzkanf_xB~R zfUQ@r0N`^@adE!^Gr}(*#?Q~sL%&v6pZ7#lc1XEi2Gw~~-qSEeBWBI3s$vDQ-So7& znwksf*yb$H93`HXJ^mP&xa!8s9q{8K4XGyf%xr>P6Pka5lj`}7mz^n@VHSfR%cLO z0e1&L<^OYE03h}ijQud2yo#31ij_4_)#A z=o%K*k0Ed^tEOgRU;rBA^BumLABK!JOBJD^vzsGbXheFpAa+n~hM}%{{DSr^1?mjo zjoV3E2T5i;_U}nZcU81*Z9x>7&y9Gtq56oYcgojV857nooywaKAFryR0oF7!3kyp_ z$cQS4i6eV|ctj0i&%8`Foed5wnwlsWM9lY~y}3d{Hd9?VJR#e#tfHbhI=VSQ?X{;T z&Dk^{o?xhZy2?gg!S3`-`+EYByl`f9T3T;~AwP(WfSLVYW(U6?KGtG!H17Z@7FXA& z4u{7Yp}Q|U@(H38#}cP14|icJMYMO*Wl zpIt8w78QV<;&pR!{UhoTNRRmV97V@OfaruU7#i4ncLuJ*bBP)-9HD1kbk@tD02WnR zjNQrg#jxd^J%F-9H5QNFa|>f5Q$`hyjE}dtUog*QzpntH082|@ASje-HiFl)(QLjK z?X1rf(}!Ne;esl)H}!UAEG&;o-_?W4!v>w7m#b^H-ZQrF^xXW1;h|{xCs^^p?Tj{W zo&wD4Y)=ekV1pU>ii#za$7sm^Q-q<;LZhzU1q%62|6&r%L2x=2Ie-ZovG8|{Oq&@X zuWvakE0;#x?GN&1S?A}?Ag&!0fsxGXaz6wwub6LdG@oJ*9r2!u)j}!}-fHvvA>33Y z=*z#y9ZbLeTR!4qyZQ0fRxx2{=?!6r7a0m71boOXW#@u7088)eS-OEcCoFii67sp0 zHE{3K;fg;4E-v;a7%G?|Feh47)TlBY_VM*7mteNIJ zWIpGE@=AXAQmrxCg{vV-KqmDYZ^T z<>jf_hBDd<=Q3%gkj~aMkRggQrBk{W)n|DVSLpl}~dOAPlzy^#Nd99m< zk}tUag5UV(Cs;Sgs{!@X8O(1P4;1CEH`f51+GwpS{Fy$*Ij+9TkmPBOg?D-R1h@l% z;vsQNkUd8J!&uh2zONCm?g+9%I=Wm9jWf7(>Vz+s#MyH(yX{b7){`TmAs1OZcMz0HSL zM#k;s%b4I`6<(fIwBx<`W*Fa%xn$p7oPa0HK~X7oZ%)GP;&)k45c!;86pS?@MNSwG z1_x6kNlf~hphN_sB9O9zi713Wn^UIrUTk}_q@fVq*#;9HbS`Fn*Pr|MY|@V&ATEv- z=7L*yOgCLjf=pPQllsDI1|f7EMnW(ZF|7HpTi7lokhoxDNO)ml0ttHjkQ$5}o-3$PCfUqt-IU{peA6P&@cz}kS8FjBYFRH_s>K=^hp!U2U zHYZ#l^jzw*&kOk3^MEr|%Kz=wHW^R9cP(o8V+y#}h_UF3-#m3b#l%Ri#2R{S+7c-O zZ}`S>`hVTK=3n>4asDez;w&Kdum1@$Cqcw#pH%;m90|ezRpy^l<6wZ?KDtFsR_;hA zQ#{cte{yW;Ta0j&z WQDI1MrAYxO0m0u$i
Artifact Lumiera

Depends on common

Depends on gui

Depends on proc

Depends on backend

the main executable to be built

-

executable associated with : effect, buildertool, segmentationtool, aframe, assembler, trafo, explicitplacement, auto, glrender, link, parameter, renderengine, allocation, vframe, toolfactory, arender, renderstate, label, glbuf, procnode, stateproxy, hub, buildable, abstractmo, nodecreatertool, projector, interpolator, edl, fixture, glpipe, vrender, exitnode, pathmanager, track, paramprovider, mask, main, conmanager, clip, meta, fixedlocation, relativelocation, mobject, source, frame, placement, sessionimpl, builderfacade, controllerfacade, processor, pluginadapter

+

executable associated with : mobject, source, frame, placement, sessionimpl, builderfacade, controllerfacade, processor, pluginadapter, effect, buildertool, segmentationtool, aframe, assembler, trafo, explicitplacement, auto, glrender, link, parameter, renderengine, allocation, vframe, toolfactory, arender, renderstate, label, glbuf, procnode, stateproxy, hub, buildable, abstractmo, nodecreatertool, projector, interpolator, edl, fixture, glpipe, vrender, exitnode, pathmanager, track, paramprovider, mask, main, conmanager, clip, meta, fixedlocation, relativelocation

Artifact main

Artifact source

@@ -521,7 +521,7 @@ Documentation
Artifact hub

special ProcNode used to build data distributing connections

-

Artifact source associated with : Hub

+

Artifact source

Artifact projector

video ProcNode for scaling and translating image data

@@ -541,19 +541,19 @@ Documentation
Artifact glpipe

specialized connection element for handling OpenGL implementation details

-

Artifact source associated with : GLPipe

+

Artifact source

Artifact arender

Representation of a Audio Render process

-

Artifact source associated with : ARender

+

Artifact source

Artifact vrender

Representation of a Video render process

-

Artifact source associated with : VRender

+

Artifact source

Artifact glrender

Representation of a OpenGL accellerated Video render process

-

Artifact source associated with : GLRender

+

Artifact source

Artifact aframe

a buffer and render process holding a Audio frame

@@ -880,21 +880,19 @@ reuse exiting Engine

Selection :

    Transformation

    Render Mechanics



    + +

    +

    StateAdapter composition



    Class Processor
    Class ExitNode
    Class ProcNode
    Class Trafo
    Class Link
    -
    Class Hub
    Class Projector
    Class Mask
    -
    Class GLPipe
    -
    Class ARender
    -
    Class VRender
    -
    Class GLRender
    Class Frame
    Class AFrame
    Class VFrame
    @@ -902,7 +900,14 @@ reuse exiting Engine

    Selection :

      Transformation
      Class Source
      -
      +
      +
      +
      +
      Class Caching
      +
      Class Process
      +
      Class InPlace
      +
      +

      @@ -1016,13 +1021,7 @@ reuse exiting Engine

      Selection :

        Transformation

      • datasrc = input
      • Class instance vid_a

        type :Source

        -
        Class instance aud_a

        type :Source

        -
        Class instance vid1

        type :VRender

        relations :

        -
        Class instance au1

        type :ARender

        relations :

        +
        Class instance aud_a

        type :Source

        Class instance

        type :VFrame

        Class instance

        type :AFrame

        Class instance

        type :RenderEngine

        relations :

          @@ -1046,9 +1045,6 @@ reuse exiting Engine

        Selection :

          Transformation

          Class instance HUE

          type :PluginAdapter

          relations :

          -
          Class instance vid1

          type :VRender

          relations :

          Class instance

          type :VFrame

          Class instance video1

          type :Processor

          attributes :

            @@ -1090,7 +1086,9 @@ reuse exiting Engine

          Selection :

            Transformation
            Class Caller
            Class instance node3

            type :ProcNode

            -
            Class instance ad3

            type :StateAdapter

            +
            Class instance ad3

            type :StateAdapter

            +
            Class instance vid1

            type :StateProxy

            +
            Class instance au1

            type :StateProxy

            3 Package BackendLayer

            diff --git a/doc/devel/uml/index_60.html b/doc/devel/uml/index_60.html index cc286ecf2..8712d7074 100644 --- a/doc/devel/uml/index_60.html +++ b/doc/devel/uml/index_60.html @@ -28,10 +28,10 @@ <flow>transition <flow>transition <flow>transition -<flow>transition <flow>transition -<flow>transition +<flow>transition <flow>transition +<flow>transition <flow>transition <flow>transition <flow>transition diff --git a/doc/devel/uml/index_65.html b/doc/devel/uml/index_65.html index 8bc6b2fca..ab57596c5 100644 --- a/doc/devel/uml/index_65.html +++ b/doc/devel/uml/index_65.html @@ -40,7 +40,6 @@ applyoperation applyoperation Architecturecomponent viewThe various Components comprising the Lumiera Video editing Application -ARenderclassRepresentation of a Audio render process arenderartifactRepresentation of a Audio Render process AssemblerclassThis is the actual building facility: provided the correct tools and associations, it serves to build and connect the individual ProcNode objects assemblerartifactbuilding facility (implementation of the build process) @@ -55,7 +54,7 @@ assetmanagerartifactFacade for the Asset subsystem Assetsclass view ATTACHattributeattach subject to anchor (e.g. an effect to a clip) -au1class instance +au1class instance aud_aclass instance aud_Aclass instance audioclass instance diff --git a/doc/devel/uml/index_66.html b/doc/devel/uml/index_66.html index f37527c49..db64b33db 100644 --- a/doc/devel/uml/index_66.html +++ b/doc/devel/uml/index_66.html @@ -23,6 +23,7 @@ backend-componentscomponent diagram BackendCacheclass BackendLayerpackage +BuffHandleclass buildoperation build flowactivity diagram build necessary?decision activity node diff --git a/doc/devel/uml/index_67.html b/doc/devel/uml/index_67.html index 2b841a011..1612ca9ea 100644 --- a/doc/devel/uml/index_67.html +++ b/doc/devel/uml/index_67.html @@ -19,43 +19,44 @@ NameKindDescription Cachecomponent Cachecomponent view +Cachingclass Callerclass categoryrelationprimary tree like classification of the asset Categoryclasstree like classification of Assets categoryartifacttree like classification of Assets causeattributea copy of the first exception encountered in this exception chain -chainrelationChain of additional Placements further constraining the position of this MObject chainoperationcreate and add another Placement for this media object, thus increasingly constraining the (possible) position of this object. +chainrelationChain of additional Placements further constraining the position of this MObject checked_inrelationchecked_in objects are subject of cache aging and must be not in use checked_outrelationthis list keeps all mappings which are in use, and thus prevents them from Cache aging -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance class instanceclass instance class instanceclass instance -class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance clearoperationclear current session contents
            without resetting overall session config.
            Afterwards, the session will contain only one
            empty EDL, while all Assets are retained.
            client codecomponent Clipclassbookkeeping (asset) view of a media clip. @@ -95,8 +96,8 @@ constraintartifactLocatingPin representing an directive by the user that
            must not be violated Constraintclass Controllercomponent -controllerpackagesourcecode package

            The Processing and Render Controller,
            located within the MObject Subsystem Controllerpackage +controllerpackagesourcecode package

            The Processing and Render Controller,
            located within the MObject Subsystem Controller Entitiesclass diagram Controller Workingsclass view ControllerFacadeclassProvides unified access to the Proc-Subsystem Controller. Especially, this Facade class provides the functions to get a render engine to carry out actual renderings. diff --git a/doc/devel/uml/index_69.html b/doc/devel/uml/index_69.html index 6c17d406d..1f6fd3f19 100644 --- a/doc/devel/uml/index_69.html +++ b/doc/devel/uml/index_69.html @@ -24,8 +24,8 @@ EDL Example2object diagramMore complex example showing the Object graph in the EDL and how it is linked into the Fixture to yield the actual locations. In this example, an HUE Effect is applied on a part of the Clip edlsrelation EffectclassEffect or media processing component -effectartifactEDL representation of a pluggable and automatable effect. effectartifactEffect or media processing component +effectartifactEDL representation of a pluggable and automatable effect. Effectclass elementsrelationrelevant MObjects comprising this segment. TODO: actually necessary?? enableoperationchange the enabled status of this asset. Note the corresponding #isActive predicate may depend on the enablement status of parent assets as well diff --git a/doc/devel/uml/index_70.html b/doc/devel/uml/index_70.html index 3d833b61f..5e1189dd5 100644 --- a/doc/devel/uml/index_70.html +++ b/doc/devel/uml/index_70.html @@ -35,8 +35,8 @@ FixedLocationclass Fixtureactivity object fixtureartifactthe (low level) representation of the EDL with concrete placement data -Fixtureclass Fixturecomponent +Fixtureclass fork activity nodefork activity node FrameclassFrames are just a low level lump of continous memory, most parts are opaque. Frames are memory sensitive, they will be small constant sized structures which can be efficently managed in a pool. Framenode diff --git a/doc/devel/uml/index_71.html b/doc/devel/uml/index_71.html index 82430e314..f4ad7d96d 100644 --- a/doc/devel/uml/index_71.html +++ b/doc/devel/uml/index_71.html @@ -46,9 +46,7 @@ getValueoperation GLBufclass glbufartifacta buffer and render process holding a Video frame for OpenGL rendering -GLPipeclassspecialized connection node used to handle the transfer of OpenGL data from a image bitmap into texture form glpipeartifactspecialized connection element for handling OpenGL implementation details -GLRenderclassRepresentation of a OpenGL accelerated Video render process glrenderartifactRepresentation of a OpenGL accellerated Video render process groupsattributeadditional classification, selections or departments this asset belongs to. Groups are optional, non-exclusive and may be overlapping. guipackagesourcecode package

            User Interface classes go here diff --git a/doc/devel/uml/index_72.html b/doc/devel/uml/index_72.html index 0abaaac68..3547e6f3e 100644 --- a/doc/devel/uml/index_72.html +++ b/doc/devel/uml/index_72.html @@ -22,7 +22,6 @@ handles_availableattributeinitialized to the maximum number of filehandles the backend may use for mapped files. When no handles are available, the handle which is last in the handles list is closed and (re-)used.
            Else this number is decremented for each new filehandle used and incremented for any one explicitly freed. Hierarchyclass diagramLumiera Exception hierarchy howtoProcoperation@return descriptor how to build a render pipeline corresponding to this media -Hubclass hubartifactspecial ProcNode used to build data distributing connections HUEclass instance HUEclass instance diff --git a/doc/devel/uml/index_73.html b/doc/devel/uml/index_73.html index 12fe67359..9a0a77429 100644 --- a/doc/devel/uml/index_73.html +++ b/doc/devel/uml/index_73.html @@ -20,10 +20,10 @@ idattributeAsset primary key. In Memory Databaseclass diagram inFixtureactivity action pin +InPlaceclass inputclass instance -inputclass instance inputclass instance -InputDescriptorclass +inputclass instance instanceoperation instructionsrelation Interfaceclass view @@ -32,6 +32,7 @@ interpolatorartifactdenotes a facility to get (continuously interpolated) parameter values InterpolatorclassProvides the implementation for getting the acutal value of a time varying or automated effect/plugin parameter Invalidclass +InvocationStateBaseclass iporelation isActiveoperationweather this asset is swithced on and consequently included in the fixture and participates in rendering isCalculatedoperation diff --git a/doc/devel/uml/index_78.html b/doc/devel/uml/index_78.html index d0f7bd42e..74fa8a9d8 100644 --- a/doc/devel/uml/index_78.html +++ b/doc/devel/uml/index_78.html @@ -26,6 +26,7 @@ nodecreatertoolartifactcentral Tool implementing the Renderengine building NodeCreatorToolclassThis Tool implementation plays the central role in the buld process: given a MObject from Session, it is able to attach ProcNodes to the render engine under construction such as to reflect the properties of the MObject in the actual render. nodesrelation +NodeWiringclass diff --git a/doc/devel/uml/index_79.html b/doc/devel/uml/index_79.html index bfec5f683..d1fdc83c0 100644 --- a/doc/devel/uml/index_79.html +++ b/doc/devel/uml/index_79.html @@ -19,9 +19,9 @@ NameKindDescription offsetattributeOffset the actual position by this (time) value relative to the anchor point. TODO: Representation? orgattributeorigin or authorship id. Can be a project abbreviation, a package id or just the authors nickname or UID. This allows for the compnent name to be more generic (e.g. "blur"). Default for all assets provided by the core Lumiera codebase is "lumi". -ouputclass instance ouputclass instance ouputclass instance +ouputclass instance outPortrelationthe Port this MObject wants to be conected to outputrelation Overviewcomponent diagramThis drawing shows the top level compoents and relations diff --git a/doc/devel/uml/index_80.html b/doc/devel/uml/index_80.html index 0cff29b1c..a3268b59b 100644 --- a/doc/devel/uml/index_80.html +++ b/doc/devel/uml/index_80.html @@ -53,6 +53,7 @@ Proc-Asset Relationsclass diagram proc-componentscomponent diagram ProcDispatcherclass +Processclass processoperation ProcessingLayerpackage Processorclass diff --git a/doc/devel/uml/index_82.html b/doc/devel/uml/index_82.html index 7f2b69c16..b5b305e10 100644 --- a/doc/devel/uml/index_82.html +++ b/doc/devel/uml/index_82.html @@ -23,8 +23,8 @@ relativelocationartifactPlacement implemnetaion providing various ways of attaching a MObject to another one RelativeLocationclass releaseBufferoperation -RelTypeclassthe possible kinds of RelativePlacements relTypeattributethe kind of relation denoted by this Placement +RelTypeclassthe possible kinds of RelativePlacements removeoperationremove the given asset <i>together with all its dependants</i> from the internal DB Render Entitiesclass diagram Render Mechanicsclass diagram diff --git a/doc/devel/uml/index_83.html b/doc/devel/uml/index_83.html index c7b3fed84..5dd747140 100644 --- a/doc/devel/uml/index_83.html +++ b/doc/devel/uml/index_83.html @@ -60,6 +60,7 @@ Stateclass staterelation StateAdapterclass +StateAdapter compositionclass diagram StateProxyclass stateproxyartifactKey Interface representing a render process and encapsulating state std::exceptionclass diff --git a/doc/devel/uml/index_84.html b/doc/devel/uml/index_84.html index 78e737858..b0541e88b 100644 --- a/doc/devel/uml/index_84.html +++ b/doc/devel/uml/index_84.html @@ -34,21 +34,21 @@ trackrelation trackattribute trackrelation -trackartifactstructural asset holding the configuration of a track in the EDL trackartifactA grouping device within the EDL. The corresponding Placement
            by which this Track object is refered defines fallback placing
            properties to be used by all objects placed on this track in
            case they don't specify more concrete placements.
            Typically, tracks are used do make default Port connections,
            define a layer or pan for sound and for for disabling groups
            of clips. Note tracks are grouped in a tree like fashion.
            +trackartifactstructural asset holding the configuration of a track in the EDL Trackclass tracksrelationelementary media assets comprising this compound Trafoclass trafoartifacttransforming processing Node treatoperation treatoperationThis operation is to be overloaded for the specific MObject subclasses to be treated. -treatoperation -treatoperation treatoperation treatoperation +treatoperation +treatoperation +treatoperation treatoperation treatoperation -treatoperation TypeHandlerclass TypeHandler<Pipe>class diff --git a/doc/devel/uml/index_86.html b/doc/devel/uml/index_86.html index c2ce0bff8..cda6a585e 100644 --- a/doc/devel/uml/index_86.html +++ b/doc/devel/uml/index_86.html @@ -20,27 +20,25 @@ versionattributeversion number of the thing or concept represented by this asset. Of each unique tuple (name, category, org) there will be only one version in the whole system. Version 0 is reserved for internal purposes. Versions are considered to be ordered, and any higher version is supposed to be fully backwards compatible to all previous versions. VFrameclass vframeartifacta buffer and render process holding a Video frame -vid1class instance -vid1class instance -vid_Aclass instance -vid_aclass instance +vid1class instance vid_Aclass instance -vid_Aclass instance vid_aclass instance -videoclass instance -videoclass instance +vid_Aclass instance +vid_Aclass instance +vid_aclass instance videoclass instance videoclass instance -video1class instance +videoclass instance +videoclass instance video1class instance +video1class instance video1class instance +video1class instance video1class instance video1class instance -video1class instance Visitableclass visitorpackagesub-namespace for visitor library implementation visitorartifactAcyclic Visitor library -VRenderclassRepresentation of a Video render process. (Encapsulates the video buffers for the actual calculations) vrenderartifactRepresentation of a Video render process diff --git a/doc/devel/uml/index_87.html b/doc/devel/uml/index_87.html index bd2bf3399..7e2b7e31f 100644 --- a/doc/devel/uml/index_87.html +++ b/doc/devel/uml/index_87.html @@ -20,6 +20,9 @@ whatoperation whatoperationthe base class of all exceptions thrown by the standard library when to queryuse case diagram +wiringrelation +WiringDescriptorclass +WiringTableclass wiringTemplaterelation wishartifactLocatingPin representing a low-priority directive by the user,
            to be fulfilled only if possible (and after satisfying the
            more important LocatingPins) Wishclass diff --git a/uml/lumiera/128389 b/uml/lumiera/128389 index 20d07a18b..2a8c1a7c0 100644 --- a/uml/lumiera/128389 +++ b/uml/lumiera/128389 @@ -1,6 +1,6 @@ format 40 "RenderEngine" // ProcessingLayer::RenderEngine - revision 15 + revision 16 modified_by 5 "hiv" // class settings //class diagram settings @@ -87,6 +87,11 @@ format 40 size A4 end + classdiagram 132357 "StateAdapter composition" + draw_all_relations no hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default + size A4 + end + class 131333 "RenderEngine" visibility package cpp_decl "${comment}${template}class ${name}${inherit} @@ -241,12 +246,12 @@ ${members}}; classrelation 152581 // predecessors () relation 149125 *--> - stereotype "vector" + stereotype "array" a role_name "predecessors" multiplicity "*" protected cpp default " ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value}; " classrelation_ref 152581 // predecessors () - b multiplicity "" parent class_ref 142725 // InputDescriptor + b multiplicity "" parent class_ref 142725 // WiringDescriptor end operation 135685 "pull" @@ -320,26 +325,6 @@ ${inlines} end end - class 132101 "Hub" - visibility package - cpp_decl "${comment}${template}class ${name}${inherit} - { -${members} }; -${inlines} -" - java_decl "" - idl_decl "" - explicit_switch_type "" - - classrelation 133125 // - relation 132357 ---|> - a public - cpp default "${type}" - classrelation_ref 133125 // - b multiplicity "" parent class_ref 131717 // ProcNode - end - end - class 132229 "Projector" visibility package cpp_decl "${comment}${template}class ${name}${inherit} @@ -422,90 +407,6 @@ ${inlines} end end - class 132613 "GLPipe" - visibility package - cpp_decl "${comment}${template}class ${name}${inherit} - { -${members} }; -${inlines} -" - java_decl "" - idl_decl "" - explicit_switch_type "" - - comment "specialized connection node used to handle the transfer of OpenGL data from a image bitmap into texture form" - classrelation 133381 // - relation 132613 ---|> - a public - cpp default "${type}" - classrelation_ref 133381 // - b multiplicity "" parent class_ref 131973 // Link - end - end - - class 132869 "ARender" - visibility package - cpp_decl "${comment}${template}class ${name}${inherit} - { -${members} }; -${inlines} -" - java_decl "" - idl_decl "" - explicit_switch_type "" - - comment "Representation of a Audio render process" - classrelation 134661 // - relation 133509 ---|> - a public - cpp default "${type}" - classrelation_ref 134661 // - b multiplicity "" parent class_ref 132741 // State - end - end - - class 132997 "VRender" - visibility package - cpp_decl "${comment}${template}class ${name}${inherit} - { -${members} }; -${inlines} -" - java_decl "" - idl_decl "" - explicit_switch_type "" - - comment "Representation of a Video render process. (Encapsulates the video buffers for the actual calculations)" - classrelation 134789 // - relation 133637 ---|> - a public - cpp default "${type}" - classrelation_ref 134789 // - b multiplicity "" parent class_ref 132741 // State - end - end - - class 133125 "GLRender" - visibility package - cpp_decl "${comment}${template}class ${name}${inherit} - { -${members} }; -${inlines} -" - java_decl "" - idl_decl "" - explicit_switch_type "" - - comment "Representation of a OpenGL accelerated Video render process" - classrelation 134917 // - relation 133765 ---|> - a public - cpp default "${type}" - classrelation_ref 134917 // - b multiplicity "" parent class_ref 132741 // State - end - end - class 133253 "Frame" abstract visibility public stereotype "interface" cpp_decl "${comment}${template}class ${name}${inherit} @@ -616,6 +517,11 @@ ${inlines} class 142469 "StateProxy" visibility package stereotype "implementation" + nformals 2 + formal name "WIRING" type "class" explicit_default_value "" + explicit_extends "" + formal name "POLICY" type "class" explicit_default_value "" + explicit_extends "" cpp_decl "${comment}${template}class ${name}${inherit} { ${members} }; @@ -632,6 +538,23 @@ ${inlines} classrelation_ref 152453 // b multiplicity "" parent class_ref 132741 // State end + + classrelation 153221 // + relation 149765 ---|> + a public + cpp default "${type}" + classrelation_ref 153221 // + b multiplicity "" parent class_ref 143877 // InPlace + end + + classrelation 154117 // wiring () + relation 150661 ---> + a role_name "wiring" multiplicity "1" const_relation protected + cpp default " ${comment}${static}${mutable}${volatile}${const}${type}* ${name}${value}; +" + classrelation_ref 154117 // wiring () + b multiplicity "" parent class_ref 144005 // WiringTable + end end class 142597 "StateAdapter" @@ -687,7 +610,165 @@ ${class}::${name} ${(}${)}${const}${volatile} ${throw}${staticnl} end end - class 142725 "InputDescriptor" + class 142725 "WiringDescriptor" + visibility package + cpp_decl "${comment}${template}class ${name}${inherit} + { +${members} }; +${inlines} +" + java_decl "" + idl_decl "" + explicit_switch_type "" + + end + + class 143365 "NodeWiring" + visibility package + nformals 1 + formal name "STATE" type "class" explicit_default_value "" + explicit_extends "" + cpp_decl "${comment}${template}class ${name}${inherit} + { +${members} }; +${inlines} +" + java_decl "" + idl_decl "" + explicit_switch_type "" + + classrelation 152965 // + relation 149509 ---|> + a public + cpp default "${type}" + classrelation_ref 152965 // + b multiplicity "" parent class_ref 142725 // WiringDescriptor + end + + classrelation 153093 // + relation 149637 -_-> + a default + cpp default "Generated" + classrelation_ref 153093 // + b multiplicity "" parent class_ref 142597 // StateAdapter + end + end + + class 143493 "InvocationStateBase" + visibility package + cpp_decl "${comment}${template}class ${name}${inherit} + { +${members} }; +${inlines} +" + java_decl "" + idl_decl "" + explicit_switch_type "" + + classrelation 153733 // + relation 150277 ---|> + a public + cpp default "${type}" + classrelation_ref 153733 // + b multiplicity "" parent class_ref 132741 // State + end + end + + class 143621 "Caching" + visibility package + cpp_decl "${comment}${template}class ${name}${inherit} + { +${members} }; +${inlines} +" + java_decl "" + idl_decl "" + explicit_switch_type "" + + classrelation 153605 // + relation 150149 ---|> + a public + cpp default "${type}" + classrelation_ref 153605 // + b multiplicity "" parent class_ref 143493 // InvocationStateBase + end + end + + class 143749 "Process" + visibility package + cpp_decl "${comment}${template}class ${name}${inherit} + { +${members} }; +${inlines} +" + java_decl "" + idl_decl "" + explicit_switch_type "" + + classrelation 153477 // + relation 150021 ---|> + a public + cpp default "${type}" + classrelation_ref 153477 // + b multiplicity "" parent class_ref 143621 // Caching + end + end + + class 143877 "InPlace" + visibility package + cpp_decl "${comment}${template}class ${name}${inherit} + { +${members} }; +${inlines} +" + java_decl "" + idl_decl "" + explicit_switch_type "" + + classrelation 153349 // + relation 149893 ---|> + a public + cpp default "${type}" + classrelation_ref 153349 // + b multiplicity "" parent class_ref 143749 // Process + end + end + + class 144005 "WiringTable" + visibility package + nformals 1 + formal name "SIZ" type "int" explicit_default_value "" + explicit_extends "" + cpp_decl "${comment}${template}class ${name}${inherit} + { +${members} }; +${inlines} +" + java_decl "" + idl_decl "" + explicit_switch_type "" + + classrelation 153861 // + relation 150405 *--> + stereotype "array" + a role_name "" multiplicity "SIZ" protected + cpp default " ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value}; +" + classrelation_ref 153861 // + b multiplicity "" parent class_ref 144133 // BuffHandle + end + + classrelation 153989 // + relation 150533 ---> + a role_name "" multiplicity "" protected + cpp default " ${comment}${static}${mutable}${volatile}${const}${type}* ${name}${value}; +" + classrelation_ref 153989 // + b multiplicity "" parent class_ref 142725 // WiringDescriptor + end + end + + class 144133 "BuffHandle" visibility package cpp_decl "${comment}${template}class ${name}${inherit} { diff --git a/uml/lumiera/128389.diagram b/uml/lumiera/128389.diagram index 741cf9ff5..da7bca1cb 100644 --- a/uml/lumiera/128389.diagram +++ b/uml/lumiera/128389.diagram @@ -24,10 +24,6 @@ classcanvas 129157 class_ref 131973 // Link draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default xyz 648 444 2000 end -classcanvas 129285 class_ref 132101 // Hub - draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default - xyz 593 444 2000 - end classcanvas 129413 class_ref 132229 // Projector draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default xyz 417 561 2000 @@ -40,26 +36,10 @@ classcanvas 129669 class_ref 132485 // PluginAdapter draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default xyz 506 621 2000 end -classcanvas 129797 class_ref 132613 // GLPipe - draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default - xyz 699 531 2000 - end classcanvas 132229 class_ref 132741 // State draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default xyz 36 374 2000 end -classcanvas 132997 class_ref 132869 // ARender - draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default - xyz 31 511 2000 - end -classcanvas 133125 class_ref 132997 // VRender - draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default - xyz 110 511 2000 - end -classcanvas 133253 class_ref 133125 // GLRender - draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default - xyz 175 511 2000 - end classcanvas 133765 class_ref 133253 // Frame draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default xyz 269 612 2000 @@ -97,36 +77,25 @@ relationcanvas 128901 relation_ref 131973 // multiplicity_a_pos 414 419 3000 no_multiplicity_b relationcanvas 129925 relation_ref 132101 // geometry VHV - from ref 128389 z 1999 to point 445 387 - line 130693 z 1999 to point 499 387 + from ref 128389 z 1999 to point 445 397 + line 130693 z 1999 to point 499 397 line 130821 z 1999 to ref 128517 no_role_a no_role_b no_multiplicity_a no_multiplicity_b relationcanvas 130053 relation_ref 132229 // geometry VHV - from ref 129029 z 1999 to point 516 387 - line 130949 z 1999 to point 499 387 + from ref 129029 z 1999 to point 516 397 + line 130949 z 1999 to point 499 397 line 131077 z 1999 to ref 128517 no_role_a no_role_b no_multiplicity_a no_multiplicity_b -relationcanvas 130181 relation_ref 132357 // - geometry VHV - from ref 129285 z 1999 to point 613 387 - line 131205 z 1999 to point 499 387 - line 131333 z 1999 to ref 128517 - no_role_a no_role_b - no_multiplicity_a no_multiplicity_b relationcanvas 130309 relation_ref 132485 // geometry VHV - from ref 129157 z 1999 to point 668 387 - line 131461 z 1999 to point 499 387 + from ref 129157 z 1999 to point 668 397 + line 131461 z 1999 to point 499 397 line 131589 z 1999 to ref 128517 no_role_a no_role_b no_multiplicity_a no_multiplicity_b -relationcanvas 131717 relation_ref 132613 // - from ref 129797 z 1999 to ref 129157 - no_role_a no_role_b - no_multiplicity_a no_multiplicity_b relationcanvas 131845 relation_ref 132741 // from ref 129413 z 1999 to ref 129029 no_role_a no_role_b @@ -139,27 +108,6 @@ relationcanvas 132101 relation_ref 132997 // from ref 129669 z 1999 to ref 129029 no_role_a no_role_b no_multiplicity_a no_multiplicity_b -relationcanvas 133381 relation_ref 133509 // - geometry VHV - from ref 132997 z 1999 to point 58 472 - line 134277 z 1999 to point 73 472 - line 134405 z 1999 to ref 132229 - no_role_a no_role_b - no_multiplicity_a no_multiplicity_b -relationcanvas 133509 relation_ref 133637 // - geometry VHV - from ref 133125 z 1999 to point 136 472 - line 134533 z 1999 to point 73 472 - line 134661 z 1999 to ref 132229 - no_role_a no_role_b - no_multiplicity_a no_multiplicity_b -relationcanvas 133637 relation_ref 133765 // - geometry VHV - from ref 133253 z 1999 to point 206 472 - line 134789 z 1999 to point 73 472 - line 134917 z 1999 to ref 132229 - no_role_a no_role_b - no_multiplicity_a no_multiplicity_b relationcanvas 135045 relation_ref 133893 // geometry VHV from ref 133893 z 1999 to point 252 704 @@ -182,11 +130,11 @@ relationcanvas 136965 relation_ref 134533 // from ref 132229 z 1999 stereotype "<>" xyz 279 441 3000 to point 306 465 line 137093 z 1999 to ref 133765 role_a_pos 318 587 3000 no_role_b - multiplicity_a_pos 282 587 3000 multiplicity_b_pos 124 427 3000 + no_multiplicity_a multiplicity_b_pos 124 427 3000 relationcanvas 137349 relation_ref 134661 // geometry VHV - from ref 137221 z 1999 to point 763 387 - line 137477 z 1999 to point 499 387 + from ref 137221 z 1999 to point 763 397 + line 137477 z 1999 to point 499 397 line 137605 z 1999 to ref 128517 no_role_a no_role_b no_multiplicity_a no_multiplicity_b @@ -203,8 +151,8 @@ relationcanvas 139397 relation_ref 135429 // from ref 128517 z 1999 to point 432 264 line 139525 z 1999 to point 432 294 line 139653 z 1999 to ref 128517 - role_a_pos 414 272 3000 no_role_b - no_multiplicity_a multiplicity_b_pos 445 291 3000 + role_a_pos 414 276 3000 no_role_b + no_multiplicity_a multiplicity_b_pos 445 296 3000 relationcanvas 139909 relation_ref 136965 // from ref 139781 z 1999 to ref 129029 no_role_a no_role_b diff --git a/uml/lumiera/129029.diagram b/uml/lumiera/129029.diagram index 9892c6c73..7ca7da511 100644 --- a/uml/lumiera/129029.diagram +++ b/uml/lumiera/129029.diagram @@ -33,12 +33,6 @@ classinstancecanvas 129797 classinstance_ref 131717 // vid_a classinstancecanvas 129925 classinstance_ref 131845 // aud_a xyz 444 398 2000 end -classinstancecanvas 131717 classinstance_ref 131973 // vid1 - xyz 188 427 2000 - end -classinstancecanvas 131845 classinstance_ref 132101 // au1 - xyz 554 289 2000 - end classinstancecanvas 131973 classinstance_ref 132229 // xyz 117 492 2000 end @@ -49,9 +43,15 @@ note 133125 "render state proxy passed on" xyzwh 123 355 2000 104 53 textcanvas 133253 "Video and Audio Clip of length = 5 frames positioned at frame 2, producing two output streams (frame sequence)." xyzwh 445 507 2000 175 83 +classinstancecanvas 133381 classinstance_ref 137093 // vid1 + xyz 172 431 2000 + end +classinstancecanvas 133893 classinstance_ref 137221 // au1 + xyz 556 289 2000 + end objectlinkcanvas 128389 rel relation_ref 131845 // geometry VH - from ref 128005 z 1999 to point 117 205 + from ref 128005 z 1999 stereotype "<>" xyz 101 154 3000 to point 117 205 line 81 z 1999 to ref 128261 role_a_pos 188 183 3000 no_role_b objectlinkcanvas 128901 rel relation_ref 131973 // @@ -75,20 +75,18 @@ objectlinkcanvas 131461 rel relation_ref 135429 // objectlinkcanvas 131589 rel relation_ref 135429 // from ref 128773 z 1999 to ref 129925 role_a_pos 494 373 3000 no_role_b -objectlinkcanvas 132229 rel relation_ref 134533 // +objectlinkcanvas 133509 norel geometry VHr - from ref 131717 z 1999 to point 140 438 - line 1 z 1999 to ref 131973 - role_a_pos 152 467 3000 no_role_b -objectlinkcanvas 132485 rel relation_ref 134533 // + from ref 133381 z 1999 to point 140 442 + line 133637 z 1999 to ref 131973 + no_role_a no_role_b +objectlinkcanvas 134021 norel geometry HV - from ref 131845 z 1999 to point 676 300 - line 1 z 1999 to ref 132101 - role_a_pos 688 328 3000 no_role_b -line 132613 -_-_ - from ref 128261 z 1999 to point 244 320 - line 132741 z 1999 to ref 131717 -line 132869 -_-_ - from ref 128133 z 1999 to point 583 259 - line 132997 z 1999 to ref 131845 + from ref 133893 z 1999 to point 676 300 + line 134149 z 1999 to ref 132101 + no_role_a no_role_b +line 133765 -_-_ + from ref 128261 z 1999 to ref 133381 +line 134277 -_-_ + from ref 128133 z 1999 to ref 133893 end diff --git a/uml/lumiera/129157.diagram b/uml/lumiera/129157.diagram index f63b08370..81552e7a1 100644 --- a/uml/lumiera/129157.diagram +++ b/uml/lumiera/129157.diagram @@ -26,11 +26,8 @@ end classinstancecanvas 129157 classinstance_ref 133253 // HUE xyz 477 444 2000 end -classinstancecanvas 129541 classinstance_ref 133381 // vid1 - xyz 409 293 2000 - end classinstancecanvas 129669 classinstance_ref 133509 // - xyz 138 498 2000 + xyz 151 399 2000 end classinstancecanvas 129797 classinstance_ref 133637 // video1 xyz 478 172 2000 @@ -60,6 +57,9 @@ note 134661 "Note: because the Engine Components are stateless, various calculat xyzwh 569 45 2000 240 75 textcanvas 134789 "Video Clip from 2 to 7, with an attached HUE effect starting 3 frames after begin and overlapping by 1 frame beyond the end" xyzwh 145 553 2000 175 87 +classinstancecanvas 134917 classinstance_ref 137093 // vid1 + xyz 410 291 3005 + end objectlinkcanvas 130053 rel relation_ref 135429 // from ref 129925 z 1999 to ref 128901 role_a_pos 537 361 3000 no_role_b @@ -67,46 +67,46 @@ objectlinkcanvas 130437 rel relation_ref 135429 // from ref 129157 z 1999 to ref 128645 role_a_pos 539 472 3000 no_role_b objectlinkcanvas 130565 rel relation_ref 131973 // - from ref 128773 z 1999 stereotype "<>" xyz 624 285 3000 to ref 128517 + from ref 128773 z 1999 stereotype "<>" xyz 656 263 3000 to ref 128517 role_a_pos 661 304 3000 no_role_b -objectlinkcanvas 130693 rel relation_ref 134533 // - geometry VHr - from ref 129541 z 1999 to point 161 304 - line 130821 z 1999 to ref 129669 - role_a_pos 173 473 3000 no_role_b -objectlinkcanvas 130949 rel relation_ref 135429 // - from ref 128901 z 1999 to ref 129157 - role_a_pos 538 419 3000 no_role_b -objectlinkcanvas 131589 rel relation_ref 131973 // - from ref 129797 z 1999 stereotype "<>" xyz 499 284 3000 to ref 129925 - role_a_pos 537 304 3000 no_role_b -objectlinkcanvas 132613 rel relation_ref 135429 // - from ref 128517 z 1999 to ref 132229 - role_a_pos 662 419 3000 no_role_b -objectlinkcanvas 132869 rel relation_ref 135429 // - from ref 132229 z 1999 to ref 128389 - role_a_pos 662 533 3000 no_role_b -objectlinkcanvas 133637 rel relation_ref 135429 // - from ref 133509 z 1999 to ref 133381 - role_a_pos 348 361 3000 no_role_b -objectlinkcanvas 133765 rel relation_ref 135429 // - from ref 133125 z 1999 to ref 132997 - role_a_pos 416 577 3000 no_role_b -objectlinkcanvas 133893 rel relation_ref 131973 // - from ref 133253 z 1999 stereotype "<>" xyz 291 273 3000 to ref 133509 - role_a_pos 348 304 3000 no_role_b -objectlinkcanvas 134277 rel relation_ref 135429 // - from ref 133381 z 1999 to ref 133125 - role_a_pos 349 473 3000 no_role_b -objectlinkcanvas 134405 rel relation_ref 135429 // +objectlinkcanvas 135045 rel relation_ref 135429 // from ref 128645 z 1999 to ref 132997 role_a_pos 446 567 3000 no_role_b -objectlinkcanvas 134533 rel relation_ref 131845 // +objectlinkcanvas 135173 rel relation_ref 131845 // geometry VH - from ref 128005 z 1999 to point 123 205 - line 6 z 1999 to ref 133253 - role_a_pos 197 183 3000 no_role_b -line 131973 -_-_ - from ref 129797 z 1999 to point 445 243 - line 132101 z 1999 to ref 129541 + from ref 128005 z 1999 stereotype "<>" xyz 127 141 3000 to point 123 205 + line 136965 z 1999 to ref 133253 + role_a_pos 152 186 3000 no_role_b +objectlinkcanvas 135301 rel relation_ref 135429 // + from ref 128901 z 1999 to ref 129157 + role_a_pos 538 419 3000 no_role_b +objectlinkcanvas 135429 rel relation_ref 131973 // + from ref 133253 z 1999 stereotype "<>" xyz 282 261 3000 to ref 133509 + role_a_pos 348 304 3000 no_role_b +objectlinkcanvas 135557 rel relation_ref 135429 // + from ref 128517 z 1999 to ref 132229 + role_a_pos 662 419 3000 no_role_b +objectlinkcanvas 135685 rel relation_ref 135429 // + from ref 133125 z 1999 to ref 132997 + role_a_pos 416 577 3000 no_role_b +objectlinkcanvas 135813 rel relation_ref 135429 // + from ref 132229 z 1999 to ref 128389 + role_a_pos 662 533 3000 no_role_b +objectlinkcanvas 135941 rel relation_ref 131973 // + from ref 129797 z 1999 stereotype "<>" xyz 529 262 3000 to ref 129925 + role_a_pos 537 304 3000 no_role_b +objectlinkcanvas 136069 rel relation_ref 135429 // + from ref 133509 z 1999 to ref 133381 + role_a_pos 348 361 3000 no_role_b +objectlinkcanvas 136197 rel relation_ref 135429 // + from ref 133381 z 1999 to ref 133125 + role_a_pos 349 473 3000 no_role_b +objectlinkcanvas 136325 norel + geometry VHr + from ref 134917 z 1999 to point 174 302 + line 136453 z 1999 to ref 129669 + no_role_a no_role_b +line 136581 -_-_ + from ref 129797 z 1999 to point 451 237 + line 136709 z 1999 to ref 134917 end diff --git a/uml/lumiera/129285 b/uml/lumiera/129285 index 72c222be4..246c9e4d6 100644 --- a/uml/lumiera/129285 +++ b/uml/lumiera/129285 @@ -1,6 +1,6 @@ format 40 "ProcessingLayer" // ProcessingLayer - revision 19 + revision 21 modified_by 5 "hiv" // class settings //class diagram settings @@ -391,26 +391,6 @@ format 40 end end - classinstance 131973 "vid1" - type class_ref 132997 // VRender - attributes - end - relations - relation_ref 134533 // - classinstance_ref 132229 // - end - end - - classinstance 132101 "au1" - type class_ref 132869 // ARender - attributes - end - relations - relation_ref 134533 // - classinstance_ref 132357 // - end - end - classinstance 132229 "" type class_ref 133509 // VFrame attributes @@ -499,16 +479,6 @@ format 40 end end - classinstance 133381 "vid1" - type class_ref 132997 // VRender - attributes - end - relations - relation_ref 134533 // - classinstance_ref 133509 // - end - end - classinstance 133509 "" type class_ref 133509 // VFrame attributes @@ -689,5 +659,21 @@ ${inlines} relations end end + + classinstance 137093 "vid1" + type class_ref 142469 // StateProxy + attributes + end + relations + end + end + + classinstance 137221 "au1" + type class_ref 142469 // StateProxy + attributes + end + relations + end + end end end diff --git a/uml/lumiera/130309 b/uml/lumiera/130309 index f5c27c9a0..e89c34727 100644 --- a/uml/lumiera/130309 +++ b/uml/lumiera/130309 @@ -1,6 +1,6 @@ format 40 "engine" // design::codegen::proc::engine - revision 8 + revision 9 modified_by 5 "hiv" // class settings //class diagram settings @@ -306,7 +306,6 @@ ${namespace_start} ${members} ${namespace_end}" associated_classes - class_ref 132101 // Hub end comment "special ProcNode used to build data distributing connections" end @@ -501,7 +500,6 @@ ${namespace_start} ${members} ${namespace_end}" associated_classes - class_ref 132613 // GLPipe end comment "specialized connection element for handling OpenGL implementation details" end @@ -540,7 +538,6 @@ ${namespace_start} ${members} ${namespace_end}" associated_classes - class_ref 132869 // ARender end comment "Representation of a Audio Render process" end @@ -579,7 +576,6 @@ ${namespace_start} ${members} ${namespace_end}" associated_classes - class_ref 132997 // VRender end comment "Representation of a Video render process" end @@ -618,7 +614,6 @@ ${namespace_start} ${members} ${namespace_end}" associated_classes - class_ref 133125 // GLRender end comment "Representation of a OpenGL accellerated Video render process" end diff --git a/uml/lumiera/131973.diagram b/uml/lumiera/131973.diagram index 42c38a979..4b7003a43 100644 --- a/uml/lumiera/131973.diagram +++ b/uml/lumiera/131973.diagram @@ -14,16 +14,22 @@ classcanvas 129669 class_ref 133253 // Frame end classcanvas 131845 class_ref 142469 // StateProxy draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default - xyz 146 227 2000 + xyz 126 211 2000 end classcanvas 131973 class_ref 142597 // StateAdapter draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default xyz 40 317 3010 end -classcanvas 132357 class_ref 142725 // InputDescriptor +classcanvas 132357 class_ref 142725 // WiringDescriptor draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default - xyz 230 526 2000 + xyz 229 497 2000 end +classcanvas 135045 class_ref 143365 // NodeWiring + draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default + xyz 241 568 2000 + end +textcanvas 135685 "determines concrete Type" + xyzwh 100 594 2004 130 18 relationcanvas 129797 relation_ref 134533 // from ref 128517 z 1999 stereotype "<>" xyz 277 115 3000 to point 300 136 line 130053 z 1999 to ref 129669 @@ -31,33 +37,43 @@ relationcanvas 129797 relation_ref 134533 // no_multiplicity_a multiplicity_b_pos 173 109 3000 relationcanvas 132101 relation_ref 148869 // geometry VHV unfixed - from ref 131973 z 1999 to point 78 189 - line 134021 z 1999 to point 118 189 + from ref 131973 z 1999 to point 78 181 + line 134021 z 1999 to point 118 181 line 134149 z 1999 to ref 128517 no_role_a no_role_b no_multiplicity_a no_multiplicity_b relationcanvas 132229 relation_ref 148997 // geometry VHV - from ref 131845 z 1999 to point 198 189 - line 134277 z 1999 to point 118 189 + from ref 131845 z 1999 to point 178 181 + line 134277 z 1999 to point 118 181 line 134405 z 1999 to ref 128517 no_role_a no_role_b no_multiplicity_a no_multiplicity_b relationcanvas 132485 relation_ref 149125 // geometry HV - from ref 128005 z 1999 stereotype "<>" xyz 217 451 3000 to point 275 452 + from ref 128005 z 1999 stereotype "<>" xyz 205 454 3000 to point 277 452 line 133381 z 1999 to ref 132357 - role_a_pos 287 501 3000 no_role_b - multiplicity_a_pos 263 501 3000 no_multiplicity_b + role_a_pos 289 472 3000 no_role_b + multiplicity_a_pos 265 472 3000 no_multiplicity_b relationcanvas 133509 relation_ref 149253 // - from ref 131973 z 1999 to point 197 307 + from ref 131973 z 1999 to point 178 312 line 133637 z 1999 to ref 131845 - role_a_pos 177 314 3000 no_role_b - multiplicity_a_pos 182 291 3000 no_multiplicity_b + role_a_pos 190 302 3000 no_role_b + multiplicity_a_pos 164 302 3000 no_multiplicity_b relationcanvas 134533 relation_ref 149381 // from ref 131973 z 3004 to ref 129669 no_role_a no_role_b no_multiplicity_a no_multiplicity_b +relationcanvas 135173 relation_ref 149509 // + from ref 135045 z 1999 to ref 132357 + no_role_a no_role_b + no_multiplicity_a no_multiplicity_b +relationcanvas 135301 relation_ref 149637 // + geometry VHr + from ref 135045 z 1999 to point 78 596 + line 135557 z 1999 to ref 131973 + no_role_a no_role_b + no_multiplicity_a no_multiplicity_b line 134661 -_-_ from ref 131973 z 2003 to ref 128005 line 134789 -_-_ diff --git a/uml/lumiera/5.session b/uml/lumiera/5.session index dc8936ef6..1a789da17 100644 --- a/uml/lumiera/5.session +++ b/uml/lumiera/5.session @@ -2,17 +2,20 @@ window_sizes 1140 830 270 860 680 71 diagrams classdiagram_ref 131973 // Render Mechanics 428 623 100 4 2 0 - active collaborationdiagram_ref 132229 // Render Process + collaborationdiagram_ref 132229 // Render Process 817 644 100 4 0 0 + active classdiagram_ref 132357 // StateAdapter composition + 418 520 100 4 0 0 end show_stereotypes selected - package_ref 129 // lumiera +package_ref 129 // lumiera open class_ref 132741 // State - package_ref 129029 // Controller +package_ref 129029 // Controller class_ref 131717 // ProcNode + class_ref 142469 // StateProxy class_ref 142597 // StateAdapter usecaseview_ref 128005 // Renderengine Use class_ref 140677 // QueryHandler diff --git a/uml/lumiera/lumiera.prj b/uml/lumiera/lumiera.prj index 2b3a34ea7..2238424c2 100644 --- a/uml/lumiera/lumiera.prj +++ b/uml/lumiera/lumiera.prj @@ -1,6 +1,6 @@ format 40 "lumiera" - revision 46 + revision 47 modified_by 5 "hiv" cpp_root_dir "../../src/" diff --git a/wiki/renderengine.html b/wiki/renderengine.html index 674a5d2a2..6384ef114 100644 --- a/wiki/renderengine.html +++ b/wiki/renderengine.html @@ -1127,16 +1127,17 @@ Basically, each elementary operation has to record the informations necessary to {{red{to be defined in more detail later...}}} -
            +
            The &raquo;Timeline&laquo; is a sequence of ~MObjects -- here clips -- together with an ExplicitPlacement, locating each clip at a given time and track. (Note: I simplified the time format and wrote frame numbers to make it more clear)
             [img[Example1: Objects in the EDL/Fixture|uml/fig128773.png]]
             
             ----
             After beeing processed by the Builder, we get the following Render Engine configuration
            +{{red{note: please take this only as a "big picture", the implementation details got a lot more complicated as of 6/08}}}
             [img[Example1: generated Render Engine|uml/fig129029.png]]
             
            -
            +
            {{red{TODO: seemingly this example is slightly outdated, as the implementation of placements is now indirect via LocatingPin objects}}}
             This Example showes the //high level// EDL as well. This needs to be transformed into a Fixture by some facility still to be designed. Basically, each [[Placement]] needs to be queried for this to get the corresponding ExplicitPlacement. The difficult part is to handle possible Placement constraints, e.g. one clip can't be placed at a timespan covered by another clip on the same track. In the current Cinelerra2, all of this is done directly by the GUI actions.
             
            @@ -1146,6 +1147,7 @@ The &raquo;Timeline&laquo; is a sequence of ~MObjects -- note: using the
             ----
             After beeing processed by the Builder, we get a Render Engine configuration.<br>
             It has to be segmented at least at every point with changes in the configuration, but some variations are possible, e.g. we could create a Render Engine for every Frame (as Cinelerra2 does) or we could optimize out some configurations (for example the effect extended beyond the end of the clip)
            +{{red{note: as of 6/08 this can be taken only as the "big picture". Implementation will differ in details, and is more complicated than shown here}}}
             [img[Example2: generated Render Engine|uml/fig129157.png]]
             
            @@ -3041,7 +3043,7 @@ At first sight the link between asset and clip-MO is a simple logical relation b [img[Entities comprising the Render Engine|uml/fig128389.png]]
            -
            +
            Below are some notes regarding details of the actual implementation of the render process and processing node operation. In the description of the [[render node operation protocol|NodeOperationProtocol]] and the [[mechanics of the render process|RenderMechanics]], these details were left out deliberately.
             
             !Layered structure of State
            @@ -3054,12 +3056,16 @@ For the purpose of node operation, Buffers are identified by a //Buffer-handle,/
             Some data processors simply require to work on multiple channels simultanously, while others work just on a single channel and will be replicated by the builder for each channel invoved. Thus, we are struck with the nasty situation that the node graph may go through some nodes spanning the chain of several channels. Now the decision is //not to care for this complexity within a single chain calculating a single channel.// We rely solely on the cache to avoid duplicated calculations. When a given node happens to produce multiple output buffers, we are bound to allocate them for the purpose of this nodes {{{process()}}} call, but we just "let go" the buffers not needed immediately for the channel acutally to be processed. For this to work, it is supposed that the builder has wired in a caching, and that the cache will hit when we touch the same node again for the other channels.
             
             !Configuration of the processing nodes
            +[>img[uml/fig132357.png]]
             Every node is actually decomposed into three parts
             * an interface container of a ProcNode subclass
             * an {{{const}}} WiringDescriptor, which is actually parametrized to a subtype encoding details of the intended operation
             * an StateAdapter object created on the stack for each {{{pull()}}} call and configured specifically for the intended operation
             Thus, the outer container can be changed polymorphically to support the different kinds of nodes (large-scale view). The actual wiring of the nodes is contained in the WiringDescriptor, including the {{{process()}}} function pointer. Additionally, this WiringDescriptor knows the actual type of the StateAdapter to create, and this actual type has been chosen by the builder such as to select details of the desired operation of this mode, for example caching / no caching or maybe ~OpenGL rendering or the special case of a node pulling directly from a source reader. Most of this configuration is done by selecting the right template specialisation within the builder; thus in the critical path most of the calls can be inlined
             
            +!!!! composing the actual StateAdapter
            +As shown in the class diagram to the right, the actual implementation is assembled by chaining together the various policy classes governing parts of the node operation, like Caching, in-Place calculation capability, etc. (&rarr; see [[here|StateAdapter]] for details). The rationale is that we can allocate at runtime a StateProxy object directly on the stack with the necessary buffer table size and an precisely tailored and mostly inlined implementation of the call sequence for "calculating the predecessor nodes". We //do employ//&nbsp; some virtual calls for the buffer management in order to avoid coupling the policy classes to the actual number of in/out buffers. (As of 6/2008, this is mainly a precaution to be able to control the number of generated template instances. If we ever get in the region of several hundred individual specialisations, we'd need to separate out the allocation of the "wiring table" into a hand-made stack-like buffer allocated from the heap.)
            +
             !Rules for buffer allocation and freeing
             * only output buffers are allocated. It is //never necessary//&nbsp; to allocate input buffers!
             * buffers are to be allocated as late as possible, typically just before invoking {{{process()}}}
            @@ -3068,6 +3074,8 @@ Thus, the outer container can be changed polymorphically to support the differen
             * any other buffers filled with results in the course of the same {{{process()}}} call can be released immediately before returning from the {{{pull()}}}
             * similar, and input buffers are to be released immediately after the {{{process()}}} call, but before returing from this {{{pull()}}}
             * buffers are allways released by calling to the "current state" (which is a StateProxy), providing the buffer-ID to be released
            +
            +@@clear(right):display(block):@@