Strip out the config/script parsing stuff, we don't need it.

Original commit message from CVS:
* configure.ac:
* gst/goom/Makefile.am:
* gst/goom/convolve_fx.c:
* gst/goom/default_scripts.h:
* gst/goom/goom.h:
* gst/goom/goom_core.c: (choose_a_goom_line):
* gst/goom/goom_plugin_info.h:
* gst/goom/goomsl.c:
* gst/goom/goomsl.h:
* gst/goom/goomsl_hash.c:
* gst/goom/goomsl_hash.h:
* gst/goom/goomsl_heap.c:
* gst/goom/goomsl_heap.h:
* gst/goom/goomsl_private.h:
* gst/goom/plugin_info.c:
Strip out the config/script parsing stuff, we don't need it.
Fixes #527999.
This commit is contained in:
Tim-Philipp Müller 2008-04-16 10:31:17 +00:00
parent edf6625c91
commit a8dec12d98
17 changed files with 24 additions and 2363 deletions

View file

@ -1,3 +1,23 @@
2008-04-16 Tim-Philipp Müller <tim at centricular dot net>
* configure.ac:
* gst/goom/Makefile.am:
* gst/goom/convolve_fx.c:
* gst/goom/default_scripts.h:
* gst/goom/goom.h:
* gst/goom/goom_core.c: (choose_a_goom_line):
* gst/goom/goom_plugin_info.h:
* gst/goom/goomsl.c:
* gst/goom/goomsl.h:
* gst/goom/goomsl_hash.c:
* gst/goom/goomsl_hash.h:
* gst/goom/goomsl_heap.c:
* gst/goom/goomsl_heap.h:
* gst/goom/goomsl_private.h:
* gst/goom/plugin_info.c:
Strip out the config/script parsing stuff, we don't need it.
Fixes #527999.
2008-04-15 Tim-Philipp Müller <tim at centricular dot net>
* gst/goom/plugin_info.c: (setOptimizedMethods):

2
common

@ -1 +1 @@
Subproject commit f88ff852da7631ad2d0be835763da6d551a63883
Subproject commit 3bb6edfe927d6d3020d2f2a4604f54caa61cd104

View file

@ -116,10 +116,6 @@ AM_PROG_CC_C_O
dnl find an assembler
AM_PROG_AS
dnl we require flex and bison for building the goom plugin
AG_GST_BISON_CHECK
AG_GST_FLEX_CHECK
AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")

View file

