clang format (#7017)
This commit is contained in:
parent
5ced2c7af9
commit
6cfb8e02a8
|
@ -42,9 +42,7 @@ struct CaptureSession final {
|
||||||
|
|
||||||
#define MEMBER(type, name, func) \
|
#define MEMBER(type, name, func) \
|
||||||
struct type##Deleter { \
|
struct type##Deleter { \
|
||||||
void operator()(type* ptr) { \
|
void operator()(type* ptr) { type##_##func(ptr); } \
|
||||||
type##_##func(ptr); \
|
|
||||||
} \
|
|
||||||
}; \
|
}; \
|
||||||
std::unique_ptr<type, type##Deleter> name
|
std::unique_ptr<type, type##Deleter> name
|
||||||
|
|
||||||
|
|
|
@ -65,7 +65,7 @@ struct no_init_t {
|
||||||
* Additionally, this requires E to be trivially destructible
|
* Additionally, this requires E to be trivially destructible
|
||||||
*/
|
*/
|
||||||
template <typename T, typename E, bool = std::is_trivially_destructible_v<T>>
|
template <typename T, typename E, bool = std::is_trivially_destructible_v<T>>
|
||||||
requires std::is_trivially_destructible_v<E>
|
requires std::is_trivially_destructible_v<E>
|
||||||
struct expected_storage_base {
|
struct expected_storage_base {
|
||||||
constexpr expected_storage_base() : m_val{T{}}, m_has_val{true} {}
|
constexpr expected_storage_base() : m_val{T{}}, m_has_val{true} {}
|
||||||
|
|
||||||
|
@ -112,7 +112,7 @@ struct expected_storage_base {
|
||||||
* Additionally, this requires E to be trivially destructible
|
* Additionally, this requires E to be trivially destructible
|
||||||
*/
|
*/
|
||||||
template <typename T, typename E>
|
template <typename T, typename E>
|
||||||
requires std::is_trivially_destructible_v<E>
|
requires std::is_trivially_destructible_v<E>
|
||||||
struct expected_storage_base<T, E, true> {
|
struct expected_storage_base<T, E, true> {
|
||||||
constexpr expected_storage_base() : m_val{T{}}, m_has_val{true} {}
|
constexpr expected_storage_base() : m_val{T{}}, m_has_val{true} {}
|
||||||
|
|
||||||
|
@ -252,7 +252,7 @@ struct expected_operations_base : expected_storage_base<T, E> {
|
||||||
* Additionally, this requires E to be trivially copy constructible
|
* Additionally, this requires E to be trivially copy constructible
|
||||||
*/
|
*/
|
||||||
template <typename T, typename E, bool = std::is_trivially_copy_constructible_v<T>>
|
template <typename T, typename E, bool = std::is_trivially_copy_constructible_v<T>>
|
||||||
requires std::is_trivially_copy_constructible_v<E>
|
requires std::is_trivially_copy_constructible_v<E>
|
||||||
struct expected_copy_base : expected_operations_base<T, E> {
|
struct expected_copy_base : expected_operations_base<T, E> {
|
||||||
using expected_operations_base<T, E>::expected_operations_base;
|
using expected_operations_base<T, E>::expected_operations_base;
|
||||||
};
|
};
|
||||||
|
@ -262,7 +262,7 @@ struct expected_copy_base : expected_operations_base<T, E> {
|
||||||
* Additionally, this requires E to be trivially copy constructible
|
* Additionally, this requires E to be trivially copy constructible
|
||||||
*/
|
*/
|
||||||
template <typename T, typename E>
|
template <typename T, typename E>
|
||||||
requires std::is_trivially_copy_constructible_v<E>
|
requires std::is_trivially_copy_constructible_v<E>
|
||||||
struct expected_copy_base<T, E, false> : expected_operations_base<T, E> {
|
struct expected_copy_base<T, E, false> : expected_operations_base<T, E> {
|
||||||
using expected_operations_base<T, E>::expected_operations_base;
|
using expected_operations_base<T, E>::expected_operations_base;
|
||||||
|
|
||||||
|
@ -290,7 +290,7 @@ struct expected_copy_base<T, E, false> : expected_operations_base<T, E> {
|
||||||
* Additionally, this requires E to be trivially move constructible
|
* Additionally, this requires E to be trivially move constructible
|
||||||
*/
|
*/
|
||||||
template <typename T, typename E, bool = std::is_trivially_move_constructible_v<T>>
|
template <typename T, typename E, bool = std::is_trivially_move_constructible_v<T>>
|
||||||
requires std::is_trivially_move_constructible_v<E>
|
requires std::is_trivially_move_constructible_v<E>
|
||||||
struct expected_move_base : expected_copy_base<T, E> {
|
struct expected_move_base : expected_copy_base<T, E> {
|
||||||
using expected_copy_base<T, E>::expected_copy_base;
|
using expected_copy_base<T, E>::expected_copy_base;
|
||||||
};
|
};
|
||||||
|
@ -300,7 +300,7 @@ struct expected_move_base : expected_copy_base<T, E> {
|
||||||
* Additionally, this requires E to be trivially move constructible
|
* Additionally, this requires E to be trivially move constructible
|
||||||
*/
|
*/
|
||||||
template <typename T, typename E>
|
template <typename T, typename E>
|
||||||
requires std::is_trivially_move_constructible_v<E>
|
requires std::is_trivially_move_constructible_v<E>
|
||||||
struct expected_move_base<T, E, false> : expected_copy_base<T, E> {
|
struct expected_move_base<T, E, false> : expected_copy_base<T, E> {
|
||||||
using expected_copy_base<T, E>::expected_copy_base;
|
using expected_copy_base<T, E>::expected_copy_base;
|
||||||
|
|
||||||
|
@ -331,7 +331,7 @@ template <typename T, typename E,
|
||||||
bool = std::conjunction_v<std::is_trivially_copy_assignable<T>,
|
bool = std::conjunction_v<std::is_trivially_copy_assignable<T>,
|
||||||
std::is_trivially_copy_constructible<T>,
|
std::is_trivially_copy_constructible<T>,
|
||||||
std::is_trivially_destructible<T>>>
|
std::is_trivially_destructible<T>>>
|
||||||
requires std::conjunction_v<std::is_trivially_copy_assignable<E>,
|
requires std::conjunction_v<std::is_trivially_copy_assignable<E>,
|
||||||
std::is_trivially_copy_constructible<E>,
|
std::is_trivially_copy_constructible<E>,
|
||||||
std::is_trivially_destructible<E>>
|
std::is_trivially_destructible<E>>
|
||||||
struct expected_copy_assign_base : expected_move_base<T, E> {
|
struct expected_copy_assign_base : expected_move_base<T, E> {
|
||||||
|
@ -343,7 +343,7 @@ struct expected_copy_assign_base : expected_move_base<T, E> {
|
||||||
* Additionally, this requires E to be trivially copy assignable
|
* Additionally, this requires E to be trivially copy assignable
|
||||||
*/
|
*/
|
||||||
template <typename T, typename E>
|
template <typename T, typename E>
|
||||||
requires std::conjunction_v<std::is_trivially_copy_assignable<E>,
|
requires std::conjunction_v<std::is_trivially_copy_assignable<E>,
|
||||||
std::is_trivially_copy_constructible<E>,
|
std::is_trivially_copy_constructible<E>,
|
||||||
std::is_trivially_destructible<E>>
|
std::is_trivially_destructible<E>>
|
||||||
struct expected_copy_assign_base<T, E, false> : expected_move_base<T, E> {
|
struct expected_copy_assign_base<T, E, false> : expected_move_base<T, E> {
|
||||||
|
@ -372,7 +372,7 @@ template <typename T, typename E,
|
||||||
bool = std::conjunction_v<std::is_trivially_move_assignable<T>,
|
bool = std::conjunction_v<std::is_trivially_move_assignable<T>,
|
||||||
std::is_trivially_move_constructible<T>,
|
std::is_trivially_move_constructible<T>,
|
||||||
std::is_trivially_destructible<T>>>
|
std::is_trivially_destructible<T>>>
|
||||||
requires std::conjunction_v<std::is_trivially_move_assignable<E>,
|
requires std::conjunction_v<std::is_trivially_move_assignable<E>,
|
||||||
std::is_trivially_move_constructible<E>,
|
std::is_trivially_move_constructible<E>,
|
||||||
std::is_trivially_destructible<E>>
|
std::is_trivially_destructible<E>>
|
||||||
struct expected_move_assign_base : expected_copy_assign_base<T, E> {
|
struct expected_move_assign_base : expected_copy_assign_base<T, E> {
|
||||||
|
@ -384,7 +384,7 @@ struct expected_move_assign_base : expected_copy_assign_base<T, E> {
|
||||||
* Additionally, this requires E to be trivially move assignable
|
* Additionally, this requires E to be trivially move assignable
|
||||||
*/
|
*/
|
||||||
template <typename T, typename E>
|
template <typename T, typename E>
|
||||||
requires std::conjunction_v<std::is_trivially_move_assignable<E>,
|
requires std::conjunction_v<std::is_trivially_move_assignable<E>,
|
||||||
std::is_trivially_move_constructible<E>,
|
std::is_trivially_move_constructible<E>,
|
||||||
std::is_trivially_destructible<E>>
|
std::is_trivially_destructible<E>>
|
||||||
struct expected_move_assign_base<T, E, false> : expected_copy_assign_base<T, E> {
|
struct expected_move_assign_base<T, E, false> : expected_copy_assign_base<T, E> {
|
||||||
|
@ -413,7 +413,7 @@ struct expected_move_assign_base<T, E, false> : expected_copy_assign_base<T, E>
|
||||||
*/
|
*/
|
||||||
template <typename T, typename E, bool EnableCopy = std::is_copy_constructible_v<T>,
|
template <typename T, typename E, bool EnableCopy = std::is_copy_constructible_v<T>,
|
||||||
bool EnableMove = std::is_move_constructible_v<T>>
|
bool EnableMove = std::is_move_constructible_v<T>>
|
||||||
requires std::conjunction_v<std::is_copy_constructible<E>, std::is_move_constructible<E>>
|
requires std::conjunction_v<std::is_copy_constructible<E>, std::is_move_constructible<E>>
|
||||||
struct expected_delete_ctor_base {
|
struct expected_delete_ctor_base {
|
||||||
expected_delete_ctor_base() = default;
|
expected_delete_ctor_base() = default;
|
||||||
expected_delete_ctor_base(const expected_delete_ctor_base&) = default;
|
expected_delete_ctor_base(const expected_delete_ctor_base&) = default;
|
||||||
|
@ -423,7 +423,7 @@ struct expected_delete_ctor_base {
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename T, typename E>
|
template <typename T, typename E>
|
||||||
requires std::conjunction_v<std::is_copy_constructible<E>, std::is_move_constructible<E>>
|
requires std::conjunction_v<std::is_copy_constructible<E>, std::is_move_constructible<E>>
|
||||||
struct expected_delete_ctor_base<T, E, true, false> {
|
struct expected_delete_ctor_base<T, E, true, false> {
|
||||||
expected_delete_ctor_base() = default;
|
expected_delete_ctor_base() = default;
|
||||||
expected_delete_ctor_base(const expected_delete_ctor_base&) = default;
|
expected_delete_ctor_base(const expected_delete_ctor_base&) = default;
|
||||||
|
@ -433,7 +433,7 @@ struct expected_delete_ctor_base<T, E, true, false> {
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename T, typename E>
|
template <typename T, typename E>
|
||||||
requires std::conjunction_v<std::is_copy_constructible<E>, std::is_move_constructible<E>>
|
requires std::conjunction_v<std::is_copy_constructible<E>, std::is_move_constructible<E>>
|
||||||
struct expected_delete_ctor_base<T, E, false, true> {
|
struct expected_delete_ctor_base<T, E, false, true> {
|
||||||
expected_delete_ctor_base() = default;
|
expected_delete_ctor_base() = default;
|
||||||
expected_delete_ctor_base(const expected_delete_ctor_base&) = delete;
|
expected_delete_ctor_base(const expected_delete_ctor_base&) = delete;
|
||||||
|
@ -443,7 +443,7 @@ struct expected_delete_ctor_base<T, E, false, true> {
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename T, typename E>
|
template <typename T, typename E>
|
||||||
requires std::conjunction_v<std::is_copy_constructible<E>, std::is_move_constructible<E>>
|
requires std::conjunction_v<std::is_copy_constructible<E>, std::is_move_constructible<E>>
|
||||||
struct expected_delete_ctor_base<T, E, false, false> {
|
struct expected_delete_ctor_base<T, E, false, false> {
|
||||||
expected_delete_ctor_base() = default;
|
expected_delete_ctor_base() = default;
|
||||||
expected_delete_ctor_base(const expected_delete_ctor_base&) = delete;
|
expected_delete_ctor_base(const expected_delete_ctor_base&) = delete;
|
||||||
|
@ -461,7 +461,7 @@ template <
|
||||||
typename T, typename E,
|
typename T, typename E,
|
||||||
bool EnableCopy = std::conjunction_v<std::is_copy_constructible<T>, std::is_copy_assignable<T>>,
|
bool EnableCopy = std::conjunction_v<std::is_copy_constructible<T>, std::is_copy_assignable<T>>,
|
||||||
bool EnableMove = std::conjunction_v<std::is_move_constructible<T>, std::is_move_assignable<T>>>
|
bool EnableMove = std::conjunction_v<std::is_move_constructible<T>, std::is_move_assignable<T>>>
|
||||||
requires std::conjunction_v<std::is_copy_constructible<E>, std::is_move_constructible<E>,
|
requires std::conjunction_v<std::is_copy_constructible<E>, std::is_move_constructible<E>,
|
||||||
std::is_copy_assignable<E>, std::is_move_assignable<E>>
|
std::is_copy_assignable<E>, std::is_move_assignable<E>>
|
||||||
struct expected_delete_assign_base {
|
struct expected_delete_assign_base {
|
||||||
expected_delete_assign_base() = default;
|
expected_delete_assign_base() = default;
|
||||||
|
@ -472,7 +472,7 @@ struct expected_delete_assign_base {
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename T, typename E>
|
template <typename T, typename E>
|
||||||
requires std::conjunction_v<std::is_copy_constructible<E>, std::is_move_constructible<E>,
|
requires std::conjunction_v<std::is_copy_constructible<E>, std::is_move_constructible<E>,
|
||||||
std::is_copy_assignable<E>, std::is_move_assignable<E>>
|
std::is_copy_assignable<E>, std::is_move_assignable<E>>
|
||||||
struct expected_delete_assign_base<T, E, true, false> {
|
struct expected_delete_assign_base<T, E, true, false> {
|
||||||
expected_delete_assign_base() = default;
|
expected_delete_assign_base() = default;
|
||||||
|
@ -483,7 +483,7 @@ struct expected_delete_assign_base<T, E, true, false> {
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename T, typename E>
|
template <typename T, typename E>
|
||||||
requires std::conjunction_v<std::is_copy_constructible<E>, std::is_move_constructible<E>,
|
requires std::conjunction_v<std::is_copy_constructible<E>, std::is_move_constructible<E>,
|
||||||
std::is_copy_assignable<E>, std::is_move_assignable<E>>
|
std::is_copy_assignable<E>, std::is_move_assignable<E>>
|
||||||
struct expected_delete_assign_base<T, E, false, true> {
|
struct expected_delete_assign_base<T, E, false, true> {
|
||||||
expected_delete_assign_base() = default;
|
expected_delete_assign_base() = default;
|
||||||
|
@ -494,7 +494,7 @@ struct expected_delete_assign_base<T, E, false, true> {
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename T, typename E>
|
template <typename T, typename E>
|
||||||
requires std::conjunction_v<std::is_copy_constructible<E>, std::is_move_constructible<E>,
|
requires std::conjunction_v<std::is_copy_constructible<E>, std::is_move_constructible<E>,
|
||||||
std::is_copy_assignable<E>, std::is_move_assignable<E>>
|
std::is_copy_assignable<E>, std::is_move_assignable<E>>
|
||||||
struct expected_delete_assign_base<T, E, false, false> {
|
struct expected_delete_assign_base<T, E, false, false> {
|
||||||
expected_delete_assign_base() = default;
|
expected_delete_assign_base() = default;
|
||||||
|
|
|
@ -178,7 +178,8 @@ public:
|
||||||
* @param default_val Intial value of the setting, and default value of the setting
|
* @param default_val Intial value of the setting, and default value of the setting
|
||||||
* @param name Label for the setting
|
* @param name Label for the setting
|
||||||
*/
|
*/
|
||||||
explicit Setting(const Type& default_val, const std::string& name) requires(!ranged)
|
explicit Setting(const Type& default_val, const std::string& name)
|
||||||
|
requires(!ranged)
|
||||||
: value{default_val}, default_value{default_val}, label{name} {}
|
: value{default_val}, default_value{default_val}, label{name} {}
|
||||||
virtual ~Setting() = default;
|
virtual ~Setting() = default;
|
||||||
|
|
||||||
|
@ -191,7 +192,8 @@ public:
|
||||||
* @param name Label for the setting
|
* @param name Label for the setting
|
||||||
*/
|
*/
|
||||||
explicit Setting(const Type& default_val, const Type& min_val, const Type& max_val,
|
explicit Setting(const Type& default_val, const Type& min_val, const Type& max_val,
|
||||||
const std::string& name) requires(ranged)
|
const std::string& name)
|
||||||
|
requires(ranged)
|
||||||
: value{default_val},
|
: value{default_val},
|
||||||
default_value{default_val}, maximum{max_val}, minimum{min_val}, label{name} {}
|
default_value{default_val}, maximum{max_val}, minimum{min_val}, label{name} {}
|
||||||
|
|
||||||
|
@ -279,7 +281,8 @@ public:
|
||||||
* @param default_val Intial value of the setting, and default value of the setting
|
* @param default_val Intial value of the setting, and default value of the setting
|
||||||
* @param name Label for the setting
|
* @param name Label for the setting
|
||||||
*/
|
*/
|
||||||
explicit SwitchableSetting(const Type& default_val, const std::string& name) requires(!ranged)
|
explicit SwitchableSetting(const Type& default_val, const std::string& name)
|
||||||
|
requires(!ranged)
|
||||||
: Setting<Type>{default_val, name} {}
|
: Setting<Type>{default_val, name} {}
|
||||||
virtual ~SwitchableSetting() = default;
|
virtual ~SwitchableSetting() = default;
|
||||||
|
|
||||||
|
@ -292,7 +295,8 @@ public:
|
||||||
* @param name Label for the setting
|
* @param name Label for the setting
|
||||||
*/
|
*/
|
||||||
explicit SwitchableSetting(const Type& default_val, const Type& min_val, const Type& max_val,
|
explicit SwitchableSetting(const Type& default_val, const Type& min_val, const Type& max_val,
|
||||||
const std::string& name) requires(ranged)
|
const std::string& name)
|
||||||
|
requires(ranged)
|
||||||
: Setting<Type, true>{default_val, min_val, max_val, name} {}
|
: Setting<Type, true>{default_val, min_val, max_val, name} {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -396,9 +396,7 @@ public:
|
||||||
// _DEFINE_SWIZZLER2 defines a single such function, DEFINE_SWIZZLER2 defines all of them for all
|
// _DEFINE_SWIZZLER2 defines a single such function, DEFINE_SWIZZLER2 defines all of them for all
|
||||||
// component names (x<->r) and permutations (xy<->yx)
|
// component names (x<->r) and permutations (xy<->yx)
|
||||||
#define _DEFINE_SWIZZLER2(a, b, name) \
|
#define _DEFINE_SWIZZLER2(a, b, name) \
|
||||||
[[nodiscard]] constexpr Vec2<T> name() const { \
|
[[nodiscard]] constexpr Vec2<T> name() const { return Vec2<T>(a, b); }
|
||||||
return Vec2<T>(a, b); \
|
|
||||||
}
|
|
||||||
#define DEFINE_SWIZZLER2(a, b, a2, b2, a3, b3, a4, b4) \
|
#define DEFINE_SWIZZLER2(a, b, a2, b2, a3, b3, a4, b4) \
|
||||||
_DEFINE_SWIZZLER2(a, b, a##b); \
|
_DEFINE_SWIZZLER2(a, b, a##b); \
|
||||||
_DEFINE_SWIZZLER2(a, b, a2##b2); \
|
_DEFINE_SWIZZLER2(a, b, a2##b2); \
|
||||||
|
@ -598,9 +596,7 @@ public:
|
||||||
// DEFINE_SWIZZLER2_COMP2 defines two component functions for all component names (x<->r) and
|
// DEFINE_SWIZZLER2_COMP2 defines two component functions for all component names (x<->r) and
|
||||||
// permutations (xy<->yx)
|
// permutations (xy<->yx)
|
||||||
#define _DEFINE_SWIZZLER2(a, b, name) \
|
#define _DEFINE_SWIZZLER2(a, b, name) \
|
||||||
[[nodiscard]] constexpr Vec2<T> name() const { \
|
[[nodiscard]] constexpr Vec2<T> name() const { return Vec2<T>(a, b); }
|
||||||
return Vec2<T>(a, b); \
|
|
||||||
}
|
|
||||||
#define DEFINE_SWIZZLER2_COMP1(a, a2) \
|
#define DEFINE_SWIZZLER2_COMP1(a, a2) \
|
||||||
_DEFINE_SWIZZLER2(a, a, a##a); \
|
_DEFINE_SWIZZLER2(a, a, a##a); \
|
||||||
_DEFINE_SWIZZLER2(a, a, a2##a2)
|
_DEFINE_SWIZZLER2(a, a, a2##a2)
|
||||||
|
@ -625,9 +621,7 @@ public:
|
||||||
#undef _DEFINE_SWIZZLER2
|
#undef _DEFINE_SWIZZLER2
|
||||||
|
|
||||||
#define _DEFINE_SWIZZLER3(a, b, c, name) \
|
#define _DEFINE_SWIZZLER3(a, b, c, name) \
|
||||||
[[nodiscard]] constexpr Vec3<T> name() const { \
|
[[nodiscard]] constexpr Vec3<T> name() const { return Vec3<T>(a, b, c); }
|
||||||
return Vec3<T>(a, b, c); \
|
|
||||||
}
|
|
||||||
#define DEFINE_SWIZZLER3_COMP1(a, a2) \
|
#define DEFINE_SWIZZLER3_COMP1(a, a2) \
|
||||||
_DEFINE_SWIZZLER3(a, a, a, a##a##a); \
|
_DEFINE_SWIZZLER3(a, a, a, a##a##a); \
|
||||||
_DEFINE_SWIZZLER3(a, a, a, a2##a2##a2)
|
_DEFINE_SWIZZLER3(a, a, a, a2##a2##a2)
|
||||||
|
@ -690,8 +684,8 @@ template <typename T>
|
||||||
|
|
||||||
// linear interpolation via float: 0.0=begin, 1.0=end
|
// linear interpolation via float: 0.0=begin, 1.0=end
|
||||||
template <typename X>
|
template <typename X>
|
||||||
[[nodiscard]] constexpr decltype(X{} * float{} + X{} * float{})
|
[[nodiscard]] constexpr decltype(X{} * float{} + X{} * float{}) Lerp(const X& begin, const X& end,
|
||||||
Lerp(const X& begin, const X& end, const float t) {
|
const float t) {
|
||||||
return begin * (1.f - t) + end * t;
|
return begin * (1.f - t) + end * t;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -63,7 +63,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(add)(unsigned int inst, int index) {
|
||||||
|
|
||||||
return inst_base;
|
return inst_base;
|
||||||
}
|
}
|
||||||
static ARM_INST_PTR INTERPRETER_TRANSLATE(and)(unsigned int inst, int index) {
|
static ARM_INST_PTR INTERPRETER_TRANSLATE (and)(unsigned int inst, int index) {
|
||||||
arm_inst* inst_base = (arm_inst*)AllocBuffer(sizeof(arm_inst) + sizeof(and_inst));
|
arm_inst* inst_base = (arm_inst*)AllocBuffer(sizeof(arm_inst) + sizeof(and_inst));
|
||||||
and_inst* inst_cream = (and_inst*)inst_base->component;
|
and_inst* inst_cream = (and_inst*)inst_base->component;
|
||||||
|
|
||||||
|
|
|
@ -104,7 +104,7 @@ struct GSEmitter {
|
||||||
struct Handlers {
|
struct Handlers {
|
||||||
VertexHandler vertex_handler;
|
VertexHandler vertex_handler;
|
||||||
WindingSetter winding_setter;
|
WindingSetter winding_setter;
|
||||||
} * handlers;
|
}* handlers;
|
||||||
|
|
||||||
GSEmitter();
|
GSEmitter();
|
||||||
~GSEmitter();
|
~GSEmitter();
|
||||||
|
|
Reference in New Issue