Added Graphics.begin/endClip()
This commit is contained in:
@@ -25,7 +25,7 @@ allprojects {
|
|||||||
appName = 'Mindustry'
|
appName = 'Mindustry'
|
||||||
gdxVersion = '1.9.8'
|
gdxVersion = '1.9.8'
|
||||||
roboVMVersion = '2.3.0'
|
roboVMVersion = '2.3.0'
|
||||||
uCoreVersion = 'dec41336067c013f04f0e17db3b06e24d3c11f6a'
|
uCoreVersion = '6f251d1f32bb7a8ff5dfaa28525af57536ad549f'
|
||||||
|
|
||||||
getVersionString = {
|
getVersionString = {
|
||||||
String buildVersion = getBuildVersion()
|
String buildVersion = getBuildVersion()
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import com.badlogic.gdx.math.Bresenham2;
|
|||||||
import com.badlogic.gdx.math.GridPoint2;
|
import com.badlogic.gdx.math.GridPoint2;
|
||||||
import com.badlogic.gdx.math.Rectangle;
|
import com.badlogic.gdx.math.Rectangle;
|
||||||
import com.badlogic.gdx.math.Vector2;
|
import com.badlogic.gdx.math.Vector2;
|
||||||
import com.badlogic.gdx.scenes.scene2d.utils.ScissorStack;
|
|
||||||
import com.badlogic.gdx.utils.Array;
|
import com.badlogic.gdx.utils.Array;
|
||||||
import io.anuke.mindustry.editor.DrawOperation.TileOperation;
|
import io.anuke.mindustry.editor.DrawOperation.TileOperation;
|
||||||
import io.anuke.mindustry.graphics.Palette;
|
import io.anuke.mindustry.graphics.Palette;
|
||||||
@@ -270,8 +269,7 @@ public class MapView extends Element implements GestureListener{
|
|||||||
|
|
||||||
image.setImageSize(editor.getMap().width(), editor.getMap().height());
|
image.setImageSize(editor.getMap().width(), editor.getMap().height());
|
||||||
|
|
||||||
batch.flush();
|
Graphics.beginClip(x, y, width, height);
|
||||||
boolean pop = ScissorStack.pushScissors(rect.set(x, y, width, height));
|
|
||||||
|
|
||||||
Draw.color(Color.LIGHT_GRAY);
|
Draw.color(Color.LIGHT_GRAY);
|
||||||
Lines.stroke(-2f);
|
Lines.stroke(-2f);
|
||||||
@@ -327,9 +325,7 @@ public class MapView extends Element implements GestureListener{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
batch.flush();
|
Graphics.endClip();
|
||||||
|
|
||||||
if(pop) ScissorStack.popScissors();
|
|
||||||
|
|
||||||
Draw.color(Palette.accent);
|
Draw.color(Palette.accent);
|
||||||
Lines.stroke(Unit.dp.scl(3f));
|
Lines.stroke(Unit.dp.scl(3f));
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ import io.anuke.ucore.core.Graphics;
|
|||||||
import io.anuke.ucore.entities.EntityDraw;
|
import io.anuke.ucore.entities.EntityDraw;
|
||||||
import io.anuke.ucore.graphics.Draw;
|
import io.anuke.ucore.graphics.Draw;
|
||||||
import io.anuke.ucore.graphics.Fill;
|
import io.anuke.ucore.graphics.Fill;
|
||||||
import io.anuke.ucore.scene.utils.ScissorStack;
|
|
||||||
|
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
|
|
||||||
@@ -140,9 +139,7 @@ public class FogRenderer implements Disposable{
|
|||||||
|
|
||||||
buffer.begin();
|
buffer.begin();
|
||||||
|
|
||||||
boolean pop = ScissorStack.pushScissors(rect.set((padding-shadowPadding), (padding-shadowPadding),
|
Graphics.beginClip((padding-shadowPadding), (padding-shadowPadding), (world.width() + shadowPadding*2), (world.height() + shadowPadding*2));
|
||||||
(world.width() + shadowPadding*2) ,
|
|
||||||
(world.height() + shadowPadding*2)));
|
|
||||||
|
|
||||||
Graphics.begin();
|
Graphics.begin();
|
||||||
EntityDraw.setClip(false);
|
EntityDraw.setClip(false);
|
||||||
@@ -172,7 +169,7 @@ public class FogRenderer implements Disposable{
|
|||||||
Graphics.end();
|
Graphics.end();
|
||||||
buffer.end();
|
buffer.end();
|
||||||
|
|
||||||
if(pop) ScissorStack.popScissors();
|
Graphics.endClip();
|
||||||
|
|
||||||
region.setTexture(buffer.getColorBufferTexture());
|
region.setTexture(buffer.getColorBufferTexture());
|
||||||
region.setRegion(u, v2, u2, v);
|
region.setRegion(u, v2, u2, v);
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package io.anuke.mindustry.graphics;
|
package io.anuke.mindustry.graphics;
|
||||||
|
|
||||||
import com.badlogic.gdx.Gdx;
|
import com.badlogic.gdx.Gdx;
|
||||||
import com.badlogic.gdx.graphics.Color;
|
|
||||||
import com.badlogic.gdx.graphics.Pixmap;
|
import com.badlogic.gdx.graphics.Pixmap;
|
||||||
import com.badlogic.gdx.graphics.Pixmap.Format;
|
import com.badlogic.gdx.graphics.Pixmap.Format;
|
||||||
import com.badlogic.gdx.graphics.Texture;
|
import com.badlogic.gdx.graphics.Texture;
|
||||||
@@ -20,7 +19,6 @@ import io.anuke.ucore.core.Events;
|
|||||||
import io.anuke.ucore.core.Graphics;
|
import io.anuke.ucore.core.Graphics;
|
||||||
import io.anuke.ucore.graphics.Draw;
|
import io.anuke.ucore.graphics.Draw;
|
||||||
import io.anuke.ucore.graphics.Pixmaps;
|
import io.anuke.ucore.graphics.Pixmaps;
|
||||||
import io.anuke.ucore.scene.utils.ScissorStack;
|
|
||||||
import io.anuke.ucore.util.Mathf;
|
import io.anuke.ucore.util.Mathf;
|
||||||
import io.anuke.ucore.util.ThreadArray;
|
import io.anuke.ucore.util.ThreadArray;
|
||||||
|
|
||||||
@@ -34,8 +32,6 @@ public class MinimapRenderer implements Disposable{
|
|||||||
private Texture texture;
|
private Texture texture;
|
||||||
private TextureRegion region;
|
private TextureRegion region;
|
||||||
private Rectangle rect = new Rectangle();
|
private Rectangle rect = new Rectangle();
|
||||||
private Rectangle clipRect = new Rectangle();
|
|
||||||
private Color tmpColor = new Color();
|
|
||||||
private int zoom = 4;
|
private int zoom = 4;
|
||||||
|
|
||||||
public MinimapRenderer(){
|
public MinimapRenderer(){
|
||||||
@@ -80,9 +76,7 @@ public class MinimapRenderer implements Disposable{
|
|||||||
|
|
||||||
synchronized(units){
|
synchronized(units){
|
||||||
rect.set((dx - sz) * tilesize, (dy - sz) * tilesize, sz * 2 * tilesize, sz * 2 * tilesize);
|
rect.set((dx - sz) * tilesize, (dy - sz) * tilesize, sz * 2 * tilesize, sz * 2 * tilesize);
|
||||||
Graphics.flush();
|
Graphics.beginClip(x, y, w, h);
|
||||||
|
|
||||||
boolean clip = ScissorStack.pushScissors(clipRect.set(x, y, w, h));
|
|
||||||
|
|
||||||
for(Unit unit : units){
|
for(Unit unit : units){
|
||||||
float rx = (unit.x - rect.x) / rect.width * w, ry = (unit.y - rect.y) / rect.width * h;
|
float rx = (unit.x - rect.x) / rect.width * w, ry = (unit.y - rect.y) / rect.width * h;
|
||||||
@@ -92,8 +86,7 @@ public class MinimapRenderer implements Disposable{
|
|||||||
|
|
||||||
Draw.color();
|
Draw.color();
|
||||||
|
|
||||||
Graphics.flush();
|
Graphics.endClip();
|
||||||
if(clip) ScissorStack.popScissors();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,26 +1,22 @@
|
|||||||
package io.anuke.mindustry.ui.dialogs;
|
package io.anuke.mindustry.ui.dialogs;
|
||||||
|
|
||||||
import com.badlogic.gdx.graphics.Color;
|
import com.badlogic.gdx.graphics.Color;
|
||||||
import com.badlogic.gdx.math.Rectangle;
|
|
||||||
import com.badlogic.gdx.math.Vector2;
|
import com.badlogic.gdx.math.Vector2;
|
||||||
import io.anuke.mindustry.graphics.Palette;
|
import io.anuke.mindustry.graphics.Palette;
|
||||||
import io.anuke.mindustry.maps.Sector;
|
import io.anuke.mindustry.maps.Sector;
|
||||||
import io.anuke.ucore.core.Graphics;
|
import io.anuke.ucore.core.Graphics;
|
||||||
import io.anuke.ucore.graphics.Draw;
|
import io.anuke.ucore.graphics.Draw;
|
||||||
import io.anuke.ucore.graphics.Fill;
|
import io.anuke.ucore.graphics.Fill;
|
||||||
import io.anuke.ucore.graphics.Lines;
|
|
||||||
import io.anuke.ucore.scene.Element;
|
import io.anuke.ucore.scene.Element;
|
||||||
import io.anuke.ucore.scene.event.InputEvent;
|
import io.anuke.ucore.scene.event.InputEvent;
|
||||||
import io.anuke.ucore.scene.event.InputListener;
|
import io.anuke.ucore.scene.event.InputListener;
|
||||||
import io.anuke.ucore.scene.ui.layout.Unit;
|
import io.anuke.ucore.scene.ui.layout.Unit;
|
||||||
import io.anuke.ucore.scene.utils.Cursors;
|
import io.anuke.ucore.scene.utils.Cursors;
|
||||||
import io.anuke.ucore.scene.utils.ScissorStack;
|
|
||||||
import io.anuke.ucore.util.Mathf;
|
import io.anuke.ucore.util.Mathf;
|
||||||
|
|
||||||
import static io.anuke.mindustry.Vars.world;
|
import static io.anuke.mindustry.Vars.world;
|
||||||
|
|
||||||
public class SectorsDialog extends FloatingDialog{
|
public class SectorsDialog extends FloatingDialog{
|
||||||
private Rectangle clip = new Rectangle();
|
|
||||||
private Sector selected;
|
private Sector selected;
|
||||||
|
|
||||||
public SectorsDialog(){
|
public SectorsDialog(){
|
||||||
@@ -121,9 +117,6 @@ public class SectorsDialog extends FloatingDialog{
|
|||||||
|
|
||||||
int shownSectorsX = (int)(width/padSectorSize);
|
int shownSectorsX = (int)(width/padSectorSize);
|
||||||
int shownSectorsY = (int)(height/padSectorSize);
|
int shownSectorsY = (int)(height/padSectorSize);
|
||||||
clip.setSize(width, height).setCenter(x + width/2f, y + height/2f);
|
|
||||||
Graphics.flush();
|
|
||||||
boolean clipped = ScissorStack.pushScissors(clip);
|
|
||||||
|
|
||||||
int offsetX = (int)(panX / padSectorSize);
|
int offsetX = (int)(panX / padSectorSize);
|
||||||
int offsetY = (int)(panY / padSectorSize);
|
int offsetY = (int)(panY / padSectorSize);
|
||||||
@@ -169,14 +162,7 @@ public class SectorsDialog extends FloatingDialog{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Draw.color(Color.GRAY);
|
|
||||||
Lines.stroke(Unit.dp.scl(4f));
|
|
||||||
//Lines.crect(x + width/2f, y + height/2f, width, height);
|
|
||||||
|
|
||||||
Draw.reset();
|
Draw.reset();
|
||||||
Graphics.flush();
|
|
||||||
if(clipped) ScissorStack.popScissors();
|
|
||||||
|
|
||||||
clicked = false;
|
clicked = false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user