Example usage for org.lwjgl.opengl GL11 glScalef

List of usage examples for org.lwjgl.opengl GL11 glScalef

Introduction

In this page you can find the example usage for org.lwjgl.opengl GL11 glScalef.

Prototype

public static native void glScalef(@NativeType("GLfloat") float x, @NativeType("GLfloat") float y,
        @NativeType("GLfloat") float z);

Source Link

Document

Manipulates the current matrix with a general scaling matrix along the x-, y- and z- axes.

Usage

From source file:dracocore.handbook.buttons.GuiButtonCategory.java

License:Creative Commons License

@Override
public void drawButton(Minecraft mc, int mx, int my) {
    boolean inside = mx >= xPosition && my >= yPosition && mx < xPosition + width && my < yPosition + height;
    float time = 5F;
    if (inside)//from   www  .j  av a  2s .c  o  m
        ticksHovered = Math.min(time, ticksHovered + gui.timeDelta);
    else
        ticksHovered = Math.max(0F, ticksHovered - gui.timeDelta);

    ResourceLocation resource;
    if (category == null)
        resource = fallbackResource;
    else
        resource = category.getIcon();
    if (resource == null)
        resource = fallbackResource;

    mc.renderEngine.bindTexture(resource);
    float s = 1F / 48F;
    float defAlpha = 0.3F;
    float alpha = ticksHovered / time * (1F - defAlpha) + defAlpha;

    GL11.glPushMatrix();
    GL11.glColor4f(1F, 1F, 1F, alpha);
    GL11.glEnable(GL11.GL_BLEND);
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
    GL11.glScalef(0.5F, 0.5F, 0.5F);
    VazkiiRenderHelper.drawTexturedModalRect(xPosition * 2, yPosition * 2, zLevel * 2, 0, 0, 48, 48, s, s);
    GL11.glPopMatrix();

    if (inside)
        VazkiiRenderHelper.renderTooltipGreen(mx, my,
                Arrays.asList(StatCollector.translateToLocal(getTooltipText())));
}

From source file:dracocore.handbook.gui.GuiLexicon.java

License:Creative Commons License

@Override
public void drawScreen(int par1, int par2, float par3) {
    float time = TickHandlerClient.ticksInGame + par3;
    timeDelta = time - lastTime;//from  ww w .j  av  a  2  s. com
    lastTime = time;
    partialTicks = par3;

    GL11.glColor4f(1F, 1F, 1F, 1F);
    mc.renderEngine.bindTexture(texture);
    drawTexturedModalRect(left, top, 0, 0, guiWidth, guiHeight);

    drawBookmark(left + guiWidth / 2, top - getTitleHeight(), getTitle(), true);
    String subtitle = getSubtitle();
    if (subtitle != null) {
        GL11.glScalef(0.5F, 0.5F, 1F);
        drawCenteredString(fontRendererObj, subtitle, left * 2 + guiWidth, (top - getTitleHeight() + 11) * 2,
                0x00FF00);
        GL11.glScalef(2F, 2F, 1F);
    }

    drawHeader();

    if (bookmarksNeedPopulation) {
        populateBookmarks();
        bookmarksNeedPopulation = false;
    }

    super.drawScreen(par1, par2, par3);
}

From source file:dynamicswordskills.client.RenderEntitySwordBeam.java

License:Open Source License

public void renderBeam(Entity entity, double x, double y, double z, float yaw, float partialTick) {
    GL11.glPushMatrix();//from w ww.  j  a va2 s  . c om
    GL11.glTranslated(x, y, z);
    GL11.glEnable(GL11.GL_BLEND);
    GL11.glDisable(GL11.GL_LIGHTING);
    GL11.glEnable(GL11.GL_TEXTURE_2D);
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
    GL11.glScalef(1.5F, 1.25F, 1.5F);
    bindTexture(texture);
    Tessellator tessellator = Tessellator.getInstance();
    WorldRenderer renderer = tessellator.getWorldRenderer();
    GL11.glRotatef(180.0F - renderManager.playerViewY, 0.0F, 1.0F, 0.0F);
    GL11.glRotatef(-renderManager.playerViewX, 1.0F, 0.0F, 0.0F);
    renderer.startDrawingQuads();
    renderer.setNormal(0.0F, 1.0F, 0.0F);
    renderer.addVertexWithUV(-0.5D, -0.25D, 0.0D, 0, 1);
    renderer.addVertexWithUV(0.5D, -0.25D, 0.0D, 1, 1);
    renderer.addVertexWithUV(0.5D, 0.75D, 0.0D, 1, 0);
    renderer.addVertexWithUV(-0.5D, 0.75D, 0.0D, 0, 0);
    tessellator.draw();
    GL11.glDisable(GL12.GL_RESCALE_NORMAL);
    GL11.glEnable(GL11.GL_LIGHTING);
    GL11.glDisable(GL11.GL_BLEND);
    GL11.glPopMatrix();
}

