C# use YogaSize throughout the measure call chain

Summary:
Java still has the same problem (see #296)

Also there is no need to have double in the method signature as we only use float internally, which could confuse some.
Closes https://github.com/facebook/yoga/pull/300

Reviewed By: splhack

Differential Revision: D4365993

Pulled By: emilsjolander

fbshipit-source-id: 681f8b1725e63eddcfb9a6c756f2ae215a44425a
This commit is contained in:
Lukas Woehrl
2016-12-24 02:40:25 -08:00
committed by Facebook Github Bot
parent ab595d1875
commit cd78291de5
4 changed files with 6 additions and 22 deletions

View File

@@ -9,7 +9,7 @@
namespace Facebook.Yoga
{
public delegate long MeasureFunction(
public delegate YogaSize MeasureFunction(
YogaNode node,
float width,
YogaMeasureMode widthMode,

View File

@@ -11,24 +11,9 @@ namespace Facebook.Yoga
{
public class MeasureOutput
{
public static long Make(double width, double height)
public static YogaSize Make(float width, float height)
{
return Make((int) width, (int) height);
}
public static long Make(int width, int height)
{
return (long)(((ulong) width) << 32 | ((uint) height));
}
public static int GetWidth(long measureOutput)
{
return (int) (0xFFFFFFFF & (measureOutput >> 32));
}
public static int GetHeight(long measureOutput)
{
return (int) (0xFFFFFFFF & measureOutput);
return new YogaSize { width = width, height = height};
}
}
}

View File

@@ -532,8 +532,7 @@ namespace Facebook.Yoga
throw new InvalidOperationException("Measure function is not defined.");
}
long output = _measureFunction(this, width, widthMode, height, heightMode);
return new YogaSize { width = MeasureOutput.GetWidth(output), height = MeasureOutput.GetHeight(output) };
return _measureFunction(this, width, widthMode, height, heightMode);
}
public string Print(YogaPrintOptions options =

View File

@@ -169,8 +169,8 @@ namespace Facebook.Yoga
return MeasureOutput.Make(123.4f, 81.7f);
});
node.CalculateLayout();
Assert.AreEqual(123, node.LayoutWidth);
Assert.AreEqual(81, node.LayoutHeight);
Assert.AreEqual(123.4f, node.LayoutWidth);
Assert.AreEqual(81.7f, node.LayoutHeight);
}
[Test]