>
> It can't be used currently. I have wondered if it's really worth it.
> The idea is that you can optimize the drawing with a list, but in a
> scripting language the creation of the list itself may negate any
> benefits.
>

The list should be a lua table for optimization and then
could be something like:

static int LUACALL wxLua_wxDC_DrawPolygon1(lua_State *L)
{
    // get number of arguments
    int argCount = lua_gettop(L);
    // wxPolygonFillMode fill_style = wxODDEVEN_RULE
    wxPolygonFillMode fill_style = (argCount >= 5 ?
(wxPolygonFillMode)wxlua_getenumtype(L, 5) : wxODDEVEN_RULE);
    // wxCoord yoffset = 0
    wxCoord yoffset = (argCount >= 4 ? (wxCoord)wxlua_getnumbertype(L, 4) :
0);
    // wxCoord xoffset = 0
    wxCoord xoffset = (argCount >= 3 ? (wxCoord)wxlua_getnumbertype(L, 3) :
0);
    // const wxList points

 luaL_checktype(L, 2, LUA_TTABLE);
 int n = lua_objlen(L, 2); /* get size of table */
 double x,y;
 wxList<wxPoint> pointList;
 for (int i = 1; i <= n; i++) {
  lua_rawgeti(L, 2, i); /* get next point as {x,y} */
  luaL_checktype(L, -1, LUA_TTABLE);
  lua_rawgeti(L,-1,1);
  if (!lua_isnumber(L, -1))
   luaL_error(L, "coordinate x not a number");
  x = lua_tonumber(L ,-1)
  lua_pop(L,1);

  lua_rawgeti(L,-1,2);
  if (!lua_isnumber(L, -1))
   luaL_error(L, "coordinate Y not a number");
  y = lua_tonumber(L ,-1)
  lua_pop(L,1);

  lua_pop(L,1);
  pointList:Append(wxPoint(x,y));
 }
    //const wxList * points = (const wxList *)wxluaT_getuserdatatype(L, 2,
wxluatype_wxList);
    // get this
    wxDC * self = (wxDC *)wxluaT_getuserdatatype(L, 1, wxluatype_wxDC);
    // call DrawPolygon
    self->DrawPolygon(&pointList, xoffset, yoffset, fill_style);

    return 0;
}

It is called as paintDC:DrawLines({{0,0},{20,40},{50,50}})
Similar for DrawLines. I dont know how to insert it in wxLua code and how
you control function overloadings. Also perhaps you use something different
than luaL_error.

Best Regards
Victor Bombi


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
wxlua-users mailing list
wxlua-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wxlua-users

Reply via email to