diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/cd.def | 1 | ||||
| -rw-r--r-- | src/config.mak | 5 | ||||
| -rw-r--r-- | src/lua3/cdluactx.c | 24 | ||||
| -rw-r--r-- | src/lua5/cdlua5ctx.c | 22 | 
4 files changed, 50 insertions, 2 deletions
| @@ -15,6 +15,7 @@ EXPORTS    cdContextDBufferRGB    cdContextPicture    cdContextDebug +  cdContextSVG    cdRedImage    cdGreenImage diff --git a/src/config.mak b/src/config.mak index 5465a06..05b5182 100644 --- a/src/config.mak +++ b/src/config.mak @@ -4,6 +4,9 @@ OPT = YES  DEFINES = CD_NO_OLD_INTERFACE +SRCSVG = base64.c lodpng.c cdsvg.c +SRCSVG  := $(addprefix svg/, $(SRCSVG)) +  SRCINTCGM = circle.c ellipse.c intcgm1.c \    intcgm2.c intcgm4.c intcgm6.c list.c \    sism.c tparse.c bparse.c  @@ -27,7 +30,7 @@ SRCNULL  := $(addprefix drv/, $(SRCNULL))  SRCCOMM = cd.c wd.c wdhdcpy.c rgb2map.c cd_vectortext.c cd_active.c \            cd_attributes.c cd_bitmap.c cd_image.c cd_primitives.c cd_text.c cd_util.c -SRC = $(SRCCOMM) $(SRCINTCGM) $(SRCDRV) $(SRCSIM) +SRC = $(SRCCOMM) $(SRCSVG) $(SRCINTCGM) $(SRCDRV) $(SRCSIM)  ifneq ($(findstring Win, $(TEC_SYSNAME)), )    SRC += $(SRCWIN32) diff --git a/src/lua3/cdluactx.c b/src/lua3/cdluactx.c index fc09313..1ddd8e6 100644 --- a/src/lua3/cdluactx.c +++ b/src/lua3/cdluactx.c @@ -24,6 +24,7 @@  #include "cdclipbd.h"  #include "cdmf.h"  #include "cdps.h" +#include "cdsvg.h"  #include "cddbuf.h"  #include "cdgdiplus.h" @@ -779,6 +780,28 @@ static cdContextLUA cdluapsctx =  };  /***************************************************************************\ +* CD_SVG.                                                                    * +\***************************************************************************/ +static void *cdsvg_checkdata(int param) +{ +  lua_Object data = lua_getparam(param); +  if (!lua_isstring(data)) +    lua_error("cdCreateCanvas CD_SVG: data should be of type string!"); + +  return lua_getstring(data); +} + +static cdContextLUA cdluasvgctx =  +{ +  0, +  "CD_SVG", +  cdContextSVG, +  cdsvg_checkdata, +  NULL, +  0 +}; + +/***************************************************************************\  * CD_PRINTER.                                                               *  \***************************************************************************/  static void *cdprinter_checkdata(int param) @@ -940,6 +963,7 @@ void cdlua_initdrivers(void)    cdlua_addcontext(&cdluacgmctx);    cdlua_addcontext(&cdluamfctx);    cdlua_addcontext(&cdluapsctx); +  cdlua_addcontext(&cdluasvgctx);    cdlua_addcontext(&cdluaclipboardctx);    cdlua_addcontext(&cdluanativewindowctx);    cdlua_addcontext(&cdluaprinterctx); diff --git a/src/lua5/cdlua5ctx.c b/src/lua5/cdlua5ctx.c index e3bd19e..4d97f3b 100644 --- a/src/lua5/cdlua5ctx.c +++ b/src/lua5/cdlua5ctx.c @@ -1,5 +1,5 @@  /***************************************************************************\ -* $Id: cdlua5ctx.c,v 1.1 2008/10/17 06:10:42 scuri Exp $ +* $Id: cdlua5ctx.c,v 1.2 2009/12/02 20:31:02 scuri Exp $  *                                                                           *  \***************************************************************************/ @@ -23,6 +23,7 @@  #include "cdclipbd.h"  #include "cdmf.h"  #include "cdps.h" +#include "cdsvg.h"  #include "cddbuf.h"  #include "cdgdiplus.h" @@ -688,6 +689,24 @@ static cdluaContext cdluapsctx =  };  /***************************************************************************\ +* CD_SVG.                                                                    * +\***************************************************************************/ +static void *cdsvg_checkdata( lua_State *L, int param) +{ +  return (void *)luaL_checkstring(L, param); +} + +static cdluaContext cdluasvgctx =  +{ +  0, +  "SVG", +  cdContextSVG, +  cdsvg_checkdata, +  NULL, +  0 +}; + +/***************************************************************************\  * CD_PRINTER.                                                               *  \***************************************************************************/  static void *cdprinter_checkdata(lua_State *L, int param) @@ -793,6 +812,7 @@ void cdlua_initdrivers(lua_State * L, cdluaLuaState* cdL)    cdlua_addcontext(L, cdL, &cdluacgmctx);    cdlua_addcontext(L, cdL, &cdluamfctx);    cdlua_addcontext(L, cdL, &cdluapsctx); +  cdlua_addcontext(L, cdL, &cdluasvgctx);    cdlua_addcontext(L, cdL, &cdluaclipboardctx);    cdlua_addcontext(L, cdL, &cdluanativewindowctx);    cdlua_addcontext(L, cdL, &cdluaprinterctx); | 
