1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-26 15:46:23 +00:00

Add and require GDSOFTCLASS for Object subclasses that want to cast but do not use GDCLASS.

This commit is contained in:
Lukas Tenbrink
2025-03-31 15:18:06 +02:00
parent e585e6a3eb
commit fa0a3c9c6e
16 changed files with 98 additions and 69 deletions

View File

@@ -88,6 +88,8 @@ class WaylandThread {
public:
// Messages used for exchanging information between Godot's and Wayland's thread.
class Message : public RefCounted {
GDSOFTCLASS(Message, RefCounted);
public:
Message() {}
virtual ~Message() = default;
@@ -95,6 +97,8 @@ public:
// Message data for window rect changes.
class WindowRectMessage : public Message {
GDSOFTCLASS(WindowRectMessage, Message);
public:
// NOTE: This is in "scaled" terms. For example, if there's a 1920x1080 rect
// with a scale factor of 2, the actual value of `rect` will be 3840x2160.
@@ -102,27 +106,37 @@ public:
};
class WindowEventMessage : public Message {
GDSOFTCLASS(WindowEventMessage, Message);
public:
DisplayServer::WindowEvent event;
};
class InputEventMessage : public Message {
GDSOFTCLASS(InputEventMessage, Message);
public:
Ref<InputEvent> event;
};
class DropFilesEventMessage : public Message {
GDSOFTCLASS(DropFilesEventMessage, Message);
public:
Vector<String> files;
};
class IMEUpdateEventMessage : public Message {
GDSOFTCLASS(IMEUpdateEventMessage, Message);
public:
String text;
Vector2i selection;
};
class IMECommitEventMessage : public Message {
GDSOFTCLASS(IMECommitEventMessage, Message);
public:
String text;
};