hi,

i have been working on adding freeframe plugin support to fluxus. freeframe is a real-time video effect plugin system (http://freeframe.sourceforge.net/).

the main idea is to load plugins and apply them to pixel primitives to either postprocess their content, or write computationally expensive plugins in c++ and control them from fluxus.

there's still a lot of things to do, but it is starting to work.

here's an example how to use it:

(clear)

(define p (build-pixels 256 256 #t)) ; input pixelprimitive

(translate (vector 1.1 0 0))

; output pixelprimitive - rendering is not active
; otherwise it would overwrite the plugin output
(define op (build-pixels 256 256))

(define plugin (ffgl-load "FFGLTile.dylib" 256 256))

(with-ffgl plugin
    (for ([i (ffgl-get-info)]) ; print plugin information
        (printf "~a~n" i))
    (printf "~a~n" (ffgl-get-parameters)) ; parameter names as symbols
    (ffgl-process op p)) ; set destination and source pixelprimitives

(define (anim)
    ; set plugin parameters as keywords arguments
    (with-ffgl plugin
        (ffgl-set-parameter! #:tilex (/ (mouse-x) (vx (get-screen-size)))
                             #:tiley (/ (mouse-y) (vy (get-screen-size)))))
    ; render to the input pixelprimitive
    (with-pixels-renderer p
        (with-state
            (clear-colour #(0 1 0))
            (scale 5)
            (rotate (vector (* 50 (time)) -17 (* -35 (time))))
            (draw-cube))))

(every-frame (anim))

output screenshot:
http://www.flickr.com/photos/gaborpapp/3811071474/

unfortunately, it does not render the plugin on my radeon linux box, although it works fine on my macbook. another pixelprimitive fbo issue i have to sort out.

any help or comments are welcome.

all the best,
gabor


Reply via email to