Major push to get renderer separated and configurable.
Signed-off-by: Hartmut Seichter <hartmut@technotecture.com>
This commit is contained in:
parent
77e254872f
commit
d2c8262c68
22 changed files with 542 additions and 97 deletions
|
@ -7,6 +7,7 @@
|
|||
#include "pw/core/time.hpp"
|
||||
#include "pw/core/geometry.hpp"
|
||||
#include "pw/core/image.hpp"
|
||||
#include "pw/core/matrix_transform.hpp"
|
||||
|
||||
#include "runtime_lua.hpp"
|
||||
|
||||
|
@ -15,6 +16,7 @@
|
|||
namespace sol {
|
||||
template <> struct is_automagical<pw::matrix4x4> : std::false_type {};
|
||||
template <> struct is_automagical<pw::vector3> : std::false_type {};
|
||||
template <> struct is_automagical<pw::vector4> : std::false_type {};
|
||||
template <> struct is_automagical<pw::quaternion> : std::false_type {};
|
||||
}
|
||||
|
||||
|
@ -44,8 +46,24 @@ void register_core_function(sol::state& lua,sol::table& ns)
|
|||
,"cross",&vector3::cross
|
||||
,"transposed",&vector3::transposed
|
||||
,"lerp",&vector3::lerp
|
||||
,"forward",&vector3::forward
|
||||
,"backward",&vector3::backward
|
||||
,"left",&vector3::left
|
||||
,"right",&vector3::right
|
||||
,"up",&vector3::up
|
||||
,"down",&vector3::down
|
||||
);
|
||||
|
||||
ns.new_usertype<vector4>("vector4"
|
||||
,sol::constructors<vector4(),vector4(vector4::value_type,vector4::value_type,vector4::value_type,vector4::value_type)>()
|
||||
,"x", sol::property(sol::resolve<const vector4::value_type&() const>(&vector4::x), [](vector4& v,vector4::value_type val){ v.x() = val;})
|
||||
,"y", sol::property(sol::resolve<const vector4::value_type&() const>(&vector4::y), [](vector4& v,vector4::value_type val){ v.y() = val;})
|
||||
,"z", sol::property(sol::resolve<const vector4::value_type&() const>(&vector4::z), [](vector4& v,vector4::value_type val){ v.z() = val;})
|
||||
,"w", sol::property(sol::resolve<const vector4::value_type&() const>(&vector4::w), [](vector4& v,vector4::value_type val){ v.w() = val;})
|
||||
,"project",&vector4::project
|
||||
);
|
||||
|
||||
|
||||
ns.new_usertype<quaternion>("quaternion"
|
||||
,sol::constructors<quaternion(), quaternion(quaternion::value_type,quaternion::value_type,quaternion::value_type,quaternion::value_type)>()
|
||||
,"x", sol::property(sol::resolve<const quaternion::value_type&() const>(&quaternion::x), [](quaternion& v,quaternion::value_type val){ v.x() = val;})
|
||||
|
@ -77,11 +95,6 @@ void register_core_function(sol::state& lua,sol::table& ns)
|
|||
, "height",&size::height
|
||||
);
|
||||
|
||||
ns.new_usertype<sizei>("sizei"
|
||||
, sol::constructors<sizei(),sizei(int,int)>()
|
||||
, "width",&sizei::width
|
||||
, "height",&sizei::height
|
||||
);
|
||||
|
||||
ns.new_usertype<point>("point",
|
||||
sol::constructors<point(),point(Scalar,Scalar)>(),
|
||||
|
@ -109,13 +122,18 @@ void register_core_function(sol::state& lua,sol::table& ns)
|
|||
, "topology", sol::property(&geometry::topology,&geometry::set_topology)
|
||||
, "vertices", sol::property(&geometry::vertices,&geometry::set_vertices)
|
||||
, "indices", sol::property(&geometry::indices,&geometry::set_indices)
|
||||
).new_enum<false>("type"
|
||||
, "", &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);
|
||||
|
||||
|
||||
ns.new_usertype<matrix_transform<real_t>>("matrixtransform"
|
||||
,"new",sol::no_constructor
|
||||
,"look_at",&matrix_transform<real_t>::look_at
|
||||
,"perspective_projection",&matrix_transform<real_t>::perspective_projection);
|
||||
// SOL3
|
||||
// geoom_type["type"] = lua.create_table_with(
|
||||
// "points", geometry::topology_type::points
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
#include "pw/core/debug.hpp"
|
||||
#include "pw/visual/pipeline.hpp"
|
||||
#include "pw/visual/shader.hpp"
|
||||
#include "pw/visual/framebuffer.hpp"
|
||||
#include "pw/core/size.hpp"
|
||||
|
||||
#include "runtime_lua.hpp"
|
||||
|
||||
|
@ -10,26 +12,29 @@ namespace pw {
|
|||
void register_visual_function(sol::state&,sol::table &ns)
|
||||
{
|
||||
|
||||
ns.new_usertype<pipeline>("pipeline"
|
||||
ns.new_usertype<pipeline>("pipeline"
|
||||
,"create",&pipeline::create
|
||||
,"draw",&pipeline::draw
|
||||
,"draw",&pipeline::draw
|
||||
);
|
||||
|
||||
|
||||
|
||||
ns.new_usertype<shader>("shader"
|
||||
ns.new_usertype<shader>("shader"
|
||||
,sol::constructors<shader()>()
|
||||
,"ready",sol::readonly_property(&shader::ready)
|
||||
,"use",&shader::use
|
||||
,"ready",sol::readonly_property(&shader::ready)
|
||||
,"use",&shader::use
|
||||
,"build",&shader::build
|
||||
,"source",&shader::source
|
||||
,"set_source",&shader::set_source
|
||||
,"set_uniforms",&shader::set_uniforms
|
||||
,"set_uniform_float",&shader::set_uniform<float>
|
||||
,"set_uniform_mat4",&shader::set_uniform<matrix4x4&>
|
||||
,"set_uniform_vec4",&shader::set_uniform<vector4&>
|
||||
).new_enum<false>("shader_type"
|
||||
,"fragment",shader::code_type::fragment
|
||||
,"vertex",shader::code_type::vertex
|
||||
,"geometry",shader::code_type::geometry
|
||||
,"compute",shader::code_type::compute);
|
||||
,"vertex",shader::code_type::vertex
|
||||
,"geometry",shader::code_type::geometry
|
||||
,"compute",shader::code_type::compute);
|
||||
|
||||
|
||||
ns.new_usertype<render_pass>("render_pass"
|
||||
|
@ -40,7 +45,20 @@ void register_visual_function(sol::state&,sol::table &ns)
|
|||
,"color",sol::property(&material::_color));
|
||||
|
||||
|
||||
ns.new_usertype<mesh_renderer>("mesh_renderer");
|
||||
ns.new_usertype<mesh_renderer>("mesh_renderer"
|
||||
,sol::constructors<mesh_renderer(),mesh_renderer(const geometry&)>()
|
||||
,"create",&mesh_renderer::create
|
||||
,"ready",sol::readonly_property(&mesh_renderer::ready)
|
||||
,"release",&mesh_renderer::release
|
||||
,"draw",&mesh_renderer::draw
|
||||
);
|
||||
|
||||
ns.new_usertype<framebuffer>("framebuffer"
|
||||
,sol::constructors<framebuffer()>()
|
||||
,"create",&framebuffer::create
|
||||
,"bind",&framebuffer::bind
|
||||
,"unbind",&framebuffer::unbind
|
||||
,"blit",&framebuffer::blit);
|
||||
}
|
||||
|
||||
PW_REGISTER_LUA(visual)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue