Major update to revamp development

This commit is contained in:
Hartmut Seichter 2022-01-04 23:09:32 +01:00
parent df12d68b22
commit 7479bfd625
12 changed files with 133 additions and 45 deletions

View file

@ -9,6 +9,7 @@
#include "pw/core/image.hpp"
#include "pw/core/matrix_transform.hpp"
#include "pw/core/rectangle.hpp"
#include "pw/core/color.hpp"
#include "runtime_lua.hpp"
@ -49,6 +50,17 @@ void register_core_function(sol::state& lua,sol::table& ns)
ns.set("pi",pw::pi<real_t>());
ns.new_usertype<color>("color",
sol::call_constructor,sol::constructors<color(),color(real_t,real_t,real_t,real_t)>(),
"rgba",&color::rgba,
"data",sol::property([](color& c) { return std::ref(c.rgba.data);} ),
"table",sol::property([](const color& c){ return sol::as_table(std::array<vector4::value_type,4>{c.rgba.x(),c.rgba.y(),c.rgba.z(),c.rgba.w()}); },
[](color& c,const sol::table& t) { c = color((real_t)t[0],t[1],t[2],t[3]);})
);
ns.new_usertype<matrix4x4>("matrix4x4",
sol::call_constructor,sol::constructors<matrix4x4()>(),
"row",&matrix4x4::row,
@ -170,6 +182,7 @@ void register_core_function(sol::state& lua,sol::table& ns)
sol::call_constructor,sol::constructors<geometry(),geometry(geometry::primitive_topology_type,vector3_array,geometry::indices_t)>(),
"primitive_topology", sol::property(&geometry::primitive_topology,&geometry::set_primitive_topology),
"compute_normals", &geometry::compute_normals,
"change_count",sol::property(&geometry::change_count,&geometry::set_change_count),
"indices",sol::property( [](const geometry& g){ return sol::as_table(g.indices());},
[](geometry& g,sol::table t){
std::vector<uint32_t> vals;

View file

@ -55,8 +55,9 @@ void register_visual_function(sol::state& lua,sol::table &ns)
ns.new_usertype<renderer>("renderer"
,sol::call_constructor,sol::constructors<renderer(),renderer(const geometry&)>()
,"create",&renderer::create
,"update",&renderer::update
,"ready",sol::readonly_property(&renderer::ready)
,"change_count",sol::readonly_property(&renderer::change_count)
,"release",&renderer::release
,"draw",&renderer::draw
);
@ -80,6 +81,7 @@ void register_visual_function(sol::state& lua,sol::table &ns)
ns.new_usertype<context>("context"
,sol::call_constructor,sol::constructors<context()>()
,"clear",&context::clear
,"clearcolor",sol::property(&context::clearcolor,&context::set_clearcolor)
,"set_viewport",&context::set_viewport
,"get_error",&context::get_error
);