From bc7378456b15762f9df7bf1e3ee67038dafe71c4 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Sat, 24 Jul 2021 10:13:57 +0300 Subject: [PATCH] Add gfx::mesh::create(imported_mesh) --- libs/gfx/include/psemek/gfx/mesh.hpp | 2 ++ libs/gfx/source/mesh.cpp | 8 ++++++++ 2 files changed, 10 insertions(+) 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);