Clean up code for rendering and wrapping it to Lua

Now with an object oriented example.

Signed-off-by: Hartmut Seichter <hartmut@technotecture.com>
This commit is contained in:
Hartmut Seichter 2021-01-19 20:38:28 +01:00
parent 52c077af6c
commit 2c4cc29f97
21 changed files with 332 additions and 236 deletions

View file

@ -118,16 +118,16 @@ void register_core_function(sol::state& lua,sol::table& ns)
);
ns.new_usertype<geometry>("geometry"
, sol::constructors<geometry(),geometry(geometry::topology_type)>()
, "topology", sol::property(&geometry::topology,&geometry::set_topology)
, sol::constructors<geometry()>()
, "primitive_type", sol::property(&geometry::primitive_type,&geometry::set_primitive_type)
, "vertices", sol::property(&geometry::vertices,&geometry::set_vertices)
, "indices", sol::property(&geometry::indices,&geometry::set_indices)
, "", &geometry::compute_normals
).new_enum<false>("geometry_type"
,"points", geometry::topology_type::points
, "lines", geometry::topology_type::lines
, "line_strip", geometry::topology_type::line_strip
, "triangles", geometry::topology_type::triangles);
, "compute_normals", &geometry::compute_normals);
ns.new_enum<false>("primitive_type"
,"points", geometry::primitive_type::points
,"lines", geometry::primitive_type::lines
,"triangles", geometry::primitive_type::triangles);
ns.new_usertype<matrix_transform<real_t>>("matrixtransform"

View file

@ -42,17 +42,14 @@ void register_visual_function(sol::state&,sol::table &ns)
,"submit",&render_pass::submit
);
ns.new_usertype<material>("material"
,"color",sol::property(&material::_color));
ns.new_usertype<renderer>("mesh_renderer"
ns.new_usertype<renderer>("renderer"
,sol::constructors<renderer(),renderer(const geometry&)>()
,"create",&renderer::create
,"ready",sol::readonly_property(&renderer::ready)
,"release",&renderer::release
,"draw",&renderer::draw
);
,"create",&renderer::create
,"ready",sol::readonly_property(&renderer::ready)
,"release",&renderer::release
,"draw",&renderer::draw
);
ns.new_usertype<framebuffer>("framebuffer"
,sol::constructors<framebuffer()>()
@ -64,7 +61,6 @@ void register_visual_function(sol::state&,sol::table &ns)
ns.new_usertype<texture>("texture"
,sol::constructors<texture(),texture(texture::image_ref,texture::data_layout)>()
,"image",sol::property(&texture::set_image,&texture::image)
,"type",sol::property(&texture::set_type,&texture::type)
);
}