From source file:electricMagicTools.tombenpotter.electricmagictools.client.renderer.RenderLaser.java

License:Open Source License

public void renderArrow(EntityLaser entityLaser, double par2, double par4, double par6, float par8,
        float par9) {

    this.bindEntityTexture(entityLaser);
    GL11.glPushMatrix();//from   ww w  . ja  v a2 s . c o  m
    GL11.glTranslatef((float) par2, (float) par4, (float) par6);
    GL11.glRotatef(entityLaser.prevRotationYaw + (entityLaser.rotationYaw - entityLaser.prevRotationYaw) * par9
            - 90.0F, 0.0F, 1.0F, 0.0F);
    GL11.glRotatef(
            entityLaser.prevRotationPitch + (entityLaser.rotationPitch - entityLaser.prevRotationPitch) * par9,
            0.0F, 0.0F, 1.0F);
    Tessellator tessellator = Tessellator.instance;
    byte b0 = 0;
    float f2 = 0.4F;
    float f3 = 0.7F;
    float f4 = (float) (0 + b0 * 10) / 32.0F;
    float f5 = (float) (5 + b0 * 10) / 32.0F;
    float f6 = 0.0F;
    float f7 = 0.15625F;
    float f8 = (float) (5 + b0 * 10) / 32.0F;
    float f9 = (float) (10 + b0 * 10) / 32.0F;
    float f10 = 0.05625F;
    GL11.glEnable(GL12.GL_RESCALE_NORMAL);

    GL11.glRotatef(45.0F, 1.0F, 0.0F, 0.0F);
    GL11.glScalef(f10, f10, f10);
    GL11.glTranslatef(-4.0F, 0.0F, 0.0F);
    GL11.glNormal3f(f10, 0.0F, 0.0F);
    tessellator.startDrawingQuads();
    tessellator.addVertexWithUV(-7.0D, -2.0D, -2.0D, (double) f6, (double) f8);
    tessellator.addVertexWithUV(-7.0D, -2.0D, 2.0D, (double) f7, (double) f8);
    tessellator.addVertexWithUV(-7.0D, 2.0D, 2.0D, (double) f7, (double) f9);
    tessellator.addVertexWithUV(-7.0D, 2.0D, -2.0D, (double) f6, (double) f9);
    tessellator.draw();
    GL11.glNormal3f(-f10, 0.0F, 0.0F);
    tessellator.startDrawingQuads();
    tessellator.addVertexWithUV(-7.0D, 2.0D, -2.0D, (double) f6, (double) f8);
    tessellator.addVertexWithUV(-7.0D, 2.0D, 2.0D, (double) f7, (double) f8);
    tessellator.addVertexWithUV(-7.0D, -2.0D, 2.0D, (double) f7, (double) f9);
    tessellator.addVertexWithUV(-7.0D, -2.0D, -2.0D, (double) f6, (double) f9);
    tessellator.draw();

    for (int i = 0; i < 4; ++i) {
        GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
        GL11.glNormal3f(0.0F, 0.0F, f10);
        tessellator.startDrawingQuads();
        tessellator.addVertexWithUV(-8.0D, -2.0D, 0.0D, (double) f2, (double) f4);
        tessellator.addVertexWithUV(8.0D, -2.0D, 0.0D, (double) f3, (double) f4);
        tessellator.addVertexWithUV(8.0D, 2.0D, 0.0D, (double) f3, (double) f5);
        tessellator.addVertexWithUV(-8.0D, 2.0D, 0.0D, (double) f2, (double) f5);
        tessellator.draw();
    }

    GL11.glDisable(GL12.GL_RESCALE_NORMAL);
    GL11.glPopMatrix();
}

From source file:eplus.renders.TableEntityItemRenderer.java

License:LGPL

/**
 * Renders the item/*from w w w. j a va 2s  .c  o  m*/
 */
