Always render when XR is enabled, even if no OS windows can draw
This commit is contained in:
@ -759,6 +759,17 @@ DisplayServer::WindowID DisplayServer::get_focused_window() const {
|
||||
void DisplayServer::set_context(Context p_context) {
|
||||
}
|
||||
|
||||
void DisplayServer::register_additional_output(Object *p_object) {
|
||||
ObjectID id = p_object->get_instance_id();
|
||||
if (!additional_outputs.has(id)) {
|
||||
additional_outputs.push_back(id);
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayServer::unregister_additional_output(Object *p_object) {
|
||||
additional_outputs.erase(p_object->get_instance_id());
|
||||
}
|
||||
|
||||
void DisplayServer::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("has_feature", "feature"), &DisplayServer::has_feature);
|
||||
ClassDB::bind_method(D_METHOD("get_name"), &DisplayServer::get_name);
|
||||
@ -997,6 +1008,10 @@ void DisplayServer::_bind_methods() {
|
||||
|
||||
ClassDB::bind_method(D_METHOD("is_window_transparency_available"), &DisplayServer::is_window_transparency_available);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("register_additional_output", "object"), &DisplayServer::register_additional_output);
|
||||
ClassDB::bind_method(D_METHOD("unregister_additional_output", "object"), &DisplayServer::unregister_additional_output);
|
||||
ClassDB::bind_method(D_METHOD("has_additional_outputs"), &DisplayServer::has_additional_outputs);
|
||||
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
BIND_ENUM_CONSTANT(FEATURE_GLOBAL_MENU);
|
||||
#endif
|
||||
|
||||
@ -53,6 +53,8 @@ class DisplayServer : public Object {
|
||||
RID _get_rid_from_name(NativeMenu *p_nmenu, const String &p_menu_root) const;
|
||||
#endif
|
||||
|
||||
LocalVector<ObjectID> additional_outputs;
|
||||
|
||||
public:
|
||||
_FORCE_INLINE_ static DisplayServer *get_singleton() {
|
||||
return singleton;
|
||||
@ -582,6 +584,10 @@ public:
|
||||
|
||||
virtual bool is_window_transparency_available() const { return false; }
|
||||
|
||||
void register_additional_output(Object *p_output);
|
||||
void unregister_additional_output(Object *p_output);
|
||||
bool has_additional_outputs() const { return additional_outputs.size() > 0; }
|
||||
|
||||
static void register_create_function(const char *p_name, CreateFunction p_function, GetRenderingDriversFunction p_get_drivers);
|
||||
static int get_create_function_count();
|
||||
static const char *get_create_function_name(int p_index);
|
||||
|
||||
Reference in New Issue
Block a user