Method: RGSS::Texture#initialize
- Defined in:
- lib/rgss/texture.rb
#initialize(*args, **opts) ⇒ Texture
Returns a new instance of Texture.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/rgss/texture.rb', line 11 def initialize(*args, **opts) super(glGenTexture) image = nil case args.size when 1 source = args.first image = source.is_a?(String) ? Image.new(source) : source raise(TypeError, "#{source} is not a String or Image") unless image.is_a?(Image) when 2 image = Image.new(*args, **opts) else raise(ArgumentError, "wrong number of arguments (given #{args.size}, expected 1, 2)") end glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, self.id); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, image.width, image.height, 0, GL_RGBA, GL_UNSIGNED_BYTE, image.address); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); @width = image.width @height = image.height image.dispose @fbo = 0 end |