|
13 | 13 |
|
14 | 14 | using namespace juce; |
15 | 15 |
|
16 | | -int register_el_Point (lua_State* L) |
| 16 | +namespace element::lua { |
| 17 | +static int register_el_Point (lua_State* L) |
17 | 18 | { |
18 | 19 | sol::state_view lua (L); |
19 | 20 | using PTF = Point<lua_Number>; |
20 | 21 | auto M = lua.create_table(); |
| 22 | + // clang-format off |
21 | 23 | M.new_usertype<PTF> ( |
22 | 24 | EL_TYPE_NAME_POINT, sol::no_constructor, "new", sol::factories ( |
23 | | - /// Create a new point with x and y = 0. |
24 | | - // @function Point.new |
25 | | - // @treturn el.Point |
26 | | - // @within Constructors |
27 | | - []() { return PTF(); }, |
28 | | - |
29 | | - /// Create a new point. |
30 | | - // @function Point.new |
31 | | - // @number x X coordinate |
32 | | - // @number y Y coordinate |
33 | | - // @treturn el.Point |
34 | | - // @within Constructors |
35 | | - [] (lua_Number x, lua_Number y) { return PTF (x, y); }), |
| 25 | + /// Create a new point with x and y = 0. |
| 26 | + // @function Point.new |
| 27 | + // @treturn el.Point |
| 28 | + // @within Constructors |
| 29 | + []() { return PTF(); }, |
| 30 | + |
| 31 | + /// Create a new point. |
| 32 | + // @function Point.new |
| 33 | + // @number x X coordinate |
| 34 | + // @number y Y coordinate |
| 35 | + // @treturn el.Point |
| 36 | + // @within Constructors |
| 37 | + [] (lua_Number x, lua_Number y) { return PTF (x, y); }), |
36 | 38 | sol::meta_method::to_string, [] (PTF& self) { |
37 | 39 | return self.toString().toStdString(); |
38 | 40 | }, |
@@ -132,17 +134,14 @@ int register_el_Point (lua_State* L) |
132 | 134 | // @treturn int |
133 | 135 | "toInt", &PTF::toInt |
134 | 136 | ); |
135 | | - |
| 137 | + // clang-format on |
136 | 138 | sol::stack::push (L, element::lua::removeAndClear (M, EL_TYPE_NAME_POINT)); |
137 | 139 | return 1; |
138 | 140 | } |
| 141 | +} // namespace element::lua |
139 | 142 |
|
140 | | -// clang-format off |
141 | | -// Wrapper needed: Modern MSVC toolsets (14.5+) enforce stricter C++20 linkage rules. |
142 | | -// Lambdas with explicit return types inside extern "C" functions are flagged as errors. |
143 | | -// The wrapper isolates C linkage from C++ lambda code. |
144 | 143 | EL_PLUGIN_EXPORT |
145 | 144 | int luaopen_el_Point (lua_State* L) |
146 | 145 | { |
147 | | - return register_el_Point(L); |
| 146 | + return element::lua::register_el_Point (L); |
148 | 147 | } |
0 commit comments