unit LuaBitmap;

{$mode delphi}

interface

uses
  Classes, SysUtils, Graphics, lua, lualib, lauxlib,LuaHandler;   ;

procedure initializeLuaBitmap;

implementation



{
unit LuaPen;

interface

uses
  Classes, SysUtils, Graphics,lua, lualib, lauxlib,LuaHandler;

procedure initializeLuaPen;

implementation

function pen_getColor(L: PLua_State): integer; cdecl;
var
  parameters: integer;
  pen: TPen;

begin
  result:=0;
  parameters:=lua_gettop(L);
  if parameters=1 then
  begin
    pen:=lua_touserdata(L,-1);
    lua_pop(L, parameters);

    lua_pushinteger(L, pen.Color);
    result:=1;
  end else lua_pop(L, parameters);
end;

function pen_setColor(L: PLua_State): integer; cdecl;
var
  parameters: integer;
  pen: TPen;
  color: TColor;
begin
  result:=0;
  parameters:=lua_gettop(L);
  if parameters=2 then
  begin
    pen:=lua_touserdata(L,-parameters);
    color:=lua_tointeger(L, -parameters+1);
    lua_pop(L, parameters);

    pen.Color:=color;
  end else lua_pop(L, parameters);
end;

function pen_getWidth(L: PLua_State): integer; cdecl;
var
  parameters: integer;
  pen: TPen;

begin
  result:=0;
  parameters:=lua_gettop(L);
  if parameters=1 then
  begin
    pen:=lua_touserdata(L,-1);
    lua_pop(L, parameters);

    lua_pushinteger(L, pen.Width);
    result:=1;
  end else lua_pop(L, parameters);
end;

function pen_setWidth(L: PLua_State): integer; cdecl;
var
  parameters: integer;
  pen: TPen;
  width: integer;
begin
  result:=0;
  parameters:=lua_gettop(L);
  if parameters=2 then
  begin
    pen:=lua_touserdata(L,-parameters);
    width:=lua_tointeger(L, -parameters+1);
    lua_pop(L, parameters);

    pen.Width:=width;
  end else lua_pop(L, parameters);
end;



}

procedure initializeLuaBitmap;
begin
  lua_register(LuaVM, 'pen_getColor', pen_getColor);
  lua_register(LuaVM, 'pen_setColor', pen_setColor);
  lua_register(LuaVM, 'pen_getWidth', pen_getWidth);
  lua_register(LuaVM, 'pen_setWidth', pen_setWidth);

end;

end.

