aboutsummaryrefslogtreecommitdiff
path: root/servers/visual/visual_server_viewport.h
diff options
context:
space:
mode:
Diffstat (limited to 'servers/visual/visual_server_viewport.h')
-rw-r--r--servers/visual/visual_server_viewport.h27
1 files changed, 24 insertions, 3 deletions
diff --git a/servers/visual/visual_server_viewport.h b/servers/visual/visual_server_viewport.h
index e5c888fbc..cba33a3b2 100644
--- a/servers/visual/visual_server_viewport.h
+++ b/servers/visual/visual_server_viewport.h
@@ -13,6 +13,8 @@ public:
};
+
+
struct Viewport : public RID_Data {
RID self;
@@ -32,8 +34,8 @@ public:
bool hide_scenario;
bool hide_canvas;
bool disable_environment;
+ bool disable_3d;
- Image capture;
VS::ViewportClearMode clear_mode;
@@ -70,8 +72,27 @@ public:
};
mutable RID_Owner<Viewport> viewport_owner;
+
+
+ struct ViewportSort {
+ _FORCE_INLINE_ bool operator()(const Viewport*p_left,const Viewport* p_right) const {
+
+ bool left_to_screen = p_left->viewport_to_screen_rect.size!=Size2();
+ bool right_to_screen = p_right->viewport_to_screen_rect.size!=Size2();
+
+ if (left_to_screen==right_to_screen) {
+
+ return p_left->parent==p_right->self;
+ } else {
+ return right_to_screen;
+ }
+ }
+ };
+
+
Vector<Viewport*> active_viewports;
private:
+ Color clear_color;
void _draw_viewport(Viewport *p_viewport);
public:
@@ -84,7 +105,7 @@ public:
void viewport_detach(RID p_viewport);
void viewport_set_active(RID p_viewport,bool p_active);
-
+ void viewport_set_parent_viewport(RID p_viewport,RID p_parent_viewport);
void viewport_set_update_mode(RID p_viewport,VS::ViewportUpdateMode p_mode);
void viewport_set_vflip(RID p_viewport,bool p_enable);
@@ -92,11 +113,11 @@ public:
void viewport_set_clear_mode(RID p_viewport,VS::ViewportClearMode p_clear_mode);
RID viewport_get_texture(RID p_viewport) const;
- Image viewport_capture(RID p_viewport) const;
void viewport_set_hide_scenario(RID p_viewport,bool p_hide);
void viewport_set_hide_canvas(RID p_viewport,bool p_hide);
void viewport_set_disable_environment(RID p_viewport,bool p_disable);
+ void viewport_set_disable_3d(RID p_viewport,bool p_disable);
void viewport_attach_camera(RID p_viewport,RID p_camera);
void viewport_set_scenario(RID p_viewport,RID p_scenario);