Browse Source

Merge branch 'master' into dev

# Conflicts:
#	oxygine/src/Actor.cpp
dmuratshin 10 năm trước cách đây
mục cha
commit
88ab5914a3

+ 17 - 3
oxygine/src/Actor.cpp

@@ -1267,10 +1267,10 @@ namespace oxygine
         }
     }
 
-    Vector2 convert_global2local_(Actor* child, Actor* parent, Vector2 pos)
+    Vector2 convert_global2local_(const Actor* child, const Actor* parent, Vector2 pos)
     {
         if (child->getParent() && child->getParent() != parent)
-            pos = convert_global2local(child->getParent(), parent, pos);
+            pos = convert_global2local_(child->getParent(), parent, pos);
         /*
         Actor *p = child->getParent();
         if (p && child != parent)
@@ -1285,7 +1285,7 @@ namespace oxygine
         return convert_global2local_(child.get(), parent.get(), pos);
     }
 
-    Vector2 convert_local2global_(Actor* child, Actor* parent, Vector2 pos)
+    Vector2 convert_local2global_(const Actor* child, const Actor* parent, Vector2 pos)
     {
         while (child && child != parent)
         {
@@ -1308,6 +1308,13 @@ namespace oxygine
         return convert_local2global(actor, root, pos);
     }
 
+    Vector2 convert_local2stage(const Actor* actor, const Vector2& pos, const Actor* root)
+    {
+        if (!root)
+            root = getStage().get();
+        return convert_local2global_(actor, root, pos);
+    }
+
     Vector2 convert_stage2local(spActor actor, const Vector2& pos, spActor root)
     {
         if (!root)
@@ -1315,6 +1322,13 @@ namespace oxygine
         return convert_global2local(actor, root, pos);
     }
 
+    Vector2 convert_stage2local(const Actor* actor, const Vector2& pos, const Actor* root)
+    {
+        if (!root)
+            root = getStage().get();
+        return convert_global2local_(actor, root, pos);
+    }
+
     Transform getGlobalTransform(spActor child, spActor parent)
     {
         Transform t;

+ 2 - 0
oxygine/src/Actor.h

@@ -385,7 +385,9 @@ namespace oxygine
     Vector2 convert_local2global(spActor child, spActor parent, const Vector2& pos);//deprecated, use convert_local2stage
 
     Vector2 convert_local2stage(spActor child, const Vector2& pos, spActor root = 0);
+    Vector2 convert_local2stage(const Actor* child, const Vector2& pos, const Actor* root = 0);
     Vector2 convert_stage2local(spActor child, const Vector2& pos, spActor root = 0);
+    Vector2 convert_stage2local(const Actor* child, const Vector2& pos, const Actor* root = 0);
 
     /**Deprecated*/
     inline Vector2 convert_local2root(spActor child, const Vector2& pos, spActor root = 0) { return convert_local2stage(child, pos, root); }

+ 1 - 0
oxygine/src/core/VideoDriver.h

@@ -48,6 +48,7 @@ namespace oxygine
             BT_DST_ALPHA,
             BT_DST_COLOR,
             BT_ONE_MINUS_DST_ALPHA,
+            BT_ONE_MINUS_DST_COLOR,
         };
 
         enum STATE

+ 2 - 0
oxygine/src/core/gl/VideoDriverGL.cpp

@@ -63,6 +63,8 @@ namespace oxygine
                 return GL_DST_ALPHA;
             case BT_ONE_MINUS_DST_ALPHA:
                 return GL_ONE_MINUS_DST_ALPHA;
+            case BT_ONE_MINUS_DST_COLOR:
+                return GL_ONE_MINUS_DST_COLOR;
         }
         OX_ASSERT(!"unknown blend");
         return GL_ONE;