Optimize GC for setting image.frame.
This commit is contained in:
@@ -56,7 +56,7 @@ namespace Cryville.Crtr.Components {
|
|||||||
|
|
||||||
public class SpritePlane : SpriteBase {
|
public class SpritePlane : SpriteBase {
|
||||||
public SpritePlane() {
|
public SpritePlane() {
|
||||||
SubmitProperty("frame", new PropOp.String(v => { Frames = new string[] { v }; Index = 0; }));
|
SubmitProperty("frame", new PropOp.String(v => Frame = v));
|
||||||
SubmitProperty("frames", new PropOp.StringArray(v => Frames = v));
|
SubmitProperty("frames", new PropOp.StringArray(v => Frames = v));
|
||||||
SubmitProperty("index", new PropOp.Integer(v => Index = v));
|
SubmitProperty("index", new PropOp.Integer(v => Index = v));
|
||||||
SubmitProperty("fit", new PropOp.Enum<FitMode>(v => Fit = v, v => (FitMode)v));
|
SubmitProperty("fit", new PropOp.Enum<FitMode>(v => Fit = v, v => (FitMode)v));
|
||||||
@@ -89,7 +89,7 @@ namespace Cryville.Crtr.Components {
|
|||||||
OnFrameUpdate();
|
OnFrameUpdate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SpriteInfo[] m_frames = new SpriteInfo[0];
|
SpriteInfo[] m_frames = new SpriteInfo[] { new SpriteInfo() };
|
||||||
public string[] Frames {
|
public string[] Frames {
|
||||||
set {
|
set {
|
||||||
m_frames = new SpriteInfo[value.Length];
|
m_frames = new SpriteInfo[value.Length];
|
||||||
@@ -99,6 +99,13 @@ namespace Cryville.Crtr.Components {
|
|||||||
OnFrameUpdate();
|
OnFrameUpdate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public string Frame {
|
||||||
|
set {
|
||||||
|
if (value == CurrentFrame.FrameName) return;
|
||||||
|
CurrentFrame.FrameName = value;
|
||||||
|
OnFrameUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
protected SpriteInfo CurrentFrame {
|
protected SpriteInfo CurrentFrame {
|
||||||
get {
|
get {
|
||||||
if (m_frames.Length == 0) return null;
|
if (m_frames.Length == 0) return null;
|
||||||
|
|||||||
Reference in New Issue
Block a user