Search in sources :

Example 11 with Rect2i

use of org.terasology.math.geom.Rect2i in project Terasology by MovingBlocks.

the class CanvasImpl method drawTextureRaw.

@Override
public void drawTextureRaw(TextureRegion texture, Rect2i region, Color color, ScaleMode mode, float ux, float uy, float uw, float uh) {
    if (!state.cropRegion.overlaps(relativeToAbsolute(region))) {
        return;
    }
    Rect2i absoluteRegion = relativeToAbsolute(region);
    Rect2i cropRegion = absoluteRegion.intersect(state.cropRegion);
    if (!cropRegion.isEmpty()) {
        if (state.drawOnTop) {
            drawOnTopOperations.add(new DrawTextureOperation(texture, color, mode, absoluteRegion, cropRegion, ux, uy, uw, uh, state.getAlpha()));
        } else {
            renderer.drawTexture(texture, color, mode, absoluteRegion, ux, uy, uw, uh, state.getAlpha());
        }
    }
}
Also used : Rect2i(org.terasology.math.geom.Rect2i)

Example 12 with Rect2i

use of org.terasology.math.geom.Rect2i in project Terasology by MovingBlocks.

the class CanvasImpl method drawBackground.

@Override
public void drawBackground() {
    Rect2i region = applyStyleToSize(getRegion());
    drawBackground(region);
}
Also used : Rect2i(org.terasology.math.geom.Rect2i)

Example 13 with Rect2i

use of org.terasology.math.geom.Rect2i in project Terasology by MovingBlocks.

the class CanvasImpl method drawWidget.

@Override
public void drawWidget(UIWidget element, Rect2i region) {
    if (element == null || !element.isVisible()) {
        return;
    }
    if (nuiManager.getFocus() == element) {
        focusDrawn = true;
    }
    String family = (element.getFamily() != null) ? element.getFamily() : state.family;
    UISkin skin = (element.getSkin() != null) ? element.getSkin() : state.skin;
    UIStyle newStyle = skin.getStyleFor(family, element.getClass(), UIWidget.BASE_PART, element.getMode());
    Rect2i regionArea;
    try (SubRegion ignored = subRegionForWidget(element, region, false)) {
        regionArea = applyStyleToSize(region, newStyle, calculateMaximumSize(element));
    }
    try (SubRegion ignored = subRegionForWidget(element, regionArea, false)) {
        if (element.isSkinAppliedByCanvas()) {
            drawBackground();
            try (SubRegion withMargin = subRegionForWidget(element, newStyle.getMargin().shrink(Rect2i.createFromMinAndSize(Vector2i.zero(), regionArea.size())), false)) {
                drawStyledWidget(element);
            }
        } else {
            drawStyledWidget(element);
        }
    }
}
Also used : Rect2i(org.terasology.math.geom.Rect2i) UISkin(org.terasology.rendering.nui.skin.UISkin) UIStyle(org.terasology.rendering.nui.skin.UIStyle) SubRegion(org.terasology.rendering.nui.SubRegion)

Example 14 with Rect2i

use of org.terasology.math.geom.Rect2i in project Terasology by MovingBlocks.

the class MigLayout method onDraw.

@Override
public void onDraw(Canvas canvas) {
    int[] bounds = { 0, 0, canvas.size().x, canvas.size().y };
    layoutContainer(canvas, bounds);
    for (ComponentWrapper wrapper : wrappers.values()) {
        UIWidget component = (UIWidget) wrapper.getComponent();
        Rect2i region = Rect2i.createFromMinAndSize(wrapper.getX(), wrapper.getY(), wrapper.getWidth(), wrapper.getHeight());
        canvas.drawWidget(component, region);
    }
    if (debug) {
        grid.paintDebug();
    }
    for (Rect2i region : debugRects) {
        canvas.drawLine(region.minX(), region.minY(), region.maxX(), region.minY(), Color.WHITE);
        canvas.drawLine(region.maxX(), region.minY(), region.maxX(), region.maxY(), Color.WHITE);
        canvas.drawLine(region.maxX(), region.maxY(), region.minX(), region.maxY(), Color.WHITE);
        canvas.drawLine(region.minX(), region.maxY(), region.minX(), region.minY(), Color.WHITE);
    }
}
Also used : Rect2i(org.terasology.math.geom.Rect2i) ComponentWrapper(net.miginfocom.layout.ComponentWrapper) UIWidget(org.terasology.rendering.nui.UIWidget)

Example 15 with Rect2i

use of org.terasology.math.geom.Rect2i in project Terasology by MovingBlocks.

the class RelativeLayout method getTargetRegion.

private Rect2i getTargetRegion(String id, Canvas canvas) {
    if (id != null && !id.isEmpty()) {
        if (loopDetectionId.equals(id)) {
            logger.warn("Infinite loop detected resolving layout of element {}", loopDetectionId);
            loopDetectionId = "";
            return canvas.getRegion();
        } else if (loopDetectionId.isEmpty()) {
            loopDetectionId = id;
        }
        WidgetInfo target = contentLookup.get(id);
        if (target != null) {
            Rect2i region = getRegion(target, canvas);
            loopDetectionId = "";
            return region;
        }
    }
    loopDetectionId = "";
    return canvas.getRegion();
}
Also used : Rect2i(org.terasology.math.geom.Rect2i)

Aggregations

Rect2i (org.terasology.math.geom.Rect2i)59 Vector2i (org.terasology.math.geom.Vector2i)13 SubRegion (org.terasology.rendering.nui.SubRegion)8 BaseVector2i (org.terasology.math.geom.BaseVector2i)7 Font (org.terasology.rendering.assets.font.Font)5 LayoutHint (org.terasology.rendering.nui.LayoutHint)5 SurfaceHeightFacet (org.terasology.world.generation.facets.SurfaceHeightFacet)4 ByteBuffer (java.nio.ByteBuffer)3 List (java.util.List)3 Color (org.terasology.rendering.nui.Color)3 BufferedImage (java.awt.image.BufferedImage)2 Test (org.junit.Test)2 UIWidget (org.terasology.rendering.nui.UIWidget)2 FallbackParagraphRenderStyle (org.terasology.rendering.nui.widgets.browser.ui.style.FallbackParagraphRenderStyle)2 ParagraphRenderStyle (org.terasology.rendering.nui.widgets.browser.ui.style.ParagraphRenderStyle)2 Maps (com.google.common.collect.Maps)1 Sets (com.google.common.collect.Sets)1 TIntList (gnu.trove.list.TIntList)1 Graphics2D (java.awt.Graphics2D)1 DataBufferInt (java.awt.image.DataBufferInt)1