galaxy 1.0.0
Real-Time C++23 Game Programming Framework. Built on data-driven design principles and agile software engineering.
Loading...
Searching...
No Matches
LuaGraphics.cpp
Go to the documentation of this file.
1
7
8#include <entt/locator/locator.hpp>
9#include <sol/sol.hpp>
10
11#include "galaxy/graphics/Shader.hpp"
12
13#include "../Lua.hpp"
14
15namespace galaxy
16{
17 void Lua::inject_graphics() noexcept
18 {
19 auto& lua = entt::locator<sol::state>::value();
20
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>;
35 }
36} // namespace galaxy
Application.hpp galaxy.