@ -1,3 +1,4 @@
plugin_LTLIBRARIES = libgstgoom.la
PPC_FILES=ppc_zoom_ultimate.s ppc_drawings.s ppc_drawings.h ppc_zoom_ultimate.h
@ -23,16 +24,13 @@ libgstgoom_la_SOURCES = \
drawmethods.c drawmethods.h \
sound_tester.c sound_tester.h \
mathtools.c mathtools.h \
goomsl_heap.c goomsl_heap.h \
goomsl_hash.c goomsl_hash.h \
goomsl.c goomsl_private.h \
lines.c lines.h ifs.c ifs.h surf3d.c surf3d.h \
tentacle3d.c tentacle3d.h v3d.c v3d.h \
convolve_fx.c flying_stars_fx.c \
goom_fx.h goom_visual_fx.h \
motif_goom1.h motif_goom2.h \
plugin_info.c goom_plugin_info.h \
default_scripts.h goom_tools.c \
goom_tools.c \
config_param.c filters.c goom_core.c graphic.c \
goom.h goom_typedefs.h goom_graphic.h \
goom_config_param.h goom_visual_fx.h goom_filters.h \
@ -40,45 +38,10 @@ libgstgoom_la_SOURCES = \
$(ARCH_FILES)
libgstgoom_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GOOM_FILTER_CFLAGS) $(LIBOIL_CFLAGS) $(ARCH_CFLAGS)
libgstgoom_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM) $(LIBOIL_LIBS) libgstgoomconfigparse.la
libgstgoom_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM) $(LIBOIL_LIBS)
libgstgoom_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
EXTRA_DIST = filters.c $(PPC_FILES) $(MMX_FILES)
goomsl_yacc.c goomsl_yacc.h: goomsl_yacc.y
$(BISON_PATH) -d $(srcdir)/goomsl_yacc.y -o goomsl_yacc.c && \
mv goomsl_yacc.c goomsl_yacc_tmp.c && \
echo '#ifdef HAVE_CONFIG_H' > goomsl_yacc_tmp2.c && \
echo '#include <config.h>' >> goomsl_yacc_tmp2.c && \
echo '#endif' >> goomsl_yacc_tmp2.c && \
cat goomsl_yacc_tmp.c >> goomsl_yacc_tmp2.c && \
rm goomsl_yacc_tmp.c && \
mv goomsl_yacc_tmp2.c goomsl_yacc.c
goomsl_lex.c: goomsl_lex.l goomsl_yacc.h
$(FLEX_PATH) -ogoomsl_lex.c $(srcdir)/goomsl_lex.l && \
mv goomsl_lex.c goomsl_lex_tmp.c && \
echo '#ifdef HAVE_CONFIG_H' > goomsl_lex_tmp2.c && \
echo '#include <config.h>' >> goomsl_lex_tmp2.c && \
echo '#endif' >> goomsl_lex_tmp2.c && \
cat goomsl_lex_tmp.c >> goomsl_lex_tmp2.c && \
rm goomsl_lex_tmp.c && \
mv goomsl_lex_tmp2.c goomsl_lex.c
# libgstgoomconfigparse.la is library linked into the goom plugin
noinst_LTLIBRARIES = libgstgoomconfigparse.la
# uncomment these lines to dist the generated sources
#BUILT_SOURCES = goomsl_yacc.h goomsl_yacc.c goomsl_lex.c
#libgstgoomconfigparse_la_SOURCES = goomsl_lex.c goomsl_yacc.c goomsl_yacc.h
#libgstgoomconfigparse_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GOOM_FILTER_CFLAGS) $(LIBOIL_CFLAGS) $(ARCH_CFLAGS)
# uncomment these lines to _NOT_ dist the generated sources
nodist_libgstgoomconfigparse_la_SOURCES = goomsl_lex.c goomsl_yacc.c
libgstgoomconfigparse_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GOOM_FILTER_CFLAGS) $(LIBOIL_CFLAGS) $(ARCH_CFLAGS)
CLEANFILES=goomsl_yacc.c goomsl_lex.c goomsl_yacc.h
EXTRA_DIST += goomsl_yacc.y goomsl_lex.l
.NOTPARALLEL:

View file

@ -1,6 +1,5 @@
#include "goom_fx.h"
#include "goom_plugin_info.h"
#include "goomsl.h"
#include "goom_config.h"
#include <math.h>
#include <stdio.h>
@ -29,8 +28,6 @@ typedef struct _CONV_DATA
PluginParam factor_p;
PluginParameters params;
GoomSL *script;
/* rotozoom */
int theta;
float ftheta;

View file

@ -1,6 +0,0 @@
#ifndef _DEFAULT_SCRIPTS_H
#define _DEFAULT_SCRIPTS_H
#define GOOM_MAIN_SCRIPT ""
#endif

View file

@ -3,7 +3,6 @@
#include "goom_config.h"
#include "goom_plugin_info.h"
#include "goomsl.h"
#define NB_FX 10

View file

@ -24,7 +24,6 @@
#include "sound_tester.h"
#include "goom_plugin_info.h"
#include "goom_fx.h"
#include "goomsl.h"
/* #define VERBOSE */

View file

