List of usage examples for com.badlogic.gdx.graphics.g2d Batch setTransformMatrix
public void setTransformMatrix(Matrix4 transform);
From source file:CB_UI_Base.GL_UI.GL_View_Base.java
License:Open Source License
/** * Die renderChilds() Methode wird vom GL_Listener bei jedem Render-Vorgang aufgerufen. * Hier wird dann zuerst die render() Methode dieser View aufgerufen. * Danach werden alle Childs iteriert und deren renderChilds() Methode aufgerufen, wenn die View sichtbar ist (Visibility). * * @param batch/*from www.j a v a2s .c o m*/ */ public void renderChilds(final Batch batch, ParentInfo parentInfo) { if (myParentInfo == null) return; if (this.isDisposed) return; if (thisInvalidate) { myParentInfo.setParentInfo(parentInfo); CalcMyInfoForChild(); } if (!withoutScissor) { if (intersectRec == null || intersectRec.getHeight() + 1 < 0 || intersectRec.getWidth() + 1 < 0) return; // hier gibt es nichts zu rendern if (!disableScissor) Gdx.gl.glEnable(GL20.GL_SCISSOR_TEST); Gdx.gl.glScissor((int) intersectRec.getX(), (int) intersectRec.getY(), (int) intersectRec.getWidth() + 1, (int) intersectRec.getHeight() + 1); } float A = 0, R = 0, G = 0, B = 0; // Farbwerte der batch um diese wieder einzustellen, wenn ein ColorFilter angewandt wurde! boolean ColorFilterSeted = false; // Wir benutzen hier dieses Boolean um am ende dieser Methode zu entscheiden, ob wir die alte // Farbe des Batches wieder herstellen mssen. Wir verlassen uns hier nicht darauf, das // mColorFilter!= null ist, da dies in der zwichenzeit passiert sein kann. // Set Colorfilter ? if (mColorFilter != null) { ColorFilterSeted = true; // zuerst alte Farbe abspeichern, um sie Wieder Herstellen zu knnen // hier muss jeder Wert einzeln abgespeichert werden, da bei getColor() // nur eine Referenz zurck gegeben wird Color c = batch.getColor(); A = c.a; R = c.r; G = c.g; B = c.b; batch.setColor(mColorFilter); } // first Draw Background? if (drawableBackground != null) { drawableBackground.draw(batch, 0, 0, getWidth(), getHeight()); } // set rotation boolean isRotated = false; if (mRotate != 0 || mScale != 1) { isRotated = true; rotateMatrix.idt(); rotateMatrix.translate(mOriginX, mOriginY, 0); rotateMatrix.rotate(0, 0, 1, mRotate); rotateMatrix.scale(mScale, mScale, 1); rotateMatrix.translate(-mOriginX, -mOriginY, 0); batch.setTransformMatrix(rotateMatrix); } try { this.render(batch); } catch (IllegalStateException e) { e.printStackTrace(); // reset Colorfilter ? if (ColorFilterSeted) { // alte abgespeicherte Farbe des Batches wieder herstellen! batch.setColor(R, G, B, A); } return; } // reverse rotation if (isRotated) { rotateMatrix.idt(); // rotateMatrix.rotate(0, 0, 1, 0); // rotateMatrix.scale(1, 1, 1); batch.setTransformMatrix(rotateMatrix); } if (childs != null && childs.size() > 0) { for (int i = 0, n = childs.size(); i < n; i++) { if (i >= childs.size()) { break; // ConcurrentModificationException } // alle renderChilds() der in dieser GL_View_Base // enthaltenen Childs auf rufen. try { GL_View_Base view = childs.get(i); // hier nicht view.render(batch) aufrufen, da sonnst die in der // view enthaldenen Childs nicht aufgerufen werden. try { if (view != null && !view.isDisposed() && view.isVisible()) { synchronized (view) { if (childsInvalidate) view.invalidate(); getMyInfoForChild().setParentInfo(myParentInfo); getMyInfoForChild().setWorldDrawRec(intersectRec); getMyInfoForChild().add(view.getX(), view.getY()); batch.setProjectionMatrix(getMyInfoForChild().Matrix()); nDepthCounter++; view.renderChilds(batch, getMyInfoForChild()); nDepthCounter--; } } else { if (view != null && view.isDisposed()) { // Remove disposedView from child list this.removeChild(view); } } } catch (java.lang.IllegalStateException e) { if (view != null && view.isDisposed()) { // Remove disposedView from child list this.removeChild(view); } } } catch (java.util.NoSuchElementException e) { break; // da die Liste nicht mehr gltig ist, brechen wir hier den Iterator ab } catch (java.util.ConcurrentModificationException e) { break; // da die Liste nicht mehr gltig ist, brechen wir hier den Iterator ab } catch (java.lang.IndexOutOfBoundsException e) { break; // da die Liste nicht mehr gltig ist, brechen wir hier den Iterator ab } } childsInvalidate = false; } // Draw Debug REC if (debug) { if (DebugSprite != null) { batch.flush(); DebugSprite.draw(batch); } } // reset Colorfilter ? if (ColorFilterSeted) { // alte abgespeicherte Farbe des Batches wieder herstellen! batch.setColor(R, G, B, A); } }
From source file:com.kotcrab.vis.runtime.entity.TextEntity.java
License:Apache License
@Override public void render(Batch spriteBatch) { spriteBatch.setTransformMatrix(translationMatrix); cache.draw(spriteBatch);//w w w . j av a 2 s.c o m spriteBatch.flush(); spriteBatch.setTransformMatrix(idtMatrix); }
From source file:com.trgk.touchwave.tgengine.ui.TGText.java
License:Open Source License
@Override public void draw(Batch batch, float parentAlpha) { Matrix4 oldTransform = new Matrix4(batch.getTransformMatrix()); Affine2 localTransform = new Affine2(); localTransform.setToTrnScl(getX() + getOriginX(), getY() + getOriginY(), getScaleX(), getScaleY()); localTransform.translate(-getOriginX(), -getOriginY()); localTransform.scale(1f / TGResources.baseFontSize, 1f / TGResources.baseFontSize); Matrix4 localTransformMatrix = new Matrix4(); localTransformMatrix.set(localTransform); Matrix4 newTransform = new Matrix4(oldTransform); newTransform.mul(localTransformMatrix); batch.setTransformMatrix(newTransform); Color alphaMultipliedColor = new Color(getColor()); alphaMultipliedColor.a *= parentAlpha; drawCache.tint(alphaMultipliedColor); drawCache.draw(batch);//w w w. j ava 2s . c om batch.setTransformMatrix(oldTransform); }