ref: fa9f4c5c6852ce467644f610e77504664cb86af4
dir: /appl/acme/graph.b/
implement Graph;
include "common.m";
sys : Sys;
drawm : Draw;
dat : Dat;
gui : Gui;
utils : Utils;
Image, Point, Rect, Font, Display : import drawm;
black, white, display : import gui;
error : import utils;
refp : ref Point;
pixarr : array of byte;
init(mods : ref Dat->Mods)
{
sys = mods.sys;
drawm = mods.draw;
dat = mods.dat;
gui = mods.gui;
utils = mods.utils;
refp = ref Point;
refp.x = refp.y = 0;
}
charwidth(f : ref Font, c : int) : int
{
s : string = "z";
s[0] = c;
return f.width(s);
}
strwidth(f : ref Font, s : string) : int
{
return f.width(s);
}
balloc(r : Rect, c : Draw->Chans, col : int) : ref Image
{
im := display.newimage(r, c, 0, col);
if (im == nil)
error("failed to get new image");
return im;
}
draw(d : ref Image, r : Rect, s : ref Image, m : ref Image, p : Point)
{
d.draw(r, s, m, p);
}
stringx(d : ref Image, p : Point, f : ref Font, s : string, c : ref Image)
{
d.text(p, c, (0, 0), f, s);
}
cursorset(p : Point)
{
gui->cursorset(p);
}
cursorswitch(c : ref Dat->Cursor)
{
gui->cursorswitch(c);
}
binit()
{
}
bflush()
{
}
berror(s : string)
{
error(s);
}