Module: Glslkit::Resolver

Defined in:
lib/glslkit/resolver.rb

Overview

#include のリクエストを解決するダックタイピングのインタフェース。継承を 強制するものではない — 下の Glslkit::Resolvers::FileSystem と ::Hash は 単にこれと同じメソッド形状を実装しているだけ。Railsや将来のruby.wasm側の resolverも同じ形状に合わせればよい。

read(request, from:) -> [canonical_path, content]

request        - #include の後に書かれた文字列。例 "common/math.glsl"
from            - 呼び出し元(includeした側)のcanonical_path。
                  エントリポイントではnil (`#include <...>` の場合も
                  常にnilを渡し、相対探索を完全にスキップさせる)
canonical_path  - 解決したファイルを表す、load_path相対の安定した
                  識別子 (循環検出、#pragma once、
                  Glslkit::SourceMap#files で使う)

requestが解決できない場合は Glslkit::IncludeNotFound を raise すること。