You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-21 14:57:09 +00:00
-Added ViewportContainer, this is the only way to make viewports show up in GUI now
-2D editing now seems to work -Added some functions and refactoring to Viewport
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user