Class AbstractEarsRenderDelegate<TPeer,TModelPart>
java.lang.Object
com.unascribed.ears.common.render.AbstractEarsRenderDelegate<TPeer,TModelPart>
- Type Parameters:
TPeer- the type of the "render peer"; usually something like AbstractClientPlayerTModelPart- the type of model parts; usually ModelPart (Yarn/Mojmap) or ModelRenderer (MCP)
- All Implemented Interfaces:
EarsRenderDelegate
- Direct Known Subclasses:
DirectEarsRenderDelegate,IndirectEarsRenderDelegate
public abstract class AbstractEarsRenderDelegate<TPeer,TModelPart>
extends Object
implements EarsRenderDelegate
Implements some basic shared render logic to reduce duplicated code.
It will handle managing render skipping, permitted body parts, stack over/underflow detection, tracking which texture is bound, and building quads with the right UVs.
A subclass should be used if possible. For "exotic" platforms (such as the Manipulator), consider implementing EarsRenderDelegate directly. AbstractEarsRenderDelegate and friends all make various assumptions that are only true within Minecraft itself.
- See Also:
-
Immediate, for versions with a broken Tesselator and no state or texture manager (e.g. Beta 1.7, 1.2.5)Unmanaged, for versions without a state manager or texture manager (e.g. 1.4, 1.5)PartiallyUnmanaged, for versions without a state manager (e.g. 1.6, 1.7)Direct, for versions with a state manager (e.g. 1.8, 1.12, 1.14)Indirect, for versions with the RenderLayer/VertexConsumerProvider abstraction (e.g. 1.15, 1.16)
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.unascribed.ears.common.render.EarsRenderDelegate
EarsRenderDelegate.BodyPart, EarsRenderDelegate.QuadGrow, EarsRenderDelegate.TexFlip, EarsRenderDelegate.TexRotation, EarsRenderDelegate.TexSource -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected EarsRenderDelegate.TexSourceprotected booleanprotected EarsFeaturesprotected TPeerprotected EarsRenderDelegate.BodyPartprotected intprotected int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract voidaddVertex(float x, float y, int z, float r, float g, float b, float a, float u, float v, float nX, float nY, float nZ) voidprotected abstract voidvoidbooleanprotected abstract Decider<EarsRenderDelegate.BodyPart,TModelPart> protected abstract voiddoAnchorTo(EarsRenderDelegate.BodyPart part, TModelPart modelPart) protected abstract voiddoBindAux(EarsRenderDelegate.TexSource src, byte[] pngData) protected voidprotected abstract voidprotected abstract voiddoRenderDebugDot(float r, float g, float b, float a) protected abstract voiddoRotate(float ang, float x, float y, float z) protected abstract voiddoScale(float x, float y, float z) protected abstract voiddoTranslate(float x, float y, float z) protected abstract voiddrawQuad()protected floatprotected abstract EarsFeaturesgetPeer()protected abstract booleanisVisible(TModelPart modelPart) booleanvoidpop()protected abstract voidvoidpush()protected abstract voidvoidrenderBack(int u, int v, int w, int h, EarsRenderDelegate.TexRotation rot, EarsRenderDelegate.TexFlip flip, EarsRenderDelegate.QuadGrow grow) voidrenderDebugDot(float r, float g, float b, float a) voidrenderDoubleSided(int u, int v, int width, int height, EarsRenderDelegate.TexRotation rot, EarsRenderDelegate.TexFlip flip, EarsRenderDelegate.QuadGrow grow) voidrenderFront(int u, int v, int w, int h, EarsRenderDelegate.TexRotation rot, EarsRenderDelegate.TexFlip flip, EarsRenderDelegate.QuadGrow grow) voidrotate(float ang, float x, float y, float z) voidscale(float x, float y, float z) voidsetEmissive(boolean emissive) voidsetUp()protected abstract voidvoidtearDown()protected abstract voidstatic ByteBuffertoNativeBuffer(byte[] arr) voidtranslate(float x, float y, float z) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.unascribed.ears.common.render.EarsRenderDelegate
getBodyYaw, getCapeX, getCapeY, getCapeZ, getHorizontalSpeed, getLimbSwing, getStride, getTime, getX, getY, getZ, isFlying, isGliding, isJacketEnabled, isSlim, isWearingBoots, isWearingChestplate, isWearingElytra
-
Field Details
-
peer
-
feat
-
skipRendering
protected int skipRendering -
stackDepth
protected int stackDepth -
permittedBodyPart
-
bound
-
emissive
protected boolean emissive
-
-
Constructor Details
-
AbstractEarsRenderDelegate
public AbstractEarsRenderDelegate()
-
-
Method Details
-
getEarsFeatures
-
setUp
public void setUp()- Specified by:
setUpin interfaceEarsRenderDelegate
-
getPeer
- Specified by:
getPeerin interfaceEarsRenderDelegate
-
setUpRenderState
protected abstract void setUpRenderState() -
tearDown
public void tearDown()- Specified by:
tearDownin interfaceEarsRenderDelegate
-
tearDownRenderState
protected abstract void tearDownRenderState() -
push
public void push()- Specified by:
pushin interfaceEarsRenderDelegate
-
pushMatrix
protected abstract void pushMatrix() -
pop
public void pop()- Specified by:
popin interfaceEarsRenderDelegate
-
popMatrix
protected abstract void popMatrix() -
anchorTo
- Specified by:
anchorToin interfaceEarsRenderDelegate
-
isVisible
-
decideModelPart
protected abstract Decider<EarsRenderDelegate.BodyPart,TModelPart> decideModelPart(Decider<EarsRenderDelegate.BodyPart, TModelPart> d) -
doAnchorTo
-
translate
public void translate(float x, float y, float z) - Specified by:
translatein interfaceEarsRenderDelegate
-
doTranslate
protected abstract void doTranslate(float x, float y, float z) -
rotate
public void rotate(float ang, float x, float y, float z) - Specified by:
rotatein interfaceEarsRenderDelegate
-
doRotate
protected abstract void doRotate(float ang, float x, float y, float z) -
scale
public void scale(float x, float y, float z) - Specified by:
scalein interfaceEarsRenderDelegate
-
doScale
protected abstract void doScale(float x, float y, float z) -
renderFront
public void renderFront(int u, int v, int w, int h, EarsRenderDelegate.TexRotation rot, EarsRenderDelegate.TexFlip flip, EarsRenderDelegate.QuadGrow grow) - Specified by:
renderFrontin interfaceEarsRenderDelegate
-
renderBack
public void renderBack(int u, int v, int w, int h, EarsRenderDelegate.TexRotation rot, EarsRenderDelegate.TexFlip flip, EarsRenderDelegate.QuadGrow grow) - Specified by:
renderBackin interfaceEarsRenderDelegate
-
beginQuad
protected abstract void beginQuad() -
addVertex
protected abstract void addVertex(float x, float y, int z, float r, float g, float b, float a, float u, float v, float nX, float nY, float nZ) -
drawQuad
protected abstract void drawQuad() -
getBrightness
protected float getBrightness() -
renderDoubleSided
public void renderDoubleSided(int u, int v, int width, int height, EarsRenderDelegate.TexRotation rot, EarsRenderDelegate.TexFlip flip, EarsRenderDelegate.QuadGrow grow) - Specified by:
renderDoubleSidedin interfaceEarsRenderDelegate
-
renderDebugDot
public void renderDebugDot(float r, float g, float b, float a) - Specified by:
renderDebugDotin interfaceEarsRenderDelegate
-
doRenderDebugDot
protected abstract void doRenderDebugDot(float r, float g, float b, float a) -
bind
- Specified by:
bindin interfaceEarsRenderDelegate
-
doBindSkin
protected abstract void doBindSkin() -
doBindAux
-
doBindBuiltin
-
canBind
- Specified by:
canBindin interfaceEarsRenderDelegate
-
toNativeBuffer
-
needsSecondaryLayersDrawn
public boolean needsSecondaryLayersDrawn()- Specified by:
needsSecondaryLayersDrawnin interfaceEarsRenderDelegate
-
setEmissive
public void setEmissive(boolean emissive) - Specified by:
setEmissivein interfaceEarsRenderDelegate
-