Class: Stagecraft::Textures::Texture
- Inherits:
-
Object
- Object
- Stagecraft::Textures::Texture
- Defined in:
- lib/stagecraft/textures/texture.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#color_space ⇒ Object
Returns the value of attribute color_space.
-
#image ⇒ Object
Returns the value of attribute image.
-
#sampler ⇒ Object
Returns the value of attribute sampler.
-
#version ⇒ Object
readonly
Returns the value of attribute version.
Class Method Summary collapse
Instance Method Summary collapse
- #dispose ⇒ Object
- #disposed? ⇒ Boolean
-
#initialize(image = nil, sampler: SamplerState.new, color_space: nil) ⇒ Texture
constructor
A new instance of Texture.
- #on_dispose(&block) ⇒ Object
Constructor Details
#initialize(image = nil, sampler: SamplerState.new, color_space: nil) ⇒ Texture
Returns a new instance of Texture.
8 9 10 11 12 13 14 15 |
# File 'lib/stagecraft/textures/texture.rb', line 8 def initialize(image = nil, sampler: SamplerState.new, color_space: nil) @version = 0 @disposed = false @dispose_callbacks = [] self.image = image self.sampler = sampler self.color_space = color_space end |
Instance Attribute Details
#color_space ⇒ Object
Returns the value of attribute color_space.
6 7 8 |
# File 'lib/stagecraft/textures/texture.rb', line 6 def color_space @color_space end |
#image ⇒ Object
Returns the value of attribute image.
6 7 8 |
# File 'lib/stagecraft/textures/texture.rb', line 6 def image @image end |
#sampler ⇒ Object
Returns the value of attribute sampler.
6 7 8 |
# File 'lib/stagecraft/textures/texture.rb', line 6 def sampler @sampler end |
#version ⇒ Object (readonly)
Returns the value of attribute version.
6 7 8 |
# File 'lib/stagecraft/textures/texture.rb', line 6 def version @version end |
Class Method Details
.load(source, **options) ⇒ Object
17 18 19 20 21 22 23 |
# File 'lib/stagecraft/textures/texture.rb', line 17 def self.load(source, **) require "texel" color_space = .delete(:color_space) channels = .delete(:channels) image = Texel.load(source, channels:, color_space:) new(image, color_space:, **) end |
Instance Method Details
#dispose ⇒ Object
44 45 46 47 48 49 50 51 52 |
# File 'lib/stagecraft/textures/texture.rb', line 44 def dispose return self if @disposed @disposed = true @version += 1 @dispose_callbacks.each { |callback| callback.call(self) } @dispose_callbacks.clear self end |
#disposed? ⇒ Boolean
54 55 56 |
# File 'lib/stagecraft/textures/texture.rb', line 54 def disposed? @disposed end |
#on_dispose(&block) ⇒ Object
39 40 41 42 |
# File 'lib/stagecraft/textures/texture.rb', line 39 def on_dispose(&block) @dispose_callbacks << block self end |