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);