public void doRenderItem(EntityItem par1EntityItem, double par2, double par4, double par6, float par8,
        float par9) {
    this.random.setSeed(187L);
    ItemStack itemstack = par1EntityItem.getEntityItem();

    if (itemstack.getItem() != null) {
        GL11.glPushMatrix();
        float f2 = shouldBob()
                ? MathHelper.sin(((float) par1EntityItem.age + par9) / 10.0F + par1EntityItem.hoverStart) * 0.1F
                        + 0.1F
                : 0F;
        float f3 = (((float) par1EntityItem.age + par9) / 20.0F + par1EntityItem.hoverStart)
                * (180F / (float) Math.PI);
        byte b0 = getMiniBlockCount(itemstack);

        GL11.glTranslatef((float) par2, (float) par4 + f2, (float) par6);
        GL11.glEnable(GL12.GL_RESCALE_NORMAL);
        int i;
        float f4;
        float f5;
        float f6;

        Block block = null;
        if (itemstack.itemID < Block.blocksList.length) {
            block = Block.blocksList[itemstack.itemID];
        }

        if (ForgeHooksClient.renderEntityItem(par1EntityItem, itemstack, f2, f3, random,
                renderManager.renderEngine, renderBlocks)) {
            ;
        } else if (itemstack.getItemSpriteNumber() == 0 && block != null
                && RenderBlocks.renderItemIn3d(Block.blocksList[itemstack.itemID].getRenderType())) {
            GL11.glRotatef(f3, 0.0F, 1.0F, 0.0F);

            if (renderInFrame) {
                GL11.glScalef(1.25F, 1.25F, 1.25F);
                GL11.glTranslatef(0.0F, 0.05F, 0.0F);
                GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F);
            }

            this.loadTexture("/terrain.png");
            float f7 = 0.25F;
            int j = block.getRenderType();

            if (j == 1 || j == 19 || j == 12 || j == 2) {
                f7 = 0.5F;
            }

            GL11.glScalef(f7, f7, f7);

            for (i = 0; i < b0; ++i) {
                GL11.glPushMatrix();

                if (i > 0) {
                    f5 = (this.random.nextFloat() * 2.0F - 1.0F) * 0.2F / f7;
                    f4 = (this.random.nextFloat() * 2.0F - 1.0F) * 0.2F / f7;
                    f6 = (this.random.nextFloat() * 2.0F - 1.0F) * 0.2F / f7;
                    GL11.glTranslatef(f5, f4, f6);
                }

                f5 = 1.0F;
                this.itemRenderBlocks.renderBlockAsItem(block, itemstack.getItemDamage(), f5);
                GL11.glPopMatrix();
            }
        } else {
            float f8;

            if (itemstack.getItem().requiresMultipleRenderPasses()) {
                if (renderInFrame) {
                    GL11.glScalef(0.5128205F, 0.5128205F, 0.5128205F);
                    GL11.glTranslatef(0.0F, -0.05F, 0.0F);
                } else {
                    GL11.glScalef(0.5F, 0.5F, 0.5F);
                }

                this.loadTexture("/gui/items.png");

                for (int k = 0; k < itemstack.getItem().getRenderPasses(itemstack.getItemDamage()); ++k) {
                    this.random.setSeed(187L);
                    Icon icon = itemstack.getItem().getIcon(itemstack, k);
                    f8 = 1.0F;

                    if (this.renderWithColor) {
                        i = Item.itemsList[itemstack.itemID].getColorFromItemStack(itemstack, k);
                        f5 = (float) (i >> 16 & 255) / 255.0F;
                        f4 = (float) (i >> 8 & 255) / 255.0F;
                        f6 = (float) (i & 255) / 255.0F;
                        GL11.glColor4f(f5 * f8, f4 * f8, f6 * f8, 1.0F);
                        this.renderDroppedItem(par1EntityItem, icon, b0, par9, f5 * f8, f4 * f8, f6 * f8);
                    } else {
                        this.renderDroppedItem(par1EntityItem, icon, b0, par9, 1.0F, 1.0F, 1.0F);
                    }
                }
            } else {
                if (renderInFrame) {
                    GL11.glScalef(0.5128205F, 0.5128205F, 0.5128205F);
                    GL11.glTranslatef(0.0F, -0.05F, 0.0F);
                } else {
                    GL11.glScalef(0.5F, 0.5F, 0.5F);
                }

                Icon icon1 = itemstack.getIconIndex();

                if (itemstack.getItemSpriteNumber() == 0) {
                    this.loadTexture("/terrain.png");
                } else {
                    this.loadTexture("/gui/items.png");
                }

                if (this.renderWithColor) {
                    int l = Item.itemsList[itemstack.itemID].getColorFromItemStack(itemstack, 0);
                    f8 = (float) (l >> 16 & 255) / 255.0F;
                    float f9 = (float) (l >> 8 & 255) / 255.0F;
                    f5 = (float) (l & 255) / 255.0F;
                    f4 = 1.0F;
                    this.renderDroppedItem(par1EntityItem, icon1, b0, par9, f8 * f4, f9 * f4, f5 * f4);
                } else {
                    this.renderDroppedItem(par1EntityItem, icon1, b0, par9, 1.0F, 1.0F, 1.0F);
                }
            }
        }

        GL11.glDisable(GL12.GL_RESCALE_NORMAL);
        GL11.glPopMatrix();
    }
}

