import java.util.*;
import org.bouncycastle.util.encoders.Base64;
+import org.xwt.mips.Runtime;
+
// FEATURE: use streams, not memoryfont's
// FEATURE: kerning pairs
public class Freetype {
public Freetype() { }
- private static byte[] image = null;
-
private int mem_allocated = 0;
- private org.xwt.mips.Runtime vm = null;
+ private Runtime vm = null;
private Res loadedStream = null;
loadedStream = res;
InputStream is = res.getInputStream();
byte[] fontstream = InputStreamToByteArray.convert(is);
- if (image == null) image = InputStreamToByteArray.convert(Main.builtin.getInputStream("freetype.mips"));
- //vm = new org.xwt.mips.Interpreter(image);
- vm = new FreetypeVM();
+ vm = new MIPSApps();
int baseAddr = vm.sbrk(fontstream.length);
vm.copyout(fontstream, baseAddr, fontstream.length);
vm.setUserInfo(0, baseAddr);
vm.setUserInfo(1, fontstream.length);
- vm.start(new String[]{ "freetype.mips" });
+ vm.start(new String[]{ "freetype" });
vm.execute();
+ if(vm.getState() == Runtime.DONE) throw new Error("Freetype VM exited: " + vm.exitStatus());
} catch (Exception e) {
Log.log(this, e);
}