Top Description Fields Constructors Methods
org.lwjgl.util.yoga

public Class Yoga

extends Object
Class Inheritance
Imports
javax.annotation.*, java.nio.*, org.lwjgl.*, org.lwjgl.system.*

Native bindings to Yoga.

Yoga is an open-source, cross-platform layout library that implements Flexbox. Yoga’s focus is on creating an expressive layout library, not implementing all of CSS. Therefore, there are no plans to include support for tables, floats, or similar CSS concepts. Yoga also does not support styling properties that have no impact on layout, such as color or background properties.

Yoga vs Flexbox

Yoga aims to be compatible with Flexbox according to the w3 specification. However, Yoga was not developed to strictly adhere to the specification; thus, there are aspects where Yoga differs.

Default values

Yoga has chosen to change the default values of some properties to better fit mobile layout use cases. The following CSS block describes the differences in default values from the Flexbox w3 specification:


div {
  box-sizing: border-box;
  position: relative;

  display: flex;
  flex-direction: column;
  align-items: stretch;
  flex-shrink: 0;
  align-content: flex-start;

  border-width: 0px;
  margin: 0px;
  padding: 0px;
  min-width: 0px;
}

Right-to-Left

We believe that Right-to-Left (RTL) should be a first class citizen when it comes to layout. Therefore, Yoga implements non-standard RTL support for margin, padding, border, and position properties. This enables specifying these properties as start instead of left and end instead of right.

Yoga-specific properties

The goal of Yoga is to be a library which makes layout easy. Of course, implementing Flexbox, a common and well-liked system, helps meet this goal. However, there are areas where we think Yoga can evolve beyond Flexbox and provide developers with tools not included in the Flexbox w3 specification. Currently Yoga has added one such property, AspectRatio, to solve a common problem we saw in many UIs.

Field Summary

Modifier and TypeField and Description
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
YGDisplayFlex

YGDisplay Enum values:

public static final int
YGDisplayNone

YGDisplay Enum values:

public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final float
public static final int
public static final int
public static final int
public static final int
public static final YGValue
public static final YGValue
public static final YGValue
public static final int
public static final int
public static final int

Constructor Summary

AccessConstructor and Description
protected
Yoga()

Method Summary

Modifier and TypeMethod and Description
public static native long
nYGAlignToString(int value)

Unsafe version of: AlignToString

public static native void
nYGAssert(boolean condition, long message)

public static native void
nYGAssertWithConfig(long config, boolean condition, long message)

public static native void
nYGAssertWithNode(long node, boolean condition, long message)

public static native void
nYGConfigCopy(long dest, long src)

public static native void
nYGConfigFree(long config)

public static native long
nYGConfigGetContext(long config)

public static native int
nYGConfigGetErrata(long config)

public static native float
public static native boolean
public static native boolean
public static native void
nYGConfigSetCloneNodeFunc(long config, long callback)

public static native void
nYGConfigSetContext(long config, long context)

public static native void
nYGConfigSetErrata(long config, int errata)

public static native void
nYGConfigSetExperimentalFeatureEnabled(long config, int feature, boolean enabled)

Unsafe version of: ConfigSetExperimentalFeatureEnabled

public static native void
nYGConfigSetLogger(long config, long logger)

public static native void
nYGConfigSetPointScaleFactor(long config, float pixelsInPoint)

Unsafe version of: ConfigSetPointScaleFactor

public static native void
nYGConfigSetPrintTreeFlag(long config, boolean enabled)

public static native void
nYGConfigSetUseWebDefaults(long config, boolean enabled)

Unsafe version of: ConfigSetUseWebDefaults

public static native long
nYGDimensionToString(int value)

Unsafe version of: DimensionToString

public static native long
nYGDirectionToString(int value)

Unsafe version of: DirectionToString

public static native long
nYGDisplayToString(int value)

Unsafe version of: DisplayToString

public static native long
nYGEdgeToString(int value)

Unsafe version of: EdgeToString

public static native long
public static native long
nYGFlexDirectionToString(int value)

Unsafe version of: FlexDirectionToString

public static native long
nYGGutterToString(int value)

Unsafe version of: GutterToString

