Class: Vizcore::DSL::ShaderSourceResolver
- Inherits:
-
Object
- Object
- Vizcore::DSL::ShaderSourceResolver
- Defined in:
- lib/vizcore/dsl/shader_source_resolver.rb
Overview
Replaces external layer source paths with browser-ready inline payloads.
Constant Summary collapse
- MEDIA_MIME_TYPES =
{ ".gif" => "image/gif", ".jpg" => "image/jpeg", ".jpeg" => "image/jpeg", ".png" => "image/png", ".svg" => "image/svg+xml", ".webp" => "image/webp", ".mp4" => "video/mp4", ".ogv" => "video/ogg", ".webm" => "video/webm" }.freeze
Instance Method Summary collapse
-
#resolve(definition:, scene_file:) ⇒ Hash
Deep-copied definition with resolved layer source entries.
Instance Method Details
#resolve(definition:, scene_file:) ⇒ Hash
Returns deep-copied definition with resolved layer source entries.
26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/vizcore/dsl/shader_source_resolver.rb', line 26 def resolve(definition:, scene_file:) scene_path = Pathname.new(scene_file.to_s). base_dir = scene_path.dirname output = deep_dup(definition) output[:scenes] = Array(output[:scenes]).map do |scene| scene_hash = symbolize_hash(scene) scene_hash[:layers] = Array(scene_hash[:layers]).map do |layer| resolve_layer(layer, base_dir: base_dir) end scene_hash end output end |