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:
committed by
Facebook Github Bot
parent
ab595d1875
commit
cd78291de5
@@ -9,7 +9,7 @@
|
||||
|
||||
namespace Facebook.Yoga
|
||||
{
|
||||
public delegate long MeasureFunction(
|
||||
public delegate YogaSize MeasureFunction(
|
||||
YogaNode node,
|
||||
float width,
|
||||
YogaMeasureMode widthMode,
|
||||
|
@@ -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};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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 =
|
||||
|
@@ -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]
|
||||
|
Reference in New Issue
Block a user