8#include <entt/locator/locator.hpp>
11#include "galaxy/graphics/Shader.hpp"
17 void Lua::inject_graphics() noexcept
19 auto& lua = entt::locator<sol::state>::value();
21 auto shader_type = lua.new_usertype<Shader>(
"Shader", sol::constructors<Shader(), Shader(const std::string&), Shader(const std::string&, const std::string&)>());
22 shader_type[
"load"] = sol::resolve<bool(const std::string&)>(&Shader::load);
23 shader_type[
"load_src"] = sol::resolve<bool(const std::string&, const std::string&)>(&Shader::load);
24 shader_type[
"parse"] = sol::resolve<bool(const std::string&)>(&Shader::parse);
25 shader_type[
"parse_src"] = sol::resolve<bool(const std::string&, const std::string&)>(&Shader::parse);
26 shader_type[
"set_uniform_tex2d"] = &Shader::set_uniform<ray::Texture2D>;
27 shader_type[
"set_uniform_matrix"] = &Shader::set_uniform<ray::Matrix>;
28 shader_type[
"set_uniform_vec4"] = &Shader::set_uniform<ray::Vector4>;
29 shader_type[
"set_uniform_vec3"] = &Shader::set_uniform<ray::Vector3>;
30 shader_type[
"set_uniform_vec2"] = &Shader::set_uniform<ray::Vector2>;
31 shader_type[
"set_uniform_float"] = &Shader::set_uniform<float>;
32 shader_type[
"set_uniform_uint"] = &Shader::set_uniform<unsigned int>;
33 shader_type[
"set_uniform_int"] = &Shader::set_uniform<int>;
34 shader_type[
"set_uniform_bool"] = &Shader::set_uniform<bool>;