Class: Glslkit::WebGL::ReloadResult

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

Overview

Context#reload_program(M11d、SPEC-livereload.md §4)の戻り値。 コンパイル/リンクの失敗(CompileError/LinkError)とattribute locationの 不一致(ReloadIncompatibleError)は例外として投げる — これらは 「差し替え自体が起きなかった」ことを意味し、呼び出し側が旧Programを 使い続けるという単純な話で終わるため。

ReloadResultが表すのは、差し替え自体は成功したが、一部のuniform値を 引き継げなかった(名前が消えた/型やelement_countが変わった)という、 差し替え後も動作は継続する軽微な話(§4.3)。診断はerrorにはならない ため、ok?は常にtrueになる想定だが、将来の拡張に備えて診断のseverityを 見て判定する形にしている。

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(diagnostics: []) ⇒ ReloadResult

Returns a new instance of ReloadResult.



19
20
21
# File 'lib/glslkit/webgl/reload_result.rb', line 19

def initialize(diagnostics: [])
  @diagnostics = diagnostics
end

Instance Attribute Details

#diagnosticsObject (readonly)

Returns the value of attribute diagnostics.



17
18
19
# File 'lib/glslkit/webgl/reload_result.rb', line 17

def diagnostics
  @diagnostics
end

Instance Method Details

#ok?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/glslkit/webgl/reload_result.rb', line 23

def ok?
  diagnostics.none? { |d| d.severity == :error }
end