@ -10,7 +10,6 @@
#include "goom_visual_fx.h"
#include "goom_filters.h"
#include "goom_tools.h"
#include "goomsl.h"
typedef struct {
char drawIFS;
@ -153,10 +152,6 @@ struct _PLUGIN_INFO {
} methods;
GoomRandom *gRandom;
GoomSL *scanner;
GoomSL *main_scanner;
const char *main_script_str;
};
void plugin_info_init(PluginInfo *p, int nbVisual);

File diff suppressed because it is too large Load diff

View file

@ -1,34 +0,0 @@
#ifndef _GOOMSL_H
#define _GOOMSL_H
#include "goomsl_hash.h"
typedef struct _GoomSL GoomSL;
typedef void (*GoomSL_ExternalFunction)(GoomSL *gsl, GoomHash *global_vars, GoomHash *local_vars);
GoomSL*gsl_new(void);
void gsl_free(GoomSL *gss);
char *gsl_init_buffer(const char *file_name);
void gsl_append_file_to_buffer(const char *file_name, char **buffer);
void gsl_compile (GoomSL *scanner, const char *script);
void gsl_execute (GoomSL *scanner);
int gsl_is_compiled (GoomSL *gss);
void gsl_bind_function(GoomSL *gss, const char *fname, GoomSL_ExternalFunction func);
int gsl_malloc (GoomSL *_this, int size);
void *gsl_get_ptr (GoomSL *_this, int id);
void gsl_free_ptr(GoomSL *_this, int id);
GoomHash *gsl_globals(GoomSL *_this);
#define GSL_LOCAL_PTR(gsl,local,name) gsl_get_ptr(gsl, *(int*)goom_hash_get(local,name)->ptr)
#define GSL_LOCAL_INT(gsl,local,name) (*(int*)goom_hash_get(local,name)->ptr)
#define GSL_LOCAL_FLOAT(gsl,local,name) (*(float*)goom_hash_get(local,name)->ptr)
#define GSL_GLOBAL_PTR(gsl,name) gsl_get_ptr(gsl, *(int*)goom_hash_get(gsl_globals(gsl),name)->ptr)
#define GSL_GLOBAL_INT(gsl,name) (*(int*)goom_hash_get(gsl_globals(gsl),name)->ptr)
#define GSL_GLOBAL_FLOAT(gsl,name) (*(float*)goom_hash_get(gsl_globals(gsl),name)->ptr)
#endif

View file

@ -1,153 +0,0 @@
#include "goomsl_hash.h"
#include <string.h>
#include <stdlib.h>
static GoomHashEntry *
entry_new (const char *key, HashValue value)
{
int len = strlen (key);
GoomHashEntry *entry = (GoomHashEntry *) malloc (sizeof (GoomHashEntry));
entry->key = (char *) malloc (len + 1);
memcpy (entry->key, key, len + 1);
entry->value = value;
entry->lower = NULL;
entry->upper = NULL;
return entry;
}
static void
entry_free (GoomHashEntry * entry)
{
if (entry != NULL) {
entry_free (entry->lower);
entry_free (entry->upper);
free (entry->key);
free (entry);
}
}
static void
entry_put (GoomHashEntry * entry, const char *key, HashValue value)
{
int cmp = strcmp (key, entry->key);
if (cmp == 0) {
entry->value = value;
} else if (cmp > 0) {
if (entry->upper == NULL)
entry->upper = entry_new (key, value);
else
entry_put (entry->upper, key, value);
} else {
if (entry->lower == NULL)
entry->lower = entry_new (key, value);
else
entry_put (entry->lower, key, value);
}
}
static HashValue *
entry_get (GoomHashEntry * entry, const char *key)
{
int cmp;
if (entry == NULL)
return NULL;
cmp = strcmp (key, entry->key);
if (cmp > 0)
return entry_get (entry->upper, key);
else if (cmp < 0)
return entry_get (entry->lower, key);
else
return &(entry->value);
}
GoomHash *
goom_hash_new ()
{
GoomHash *_this = (GoomHash *) malloc (sizeof (GoomHash));
_this->root = NULL;
_this->number_of_puts = 0;
return _this;
}
void
goom_hash_free (GoomHash * _this)
{
entry_free (_this->root);
free (_this);
}
void
goom_hash_put (GoomHash * _this, const char *key, HashValue value)
{
_this->number_of_puts += 1;
if (_this->root == NULL)
_this->root = entry_new (key, value);
else
entry_put (_this->root, key, value);
}
HashValue *
goom_hash_get (GoomHash * _this, const char *key)
{
if (_this == NULL)
return NULL;
return entry_get (_this->root, key);
}
void
goom_hash_put_int (GoomHash * _this, const char *key, int i)
{
HashValue value;
value.i = i;
goom_hash_put (_this, key, value);
}
void
goom_hash_put_float (GoomHash * _this, const char *key, float f)
{
HashValue value;
value.f = f;
goom_hash_put (_this, key, value);
}
void
goom_hash_put_ptr (GoomHash * _this, const char *key, void *ptr)
{
HashValue value;
value.ptr = ptr;
goom_hash_put (_this, key, value);
}
/* FOR EACH */
static void
_goom_hash_for_each (GoomHash * _this, GoomHashEntry * entry, GH_Func func)
{
if (entry == NULL)
return;
func (_this, entry->key, &(entry->value));
_goom_hash_for_each (_this, entry->lower, func);
_goom_hash_for_each (_this, entry->upper, func);
}
void
goom_hash_for_each (GoomHash * _this, GH_Func func)
{
_goom_hash_for_each (_this, _this->root, func);
}
int
goom_hash_number_of_puts (GoomHash * _this)
{
return _this->number_of_puts;
}

