Class: Quake::Renderer::GLTextureManager

Inherits:
Object
  • Object
show all
Defined in:
lib/quake/renderer/gl_texture_manager.rb

Constant Summary collapse

TEX_SPECIAL =
1

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(level, palette) ⇒ GLTextureManager

Returns a new instance of GLTextureManager.



12
13
14
15
16
# File 'lib/quake/renderer/gl_texture_manager.rb', line 12

def initialize(level, palette)
  @level = level
  @palette = palette
  @gl_textures = {} # miptex_index -> GL texture id
end

Instance Attribute Details

#gl_texturesObject (readonly)

Returns the value of attribute gl_textures.



10
11
12
# File 'lib/quake/renderer/gl_texture_manager.rb', line 10

def gl_textures
  @gl_textures
end

Instance Method Details

#bind(miptex_index) ⇒ Object



26
27
28
29
# File 'lib/quake/renderer/gl_texture_manager.rb', line 26

def bind(miptex_index)
  tex_id = @gl_textures[miptex_index]
  GL.BindTexture(GL::TEXTURE_2D, tex_id || 0)
end

#upload_allObject



18
19
20
21
22
23
24
# File 'lib/quake/renderer/gl_texture_manager.rb', line 18

def upload_all
  @level.textures.each_with_index do |miptex, index|
    next if miptex.nil? || miptex.pixels.nil?
    @gl_textures[index] = upload_texture(miptex)
  end
  puts "Uploaded #{@gl_textures.size} textures to GL"
end