Faster shaders (?)

This commit is contained in:
Anuken
2020-04-09 20:50:11 -04:00
parent 2a74bb742b
commit 1efbd9dcf2
7 changed files with 70 additions and 143 deletions

View File

@@ -167,8 +167,11 @@ public class Control implements ApplicationListener, Loadable{
if(core == null) return;
//TODO this sounds pretty bad due to conflict
Musics.land.stop();
Musics.land.play();
if(settings.getInt("musicvol") > 0){
Musics.land.stop();
Musics.land.play();
Musics.land.setVolume(settings.getInt("musicvol") / 100f);
}
app.post(() -> ui.hudfrag.showLand());
renderer.zoomIn(Fx.coreLand.lifetime);

View File

@@ -2,6 +2,7 @@ package mindustry.graphics;
import arc.*;
import arc.graphics.*;
import arc.graphics.Texture.*;
import arc.graphics.g2d.*;
import arc.graphics.g3d.*;
import arc.graphics.gl.*;
@@ -12,6 +13,8 @@ import arc.util.ArcAnnotate.*;
import arc.util.*;
import mindustry.type.*;
import static mindustry.Vars.renderer;
public class Shaders{
public static Shadow shadow;
public static BlockBuild blockbuild;
@@ -251,13 +254,25 @@ public class Shaders{
public SurfaceShader(String frag){
super(frag, "default");
Core.assets.load("sprites/noise.png", Texture.class).loaded = t -> {
((Texture)t).setFilter(TextureFilter.Linear);
((Texture)t).setWrap(TextureWrap.Repeat);
};
}
@Override
public void apply(){
setUniformf("camerapos", Core.camera.position.x - Core.camera.width / 2, Core.camera.position.y - Core.camera.height / 2);
setUniformf("screensize", Core.camera.width, Core.camera.height);
setUniformf("time", Time.time());
setUniformf("u_campos", Core.camera.position.x - Core.camera.width / 2, Core.camera.position.y - Core.camera.height / 2);
setUniformf("u_resolution", Core.camera.width, Core.camera.height);
setUniformf("u_time", Time.time());
if(hasUniform("u_noise")){
Core.assets.get("sprites/noise.png", Texture.class).bind(1);
renderer.effectBuffer.getTexture().bind(0);
setUniformi("u_noise", 1);
}
}
}