Use main
This commit is contained in:
@@ -4,20 +4,33 @@
|
||||
|
||||
namespace JabyEngine {
|
||||
struct NextRoutine {
|
||||
typedef NextRoutine (*ExecutionFunction)();
|
||||
static constexpr uintptr_t OverlayBit = (1 << ((sizeof(uintptr_t)*8) - 2));
|
||||
typedef NextRoutine (*MainRoutine)();
|
||||
|
||||
uintptr_t value;
|
||||
|
||||
static NextRoutine null() {
|
||||
constexpr static NextRoutine null() {
|
||||
return {.value = 0};
|
||||
}
|
||||
|
||||
static NextRoutine from(ExecutionFunction function) {
|
||||
static NextRoutine from(MainRoutine function) {
|
||||
return {.value = reinterpret_cast<uintptr_t>(function)};
|
||||
}
|
||||
|
||||
constexpr bool is_overlay() const {
|
||||
return (this->value & OverlayBit);
|
||||
}
|
||||
|
||||
constexpr bool is_absolute() const {
|
||||
return !NextRoutine::is_overlay();
|
||||
}
|
||||
|
||||
constexpr bool is_null() const {
|
||||
return this->value == 0;
|
||||
}
|
||||
};
|
||||
|
||||
typedef NextRoutine::ExecutionFunction ExecutionFunction;
|
||||
typedef NextRoutine::MainRoutine MainRoutine;
|
||||
}
|
||||
|
||||
#endif //!__JABYENGINE__H__
|
Reference in New Issue
Block a user