public static native long
nYGJustifyToString(int value)

Unsafe version of: JustifyToString

public static native long
nYGLogLevelToString(int value)

Unsafe version of: LogLevelToString

public static native long
nYGMeasureModeToString(int value)

Unsafe version of: MeasureModeToString

public static native void
nYGNodeCalculateLayout(long node, float availableWidth, float availableHeight, int ownerDirection)

Unsafe version of: NodeCalculateLayout

public static native boolean
nYGNodeCanUseCachedMeasurement(int widthMode, float width, int heightMode, float height, int lastWidthMode, float lastWidth, int lastHeightMode, float lastHeight, float lastComputedWidth, float lastComputedHeight, float marginRow, float marginColumn, long config)

Unsafe version of: NodeCanUseCachedMeasurement

public static native long
nYGNodeClone(long node)

public static native void
nYGNodeCopyStyle(long dstNode, long srcNode)

public static native void
nYGNodeFree(long node)

public static native void
public static native void
nYGNodeFreeRecursiveWithCleanupFunc(long node, long cleanup)

public static native long
nYGNodeGetChild(long node, int index)

public static native int
public static native long
nYGNodeGetConfig(long node)

public static native long
nYGNodeGetContext(long node)

public static native long
public static native boolean
public static native int
nYGNodeGetNodeType(long node)

public static native long
nYGNodeGetOwner(long node)

public static native long
nYGNodeGetParent(long node)

public static native boolean
public static native boolean
public static native void
nYGNodeInsertChild(long node, long child, int index)

public static native boolean
nYGNodeIsDirty(long node)

public static native boolean
public static native float
nYGNodeLayoutGetBorder(long node, int edge)

Unsafe version of: NodeLayoutGetBorder

public static native float
public static native int
public static native boolean
public static native float
public static native float
public static native float
nYGNodeLayoutGetMargin(long node, int edge)

Unsafe version of: NodeLayoutGetMargin

public static native float
nYGNodeLayoutGetPadding(long node, int edge)

Unsafe version of: NodeLayoutGetPadding

public static native float
public static native float
public static native float
public static native void
nYGNodeMarkDirty(long node)

Unsafe version of: NodeMarkDirty

public static native void
public static native long
nYGNodeNewWithConfig(long config)

public static native void
public static native void
nYGNodeRemoveChild(long node, long child)

public static native void
nYGNodeReset(long node)

public static native void
nYGNodeSetBaselineFunc(long node, long baselineFunc)

public static native void
nYGNodeSetChildren(long owner, long children, int count)

public static native void
nYGNodeSetConfig(long node, long config)

public static native void
nYGNodeSetContext(long node, long context)

public static native void
nYGNodeSetDirtiedFunc(long node, long dirtiedFunc)

public static native void
nYGNodeSetHasNewLayout(long node, boolean hasNewLayout)

public static native void
nYGNodeSetIsReferenceBaseline(long node, boolean isReferenceBaseline)

public static native void
nYGNodeSetMeasureFunc(long node, long measureFunc)

public static native void
nYGNodeSetNodeType(long node, int nodeType)

public static native void
nYGNodeSetPrintFunc(long node, long printFunc)

public static native int
public static native int
public static native int
public static native float
public static native float
nYGNodeStyleGetBorder(long node, int edge)

Unsafe version of: NodeStyleGetBorder

public static native int
public static native int
public static native float
public static native void
nYGNodeStyleGetFlexBasis(long node, long __result)

public static native int
public static native float
public static native float
public static native int
public static native float
nYGNodeStyleGetGap(long node, int gutter)

Unsafe version of: NodeStyleGetGap

public static native void
nYGNodeStyleGetHeight(long node, long __result)

public static native int
public static native void
nYGNodeStyleGetMargin(long node, int edge, long __result)

Unsafe version of: NodeStyleGetMargin

public static native void
nYGNodeStyleGetMaxHeight(long node, long __result)

public static native void
nYGNodeStyleGetMaxWidth(long node, long __result)

public static native void
nYGNodeStyleGetMinHeight(long node, long __result)

public static native void
nYGNodeStyleGetMinWidth(long node, long __result)