From source file:eplus.renders.TableEntityItemRenderer.java

License:LGPL

/**
 * Renders a dropped item/*from  w  w  w . j  a  v  a2 s .c o m*/
 */
private void renderDroppedItem(EntityItem par1EntityItem, Icon par2Icon, int par3, float par4, float par5,
        float par6, float par7) {
    Tessellator tessellator = Tessellator.instance;

    if (par2Icon == null) {
        par2Icon = this.renderManager.renderEngine
                .getMissingIcon(par1EntityItem.getEntityItem().getItemSpriteNumber());
    }

    float f4 = par2Icon.getMinU();
    float f5 = par2Icon.getMaxU();
    float f6 = par2Icon.getMinV();
    float f7 = par2Icon.getMaxV();
    float f8 = 1.0F;
    float f9 = 0.5F;
    float f10 = 0.25F;
    float f11;

    GL11.glPushMatrix();

    if (renderInFrame) {
        GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F);
    } else {
        GL11.glRotatef((((float) par1EntityItem.age + par4) / 20.0F + par1EntityItem.hoverStart)
                * (180F / (float) Math.PI), 0.0F, 1.0F, 0.0F);
    }

    float f12 = 0.0625F;
    f11 = 0.021875F;
    ItemStack itemstack = par1EntityItem.getEntityItem();
    int j = itemstack.stackSize;
    byte b0 = getMiniItemCount(itemstack);

    GL11.glTranslatef(-f9, -f10, -((f12 + f11) * (float) b0 / 2.0F));

    for (int k = 0; k < b0; ++k) {
        GL11.glTranslatef(0.0F, 0.0F, f12 + f11);
        // Makes items offset when in 3D, like when in 2D, looks much
        // better. Considered a vanilla bug...
        if (k > 0 && shouldSpreadItems()) {
            float x = (random.nextFloat() * 2.0F - 1.0F) * 0.3F / 0.5F;
            float y = (random.nextFloat() * 2.0F - 1.0F) * 0.3F / 0.5F;
            float z = (random.nextFloat() * 2.0F - 1.0F) * 0.3F / 0.5F;
            GL11.glTranslatef(x, y, f12 + f11);
        } else {
            GL11.glTranslatef(0f, 0f, f12 + f11);
        }

        if (itemstack.getItemSpriteNumber() == 0) {
            this.loadTexture("/terrain.png");
        } else {
            this.loadTexture("/gui/items.png");
        }

        GL11.glColor4f(par5, par6, par7, 1.0F);
        ItemRenderer.renderItemIn2D(tessellator, f5, f6, f4, f7, par2Icon.getSheetWidth(),
                par2Icon.getSheetHeight(), f12);

        if (itemstack != null && itemstack.hasEffect()) {
            GL11.glDepthFunc(GL11.GL_EQUAL);
            GL11.glDisable(GL11.GL_LIGHTING);
            this.renderManager.renderEngine.bindTexture("%blur%/misc/glint.png");
            GL11.glEnable(GL11.GL_BLEND);
            GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE);
            float f13 = 0.76F;
            GL11.glColor4f(0.5F * f13, 0.25F * f13, 0.8F * f13, 1.0F);
            GL11.glMatrixMode(GL11.GL_TEXTURE);
            GL11.glPushMatrix();
            float f14 = 0.125F;
            GL11.glScalef(f14, f14, f14);
            float f15 = (float) (Minecraft.getSystemTime() % 3000L) / 3000.0F * 8.0F;
            GL11.glTranslatef(f15, 0.0F, 0.0F);
            GL11.glRotatef(-50.0F, 0.0F, 0.0F, 1.0F);
            ItemRenderer.renderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, 1.0F, 255, 255, f12);
            GL11.glPopMatrix();
            GL11.glPushMatrix();
            GL11.glScalef(f14, f14, f14);
            f15 = (float) (Minecraft.getSystemTime() % 4873L) / 4873.0F * 8.0F;
            GL11.glTranslatef(-f15, 0.0F, 0.0F);
            GL11.glRotatef(10.0F, 0.0F, 0.0F, 1.0F);
            ItemRenderer.renderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, 1.0F, 255, 255, f12);
            GL11.glPopMatrix();
            GL11.glMatrixMode(GL11.GL_MODELVIEW);
            GL11.glDisable(GL11.GL_BLEND);
            GL11.glEnable(GL11.GL_LIGHTING);
            GL11.glDepthFunc(GL11.GL_LEQUAL);
        }
    }

    GL11.glPopMatrix();

}

