login

<     >

2021-04-10 13:37:33 (UTC-03:00)

Marcel Rodrigues <marcelgmr@gmail.com>

cache C functions and export module functions

diff --git a/surf.lua b/surf.lua
index b58ff23..bd972a4 100644
--- a/surf.lua
+++ b/surf.lua
@@ -5,7 +5,8 @@ ffi.cdef[[
 double hypot(double x, double y);
 double copysign(double x, double y);
 ]]
-local mathx = ffi.C
+local hypot = ffi.C.hypot
+local copysign = ffi.C.copysign
 
 local bnot = bit.bnot
 local bor, band = bit.bor, bit.band
@@ -80,7 +81,7 @@ function BitMap:line(x0, y0, x1, y1, v)
         end
     else
         local dx, dy = x1-x0, y1-y0
-        local sx, sy = mathx.copysign(1, dx), mathx.copysign(1, dy)
+        local sx, sy = copysign(1, dx), copysign(1, dy)
         local de = math.abs(dy / dx)
         local e = 0
         local x, y = x0, y0
@@ -107,3 +108,5 @@ function BitMap:save_pbm(fname)
     end
     pbm:close()
 end
+
+return {new_bitmap=new_bitmap}