public static native int
public static native void
nYGNodeStyleGetPadding(long node, int edge, long __result)

Unsafe version of: NodeStyleGetPadding

public static native void
nYGNodeStyleGetPosition(long node, int edge, long __result)

Unsafe version of: NodeStyleGetPosition

public static native int
public static native void
nYGNodeStyleGetWidth(long node, long __result)

public static native void
nYGNodeStyleSetAlignContent(long node, int alignContent)

Unsafe version of: NodeStyleSetAlignContent

public static native void
nYGNodeStyleSetAlignItems(long node, int alignItems)

Unsafe version of: NodeStyleSetAlignItems

public static native void
nYGNodeStyleSetAlignSelf(long node, int alignSelf)

Unsafe version of: NodeStyleSetAlignSelf

public static native void
nYGNodeStyleSetAspectRatio(long node, float aspectRatio)

Unsafe version of: NodeStyleSetAspectRatio

public static native void
nYGNodeStyleSetBorder(long node, int edge, float border)

Unsafe version of: NodeStyleSetBorder

public static native void
nYGNodeStyleSetDirection(long node, int direction)

Unsafe version of: NodeStyleSetDirection

public static native void
nYGNodeStyleSetDisplay(long node, int display)

Unsafe version of: NodeStyleSetDisplay

public static native void
nYGNodeStyleSetFlex(long node, float flex)

public static native void
nYGNodeStyleSetFlexBasis(long node, float flexBasis)

public static native void
public static native void
nYGNodeStyleSetFlexBasisPercent(long node, float flexBasis)

public static native void
nYGNodeStyleSetFlexDirection(long node, int flexDirection)

Unsafe version of: NodeStyleSetFlexDirection

public static native void
nYGNodeStyleSetFlexGrow(long node, float flexGrow)

public static native void
nYGNodeStyleSetFlexShrink(long node, float flexShrink)

public static native void
nYGNodeStyleSetFlexWrap(long node, int flexWrap)

Unsafe version of: NodeStyleSetFlexWrap

public static native void
nYGNodeStyleSetGap(long node, int gutter, float gapLength)

Unsafe version of: NodeStyleSetGap

public static native void
nYGNodeStyleSetHeight(long node, float height)

public static native void
public static native void
nYGNodeStyleSetHeightPercent(long node, float height)

public static native void
nYGNodeStyleSetJustifyContent(long node, int justifyContent)

Unsafe version of: NodeStyleSetJustifyContent

public static native void
nYGNodeStyleSetMargin(long node, int edge, float margin)

Unsafe version of: NodeStyleSetMargin

public static native void
nYGNodeStyleSetMarginAuto(long node, int edge)

Unsafe version of: NodeStyleSetMarginAuto

public static native void
nYGNodeStyleSetMarginPercent(long node, int edge, float margin)

Unsafe version of: NodeStyleSetMarginPercent

public static native void
nYGNodeStyleSetMaxHeight(long node, float maxHeight)

public static native void
nYGNodeStyleSetMaxHeightPercent(long node, float maxHeight)

public static native void
nYGNodeStyleSetMaxWidth(long node, float maxWidth)

public static native void
nYGNodeStyleSetMaxWidthPercent(long node, float maxWidth)

public static native void
nYGNodeStyleSetMinHeight(long node, float minHeight)

public static native void
nYGNodeStyleSetMinHeightPercent(long node, float minHeight)

public static native void
nYGNodeStyleSetMinWidth(long node, float minWidth)

public static native void
nYGNodeStyleSetMinWidthPercent(long node, float minWidth)

public static native void
nYGNodeStyleSetOverflow(long node, int overflow)

Unsafe version of: NodeStyleSetOverflow

public static native void
nYGNodeStyleSetPadding(long node, int edge, float padding)

Unsafe version of: NodeStyleSetPadding

public static native void
nYGNodeStyleSetPaddingPercent(long node, int edge, float padding)

Unsafe version of: NodeStyleSetPaddingPercent

public static native void
nYGNodeStyleSetPosition(long node, int edge, float position)

Unsafe version of: NodeStyleSetPosition

public static native void
nYGNodeStyleSetPositionPercent(long node, int edge, float position)

Unsafe version of: NodeStyleSetPositionPercent

public static native void
nYGNodeStyleSetPositionType(long node, int positionType)

Unsafe version of: NodeStyleSetPositionType

public static native void
nYGNodeStyleSetWidth(long node, float width)

public static native void
public static native void
nYGNodeStyleSetWidthPercent(long node, float width)

public static native void
nYGNodeSwapChild(long node, long child, int index)

public static native long
nYGNodeTypeToString(int value)

Unsafe version of: NodeTypeToString

public static native long
nYGOverflowToString(int value)

Unsafe version of: OverflowToString

public static native long
nYGPositionTypeToString(int value)

Unsafe version of: PositionTypeToString

public static native long
nYGUnitToString(int value)

Unsafe version of: UnitToString

private static native void
nYGValueAuto(long __result)

private static native void
nYGValueUndefined(long __result)

private static native void
nYGValueZero(long __result)

public static native long
nYGWrapToString(int value)

Unsafe version of: WrapToString

public static String
public static void
YGAssert(boolean condition, ByteBuffer message)

public static void
YGAssert(boolean condition, CharSequence message)

public static void
YGAssertWithConfig(long config, boolean condition, ByteBuffer message)

public static void
YGAssertWithConfig(long config, boolean condition, CharSequence message)

public static void
YGAssertWithNode(long node, boolean condition, ByteBuffer message)

public static void
YGAssertWithNode(long node, boolean condition, CharSequence message)

public static void
YGConfigCopy(long dest, long src)

public static void
YGConfigFree(long config)

public static long
YGConfigGetContext(long config)

public static native long
public static int
YGConfigGetErrata(long config)

public static native int
public static float
public static boolean
public static boolean
public static native long
public static void
public static void
YGConfigSetContext(long config, long context)

public static void
YGConfigSetErrata(long config, int errata)

public static void
public static void
YGConfigSetLogger(long config, YGLoggerI logger)

public static void
YGConfigSetPointScaleFactor(long config, float pixelsInPoint)

Set this to number of pixels in 1 point to round calculation results.

public static void
YGConfigSetPrintTreeFlag(long config, boolean enabled)

public static void
YGConfigSetUseWebDefaults(long config, boolean enabled)

Using the web defaults is the preferred configuration for new projects.

public static String
public static String
public static String
public static String
public static String
public static String
public static native boolean
YGFloatIsUndefined(float value)

public static String
public static String
public static String
public static String
public static void
YGNodeCalculateLayout(long node, float availableWidth, float availableHeight, int ownerDirection)

public static boolean
YGNodeCanUseCachedMeasurement(int widthMode, float width, int heightMode, float height, int lastWidthMode, float lastWidth, int lastHeightMode, float lastHeight, float lastComputedWidth, float lastComputedHeight, float marginRow, float marginColumn, long config)

public static long
YGNodeClone(long node)

public static void
YGNodeCopyStyle(long dstNode, long srcNode)

public static void
YGNodeFree(long node)

public static void
public static void
public static long
YGNodeGetChild(long node, int index)

public static int
public static long
YGNodeGetConfig(long node)

public static long
YGNodeGetContext(long node)

public static YGDirtiedFunc
public static boolean
public static int
YGNodeGetNodeType(long node)

public static long
YGNodeGetOwner(long node)

public static long
YGNodeGetParent(long node)

public static boolean
public static boolean
public static void
YGNodeInsertChild(long node, long child, int index)

public static boolean
YGNodeIsDirty(long node)

public static boolean
public static float
YGNodeLayoutGetBorder(long node, int edge)

Gets the computed value for this nodes after performing layout.

public static float
public static int
public static boolean
public static float
public static float
public static float
YGNodeLayoutGetMargin(long node, int edge)

Gets the computed value for this nodes after performing layout.

public static float
YGNodeLayoutGetPadding(long node, int edge)

Gets the computed value for this nodes after performing layout.

public static float
public static float
YGNodeLayoutGetTop(long node)

public static float
public static void
YGNodeMarkDirty(long node)

Marks a node as dirty.

