summaryrefslogtreecommitdiff
path: root/scene
diff options
context:
space:
mode:
authorOvnuniarchos <pujalte.jorge@gmail.com>2016-11-22 01:35:34 +0100
committerOvnuniarchos <pujalte.jorge@gmail.com>2016-11-24 21:28:10 +0100
commite07dd9ab324ea376cda3f2a4e6f4b804dbc52042 (patch)
tree46961d624766f34026da3c716c462af918fd8c77 /scene
parent9e2d09f580c319e511d3a816bba8a54138a4bcd1 (diff)
TileMap now honors blending mode.
Diffstat (limited to 'scene')
-rw-r--r--scene/2d/canvas_item.h2
-rw-r--r--scene/2d/tile_map.cpp9
-rw-r--r--scene/2d/tile_map.h2
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();