Class: Glslkit::Validator
- Inherits:
-
Object
- Object
- Glslkit::Validator
- Defined in:
- lib/glslkit/validator.rb
Overview
Glslkit::Program(§8.3)を1つ受け取り、単一ステージで完結する検証ルールを 実行する。マージ前のReflectionを直接見るため、Manifestが統合してしまう 情報(同一ステージ内の重複など)も検出できる。例外は投げず、診断の配列を 常に返す。
Defined Under Namespace
Classes: Result
Instance Method Summary collapse
-
#initialize(disabled: []) ⇒ Validator
constructor
A new instance of Validator.
- #validate(program) ⇒ Object
Constructor Details
#initialize(disabled: []) ⇒ Validator
Returns a new instance of Validator.
31 32 33 |
# File 'lib/glslkit/validator.rb', line 31 def initialize(disabled: []) @disabled = disabled.map(&:to_s) end |
Instance Method Details
#validate(program) ⇒ Object
35 36 37 38 39 40 41 42 43 44 |
# File 'lib/glslkit/validator.rb', line 35 def validate(program) diagnostics = [] diagnostics.concat(check_out_in_correspondence(program)) diagnostics.concat(check_cross_stage_uniform_mismatch(program)) if enabled?("E003") diagnostics.concat(check_attribute_location_collisions(program)) if enabled?("E004") diagnostics.concat(check_output_location_collisions(program)) if enabled?("E005") diagnostics.concat(check_duplicate_names_within_a_stage(program)) if enabled?("E006") diagnostics.concat(check_reserved_gl_prefix(program)) if enabled?("E007") Result.new(diagnostics) end |