View file

@ -1,40 +0,0 @@
#ifndef _GOOMSL_HASH_H
#define _GOOMSL_HASH_H
typedef struct GOOM_HASH_ENTRY GoomHashEntry;
typedef struct GOOM_HASH GoomHash;
typedef union {
void *ptr;
int i;
float f;
} HashValue;
struct GOOM_HASH_ENTRY {
char *key;
HashValue value;
GoomHashEntry *lower;
GoomHashEntry *upper;
};
struct GOOM_HASH {
GoomHashEntry *root;
int number_of_puts;
};
GoomHash *goom_hash_new();
void goom_hash_free(GoomHash *gh);
void goom_hash_put(GoomHash *gh, const char *key, HashValue value);
HashValue *goom_hash_get(GoomHash *gh, const char *key);
void goom_hash_put_int (GoomHash *_this, const char *key, int i);
void goom_hash_put_float(GoomHash *_this, const char *key, float f);
void goom_hash_put_ptr (GoomHash *_this, const char *key, void *ptr);
typedef void (*GH_Func)(GoomHash *caller, const char *key, HashValue *value);
void goom_hash_for_each(GoomHash *_this, GH_Func func);
int goom_hash_number_of_puts(GoomHash *_this);
#endif /* _GOOM_HASH_H */

View file

