Class: Vizcore::Renderer::SceneFrameSource
- Inherits:
-
Object
- Object
- Vizcore::Renderer::SceneFrameSource
- Defined in:
- lib/vizcore/renderer/scene_frame_source.rb
Overview
Produces analyzed scene frames for offline renderers.
Instance Method Summary collapse
-
#capture ⇒ Hash
Frame data consumed by offline renderers.
-
#initialize(config:, frame_rate: nil) ⇒ SceneFrameSource
constructor
A new instance of SceneFrameSource.
- #start ⇒ Vizcore::Renderer::SceneFrameSource
- #stop ⇒ void
Constructor Details
#initialize(config:, frame_rate: nil) ⇒ SceneFrameSource
Returns a new instance of SceneFrameSource.
11 12 13 14 15 |
# File 'lib/vizcore/renderer/scene_frame_source.rb', line 11 def initialize(config:, frame_rate: nil) @config = config @frame_rate = frame_rate @shader_source_resolver = Vizcore::DSL::ShaderSourceResolver.new end |
Instance Method Details
#capture ⇒ Hash
Returns frame data consumed by offline renderers.
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/vizcore/renderer/scene_frame_source.rb', line 30 def capture ensure_started! audio = @pipeline.call(@input_manager.capture_frame(@capture_size)) @frame_count += 1 layers = Vizcore::DSL::MappingResolver.new.resolve_layers( scene_layers: @scene[:layers], audio: audio, time: frame_time, frame: @frame_count ) { scene: { name: @scene[:name], layers: layers }, audio: audio, scene_name: @scene[:name].to_s } end |
#start ⇒ Vizcore::Renderer::SceneFrameSource
18 19 20 21 22 23 24 25 26 27 |
# File 'lib/vizcore/renderer/scene_frame_source.rb', line 18 def start @definition = resolve_shader_sources(Vizcore::DSL::Engine.load_file(@config.scene_file.to_s)) @scene = first_scene(@definition) @input_manager = build_input_manager @input_manager.start @capture_size = capture_size @pipeline = build_pipeline @frame_count = 0 self end |
#stop ⇒ void
This method returns an undefined value.
50 51 52 |
# File 'lib/vizcore/renderer/scene_frame_source.rb', line 50 def stop @input_manager&.stop end |