Module: Roglew::GLObject::ClassMethods

Defined in:
lib/roglew/gl_object.rb

Instance Method Summary collapse

Instance Method Details

#def_delete(name, function) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/roglew/gl_object.rb', line 13

def def_delete(name, function)
  define_method "delete_#{name}", ->(ids) do
    p = FFI::MemoryPointer.new(:uint, ids.count)
    p.write_array_of_uint(ids)
    send(function, ids.count, p)
    nil
  end
end

#def_gen(name, function) ⇒ Object



4
5
6
7
8
9
10
11
# File 'lib/roglew/gl_object.rb', line 4

def def_gen(name, function)
  define_method "gen_#{name}", ->(count = 1) do
    p = FFI::MemoryPointer.new(:uint, count)
    send(function, count, p)
    ids = p.read_array_of_uint(count)
    count == 1 ? ids[0] : ids
  end
end

#def_object(name) ⇒ Object



22
23
24
25
# File 'lib/roglew/gl_object.rb', line 22

def def_object(name)
  def_gen(name.to_s.snakecase, "glGen#{name}")
  def_delete(name.to_s.snakecase, "glDelete#{name}")
end