Memory Statistics
[wtsg.git] / main.lua
blob11b5f41f262df45313bcbf94de05b34c18c9bae7
1 require "lfs"
3 require "glfw"
4 print (glfw)
6 print "lua is up and running"
7 print (gl)
9 for k,v in pairs (gl) do
10 print (k,v)
11 end
13 print (("="):rep(30))
15 for k,v in pairs (glfw) do
16 print (k,v)
17 end
20 local last_mtime
21 function reload (enforce)
22 if not enforce then
23 local mtime = lfs.attributes ("particles.lua", "modified")
24 if last_mtime == mtime then
25 return
26 end
27 last_mtime = mtime
28 end
29 xpcall(function()
30 dofile "particles.lua"
31 print "particles reloaded!"
32 errorfree = true
33 end,
34 function (err)
35 print(debug.traceback("failed loading: "..err))
36 end)
37 end
38 end
40 function keyfun( key, action )
41 if action == glfw.RELEASE then
42 return
43 end
45 if key == glfw.KEY_ESC then
46 running = false
47 end
48 if key == glfw.KEY_F5 then
49 reload (true)
50 end
51 end
53 glfw.SetKeyCallback( "keyfun" );
55 dofile "particles.lua"
56 errorfree = true
58 frame = 0
59 function engine.frame ()
60 frame = frame + 1
61 if frame %1000 == 0 then
62 local info = engine.getMemStat()
63 print "MEMORY STATS"
64 for i=1,#info,5 do
65 local t = {}
66 for j=i,i+4 do
67 t[j-i+1] = info[j]
68 end
69 if t[4]>0 then
70 print("Stat:",unpack(t))
71 end
72 end
73 end
74 draw.rect(0,0,3,3,1,1,1,1)
75 draw.rect(5,0,1,5,1,0,0,1)
76 draw.rect(0,5,5,1,0,1,1,1)
78 gl.Disable "TEXTURE_2D"
79 gl.Translate(250,0,0)
80 -- gl.Rotate(frame*.1,0,1,0)
81 gl.Translate(-250,0,0)
83 gl.PushMatrix()
84 gl.Translate(50,150,0)
85 gl.Scale(20,10,20)
86 gl.Rotate(45,0,0,-1)
88 gl.Begin "QUADS"
89 gl.Color(1,1,0,1)
91 gl.TexCoord(0,0)
92 gl.Vertex(-1,-1,0)
94 gl.TexCoord(1,0)
95 gl.Vertex(1,-1,0)
97 gl.Color(1,1,0,0)
99 gl.TexCoord(1,1)
100 gl.Vertex(1,1,0)
102 gl.TexCoord(0,1)
103 gl.Vertex(-1,1,0)
104 gl.End()
106 gl.PopMatrix()
108 gl.Enable "TEXTURE_2D"
110 --print(gl.GetError())
113 --io.write("\r",#particle.list)
114 if errorfree then
115 xpcall(
116 function()
117 particle:step()
118 particle:draw()
119 end,
120 function (err)
121 print(debug.traceback(err))
122 errorfree = false
127 reload();
129 -- draw.framefunc()
130 -- draw.rect(0,0,10,10,1,1,0,1)