From source file:eplus.renders.TableEntityItemRenderer.java

License:LGPL

/**
 * Renders the item's icon or block into the UI at the specified position.
 */// w  w  w.  j a  v  a  2s. c  om
public void renderItemIntoGUI(FontRenderer par1FontRenderer, RenderEngine par2RenderEngine,
        ItemStack par3ItemStack, int par4, int par5) {
    int k = par3ItemStack.itemID;
    int l = par3ItemStack.getItemDamage();
    Icon icon = par3ItemStack.getIconIndex();
    float f;
    float f1;
    float f2;

    Block block = (k < Block.blocksList.length ? Block.blocksList[k] : null);
    if (par3ItemStack.getItemSpriteNumber() == 0 && block != null
            && RenderBlocks.renderItemIn3d(Block.blocksList[k].getRenderType())) {
        par2RenderEngine.bindTexture("/terrain.png");
        GL11.glPushMatrix();
        GL11.glTranslatef((float) (par4 - 2), (float) (par5 + 3), -3.0F + this.zLevel);
        GL11.glScalef(10.0F, 10.0F, 10.0F);
        GL11.glTranslatef(1.0F, 0.5F, 1.0F);
        GL11.glScalef(1.0F, 1.0F, -1.0F);
        GL11.glRotatef(210.0F, 1.0F, 0.0F, 0.0F);
        GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F);
        int i1 = Item.itemsList[k].getColorFromItemStack(par3ItemStack, 0);
        f2 = (float) (i1 >> 16 & 255) / 255.0F;
        f = (float) (i1 >> 8 & 255) / 255.0F;
        f1 = (float) (i1 & 255) / 255.0F;

        if (this.renderWithColor) {
            GL11.glColor4f(f2, f, f1, 1.0F);
        }

        GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F);
        this.itemRenderBlocks.useInventoryTint = this.renderWithColor;
        this.itemRenderBlocks.renderBlockAsItem(block, l, 1.0F);
        this.itemRenderBlocks.useInventoryTint = true;
        GL11.glPopMatrix();
    } else {
        int j1;

        if (Item.itemsList[k].requiresMultipleRenderPasses()) {
            GL11.glDisable(GL11.GL_LIGHTING);
            par2RenderEngine
                    .bindTexture(par3ItemStack.getItemSpriteNumber() == 0 ? "/terrain.png" : "/gui/items.png");

            for (j1 = 0; j1 < Item.itemsList[k].getRenderPasses(l); ++j1) {
                Icon icon1 = Item.itemsList[k].getIcon(par3ItemStack, j1);
                int k1 = Item.itemsList[k].getColorFromItemStack(par3ItemStack, j1);
                f = (float) (k1 >> 16 & 255) / 255.0F;
                f1 = (float) (k1 >> 8 & 255) / 255.0F;
                float f3 = (float) (k1 & 255) / 255.0F;

                if (this.renderWithColor) {
                    GL11.glColor4f(f, f1, f3, 1.0F);
                }

                this.renderIcon(par4, par5, icon1, 16, 16);
            }

            GL11.glEnable(GL11.GL_LIGHTING);
        } else {
            GL11.glDisable(GL11.GL_LIGHTING);

            if (par3ItemStack.getItemSpriteNumber() == 0) {
                par2RenderEngine.bindTexture("/terrain.png");
            } else {
                par2RenderEngine.bindTexture("/gui/items.png");
            }

            if (icon == null) {
                icon = par2RenderEngine.getMissingIcon(par3ItemStack.getItemSpriteNumber());
            }

            j1 = Item.itemsList[k].getColorFromItemStack(par3ItemStack, 0);
            float f4 = (float) (j1 >> 16 & 255) / 255.0F;
            f2 = (float) (j1 >> 8 & 255) / 255.0F;
            f = (float) (j1 & 255) / 255.0F;

            if (this.renderWithColor) {
                GL11.glColor4f(f4, f2, f, 1.0F);
            }

            this.renderIcon(par4, par5, icon, 16, 16);
            GL11.glEnable(GL11.GL_LIGHTING);
        }
    }

    GL11.glEnable(GL11.GL_CULL_FACE);
}

