diff --git a/libs/gfx/include/psemek/gfx/mesh.hpp b/libs/gfx/include/psemek/gfx/mesh.hpp index 12399c6c..72fd407f 100644 --- a/libs/gfx/include/psemek/gfx/mesh.hpp +++ b/libs/gfx/include/psemek/gfx/mesh.hpp @@ -123,6 +123,8 @@ namespace psemek::gfx template void setup(); + static mesh create(imported_mesh const & m); + // Non-indexed vertex data void load_raw(void const * vertices, std::size_t vertex_size, std::size_t count, GLenum primitive_type, GLenum usage = gl::STREAM_DRAW); diff --git a/libs/gfx/source/mesh.cpp b/libs/gfx/source/mesh.cpp index 40132f18..f89e124b 100644 --- a/libs/gfx/source/mesh.cpp +++ b/libs/gfx/source/mesh.cpp @@ -96,6 +96,14 @@ namespace psemek::gfx } } + mesh mesh::create(imported_mesh const & m) + { + mesh result; + result.setup(m.attribs); + result.load_raw(m); + return result; + } + void mesh::load_raw(void const * vertices, std::size_t vertex_size, std::size_t count, GLenum primitive_type, GLenum usage) { assert(info_.stride_ == vertex_size);