|
Size: 43
Comment:
|
Size: 3372
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 1: | Line 1: |
| ScriptTree hier beschreiben... | ====== ScriptTree ====== Created Donnerstag 12 März 2009 |
| Line 3: | Line 4: |
| mom ... | draft about the future of scripting bindings, object tree ... needs renaming some funcs in c++ The listed funcs and meths are not complete, yet. ==== TODO: ==== * filter/parameter: * where will they processed in future if we have sw-frei0r and gl-shaders effects? * co exist? * apply a filter once to a 'static' layer e.g. make some drawings on [[GeoLayer]] then apply a frei0r blur once an keep that result ==== namespace ==== put all Objects into global space or put them into a Freej Object like this: {{{ freej = new Freej() movie = new freej.MovieLayer('lol') // or = new MovieLayer(...) ?! freej.layers.push(movie) move.active(true) movie.start() }}} ==== getter/setter ==== getter/setter: in spidermonkey no real differences between props and meths, props can be c++ funcs, too. {{{ currval = movie.active // we can define a watcher // in js and/or c (!) currval = movie.active() oldval = movie.active(new_val) }}} reason for making funcs instead of props, it's easier to script a "toggle", e.g. toggle active: {{{ state = movie.active(!state) }}} rule of thumb: we use props for r/o values only ==== the tree ==== {{{ Legend: * obj + meth > callback - prop (r/o, usually?!) note: this wiki parser makes it difficult to keep a correct indent ... }}} * baseObj [to discuss] {{{ + label() [for display, short e.g. LAY, MOV, CAM1, WII2] - name/id [device name/id] - filename [url, set via open()] }}} * Freej (stage size, bpp) [Context] {{{ - layers [linklist] - controllers [linklist] - output [linklist, encoders, viewports, audio[alsa,jack...], to another freej/layer?] - ... + reset(new file) / run_js(file) => or a js-script object, see below + resize(w,h) - width, heigth }}} * LinkList {{{ + add=push, pop, shift, unshift, remove(n, obj), insert(pos) [e.g. arrange Layer stack] - n, length [no of entries] > pre_add [can deny add to list e.g. type check] > post_add [e.g. autostart movie] }}} * Entry {{{ + move: up, down, top, bottom + remove - first, last, next, prev [Entry] - list [it's [[LinkList]] or NULL] + active() + open, close > eof [end of movie, device disconnect] }}} * Controller * [[JoyStick]] * Keyboard * Midi * Mouse * Trigger (->thread) * [[ViMo]] * Wii * Osc * Console/slang * Layer {{{ + x,y,zoom,resize,blit, **crop**, ... - width, heigth - filter [linklist, frei0r] +- audio (?!) + set Limits(mem and/or size) * [[CamLayer]] [add camctrl ?!] * Flash * Geo [sdl gfx, how about other like cairo? gl?] * Image * [[MovieLayer]] add eof callback to Entry ? * Particle * Text * xgrap [make desktop movie, vnc] }}} * Script [js script object] {{{ new context for live scripting or running content from web in a different context (->security !) yes, u can spawn a seperate script context which _may_ share Objects reload a modified script at runtime! (perl never reparses a module twice, python?) + open, parse, run + init_std_classes, init_freej_classes <<< remember the .exec() !!! }}} ==== missing: ==== {{{ * JSThread + start, stop, set_fps, get_fps }}} |
ScriptTree
Created Donnerstag 12 März 2009
draft about the future of scripting bindings, object tree ...
needs renaming some funcs in c++
The listed funcs and meths are not complete, yet.
TODO:
* filter/parameter:
- where will they processed in future if we have sw-frei0r and gl-shaders effects?
- co exist?
apply a filter once to a 'static' layer e.g. make some drawings on GeoLayer then apply a frei0r blur once an keep that result
namespace
put all Objects into global space or put them into a Freej Object like this:
freej = new Freej()
movie = new freej.MovieLayer('lol') // or = new MovieLayer(...) ?!
freej.layers.push(movie)
move.active(true)
movie.start()
getter/setter
getter/setter:
in spidermonkey no real differences between props and meths, props can be c++ funcs, too.
currval = movie.active // we can define a watcher
// in js and/or c (!)
currval = movie.active()
oldval = movie.active(new_val)reason for making funcs instead of props, it's easier to script a "toggle", e.g. toggle active:
state = movie.active(!state)
rule of thumb: we use props for r/o values only
the tree
Legend: * obj + meth > callback - prop (r/o, usually?!) note: this wiki parser makes it difficult to keep a correct indent ...
- baseObj [to discuss]
+ label() [for display, short e.g. LAY, MOV, CAM1, WII2]
- name/id [device name/id]
- filename [url, set via open()]- Freej (stage size, bpp) [Context]
- layers [linklist]
- controllers [linklist]
- output [linklist, encoders, viewports, audio[alsa,jack...], to another freej/layer?]
- ...
+ reset(new file) / run_js(file) => or a js-script object, see below
+ resize(w,h)
- width, heigth + add=push, pop, shift, unshift, remove(n, obj), insert(pos) [e.g. arrange Layer stack]
- n, length [no of entries]
> pre_add [can deny add to list e.g. type check]
> post_add [e.g. autostart movie]- Entry
+ move: up, down, top, bottom
+ remove
- first, last, next, prev [Entry]
- list [it's [[LinkList]] or NULL]
+ active()
+ open, close
> eof [end of movie, device disconnect] + x,y,zoom,resize,blit, **crop**, ...
- width, heigth
- filter [linklist, frei0r]
+- audio (?!)
+ set Limits(mem and/or size)
* [[CamLayer]] [add camctrl ?!]
* Flash
* Geo [sdl gfx, how about other like cairo? gl?]
* Image
* [[MovieLayer]]
add eof callback to Entry ?
* Particle
* Text
* xgrap [make desktop movie, vnc]- Script [js script object]
new context for live scripting or running content from web
in a different context (->security !)
yes, u can spawn a seperate script context which _may_ share Objects
reload a modified script at runtime! (perl never reparses a module twice, python?)
+ open, parse, run
+ init_std_classes, init_freej_classes <<< remember the .exec() !!!
missing:
* JSThread + start, stop, set_fps, get_fps
