]> git.bts.cx Git - p8-perfgraph.git/blob - perfgraph.lua
Initial Commit
[p8-perfgraph.git] / perfgraph.lua
1 -- Perfgraph for PICO-8
2
3 _p_perf={}
4 _p_pfo={}
5
6 function p_start(name,col)
7         if col==nil then
8                 col=rnd()*15+1
9         end
10
11         local pp=_p_perf[name]
12         if pp==nil then
13                 pp={}
14                 pp.col=col
15                 pp.ct=0
16                 _p_perf[name]=pp
17         end
18
19         if pp.q!=true then
20                 add(_p_pfo, name)
21                 pp.q=true
22         end
23         
24         pp.st=stat(1)
25 end
26
27 function p_end(name)
28         local pp=_p_perf[name]
29         if pp then
30                 pp.ct+=max(stat(1)-pp.st,0)
31         end
32 end
33
34 function p_show(x,y,w,compact)
35         camera()
36         clip()
37         fillp()
38         for n in all(_p_pfo) do
39                 local tp=_p_perf[n]
40                 local pw=tp.ct*w
41                 local p=flr((tp.ct*100)+0.5)
42                 
43                 if compact then
44                         rectfill(x,y,x+w,y+4,0)
45                         rectfill(x,y,x+pw,y+4,tp.col)
46                         print(n..":"..p.."%",x+pw+2,y,7)
47                         y+=4+2
48                 else
49                         rectfill(x,y,x+w,y+4,0)
50                         rectfill(x,y,x+pw,y+4,tp.col)
51                         local lab=n..":"..p.."%"
52                         rectfill(x+w+2,y,x+w+2+#lab*4,y+4,1)
53                         print(lab,x+w+2,y,7)
54                         y+=4+2
55                 end
56
57                 tp.q=false
58                 tp.ct=0
59         end
60         
61         _p_pfo={}
62 end