Added font icon generate+merge pipeline

This commit is contained in:
Anuken
2020-01-16 17:05:20 -05:00
parent 0299263511
commit ce18e32826
14 changed files with 205 additions and 26 deletions

View File

@@ -0,0 +1,51 @@
package mindustry.tools;
import arc.*;
import arc.files.*;
import arc.util.*;
import arc.util.io.*;
import java.io.*;
/* icon font pipeline:
1. take set of pre-defined icons and SVGs
2. use Fontello API to get a font with these
3. combine fontello font and standard font, get output font
4. use apache ttf API to generate a file with constants for every icon size+type (during annotation processing)
*/
public class FontGenerator{
public static void main(String[] args){
Net net = Core.net = new Net();
net.setBlock(true);
Fi folder = Fi.get("core/assets-raw/fontgen/out/");
folder.mkdirs();
Log.info("Session...");
OS.exec("curl", "--fail", "--output", "core/assets-raw/fontgen/out/session", "--form", "config=@core/assets-raw/fontgen/config.json", "http://fontello.com");
Log.info("Zip...");
String session = folder.child("session").readString();
net.httpGet("http://fontello.com/" + session + "/get", result -> {
try{
Streams.copyStream(result.getResultAsStream(), folder.child("font.zip").write());
}catch(IOException e){
throw new RuntimeException(e);
}
}, Log::err);
Log.info("Icon font...");
ZipFi zip = new ZipFi(folder.child("font.zip"));
Fi dest = folder.child("font.ttf");
zip.list()[0].child("font").child("fontello.ttf").copyTo(dest);
Log.info("Merge...");
OS.exec("fontforge", "-script", "core/assets-raw/fontgen/merge.pe");
Log.info("Done.");
}
}

View File

@@ -1,10 +1,10 @@
package mindustry.tools;
import arc.*;
import arc.struct.*;
import arc.files.*;
import arc.graphics.g2d.*;
import arc.graphics.g2d.TextureAtlas.*;
import arc.struct.*;
import arc.util.*;
import arc.util.Log.*;
import mindustry.*;
@@ -18,7 +18,7 @@ public class ImagePacker{
static ObjectMap<String, TextureRegion> regionCache = new ObjectMap<>();
static ObjectMap<TextureRegion, BufferedImage> imageCache = new ObjectMap<>();
public static void main(String[] args){
public static void main(String[] args) throws Exception{
Vars.headless = true;
Log.setLogger(new NoopLogHandler());

View File

@@ -1,14 +1,11 @@
package mindustry.tools;
import arc.Core;
import arc.files.Fi;
import arc.graphics.Color;
import arc.graphics.Pixmap;
import arc.graphics.g2d.Draw;
import arc.graphics.g2d.Fill;
import arc.graphics.gl.FrameBuffer;
import arc.util.ScreenUtils;
import arc.util.Tmp;
import arc.*;
import arc.files.*;
import arc.graphics.*;
import arc.graphics.g2d.*;
import arc.graphics.gl.*;
import arc.util.*;
public class SquareMarcher{
final int resolution;

View File

@@ -8,6 +8,7 @@ import arc.graphics.g2d.*;
import arc.util.*;
import mindustry.ui.*;
//TODO remove
public class Upscaler{
public static void main(String[] args){
new SdlApplication(new ApplicationListener(){