@ -1,126 +0,0 @@
#include "goomsl_heap.h"
#include <stdlib.h>
struct _GOOM_HEAP
{
void **arrays;
int number_of_arrays;
int size_of_each_array;
int consumed_in_last_array;
};
/* Constructors / Destructor */
GoomHeap *
goom_heap_new (void)
{
return goom_heap_new_with_granularity (4096);
}
GoomHeap *
goom_heap_new_with_granularity (int granularity)
{
GoomHeap *_this;
_this = (GoomHeap *) malloc (sizeof (GoomHeap));
_this->number_of_arrays = 0;
_this->size_of_each_array = granularity;
_this->consumed_in_last_array = 0;
_this->arrays = (void **) malloc (sizeof (void *));
return _this;
}
void
goom_heap_delete (GoomHeap * _this)
{
int i;
for (i = 0; i < _this->number_of_arrays; ++i) {
free (_this->arrays[i]);
}
free (_this->arrays);
free (_this);
}
static void
align_it (GoomHeap * _this, int alignment)
{
if ((alignment > 1) && (_this->number_of_arrays > 0)) {
void *last_array = _this->arrays[_this->number_of_arrays - 1];
long last_address = (long) last_array + _this->consumed_in_last_array;
long decal = (last_address % alignment);
if (decal != 0) {
_this->consumed_in_last_array += alignment - decal;
}
}
}
void *
goom_heap_malloc_with_alignment_prefixed (GoomHeap * _this, int nb_bytes,
int alignment, int prefix_bytes)
{
void *retval = NULL;
/* d'abord on gere les problemes d'alignement */
_this->consumed_in_last_array += prefix_bytes;
align_it (_this, alignment);
/* ensuite on verifie que la quantite de memoire demandee tient dans le buffer */
if ((_this->consumed_in_last_array + nb_bytes >= _this->size_of_each_array)
|| (_this->number_of_arrays == 0)) {
if (prefix_bytes + nb_bytes + alignment >= _this->size_of_each_array) {
/* Si la zone demandee est plus grosse que la granularitee */
/* On alloue un buffer plus gros que les autres */
_this->arrays =
(void **) realloc (_this->arrays,
sizeof (void *) * (_this->number_of_arrays + 2));
_this->number_of_arrays += 1;
_this->consumed_in_last_array = prefix_bytes;
_this->arrays[_this->number_of_arrays - 1] =
malloc (prefix_bytes + nb_bytes + alignment);
align_it (_this, alignment);
retval =
(void *) ((char *) _this->arrays[_this->number_of_arrays - 1] +
_this->consumed_in_last_array);
/* puis on repart sur un nouveau buffer vide */
_this->number_of_arrays += 1;
_this->consumed_in_last_array = 0;
_this->arrays[_this->number_of_arrays - 1] =
malloc (_this->size_of_each_array);
return retval;
} else {
_this->number_of_arrays += 1;
_this->consumed_in_last_array = prefix_bytes;
_this->arrays =
(void **) realloc (_this->arrays,
sizeof (void *) * _this->number_of_arrays);
_this->arrays[_this->number_of_arrays - 1] =
malloc (_this->size_of_each_array);
align_it (_this, alignment);
}
}
retval =
(void *) ((char *) _this->arrays[_this->number_of_arrays - 1] +
_this->consumed_in_last_array);
_this->consumed_in_last_array += nb_bytes;
return retval;
}
void *
goom_heap_malloc_with_alignment (GoomHeap * _this, int nb_bytes, int alignment)
{
return goom_heap_malloc_with_alignment_prefixed (_this, nb_bytes, alignment,
0);
}
void *
goom_heap_malloc (GoomHeap * _this, int nb_bytes)
{
return goom_heap_malloc_with_alignment (_this, nb_bytes, 1);
}

View file

@ -1,29 +0,0 @@
#ifndef GOOMSL_HEAP
#define GOOMSL_HEAP
/**
* Resizable Array that guarranty that resizes don't change address of
* the stored datas.
*
* This is implemented as an array of arrays... granularity is the size
* of each arrays.
*/
typedef struct _GOOM_HEAP GoomHeap;
/* Constructors / Destructor */
GoomHeap *goom_heap_new(void);
GoomHeap *goom_heap_new_with_granularity(int granularity);
void goom_heap_delete(GoomHeap *_this);
/* This method behaves like malloc. */
void *goom_heap_malloc(GoomHeap *_this, int nb_bytes);
/* This adds an alignment constraint. */
void *goom_heap_malloc_with_alignment(GoomHeap *_this, int nb_bytes, int alignment);
/* Returns a pointeur on the bytes... prefix is before */
void *goom_heap_malloc_with_alignment_prefixed(GoomHeap *_this, int nb_bytes,
int alignment, int prefix_bytes);
#endif

View file

