Class: BeltsOpengl::Assets::Mesh

Inherits:
Object
  • Object
show all
Includes:
BufferHelpers
Defined in:
lib/belts_opengl/assets/mesh.rb

Constant Summary collapse

U =

Unit size

1.0
HU =

Half unit size

U/2

Instance Method Summary collapse

Constructor Details

#initialize(vertices, indexes) ⇒ Mesh

Returns a new instance of Mesh.



24
25
26
27
28
29
30
31
32
33
# File 'lib/belts_opengl/assets/mesh.rb', line 24

def initialize(vertices, indexes)
  @vertices = vertices
  @indexes = indexes

  @vao = create_vertex_array_buffer
  @vbo = create_buffer
  @ebo = create_buffer

  upload_vertice_data
end

Instance Method Details

#destroyObject



40
41
42
43
44
# File 'lib/belts_opengl/assets/mesh.rb', line 40

def destroy
  GL.DeleteVertexArrays(1, [@vao].pack('L'))
  GL.DeleteBuffers(1, [@vbo].pack('L'))
  GL.DeleteBuffers(1, [@ebo].pack('L'))
end

#drawObject



35
36
37
38
# File 'lib/belts_opengl/assets/mesh.rb', line 35

def draw
  GL.BindVertexArray(@vao)
  GL.DrawElements(GL::TRIANGLES, @indexes.size, GL::UNSIGNED_INT, 0)
end