Class: Processing::App
- Inherits:
-
PApplet
- Object
- PApplet
- Processing::App
- Includes:
- Math, HelperMethods
- Defined in:
- lib/ruby-processing/app.rb
Overview
All sketches extend this class
Constant Summary collapse
- @@library_loader =
LibraryLoader.new
Class Attribute Summary collapse
-
.sketch_class ⇒ Object
Returns the value of attribute sketch_class.
Class Method Summary collapse
-
.inherited(subclass) ⇒ Object
Keep track of what inherits from the Processing::App, because we’re going to want to instantiate one.
- .library_loaded?(library_name) ⇒ Boolean
- .load_java_library(*args) ⇒ Object
- .load_libraries(*args) ⇒ Object (also: load_library)
- .load_ruby_library(*args) ⇒ Object
-
.method_added(method_name) ⇒ Object
When certain special methods get added to the sketch, we need to let Processing call them by their expected Java names.
Instance Method Summary collapse
-
#close ⇒ Object
Cleanly close and shutter a running sketch.
-
#initialize(options = {}) ⇒ App
constructor
It is ‘NOT’ usually necessary to directly pass options to a sketch, it gets done automatically for you.
-
#inspect ⇒ Object
Provide a loggable string to represent this sketch.
- #library_loaded?(library_name) ⇒ Boolean
- #post_initialize(_args) ⇒ Object
- #size(*args) ⇒ Object
- #sketch_class ⇒ Object
-
#start ⇒ Object
Set the size if we set it before we start the animation thread.
Methods included from HelperMethods
#blend_color, #buffer, #color, #constrain, #dist, #find_method, #frame_rate, #grid, #java_self, #key, #key_pressed?, #lerp, #lerp_color, #load_strings, #map, #map1d, #max, #min, #mouse_pressed?, #norm, #proxy_java_fields, #save_strings, #set_sketch_path, #sketch_path, #thread
Constructor Details
#initialize(options = {}) ⇒ App
It is ‘NOT’ usually necessary to directly pass options to a sketch, it gets done automatically for you. Since processing-2.0 you should prefer setting the sketch width and height and renderer using the size method, in the sketch (as with vanilla processing), which should be the first argument in setup. Sensible options to pass are x and y to locate sketch on the screen, or full_screen: true (prefer new hash syntax)
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/ruby-processing/app.rb', line 105 def initialize( = {}) super() post_initialize() $app = self proxy_java_fields set_sketch_path # unless Processing.online? mix_proxy_into_inner_classes java.lang.Thread.default_uncaught_exception_handler = proc do |_thread_, exception| puts(exception.class.to_s) puts(exception.) puts(exception.backtrace.map { |trace| "\t#{trace}" }) close end run_sketch() end |
Class Attribute Details
.sketch_class ⇒ Object
Returns the value of attribute sketch_class.
60 61 62 |
# File 'lib/ruby-processing/app.rb', line 60 def sketch_class @sketch_class end |
Class Method Details
.inherited(subclass) ⇒ Object
Keep track of what inherits from the Processing::App, because we’re going to want to instantiate one.
69 70 71 72 |
# File 'lib/ruby-processing/app.rb', line 69 def self.inherited(subclass) super(subclass) @sketch_class = subclass end |
.library_loaded?(library_name) ⇒ Boolean
81 82 83 |
# File 'lib/ruby-processing/app.rb', line 81 def library_loaded?(library_name) @@library_loader.library_loaded?(library_name) end |
.load_java_library(*args) ⇒ Object
89 90 91 |
# File 'lib/ruby-processing/app.rb', line 89 def load_java_library(*args) @@library_loader.load_java_library(*args) end |
.load_libraries(*args) ⇒ Object Also known as: load_library
76 77 78 |
# File 'lib/ruby-processing/app.rb', line 76 def load_libraries(*args) @@library_loader.load_library(*args) end |
.load_ruby_library(*args) ⇒ Object
85 86 87 |
# File 'lib/ruby-processing/app.rb', line 85 def load_ruby_library(*args) @@library_loader.load_ruby_library(*args) end |
.method_added(method_name) ⇒ Object
When certain special methods get added to the sketch, we need to let Processing call them by their expected Java names.
52 53 54 55 56 |
# File 'lib/ruby-processing/app.rb', line 52 def self.method_added(method_name) #:nodoc: if METHODS_TO_ALIAS.key?(method_name) alias_method METHODS_TO_ALIAS[method_name], method_name end end |
Instance Method Details
#close ⇒ Object
Cleanly close and shutter a running sketch.
147 148 149 150 151 |
# File 'lib/ruby-processing/app.rb', line 147 def close control_panel.remove if respond_to?(:control_panel) dispose frame.dispose end |
#inspect ⇒ Object
Provide a loggable string to represent this sketch.
142 143 144 |
# File 'lib/ruby-processing/app.rb', line 142 def inspect "#<Processing::App:#{self.class}:#{@title}>" end |
#library_loaded?(library_name) ⇒ Boolean
94 95 96 |
# File 'lib/ruby-processing/app.rb', line 94 def library_loaded?(library_name) self.class.library_loaded?(library_name) end |
#post_initialize(_args) ⇒ Object
131 132 133 |
# File 'lib/ruby-processing/app.rb', line 131 def post_initialize(_args) nil end |
#size(*args) ⇒ Object
122 123 124 125 126 127 128 129 |
# File 'lib/ruby-processing/app.rb', line 122 def size(*args) w, h, mode = *args @width ||= w @height ||= h @render_mode ||= mode import_opengl if /opengl/ =~ mode super(*args) end |
#sketch_class ⇒ Object
63 64 65 |
# File 'lib/ruby-processing/app.rb', line 63 def sketch_class self.class.sketch_class end |
#start ⇒ Object
Set the size if we set it before we start the animation thread.
136 137 138 139 |
# File 'lib/ruby-processing/app.rb', line 136 def start size(@width, @height) if @width && @height super() end |