private float[] createGeometry() { return SharedGeometry.createQuadGeometry(-offsetX + IMAGE_DRAW_OFFSET, -offsetY + IMAGE_DRAW_OFFSET, -offsetX + width + IMAGE_DRAW_OFFSET,-offsetY + height + IMAGE_DRAW_OFFSET, umin, vmax, umax, vmin); }
protected float[] getGeometry() { return SharedGeometry.createQuadGeometry(toffsetX, -toffsetY, toffsetX + twidth, -toffsetY - theight, 0, 0, 1, 1); }
private void generateGeometry(int descent) { float[] geodata = new float[256*4*4]; for(int l = 0;l != 16;l++) { int line_offset = 0; for (int c = 0; c != 16; c++) { float dx = line_offset; float dy = tex_height-(l*gentex_line_height+descent); float dw = char_widths[l*16+c]; float dh = gentex_line_height; float[] data = SharedGeometry.createQuadGeometry(0, 0,dw/(float)gentex_line_height, 1, dx/tex_width, dy/tex_height, (dx+dw)/tex_width, (dy+dh)/tex_height); System.arraycopy(data, 0, geodata, (l*16+c)*4*4, 4*4); line_offset += char_widths[l*16+c]+char_spacing; } } geometry = drawContext.storeGeometry(geodata, EGeometryFormatType.Texture2D, false, font.getName()); }
@Override public void drawImageAtRect(GLDrawContext gl, float x, float y, float width, float height) { try { if(imageRectHandle == null) imageRectHandle = SharedGeometry.addGeometry(gl, SharedGeometry.createQuadGeometry(0,1, 1, 0, umin, vmin, umax, vmax)); draw(gl, imageRectHandle, x, y, 0, width, height, 0, null, 1); } catch (IllegalBufferException e) { e.printStackTrace(); } if (torso != null) { torso.drawImageAtRect(gl, x, y, width, height); } }
public MultiImageImage(MultiImageMap map, ImageMetadata settlerMeta, int settlerx, int settlery, ImageMetadata torsoMeta, int torsox, int torsoy) { this.map = map; settler = new Data(); settlerFloats = createGeometry(map, settlerMeta, settlerx, settlery, settler); settlerRectFloats = SharedGeometry.createQuadGeometry(0, 1, 1, 0, settler.umin, settler.vmin, settler.umax, settler.vmax); if (torsoMeta != null) { torso = new Data(); torsoFloats = createGeometry(map, torsoMeta, torsox, torsoy, torso); } else { torso = null; torsoGeometry = null; } }
private static float[] createGeometry(MultiImageMap map, ImageMetadata settlerMeta, int settlerx, int settlery, Data data) { data.width = settlerMeta.width; data.height = settlerMeta.height; data.offsetX = settlerMeta.offsetX; data.offsetY = settlerMeta.offsetY; data.umin = (float) settlerx / map.getWidth(); data.umax = (float) (settlerx + settlerMeta.width) / map.getWidth(); data.vmin = (float) (settlery + settlerMeta.height) / map.getHeight(); data.vmax = (float) settlery / map.getHeight(); return SharedGeometry.createQuadGeometry(settlerMeta.offsetX + IMAGE_DRAW_OFFSET, -settlerMeta.offsetY + IMAGE_DRAW_OFFSET, settlerMeta.offsetX + settlerMeta.width + IMAGE_DRAW_OFFSET, -settlerMeta.offsetY - settlerMeta.height + IMAGE_DRAW_OFFSET, data.umin, data.vmax, data.umax, data.vmin); }
private void checkStaticHandles(GLDrawContext gl) throws IllegalBufferException { checkHandles(gl); if(buildHandle == null || !buildHandle.isValid()) { buildHandle = gl.generateGeometry(3, EGeometryFormatType.Texture2D, true, "building-progress"); } if(rectHandle == null || SharedGeometry.isInvalid(gl, rectHandle)) { rectHandle = SharedGeometry.addGeometry(gl, SharedGeometry.createQuadGeometry(0, 1, 1, 0, 0, 0, 1, 1)); } }