Class: Glslkit::Validator

Inherits:
Object
  • Object
show all
Defined in:
lib/glslkit/validator.rb

Overview

Glslkit::Program(§8.3)を1つ受け取り、単一ステージで完結する検証ルールを 実行する。マージ前のReflectionを直接見るため、Manifestが統合してしまう 情報(同一ステージ内の重複など)も検出できる。例外は投げず、診断の配列を 常に返す。

Defined Under Namespace

Classes: Result

Instance Method Summary collapse

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