Class: Glslkit::WebGL::ReloadResult
- Inherits:
-
Object
- Object
- Glslkit::WebGL::ReloadResult
- 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
-
#diagnostics ⇒ Object
readonly
Returns the value of attribute diagnostics.
Instance Method Summary collapse
-
#initialize(diagnostics: []) ⇒ ReloadResult
constructor
A new instance of ReloadResult.
- #ok? ⇒ Boolean
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
#diagnostics ⇒ Object (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
23 24 25 |
# File 'lib/glslkit/webgl/reload_result.rb', line 23 def ok? diagnostics.none? { |d| d.severity == :error } end |