Java源码示例:net.minecraftforge.client.model.pipeline.IVertexConsumer

示例1
@Override
public void pipe(IVertexConsumer consumer) {
    if (consumer instanceof ISmartVertexConsumer) {
        ((ISmartVertexConsumer) consumer).put(this);
    } else {
        consumer.setQuadTint(tintIndex);
        consumer.setQuadOrientation(orientation);
        consumer.setApplyDiffuseLighting(diffuseLighting);
        consumer.setTexture(sprite);
        for (Vertex v : vertices) {
            for (int e = 0; e < format.elementCount; e++) {
                consumer.put(e, v.raw[e]);
            }
        }
    }
}
 
示例2
/**
 * Call when you are ready to use the pipeline.
 * This builds the internal state of the Elements getting things ready to transform.
 *
 * @param collector The IVertexConsumer that should collect the transformed quad.
 */
public void prepare(IVertexConsumer collector) {
    IPipelineConsumer next = null;
    for (PipelineElement<?> element : elements) {
        if (element.isEnabled) {
            if (first == null) {
                first = element.consumer;
            } else {
                next.setParent(element.consumer);
            }
            next = element.consumer;
        }
    }
    next.setParent(collector);
}
 
示例3
public QuadTransformer(IVertexConsumer consumer) {
    this(consumer.getVertexFormat(), consumer);
}
 
示例4
public QuadTransformer(VertexFormat format, IVertexConsumer consumer) {
    this(CachedFormat.lookup(format), consumer);
}
 
示例5
public QuadTransformer(CachedFormat format, IVertexConsumer consumer) {
    this.format = format;
    this.consumer = consumer;
    quad = new Quad(format);
}
 
示例6
@Override
public void setParent(IVertexConsumer parent) {
    consumer = parent;
}
 
示例7
public QuadClamper(IVertexConsumer parent, AxisAlignedBB bounds) {
    super(parent);
    clampBounds = bounds;
}
 
示例8
public QuadTinter(IVertexConsumer consumer, int tint) {
    super(consumer);
    this.tint = tint;
}
 
示例9
public QuadAlphaOverride(IVertexConsumer consumer, float alphaOverride) {
    super(consumer);
    this.alphaOverride = alphaOverride;
}
 
示例10
public QuadFaceStripper(IVertexConsumer parent, AxisAlignedBB bounds, int mask) {
    super(parent);
    this.bounds = bounds;
    this.mask = mask;
}
 
示例11
/**
 * Sets the parent consumer.
 * This consumer may choose to not pipe any data,
 * that's fine, but if it does, it MUST pipe the data to the one provided here.
 *
 * @param parent The parent.
 */
void setParent(IVertexConsumer parent);