Proxy Processing Library in JRubyArt
In vanilla processing library developers are encouraged to use java reflection to access the sketch pre, post, and draw loops. They do this by registering the processing methods (some java reflection magic) with the PApplet. Until recently we needed jruby ext and become_java! to access those methods in JRuby. However now all you need to do is load the library_proxy and make your Library class subclass LibraryProxy. This is still at the development stage so the interface may not be stable. The LibraryProxy class is an abstract java class and you should implement pre, post and draw methods (empty methods are fine). Also available are
app to access the underlying PApplet, background, fill and stroke, access the rest via app see proxy_library where app.ellipse is used.
The Sketch
# test_proxy.rb by Martin Prout
load_library :library_proxy
require_relative 'proxy_library'
def settings
size 300, 300
end
def setup
sketch_title 'Test LibraryProxy'
TestProxy.new(self) # initialize our TestProxy Library
end
def draw
background 0, 0, 200
fill 200, 0, 0
ellipse 150, 150, 200, 100
end
The Library
# proxy_library.rb
# LibraryProxy is an abstract java class to give us access to the java
# reflection methods 'pre', 'post' and 'draw' (which we should implement).
# width, height, fill, stroke, background are available, otherwise use app.
class TestProxy < LibraryProxy # subclass LibraryProxy
def pre; end # empty method is OK
def draw
fill 200
app.ellipse(width / 2, height / 2, 20, 20)
end
def post; end # empty method is OK
end
Snapshot of the running sketch
Note the white circle in the red ellipse comes from the library class
