/** Set viewport according to allocator. * @param lp LightProperties to process. * @param cameraViewport Set camera viewport if true. */ protected void processViewport (LightProperties lp, boolean cameraViewport) { Camera camera = lp.camera; ShadowMapRegion r = allocator.nextResult(currentLight); if (r == null) return; TextureRegion region = lp.region; region.setTexture(frameBuffers[currentPass].getColorBufferTexture()); // We don't use HdpiUtils // gl commands related to shadow map size and not to screen size Gdx.gl.glViewport(r.x, r.y, r.width, r.height); Gdx.gl.glScissor(r.x + 1, r.y + 1, r.width - 2, r.height - 2); region.setRegion(r.x, r.y, r.width, r.height); if (cameraViewport) { camera.viewportHeight = r.height; camera.viewportWidth = r.width; camera.update(); } }
@Override protected void process(int e) { Pos pos = mPos.get(e); batch.setProjectionMatrix(cameraSystem.camera.combined); batch.begin(); Texture asset = mSpriteAsset.get(e).asset; final Angle angle = mAngle.getSafe(e, this.angle); region.setTexture(asset); region.setRegion(0,0,32,32); final Origin origin = mOrigin.getSafe(e, DEFAULT_ORIGIN); final Size size = mSize.getSafe(e, DEFAULT_SIZE); float ox = size.getX() * origin.getX(); float oy = size.getY() * origin.getY(); batch.draw( region, pos.xy.x - (size.getX() - ox), pos.xy.y - (size.getY() - oy), ox, oy, size.getX(), size.getY(), 1f,1f, angle.rotation); batch.end(); }
@Override protected void process(int e) { Pos pos = mPos.get(e); batch.setProjectionMatrix(cameraSystem.camera.combined); batch.begin(); Texture asset = mSpriteAsset.get(e).asset; final Angle angle = mAngle.getSafe(e, this.angle); region.setTexture(asset); region.setRegion(0,0,32,32); final Origin origin = mOrigin.getSafe(e, DEFAULT_ORIGIN); final Size size = mSize.getSafe(e, DEFAULT_SIZE); float ox = size.getX() * origin.getX(); float oy = size.getY() * origin.getY(); batch.draw( region, pos.xy.x - (size.getX() - ox), pos.xy.y - (size.getY() - oy), ox, oy, size.getX(), size.getY(), 1f,1f, angle.rotation); batch.end(); }