mirror of
https://github.com/godotengine/godot.git
synced 2025-12-07 22:00:10 +00:00
Core: Add dedicated BitField template
This commit is contained in:
parent
7b9c5122fa
commit
0d267e7b1e
46 changed files with 188 additions and 155 deletions
|
|
@ -85,7 +85,7 @@ public:
|
|||
typedef void (*EventDispatchFunc)(const Ref<InputEvent> &p_event);
|
||||
|
||||
private:
|
||||
BitField<MouseButtonMask> mouse_button_mask;
|
||||
BitField<MouseButtonMask> mouse_button_mask = MouseButtonMask::NONE;
|
||||
|
||||
RBSet<Key> key_label_pressed;
|
||||
RBSet<Key> physical_keys_pressed;
|
||||
|
|
|
|||
|
|
@ -136,3 +136,11 @@ inline MouseButtonMask mouse_button_to_mask(MouseButton button) {
|
|||
|
||||
return MouseButtonMask(1 << ((int)button - 1));
|
||||
}
|
||||
|
||||
constexpr MouseButtonMask operator|(MouseButtonMask p_a, MouseButtonMask p_b) {
|
||||
return static_cast<MouseButtonMask>(static_cast<int>(p_a) | static_cast<int>(p_b));
|
||||
}
|
||||
|
||||
constexpr MouseButtonMask &operator|=(MouseButtonMask &p_a, MouseButtonMask p_b) {
|
||||
return p_a = p_a | p_b;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -230,7 +230,7 @@ void InputEventWithModifiers::set_modifiers_from_event(const InputEventWithModif
|
|||
}
|
||||
|
||||
BitField<KeyModifierMask> InputEventWithModifiers::get_modifiers_mask() const {
|
||||
BitField<KeyModifierMask> mask;
|
||||
BitField<KeyModifierMask> mask = {};
|
||||
if (is_ctrl_pressed()) {
|
||||
mask.set_flag(KeyModifierMask::CTRL);
|
||||
}
|
||||
|
|
@ -385,11 +385,11 @@ bool InputEventKey::is_echo() const {
|
|||
}
|
||||
|
||||
Key InputEventKey::get_keycode_with_modifiers() const {
|
||||
return keycode | (int64_t)get_modifiers_mask();
|
||||
return keycode | get_modifiers_mask();
|
||||
}
|
||||
|
||||
Key InputEventKey::get_physical_keycode_with_modifiers() const {
|
||||
return physical_keycode | (int64_t)get_modifiers_mask();
|
||||
return physical_keycode | get_modifiers_mask();
|
||||
}
|
||||
|
||||
Key InputEventKey::get_key_label_with_modifiers() const {
|
||||
|
|
|
|||
|
|
@ -208,7 +208,7 @@ public:
|
|||
class InputEventMouse : public InputEventWithModifiers {
|
||||
GDCLASS(InputEventMouse, InputEventWithModifiers);
|
||||
|
||||
BitField<MouseButtonMask> button_mask;
|
||||
BitField<MouseButtonMask> button_mask = MouseButtonMask::NONE;
|
||||
|
||||
Vector2 pos;
|
||||
Vector2 global_pos;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue