Skip navigation links

@NonnullDefault

Package org.lwjgl.util.yoga

Contains bindings to Yoga.

See: Description

Package org.lwjgl.util.yoga Description

Contains bindings to Yoga.

Yoga is a cross-platform layout engine enabling maximum collaboration within your team by implementing an API familiar to many designers and opening it up to developers across different platforms.

LWJGL implementation

Unlike the official Yoga Java bindings, the LWJGL bindings directly expose the native C API. YGNodeRef handles do not need to be wrapped in Java instances, so there is no memory overhead. The internal Yoga structs are also exposed, which makes it very efficient to read the current tree layout after a call to NodeCalculateLayout:


 // Public API, 4x JNI call overhead
 float l = YGNodeLayoutGetLeft(node);
 float t = YGNodeLayoutGetTop(node);
 float w = YGNodeLayoutGetWidth(node);
 float h = YGNodeLayoutGetHeight(node);
 
 // Internal API without overhead (plain memory accesses, assuming allocations are eliminated via EA)
 YGLayout layout = YGNode.create(node).layout();
 
 float l = layout.positions(YGEdgeLeft);
 float t = layout.positions(YGEdgeTop);
 float w = layout.dimensions(YGDimensionWidth);
 float h = layout.dimensions(YGDimensionHeight);
Skip navigation links

Copyright LWJGL. All Rights Reserved. License terms.