daoo
12 years ago
1 changed files with 61 additions and 0 deletions
@ -0,0 +1,61 @@ |
|||
function json_decode_file( file ) |
|||
local json = require( "json" ) |
|||
|
|||
local str = "" |
|||
for line in io.lines( file ) do |
|||
str = str .. line |
|||
end |
|||
|
|||
return json.decode( str ) |
|||
end |
|||
|
|||
function bench( width, height ) |
|||
local graphs = json_decode_file( "../graphs.json" ) |
|||
|
|||
require( "cairo" ) |
|||
require( "conkygraph" ) |
|||
|
|||
-- HACK |
|||
local j = 0 |
|||
for k, v in pairs( graphs ) do |
|||
j = j + 1 |
|||
end |
|||
|
|||
local w = width |
|||
local h = height / j |
|||
|
|||
local cs = cairo_image_surface_create( cairo.FORMAT_RGB24, width, height ) |
|||
local cr = cairo_create( cs ) |
|||
|
|||
cairo.set_source_rgb( cr, 1, 1, 1 ) |
|||
cairo.paint( cr ) |
|||
|
|||
-- Fill with random data |
|||
for k1, v in pairs( graphs ) do |
|||
for k2, f in pairs( v.functions ) do |
|||
local d = width / f.dx |
|||
f.data = {} |
|||
|
|||
for i = 1, d do |
|||
table.insert( f.data, math.sin( i ) ) |
|||
end |
|||
end |
|||
end |
|||
|
|||
local start = os.clock() |
|||
|
|||
local i = 0 |
|||
for k1, g in pairs( graphs ) do |
|||
for k2, f in pairs( g.functions ) do |
|||
cairo_graph( cr, 0, i * h, w, h, f ) |
|||
end |
|||
|
|||
i = i + 1 |
|||
end |
|||
|
|||
print( "Time: " .. os.clock() - start ) |
|||
|
|||
cairo.surface_write_to_png( cs, "bench.png" ) |
|||
end |
|||
|
|||
bench( 1280, 1024 ) |
Loading…
Reference in new issue