void status(TrackEntry entry) { TrackEntry from = entry.mixingFrom; if (from == null) return; status(from); status.append(from.animation.name); status.append(' '); status.append(Math.min(100, (int) (entry.mixTime / entry.mixDuration * 100))); status.append("% -> "); }
protected void computeInitialGlyphLayout(@NtN Vector2 size) { glyphLayout.setText(font, rawText, Color.BLACK, size.x, Align.left, true); StringBuilder text = new StringBuilder(); float minY = 0, maxY = 0; for (GlyphLayout.GlyphRun run : glyphLayout.runs) { minY = Math.min(run.y, minY); maxY = Math.max(run.y, maxY); for (BitmapFont.Glyph glyph : run.glyphs) text.append(glyph.toString()); } computedText = text.toString(); futureRuns = new Array<>(glyphLayout.runs); futureRuns.reverse(); glyphLayout.runs.clear(); }
@Override public String getResultAsString() { BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); try { int approxStringLength = connection.getContentLength(); StringBuilder b; if (approxStringLength > 0) b = new StringBuilder(approxStringLength); else b = new StringBuilder(); String line; while ((line = reader.readLine()) != null) b.append(line); return b.toString(); } catch (IOException e) { return ""; } finally { StreamUtils.closeQuietly(reader); } }
@Override public void render() { Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); fpsStringBuilder.setLength(0); getStatus(fpsStringBuilder); fpsLabel.setText(fpsStringBuilder); if (currentTest != null) currentTest.render(); stage.act(); stage.draw(); }
public void render() { Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); float delta = Gdx.graphics.getDeltaTime(); // Draw skeleton origin lines. ShapeRenderer shapes = debugRenderer.getShapeRenderer(); if (state != null) { shapes.setColor(Color.DARK_GRAY); shapes.begin(ShapeType.Line); shapes.line(skeleton.x, -99999, skeleton.x, 99999); shapes.line(-99999, skeleton.y, 99999, skeleton.y); shapes.end(); } if (skeleton != null) { // Reload if skeleton file was modified. if (reloadTimer <= 0) { lastModifiedCheck -= delta; if (lastModifiedCheck < 0) { lastModifiedCheck = checkModifiedInterval; long time = skeletonFile.lastModified(); if (time != 0 && lastModified != time) reloadTimer = reloadDelay; } } else { reloadTimer -= delta; if (reloadTimer <= 0) { loadSkeleton(skeletonFile); ui.toast("Reloaded."); } } // Pose and render skeleton. state.getData().setDefaultMix(ui.mixSlider.getValue()); renderer.setPremultipliedAlpha(ui.premultipliedCheckbox.isChecked()); skeleton.setFlip(ui.flipXCheckbox.isChecked(), ui.flipYCheckbox.isChecked()); skeleton.setPosition(skeletonX, skeletonY); delta = Math.min(delta, 0.032f) * ui.speedSlider.getValue(); skeleton.update(delta); state.update(delta); state.apply(skeleton); skeleton.updateWorldTransform(); batch.setColor(Color.WHITE); batch.begin(); renderer.draw(batch, skeleton); batch.end(); debugRenderer.setBones(ui.debugBonesCheckbox.isChecked()); debugRenderer.setRegionAttachments(ui.debugRegionsCheckbox.isChecked()); debugRenderer.setBoundingBoxes(ui.debugBoundingBoxesCheckbox.isChecked()); debugRenderer.setMeshHull(ui.debugMeshHullCheckbox.isChecked()); debugRenderer.setMeshTriangles(ui.debugMeshTrianglesCheckbox.isChecked()); debugRenderer.setPaths(ui.debugPathsCheckbox.isChecked()); debugRenderer.draw(skeleton); } if (state != null) { // AnimationState status. status.setLength(0); for (int i = 0, n = state.getTracks().size; i < n; i++) { TrackEntry entry = state.getTracks().get(i); if (entry == null) continue; status.append(i); status.append(": [LIGHT_GRAY]"); status(entry); status.append("[WHITE]"); status.append(entry.animation.name); status.append('\n'); } ui.statusLabel.setText(status); } // Render UI. ui.render(); // Draw indicator lines for animation and mix times. if (state != null) { TrackEntry entry = state.getCurrent(0); if (entry != null) { shapes.begin(ShapeType.Line); float percent = entry.getAnimationTime() / entry.getAnimationEnd(); float x = ui.window.getRight() + (Gdx.graphics.getWidth() - ui.window.getRight()) * percent; shapes.setColor(Color.CYAN); shapes.line(x, 0, x, 12); percent = entry.getMixDuration() == 0 ? 1 : Math.min(1, entry.getMixTime() / entry.getMixDuration()); x = ui.window.getRight() + (Gdx.graphics.getWidth() - ui.window.getRight()) * percent; shapes.setColor(Color.RED); shapes.line(x, 0, x, 12); shapes.end(); } } }
protected void getStatus(final StringBuilder stringBuilder) { stringBuilder.append("FPS: ").append(Gdx.graphics.getFramesPerSecond()); if (helpMessage != null) stringBuilder.append(" ").append(helpMessage); }