@ -1,251 +0,0 @@
#ifndef _GSL_PRIVATE_H
#define _GSL_PRIVATE_H
/* -- internal use -- */
#include "goomsl.h"
#ifdef USE_JITC_X86
#include "jitc_x86.h"
#endif
#include "goomsl_heap.h"
/* {{{ type of nodes */
#define EMPTY_NODE 0
#define CONST_INT_NODE 1
#define CONST_FLOAT_NODE 2
#define CONST_PTR_NODE 3
#define VAR_NODE 4
#define PARAM_NODE 5
#define READ_PARAM_NODE 6
#define OPR_NODE 7
/* }}} */
/* {{{ type of operations */
#define OPR_SET 1
#define OPR_IF 2
#define OPR_WHILE 3
#define OPR_BLOCK 4
#define OPR_ADD 5
#define OPR_MUL 6
#define OPR_EQU 7
#define OPR_NOT 8
#define OPR_LOW 9
#define OPR_DIV 10
#define OPR_SUB 11
#define OPR_FUNC_INTRO 12
#define OPR_FUNC_OUTRO 13
#define OPR_CALL 14
#define OPR_EXT_CALL 15
#define OPR_PLUS_EQ 16
#define OPR_SUB_EQ 17
#define OPR_MUL_EQ 18
#define OPR_DIV_EQ 19
#define OPR_CALL_EXPR 20
#define OPR_AFFECT_LIST 21
#define OPR_FOREACH 22
#define OPR_VAR_LIST 23
/* }}} */
typedef struct _ConstIntNodeType { /* {{{ */
int val;
} ConstIntNodeType; /* }}} */
typedef struct _ConstFloatNodeType { /* {{{ */
float val;
} ConstFloatNodeType; /* }}} */
typedef struct _ConstPtrNodeType { /* {{{ */
int id;
} ConstPtrNodeType; /* }}} */
typedef struct _OprNodeType { /* {{{ */
int type;
int nbOp;
struct _NODE_TYPE *op[3]; /* maximal number of operand needed */
struct _NODE_TYPE *next;
} OprNodeType; /* }}} */
typedef struct _NODE_TYPE { /* {{{ */
int type;
char *str;
GoomHash *vnamespace;
int line_number;
union {
ConstIntNodeType constInt;
ConstFloatNodeType constFloat;
ConstPtrNodeType constPtr;
OprNodeType opr;
} unode;
} NodeType; /* }}} */
typedef struct _INSTRUCTION_DATA { /* {{{ */
union {
void *var;
int *var_int;
int *var_ptr;
float *var_float;
int jump_offset;
struct _ExternalFunctionStruct *external_function;
} udest;
union {
void *var;
int *var_int;
int *var_ptr;
float *var_float;
int value_int;
int value_ptr;
float value_float;
} usrc;
} InstructionData;
/* }}} */
typedef struct _INSTRUCTION { /* {{{ */
int id;
InstructionData data;
GoomSL *parent;
const char *name; /* name of the instruction */
char **params; /* parametres de l'instruction */
GoomHash **vnamespace;
int *types; /* type des parametres de l'instruction */
int cur_param;
int nb_param;
int address;
char *jump_label;
char *nop_label;
int line_number;
} Instruction;
/* }}} */
typedef struct _INSTRUCTION_FLOW { /* {{{ */
Instruction **instr;
int number;
int tabsize;
GoomHash *labels;
} InstructionFlow;
/* }}} */
typedef struct _FAST_INSTRUCTION { /* {{{ */
int id;
InstructionData data;
Instruction *proto;
} FastInstruction;
/* }}} */
typedef struct _FastInstructionFlow { /* {{{ */
int number;
FastInstruction *instr;
void *mallocedInstr;
} FastInstructionFlow;
/* }}} */
typedef struct _ExternalFunctionStruct { /* {{{ */
GoomSL_ExternalFunction function;
GoomHash *vars;
int is_extern;
} ExternalFunctionStruct;
/* }}} */
typedef struct _Block {
int data;
int size;
} Block;
typedef struct _GSL_StructField { /* {{{ */
int type;
char name[256];
int offsetInStruct; /* Where this field is stored... */
} GSL_StructField;
/* }}} */
typedef struct _GSL_Struct { /* {{{ */
int nbFields;
GSL_StructField *fields[64];
int size;
Block iBlock[64];
Block fBlock[64];
} GSL_Struct;
/* }}} */
struct _GoomSL { /* {{{ */
int num_lines;
Instruction *instr; /* instruction en cours de construction */
InstructionFlow *iflow; /* flow d'instruction 'normal' */
FastInstructionFlow *fastiflow; /* flow d'instruction optimise */
GoomHash *vars; /* table de variables */
int currentNS;
GoomHash *namespaces[16];
GoomHash *functions; /* table des fonctions externes */
GoomHeap *data_heap; /* GSL Heap-like memory space */
int nbStructID;
GoomHash *structIDS;
GSL_Struct **gsl_struct;
int gsl_struct_size;
int nbPtr;
int ptrArraySize;
void **ptrArray;
int compilationOK;
#ifdef USE_JITC_X86
JitcX86Env *jitc;
JitcFunc jitc_func;
#endif
}; /* }}} */
extern GoomSL *currentGoomSL;
Instruction *gsl_instr_init(GoomSL *parent, const char *name, int id, int nb_param, int line_number);
void gsl_instr_add_param(Instruction *_this, char *param, int type);
void gsl_instr_set_namespace(Instruction *_this, GoomHash *ns);
void gsl_declare_task(const char *name);
void gsl_declare_external_task(const char *name);
int gsl_type_of_var(GoomHash *namespace, const char *name);
void gsl_enternamespace(const char *name);
void gsl_reenternamespace(GoomHash *ns);
GoomHash *gsl_leavenamespace(void);
GoomHash *gsl_find_namespace(const char *name);
void gsl_commit_compilation(void);
/* #define TYPE_PARAM 1 */
#define FIRST_RESERVED 0x80000
#define TYPE_INTEGER 0x90001
#define TYPE_FLOAT 0x90002
#define TYPE_VAR 0x90003
#define TYPE_PTR 0x90004
#define TYPE_LABEL 0x90005
#define TYPE_OP_EQUAL 6
#define TYPE_IVAR 0xa0001
#define TYPE_FVAR 0xa0002
#define TYPE_PVAR 0xa0003
#define TYPE_SVAR 0xa0004
#define INSTR_JUMP 6
#define INSTR_JZERO 29
#define INSTR_CALL 36
#define INSTR_RET 37
#define INSTR_EXT_CALL 38
#define INSTR_JNZERO 40
#define INSTR_SET 0x80001
#define INSTR_INT 0x80002
#define INSTR_FLOAT 0x80003
#define INSTR_PTR 0x80004
#define INSTR_LABEL 0x80005
#define INSTR_ISLOWER 0x80006
#define INSTR_ADD 0x80007
#define INSTR_MUL 0x80008
#define INSTR_DIV 0x80009
#define INSTR_SUB 0x80010
#define INSTR_ISEQUAL 0x80011
#define INSTR_NOT 0x80012
#endif

View file

@ -8,7 +8,6 @@
#include "goom_plugin_info.h"
#include "goom_fx.h"
#include "default_scripts.h"
#include "drawmethods.h"
#include <math.h>
#include <stdio.h>
@ -196,10 +195,6 @@ plugin_info_init (PluginInfo * pp, int nbVisuals)
setOptimizedMethods (pp);
pp->scanner = gsl_new ();
pp->main_scanner = gsl_new ();
pp->main_script_str = GOOM_MAIN_SCRIPT;
for (i = 0; i < 0xffff; i++) {
pp->sintable[i] =
(int) (1024 * sin ((double) i * 360 / (sizeof (pp->sintable) /