/** Check if screen coordinates are inside the viewport's screen area. */ protected boolean isInsideViewport (int screenX, int screenY) { int x0 = viewport.getScreenX(); int x1 = x0 + viewport.getScreenWidth(); int y0 = viewport.getScreenY(); int y1 = y0 + viewport.getScreenHeight(); screenY = Gdx.graphics.getHeight() - 1 - screenY; return screenX >= x0 && screenX < x1 && screenY >= y0 && screenY < y1; }
/** Check if screen coordinates are inside the viewport's screen area. */ protected boolean isInsideViewport (int screenX, int screenY) { int x0 = viewport.getScreenX(); int x1 = x0 + viewport.getScreenWidth(); int y0 = viewport.getScreenY(); int y1 = y0 + viewport.getScreenHeight(); screenY = Gdx.graphics.getHeight() - 1 - screenY; return screenX >= x0 && screenX < x1 && screenY >= y0 && screenY < y1; }
@Override public void draw3dText (Vector3 location, String textString) { if (spriteBatch == null) { spriteBatch = new SpriteBatch(); } if (font == null) { font = new BitmapFont(); } // this check is necessary to avoid "mirrored" instances of the text if (camera.frustum.pointInFrustum(location)) { if (viewport != null) { camera.project(location, viewport.getScreenX(), viewport.getScreenY(), viewport.getScreenWidth(), viewport.getScreenHeight()); } else { camera.project(location); } shapeRenderer.end(); spriteBatch.begin(); // the text will be centered on the position font.draw(spriteBatch, textString, location.x, location.y, 0, textString.length(), 0, Align.center, false); spriteBatch.end(); shapeRenderer.begin(ShapeType.Line); } }
@Override public void draw3dText (Vector3 location, String textString) { if (spriteBatch == null) { spriteBatch = new SpriteBatch(); } if (font == null) { font = new BitmapFont(); } // this check is necessary to avoid "mirrored" instances of the text if (camera.frustum.pointInFrustum(location)) { if (viewport != null) { camera.project(location, viewport.getScreenX(), viewport.getScreenY(), viewport.getScreenWidth(), viewport.getScreenHeight()); } else { camera.project(location); } shapeRenderer.end(); spriteBatch.begin(); // the text will be centered on the position font.draw(spriteBatch, textString, location.x, location.y, 0, textString.length(), 0, Align.center, false); spriteBatch.end(); shapeRenderer.begin(ShapeType.Line); } }
public void scene2screen(Viewport viewport, Vector3 out) { project(out, 0, 0, viewport.getScreenWidth(), viewport.getScreenHeight()); }
public void resize(int width, int height) { getViewport().update(width, height, false); cameraUI.viewportWidth = viewport.getScreenWidth(); cameraUI.viewportHeight = viewport.getScreenHeight(); cameraUI.position.set(viewport.getScreenWidth() / 2, viewport.getScreenHeight() / 2, 0); cameraUI.update(); batch.setProjectionMatrix(cameraUI.combined); shapeRenderer.setProjectionMatrix(cameraUI.combined); // Resize the root table that will auto-scale if needed rootTable.setSize(viewport.getScreenWidth(), viewport.getScreenHeight()); }
/** Check if screen coordinates are inside the viewport's screen area. */ protected boolean isInsideViewport (int screenX, int screenY) { int x0 = viewport.getScreenX(); int x1 = x0 + viewport.getScreenWidth(); int y0 = viewport.getScreenY(); int y1 = y0 + viewport.getScreenHeight(); screenY = Gdx.graphics.getHeight() - 1 - screenY; return screenX >= x0 && screenX < x1 && screenY >= y0 && screenY < y1; }
public void resize(Viewport viewport){ post.setViewport(new Rectangle(viewport.getScreenX(), viewport.getScreenY(), viewport.getScreenWidth(), viewport.getScreenHeight())); }
protected void begin(Viewport viewport) { fbo.begin(); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT); HdpiUtils.glViewport(viewport.getScreenX(), viewport.getScreenY(), viewport.getScreenWidth(), viewport.getScreenHeight()); }
@Override public void calculateScissors (Rectangle localRect, Rectangle scissorRect) { ScissorStack.calculateScissors(cameraUI, viewport.getScreenX(), viewport.getScreenY(), viewport.getScreenWidth(), viewport.getScreenHeight(), batch.getTransformMatrix(), localRect, scissorRect); Matrix4 transformMatrix; if (shapeRenderer != null && shapeRenderer.isDrawing()) transformMatrix = shapeRenderer.getTransformMatrix(); else transformMatrix = batch.getTransformMatrix(); ScissorStack.calculateScissors(cameraUI, viewport.getScreenX(), viewport.getScreenY(), viewport.getScreenWidth(), viewport.getScreenHeight(), transformMatrix, localRect, scissorRect); }
@Override public Vector2 screenToStageCoordinates(Vector2 screenCoords) { tmp.set(screenCoords.x, screenCoords.y, 1); cameraUI.unproject(tmp, viewport.getScreenX(), viewport.getScreenY(), viewport.getScreenWidth(), viewport.getScreenHeight()); screenCoords.set(tmp.x, tmp.y); return screenCoords; }
public Pixmap getFrameBufferPixmap(Viewport viewport) { int w = viewport.getScreenWidth(); int h = viewport.getScreenHeight(); int x = viewport.getScreenX(); int y = viewport.getScreenY(); final ByteBuffer pixelBuffer = BufferUtils.newByteBuffer(w * h * 4); Gdx.gl.glBindFramebuffer(GL20.GL_FRAMEBUFFER, fbo.getFramebufferHandle()); Gdx.gl.glReadPixels(x, y, w, h, GL30.GL_RGBA, GL30.GL_UNSIGNED_BYTE, pixelBuffer); Gdx.gl.glBindFramebuffer(GL20.GL_FRAMEBUFFER, 0); final int numBytes = w * h * 4; byte[] imgLines = new byte[numBytes]; final int numBytesPerLine = w * 4; for (int i = 0; i < h; i++) { pixelBuffer.position((h - i - 1) * numBytesPerLine); pixelBuffer.get(imgLines, i * numBytesPerLine, numBytesPerLine); } Pixmap pixmap = new Pixmap(w, h, Pixmap.Format.RGBA8888); BufferUtils.copy(imgLines, 0, pixmap.getPixels(), imgLines.length); return pixmap; }
public void getInputUnProject(Viewport viewport, Vector3 out) { out.set(Gdx.input.getX(), Gdx.input.getY(), 0); unproject(out, viewport.getScreenX(), viewport.getScreenY(), viewport.getScreenWidth(), viewport.getScreenHeight()); out.x = MathUtils.clamp(out.x, 0, scrollingWidth - 1); out.y = MathUtils.clamp(out.y, 0, scrollingHeight - 1); }
@Override public void render(float delta) { SpriteBatch batch = ui.getBatch(); Gdx.gl.glClearColor(0, 0, 0, 1); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); batch.setProjectionMatrix(viewport.getCamera().combined); batch.begin(); batch.draw(tex, 0, 0, viewport.getScreenWidth(), viewport.getScreenHeight()); batch.end(); }
@Override public void resize(int width, int height) { final World world = ui.getWorld(); if (!world.isDisposed()) { screenViewport.setWorldSize(world.getWidth(), world.getHeight()); screenViewport.update(width, height, true); worldViewport.setScreenBounds(screenViewport.getScreenX(), screenViewport.getScreenY(), screenViewport.getScreenWidth(), screenViewport.getScreenHeight()); world.resize(screenViewport.getWorldWidth(), screenViewport.getWorldHeight()); } pointer.resize(); verbUI.setSize(screenViewport.getScreenWidth(), screenViewport.getScreenHeight() * UI_SCREEN_PERCENT); float size = DPIUtils.getPrefButtonSize(); float margin = DPIUtils.getMarginSize(); menuButton.setSize(size, size); menuButton.setPosition(stage.getViewport().getScreenWidth() - menuButton.getWidth() - margin, stage.getViewport().getScreenHeight() - menuButton.getHeight() - margin); }
@Override public void setText(Text t) { text = t; if (t == null && isVisible()) { setVisible(false); } else if (t != null && !isVisible()) { setVisible(true); } if (isVisible()) { style = getStyle(text); Color color = text.color != null ? text.color : style.defaultColor; if (color == null) color = Color.BLACK; maxWidth = Math.min(getStage().getViewport().getScreenWidth() - DPIUtils.getMarginSize() * 2, style.font.getXHeight() * (text.type == Text.Type.TALK ? style.maxTalkCharWidth : style.maxCharWidth)); layout.setText(style.font, text.str, color, maxWidth, Align.center, true); setSize(layout.width + PADDING * 2, layout.height + PADDING * 2); calcPos(); } }
@Override public void draw3dText (Vector3 location, String textString) { if (spriteBatch == null) { spriteBatch = new SpriteBatch(); } if (font == null) { font = new BitmapFont(); } // this check is necessary to avoid "mirrored" instances of the text if (camera.frustum.pointInFrustum(location)) { if (viewport != null) { camera.project(location, viewport.getScreenX(), viewport.getScreenY(), viewport.getScreenWidth(), viewport.getScreenHeight()); } else { camera.project(location); } shapeRenderer.end(); spriteBatch.begin(); // the text will be centered on the position font.draw(spriteBatch, textString, location.x, location.y, 0, textString.length(), 0, Align.center, false); spriteBatch.end(); shapeRenderer.begin(ShapeType.Line); } }
@Override public void resize(int width, int height) { final World world = ui.getWorld(); if (!world.isDisposed()) { viewport.setWorldSize(world.getWidth(), world.getHeight()); viewport.update(width, height, true); world.resize(viewport.getWorldWidth(), viewport.getWorldHeight()); } else { viewport.setWorldSize(width, height); viewport.update(width, height, true); } updateUI(); pie.resize(viewport.getScreenWidth(), viewport.getScreenHeight()); inventoryUI.resize(viewport.getScreenWidth(), viewport.getScreenHeight()); inventoryButton.resize(width, height); pointer.resize(width, height); float size = DPIUtils.getPrefButtonSize(); float margin = DPIUtils.getMarginSize(); menuButton.setSize(size, size); menuButton.setPosition(stage.getViewport().getScreenWidth() - menuButton.getWidth() - margin, stage.getViewport().getScreenHeight() - menuButton.getHeight() - margin); }
@Override public void render(float delta) { camera.update(delta * GameSettings.CAMERA_LERP_ALPHA); stage.act(delta); delta *= GameSettings.GAME_SPEED; Gdx.gl.glClearColor(0, 0, 0, 1f); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT); viewportBackgroundRenderer.begin(ShapeRenderer.ShapeType.Filled); viewportBackgroundRenderer.setColor(viewportBackgroundColor); viewportBackgroundRenderer.rect(0, 0, viewport.getScreenWidth(), viewport.getScreenHeight()); viewportBackgroundRenderer.end(); engine.update(delta); renderer.update(delta); if (DebugViewSettings.drawCollShapes || DebugViewSettings.drawConstraints) { int mode = 0; if (DebugViewSettings.drawConstraints) { mode |= DebugDrawModes.DBG_DrawConstraints; mode |= DebugDrawModes.DBG_DrawConstraintLimits; } if (DebugViewSettings.drawCollShapes) { mode |= DebugDrawModes.DBG_DrawWireframe; } engine.setDebugMode(mode); engine.debugDrawWorld(camera); } stage.draw(); }
posx = (getStage().getViewport().getScreenWidth() - msg.getWidth()) / 2; } else if (t.y == TextManager.POS_SUBTITLE) { posx = DPIUtils.getMarginSize();