List of usage examples for org.lwjgl.opengl GL11 glPopMatrix
public static native void glPopMatrix();
From source file:cn.liutils.util.helper.Font.java
License:Open Source License
private void drawSingleLine(String line, int color, Align align) { double x0 = 0, y0 = 0; switch (align) { case CENTER:// w ww.ja v a2s.co m x0 = -mcFont().getStringWidth(line) / 2; break; case LEFT: x0 = 0; break; case RIGHT: x0 = -mcFont().getStringWidth(line); break; default: break; } GL11.glPushMatrix(); GL11.glTranslated(x0, y0, 0); mcFont().drawString(line, 0, 0, color); GL11.glPopMatrix(); }
From source file:cn.liutils.util.render.Font.java
License:Open Source License
/** * @return Rectangle size// ww w . j a v a 2 s . co m */ public void drawWrapped(String str, double x, double y, double size, int color, double limit) { double scale = size / mcFont.FONT_HEIGHT; GL11.glPushMatrix(); GL11.glTranslated(x, y, 0); GL11.glScaled(scale, scale, 1); mcFont.drawSplitString(str, 0, 0, 0xFFFFFF, (int) (limit * scale)); GL11.glPopMatrix(); }
From source file:cn.liutils.util.render.Font.java
License:Open Source License
public void draw(String str, double x, double y, double size, int color, Align align) { GL11.glEnable(GL11.GL_BLEND);/*from w ww .j a va2s . c om*/ //GL11.glDepthMask(false); double scale = size / mcFont.FONT_HEIGHT; GL11.glPushMatrix(); { GL11.glTranslated(x, y, 0); GL11.glScaled(scale, scale, 1); String[] ss = str.split("\n"); for (int i = 0; i < ss.length; ++i) { GL11.glPushMatrix(); { double dy = i * mcFont.FONT_HEIGHT; GL11.glTranslated(0, dy, 0); drawSingleLine(ss[i], color, align); } GL11.glPopMatrix(); } } GL11.glPopMatrix(); }
From source file:cn.liutils.util.render.Font.java
License:Open Source License
private void drawSingleLine(String line, int color, Align align) { double x0 = 0, y0 = 0; switch (align) { case CENTER:/* ww w .j a v a 2s .c o m*/ x0 = -mcFont.getStringWidth(line) / 2; break; case LEFT: x0 = 0; break; case RIGHT: x0 = -mcFont.getStringWidth(line); break; default: break; } GL11.glPushMatrix(); GL11.glTranslated(x0, y0, 0); mcFont.drawString(line, 0, 0, color); GL11.glPopMatrix(); }
From source file:cn.liutils.util.render.LambdaFont.java
License:Open Source License
public void draw(String str, double x, double y, double size, Align align) { GL11.glEnable(GL11.GL_BLEND);/*from w ww . ja v a 2 s . c o m*/ GL11.glMatrixMode(GL11.GL_MODELVIEW); //GL11.glDepthMask(false); double psx = HudUtils.SCALE_X, psy = HudUtils.SCALE_Y; GL11.glPushMatrix(); { GL11.glTranslated(x, y, 0); GL11.glScaled(size, size, 1); String[] ss = str.split("\n"); for (int i = 0; i < ss.length; ++i) { GL11.glPushMatrix(); { double dy = i * (fontSize + spacing) / fontSize; GL11.glTranslated(0, dy, 0); drawSingleLine(ss[i], align); } GL11.glPopMatrix(); } } GL11.glPopMatrix(); //GL11.glDepthMask(true); HudUtils.SCALE_X = psx; HudUtils.SCALE_Y = psy; }
From source file:cn.liutils.util.render.LambdaFont.java
License:Open Source License
/** * It must be guaranteed that the string contains no line-break characters * @returns area of drawing/* w w w . java 2 s .c o m*/ */ public Vector2d drawLinebreak(String str, double x, double y, double size, double cst) { GL11.glEnable(GL11.GL_BLEND); GL11.glMatrixMode(GL11.GL_MODELVIEW); double psx = HudUtils.SCALE_X, psy = HudUtils.SCALE_Y; GL11.glPushMatrix(); GL11.glTranslated(x, y, 0); GL11.glScaled(size, size, 1); List<Pair<String, Boolean>> arr = dlbPreProc(str, size, cst); double spcstp = getExtent(' ').getStep(); double y0 = 0; double curLen = 0; double maxLen = 0; for (int i = 0; i < arr.size(); ++i) { Pair<String, Boolean> pair = arr.get(i); double len = widthSingleLine(pair.first); if (size * len < cst && size * (curLen + len) > cst) { --i; maxLen = Math.max(curLen, maxLen); curLen = 0; y0 += 1.0; continue; } GL11.glPushMatrix(); { GL11.glTranslated(curLen, y0, 0); drawSingleLine(pair.first, Align.LEFT); } GL11.glPopMatrix(); curLen += len + (pair.second ? spcstp : 0); if (size * len > cst) { maxLen = Math.max(curLen, maxLen); curLen = 0; y0 += 1.0; } } maxLen = Math.max(curLen, maxLen); GL11.glPopMatrix(); HudUtils.SCALE_X = psx; HudUtils.SCALE_Y = psy; return new Vector2d(maxLen * size, y0 * size + size + spacing * size / fontSize); }
From source file:cn.liutils.util.RenderUtils.java
License:Open Source License
public static void renderItemIn2d(double w, ResourceLocation front, ResourceLocation back, double u1, double v1, double u2, double v2) { Vec3 a1 = newV3(0, 0, w), a2 = newV3(1, 0, w), a3 = newV3(1, 1, w), a4 = newV3(0, 1, w), a5 = newV3(0, 0, -w), a6 = newV3(1, 0, -w), a7 = newV3(1, 1, -w), a8 = newV3(0, 1, -w); Minecraft mc = Minecraft.getMinecraft(); GL11.glPushMatrix();// www . j a v a2s . co m RenderUtils.loadTexture(back); t.startDrawingQuads(); t.setNormal(0.0F, 0.0F, 1.0F); addVertex(a1, u2, v2); addVertex(a2, u1, v2); addVertex(a3, u1, v1); addVertex(a4, u2, v1); t.draw(); RenderUtils.loadTexture(front); t.startDrawingQuads(); t.setNormal(0.0F, 0.0F, -1.0F); addVertex(a8, u2, v1); addVertex(a7, u1, v1); addVertex(a6, u1, v2); addVertex(a5, u2, v2); t.draw(); int var7; float var8; double var9; float var10; /* * Gets the width/16 of the currently bound texture, used to fix the * side rendering issues on textures != 16 */ int tileSize = 32; float tx = 1.0f / (32 * tileSize); float tz = 1.0f / tileSize; t.startDrawingQuads(); t.setNormal(-1.0F, 0.0F, 0.0F); for (var7 = 0; var7 < tileSize; ++var7) { var8 = (float) var7 / tileSize; var9 = u2 - (u2 - u1) * var8 - tx; var10 = 1.0F * var8; t.addVertexWithUV(var10, 0.0D, -w, var9, v2); t.addVertexWithUV(var10, 0.0D, w, var9, v2); t.addVertexWithUV(var10, 1.0D, w, var9, v1); t.addVertexWithUV(var10, 1.0D, -w, var9, v1); t.addVertexWithUV(var10, 1.0D, w, var9, v1); t.addVertexWithUV(var10, 0.0D, w, var9, v2); t.addVertexWithUV(var10, 0.0D, -w, var9, v2); t.addVertexWithUV(var10, 1.0D, -w, var9, v1); } t.draw(); GL11.glPopMatrix(); }
From source file:cn.liutils.util.RenderUtils.java
License:Open Source License
public static void renderOverlay_Equip(ResourceLocation src) { //Setup//from www .j a va 2 s .c om GL11.glDepthFunc(GL11.GL_EQUAL); GL11.glDisable(GL11.GL_LIGHTING); loadTexture(src); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE); float f7 = 0.76F; GL11.glMatrixMode(GL11.GL_TEXTURE); //Push texture mat GL11.glPushMatrix(); float f8 = 0.125F; GL11.glScalef(f8, f8, f8); float f9 = Minecraft.getSystemTime() % 3000L / 3000.0F * 8.0F; GL11.glTranslatef(f9, 0.0F, 0.0F); //xOffset loops between 0.0 and 8.0 GL11.glRotatef(-50.0F, 0.0F, 0.0F, 1.0F); ItemRenderer.renderItemIn2D(t, 0.0F, 0.0F, 1.0F, 1.0F, 256, 256, 0.0625F); GL11.glPopMatrix(); //Second pass GL11.glPushMatrix(); GL11.glScalef(f8, f8, f8); f9 = Minecraft.getSystemTime() % 4873L / 4873.0F * 8.0F; //Loop between 0 and 8, longer loop GL11.glTranslatef(-f9, 0.0F, 0.0F); //Still xOffset GL11.glRotatef(10.0F, 0.0F, 0.0F, 1.0F); //However, different rotation! ItemRenderer.renderItemIn2D(t, 0.0F, 0.0F, 1.0F, 1.0F, 256, 256, 0.0625F); GL11.glPopMatrix(); //Pop texture mat GL11.glMatrixMode(GL11.GL_MODELVIEW); GL11.glDisable(GL11.GL_BLEND); GL11.glEnable(GL11.GL_LIGHTING); GL11.glDepthFunc(GL11.GL_LEQUAL); }
From source file:cn.liutils.util.RenderUtils.java
License:Open Source License
public static void renderOverlay_Inv(ResourceLocation src) { GL11.glDepthFunc(GL11.GL_EQUAL);/*w w w .j a va2 s. co m*/ GL11.glDisable(GL11.GL_LIGHTING); loadTexture(src); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE); float f7 = 0.76F; //GL11.glColor4f(0.5F * f7, 0.25F * f7, 0.8F * f7, 1.0F); GL11.glMatrixMode(GL11.GL_TEXTURE); GL11.glPushMatrix(); float f8 = 0.125F; GL11.glScalef(f8, f8, f8); float f9 = Minecraft.getSystemTime() % 3000L / 3000.0F * 8.0F; GL11.glTranslatef(f9, 0.0F, 0.0F); GL11.glRotatef(-50.0F, 0.0F, 0.0F, 1.0F); t.startDrawingQuads(); t.addVertexWithUV(0.0, 0.0, 0.0, 0.0, 0.0); t.addVertexWithUV(0.0, 16.0, 0.0, 0.0, 1.0); t.addVertexWithUV(16.0, 16.0, 0.0, 1.0, 1.0); t.addVertexWithUV(16.0, 0.0, 0.0, 1.0, 0.0); t.draw(); GL11.glPopMatrix(); GL11.glPushMatrix(); GL11.glScalef(f8, f8, f8); f9 = Minecraft.getSystemTime() % 4873L / 4873.0F * 8.0F; GL11.glTranslatef(-f9, 0.0F, 0.0F); GL11.glRotatef(10.0F, 0.0F, 0.0F, 1.0F); t.startDrawingQuads(); t.addVertexWithUV(0.0, 0.0, 0.0, 0.0, 0.0); t.addVertexWithUV(0.0, 16.0, 0.0, 0.0, 1.0); t.addVertexWithUV(16.0, 16.0, 0.0, 1.0, 1.0); t.addVertexWithUV(16.0, 0.0, 0.0, 1.0, 0.0); t.draw(); GL11.glPopMatrix(); GL11.glMatrixMode(GL11.GL_MODELVIEW); GL11.glDisable(GL11.GL_BLEND); GL11.glEnable(GL11.GL_LIGHTING); GL11.glDepthFunc(GL11.GL_LEQUAL); }
From source file:cn.liutils.util.RenderUtils.java
License:Open Source License
/** * Draw a cube with xwidth=w zwidth=l height=h at (0, 0, 0) with no texture. * <br/>Often used for debugging? ^^ * Currently, the cube has been FORCE set to the no-lighting state. * DrawObject may take over this in further versions. * @param w xwidth/*from w w w. ja v a2 s .c o m*/ * @param l zwidth * @param h height */ public static void drawCube(double w, double l, double h, boolean texture) { final Vec3 vs[] = { null, //placeholder newV3(0, 0, 0), newV3(w, 0, 0), newV3(w, 0, l), newV3(0, 0, l), newV3(0, h, 0), newV3(w, h, 0), newV3(w, h, l), newV3(0, h, l), }; final int uvs[][] = { { 0, 0 }, { 1, 0 }, { 1, 1 }, { 0, 1 } }; final int arr[][] = { { 1, 2, 3, 4 }, { 5, 6, 2, 1 }, { 7, 3, 2, 6 }, { 7, 8, 4, 3 }, { 8, 7, 6, 5 }, { 5, 1, 4, 8 } }; final int normals[][] = { { 0, -1, 0 }, { 0, 0, -1 }, { 1, 0, 0 }, { 0, 0, 1 }, { 0, 1, 0 }, { -1, 0, 0 } }; GL11.glPushMatrix(); { for (int i = 0; i < arr.length; ++i) { t.startDrawingQuads(); t.setBrightness(15728880); t.setNormal(normals[i][0], normals[i][1], normals[i][2]); int[] va = arr[i]; for (int j = 0; j < 4; ++j) { Vec3 v = vs[va[j]]; t.addVertexWithUV(v.xCoord, v.yCoord, v.zCoord, uvs[j][0], uvs[j][1]); } t.draw(); } } GL11.glPopMatrix(); }