view tools/mb_c_header.m4 @ 210:3fadd2f2742e

M4 macros to generate code for dynamic loading. - Introduce sprite. - Add mb_sprite_t and mb_sprite_lsym_t - mb_sprite_lsym_t is sprite with symbol that searched with linear search. - Add mb_sprite_lsym_t as first member variable of sprite. - Add symbol table to generated C code.
author Thinker K.F. Li <thinker@branda.to>
date Fri, 12 Dec 2008 00:33:54 +0800
parents 6ce68c1f7405
children 104d83378582
line wrap: on
line source

changequote(`[', `]')dnl
divert([-1])

define([ADD_LINEAR_PAINT],[[
    paint_t *$1;
]])

define([ADD_RADIAL_PAINT],[[
    paint_t *$1;
]])
define([ADD_PATH],[
[    shape_t *$1;
]])
define([ADD_RECT],[
[    shape_t *$1;
]])
define([ADD_COORD],[
[    coord_t *$1;
]])
define([ADD_TEXT],[
[    shape_t *$1;
]])
define([COLOR_STOP],[ ])

define([REF_STOPS_RADIAL],)
define([REF_STOPS_LINEAR],)
define([FILL_SHAPE],[[
    paint_t *$1_fill;
]])
define([STROKE_SHAPE],[[
    paint_t *$1_stroke;
]])
define([FILL_SHAPE_WITH_PAINT],)
define([STROKE_SHAPE_WITH_PAINT],)
define([STROKE_WIDTH],)
define([GROUP_HIDE],)
define([PATH_HIDE],)
define([RECT_HIDE],)
define([COORD_TRANSLATE],)
define([COORD_MATRIX],)
define([SHAPE_TRANSLATE],)
define([SHAPE_MATRIX],)
define([ADD_SYMBOL],)

define([MADBUTTERFLY],[dnl
[#ifndef __$1_H_
#define __$1_H_

typedef struct $1 $1_t;

struct $1 {
    mb_sprite_lsym_t lsym;
    redraw_man_t *rdman;
    coord_t *root_coord;]
$2[]dnl
[};

extern $1_t *$1_new(redraw_man_t *rdman, coord_t *parent_coord);
extern void $1_free($1_t *obj);

#endif /* __$1_H_ */]
])
divert[]dnl