diff options
author | Ovnuniarchos <pujalte.jorge@gmail.com> | 2016-11-22 01:35:34 +0100 |
---|---|---|
committer | Ovnuniarchos <pujalte.jorge@gmail.com> | 2016-11-24 21:28:10 +0100 |
commit | e07dd9ab324ea376cda3f2a4e6f4b804dbc52042 (patch) | |
tree | 46961d624766f34026da3c716c462af918fd8c77 /scene | |
parent | 9e2d09f580c319e511d3a816bba8a54138a4bcd1 (diff) |
TileMap now honors blending mode.
Diffstat (limited to 'scene')
-rw-r--r-- | scene/2d/canvas_item.h | 2 | ||||
-rw-r--r-- | scene/2d/tile_map.cpp | 9 | ||||
-rw-r--r-- | scene/2d/tile_map.h | 2 |
3 files changed, 12 insertions, 1 deletions
diff --git a/scene/2d/canvas_item.h b/scene/2d/canvas_item.h index 7849a66185..58397c1fb0 100644 --- a/scene/2d/canvas_item.h +++ b/scene/2d/canvas_item.h @@ -193,7 +193,7 @@ public: void update(); - void set_blend_mode(BlendMode p_blend_mode); + virtual void set_blend_mode(BlendMode p_blend_mode); BlendMode get_blend_mode() const; virtual void set_light_mask(int p_light_mask); diff --git a/scene/2d/tile_map.cpp b/scene/2d/tile_map.cpp index 1a4f88c30e..cc904e4d04 100644 --- a/scene/2d/tile_map.cpp +++ b/scene/2d/tile_map.cpp @@ -352,6 +352,7 @@ void TileMap::_update_dirty_quadrants() { xform.set_origin( q.pos ); vs->canvas_item_set_transform( canvas_item, xform ); vs->canvas_item_set_light_mask(canvas_item,get_light_mask()); + vs->canvas_item_set_blend_mode(canvas_item,VS::MaterialBlendMode(get_blend_mode())); q.canvas_items.push_back(canvas_item); @@ -1190,6 +1191,14 @@ void TileMap::set_light_mask(int p_light_mask) { } } +void TileMap::set_blend_mode(BlendMode p_blend_mode) { + + CanvasItem::set_blend_mode(p_blend_mode); + _recreate_quadrants(); + +} + + void TileMap::_bind_methods() { diff --git a/scene/2d/tile_map.h b/scene/2d/tile_map.h index b48fdde43f..7501d49aa5 100644 --- a/scene/2d/tile_map.h +++ b/scene/2d/tile_map.h @@ -255,6 +255,8 @@ public: void set_occluder_light_mask(int p_mask); int get_occluder_light_mask() const; + void set_blend_mode(BlendMode p_blend_mode); + virtual void set_light_mask(int p_light_mask); void clear(); |