Class: Processing::App
  
  
  
  
  
    - Inherits:
- 
      PApplet
      
        
          - Object
- PApplet
- Processing::App
 show all
      - Includes:
- FastNoise, Math, MathTool, HelperMethods, Render
    - Defined in:
- lib/jruby_art/app.rb
 
Overview
  
    
All sketches extend this class
   
 
  
  Class Attribute Summary collapse
  
  
    
      Class Method Summary
      collapse
    
    
  
    
      Instance Method Summary
      collapse
    
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  #blend_color, #buffer, #color, #dist, #find_method, #frame_rate, #hsb_color, #int_to_ruby_colors, #java_self, #kamera, #key, #key_pressed?, #lerp_color, #load_strings, #max, #min, #mouse_pressed?, #p52ruby, #perspektiv, #proxy_java_fields, #save_strings, #thread, #web_to_color_array
  
  Constructor Details
  
    
  
  
    #initialize(options = {})  ⇒ App 
  
  
  
  
    
Since processing-3.0 you should prefer setting the sketch width and height and renderer using the size method in the settings loop of the sketch (as with vanilla processing) but is hidden see created java. Options are no longer relevant, define post_initialize method to use custom options (see Sandi Metz POODR)
   
 
  
  
    | 
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121 | # File 'lib/jruby_art/app.rb', line 106
def initialize(options = {})
  super()
  Processing.app = self
  post_initialize(options)
  proxy_java_fields
  mix_proxy_into_inner_classes
  java.lang.Thread.default_uncaught_exception_handler = proc do |_thread_, exception|
    puts(exception.class.to_s)
    puts(exception.message)
    puts(exception.backtrace.map { |trace| "\t#{trace}" })
    close
  end
  @surface = get_surface
    run_sketch
end | 
 
  
 
  
    Class Attribute Details
    
      
      
      
  
  
    .library_loader  ⇒ Object  
  
  
  
  
    
Handy getters and setters on the class go here:
   
 
  
  
    | 
67
68
69 | # File 'lib/jruby_art/app.rb', line 67
def library_loader
  @library_loader
end | 
 
    
      
      
      
  
  
    .sketch_class  ⇒ Object  
  
  
  
  
    
Handy getters and setters on the class go here:
   
 
  
  
    | 
67
68
69 | # File 'lib/jruby_art/app.rb', line 67
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.
   
 
  
  
    | 
60
61
62
63 | # File 'lib/jruby_art/app.rb', line 60
def self.inherited(subclass)
  super(subclass)
  @sketch_class = subclass
end | 
 
    
      
  
  
    .library_loaded?(library_name)  ⇒ Boolean 
  
  
  
  
    | 
75
76
77 | # File 'lib/jruby_art/app.rb', line 75
def library_loaded?(library_name)
  library_loader.library_loaded?(library_name)
end | 
 
    
      
  
  
    .load_java_library(*args)  ⇒ Object 
  
  
  
  
    | 
83
84
85 | # File 'lib/jruby_art/app.rb', line 83
def load_java_library(*args)
  library_loader.load_java_library(*args)
end | 
 
    
      
  
  
    .load_libraries(*args)  ⇒ Object 
  
  
    Also known as:
    load_library
    
  
  
  
    | 
69
70
71
72 | # File 'lib/jruby_art/app.rb', line 69
def load_libraries(*args)
  @library_loader ||= LibraryLoader.new
  library_loader.load_library(*args)
end | 
 
    
      
  
  
    .load_ruby_library(*args)  ⇒ Object 
  
  
  
  
    | 
79
80
81 | # File 'lib/jruby_art/app.rb', line 79
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.
   
 
  
  
    | 
89
90
91
92
93 | # File 'lib/jruby_art/app.rb', line 89
def method_added(method_name)   return unless METHODS_TO_ALIAS.key?(method_name)
  alias_method METHODS_TO_ALIAS[method_name], method_name
end | 
 
    
   
  
    Instance Method Details
    
      
  
  
    #close  ⇒ Object 
  
  
  
  
    
Close and shutter a running sketch. But don’t exit. way of disposing of sketch window…
   
 
  
  
    | 
167
168
169
170
171
172
173 | # File 'lib/jruby_art/app.rb', line 167
def close
  control_panel.remove if respond_to?(:control_panel)
  surface.stopThread
  surface.setVisible(false) if surface.isStopped
  dispose
  Processing.app = nil
end | 
 
    
      
  
  
    #data_path(dat)  ⇒ Object 
  
  
  
  
    | 
142
143
144
145
146 | # File 'lib/jruby_art/app.rb', line 142
def data_path(dat)
  dat_root = File.join(SKETCH_ROOT, 'data')
  Dir.mkdir(dat_root) unless File.exist?(dat_root)
  File.join(dat_root, dat)
end | 
 
    
      
  
  
    #exit  ⇒ Object 
  
  
  
  
    | 
175
176
177
178 | # File 'lib/jruby_art/app.rb', line 175
def exit
  control_panel.remove if respond_to?(:control_panel)
  super()
end | 
 
    
      
  
  
    #library_loaded?(library_name)  ⇒ Boolean 
  
  
  
  
    | 
96
97
98 | # File 'lib/jruby_art/app.rb', line 96
def library_loaded?(library_name)
  self.class.library_loaded?(library_name)
end | 
 
    
      
  
  
    #on_top(arg = true)  ⇒ Object 
  
  
  
  
    | 
156
157
158 | # File 'lib/jruby_art/app.rb', line 156
def on_top(arg = true)
  surface.set_always_on_top(arg)
end | 
 
    
      
  
  
    #post_initialize(_args)  ⇒ Object 
  
  
  
  
    | 
160
161
162 | # File 'lib/jruby_art/app.rb', line 160
def post_initialize(_args)
  nil
end | 
 
    
      
  
  
    #resizable(arg = true)  ⇒ Object 
  
  
  
  
    | 
152
153
154 | # File 'lib/jruby_art/app.rb', line 152
def resizable(arg = true)
  surface.set_resizable(arg)
end | 
 
    
      
  
  
    #size(*args)  ⇒ Object 
  
  
  
  
    | 
123
124
125
126
127
128
129
130 | # File 'lib/jruby_art/app.rb', line 123
def size(*args)
  width, height, mode = *args
  @width ||= width
  @height ||= height
  @render_mode ||= mode
  import_opengl if /opengl/.match?(mode)
  super(*args)
end | 
 
    
      
  
  
    #sketch_class  ⇒ Object 
  
  
  
  
    | 
54
55
56 | # File 'lib/jruby_art/app.rb', line 54
def sketch_class
  self.class.sketch_class
end | 
 
    
      
  
  
    #sketch_path(spath = '')  ⇒ Object 
  
  
  
  
    | 
136
137
138
139
140 | # File 'lib/jruby_art/app.rb', line 136
def sketch_path(spath = '')
  return super() if spath.empty?
  super(spath)
end | 
 
    
      
  
  
    #sketch_size(x, y)  ⇒ Object 
  
  
  
  
    | 
148
149
150 | # File 'lib/jruby_art/app.rb', line 148
def sketch_size(x, y)
  surface.set_size(x, y)
end | 
 
    
      
  
  
    #sketch_title(title)  ⇒ Object 
  
  
  
  
    | 
132
133
134 | # File 'lib/jruby_art/app.rb', line 132
def sketch_title(title)
  surface.set_title(title)
end |