diff options
Diffstat (limited to 'servers/visual/visual_server_raster.h')
| -rw-r--r-- | servers/visual/visual_server_raster.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/servers/visual/visual_server_raster.h b/servers/visual/visual_server_raster.h index 49e7996c5..41ad3aab1 100644 --- a/servers/visual/visual_server_raster.h +++ b/servers/visual/visual_server_raster.h @@ -328,7 +328,7 @@ class VisualServerRaster : public VisualServer { - + struct CanvasItem { @@ -446,13 +446,14 @@ class VisualServerRaster : public VisualServer { bool clip; bool visible; bool ontop; + bool sort_y; float opacity; float self_opacity; MaterialBlendMode blend_mode; RID viewport; mutable bool custom_rect; - mutable bool rect_dirty; + mutable bool rect_dirty; mutable Rect2 rect; Vector<Command*> commands; @@ -460,11 +461,18 @@ class VisualServerRaster : public VisualServer { const Rect2& get_rect() const; void clear() { for (int i=0;i<commands.size();i++) memdelete( commands[i] ); commands.clear(); clip=false; rect_dirty=true;}; - CanvasItem() { clip=false; E=NULL; opacity=1; self_opacity=1; blend_mode=MATERIAL_BLEND_MODE_MIX; visible=true; rect_dirty=true; custom_rect=false; ontop=true; } + CanvasItem() { clip=false; E=NULL; opacity=1; self_opacity=1; blend_mode=MATERIAL_BLEND_MODE_MIX; visible=true; rect_dirty=true; custom_rect=false; ontop=true; sort_y=false;} ~CanvasItem() { clear(); } }; + struct CanvasItemPtrSort { + + _FORCE_INLINE_ bool operator()(const CanvasItem* p_left,const CanvasItem* p_right) const { + + return p_left->xform.elements[2].y < p_right->xform.elements[2].y; + } + }; struct Canvas { @@ -1135,6 +1143,7 @@ public: virtual void canvas_item_add_set_transform(RID p_item,const Matrix32& p_transform); virtual void canvas_item_add_set_blend_mode(RID p_item, MaterialBlendMode p_blend); virtual void canvas_item_add_clip_ignore(RID p_item, bool p_ignore); + virtual void canvas_item_set_sort_children_by_y(RID p_item, bool p_enable); virtual void canvas_item_clear(RID p_item); virtual void canvas_item_raise(RID p_item); |
