java类net.minecraft.client.renderer.vertex.VertexFormatElement的实例源码

LightUtil.java 文件源码 项目:CustomWorldGen 阅读 16 收藏 0 点赞 0 评论 0
public static int[] mapFormats(VertexFormat from, VertexFormat to)
{
    int fromCount = from.getElementCount();
    int toCount = to.getElementCount();
    int[] eMap = new int[fromCount];

    for(int e = 0; e < fromCount; e++)
    {
        VertexFormatElement expected = from.getElement(e);
        int e2;
        for(e2 = 0; e2 < toCount; e2++)
        {
            VertexFormatElement current = to.getElement(e2);
            if(expected.getUsage() == current.getUsage() && expected.getIndex() == current.getIndex())
            {
                break;
            }
        }
        eMap[e] = e2;
    }
    return eMap;
}
VertexDataUtils.java 文件源码 项目:CodeChickenLib 阅读 28 收藏 0 点赞 0 评论 0
private static void putVertex(UnpackedBakedQuad.Builder builder, VertexFormat format, EnumFacing face, Vertex5 vert, Colour colour) {
    for (int e = 0; e < format.getElementCount(); e++) {
        VertexFormatElement element = format.getElement(e);
        switch (element.getUsage()) {

            case POSITION:
                Vector3 vec = vert.vec;
                builder.put(e, (float) vec.x, (float) vec.y, (float) vec.z, 1);
                break;
            case NORMAL:
                builder.put(e, face.getFrontOffsetX(), face.getFrontOffsetY(), face.getFrontOffsetZ(), 0);
                break;
            case COLOR:
                builder.put(e, (colour.r & 0xFF) / 255F, (colour.g & 0xFF) / 255F, (colour.b & 0xFF) / 255F, (colour.a & 0xFF) / 255F);
                break;
            case UV:
                UV uv = vert.uv;
                builder.put(e, (float) uv.u, (float) uv.v, 0, 1);
                break;
            default:
                builder.put(e);
                break;
        }
    }
}
VertexDataUtils.java 文件源码 项目:CodeChickenLib 阅读 29 收藏 0 点赞 0 评论 0
public static List<BakedQuad> shadeQuadFaces(List<BakedQuad> quads) {
    LinkedList<BakedQuad> shadedQuads = new LinkedList<>();
    for (BakedQuad quad : quads) {
        int[] rawData = quad.getVertexData();
        for (int v = 0; v < 4; v++) {
            for (int e = 0; e < quad.getFormat().getElementCount(); e++) {
                VertexFormatElement element = quad.getFormat().getElement(e);
                if (element.getUsage() == EnumUsage.COLOR) {
                    float[] data = new float[4];
                    LightUtil.unpack(rawData, data, quad.getFormat(), v, e);

                    data = diffuseFaceLight(quad.getFace(), data);

                    LightUtil.pack(data, rawData, quad.getFormat(), v, e);
                }
            }
        }
        shadedQuads.add(new BakedQuad(rawData, quad.getTintIndex(), quad.getFace(), quad.getSprite(), quad.shouldApplyDiffuseLighting(), quad.getFormat()));
    }

    return shadedQuads;
}
VertexData.java 文件源码 项目:InfinityLib 阅读 18 收藏 0 点赞 0 评论 0
private void applyVertexDataForType(int index, VertexFormatElement.EnumUsage type, UnpackedBakedQuad.Builder builder) {
    switch (type) {
        case POSITION:
            builder.put(index, x, y, z, 1);
            break;
        case UV:
            builder.put(index, u, v, 0, 1);
            break;
        case COLOR:
            builder.put(index, r, g, b, a);
            break;
        case NORMAL:
            builder.put(index, nX, nY, nZ, 0);
            break;
        case PADDING:
            //TODO: figure this one out
            builder.put(index);
            break;
        case GENERIC:
            //TODO: figure this one out
            builder.put(index);

    }
}
TessellatorAbstractBase.java 文件源码 项目:InfinityLib 阅读 22 收藏 0 点赞 0 评论 0
public final void transformUnpackedVertexDataElement(VertexFormatElement.EnumUsage type, float[] data, Vector4f temp) {
    switch (type) {
        case POSITION:
        case NORMAL:
            this.matrices.transform(data[0], data[1], data[2], 1, temp);
            data[0] = temp.x;
            data[1] = temp.y;
            data[2] = temp.z;
            break;
        case COLOR:
            data[0] = getRed();
            data[1] = getGreen();
            data[2] = getBlue();
            data[3] = getAlpha();
            break;
    }
}
ShaftModel.java 文件源码 项目:Factorization 阅读 20 收藏 0 点赞 0 评论 0
@Override
public void put(int elementIndex, float... data) {
    ei = elementIndex;
    VertexFormatElement element = getVertexFormat().getElement(elementIndex);
    if (elementIndex == 0) {
        vertex++;
    }
    /** @see net.minecraftforge.client.model.obj.OBJModel.OBJBakedModel#putVertexData */
    if (element == DefaultVertexFormats.POSITION_3F) {
        pos(data[0], data[1], data[2]);
    } else if (element == DefaultVertexFormats.COLOR_4UB) {
        color((char) data[0], (char) data[1], (char) data[2], (char) data[3]);
    } else if (element == DefaultVertexFormats.TEX_2F) {
        tex(data[0], data[1]);
    } else if (element == DefaultVertexFormats.NORMAL_3B) {
        normal((byte) data[0], (byte) data[1], (byte) data[2]);
    } else {
        bakery.put(ei, data);
    }
}
BWBakedModel.java 文件源码 项目:NOVA-Core 阅读 13 收藏 0 点赞 0 评论 0
@SuppressWarnings("unchecked")
public BWBakedModel(@SuppressWarnings("deprecation") IBakedModel wrapped, VertexFormat format) {
    this.wrapped = wrapped;
    this.format = format;
    this.matrix.translate(-0.5, -0.5, -0.5);

    if (!((List<VertexFormatElement>) format.getElements()).stream().anyMatch(VertexFormatElement::isPositionElement))
        return; // VertexFormat doesn't have a position

    getGeneralQuads().stream()
        .map(this::quadToFace)
        .forEachOrdered(faces::add);

    Arrays.stream(Direction.VALID_DIRECTIONS)
        .map(this::getFaceQuads)
        .flatMap(Collection::stream)
        .map(this::quadToFace)
        .forEachOrdered(faces::add);
}
RenderSkyVC.java 文件源码 项目:vintagecraft 阅读 22 收藏 0 点赞 0 评论 0
public RenderSkyVC() {
    Minecraft mcIn = Minecraft.getMinecraft();
    world = mcIn.theWorld;

       this.mc = mcIn;
       this.renderManager = mcIn.getRenderManager();
       this.renderEngine = mcIn.getTextureManager();

       GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, GL11.GL_REPEAT);
       GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, GL11.GL_REPEAT);
       GlStateManager.bindTexture(0);

       this.vboEnabled = OpenGlHelper.useVbo();

       this.vertexBufferFormat = new VertexFormat();
       this.vertexBufferFormat.setElement(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.POSITION, 3));
       this.generateSky();
       this.generateSky2();     
}
StencilCoverQuadBuilder.java 文件源码 项目:OpenBlocks 阅读 26 收藏 0 点赞 0 评论 0
private void addQuad(final UnpackedBakedQuad.Builder builder, EnumFacing face, TextureAtlasSprite sprite, Vertex position, Vertex texture) {
    for (int e = 0; e < format.getElementCount(); e++) {
        final VertexFormatElement el = format.getElement(e);
        switch (el.getUsage()) {
            case POSITION:
                builder.put(e, position.x, position.y, position.z);
                break;
            case NORMAL:
                builder.put(e, face.getFrontOffsetX(), face.getFrontOffsetY(), face.getFrontOffsetZ());
                break;
            case COLOR:
                builder.put(e, 1, 1, 1, 1);
                break;
            case UV:
                if (el.getIndex() == 0) {
                    builder.put(e, sprite.getInterpolatedU(16 * texture.u), sprite.getInterpolatedV(16 * texture.v));
                } else {
                    builder.put(e, 0, 0);
                }
                break;
            default:
                builder.put(e);
        }
    }
}
RealmsVertexFormat.java 文件源码 项目:DecompiledMinecraft 阅读 15 收藏 0 点赞 0 评论 0
public List<RealmsVertexFormatElement> getElements()
{
    List<RealmsVertexFormatElement> list = new ArrayList();

    for (VertexFormatElement vertexformatelement : this.v.getElements())
    {
        list.add(new RealmsVertexFormatElement(vertexformatelement));
    }

    return list;
}
WorldRenderer.java 文件源码 项目:DecompiledMinecraft 阅读 24 收藏 0 点赞 0 评论 0
private void func_181667_k()
{
    ++this.field_181678_g;
    this.field_181678_g %= this.vertexFormat.getElementCount();
    this.field_181677_f = this.vertexFormat.getElement(this.field_181678_g);

    if (this.field_181677_f.getUsage() == VertexFormatElement.EnumUsage.PADDING)
    {
        this.func_181667_k();
    }
}
RenderGlobal.java 文件源码 项目:DecompiledMinecraft 阅读 18 收藏 0 点赞 0 评论 0
public RenderGlobal(Minecraft mcIn)
{
    this.mc = mcIn;
    this.renderManager = mcIn.getRenderManager();
    this.renderEngine = mcIn.getTextureManager();
    this.renderEngine.bindTexture(locationForcefieldPng);
    GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, GL11.GL_REPEAT);
    GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, GL11.GL_REPEAT);
    GlStateManager.bindTexture(0);
    this.updateDestroyBlockIcons();
    this.vboEnabled = OpenGlHelper.useVbo();

    if (this.vboEnabled)
    {
        this.renderContainer = new VboRenderList();
        this.renderChunkFactory = new VboChunkFactory();
    }
    else
    {
        this.renderContainer = new RenderList();
        this.renderChunkFactory = new ListChunkFactory();
    }

    this.vertexBufferFormat = new VertexFormat();
    this.vertexBufferFormat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.POSITION, 3));
    this.generateStars();
    this.generateSky();
    this.generateSky2();
}
SVertexFormat.java 文件源码 项目:BaseClient 阅读 16 收藏 0 点赞 0 评论 0
public static VertexFormat makeDefVertexFormatBlock()
{
    VertexFormat vertexformat = new VertexFormat();
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.POSITION, 3));
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.UBYTE, VertexFormatElement.EnumUsage.COLOR, 4));
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.UV, 2));
    vertexformat.func_181721_a(new VertexFormatElement(1, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.UV, 2));
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.BYTE, VertexFormatElement.EnumUsage.NORMAL, 3));
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.BYTE, VertexFormatElement.EnumUsage.PADDING, 1));
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.PADDING, 2));
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.PADDING, 4));
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.PADDING, 4));
    return vertexformat;
}
SVertexFormat.java 文件源码 项目:BaseClient 阅读 16 收藏 0 点赞 0 评论 0
public static VertexFormat makeDefVertexFormatItem()
{
    VertexFormat vertexformat = new VertexFormat();
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.POSITION, 3));
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.UBYTE, VertexFormatElement.EnumUsage.COLOR, 4));
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.UV, 2));
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.PADDING, 2));
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.BYTE, VertexFormatElement.EnumUsage.NORMAL, 3));
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.BYTE, VertexFormatElement.EnumUsage.PADDING, 1));
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.PADDING, 2));
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.PADDING, 4));
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.PADDING, 4));
    return vertexformat;
}
SVertexFormat.java 文件源码 项目:BaseClient 阅读 18 收藏 0 点赞 0 评论 0
public static VertexFormat makeDefVertexFormatTextured()
{
    VertexFormat vertexformat = new VertexFormat();
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.POSITION, 3));
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.UBYTE, VertexFormatElement.EnumUsage.PADDING, 4));
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.UV, 2));
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.PADDING, 2));
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.BYTE, VertexFormatElement.EnumUsage.NORMAL, 3));
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.BYTE, VertexFormatElement.EnumUsage.PADDING, 1));
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.PADDING, 2));
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.PADDING, 4));
    vertexformat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.PADDING, 4));
    return vertexformat;
}
SVertexFormat.java 文件源码 项目:BaseClient 阅读 15 收藏 0 点赞 0 评论 0
public static void setDefBakedFormat(VertexFormat vf)
{
    vf.clear();
    vf.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.POSITION, 3));
    vf.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.UBYTE, VertexFormatElement.EnumUsage.COLOR, 4));
    vf.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.UV, 2));
    vf.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.PADDING, 2));
    vf.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.BYTE, VertexFormatElement.EnumUsage.NORMAL, 3));
    vf.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.BYTE, VertexFormatElement.EnumUsage.PADDING, 1));
    vf.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.PADDING, 2));
    vf.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.PADDING, 4));
    vf.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.PADDING, 4));
}
RealmsVertexFormat.java 文件源码 项目:BaseClient 阅读 14 收藏 0 点赞 0 评论 0
public List<RealmsVertexFormatElement> getElements()
{
    List<RealmsVertexFormatElement> list = new ArrayList();

    for (VertexFormatElement vertexformatelement : this.v.getElements())
    {
        list.add(new RealmsVertexFormatElement(vertexformatelement));
    }

    return list;
}
WorldRenderer.java 文件源码 项目:BaseClient 阅读 26 收藏 0 点赞 0 评论 0
private void func_181667_k()
{
    ++this.field_181678_g;
    this.field_181678_g %= this.vertexFormat.getElementCount();
    this.field_181677_f = this.vertexFormat.getElement(this.field_181678_g);

    if (this.field_181677_f.getUsage() == VertexFormatElement.EnumUsage.PADDING)
    {
        this.func_181667_k();
    }
}
RenderGlobal.java 文件源码 项目:BaseClient 阅读 17 收藏 0 点赞 0 评论 0
public RenderGlobal(Minecraft mcIn)
{
    this.cloudRenderer = new CloudRenderer(mcIn);
    this.mc = mcIn;
    this.renderManager = mcIn.getRenderManager();
    this.renderEngine = mcIn.getTextureManager();
    this.renderEngine.bindTexture(locationForcefieldPng);
    GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, GL11.GL_REPEAT);
    GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, GL11.GL_REPEAT);
    GlStateManager.bindTexture(0);
    this.updateDestroyBlockIcons();
    this.vboEnabled = OpenGlHelper.useVbo();

    if (this.vboEnabled)
    {
        this.renderContainer = new VboRenderList();
        this.renderChunkFactory = new VboChunkFactory();
    }
    else
    {
        this.renderContainer = new RenderList();
        this.renderChunkFactory = new ListChunkFactory();
    }

    this.vertexBufferFormat = new VertexFormat();
    this.vertexBufferFormat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.POSITION, 3));
    this.generateStars();
    this.generateSky();
    this.generateSky2();
}
RealmsVertexFormat.java 文件源码 项目:BaseClient 阅读 14 收藏 0 点赞 0 评论 0
public List<RealmsVertexFormatElement> getElements()
{
    List<RealmsVertexFormatElement> list = new ArrayList();

    for (VertexFormatElement vertexformatelement : this.v.getElements())
    {
        list.add(new RealmsVertexFormatElement(vertexformatelement));
    }

    return list;
}
WorldRenderer.java 文件源码 项目:BaseClient 阅读 24 收藏 0 点赞 0 评论 0
private void func_181667_k()
{
    ++this.field_181678_g;
    this.field_181678_g %= this.vertexFormat.getElementCount();
    this.field_181677_f = this.vertexFormat.getElement(this.field_181678_g);

    if (this.field_181677_f.getUsage() == VertexFormatElement.EnumUsage.PADDING)
    {
        this.func_181667_k();
    }
}
RenderGlobal.java 文件源码 项目:BaseClient 阅读 19 收藏 0 点赞 0 评论 0
public RenderGlobal(Minecraft mcIn)
{
    this.cloudRenderer = new CloudRenderer(mcIn);
    this.mc = mcIn;
    this.renderManager = mcIn.getRenderManager();
    this.renderEngine = mcIn.getTextureManager();
    this.renderEngine.bindTexture(locationForcefieldPng);
    GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, GL11.GL_REPEAT);
    GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, GL11.GL_REPEAT);
    GlStateManager.bindTexture(0);
    this.updateDestroyBlockIcons();
    this.vboEnabled = OpenGlHelper.useVbo();

    if (this.vboEnabled)
    {
        this.renderContainer = new VboRenderList();
        this.renderChunkFactory = new VboChunkFactory();
    }
    else
    {
        this.renderContainer = new RenderList();
        this.renderChunkFactory = new ListChunkFactory();
    }

    this.vertexBufferFormat = new VertexFormat();
    this.vertexBufferFormat.func_181721_a(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.POSITION, 3));
    this.generateStars();
    this.generateSky();
    this.generateSky2();
}
SVertexFormat.java 文件源码 项目:Backmemed 阅读 15 收藏 0 点赞 0 评论 0
public static VertexFormat makeDefVertexFormatBlock()
{
    VertexFormat vertexformat = new VertexFormat();
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.POSITION, 3));
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.UBYTE, VertexFormatElement.EnumUsage.COLOR, 4));
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.UV, 2));
    vertexformat.addElement(new VertexFormatElement(1, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.UV, 2));
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.BYTE, VertexFormatElement.EnumUsage.NORMAL, 3));
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.BYTE, VertexFormatElement.EnumUsage.PADDING, 1));
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.PADDING, 2));
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.PADDING, 4));
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.PADDING, 4));
    return vertexformat;
}
SVertexFormat.java 文件源码 项目:Backmemed 阅读 15 收藏 0 点赞 0 评论 0
public static VertexFormat makeDefVertexFormatItem()
{
    VertexFormat vertexformat = new VertexFormat();
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.POSITION, 3));
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.UBYTE, VertexFormatElement.EnumUsage.COLOR, 4));
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.UV, 2));
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.PADDING, 2));
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.BYTE, VertexFormatElement.EnumUsage.NORMAL, 3));
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.BYTE, VertexFormatElement.EnumUsage.PADDING, 1));
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.PADDING, 2));
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.PADDING, 4));
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.PADDING, 4));
    return vertexformat;
}
SVertexFormat.java 文件源码 项目:Backmemed 阅读 13 收藏 0 点赞 0 评论 0
public static VertexFormat makeDefVertexFormatTextured()
{
    VertexFormat vertexformat = new VertexFormat();
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.POSITION, 3));
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.UBYTE, VertexFormatElement.EnumUsage.PADDING, 4));
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.UV, 2));
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.PADDING, 2));
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.BYTE, VertexFormatElement.EnumUsage.NORMAL, 3));
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.BYTE, VertexFormatElement.EnumUsage.PADDING, 1));
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.PADDING, 2));
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.PADDING, 4));
    vertexformat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.PADDING, 4));
    return vertexformat;
}
SVertexFormat.java 文件源码 项目:Backmemed 阅读 14 收藏 0 点赞 0 评论 0
public static void setDefBakedFormat(VertexFormat vf)
{
    vf.clear();
    vf.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.POSITION, 3));
    vf.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.UBYTE, VertexFormatElement.EnumUsage.COLOR, 4));
    vf.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.UV, 2));
    vf.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.PADDING, 2));
    vf.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.BYTE, VertexFormatElement.EnumUsage.NORMAL, 3));
    vf.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.BYTE, VertexFormatElement.EnumUsage.PADDING, 1));
    vf.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.PADDING, 2));
    vf.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.PADDING, 4));
    vf.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.SHORT, VertexFormatElement.EnumUsage.PADDING, 4));
}
RealmsVertexFormat.java 文件源码 项目:Backmemed 阅读 15 收藏 0 点赞 0 评论 0
public List<RealmsVertexFormatElement> getElements()
{
    List<RealmsVertexFormatElement> list = Lists.<RealmsVertexFormatElement>newArrayList();

    for (VertexFormatElement vertexformatelement : this.v.getElements())
    {
        list.add(new RealmsVertexFormatElement(vertexformatelement));
    }

    return list;
}
VertexBuffer.java 文件源码 项目:Backmemed 阅读 20 收藏 0 点赞 0 评论 0
private void nextVertexFormatIndex()
{
    ++this.vertexFormatIndex;
    this.vertexFormatIndex %= this.vertexFormat.getElementCount();
    this.vertexFormatElement = this.vertexFormat.getElement(this.vertexFormatIndex);

    if (this.vertexFormatElement.getUsage() == VertexFormatElement.EnumUsage.PADDING)
    {
        this.nextVertexFormatIndex();
    }
}
RenderGlobal.java 文件源码 项目:Backmemed 阅读 16 收藏 0 点赞 0 评论 0
public RenderGlobal(Minecraft mcIn)
{
    this.renderEnv = new RenderEnv(this.theWorld, Blocks.AIR.getDefaultState(), new BlockPos(0, 0, 0));
    this.renderOverlayDamaged = false;
    this.renderOverlayEyes = false;
    this.cloudRenderer = new CloudRenderer(mcIn);
    this.mc = mcIn;
    this.renderManager = mcIn.getRenderManager();
    this.renderEngine = mcIn.getTextureManager();
    this.renderEngine.bindTexture(FORCEFIELD_TEXTURES);
    GlStateManager.glTexParameteri(3553, 10242, 10497);
    GlStateManager.glTexParameteri(3553, 10243, 10497);
    GlStateManager.bindTexture(0);
    this.updateDestroyBlockIcons();
    this.vboEnabled = OpenGlHelper.useVbo();

    if (this.vboEnabled)
    {
        this.renderContainer = new VboRenderList();
        this.renderChunkFactory = new VboChunkFactory();
    }
    else
    {
        this.renderContainer = new RenderList();
        this.renderChunkFactory = new ListChunkFactory();
    }

    this.vertexBufferFormat = new VertexFormat();
    this.vertexBufferFormat.addElement(new VertexFormatElement(0, VertexFormatElement.EnumType.FLOAT, VertexFormatElement.EnumUsage.POSITION, 3));
    this.generateStars();
    this.generateSky();
    this.generateSky2();
}
ForgeHooksClient.java 文件源码 项目:CustomWorldGen 阅读 21 收藏 0 点赞 0 评论 0
public static void preDraw(EnumUsage attrType, VertexFormat format, int element, int stride, ByteBuffer buffer)
{
    VertexFormatElement attr = format.getElement(element);
    int count = attr.getElementCount();
    int constant = attr.getType().getGlConstant();
    buffer.position(format.getOffset(element));
    switch(attrType)
    {
        case POSITION:
            glVertexPointer(count, constant, stride, buffer);
            glEnableClientState(GL_VERTEX_ARRAY);
            break;
        case NORMAL:
            if(count != 3)
            {
                throw new IllegalArgumentException("Normal attribute should have the size 3: " + attr);
            }
            glNormalPointer(constant, stride, buffer);
            glEnableClientState(GL_NORMAL_ARRAY);
            break;
        case COLOR:
            glColorPointer(count, constant, stride, buffer);
            glEnableClientState(GL_COLOR_ARRAY);
            break;
        case UV:
            OpenGlHelper.setClientActiveTexture(OpenGlHelper.defaultTexUnit + attr.getIndex());
            glTexCoordPointer(count, constant, stride, buffer);
            glEnableClientState(GL_TEXTURE_COORD_ARRAY);
            OpenGlHelper.setClientActiveTexture(OpenGlHelper.defaultTexUnit);
            break;
        case PADDING:
            break;
        case GENERIC:
            glEnableVertexAttribArray(attr.getIndex());
            glVertexAttribPointer(attr.getIndex(), count, constant, false, stride, buffer);
        default:
            FMLLog.severe("Unimplemented vanilla attribute upload: %s", attrType.getDisplayName());
    }
}


问题


面经


文章

微信
公众号

扫码关注公众号