Class: Stagecraft::Textures::Texture

Inherits:
Object
  • Object
show all
Defined in:
lib/stagecraft/textures/texture.rb

Direct Known Subclasses

CubeTexture

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

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_spaceObject

Returns the value of attribute color_space.



6
7
8
# File 'lib/stagecraft/textures/texture.rb', line 6

def color_space
  @color_space
end

#imageObject

Returns the value of attribute image.



6
7
8
# File 'lib/stagecraft/textures/texture.rb', line 6

def image
  @image
end

#samplerObject

Returns the value of attribute sampler.



6
7
8
# File 'lib/stagecraft/textures/texture.rb', line 6

def sampler
  @sampler
end

#versionObject (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, **options)
  require "texel"
  color_space = options.delete(:color_space)
  channels = options.delete(:channels)
  image = Texel.load(source, channels:, color_space:)
  new(image, color_space:, **options)
end

Instance Method Details

#disposeObject



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

Returns:

  • (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