Selaa lähdekoodia

Added Set/Get Use[Draw/Texture]Rect

Gauthier Billot 9 vuotta sitten
vanhempi
sitoutus
44224786d2

+ 31 - 4
Source/Urho3D/Urho2D/StaticSprite2D.cpp

@@ -91,15 +91,21 @@ void StaticSprite2D::SetSprite(Sprite2D* sprite)
 void StaticSprite2D::SetDrawRect(const Rect& rect)
 void StaticSprite2D::SetDrawRect(const Rect& rect)
 {
 {
     drawRect_ = rect;
     drawRect_ = rect;
-    useDrawRect_ = true;
-    sourceBatchesDirty_ = true;
+
+    if(useDrawRect_)
+    {
+        sourceBatchesDirty_ = true;
+    }
 }
 }
 
 
 void StaticSprite2D::SetTextureRect(const Rect& rect)
 void StaticSprite2D::SetTextureRect(const Rect& rect)
 {
 {
     textureRect_ = rect;
     textureRect_ = rect;
-    useTextureRect_ = true;
-    sourceBatchesDirty_ = true;
+
+    if(useTextureRect_)
+    {
+        sourceBatchesDirty_ = true;
+    }
 }
 }
 
 
 void StaticSprite2D::SetBlendMode(BlendMode blendMode)
 void StaticSprite2D::SetBlendMode(BlendMode blendMode)
@@ -166,6 +172,27 @@ void StaticSprite2D::SetUseHotSpot(bool useHotSpot)
     UpdateDrawRect();
     UpdateDrawRect();
 }
 }
 
 
+void StaticSprite2D::SetUseDrawRect(bool useDrawRect)
+{
+    if (useDrawRect == useDrawRect_)
+        return;
+
+    useDrawRect_ = useDrawRect;
+    sourceBatchesDirty_ = true;
+    MarkNetworkUpdate();
+    UpdateDrawRect();
+}
+
+void StaticSprite2D::SetUseTextureRect(bool useTextureRect)
+{
+    if (useTextureRect == useTextureRect_)
+        return;
+
+    useTextureRect_ = useTextureRect;
+    sourceBatchesDirty_ = true;
+    MarkNetworkUpdate();
+}
+
 void StaticSprite2D::SetHotSpot(const Vector2& hotspot)
 void StaticSprite2D::SetHotSpot(const Vector2& hotspot)
 {
 {
     if (hotspot == hotSpot_)
     if (hotspot == hotSpot_)

+ 10 - 0
Source/Urho3D/Urho2D/StaticSprite2D.h

@@ -62,6 +62,10 @@ public:
     void SetAlpha(float alpha);
     void SetAlpha(float alpha);
     /// Set use hot spot.
     /// Set use hot spot.
     void SetUseHotSpot(bool useHotSpot);
     void SetUseHotSpot(bool useHotSpot);
+    /// Set use draw rectangle.
+    void SetUseDrawRect(bool useDrawRect);
+    /// Set use texture rectangle.
+    void SetUseTextureRect(bool useTextureRect);
     /// Set hot spot.
     /// Set hot spot.
     void SetHotSpot(const Vector2& hotspot);
     void SetHotSpot(const Vector2& hotspot);
     /// Set custom material.
     /// Set custom material.
@@ -94,6 +98,12 @@ public:
     /// Return use hot spot.
     /// Return use hot spot.
     bool GetUseHotSpot() const { return useHotSpot_; }
     bool GetUseHotSpot() const { return useHotSpot_; }
 
 
+    /// Return use draw rect.
+    bool GetUseDrawRect() const { return useDrawRect_; }
+
+    /// Return use draw rect.
+    bool GetUseTextureRect() const { return useTextureRect_; }
+
     /// Return hot spot.
     /// Return hot spot.
     const Vector2& GetHotSpot() const { return hotSpot_; }
     const Vector2& GetHotSpot() const { return hotSpot_; }