From source file:extrabiomes.module.fabrica.scarecrow.RenderScarecrow.java

License:Creative Commons License

protected void preRenderScale(EntityScarecrow entity, float f) {
    GL11.glScalef(1.25F, 1.25F, 1.25F);
}

From source file:fable.imageviewer.views.SceneGrip.java

License:Open Source License

/**
 * Warning called constantly in display loop - change with care.
 *///from  w w w .  j  ava2  s .c o m
public void adjust() {
    canvas.setCurrent();
    try {
        GLContext.useContext(canvas);
    } catch (LWJGLException ex) {
        FableUtils.excMsg(ReliefView.class, "Error in adjust using GLContext.useContext", ex);
    }
    // gl = context.getGL ();
    GL11.glMatrixMode(GL11.GL_PROJECTION);
    GL11.glLoadIdentity();
    /* set the orthogonal projection to the size of the window */
    GL11.glOrtho(0, canvasWidth, canvasHeight, 0, -1.0e5f, 1.0e5f);
    GL11.glMatrixMode(GL11.GL_MODELVIEW);
    GL11.glLoadIdentity();
    GL11.glTranslatef(canvasWidth / 2 + this.xoff, canvasHeight / 2 + this.yoff, 0);
    GL11.glScalef(zoff, zoff, zoff);
    /*
     * zoff has no effect on the orthogonal projection therefore zoom by
     * passing zoff to scale
     */
    GL11.glRotatef(this.xrot, 1f, 0.0f, 0.0f);
    GL11.glRotatef(this.yrot, 0.0f, 1f, 0.0f);
    GL11.glTranslatef(-prov.getImageWidth() / 2, -prov.getImageHeight() / 2, 0);
}

From source file:flamefeed.FlameProtect.src.client.GuiSQL.java

private void drawSQLResult() {
    if (SQLResult.rows == null) {
        return;/*from  ww  w .  ja v a 2 s . c  o m*/
    }

    float scale = 1.0F;

    GL11.glScalef(scale, scale, 1.0F);

    //Titles
    fontRenderer.drawString("Date", xAnchor, curY, 0x000000, false);
    fontRenderer.drawString("x", xAnchor + 135, curY, 0x000000, false);
    fontRenderer.drawString("y", xAnchor + 165, curY, 0x000000, false);
    fontRenderer.drawString("z", xAnchor + 195, curY, 0x000000, false);
    fontRenderer.drawString("source", xAnchor + 225, curY, 0x000000, false);
    fontRenderer.drawString("action", xAnchor + 300, curY, 0x000000, false);
    fontRenderer.drawString("targetName", xAnchor + 340, curY, 0x000000, false);
    fontRenderer.drawString("toolName", xAnchor + 400, curY, 0x000000, false);
    curY += sqlRowHeight;

    for (SQLResultRow row : SQLResult.rows) {
        fontRenderer.drawString(row.get("time"), xAnchor, curY, 0x000000, false);
        fontRenderer.drawString(row.get("x"), xAnchor + 135, curY, 0x000000, false);
        fontRenderer.drawString(row.get("y"), xAnchor + 165, curY, 0x000000, false);
        fontRenderer.drawString(row.get("z"), xAnchor + 195, curY, 0x000000, false);
        fontRenderer.drawString(row.get("source"), xAnchor + 225, curY, 0x000000, false);
        fontRenderer.drawString(row.get("action"), xAnchor + 300, curY, 0x000000, false);
        fontRenderer.drawString(row.get("targetName"), xAnchor + 340, curY, 0x000000, false);
        fontRenderer.drawString(row.get("toolName"), xAnchor + 400, curY, 0x000000, false);
        curY += sqlRowHeight;
        if (curY > 0.8F * height) {
            break;
        }
    }

    GL11.glScalef(1.0F / scale, 1.0F / scale, 1.0F);

}