public static void
YGNodeMarkDirtyAndPropagateToDescendants(long node)

Marks the current node and all its descendants as dirty.

public static native long
public static long
YGNodeNewWithConfig(long config)

public static void
public static void
YGNodeRemoveChild(long node, long child)

public static void
YGNodeReset(long node)

public static void
YGNodeSetBaselineFunc(long node, YGBaselineFuncI baselineFunc)

public static void
YGNodeSetChildren(long owner, PointerBuffer children)

public static void
YGNodeSetConfig(long node, long config)

public static void
YGNodeSetContext(long node, long context)

public static void
YGNodeSetDirtiedFunc(long node, YGDirtiedFuncI dirtiedFunc)

public static void
YGNodeSetHasNewLayout(long node, boolean hasNewLayout)

public static void
YGNodeSetIsReferenceBaseline(long node, boolean isReferenceBaseline)

public static void
YGNodeSetMeasureFunc(long node, YGMeasureFuncI measureFunc)

public static void
YGNodeSetNodeType(long node, int nodeType)

public static void
YGNodeSetPrintFunc(long node, YGPrintFuncI printFunc)

public static int
public static int
public static int
public static float
public static float
public static int
public static int
public static float
YGNodeStyleGetFlex(long node)

public static YGValue
YGNodeStyleGetFlexBasis(long node, YGValue __result)

public static int
public static float
public static float
public static int
public static float
public static YGValue
YGNodeStyleGetHeight(long node, YGValue __result)

public static int
public static YGValue
public static YGValue
YGNodeStyleGetMaxHeight(long node, YGValue __result)

public static YGValue
YGNodeStyleGetMaxWidth(long node, YGValue __result)

public static YGValue
YGNodeStyleGetMinHeight(long node, YGValue __result)

public static YGValue
YGNodeStyleGetMinWidth(long node, YGValue __result)

public static int
public static YGValue
public static YGValue
public static int
public static YGValue
YGNodeStyleGetWidth(long node, YGValue __result)

public static void
public static void
public static void
public static void
YGNodeStyleSetAspectRatio(long node, float aspectRatio)

Aspect ratio controls the size of the undefined dimension of a node.

public static void
public static void
public static void
YGNodeStyleSetDisplay(long node, int display)

public static void
YGNodeStyleSetFlex(long node, float flex)

public static void
YGNodeStyleSetFlexBasis(long node, float flexBasis)

public static void
public static void
YGNodeStyleSetFlexBasisPercent(long node, float flexBasis)

public static void
public static void
YGNodeStyleSetFlexGrow(long node, float flexGrow)

public static void
YGNodeStyleSetFlexShrink(long node, float flexShrink)

public static void
public static void
YGNodeStyleSetGap(long node, int gutter, float gapLength)

public static void
YGNodeStyleSetHeight(long node, float height)

public static void
public static void
YGNodeStyleSetHeightPercent(long node, float height)

public static void
public static void
public static void
public static void
public static void
YGNodeStyleSetMaxHeight(long node, float maxHeight)

public static void
YGNodeStyleSetMaxHeightPercent(long node, float maxHeight)

public static void
YGNodeStyleSetMaxWidth(long node, float maxWidth)

public static void
YGNodeStyleSetMaxWidthPercent(long node, float maxWidth)

public static void
YGNodeStyleSetMinHeight(long node, float minHeight)

public static void
YGNodeStyleSetMinHeightPercent(long node, float minHeight)

public static void
YGNodeStyleSetMinWidth(long node, float minWidth)

public static void
YGNodeStyleSetMinWidthPercent(long node, float minWidth)

public static void
public static void
public static void
public static void
public static void
public static void
public static void
YGNodeStyleSetWidth(long node, float width)

public static void
public static void
YGNodeStyleSetWidthPercent(long node, float width)

public static void
YGNodeSwapChild(long node, long child, int index)

public static String
public static String
public static String
public static native float
YGRoundValueToPixelGrid(double value, double pointScaleFactor, boolean forceCeil, boolean forceFloor)

public static String
private static YGValue
YGValueAuto(YGValue __result)

private static YGValue
private static YGValue
YGValueZero(YGValue __result)

public static String
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait